Freigeben über


omp_set_nested

Ermöglicht geschachtelten Parallelität.

void omp_set_nested(
   int val
);

Hinweise

Hierbei ist:

  • val
    Wenn ungleich 0 (null), geschachtelten Parallelität aktiviert.Wenn Null, geschachtelten Parallelität deaktiviert.

Hinweise

OMP-geschachtelter Parallelität kann aktiviert werden omp_set_nestedoder über die Befehle OMP_NESTED Umgebungsvariable festgelegt wird.

Die Einstellung für omp_set_nested überschreibt die Einstellung der OMP_NESTED Umgebungsvariablen.

Wenn sie aktiviert ist, kann die Umgebungsvariable ein andernfalls operationelles Programm unterbrechen, weil die Anzahl von Threads erhöht wird, wenn sie sich exponential parallele Bereiche schachtelt.Zum Beispiel erfordert eine Funktion, die 6mal mit der Anzahl der OMP-Threads rekursiert, der auf 4 festgelegt werden, mit 4 (4,096, 6) Threads im Allgemeinen die Leistung der Anwendung beeinträchtigt, wenn die Anzahl der Threads die Anzahl der Prozessoren überschreitet.Eine Ausnahme könnte E/A-gebundene Anwendungen handeln.

Verwenden Sie omp_get_nested , um die aktuelle Einstellung von omp_set_nestedanzuzeigen.

Weitere Informationen finden Sie unter 3.1.9 omp_set_nested-Funktion.

Beispiel

// omp_set_nested.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>

int main( ) 
{
    omp_set_nested(1);
    omp_set_num_threads(4);
    printf_s("%d\n", omp_get_nested( ));
    #pragma omp parallel
        #pragma omp master
        {
            printf_s("%d\n", omp_get_nested( ));
        }
}
  

Siehe auch

Konzepte

OpenMP-Funktionen