1_introducere_2013-3
DESCRIPTION
weqweTRANSCRIPT
![Page 1: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/1.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 1
1. Introducere
• Calcul paralel = impartirea unei aplicatii in task-uri executate simultan
• Calcul distribuit = impartirea unei aplicatii in task-uri executate in sisteme diferite (cu resurse diferite)
• Convergenta paralel ó distribuit – Folosesc din ce in ce mai mult aceleasi arhitecturi
• Sisteme distribuite folosite in calcul paralel • Calculatoare paralele folosite ca servere de mare performanta
– Au zone de aplicatii comune – Problemele de cercetare se intrepatrund si sunt abordate in
comun – Se foloseste termenul comun de “calcul de inalta
performanta” (HPC – High Performance Computing)
![Page 2: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/2.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 2
De ce folosim APD?
• creşterea performanţelor • siguranţa în funcţionare
• faze cu funcţionalităţi distincte
• aplicaţii inerent paralele
![Page 3: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/3.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 3
Arhitectura unui sistem de calcul
Modelul clasic “von Neumann”
(C = Control; P = Procesor; M = Memorie)
Ø SISD – Single Instruction Stream, Single Data Stream
![Page 4: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/4.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 4
Arhitecturi Paralele
• Taxonomia Flynn (1986) Ø SISD – Single Instruction Stream, Single Data Stream Ø SIMD – Single Instruction Stream, Multiple Data
Stream Ø MISD – Multiple Instruction Stream, Single Data
Stream Ø MIMD – Multiple Instruction Stream, Multiple Data
Stream • Importanta pentru implementarea algoritmilor paraleli si
distribuiti
![Page 5: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/5.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 5
SIMD
• Implementat ca
– sisteme cu memorie partajata - Shared Memory (PRAM) – multiprocesoare interconectate - Interconnected
Multiprocessors
![Page 6: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/6.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 6
SIMD (2)
• Shared memory (Parallel Random Access Machine - PRAM)
– EREW - Exclusive Read Exclusive Write – CREW - Concurrent Read Exclusive Write – ERCW - Exclusive Read Concurrent Write – CRCW - Concurrent Read Concurrent Write
• Influenteaza performanta
– Exemplu: citirea valorii unei variabila partajate • Un pas in CREW, CRCW • log N pasi in EREW, ERCW
![Page 7: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/7.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 7
v
P1 P2 P3 P4
X1 X2 X3 X4 A v
v v
v v
v v
v
Memoria comuna
citirile unei celule sunt exclusive (nu se pot face simultan)
• Valoarea este in variabila A in memoria comuna
• Foloseste X1, X2,… din memoria comuna pentru copiere
– numarul de còpii se dubleaza la fiecare pas è pentru N procesoare operatia se termina dupa log N pasi
![Page 8: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/8.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 8
SIMD (4)
• Retele de interconectare
• topologii – tablou – arbore – cub – hiper-cub
• Functionare; la fiecare cilcu, fiecare procesor – Citeste intrarile – Face calcule si modifica memoria proprie – Scrie iesirile
![Page 9: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/9.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 9
Arbore
![Page 10: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/10.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 10
Tablou
a[i,j] = (a[i-1,j]+ a[i+1,j]+ a[i,j-1]+ a[i,j+1])/4
![Page 11: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/11.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 11
MISD
• Fara relevanta practica
![Page 12: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/12.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 12
MIMD
• Implementata ca Multi-calculatoare (memorie distribuita) sau Multi-procesoare (memorie partajata)
![Page 13: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/13.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 13
MIMD (2)
• "Shared memory" – Uniform Memory Access (UMA) – Non-Uniform Memory Access (NUMA) – cache coherent Non-Uniform Memory Access (ccNUMA)
• "Multi-computer" – Massively Parallel Processors (MPP) – Network Of Workstations (NOW)
![Page 14: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/14.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 14
Metode de programare (1)
• Date partajate (Shared data)
![Page 15: 1_introducere_2013-3](https://reader035.vdocuments.net/reader035/viewer/2022080220/55cf9978550346d0339d8eb9/html5/thumbnails/15.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Algoritmi paraleli si distribuiti 15
Metode de Programare (2)
• Transmitere de mesaje - Message passing