INFORMAZIONI SU

Architetture parallele (integrato con Calcolatori elettronici e sistemi operativi)

Programma dell'insegnamento di Architetture parallele (integrato con Calcolatori elettronici e sistemi operativi) - cdl magistrale in Ingegneria Elettronica

Docente

prof. Antonio ABRAMO

Crediti

6 CFU

Lingua

Italiano

Obiettivi formativi specifici

Il corso si propone di fornire le conoscenze e le competenze necessarie per affrontare lo studio e la progettazione di applicazioni distribuite su architetture parallele ed eterogenee.
Il corso prevede un significativo monte ore dedicato alla risoluzione di problemi di programmazione su architetture massivamente parallele in linguaggio CUDA.

Competenze acquisite

- Il concetto di parallelismo; tipologie di architetture parallele; classificazione; architetture non convenzionali.

Programma

Architetture parallele: il concetto di parallelismo; tassonomia di Flynn; topologia di memoria; i modelli Message Passing e Shared Memory; architetture MIMD e SIMD; architetture sistoliche e dataflow; architetture neurali; il software parallelo, naming, ordering, decomposition, orchestration, mapping; sincronizzazione (12 ore).
Architetture massivamente parallele: GPU, architettura, tipi e gestione della memoria, thread e kernel, gestione host e GPU, sincronizzazione, gestione multi-GPU (12 ore).
Il linguaggio CUDA: elementi del linguaggio, esempi applicativi, esercitazioni in laboratorio (18 ore).
Il linguaggio OpenCL: elementi del linguaggio, esempi applicativi, esercitazioni in laboratorio (18 ore).
Esercitazioni (36 ore).

Bibliografia

- D.B. Kirk, W-m.W Hwu, "Programming Massively Parallel Processors: A Hands-on Approach", Morgan-Kaufmann

Modalità d'esame

prova scritta

Ulteriore materiale didattico o informazioni reperibili alla pagina