OpenMP for-Schleife im inneren Abschnitt

Ich würde gerne den folgenden code ausführen (unten). Ich möchte, um zu laichen zwei unabhängige threads, jeder würde führen Sie eine parallele for-Schleife. Leider bekomme ich eine Fehlermeldung. Offenbar parallel for kann nicht hervorgebracht werden innerhalb section. Wie löst man das?

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

int main()
{

omp_set_num_threads(10);

#pragma omp parallel    
#pragma omp sections
  {
#pragma omp section
#pragma omp for
    for(int i=0; i<5; i++) {
        printf("x %d\n", i);
    }

#pragma omp section
#pragma omp for
    for(int i=0; i<5; i++) {
        printf(". %d\n", i);
    }
  } //end parallel and end sections
}

Und der Fehler:

main.cpp: In function int main()’:
main.cpp:14:9: warning: work-sharing region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task region [enabled by default]
main.cpp:20:9: warning: work-sharing region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task region [enabled by default]

InformationsquelleAutor Jakub M. | 2011-10-27

Schreibe einen Kommentar