OpenMP

（ Open Multi-Processing ） 是一套支持跨平臺共享內存方式的多線程併發的編程API ， 使用C, C++ 和Fortran語言 ， 可以在大多數的處理器體系和操作系統中運行 ， 包括Solaris, AIX, HP - UX, GNU / Linux, Mac OS X, 和Microsoft Windows 。 包括一套編譯器指令 、 庫和一些能夠影響運行行爲的環境變量 。 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時 ， 程序又可退化爲通常的程序 （ 一般爲串行 ） ， 程式碼仍然可以正常運作 ， 只是不能利用多線程來加速程序執行 。