Написать комментарии в CSV-файл с пандами

Здесь вы должны использовать вложенный параллелизм. Проблема с omp for в sections заключается в том, что все потоки в области видимости должны принимать участие в omp for, и они явно не видят; они разбиты по разделам. Таким образом, вы должны вводить функции и выполнять вложенные параллелизм внутри функций.

#include <stdio.h>
#include <omp.h>

void doTask1(const int gtid) {
    omp_set_num_threads(5);
#pragma omp parallel 
    {
        int tid = omp_get_thread_num();
        #pragma omp for
        for(int i=0; i<5; i++) {
            printf("x %d %d %d\n", i, tid, gtid);
        }
    }
}

void doTask2(const int gtid) {
    omp_set_num_threads(5);
#pragma omp parallel 
    {
        int tid = omp_get_thread_num();
        #pragma omp for
        for(int i=0; i<5; i++) {
            printf(". %d %d %d\n", i, tid, gtid);
        }
    }
}


int main()
{
    omp_set_num_threads(2);
    omp_set_nested(1);

#pragma omp parallel    
    {
        int gtid = omp_get_thread_num();
#pragma omp sections
        {
#pragma omp section
            doTask1(gtid);

#pragma omp section
            doTask2(gtid);
        } // end parallel and end sections
    }
}
16
задан Mathieu Dubois 24 March 2015 в 13:13
поделиться