openmp是一種用於共享記憶體並行系統的多執行緒程式設計方案,支援的程式語言包括c、c++和fortran。openmp提供了對並行演算法的高層抽象描述,特別適合在多核cpu機器上的並行程式設計。編譯器根據程式中新增的pragma指令,自動將程式並行處理,使用openmp降低了並行程式設計的難度和複雜度。當編譯器不支援openmp時,程式會退化成普通(序列)程式。程式中已有的openmp指令不會影響程式的正常編譯執行。
在vs中啟用openmp很簡單,很多主流的編譯環境都內建了openmp。在專案上右鍵->屬性->配置屬性->c/c++->語言->openmp支援,選擇「是」即可。
openmp缺點:
1:作為高層抽象,openmp並不適合需要複雜的執行緒間同步和互斥的場合;
2:另乙個缺點是不能在非共享記憶體系統(如計算機集群)上使用。在這樣的系統上,mpi使用較多。
openmp採用fork-join的執行模式。開始的時候只存在乙個主線程,當需要進行平行計算的時候,派生出若干個分支執行緒來執行並行任務。當並行**執行完成之後,分支執行緒會合,並把控制流程交給單獨的主線程。
乙個典型的fork-join執行模型的示意圖如下:
基本概念 C 基本概念
由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...
基本概念 數控系統基本概念
第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...
XSLT基本概念
我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet language xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用xslt的稱法。它們之間具體的關係我們會在下面講述。1.1 什麼是xslt...