•SzPE
•2008. tavasz
Párhuzamos programozási platformok
Parallel számítógép részei
Hardver
Rendszer szoftver
Több processzor Több memória Kapcsolatot biztosító hálózat Párhuzamos operációs rendszer Konkurenciát biztosító programozási konstrukciók
Alkalmazás szoftver
Párhuzamos algoritmusok
Cél: úgy használjuk a hardvert, a rendszer és az alkalmazás programot, hogy
Sebességnövekedést érjünk el Tp = Ts / p Nagy mennyiségű memóriát igénylő feladatokat is meg tudjunk oldani Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
2
•1
•SzPE
•2008. tavasz
Párhuzamos számítási platform
Logikai felépítés
Fizikai felépítés
Ahogy a felhasználó látja a gépet, amit a rendszer szoftver „mutat” Az aktuális hardver architektúra
A fizikai architektúra nagyrészt független a logikai felépítéstől
Párhuzamos programozási platfomrok
3
Logikai felépítés elemei
Vezérlő mechanizmus SISD/SIMD/MIMD/MISD: Single/Multiple Instruction Stream & Single/Multiple Data Stream
SPMD: Single Program Multiple Data
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
4
•2
•SzPE
•2008. tavasz
Logikai felépítés típusai
Kommunikációs modell szerint
Shared-Address Space „Megosztott címterű”
UMA/NUMA/ccNUMA
Message-Passing Üzenet-továbbítás
MPI PVM
Párhuzamos programozási platfomrok
5
Fizikai szervezés
Ideális párhuzamos számítógép architektúra
PRAM: Parallel Random Access Machine
PRAM modellek
EREW/ERCW/CREW/CRCW
Exkluzív/konkurens olvasás és/vagy írás
Konkurens írás a következőket jelentheti
Közös: párhuzamos írás engedélyezett, ha minden processzor ugyanazt az azonos értéket szeretné írni Tetszőleges: valamelyik írhat, a többi hibát kap Prioritásos: processzorok prioritás listába rendezettek és ennek megfelelően írnak Összegző: a mennyiségek összege kerül írásra Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
6
•3
•SzPE
•2008. tavasz
Fizikai felépítés
Kapcsolt hálózatok (Interconnection Networks: ICN)
Processzor-processzor és processzor-memória kapcsolatot biztosít Hálózatok osztályozása:
Statikus hálótatok, vagy direkt hálózatok: pont-pont kapcsolatok
Dinamikus hálózatok, vagy indirekt hálózatok: a hálózati kapcsolóelemek kapcsolják a processzorokat
Párhuzamos programozási platfomrok
7
Statikus és dinamikus ICN
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
8
•4
•SzPE
•2008. tavasz
Hálózatok mérhető jellemzői
Átmérő
Összekapcsolódás (connectivity)
A legkevesebb él, amelynek eltávolításával két azonos méretű félre bontható a háló – jobb, ha nagyobb
Félbevágási minimális sávszélesség
A legkevesebb él, amit eltávolítva, két hálózatra esik szét a rendszer – jobb, ha nagyobb Az utak multiplicitásának jellemzője
Félbevágási minimális szélesség (bisection width)
Maximális távolság két csomópont között – jobb, ha kisebb
Az él súlya megmutatja, hogy mennyi adat haladhat át rajta A minimális kommunikációs mennyiség, amit két tetszőleges fél között biztosított – jobb, ha nagyobb
Költség
Kapcsolatok száma – kevesebb jobb Párhuzamos programozási platfomrok
9
Dinamikus hálózati jellemző
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
10
•5
•SzPE
•2008. tavasz
Párhuzamos számítógép topológiák Megosztott memória Szétosztott memória
Quad Pentium - Shared Memory Multiprocessor Processor
Processor
Processor
L1 cache
L1 cache
L1 cache
Processor L1 cache
L2 Cache
L2 Cache
L2 Cache
L2 Cache
Bus interface
Bus interface
Bus interface
Bus interface
Processor/ memory bus I/O interface
Memory controller
I/O bus
Shared memory
Memory
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
12
•6
•SzPE
•2008. tavasz
Párhuzamos programozási lehetőségek
Szálakkal – a szálon kívül definiált változókat is Példa: Pthreads Soros programnyelv preprocesszor fordítási direktívákkal, amelyek megosztott változókat és párhuzamosságot biztosítanak Példa: OpenMP - OpenMP compiler Soros programnyelv extra nyelvi elemekkel, amelyek megosztott változókat és párhuzamosságot biztosítanak Példa UPC (Unified Parallel C) - UPC compiler. Párhuzamos programozási nyelv párhuzamosságot biztosító szintaktikával – a programozási compiler készít futatható kódot13 Párhuzamos platfomrok minden processzorra (kutatási terület)
Üzenet-küldés (MPI) Teljes, önálló számítógépek összekapcsolva
Interconnection network Üzenet Processzor
Lokális memória
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
14
•7
•SzPE
•2008. tavasz
Két dimenziós háló Számítógép/ processzor
Kapcsolat
Párhuzamos programozási platfomrok
15
3D-s hiperkocka 110 100
111 101
010 000
011 001
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
16
•8
•SzPE
•2008. tavasz
4D-s hiperkocka 0110
1110
0111
0100
0101
0010
1100
0001
1101
1010
0011
0000
1111
1000
1011 1001
Párhuzamos programozási platfomrok
17
Crossbar kapcsolat Memóriák
Processzorok
Kapcsolók
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
18
•9
•SzPE
•2008. tavasz
Fa topológia Root Links
Switch element
Processors
Párhuzamos programozási platfomrok
19
Többállapotú kapcsolt hálózatok Példa: Omega háló 2 ´ 2 switch elements (straight-through or crossover connections) 000 001
000 001
010 011 Inputs
010 011 Outputs
100 101
100 101
110 111
110 111 Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
20
•10
•SzPE
•2008. tavasz
Topológiák - összefoglaló
Párhuzamos programozási platfomrok
21
Topológiák - összefoglaló
Párhuzamos programozási platfomrok
•Párhuzamos programozási platformok
22
•11