eskel – edinburgh skeleton library parallele programmierung mit skeletten seminararbeit ingo...
TRANSCRIPT
![Page 1: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/1.jpg)
eSkel – edinburgh Skeleton libraryParallele Programmierung mit Skeletten
SeminararbeitIngo DyrbuschMai 2007
![Page 2: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/2.jpg)
2
Skelett-Programmierung
Inhalt Grundlagen
Was ist ein Skelett? Ziele von eSkel Daten- vs. Funktionale Parallelität
Basiselemente von eSkel Prozesse & Aktivitäten Datenmodell
eSkel - Skelette Task-Farm Pipeline Divide & Conquer Skelett - Topologien
Neuerungen in eSkel 2 Zusammenfassung und Ausblick
![Page 3: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/3.jpg)
3
Was ist ein Skelett?
Grafik: [Co04]
Von der unstrukturierten zur strukturierten Programmierung
Beispiel „load-balancing“ (Task-Farm):
![Page 4: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/4.jpg)
4
eSkel: Konzeption & ZieleAnforderungen Ansprechend für MPI Programmierer Schnelle Einarbeitung Auszahlung in kurzer Zeit
Folgerungen Bibliothek Basis: C/MPI.
![Page 5: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/5.jpg)
5
Paralleles Arbeiten
Reihenfolgebeziehung
Aufgabe
TeammitgliedZu bearbeitendes Gebiet
Security System ausschaltenAllan
Rasen mähen Wege säubern Unkraut jätenAllan:
NordparkBernice: Südpark
Charlene: Ostpark Dominic:
Westpark
Ed: Nord- u. Ostpark
Francis: Süd- u.
Westpark
Georgia:Vorgarten Francis:
Hauptgarten
Rasenspränkler checkenAllan
Security System einschaltenAllan
Grafik: [Qu04, S. 11]
Daten- und Funktionale Parallelität
![Page 6: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/6.jpg)
6
Basiselemente von eSkelProzesse und Aktivitäten
Reihenfolgebeziehung
Aufgabe
TeammitgliedZu bearbeitendes Gebiet
Security System ausschaltenAllan
Rasen mähen Wege säubern Unkraut jätenAllan:
NordparkBernice: Südpark
Charlene: Ostpark Dominic:
Westpark
Ed: Nord- u. Ostpark
Francis: Süd- u.
Westpark
Georgia:Vorgarten Francis:
Hauptgarten
Rasenspränkler checkenAllan
Security System einschaltenAllan
Grafik: [Qu04, S. 11]
Aktivitäten
Prozesse
![Page 7: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/7.jpg)
7
Basiselemente von eSkel eDM - Atom
Tripel: Zeiger, Länge, Typ (vgl. MPI) Spread (= Ausdehnung)
eDM - Collection Bündelung von eDM - Atomen.
Datenmodell
![Page 8: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/8.jpg)
8
eSkel - SkeletteSkelett-Familie „Task-Farm“
Ein Ergebnis pro Atom
Expliziter Informationsaustausch
Impliziter Farmer Farm1for1 Farm
Expliziter Farmer SimpleFarm1for1 SimpleFarm
Farmer
Worker Worker Worker
Interaktion
Aktivität
Grafik vgl: [PK05, S. 3]
![Page 9: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/9.jpg)
9
eSkel - Skelett: Farm1for1
void Farm1for1(int nw, eSkel atom t * worker (eSkel atom t *), int col, void *in, int inlen, int inmul, spread t inspr, MPI Datatype inty, void *out, int outlen, int *outmul, spread t outspr, MPI Datatype outty, int outbuffsz, MPI Comm comm);
void Farm1for1 ( int nw,eSkel_atom_t * worker (eSkel_atom_t *),int col,void *in, int inlen, int inmul,spread_t inspr, MPI_Datatype inty,void *out, int outlen, int *outmul, spread_t
outspr,MPI_Datatype outty, int outbuffsz,MPI_Comm comm)
Anzahl der WorkerWorker-Aktivität (Zeiger auf C-Funktion)Zuordnung von Prozessen zu AktivitätenInput eDM-Collection & TypinformationenOutput eDM-Collection, Typinformationen & Output-BufferCommunicator (Kontext)»
Ein Ergebnis pro Atom; impliziter Farmer
![Page 10: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/10.jpg)
10
eSkel - Skelett: Farmvoid Farm ( int nw,
void worker (void),int col,void *in, int inlen, int inmul,spread_t inspr, MPI_Datatype inty,void *out, int outlen, int *outmul, spread_t
outspr,MPI_Datatype outty, int outbuffsz,MPI_Comm comm)
Farmer
Worker Worker Worker
Interaktion
Aktivität
Grafik vgl: [PK05, S. 3]
Expliziter Informationsaustausch; impliziter Farmer
![Page 11: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/11.jpg)
11
void SimpleFarm( int nw,void worker (void),int col,void *in, int inlen, int inmul,spread_t inspr, MPI_Datatype inty,void *out, int outlen, int *outmul, spread_t
outspr,MPI_Datatype outty, int outbuffsz,MPI_Comm comm)
eSkel - Skelett: SimpleFarmExpliziter Informationsaustausch; expliziter Farmer
![Page 12: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/12.jpg)
12
eSkel - Skelett: Pipeline
Arbeitsschritt 1 Arbeitsschritt 2 Arbeitsschritt 3 Arbeitsschritt 4
Interaktion
Aktivität
void Pipeline ( int ns,void (*stages[])(void),int col,spread_t spr[], MPI_Datatype ty[],void *in, int inlen, int inmul,void *out, int outlen, int *outmul, int outbuffsz,MPI_Comm comm)
Grafik vgl: [Tut02, S. 3]
Expliziter Informationsaustausch
![Page 13: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/13.jpg)
13
Pipeline & Parallelität
Arbeitsschritt 1 Arbeitsschritt 2 Arbeitsschritt 3 Arbeitsschritt 4Fertige Autos
Grafik: [Qu04, S. 13]
![Page 14: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/14.jpg)
14
eSkel - Skelett: ButterflyFür Divide & Conquer Algorithmen mit folgenden
Eigenschaften:
Alle Aktivitäten in der Teilungsphase Anzahl der Prozesse zu Anfang Potenz von 2 und halbiert
sich von Level zu Level Interaktionen zwischen Prozessoren treten paarweise
auf – in der Form, dass die Dimensionen eines Hypercubes heruntergebrochen werden.
Ein Divide & Conquer Skelett
![Page 15: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/15.jpg)
15
eSkel - Skelett: Butterfly
Grafik: [Co04]
![Page 16: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/16.jpg)
16
eSkel - Skelett: Butterfly
Grafik: [Co04]
![Page 17: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/17.jpg)
17
eSkel - Skelett: Butterfly
Grafik: [Co04]
![Page 18: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/18.jpg)
18
eSkel - Skelett: Butterfly
void Butterfly ( int nd,void level(void),MPI_Datatype ty,MPI_Comm comm)
![Page 19: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/19.jpg)
19
Skelett - Topologien
Farmer
WorkerWorker ...
Farm
AufgabenAufgaben
ErgebnisseErgebnisse
Arbeitsschritt 1 Farmer Arbeitsschritt 3
WorkerWorker ...
Farm
Aufgaben Ergebnisse
AufgabenAufgaben
ErgebnisseErgebnisse
Pipeline
Grafik vgl: [PK05, S. 3]
![Page 20: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/20.jpg)
20
Neuerungen in eSkel 2 Skelette
Pipeline, Deal, (Farm, HaloSwap, Butterfly)
...
Grafik vgl: [BCGH205, S. 2]
Deal:
![Page 21: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/21.jpg)
21
Neuerungen in eSkel 2 Datenmodell
Neu: eDM-Molekül Interaktionsart explizit: Interaction mode
IMPL, EXPL, DEV Verschachtelungsart explizit: Data mode
BUF, STR.
![Page 22: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/22.jpg)
22
Neuerungen in eSkel 2void Pipeline ( int ns,
Imode_t imode[],eSkel_molecule_t * (*stages[])(eSkel_molecule_t
*), int col,Dmode_t dmode,spread_t spr[], MPI_Datatype ty[],void *in, int inlen, int inmul,void *out, int outlen, int *outmul, int outbuffsz,MPI_Comm comm)
Molekül, Interaktions- und Verschachtelungsart am Beispiel der Pipeline-Signatur
![Page 23: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/23.jpg)
23
Zusammenfassung Skelette als sinnvolle Grundlage für die parallele
Programmierung Grundlegende Forschungsergebnisse: Verschachtelungs-
& Interaktionsmodi Einarbeitungszeit ~ 1h.
![Page 24: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/24.jpg)
24
Ausblick Effizienz der Implementierungen leidet
nachgewiesenermaßen nur wenig eSkel leider noch im Stadium eines Prototyps In Planung:
Mehr Demo-Anwendungen Interne Optimierungen Ausweitung des Skelett-Angebots Vereinfachte API (evtl. neue Basis: JAVA-MPI?!).
![Page 25: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/25.jpg)
25
![Page 26: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/26.jpg)
26
Quellennachweis[BCGH205] A. Benoit, M. Cole, S. Gilmore, J. Hillston: Using eSkel to
implement the multiple baseline stereo application, Proceedings of ParCo, Malaga, 2005.
[Co04] M. Cole: Presentation, School of informatics, Edinburgh, 2004.
[PK05] M. Poldner, H. Kuchen: On Implementing The Farm Skeleton, Proceedings of HLPP, Werwick, 2005.
[Qu04] M. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2004.
[Tut02] M. Cole: The edinburgh Skeleon library - Tutorial introduction, 2002, URL: http://homepages.inf.ed.ac.uk/abenoit1/eSkel/, Abrufdatum: 24. April 2007.
![Page 27: ESkel – edinburgh Skeleton library Parallele Programmierung mit Skeletten Seminararbeit Ingo Dyrbusch Mai 2007](https://reader036.vdocuments.mx/reader036/viewer/2022062818/570491c51a28ab14218da680/html5/thumbnails/27.jpg)
27
„Spread“
Prozess 1 Prozess 2 Prozess 3
Lokaler „Spread“: 3 einzelne Datenelemente
Globaler „Spread“: 1 verteiltes DatenelementODER
Datenelement
Prozess
Quelle: [Co04, S. 395]