我正在研究一個項目,我們被要求編寫一個簡單的OpenMP代碼來並行化一個可與微分方程一起工作的程序。我們還被要求在有和沒有編譯器優化的情況下測試代碼的性能。我與Sun CC編譯器的工作,所以對於optmized版本我使用的選項使用和不使用編譯器優化的並行OpenMP代碼的性能(Sun CC)
-xopenmp -fast
和非優化
-xopenmp=noopt
毫不奇怪的運行時間與編譯器的優化上是多少低於其他情況。令我驚訝的是,非優化版本的縮放性能要好得多。在這裏,性能指的是加速係數,即程序運行時間在M個處理器上的運行時間與在1個處理器上運行的程序運行時間的比率。
有人暗示,這可能取決於優化版本是內存綁定的事實,而非優化版本是CPU綁定的。我不確定「界限」如何影響我的代碼的擴展能力。你有什麼建議嗎?