正文
8月份到現在,由于忙于各種事情,關于技術的學習密度有所下降,也已經許久沒有更新。但這期間也是有一些學習產出,將近年關,不想放到年后再完善,最近趁機找了個時間便編寫本文做一個總結吧
我們都知道在 多核CPU 下,在某些 計算密集業務 使用多線程可以有效提高程序速度,這也是我們常說的 并行計算。并行計算除了我們手動完成多線程的編寫外,我們還可以有效利用編程標準 OpenMP 來幫助我們的程序在編譯時自動完成程序的多線程化,或者說并行化。其優點 是在一部分場景下可以不對程序進行改動,使用編譯性指導語言來完成程序的并行化,同時它也提供了多種機制來完滿用戶的復雜需求,如任務拆解、互斥訪問等等。
筆者在學習 OpenMP 時,使用的是大學教材 《多核異構并行計算——OpenMP4.5 C/C++篇》。筆者對于該書的看法為:適用于入門 科學計算 ,其內容可以滿足一般工程師的使用場景。對于一般的程序優化場景已經滿足,可以通過閱讀該書對 并行計算 進行系統的學習和了解。當然了,該書也有一些錯誤和有待優化的地方,需要讀者在閱讀的過程中辨別出來。
由于使用的是教材,其內容已經經過編排并且有效內容密度極高,筆者已經無法對其進行提煉和總結,所以筆者已經將學習過程中的各個章節總結成 思維導圖,并將其相關代碼例程編寫保存下來。如果有興趣學習 OpenMP 的讀者,可以通過閱讀此書。此書內容行文較為簡單,對復雜的概念也有一些講解。也希望筆者的代碼和思維導圖可以在讀者的閱讀過程中梳理思路,避免在理解概念的時候由于混淆和糾纏浪費時間。
以為資源的路徑,有需要的讀者可以自行前往獲取:https://github.com/wipping/openMP_demo