可以在循环中使用“#pragma omp parallel for”吗?

时间:2012-08-20 12:48:47

标签: c loops parallel-processing openmp

可以在以下形式的循环中使用“#pragma omp parallel for”:

For (i=0;i<...;.i+=1) 
  { #pragma omp parallel for
      for(j=0;j<...;j+=1) 
       { Some code.....} 
  • 这是否只是对“j”的循环进行了分析?

感谢advence!

2 个答案:

答案 0 :(得分:2)

是的,它可以这样使用。但是编译器指令必须在他们自己的行上

for( ... )
{
    #pragma omp parallel for
    for( ...
//..

答案 1 :(得分:0)

它可以像你说的那样使用但如果我是你并且想要避免每次迭代的fork / join我不会有好处,我会这样做:

#pragma omp parallel for
for(j loop)
{
   for(i loop)
   {
        //Modify your code if necessary.
   }
}

在上面的代码片段中,如果您的最大线程数为10且您的j长度为100,那么将有10个线程,每个线程将运行10次迭代j。