2012-09-07 45 views
4

我一直在試圖對所有已實現Python分佈式處理程序的計算機上的FLOPS進行標準化估計。雖然我目前可以很好地計算出pystones,但pystones並不是特別知名,我也不完全確定它們的真實性。因此,我需要一種方法來計算(或已經做到這一點的模塊)在各種機器上的FLOPS,這些機器可以有各種各樣的CPU等。看作Python是一種解釋型語言,簡單地計算時間它需要做的一定數量的操作將不會在Linpack的水平上執行。雖然我並不特別需要與基準測試中的一個大「名字」具有完全相同的估計,但我希望它至少相當接近。Python FLOPS計算

因此,有沒有辦法,或預先存在的模塊,讓我得到FLOPS?否則,我唯一的選擇將是編譯成用Cython,或試圖估計基於CPU時鐘速度的能力...

回答

3

的Linpack或高性能LINPACK,通常是衡量觸發器的行業標準,我發現了一個Python實現here ,但它可能沒有多大用處,特別是如果你有一個羣集的標準實現將使用HPL。除非你想在python中實現你自己的並行linpack,否則HPL就是要走的路。這是top 500 list上用於測量其性能的大多數怪物超級計算機。

如果你真的很想做這件事,即使你覺得它可能沒有意義或用處不大。您可能需要考慮將原始MPI版本移植到0-MQ,該版本具有一個很好的Python界面

+0

感謝您將這些鏈接起來,但我似乎在嘗試UCS實施時遇到了困難。當我在3臺[email protected],[email protected]和[email protected]的計算機上運行時,所有3臺計算機都返回相同的120.4 MFlops值。這顯然不是真的(或者測量別的東西),因爲根據LinX,960內核的機器運行在35 GFlops。 也許我誤解了我的問題,因爲我實際上是在分佈式計算網絡上,其中處理節點是隻通過Internet鏈接的單個計算機。 –

+0

因此,如果地理位置和互聯網連接,您的結果每次都會因網絡延遲而有所不同,並且會遠離理論性能,因爲它看起來像您連接的每臺計算機或處理器都不相同,這會使您的性能更低因爲有很多通訊 – pyCthon

+0

和處理器將不得不等待另一個,查找上面的零mq程序可能必須實現它你自己 – pyCthon