You are on page 1of 17

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Prezentare curs

Algoritmi Paraleli si
Distribuiti

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 1
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Obiectiv

Acumularea competentelor necesare pentru


rezolvarea problemelor prin solutii paralele sau
distribuite

•  Calcul paralel = executia simultana (concurenta) a


mai multor parti ale unui program
•  Calcul distribuit = executia in sisteme diferite (cu
resurse diferite) a partilor unei aplicatii

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 2
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

APD difera de algoritmii secventiali


•  Au la baza concepte diferite
–  Communicating Sequential Processes (Hoare)
•  Concurenta
•  Atomicitate
•  Sincronizare
•  Folosesc modele de programare care asigura comunicarea
intre procese prin
–  Date partajate
–  Comunicare de mesaje
è Algoritmii paraleli si distributi NU sunt simple extensii
sau versiuni ale celor secventiali
è Sunt folosite abordari diferite pentru dezvoltarea lor
10/4/15 10/4/15 Protocoale de comunicaţie – Curs
Algoritmi 1 si distribuiti
paraleli 3
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Studiul algoritmilor paraleli si distribuiti include


•  Conceptele de baza
•  Modelele de programare
•  Metode de proiectare a solutiilor paralele si
distribuite
•  Metode de evaluare a performantei solutiilor
folosind modele de complexitate
•  Modalitati de implementare a solutiilor folosind
limbaje de programare / biblioteci
–  OpenMP (la laborator) si Java concurent – alg. paraleli
–  MPI – alg. distribuiti

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 4
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Proiectarea solutiilor paralele si distribuite


•  Este partea centrala a cursului
•  Prezinta solutii consacrate din principalele clase de
algoritmi
–  Ajuta la deprinderea metodelor de rezolvare (ingineria)
–  Stimuleaza initiativa in devoltarea unor solutii noi
•  Foloseste un limbaj pseudocod simplu care
–  Incorporeaza conceptele si modelele de programare
–  ascunde detaliile de implementare
–  propus de G.R.Andrews in lucrarea Concurrent
Programming. Principles and Practice

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 5
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

•  Principalele clase de algoritmi paraleli


–  Paralelism de date
–  Variabile partajate MIMD
•  Sectiuni critice
•  Producatori si consumatori
•  Problema filozofilor
•  Problema cititorilor si scriitorilor
–  Variabile partajate PRAM
•  Cautarea paralela

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 6
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

•  Principalele clase de algoritmi distribuiti

•  Ceasuri logice si ordonarea


evenimentelor.
–  Solutia lui Lamport
–  Vectori de timp.

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 7
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

•  Algoritmi unda – descriere si proprietati


–  Algoritmii inel, arbore, ecou.
–  Algoritmul fazelor.
–  Algoritmul lui Finn.

•  Alegerea liderului
–  Alegerea liderului cu algoritmi unda.
–  Algoritmii LeLann, Lelann-Chang-Robert,
Hirschberg-Sinclair

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 8
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

•  Stabilirea topologiei
–  Algoritmul pulsatiilor.
–  Mesaje de sondaj cu ecou

•  Terminarea programelor distribuite


–  Terminarea pentru topologii inel si graf.
–  Detecţia terminării folosind confirmările
mesajelor: Algoritmul Dijkstra-Scholten.
–  Detecţia terminării folosind marcaje.
–  Algoritmul lui Huang.

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 9
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

•  Algoritmi pentru sisteme tolerante la


defecte
–  Problema generalilor bizantini.
–  Solutie cu mesaje orale.
–  Solutie cu mesaje semnate.
•  Algoritmi genetici paraleli
–  Algoritmi genetici: model, justificare,
implementari.
–  Problema transportului.
–  Paralelizarea algoritmilor.
10/4/15 10/4/15 Protocoale de comunicaţie – Curs
Algoritmi 1 si distribuiti
paraleli 10
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Analiza complexitatii calculului paralel

•  Masuri de performanta.
•  Calculul complexitatii.
•  Proprietati ale modelului de evaluare.
•  Modelul Work-depth.

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 11
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Complexitatea calculului distribuit

•  Modelul Foster.
•  Modelul LogP.

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 12
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Atentie!

Ordinea din curs in care se studiaza aceste


subiecte
nu este
Ordinea din aceasta prezentare a cursului

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 13
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Actualitatea si importanta cursului


•  Modelele si tiparele de rezolvare sunt folosite curent, unele
pe scara larga
–  Ex. Modelul Map-Reduce de la Google
•  Un calculator modern are mai multe procesoare sau
procesoare “multi-core”
•  Clustere de calculatoare sunt folosite curent
•  Compilatoarele pentru limbajele concurente (Java) si
bibliotecile de comunicare a mesajelor (MPI) sunt furnizate
de toate firmele mari de software
•  Un numar mare de aplicatii se bazeaza pe solutii paralele si
distribuite
10/4/15 10/4/15 Protocoale de comunicaţie – Curs
Algoritmi 1 si distribuiti
paraleli 14
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Utilitatea cursului
•  Dezvolta un nou mod de gandire
•  Usureaza intelegerea unor solutii prezentate in
cursurile de
–  sisteme de operare
–  retele de calculatoare
–  sisteme de programe pentru retele de
calculatoare
–  arhitecturi paralele si distribuite
–  baze de date etc.
•  Cursul usureaza si da sens activitatii de laborator

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 15
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Cum va asigurati succesul la examen?


•  Participarea vioaie la curs
•  Intelegerea din clasa
•  Invatarea cursului inainte de laborator
•  Rezolvarea problemelor propuse la laborator
•  Rezolvarea temelor de casa

•  NU lasa pe maine ce poti face azi!

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 16
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Bibliografie
G.R.Andrews, Foundations of Multithreaded,
Parallel, and Distributed Programming,
Addison Wesley, Inc., 2000
G.R.Andrews, Concurrent Programming.
Principles and Practice, The Benjamin/
Cummings Publishing Company, Inc., 1991
Gerard Tel, Introduction to Distributed
Algorithms, Cambridge University, 1994
A.G. Akl, Parallel Computation. Models and
Methods Prentice Hall 1997
Ian Foster, Designing and Building Parallel
Programs Addison-Wesley Publishing
Company, 1995

10/4/15 10/4/15 Protocoale de comunicaţie – Curs


Algoritmi 1 si distribuiti
paraleli 17