OpenMP 并行区域之间的工作共享方法

来源:互联网 发布:cpu网络营销策划书 编辑:程序博客网 时间:2024/06/05 15:35
// 并行区域之间的工作共享方法// 1.工作队列:工作队列的基本工作过程即为维持一个工作的队列,// 线程在并行执行的时候,不断从这个队列取出相应的工作完成,// 直到队列为空为止// 2.根据线程号分配任务.由于每个线程在执行的过程中的线程标识号// 是不同的,可以根据这个线程标识号来分配不同的任务//#pragma omp parallel private(myid)//      {//          int nthreads = omp_get_num_threads();//          int myid = omp_get_thread_num();//          work_done(myid, nthreads);          // 分配任务函数//      }// 3.使用循环语句分配任务#pragma omp parallel num_threads(2)            {                cout << "outside loop thread = " << omp_get_thread_num() << endl;#pragma omp for        for (int i = 0; i < 4; i++)            cout << "inside loop i = " << i << " thread = "                     << omp_get_thread_num() << endl;            }// 4.工作分区编码#pragma omp parallel sections            {#pragma omp section                cout << "section 1 thread = " << omp_get_thread_num() << endl;#pragma omp section                cout << "section 2 thread = " << omp_get_thread_num() << endl;#pragma omp section                cout << "section 3 thread = " << omp_get_thread_num() << endl;            }
原创粉丝点击