Untitled
Untitled
Untitled
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
24 2 Das OpenMP-Ausführungsmodell<br />
#pragma omp parallel<br />
{<br />
}<br />
// ...<br />
Master Thread<br />
Master Thread Thread 1 Thread 2 ... Thread n<br />
Master Thread<br />
Abb. 2.1. OpenMP arbeitet nach dem Fork-Join-<br />
Ausführungsmodell.<br />
notwendig, damit die Semantik des nun wieder in die serielle<br />
Ausführung übergehenden Programms erhalten bleibt,<br />
hat jedoch Auswirkungen auf die Leistung und Skalierbarkeit<br />
desselben: Der parallele Codeabschnitt kann von einem<br />
Thread-Team nur so schnell wie durch das langsamste der<br />
Teammitglieder ausgeführt werden, auf das die schnelleren<br />
Threads warten müssen.<br />
Es ist der konkreten OpenMP-Implementierung im Compiler<br />
überlassen, von welchem Typ die gestarteten Threads<br />
in einem Team sind. Eine Implementierung könnte sie als<br />
vollwertige Prozesse mit Shared Memory realisieren, eine<br />
andere dagegen durch leichtgewichtige Threads beispielsweise<br />
auf Basis der Pthreads-Bibliothek. Im Sinne von<br />
OpenMP ist ein Thread einfach ein Kontrollfluss, der zusammen<br />
mit anderen im gemeinsam genutzten Adressraum<br />
des ursprünglich sequentiellen Programms ausgeführt wird<br />
und Zugriff auf alle in ihm enthaltenen Variablen hat.<br />
2.1 Hallo Welt!<br />
Ein ungeschriebenes Gesetz der Informatik verlangt, dass<br />
alle Bücher über Programmiersprachen mit dem obligato-