定義序列程式執行時間為t序列,並行程式執行時間為t並行,則加速比(speedup)是:s = t並行 / t序列。
當加速比 s 等於平行計算的核數 p,則稱該並行程式具有線性加速比(linear speedup)。實際上,我們不可能獲得線性加速比,因為多個執行緒/程序總是會引入一些代價。
此外,定義 e = s/p 的值為並行程式的效率。一般希望,隨著 p 的增加,s 越來越接近理想的線性加速比 p。但實際上,隨著 p 的增加,並行程式的效率 s/p 會越來越小。
事實上,t並行、加速比 s、效率 e,均是依賴於 p,同時還依賴於問題的規模。一般,隨著問題規模變大,加速比和效率增加。
如果乙個技術可以處理規模不斷增加的問題,那麼它就是可擴充套件的。對於並行程式而言,可擴充套件性有明確定義。
假設我們執行乙個並行程式,固定程序或執行緒數目、固定問題規模,得到乙個效率值 e。現在我們增加程式所用的程序或執行緒數目,如果在問題規模也同比例增加情況下,該程式效率值一直都是 e,那麼我們就稱該程式是可擴充套件的。
如果在增加程序或執行緒個數時,可以維持固定效率,卻不增加問題規模,那麼程式成為強可擴充套件(strongly scalable)。如果在增加程序或執行緒個數時,只有以相同倍率增加問題規模才能保持效率值,那麼程式就稱為弱可擴充套件(weakly scalable)。
平行計算效能分析
第乙個效能當然是速度,還有兩個 延時 完成指定工作所需要的時間 吞吐率 單位時間內完成的工作量 開發並行性通常能改進吞吐率。開發並行可以隱藏延時,當然並沒有真正的減少延時,只是隱藏了延時的代價,因為它 與其等待,不如去計算其餘部分 平行計算比序列計算要建立更多執行緒而帶來額外開銷,建立程序的開銷遠大...
python平行計算 python平行計算
0.基礎並行 發 multiprocessing threading 1.concurrent 2.併發 asynico 3.ipython下的平行計算 使用ipyparallel庫的ipython提供了前所未有的能力,將科學python的探索能力與幾乎即時訪問多個計算核心相結合。系統可以直觀地與本...
平行計算 並行程式效能的評估
一 speedup factor 加速比例 s p ts tp ts 最好的序列演算法所需的執行時間 tp 使用並行p個處理器所需的執行時間。線性提速 s p p 二 system efficiency e p ts tp x p s p p x 100 三 maximum speedup 很難達到...