2012-08-03 62 views
3

this paper中,有兩種情況被用於比較算法 - 整數和浮點數。浮點合併和整數合併有什麼區別?

我理解這些數據類型在存儲方面的差異,但我不確定爲什麼它們之間存在差異。

爲什麼會出現下面兩種情況

  • 之間的性能差異使用歸併排序的整數
  • 使用歸併排序的浮點

我明白,這歸結在這兩種情況下加快比較,問題是爲什麼這些速度可能會有所不同?

回答

3

本文在第4節「結論」中指出,「合併CPU上的整數的執行時間比CPU上的浮點執行時間快2.5倍」。在測量中使用的Intel Nehalem Xeon E5530,這一巨大差異令人驚訝。但是,本文不提供有關源代碼,合併中使用的特定指令或處理器功能,編譯器版本或其他使用的工具的信息。如果處理器得到有效使用,整數合併與浮點合併的性能應該只有很小的差異。因此,測試中使用的浮點代碼似乎很可能是效率低下的,並且是所用工具較差的指標,而不是處理器的任何缺點。

0

合併排序有一個相當多的指令內循環。比較花車可能會稍微昂貴一些,但只需要1-2個週期。您不會注意到合併代碼數量的差異。

比較花車是硬件加速和快速相比,你在做的一切算法。

此外,比較可能會重疊其他指令,因此壁鐘時間的差異可能完全爲零(或不)。

相關問題