3

在並行系統中每個進程都有到其它進程產生影響,因爲他們都爭奪,如CPU,緩存,內存,磁盤I/O,網絡若干稀缺資源等之間的干擾是什麼方法最適合測量過程之間的干擾?如進程A & B各自嚴重訪問磁盤。因此,並行運行它們可能會比順序運行(單個運行時)慢。因爲瓶頸是硬盤驅動器。如何衡量</p> <p>過程

如果我不確切地知道進程的行爲(磁盤,內存或CPU密集型),最好採用哪種方法進行分析?

衡量單個運行時間並比較每個並行進程的相對份額?

就像過程A一樣平均運行30s,當100%與B 45s平行時,當20%平行35s ..等等

比較像LILLC緩存未命中,頁面錯誤等幾個指標會更好嗎?

+0

是這個平臺不可知的問題?如果目標是Windows平臺,我想它確實提供了單獨的磁盤利用率指標。這就是'資源監視器'如何繪製每個進程級別的磁盤活動圖。 – Ankush

+0

你可以測量它,只是觀察消耗的時間。但是這種測量非常無用,它會重複,非常糟糕。 –

+0

@Ankush的主要平臺是Linux – nairboon

回答

1

您需要做的是首先確定每個單獨程序的限制因素。如果你想同時運行CPU綁定和IO綁定,它的影響將非常小。如果你想運行兩個IO綁定進程,並且同時會有很多爭用。

我寫了一個相當詳細的答案,關於如何解釋「時間[命令]」結果的輸出,看看有什麼限制因素。它在這裏:What caused my elapsed time much longer than user time?

一旦你從你的程序的「時間」輸出,你可以確定哪些可能會互相踩,哪些不是。

相關問題