Title: Evolutia retelelor de calculatoare si a protocoalelor de comunicatie
1Evaluari de performan?a în implementarile MPI
Scoica Adrian 342C3 adrian.scoica_at_gmail.com
03.01.12
1
Algoritmi paraleli si distribuiti Prezentari
Laborator
2Introducere si terminologie
- MPI este un acronim care vine de la message
passing interface - Sistem de transmisie de mesaje standard ?i
portabil. - Proiectat pentru a func?iona peste arhitecturi
paralele (sisteme eterogene). - Define?te semantica unei biblioteci (nu este o
biblioteca), adica un protocol de comunica?ie. - Versiuni ?i bindinguri
- Fortran 77 ?i C sunt limbajele suportate în mod
clasic. - MPI1 este prima verisune a standardului (Iunie
1994). - MPI2 a adus îmbunata?iri la (Iulie 1997), cum ar
fi One Sided Communication (Remote Memory
Access), Managementul Dinamic al Proceselor sau
I/O. - Momentan, bindinguri peste mai multe limbaje (C,
Java, Python)
03.01.12
2
Algoritmi paraleli si distribuiti Prezentari
Laborator
31. Implementari
- Fiind vorba de un standard liber, s-au realizat
mai multe implementari - MPICH cea mai cunoscuta implementare (este free
software, ?i este disponibil atât pentru
Linux/Unix cât ?i pentru Windows) - LAM implementation precursorul OpenMPI (LAM
vine de la Local Area Multicomputer) - Cray implementation scris pentru a rula doar în
interiorul unui sistem Cray X1, fara suport
pentru clustering - HP implementation folosit pentru întreaga gama
de arhitecturi oferite de HP - GridMPI optimizat pentru grid computing
(introduce PSPacer) - MicrosoftMPI inspirat din MPICH2, dar se
integreaza cu Windows Compute Cluster Server 2003
în domenii legate de securitate.
03.01.12
3
Algoritmi paraleli si distribuiti Prezentari
Laborator
42. Evaluarea performan?elor
- Atunci când facem evaluarea performan?elor pentru
o implementare de MPI, trebuie sa avem în vedere
câteva probleme - numar suficient de mare de procesoare
- pattern-uri de comunicare diferite (normal,
bufferat, sincron,...) - acces exclusiv la resurse (de exemplu, bandwidth)
- testarea cu apeluri nonblocante
- testarea cu aplica?ii mixte (amestec între
data-intensive ?i IO-intensive) - infrastructura peste care se comunica (eg.
InfiniBand, Myrinet) - Ce masuram laten?a ?i bandwidth
- LBW (latency badwidth test la transmiterea de
mesaje point-to-point) - ATA (all to all message interchange test)
- STS (some to some message interchange test)
Algoritmi paraleli si distribuiti Prezentari
Laborator
53. Rezultate pe clustere de PC-uri
- Au fost evaluate urmatoarele modele de comunicare
(pe MPICH, Chimp, Unify ?i LAM) - Ping (one-way)
- PingPong (bidirec?ional)
- Colectiva (broadcast, sincronizarea de bariere)
- Comportament diferit MPICH LAM în ceea ce
prive?te laten?a
Algoritmi paraleli si distribuiti Prezentari
Laborator
63. Rezultate pe clustere de PC-uri
- Concluzii
- Implementarea de algoritmi diferi?i func?ie de
tipul mesajului (MPICH) - MPICH are cea mai rapida implementare pentru
sincronizari de bariere (util la comunica?ii) - Comunicarea colectiva implementata în software
care depinde de comunicarea point-to-point
produce rezultate slabe.
Algoritmi paraleli si distribuiti Prezentari
Laborator
74. Rezultate dupa tipul re?elelor
- Au fost evaluate metode de comunicare peste
- InfiniBand (generic, folosit în High Performance
Computing) - Myrinet (proiectat special pentru clustere,
overhead de protocol mic) - Quadrics (proiectat pentru arhitecturi massively
paralel) - Se observa diferen?e de laten?a atât la
comunicarea One-Way cât ?i Bidirec?ional
Algoritmi paraleli si distribuiti Prezentari
Laborator
84. Rezultate dupa tipul re?elelor
- Concluzii
- Implementarile de MPI peste InfiniBand au
performan?a de laten?a ridicata ?i la?ime de
banda foarte buna - MPI over Quadrics ofera poten?ial de overlap
foarte bun între codul de IO ?i cel de calcul, în
timp ce MPI over InfiniBand sau Myrinet sufera
arhitectural din acest punct de vedere.
Algoritmi paraleli si distribuiti Prezentari
Laborator
95. Eficien?a paralelizarii folosind theraduri
- A fost evaluata eficien?a folosirii
MPI_THREAD_MULTIPLE pentru urmatoarele
implementari ale MPI - MPICH2
- OpenMPI
- IBM MPI
- SunMPI
- Se poate folosi multithreading în MPI acolo unde
este asigurat thread safety-ul logicii
implementate, dar de obicei exista costuri. MPI
prevede patru nivele de thread-safety - MPI_THREAD_SINGLE (un singur thread per proces)
- MPI_THREAD_FUNNELED (un singur thread folose?te
MPI) - MPI_THREAD_SERIALIZED (un singur thread folose?te
MPI la un moment dat) - MPI_THREAD_MULTIPLE
Algoritmi paraleli si distribuiti Prezentari
Laborator
105. Eficien?a paralelizarii folosind threaduri
Printre factorii care influen?eaza forma
graficelor pentru overheadul implementarii cu
threaduri, cel mai important este costul
locking-ului ?i numarul de threaduri/procesor din
sistem.
Algoritmi paraleli si distribuiti Prezentari
Laborator
115. Eficien?a paralelizarii folosind threaduri
Implementarile de la Sun ?i IBM au laten?a de 10
ori mai mare atunci când vorbim de implementarea
cu threaduri versus o implementare cu procese
fa?a de MPICH. Concluzie OpenMPI si MPICH ofera
performan?e mult mai bune pe clustere Linux decat
implementarile oferite de Sun ?i de IBM.
Algoritmi paraleli si distribuiti Prezentari
Laborator
12Bibliogafie
- 0 MPI _at_ LLNL
- https//computing.llnl.gov/mpi/mpi_benchmarks.html
- 1 Performance Evaluation of Some MPI
Implementations on MPI Clusters, Natawut Nupairoj
Lionel M. Ni. - www.mcs.anl.gov/thakur/papers/thread-tests.pdf
- 2 Test Suite for Evaluating Performance of MPI
Implementations, - Rajeev Thakur William Gropp
- http//citeseerx.ist.psu.edu/viewdoc/download?doi
10.1.1.40.9089reprep1typeps - 3 Wikipedia
- http//en.wikipedia.org
- 4 Performance Comparison of MPI Implementations
over InfiniBand, - Myrinet and Quadrics, Jiuxing Liu, Jiesheng Wu,
et. al.
Algoritmi paraleli si distribuiti Prezentari
Laborator
13Va multumesc!
Întrebari?
03.01.12
Algoritmi paraleli si distribuiti Prezentari
Laborator
13