23.12.2012 Aufrufe

Vielteilchentheorien in Modellräumen mit diskreter Darstellung

Vielteilchentheorien in Modellräumen mit diskreter Darstellung

Vielteilchentheorien in Modellräumen mit diskreter Darstellung

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.

4.3 Programmiertechniken 51<br />

Prozessoren 16 (64-bit PA-RISC PA-8200)<br />

Taktrate 200 MHz<br />

Cache 2 MB Instruktionen, 2 MB Daten, write back, direct<br />

mapped<br />

Hauptspeicher 8 GB<br />

Peakleistung 12.8 GFlops/s<br />

Bandbreite Mem/CPU 8 × 8 nicht blockierender Crossbar <strong>mit</strong> 16 × 960 MB/s<br />

Latency ∼ 500ns<br />

Tabelle 4.3.3: Hardwareprofil des verwendeten HP V-Class V2200 Rechners<br />

natürlich zu uns<strong>in</strong>nigen Ergebnissen führt. Deswegen muß man vor e<strong>in</strong>er Parallelisierung<br />

sicherstellen, daß die Programmteile auf ke<strong>in</strong>en Fall den selben Speicherbereich verändern<br />

und sie ke<strong>in</strong>e Anfangsdaten benötigen, die e<strong>in</strong> anderer Prozess erst noch errechnen muß.<br />

Dies <strong>in</strong>sbesondere weil <strong>mit</strong> den Compilerdirektiven z. B. e<strong>in</strong>e Schleife parallelisiert werden<br />

kann, ohne daß der Compiler überprüft, ob das wirklich fehlerfrei möglich ist.<br />

Parallele Schleifen<br />

Aufgrund der oben dargelegten Eigenschaften der Parallelisierung <strong>mit</strong> Compilerdirektiven,<br />

muß sorgfältig geprüft werden, ob e<strong>in</strong>e Schleife parallelisierbar ist, oder nicht. Beispiele<br />

für nicht parallelisierbare Schleifen s<strong>in</strong>d Schleifen <strong>in</strong> denen<br />

– vor Beg<strong>in</strong>n der Schleife die Zahl der Iterationsschritte nicht bekannt ist (While–<br />

Schleifen),<br />

– Variablen konditional aufaddiert werden,<br />

– Funktionen aufgerufen werden, die Variablen außerhalb der Schleife verändern.<br />

H<strong>in</strong>gegen ist e<strong>in</strong>e Schleife immer dann parallelisierbar, wenn sie <strong>in</strong> mehrere Unterschleifen<br />

aufgeteilt werden kann, wobei die Reihenfolge, <strong>in</strong> der die Unterschleifen abgearbeitet werden,<br />

beliebig ist. Standardbeispiel für e<strong>in</strong>e parallelisierbare Schleife ist die äußere Schleife<br />

bei e<strong>in</strong>er Matrix–Vektor–Multiplikation.<br />

n�<br />

vi = aijuj (i =1,...,n) (4.3.2)<br />

j=1<br />

Der i–te E<strong>in</strong>trag des neu berechneten Vektors �v hängt nur von der i–ten Zeile der Matrix<br />

a ab, so daß es gleichgültig ist, ob man die n E<strong>in</strong>träge des Vektors v der Reihe nach

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!