什么是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