平行計算效能分析

2021-09-08 02:41:01 字數 717 閱讀 9744

第乙個效能當然是速度,還有兩個:

延時:完成指定工作所需要的時間

吞吐率:單位時間內完成的工作量

開發並行性通常能改進吞吐率。

開發並行可以隱藏延時,當然並沒有真正的減少延時,只是隱藏了延時的代價,因為它「與其等待,不如去計算其餘部分」。

平行計算比序列計算要建立更多執行緒而帶來額外開銷,建立程序的開銷遠大於執行緒,這是因為儲存器的分配和初始化非常昂貴。

執行緒(或程序)間的通訊是開銷的主要部分。

儲存器的頻寬也限制了平行計算的速度,比如當cpu讀dram時可能出現延時(當要載入的資料量很大,cache容不下時,cpu就不得不讀取dram)。儲存器頻寬約束不多核計算中的特別問題,這通常受限於晶元的邊界。

避免過早的優化:這裡要講90/10規則,即90%的程式執行時間花在10%的**上。開始時不加任何修飾地編寫**,如果效能需要改進,把執行時間最長的那10%時間識別出來,對其進行重寫,重寫時也許要使用c語言或組合語言。

在科學計算中通常採用flops指標,即私刑秒學點數操作(floating-point operations per second)。

極少情況下會出現超線性加速比(superline speedup):使用p個處理器,並行的速度比序列的速度快p倍。基本的解釋是並行的計算執行了較少的工作,比如並行執行時資料都駐留在每個處理的cache中,而順序執行時必須訪問儲存器。

當核數增張時,核之間的通訊延時也會增張。並且ram和核之間的頻寬是有限的。

python平行計算 python平行計算

0.基礎並行 發 multiprocessing threading 1.concurrent 2.併發 asynico 3.ipython下的平行計算 使用ipyparallel庫的ipython提供了前所未有的能力,將科學python的探索能力與幾乎即時訪問多個計算核心相結合。系統可以直觀地與本...

平行計算的效能指標

定義序列程式執行時間為t序列,並行程式執行時間為t並行,則加速比 speedup 是 s t並行 t序列。當加速比 s 等於平行計算的核數 p,則稱該並行程式具有線性加速比 linear speedup 實際上,我們不可能獲得線性加速比,因為多個執行緒 程序總是會引入一些代價。此外,定義 e s p...

平行計算模型

平行計算模型通常指從並行演算法 的設計和分析出發,將各種並行計算機 至少某一類並行計算機 的基本特徵抽象出來,形成乙個抽象的計算模型。從更廣的意義上說,平行計算模型為平行計算提供了硬體和軟體介面 在該介面的約定下,並行系統硬體設計者和軟體設計 者可以開發對並行性 的支援機制,從而提高系統的效能。有幾...