10.02.2013 Aufrufe

Untitled

Untitled

Untitled

MEHR ANZEIGEN
WENIGER ANZEIGEN

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-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!