OpenMP 并行编程全面解析
1. OpenMP 简介
OpenMP 是一种支持共享内存并行编程的 API,编译器版本 8 及更高版本支持 OpenMP 标准,并提供额外的英特尔特定指令。当 OpenMP 选项激活时,支持 OpenMP 的编译器会定义变量 OPENMP 。OpenMP 程序可以在不使用 OpenMP 选项的情况下编译成顺序代码,此时所有 OpenMP 指令会被忽略,但对于一些 OpenMP 运行时函数,需要特别注意以确保正确转换为顺序代码。变量 OPENMP 可用于控制代码向顺序或并行代码的转换。
2. 编译器指令
在 OpenMP 中,并行性由编译器指令控制。对于 C 和 C++,OpenMP 指令通过 C 和 C++ 标准的 #pragma 机制指定,其一般形式为:
#pragma omp directive [clauses [ ] ...]
指令区分大小写,仅适用于下一行代码或紧随其后的代码块。
2.1 并行区域
最重要的指令是 parallel 构造,语法如下:
#pragma omp parallel [clause [clause] ... ]
{ // structured block ... }
parallel 构造用于指定应并行
订阅专栏 解锁全文
325



被折叠的 条评论
为什么被折叠?



