IN480 - Calcolo Parallelo e Distribuito

Codice: 20410426

Scheda insegnamento

Anno Accademico di erogazione
2026/2027
Corso di studi
Fisica
Periodo di erogazione
Secondo semestre
CFU
9 CFU
Lingua
Italiano
SSD
INFO-01/A

Scopri il programma didattico

Programma, testi adottati e modalità d’esame sono quelli pubblicati dai docenti per l’anno accademico 2026/2027.

Docente
Flavio Lombardi
Curriculum
Fisica Teorica e Computazionale della Materia
Anno di corso
1
Periodo
Secondo semestre
Ore
72
CUIN
260008844

Programma

Tassonomia di Flynn
Architetture parallele a memoria condivisa, a memoria distribuita e GPGPU
Pattern per la programmazione parallela: problemi embarassingly parallel; work farm; partitioning; reduce; stencil
Valutazione delle prestazioni di programmi paralleli: Speedup, legge di Amdahl, strong e weak scalability.
Caratteristiche ed utilizzo programmazione SIMD
Programmazione di architetture a memoria condivisa con OpenMP
Programmazione di architetture a memoria distribuita con MPI
Programmazione GPGPU tramite linguaggi CUDA, OpenCL e SYCL.
Calcolo distribuito su Cloud e cenni ad approcci innovativi per HPC (K8s, OpenACC, Rust)

Prerequisiti

fondamenti di programmazione C

Testi adottati

Peter Pacheco, Matthew Malensek, An Introduction to Parallel Programming, 2nd ed., Morgan Kaufmann, 2021, ISBN 9780128046050

CUDA C++ programming guide

Appunti del docente - Slide del corso a cura del docente

Modalità di erogazione

Lo svolgimento prevede lezioni (fortemente consigliate), esercitazioni, seminari, simulazioni e laboratori

Modalità di frequenza

La partecipazione attiva alle lezioni ed esercitazioni è fortemente consigliata,

Modalità di valutazione

La valutazione prevede una prova scritta sugli argomenti del corso
(durata 2 ore circa 16 domande aperte)
più la implementazione di un progetto software concordato con il docente e della relativa documentazione

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Esplora gli obiettivi dell’insegnamento

Ambito disciplinare: A scelta dello studente

Acquisire le tecniche di programmazione parallela e distribuita, e la conoscenza delle moderne architetture hardware e software per il calcolo scientifico ad alte prestazioni. Paradigmi di parallelizzazione, parallelizzazione su CPU che su GPU, sistemi a memoria distribuita. Applicazioni Data intensive, Memory Intensive and Compute Intensive. Analisi delle prestazioni nei sistemi HPC.

Risultati di apprendimento attesi

Acquisire le tecniche di programmazione parallela e distribuita

Esempi di domande d’esame

Discutere vantaggi e svantaggi degli approcci a memoria condivisa e a memoria distribuita
Discutere dei problemi di Race Condition e Deadlock

I corsi che comprendono questo insegnamento nell’A.A. 2026/2027

Matematica e Fisica

Fisica

Cod 198331

  • Laurea magistrale
  • 2 anni
  • 120 CFU
  • LM-17 R
Matematica e Fisica

Matematica

Cod 198373

  • Laurea magistrale
  • 2 anni
  • 120 CFU
  • LM-40 R
Matematica e Fisica

Matematica

Cod 198330

  • Laurea triennale
  • 3 anni
  • 180 CFU
  • L-35 R
API