Schleife
Steuert, wie Schleifencode durch die automatische Parallelisierung berücksichtigt werden soll und/oder schließt eine Schleife von der Berücksichtigung durch die automatische Vektorisierung aus.
#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parameter
hint_parallel( n )
Weist den Compiler darauf hin, dass diese Schleife über n Threads parallelisiert werden soll, wobei n ein positives Ganzzahlliteral oder null ist. Wenn n null ist, wird die maximale Anzahl von Threads zur Laufzeit verwendet. Dies ist ein Hinweis für den Compiler, kein Befehl, und es gibt keine Garantie dafür, dass die Schleife parallelisiert wird. Wenn die Schleife Datenabhängigkeiten oder strukturelle Probleme aufweist, z. B. in der Schleife in einen über den Schleifentext hinaus verwendeten Skalar gespeichert wird, dann wird die Schleife nicht parallelisiert.Der Compiler ignoriert diese Option, es sei denn, der /Qpar-Compilerschalter wird angegeben.
no_vector
Standardmäßig ist die automatische Vektorisierung aktiviert und versucht, alle Schleifen zu vektorisieren, für die dies als nützlich bewertet wird. Geben Sie dieses Pragma an, um die automatische Vektorisierung für die darauf folgende Schleife zu deaktivieren.ivdep
Weist den Compiler darauf hin, Vektorabhängigkeiten für diese Schleife zu ignorieren. Verwenden Sie diesen Parameter in Verbindung mit hint_parallel.
Hinweise
Um das loop-Pragma zu verwenden, platzieren Sie es direkt vor eine Schleifendefinition, nicht in dieser. Das Pragma gilt für den Gültigkeitsbereich der Schleife, die darauf folgt. Sie können mehrere Pragmas in beliebiger Reihenfolge auf eine Schleife anwenden, aber Sie müssen jedes in einer separaten Pragmaanweisung angeben.
Siehe auch
Referenz
Automatische Parallelisierung und automatische Vektorisierung