什么是 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 系统的多个开源和商业编译器。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP