什么是OpenMP?

OpenMP是一组编译器指令以及用于以C,C ++或FORTRAN编写的程序的API,可为共享内存环境中的并行编程提供支持。OpenMP将并行区域标识为可以并行运行的代码块。应用程序开发人员在其并行区域的代码中插入编译器指令,这些指令指示OpenMP运行时库并行执行该区域。下面的C程序在包含printf()语句的并行区域上方说明了一个编译器指令-

#include <omp.h>

#include <stdio.h>

int main(int argc, char *argv[]){

   /* sequential code */

   #pragma omp parallel{

      printf("I am a parallel region.");

   }

   /* sequential code */

   return 0;

}

当OpenMP遇到指令时

#pragma omp parallel

它创建尽可能多的线程来处理系统中的核心。因此,对于双核系统,创建两个线程,对于四核系统,创建四个线程;等等。然后所有线程同时执行并行区域。当每个线程退出并行区域时,它将终止。OpenMP提供了一些其他指令来并行运行代码区域,包括并行化循环。

除了提供并行化指令外,OpenMP还允许开发人员在多个并行度级别中进行选择。例如,他们可以手动设置线程数。它还允许开发人员确定数据是在线程之间共享还是对线程私有。OpenMP在Linux,Windows和Mac OS X系统的几种开源和商业编译器上可用。

以上是 什么是OpenMP? 的全部内容, 来源链接: utcz.com/z/357407.html

回到顶部