zoukankan      html  css  js  c++  java
  • [openmp]使用嵌套并行

    变量OMP_NESTED设置使其可以在函数中并行。

    #include "omp.h"
    #include <cstdio>
    #include <iostream>
    
    using namespace std;
    
    omp_nest_lock_t lock;
    
    void roll(int d)
    {
        omp_set_nest_lock(&lock);
        cout << "first thread " << d << endl;
        omp_unset_nest_lock(&lock);
    #pragma omp parallel
        {
            int d = omp_get_thread_num();
            omp_set_nest_lock(&lock);
            cout << "thread " << d << endl;
            omp_unset_nest_lock(&lock);
        }
    }
    
    int main()
    {
        omp_set_num_threads(4);
        omp_set_nested(1);  //允许嵌套并行,注释掉这句看效果,注释掉这句看效果
        omp_init_nest_lock(&lock);
    #pragma omp parallel
        {
            int d = omp_get_thread_num();
            roll(d);
        }
        omp_destroy_nest_lock(&lock);
        return 0;
    }
    
  • 相关阅读:
    【转】数学题目大集合
    hdu3534,个人认为很经典的树形dp
    GYM
    HDU
    POJ
    POJ
    POJ
    set的经典应用
    天梯赛训练1 7-9 集合相似度
    天梯赛训练1 7-8 查验身份证
  • 原文地址:https://www.cnblogs.com/svitter/p/4027547.html
Copyright © 2011-2022 走看看