OpenMP 是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的。
0. 一段使用 OpenMP 的并行程序
#include <stdio.h>
#include <omp.h>
main() {
int id;
#pargma omp parallel
id = omp_get_thread_num();
print("Greetings from process %d!
", id);
}
<omp.h> 中的 omp_get_thread_num() 函数返回的是当前节点的计算核心数,如果当前结点的配置为 2 个 Xeon E5-2692v2 的 12 核处理器,则一共 2*12 = 24 个计算核心。
1. 杂项
Undefined reference to `omp_get_max_threads_’
gcc - Undefined reference to omp_get_max_threads
这是因为在使用 gcc 编译器编译(链接)源程序时,未加入
-fopenmp
选项以使 OpenMP 工作,(对于其他编译器,选项名不同,intel:-openmp,pgi:-mp)