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

36 t r a n s f e r (2�dmax+5)=dimag (E( j z v ( imax ) ) )<br />

37 c a l l MPI Send ( t r a n s f e r , 2 �DMAX+5, MPI Double Precision ,<br />

38 & imin , 4 2 , MPI Comm world , i e r r o r )<br />

39 e l s e i f (Rank . eq . imin ) then<br />

40 c a l l MPI Recv ( t r a n s f e r , 2 �DMAX+5, MPI Double Precision ,<br />

41 & imax , 4 2 , MPI Comm World , status , i e r r o r )<br />

42 do i =1,DMAX<br />

43 r ( i , j z v ( imin)+1)= t r a n s f e r ( i )<br />

44 F( i , j z v ( imin)+1)= t r a n s f e r ( i+dmax)<br />

45 enddo<br />

46 Psi ( j z v ( imin)+1)= t r a n s f e r (2�dmax+1)<br />

47 WF( j z v ( imin)+1)=dcmplx ( t r a n s f e r (2�dmax+2) ,<br />

48 & t r a n s f e r (2�dmax+3))<br />

49 E( j z v ( imin )+1) =dcmplx ( t r a n s f e r (2�dmax+4) ,<br />

50 & t r a n s f e r (2�dmax+5))<br />

51 endif<br />

52 j z v ( imin)= j z v ( imin)+1<br />

53 j z v ( imax)= j z v ( imax)−1<br />

54 goto 5000<br />

55 5100 continue<br />

56 j z=j z v (Rank)<br />

57 END<br />

Die Funktionsweise ist dabei wie folgt: die MPI-Funktion MPI AllGather vereint alle<br />

Walker im Vektor jzv. Wenn an einem Prozessor ein relativer Überhang und an einem<br />

der anderen Prozessoren ein relatives Defizit an Walkern besteht, so wird der überzählige<br />

Walker verschoben. Der Prozessor mit dem Überhang schaltet dazu in den Sendemodus<br />

(MPI Send), der mit dem Defizit in den Empfangsmodus (MPI Recv). Es müssen alle<br />

Daten des Walkers verschoben werden. Dazu gehören alle zur aktuellen Position gespeicherten<br />

Informationen wie die Position selbst (r), die Quantenkraft (F), der Wert der<br />

Wellenfunktion (Psi), der Gewichtsfaktor (WF) und die lokale Energie (E). Die <strong>für</strong> diesen<br />

Fall von MPI zur Verfügung gestellten sog. ” derived datatypes“ erwiesen sich als nicht<br />

praktikabel, weshalb künstlich eine entsprechende Gemeinschaftsvariable (transfer) geschaffen<br />

wurde.<br />

4.<strong>1.</strong>3. Programmende<br />

Die Statistikdaten werden am Ende des Blockes, also während des Programmablaufs<br />

ständig zum Hauptprozeß (Rang 0) geschickt und separat verarbeitet, so daß am Ende<br />

des Programms nur noch die Ausgabe der Ergebnisse steht (siehe Listing 4.3). Nach der<br />

Angabe der Kernladungszahl, der Elektronenzahl N und der Magnetfeldstärke (β, βZ =<br />

β/Z 2 ), folgen die Anzahl der Konfigurationen (Walker) und die Anzahl der parallel<br />

verwendeten Rechner, sowie die gesamte Rechenzeit in Sekunden. Anschließend folgt<br />

60

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!