OpenMP
維基百科,自由的 encyclopedia
OpenMP(Open Multi-Processing)是一套支援跨平台共用記憶體方式的多線程並行的編程API,使用C,C++和Fortran語言,可以在大多數的處理器體系和作業系統中執行,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X, 和Microsoft Windows。包括一套編譯器指令、庫和一些能夠影響執行行為的環境變數。
Quick Facts 原作者, 開發者 ...
原作者 | OpenMP Architecture Review Board[1] |
---|---|
開發者 | OpenMP Architecture Review Board[1] |
目前版本 |
|
程式語言 | C, C++, Fortran |
作業系統 | 跨平台 |
平台 | 跨平台 |
類型 | API |
許可協定 | 多種[3] |
網站 | http://openmp.org |
Close
OpenMP採用可移植的、可延伸的模型,為程式設計師提供了一個簡單而靈活的開發平台,從標準桌面電腦到超級電腦的並列應用程式介面。
混合併行編程模型構建的應用程式可以同時使用OpenMP和MPI,或更透明地通過使用OpenMP擴充的非共用記憶體系統上執行的電腦叢集。
OpenMP是由OpenMP Architecture Review Board牽頭提出的,並已被廣泛接受的,用於共用記憶體並列系統的多線程程式設計的一套指導性註釋(Compiler Directive)。OpenMP支援的程式語言包括C語言、C++和Fortran;而支援OpenMP的編譯器包括Sun Studio和Intel Compiler,以及開放原始碼的GCC、LLVM和Open64編譯器。OpenMP提供了對並列演算法的高層的抽象描述,程式設計師通過在原始碼中加入專用的pragma來指明自己的意圖,由此編譯器可以自動將程式進行並列化,並在必要之處加入同步互斥以及通訊。當選擇忽略這些pragma,或者編譯器不支援OpenMP時,程式又可退化為通常的程式(一般為串行),程式碼仍然可以正常運作,只是不能利用多線程來加速程式執行。