!!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!!...

15
Sebas-an Rothe & Alexander Lambertz Fish & Shark Parallele Programmierung Prak-kum SS 2012 1 / 15

Transcript of !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!!...

Page 1: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

       

Fish  &  Shark  

Parallele  Programmierung  Prak-kum  SS  2012  

1  /  15  

Page 2: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Gliederung  •  Konzept  •  Konzept  der  Parallelisierung  •  Datenmodell  •  Code  Snippets  •  Analyse  •  Visualisierung  •  Aufgetretene  Probleme  

2  /  15  

Page 3: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Das  Konzept  •  2  dimensionales  Simula-onsfeld  •  Fische  entstehen  an  zufälligen  Stellen  auf  dem  Spielfeld  

•  Haie  fressen  Fische  und  vermehren  sich  dann  •  Fische  und  Haie  bewegen  sich  auf  dem  Spielfeld  (Nicht  diagonal)  

•  Plankton  entsteht  zu  Beginn  der  Simula-on  und  vergrößert  sich  dann  

•  Haie  und  Fische  haben  eine  Lebensdauer  

3  /  15  

Page 4: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Konzept  der  Parallelisierung  

Beispiel:  8  Prozesse  

4  /  15  

Page 5: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Konzept  der    Parallelisierung  (2)  

MPI_Init

Schleife(Simulationsfeld)

MPI_Iprobe

MPI_Irecv

MPI_Isend

MPI_Iprobe

ja

ja

nein

Spielfeldbearbeitung

nein

CheckIfBorder

yes

nein

MPI_Finalize

MPI_Wait

Schleife beenden?

nein

ja

Schleife (Zeitpunkte)

Daten Exportieren

MPI_Barrier

MPI_Iprobe

MPI_Irecv

MPI_Iprobe

ja

ja

nein

nein

Adds Exportieren

5  /15  

Page 6: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Datenmodell  

2  dimensionales  Spielfeld  

4  Arrays  um  den  Zustand  der  

anderen  Prozesse  zu  speichern  

aField[y][x][0-­‐2]  0:  Typ  des  Elements  1:  Sterbe/Vermehrzeit  2:  Touched  this  round  

6  /  15  

Page 7: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Ini-alisierung  der  Arrays  aField[y][x][0-­‐2]  0:  Typ  des  Elements  1:  Sterbe/Vermehrzeit  2:  Touched  this  round  

7  /  15  

Page 8: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

MPI  -­‐  Senden  

Datentransferformat  

mpiAData[0-­‐4]  0:  Alte  Y  Posi-on  1:  Alte  X  Posi-on  2:  Neue  Y  Posi-on  3:  Neue  X  Posi-on  4:  Elemenayp  

checkIfBorder(y,x)  1  

2    

3  

4  

8  /  15  

Page 9: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

MPI  -­‐  Empfangen  

9  /  15  

Page 10: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Verarbeiten  

10  /  15  

Page 11: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Analyse  

SequenIelle  ImplementaIon  

Parameter:  20.000  x  10.000  Spielfeld;  50  %  Fische;  5  %  Haie;  1  Plankton;  100  Bilder  

11  /15  

Page 12: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Visualisierung  •  Einlesen  der  generierten  Dateien  in  alphabe-scher  Reihenfolge  

•  Erste  Zeile  enthält  Zusatzinforma-onen    -­‐>  Anzahl  Prozesse,  Größe  der  "Teilozeane“  

•  Danach:  X-­‐Koordinate  –  Element  •  Y-­‐Koordinate  durch  Zeilennummer  •  Nachträglich  Änderungen  durch  Prozesskommunika-on  

•  hap://bit.ly/TVghQu    

12  /15  

Page 13: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Aufgetretene  Probleme  •  Endlosschleifen  •  Blockierendes  Senden  •  Nicht  Blockierendes  Senden  ohne  MPI_Wait  •  Zu  langes  Suchen  nach  freier  Posi-on  •  Signal  5:  Maximale  Dateigröße  1GB  •  Signal  11:  Zugriff  auf  nicht  ini-alisierte  Bereiche  eines  Arrays  

13  /  15  

Page 14: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Schnell  leerendes  Spielfeld  

14  /  15  

Page 15: !!!Fish& Shark! !!!! Fish& Shark! · Sebas-an!Rothe!&!Alexander!Lambertz Konzeptder!! Parallelisierung!(2)! MPI_Init Schleife (Simulationsfeld) MPI_Iprobe MPI_Irecv MPI_Isend MPI_Iprobe

     Fish  &  Shark  

Sebas-an  Rothe  &  Alexander  Lambertz  

Quellen  

•  Bild:  hap://www.harboarts.com/shirtdesigner  •  hap://de.wikipedia.org/wiki/Wator  

15  /  15