2017-09-04 152 views
0

我開展圖搜索算法的研究。在這項研究中,爲了比較兩種算法的運行時間性能,可靠地(即可重新生成)測量單線程程序的運行時間的能力是極其重要的。運行時間是在程序內部測量的(用C++編寫的),並且不包括任何對二級存儲器的訪問(只發生在初始輸入階段)。我曾經有權訪問真實(即非雲)HPC羣集的專用節點。我記得,當我在這樣一個節點上運行程序兩次(使用相同的輸入)時,我得到的時間測量結果只有百分之幾的不同。問題是:我可以在雲HPC平臺上獲得如此可靠的時間測量嗎?雲高性能計算的可靠時間測量

爲了更多地證明這個問題,對於一些算法和問題實例,我的程序可能會使用大量的內存(比如64GB)。如果我理解正確,即使承諾沒有超線程和專用內存的專用內核的雲平臺也會構建虛擬機來滿足這種內存要求。組成該虛擬機的節點在兩次運行之間可能不同,導致不同的通信開銷,並因此導致不同的時間測量。因此,重複一個問題:我可以在雲HPC平臺上獲得可靠的時間測量嗎?

回答

1

根據herehere中描述的討論和經驗,似乎可以安全地說,您不應該期望測量結果總是相似。

雖然,我認爲根據測試次數,測試持續時間以及測試運行之間測試VM的分配/釋放,您可以達到可接受的可靠程度。

+0

謝謝你的偉大的指針。這些文章是專門針對* Microsoft *平臺的,它可能會爲* Linux *下開發的程序描述可移植性問題。 – AlwaysLearning