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
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