Disciplina: Paralelizarea automată a programelor	Cod: MI090	

Semestrul	Ore: C+S+L	Tipul	Specializarea	
6	2+1+0	optionala	Informatica	

Cadre didactice indrumatoare	Lect. Dr. VANCEA Alexandru Ioan, vancea@cs.ubbcluj.ro	
Obiective	Familiarizarea studentului cu aspectele motivatiei trecerii la anumite forme de paralelism precum si cu problematica incorporarii in cadrul compilatoarelor a unor facilitati de paralelizare automata a programelor secventiale. Optimizarea executiei si generarea de cod pentru programele paralele obtinute sunt aspecte ce intregesc traseul cod sursa secvential - program paralel executabil, traseu des utilizat la nivelul pachetelor de programe de prelucrare paralela utilizate pe scara larga in lume. Se urmareste aprofundarea formalismului ce sta la baza exprimarii posibilitatilor de paralelizare automata precum si a optimizarii de cod paralel.	
Continut	1. Conceptul de prelucrare paralela: interpretari, tipuri de paralelism,
   motivatia trecerii spre prelucrarea paralela.
2. Ipostaze ale paralelismului la nivelul unui program.
3. Modele ale limbajelor de programare paralela: limbaje orientate
   procedural, orientate spre mesaje, dirijate de operatii, orientate
   spre date, limbaje functionale si logice.
4. Abordarea conceptelor de performanta si eficienta in programarea paralela.
5. Paralelizarea automata a programelor secventiale.
5.1. Dependenta de date. Vectori de dependenta. Directii de dependenta.
5.2. Calculul relatiilor de dependenta de date. Algoritmi de decizie.
5.3. Transformari echivalente ale ciclurilor orientate spre prelucrarea
     paralela.
5.4. Generarea de cod paralel: metodele Lamport si Feautrier.
5.5. Studii de caz: proiectul OMEGA, pachetele ADARP, NESL si LOOPO.
6. Executia programelor paralele.
6.1. Incarcarea echilibrata a procesoarelor: tehnici si algoritmi.
6.2. Problema maparii in sistemele multiprocesor: abordari statice si 
     dinamice.	
Bibliografie selectiva	1. E.V.KHRISHNAMURTHY - Parallel Processing, Addison-Wesley, 1990.
2. BARR E. BAUER - Practical Parallel Programming, Academic Press, 1992.
3. UTPAL BANERJEE - Data Dependence Analysis and Loop Transformations,  Kluwer Academic Publishers, 1997.
4. H.ZIMA AND B.CHAPMAN - Supercomputers for Parallel and Vector Computers, ACM Press, 1991.
5. C.D.POLYCHRONOPOULOS - Parallel Programming and Compilers, Kluwer  Academic Publishers, 1988. 
6. MICHAEL WOLFE - Optimizing supercompilers for supercomputers, MIT Press, 1990.
7.  Reteaua Internet.  
	
Evaluare	Examen scris la sfirsitul semestrului. Nota este calculata ca medie ponderata intre nota la lucrarea scrisa , nota pe activitatea practica de la laborator si o nota obtinuta in urma prezentarii unei sinteze (proiect de semestru) care sa reflecte preocupari actuale in domeniul procesarii paralele la nivel mondial.