2003-2004

Enginyeria en Informàtica (3371)


Taller de Software II(12484) 


Descripció

Quines estratègies existeixen per paral·lelitzar un algoritme?
Com s'estudia la viabilitat d'un algoritme paral·lel?
Com es dissenya la interconnexió de processos?
Quin entorn de desenvolupament encaixa amb l'algoritme?

Objectius

Coneixer les principals característiques de les tecnologies de computació paral·lela actuals
Proporcionar una primera aproximació a les tècniques d'anàlisi de sistemes paral·lels
Obtindre una visió de conjunt sobre els sistemes d'interconnexió de processos
Coneixer els principis de funcionament dels diferents entorns de desenvolupament

Mètode d'Avaluació

Prova escrita a partir del contingut de les unitats didàctiques (40%)
Avaluació contínua a partir del resultat de les pràctiques (60%)

Temari

Tema 1: Models de programació paral·lela

1.1 Arquitectura de computadors paral·lels: Gerarquia de memòria i models de computació
1.2 Estrategies de desenvolupament: Compiladors, llenguatges, memòria compartida, missatges i OO
1.3 Disseny d'algoritmes: Particionament, communicació, aglutinament i mapejat
1.4 Paradigmes de programació: Client/servidor, SPMD, pipelining i subdivisió

Tema 2: Anàlisi de sistemes paral·lels

2.1 Cadenes de Markov: M/M/1, M/M/m i sistemes de cues
2.2 Xarxes de Petri: Model, propietats i anàlisi
2.3 Simulació per esdeveniments: Planificador i interconnexió de components
2.4 Simulació de sistemes: Nivells de modelat i bancs de proves  

Tema 3: Sistemes d'interconnexió

3.1 Xarxes convencionals: Nivells OSI i TCP/IP/Ethernet
3.2 Xarxes de baixa latencia: Myrinet, Memory Channel i CAN bus
3.3 Sistema de missatges: Estructures de dades, llistes i Tx/Rx
3.4 Programació de xarxes: Esdeveniments, connexions, configuració i streaming  

Tema 4: Entorns de programació paral·lela

4.1 Mecanismes primaris: Semàfors, sockets i RPC
4.2 Entorns amb memòria compartida: memòria compartida pura i virtual
4.3 Entorns amb memòria distribuida: MPI, PVM, Corba i Java distribuit
4.4 Programació paral·lela: esquelets i patrons  

Organització

Els continguts teòrics s'organitzen en unitats didàctiques accessibles des de l'aula global i s'exposen amb transparències durant les sessions de laboratori
Els alumnes han de realitzar un estudi previ de les pràctiques i respectar els periode de lliurament setmanal

Pràctiques

P1 - Mesusar l'impacte de la gerarquia de memòria, el planificador de tasques i la programació SIMD en el temps d'execusió d'un algoritme
P2 - Desenvolupar un simulador per esdeveniments per verificar un sistema d'interconnexió amb cues M/M/1
P3 - Modelar i avaluar un algoritme paral·lel mitjançant un simulador de sistemes

P4 - Programar serveis de xarxa amb C++
P5 - Comparar les prestacions de l'intercanvi de missatges amb sockets i memòria compartida
P6 - Desenvolupar una aplicació MPI sobre un cluster de maquines virtuals

Observacions

L'entrega de les pràctiques dins dels terminis establerts és indispensable per aprovar l'assignatura.
 

Bibliografia

ANDRE S. TANENBAUM: Computer Networks, Prentice Hall
D. C. SHMIDT, S. D. HUSTON: C++ Network Programming, Addison-Wesley
R. K. JAIN: The Art of Computer Systems Performance Analysis, John Wiley & Sons
RAJKUMAR BUYYA: High Performance Cluster Computing, Prentice Hall.

Darrera actualització 24-11-2010
© Universitat Pompeu Fabra, Barcelona