loop2 (Source):
alle Direktiven beginnen mit !$OMP
Grundkonstruktion: Parallele Region
-
PARALLEL / END PARALLEL
-
fork/join, Barrier am Ende
-
Aufteilung der Arbeit mit
DO
(optional
END DO)
-
Indexbereich 1..n wird in Blöcke zerlegt und auf Threads verteilt
Schleifenzähler i und j automatisch privat
-
alle im PARALLEL-Bereich (lexikalisch = ohne Routinen)
andere Variable shared (a, v, work)
-
kein Problem für a, work (nur gelesen)
-
ok für v (alle Threads schreiben in verschiedene Index-Bereiche)
Funktion kein Problem, da keine Seiteneffekte,
-
lokale Variable von f sind privat
keine Überprüfung auf Korrektheit durch den Compiler!