10.02.2013 Aufrufe

Untitled

Untitled

Untitled

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3.2 Zugriff auf Variablen und Kommunikation zwischen Threads 37<br />

3.2 Zugriff auf Variablen und<br />

Kommunikation zwischen Threads<br />

Die Threads eines Teams werden in einem gemeinsam genutzten<br />

Adressraum ausgeführt. Im obigen SAXPY-Beispiel<br />

konnten alle Threads auf alle Variablen im parallelen Codeabschnitt<br />

zugreifen. Dies vereinfacht die Kommunikation<br />

zwischen den Threads erheblich: Um Daten an andere<br />

Threads zu senden, schreibt ein Thread die zu übertragenden<br />

Werte in gemeinsam genutzte Variablen, von wo aus<br />

sie von anderen Threads eingelesen werden können. Für<br />

manche Variablen ist dieses Verhalten jedoch unerwünscht.<br />

OpenMP ermöglicht es daher, sogenannte private Variablen<br />

exklusiv einem Thread zuzuordnen und ihren Gültigkeitsbereich<br />

auf diesen zu beschränken. Die in diesem Abschnitt<br />

vorgestellten Datenzugriffsklauseln, die über den Gültigkeitsbereich<br />

von Variablen entscheiden, sind im Einzelnen:<br />

• shared und private:<br />

Sie markieren eine Variable ausdrücklich als von allen<br />

Threads gemeinsam oder von einem Thread privat genutzt.<br />

• firstprivate und lastprivate:<br />

Der Inhalt privater Variablen ist beim Eintritt und beim<br />

Verlassen ihres Gültigkeitsbereichs undefiniert. Die Klauseln<br />

firstprivate und lastprivate erlauben eine Initalisierung<br />

bzw. Finalisierung ihrer Werte.<br />

• default:<br />

Wie im SAXPY-Beispiel gesehen, werden Variablen, die<br />

nicht ausdrücklich mit einer shared- bzw. private-<br />

Klausel aufgeführt werden, gemeinsam von allen Threads<br />

genutzt. Mit der Klausel default kann dieses Standardverhalten<br />

verändert werden.<br />

• reduction:<br />

Die reduction-Klausel schließlich kennzeichnet spezi-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!