![]() | |
原作者 | OpenMP Architecture Review Board[1] |
---|---|
開發者 | OpenMP Architecture Review Board[1] |
当前版本 | 5.0(2018年11月8日 | )
编程语言 | C, C++, Fortran |
操作系统 | 跨平台 |
平台 | 跨平台 |
类型 | API |
许可协议 | 多种[2] |
网站 | http://openmp.org |
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时,程序又可退化为通常的程序(一般为串行),程式码仍然可以正常运作,只是不能利用多线程来加速程序执行。