Questi appunti non hanno nessuna pretesa di completezza, ma rappresentano solo un riferimento, spero utile, per tutti
coloro che hanno seguito il corso. Essi sono di fatto stati scritti di volta in volta prima di ogni lezione, a tal
proposito necessitano di certo di una sostanziale revisione, che verra' comunque operata di volta in volta, anche
a seconda delle esigenze degli studenti.
Modalita' d'esame: L'esame consiste in un colloquio orale. Durante tale colloquio potra' essere richiesta
la soluzione di semplici esercizi di programmazione (linguaggio C )
-
Slides 1 e Sources: concetti base di programmazione e
compilazione in ambienti Unix / Unix-like (comandi: files, lsof, nm, make) (18/10/10 - [22/10/10] - 25/10/10) Soluzioni
-
Slides 2 e Sources: concetti di base su socket, modello
client/server ed endianess (comandi: ifconfig) (25/10/10 - 29/10/10)
-
Slides 3 e Sources: I numeri di porta, socket pair, un
server semplice semplice, netstat per visualizzare lo stato dei socket, uso di telnet per i test di connessione
(cenni minimi di SYN flood e SYN cookies)
(comandi: telnet, netstat, ulimit) (29/10/10 - 05/11/10) Soluzioni
-
Slides 4: esercizi di programmazione server client (05/11/10)
Soluzioni
-
Slides 5 e Sources: read and write (08/11/10)
Soluzioni
-
Slides 6 e Sources: ultima lezione a proposito dei socket
(the fork call, cenni a proposito della differenza tra processo e thread). Introduzione al concetto di ottimizzazione
e misura delle performances (comandi: dd, time, pstree, df) (08/11/10 - 12/11/10).
-
Slides 7 e Sources: La Top500, Il Tianhe-1A, Nebulae, Cray Jaguar, il RoadRunner
ed il BlueGene/L. Introduzione al calcolo parallelo. Primo esempio di parallelismo, process forking (calcolo di PI
e somma dei primi N naturali). Tassonomia di Flynn (12/11/10 - (inizio secondo modulo) 15/11/10) Soluzioni.
-
Slides 8, Slides 8 a e
Sources: Arhcitetture parallele, paradigmi di programmazione
parallela, cenni di Pthread, OpenMP e primo esempio MPI (15/11/10 - 19/11/10)
Soluzioni.
-
Slides 9, Slides 9 a,
Slides 9 b e Sources:
speedup, legge di Amdahl, legge di Gustafson, breve storia dell'MPI, introduzione all'ambiente
di sviluppo e runtime mpich2 (19/11/10 - 22/11/10).
-
Slides 10 e Sources: il comunicatore
MPI_COMM_WORLD, primi esempi di comunicazione point-to-point (22/11/10 - 26/11/10) Soluzioni.
-
Slides 11: allocazione dinamica, spedizione punto a punto
di matrici (comandi: valgrind) Soluzioni (26/11/10).
-
Slides 12 e Sources: Comunicazioni punto a punto,
modalita' di comunicazione Soluzioni (26/11/10 - 29/11/10).
-
Slides 13 e Sources: Comunicazioni point-to-point
non bloccanti, comunicazioni collettive Soluzioni (03/12/10).
-
Slides 14,
Sources: Comunicazioni collettive 2. (06/12/10)
Laboratorio: PI metodo Monte Carlo Soluzioni.
-
Slides 15: Soluzione: PI metodo Monte Carlo (vedi Numerical Recipes per i numeri pseudorandom, e le
GNU Multiple Precision Arithmetic Library), Laboratorio: moltiplicazione matrice vettore (Le soluzioni hanno scopo puramente
didattico) Soluzioni (10/12/10).
-
Slides 16: Soluzione: moltiplicazione matrice vettore (metodo "diretto",
cenni sui metodi di diagonalizzazione), Laboratorio: moltiplicazione matrice matrice
(Le soluzioni proposte hanno scopo puramente didattico) Soluzioni.
( Parallel Matrix Multiplication ,
Matrix Multiplication ) (13/12/10)
-
Slides 17, Slides 17 a,
Slides 17 b : Soluzione: moltiplicazione
matrice matrice (Le soluzioni hanno scopo puramente didattico). Disegnare programmi paralleli
(Patterns for Parallel Programming). Introduzione al concetto di thread ed alla programmazione multi-thread
Soluzioni (13/12/10).
-
Slides 18 e Sources: PTHREADS create, join e mutex
(comandi: man pthreads - Linux Implementations of POSIX Threads vedi clone())
Soluzioni (15/12/10).
-
Slides 19 Laboratorio PTHREADS. (15/12/10)
-
Slides 20 e Sources Stream Processing e GPGPU.
(17/12/10 - 20/12/10)
-
Esercitazioni e ripasso (10/01/11 - 14/01/11 - 17/01/11 - 21/01/11 - 24/01/11)
bibliografia: