並行演算法是平行計算的基礎,與實現技術相結合,為高效率使用並行計算機提供解決方案。其基本原則簡述如下:
常見的平行計算的硬體載體有fpga、gpu、多核cpu(arm、x86)、dsp等。fpga硬體加速的思想是設計流水線和設計多個加速核。gpu和多核cpu通過多核運算來達到並行的目的,核與核之間的通訊開銷是不可忽視的因素。dsp採用了並行指令和專用指令,能在乙個時鐘週期內執行複雜操作,但通用性不強。
並行演算法是否是隨處理機個數增加而能夠線性或近似線性的加速,這是評價乙個並行演算法是否有效的重要標誌之一。也就是說,如果乙個並行演算法的加速比是sp(q) = o(q) 或者sp(q) = o(q=(1+log(q))),則可以稱為具有可擴充套件性的並行演算法。
通常情況下,粒度越大越好。這是因為在每個處理機中有很多需要計算的工作任務,如此可以充分發揮多處理機的作用。並行加速比對細粒度問題一般情況下是不會很高的,這也是為什麼平行計算需要求解大規模問題的原因所在。
乙個高效率的並行演算法,通訊是至關重要的。提高效能的關鍵是減少通訊量和通訊次數,其中通訊次數通常情況下是決定因素。
乙個演算法是否有效,不僅依賴於理論分析的結果,也和在實現的過程中採用的技術息息相關。效能主要看單處理機能夠發揮計算能力的百分比,然後是並行效率。
小結:
影響並行演算法效率的因素可能很多,但是這裡所給出的幾條是主要因素。因此,在演算法設計的過程中,如果能夠將上述5 條加以仔細考慮,就能夠取得非常好的效果。
原文見 遲學斌《高效能計算》
設計模式基本原則
設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...
設計模式基本原則
1 單一職責原則 類的職責要單一 不要將太多的職責放到同乙個類當中去。eg 資料結構職責類和演算法行為都放在乙個類。我們應該把資料結構和行為分開。2 開閉原則 乙個軟體實體應該對擴充套件開放,對修改關閉。可變性封裝 3 黎克特制代換原則 可以接受基類物件的地方必然要可以接受子類的物件。4 依賴倒轉原...
設計模式基本原則
設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...