2012-04-23 73 views
1

給定一個並行程序和定義明確的硬件,如何確定其計算通信比率(CCR)。這是爲了確定程序的粒度和後續分析。文獻對這個術語進行了描述,並將其用於與程序的粒度相關聯,但我沒有發現任何事情來估計CCR,如果它高或低。如何確定計算機與通信比率

回答

1

要比較計算和通信,你必須在一個公共單元中進行測量。通常我會用一段時間。然後你可能會發現一個程序的比例是80:20(計算:通信)

雖然人們可能會斷言50:50的比例對於溝通來說是一個高價值,但這些數字實際上只是與其他並行程序的可比數字。所以,如果程序A和程序B解決了同樣的問題,但是A的比率是80:20而B的比率是70:30,那麼你可以聲明A在每個時鐘週期中的計算都比B多。如果他們不解決同樣的問題,你可能會發現自己比較蘋果和橘子。

雖然計算通常比通信更受歡迎,但這些因素也是相對的。考慮到程序A和B,確保B(相對)更多的通信,但是也可能B比A更少花時間 - 也許B花費時間在進程之間發送更大的消息,而A執行更多重複計算以避免發送更大消息。根據自己的喜好選擇喜歡哪個節目。

如果你對這些事情有足夠的經驗,你通常可以對檢查程序結構的比例進行一些教育性的猜測,但最終你將不得不測量它來得出任何明顯的結論。

+0

同意。我在考慮爲了得到這個比率需要定時的參數。還是有任何暗示這一點的內核功能? – marc 2012-04-23 16:39:00

+0

這是一個工具非常方便的地方。對於MPI程序,我使用英特爾VTune,過去我使用過Allinea OPT,並且有一些開源工具。如果你正在使用MPI,你可能會有一套MPE僞裝的程序,這對程序的部分時間是有用的。如果沒有這些工具,您可以通過在您感興趣的地點的代碼中插入計時聲明,對自己的估計值做出合理有用的估計。 – 2012-04-23 16:45:52