浮点合并和整数合并有什么区别?

时间:2012-08-03 10:23:55

标签: algorithm floating-point mergesort

this paper中,已考虑两种情况来比较算法 - 整数和浮点。

我理解这些数据类型在存储方面的差异,但不确定为什么这些数据类型存在差异。

为什么以下两种情况之间的性能存在差异

  • 在整数上使用合并排序
  • 在浮点数上使用合并排序

据我所知,在这两种情况下,速度比较都归结为,问题是为什么这些速度可能会有所不同?

2 个答案:

答案 0 :(得分:3)

该论文在第4节“结论”中指出,“在CPU上合并整数的执行时间比CPU上浮点的执行时间快2.5倍”。测量中使用的英特尔Nehalem Xeon E5530令人惊讶。但是,本文未提供有关合并,编译器版本或其他使用的工具中使用的源代码,特定指令或处理器功能的信息。如果有效地使用处理器,则整数合并与浮点合并的性能应该只有非常小的差异。因此,测试中使用的浮点代码似乎效率低下,并且是使用不良工具的指标,而不是处理器的任何缺点。

答案 1 :(得分:0)

合并排序有一个内部循环,有很多指令。比较花车可能会稍贵,但只需1-2个周期。您将不会注意到更大量的合并代码之间的差异。

与您在该算法中执行的所有操作相比,比较浮点数是硬件加速和快速的。

此外,比较可能会与其他指令重叠,因此挂钟时间的差异可能正好为零(或不是)。