我在寫一個並行合併排序程序。我使用fork()來執行並行處理。我試着運行2個並行進程,4個進程,8個進程等等。然後我發現使用2個進程運行的程序需要最少的時間完成,即最高的性能。我認爲這是合理的,因爲我的CPU是Core 2 Duo。對於4,8,16,32個過程,它的表現似乎有穩定的下降,但在此之後,表現波動(似乎沒有模式)。有人可以解釋嗎?並行進程的數量將如何影響CPU的性能?
根據這個模式,我有一種感覺,當程序中使用的進程數等於我的CPU的核心數時,我的程序可以具有最高的性能。但我百分之百肯定。有人可以驗證我嗎?或者告訴我實際上影響並行程序性能的因素。
在此先感謝!
嗨,現在就明白了。我可以問你爲什麼隨着流程數量的增加,它不會呈現速度下降的趨勢。 – Newbie