3

In this paper, two cases have been considered for comparing algorithms - integers and floating points.

I understand the differences regarding these data types in terms of storage, but am not sure why there is a difference among these.

Why is there a difference in performance between the following two cases

  • Using merge sort on Integers
  • Using merge sort on Floating Points

I understand that it comes down to speed comparison in both the cases, the question is why these speeds might be different?

4

2 回答 2

3

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

于 2012-08-03T13:15:18.183 回答
0

合并排序有一个包含相当多指令的内部循环。比较浮点数可能会贵一点,但只有 1-2 个周期。您不会注意到大量合并代码之间的差异。

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

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

于 2012-08-03T11:28:03.153 回答