两种形式如下:
//for循环并行化声明形式1
#pragma omp parallel for
for (int i=0;i<10;i++)
{
cout<<i<<" "<< omp_get_thread_num()<<endl;
}
//for循环并行化声明形式2
#pragma omp parallel
{
#pragma omp for
for (int i = 0; i < 10; ++i)
{
for (int j = 0; j < 10; ++j)
{
c[i][j] =i+j;
cout<<omp_get_thread_num()<<" ";
}
cout<<endl;
}
} 输出两个线程,因为我的电脑是双核,没有做线程初始化,默认为双线程,如果电脑是N核的,默认的就是N线程,跟环境变量设置有关。
本文详细介绍了C++中两种并行化的实现方式:通过`#pragma omp parallel for`进行循环并行化,以及使用`#pragma omp parallel`结合`#pragma omp for`进行更复杂的并行操作。解释了并行化如何提高程序效率,并通过实例展示了在不同处理器环境下(如双核处理器)的线程分配和输出结果。
4169

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



