HIGH PERFORMANCE COMPUTING

Obiettivi formativi

Obiettivi generali Obiettivo del corso è l'introduzione ai sistemi di supercalcolo HPC, alla loro architettura ed ai loro principi di funzionamento. Obiettivo del corso è poi l'introduzione alla programmazione parallela e distribuita, con lo scopo di abbattere i tempi di risoluzione di problemi particolarmente complessi mediante l'impiego coordinato di numerose unità di calcolo. Obiettivi specifici a) Conoscenza e capacità di comprensione Gli studenti apprenderanno quali sono i principi su cui si basa un sistema HPC e come organizzare la strategia risolutiva di un algoritmo che possa avvantaggiarsi della presenza di più unità di calcolo. b) Capacità di applicare conoscenza e comprensione Al termine del corso gli studenti saranno in grado di realizzare semplici applicazioni parallele e distribuite, in grado di sfruttare l'aumentata capacità di calcolo di un sistema HPC. Gli studenti saranno inoltre in grado di eseguire concretamente gli algoritmi sviluppati adoperando una infrastruttura di calcolo realmente esistente. c) Autonomia di giudizio Gli studenti svilupperanno la capacità di individuare quelle particolari tipologie di problemi per le quali l'utilizzo di un approccio parallelo o distribuito è di significativo aiuto. d) Abilità comunicativa Gli studenti, attraverso lo studio e lo svolgimento di esercizi pratici, acquisiscono il linguaggio tecnico-scientifico della disciplina. e) Capacità di apprendimento Gli studenti che supereranno l’esame avranno appreso i paradigmi da utilizzare per applicare tecniche di calcolo parallelo e distribuito alla risoluzione di problemi complessi, sfruttando le capacità di calcolo di un sistema HPC.

Canale 1
UMBERTO FERRARO PETRILLO Scheda docente

Programmi - Frequenza - Esami

Programma
1. Introduzione ai sistemi HPC ⁃ Definizione introduttive di un sistema HPC ⁃ Architetture di un sistema HPC ⁃ Scalabilità, prestazioni e bilanciamento del carico nei sistemi HPC 2. Introduzione alla shell Linux ⁃ Il sistema operativo Linux ⁃ I comandi di base ⁃ shell scripting 3. Programmazione parallela ⁃ Principi di programmazione parallela ⁃ Multithreading e multiprocessing ⁃ Programmazione parallela in Python ⁃ Esempi di applicazioni parallele Python 4. Programmazione distribuita ⁃ Principi di programmazione distribuita ⁃ OpenMPI ⁃ Programmazione distribuita in Python ⁃ Esempi di applicazioni distribuite Python • Ottimizzazione delle prestazioni • Strumenti di profilazione, debug e testing per applicazioni HPC • Casi di studio
Prerequisiti
Prerequisito per l'accesso al corso è la conoscenza avanzata di un linguaggio di programmazione. Particolarmente indicata è la conoscenza del linguaggio Python e/o del linguaggio R.
Testi di riferimento
Appunti, articoli scientifici ed altro materiale didattico forniti dal docente durante il corso.
Frequenza
Il corso viene erogato in presenza tuttavia, in circostanze eccezionali, è possibile seguire le lezioni a distanza
Modalità di esame
L'esame finale consiste in una prova di laboratorio durante la quale gli studenti saranno chiamati ad ideare e sviluppare un algoritmo distribuito o parallelo per la risoluzione di un problema dato, utilizzando l'infrastruttura di HPC in dotazione al Dipartimento di Scienze Statistiche.
Bibliografia
Appunti, articoli scientifici ed altro materiale didattico forniti dal docente durante il corso.
  • Codice insegnamentoAAF2350
  • Anno accademico2025/2026
  • CorsoScienze statistiche - Statistical Sciences
  • CurriculumData analytics
  • Anno1º anno
  • Semestre2º semestre
  • CFU3