Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Matematică
Programul de studii: Matematică informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0019	Programare paralelă: tehnici şi paradigme	

Semestrul	Ore: C+S+L	Categoria	Statutul	
5	2+0+2	specialitate	opţională	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
NICULESCU Virginia	Dr.	Conf.	Limbaje şi Metode de Programare	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
- Cunoasterea unor notiuni fundamentale despre programarea paralela.
- Cunoasterea si folosirea unor metode formale de dezvoltare a algoritmilor paraleli.
- Implementarea de algoritmi paraleli folosind limbajul MPI si thread-uri Java.

IV. Conţinutul disciplinei
Curs
Cursul introduce fundamentele teoretice ale programarii paralele, iar accentul este pus pe proiectarea si analiza algoritmilor paraleli.
Sunt prezentati si dezvoltati algoritmi din algebra liniara, transformate Fourier, algoritmi de cautare, de sortare si din teoria grafelor.

1. Notiuni fundamentale ale calcului paralel:
 - Clasificari ale sistemelor paralele
 - Retele de interconectare a procesoarelor
 - Comunicatia in sistemele paralele
 - Masurarea performantei programelor paralele
2. Principii generale de constructie a programelor paralele: proiectare metodica, partitionare, comunicare, aglomerare, mapare.
3. Model bazat pe programare imperativa
 - Procese parametrizate
 - Distributii de date
 - Derivare din specificatii
4. Modele bazate pe programare functionala
 - Formalismul Bird-Meertens
 - Formalismele PowerList, ParList, PList
Laborator
Dezvoltare de programe paralele folosind:
 - Thread-uri Java,
 - Programare in MPI (Message Passing Interface).

V. Bibliografie
1. CHIOREAN, IOANA:  Calcul Paralel - Fundamente, Ed. Microinformatica, 1995.
1. FOSTER, IAN: Designing and Building Parallel Programs, Addison-Wesley 1995. 
2. LOYENS, L.D.: A Design Method for Parallel Programs, PhD. Thesis, University of Eindhoven, 1992. 
3. MISRA, J.: PowerList: A structure for parallel recursion. ACM Transactions on Programming Languages and Systems, 16(6):1737-1767, November 1994. 
4. NICULESCU, V.: Modele de elaborare a algoritmilor paraleli, PhD. Thesis, Univ. Babes-Bolyai, 2002. 
5. PETCU, D.: Procesare paralela, Editura Eubeea, 2001, Colectia Informatica, Timisoara, ISBN 973-9479-48-0, 414 pagini. 
6. SKILLICORN, D.: Foundations of Parallel Programming, Cambridge International Series on Parallel Computations, 1994. 
7. SKILLICORN,D.B. - TALIA, D.: Models and Languages for Parallel Computation. ACM Computer Surveys, 30(2) pg.123-136, June 1998.
8. The Message Passing Interface (MPI) standard, [http://www-unix.mcs.anl.gov/mpi/], 2000.
9. The Java Tutorial. [http://java.sun.com/docs/books/tutorial/]	

VI. Tematica activităţilor didactice pe săptămâni

VII. Metode didactice folosite

VIII. Evaluare
Nota finala va reflecta activitatea din timpul laboratorului si rezultatul de la colocviu.
Activitatea de laborator: 40%
Rezultat colocviu: 60%	

IX. Bibliografie suplimentară

	Data,							Titular curs,
								Conf. Dr. NICULESCU Virginia