小编mar*_*743的帖子

gcc openmp任务不起作用

我已经使用OpenMP和"pragma omp for"循环,并且现在想尝试OpenMP任务.但是一个简单的程序,它应该并行运行2个任务似乎不起作用.我是否误解了任务的使用或这里有什么问题?

#include<iostream>
#include<omp.h>

//ubuntu 12.04 LTS, gcc 4.6.3
//g++ test_omp.cpp -fopenmp

int main()
{
 #pragma omp parallel
 {
  #pragma omp single
  {

      #pragma omp task
      {
          while(true) 
          {
           usleep(1e6);
           #pragma omp critical (c_out)
            std::cout<<"task1"<<std::endl;
          }
      }

      #pragma omp task
      {
          while(true) 
          {
           usleep(1e6);
           #pragma omp critical (c_out)
            std::cout<<"task2"<<std::endl;
          }
      }

  }
 }
}
Run Code Online (Sandbox Code Playgroud)

输出是:task1 task1 task1 .....

所以第二个任务没有运行.

gcc task openmp

5
推荐指数
1
解决办法
939
查看次数

标签 统计

gcc ×1

openmp ×1

task ×1