10.01.2013 Aufrufe

2.6M - 1. Institut für Theoretische Physik - Universität Stuttgart

2.6M - 1. Institut für Theoretische Physik - Universität Stuttgart

2.6M - 1. Institut für Theoretische Physik - Universität Stuttgart

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. Parallelisierung<br />

Bei der Parallelisierung wird zumeist ein Rechencluster eingesetzt. Unter einem Rechencluster<br />

wird die Vernetzung mehrerer Einzelrechner zu einem Gesamtsystem verstanden.<br />

Die einzelnen Rechner sind über die Variable Rang gekennzeichnet. Ein Rechner, meist<br />

der mit Rang 0 übernimmt neben den üblichen Rechenoperationen die Führung bzw. Koordination,<br />

d.h. die Verteilung und Zusammenführung der Daten der ” Rechenknechte“.<br />

Dabei kommt diese Struktur gerade den Programmen zu Gute, die über Teilprogramme<br />

verfügen, die unabhängig voneinander gerechnet werden können, so wie dem in Kapitel<br />

2 vorgestellten Quanten-Monte-Carlo-Verfahren. Außerdem können nun statt z.B.<br />

500 Walker auf einem Rechner zu simulieren, genauso gut je 25 Walker auf 20 vernetzten<br />

Rechnern simuliert werden. Bei der Durchführung der Parallelisierung des DQMC-<br />

Verfahrens gibt es einige Punkte zu beachten, auf die im folgenden näher eingegangen<br />

wird.<br />

4.<strong>1.</strong> Anforderungen an die Programmierung<br />

Auf den Plattformen der Cluster sind verschiedende Implementierungen installiert, die<br />

die Kommunikation zwischen den einzelnen Rechnern standardisieren und damit vereinfachen.<br />

Die Routinen des MPI Forums (http://www.mpi-forum.org), genauer der MPI<br />

Standard ( ” Message-Passing Interface Standard“) wurden in dieser Arbeit verwendet.<br />

Alle Routinen beginnen mit MPI_, enthalten den Kommunikator MPI_Comm_World und<br />

in Fortran eine Fehlerrückmeldevariable ierror .<br />

4.<strong>1.</strong><strong>1.</strong> Initialisierung<br />

Bei der Initialisierung werden nicht nur sämtliche Variablen gesetzt, sondern es muß<br />

sichergestellt sein, daß das Programm, welches auf allen Rechnern gleichzeitig ausgeführt<br />

wird, zwar das Gleiche, aber nicht dasselbe rechnet. Beim Quanten-Monte-Carlo-<br />

Verfahren bedeutet dies, daß der Zufallszahlengenerator <strong>für</strong> jeden Rechner unterschiedlich<br />

initialisiert werden muß. Dies wird erreicht, indem die Initialisierung des Zufallszahlengenerators<br />

durch die Variable IR den dem Prozessor über das Batchsystem zugewiesenen<br />

Rang enthält, z.B.<br />

IR = −(1 + Rang). (4.1)<br />

Im nächsten Schritt gilt es die Walker (Nc = 500) zu setzen. Wegen der Singularität des<br />

Coulomb-Potentials wäre es ungeschickt den/die Walker in den Koordinatenursprung zu<br />

57

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!