在VS中启用OpenMP很简单,很多主流的编译环境都内置了OpenMP。在项目上右键->属性->配置属性->C/C++->语言->OpenMP支持,选择“是”即可。
1、parallel
#include<iostream>
#include"omp.h"
using namespace std;
void main()
{
//#pragma omp parallel num_threads(4) //默认是4个线程
#pragma omp parallel
{
cout << "Test" << endl;
}
system("pause");
}
输出: Test Test Test Test
2、parallel for
#include<iostream>
#include"omp.h"
using namespace std;
void main()
{
#pragma omp parallel for num_threads(6)
for (int i = 0; i < 12; i++)
{
printf("OpenMP Test, 线程编号为: %d\n", omp_get_thread_num());
}
system("pause");
}
输出:
OpenMP Test, 线程编号为: 0
OpenMP Test, 线程编号为: 2
OpenMP Test, 线程编号为: 5
...
6个线程共执行循环12次,也就是每个线程执行分配2次。