OpenMP 3.1 API 规范说明发布
程序员文章站
2022-05-09 09:13:40
...
由Intel, NVIDIA, IBM, HP 以及 Microsoft组成的非盈利组织OpenMP Architecture 审查委员会正式发布了OpenMP 3.1 API规范说明。
OpenMP(Open Multi-Processing)是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性注释(Compiler Directive)。OpenMP支持的编程语言包括C语言、C++和Fortran;而支持OpenMP的编译器包括Sun Studio和Intel Compiler,以及开放源码的GCC和Open64编译器。OpenMP提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenMP时,程序又可退化为通常的程序(一般为串行),代码仍然可以正常运作,只是不能利用多线程来加速程序执行。
ARB坦言,虽然这次的小发行并没有给已有的应用程序造成太大的影响,但与三年前的版本相比的确引进了许多新特性。它为未来的扩展奠定了坚实的平台,能够更好地支持新兴硬件的发展方向。除此以外,它还设置了C、C++预定义运算符的数量范围。支持扩展原子构造,抓取更新后的变量值以作后用。
对于包含有多个耗时的循环的应用,OpenMP特别有用,它可以将工作划分为多个线程。任一应用中划分粗糙的循环级别的并行机制的数量往往比较有限,限制了应用程序的可扩展性。一个并行区域可能嵌入在其它并行区域之内,但是它们缺省的执行方式是必须使用一个线程组来串行执行。
OpenMP 3.1 API规范下载:http://openmp.org/wp/openmp-specifications
官网信息:http://openmp.org/wp/
更多信息,请关注Michael Klemm博客。
下一篇: 实例详解sort()函数的原理和使用方法