Internazionalizzazione della Didattica | HIGH PERFORMANCE COMPUTING
Internazionalizzazione della Didattica HIGH PERFORMANCE COMPUTING
Indietro
cod. 0522500136
HIGH PERFORMANCE COMPUTING
0522500136 | |
DIPARTIMENTO DI INFORMATICA | |
CORSO DI LAUREA MAGISTRALE | |
INFORMATICA | |
2025/2026 |
ANNO CORSO 2 | |
ANNO ORDINAMENTO 2016 | |
SECONDO SEMESTRE |
SSD | CFU | ORE | ATTIVITÀ | |
---|---|---|---|---|
INF/01 | 6 | 48 | LABORATORIO |
Obiettivi | |
---|---|
L’obiettivo formativo dell’insegnamento è la creazione di competenze sulla programmazione, gli algoritmi, le applicazioni e le architetture legate al calcolo ad alte prestazioni (High Performance Computing). Conoscenze e capacità di comprensione L’insegnamento punta a far acquisire alle studentesse e agli studenti conoscenze sulle tecniche di programmazione per sistemi HPC. In particolare, punta a sviluppare le seguenti conoscenze •Architetture HPC •Modelli di programmazione per HPC e parallel programming patterns •Programmazione shared memory (OpenMP) •Programmazione eterogena e GPU (CUDA/OpenCL, SYCL) •Programmazione distributed memory (MPI) •Vettorizzazione (intrinsics) •Tecniche di ottimizzazione e tuning per programmi paralleli •Compilazione per HPC e parallelizzazione automatica •Applicazioni HPC Capacità di applicare conoscenza e comprensioni Il corso mira a sviluppare negli studenti e studentesse le seguenti capacità: •Saper programmare un’applicazione multicore con OpenMP •Saper programmare un’applicazione GPU ed eterogena •Saper programmare un’applicazione distribuita con MPI •Riconoscere e applicare parallel pattern nella programmazione di un’applicazione parallela e distribuita •Saper analizzare e migliorare l’impatto del compilatore in codici HPC •Saper applicare tecniche di ottimizzare in programma parallelo o distribuito |
Prerequisiti | |
---|---|
IL CORSO SI RIVOLGE A STUDENTI CON BUONE CONOSCENZE DELLA LINGUA INGLESE TECNICA, E BUONE CONOSCENZE DI - PROGRAMMAZIONE C IN AMBIENTE UNIX/LINUX; - ALGORITMI E STRUTTURE DATI; - ARCHITETTURA DEGLI ELABORATORI. |
Contenuti | |
---|---|
L'INSEGNAMENTO È DIVISO IN QUATTRO MODULI, PER UN TOTALE DI 48 ORE DI LABORATORIO. MODULO PROGRAMMAZIONE MULTICORE, 12 ORE: - PROGRAMMAZIONE OPENMP; - CACHE E FALSE SHARING; - PARALLELISMO SU TASK; - PARALLELISMO ANNIDATO E ARCHITETTURE NUMA; - DESIGN PATTERN PARALLELI. MODULO PROGRAMMAZIONE VETTORIALE, 12 ORE - PROGRAMMAZIONE CON INTRINSICS INTEL AVX2 E PATTERN DI REORGANIZZAZIONE DEI DATI; - DIRETTIVE SIMD DI OPENMP; - COMPILAZIONE E VETTORIZZAZIONE AUTOMATICA; - PROGRAMMAZIONE VLA CON INTRINSICS ARM SVE E RISC-V RVV. MODULO PROGRAMMAZIONE ETEROGENEA E SU GPU, 12 ORE: - PROGRAMMAZIONE SYCL; - ARCHITETTURA GPU: MODELLO DELLA MEMORIA, MODELLO DEI THREAD, OTTIMIZZAZIONI; - DESIGN PATTERN PARALLELI OTTIMIZZATI PER GPU; - DA SYCL ALL'ECOSISTEMA SOFTWARE DELLA UXL, ECOSISTEMA STANDARD E APERTO DI SOFTWARE PER ACCELERATORI; - ELEMENTI DI PROGRAMMAZIONE CUDA, HIP E LEVELZERO. MODULO SU ARGOMENTI AVANZATI, 12 ORE: - ROOFLINE MODEL; - BENCHMARKING AND DEBUGGING; - COMPILAZIONE PER HIGH PERFORMANCE COMPUTING; - AUTOTUNING; - OTTIMIZZAZIONE SU MULTIGPU E MULTINODO; - FOCUS SU APPLICAZIONI HPC: AI, ALGORITMI SU GRAFI. |
Metodi Didattici | |
---|---|
IL CORSO PREVEDE 48 ORE DI LABORATORIO. IN OGNI LEZIONE, GLI/LE STUDENTI/STUDENTESSE APPRENDERANNO CONOSCENZE DI ARCHITETTURE E MODELLI DI PROGRAMMAZIONE PER IL CALCOLO AD ALTE PRESTAZIONI, SEGUITE DA ESERCIZI DI PROGRAMMAZIONE DOVE POSSONO APPLICARE LE CONOSCENZE ACQUISITE PROGRAMMANDO SU PIATTAFORME PARALLELE. IL MATERIALE DIDATTICO INCLUDE LE SLIDES PRESENTATE AL CORSO, MATERIALE AGGIUNTIVO PRESENTE NEI LIBRI DI TESTI SUGGERITI, UNA LISTA DI PUBBLICAZIONI SCIENTIFICHE, A CUI SI AGGIUNGONO I CODICI DI RIFERIMENTO PER GLI ESERCIZI. IL CORSO PREVEDE UN PROGETTO FINALE CHE VERRÀ VALUTATO E CONTRIBUIRÀ AL VOTO FINALE. GLI STUDENTI AVRANNO ACCESSO A RISORSE DI CALCOLO SU SUPERCOLCAOLATORI DEL CINECA E SUL INTEL CLOUD. LA FREQUENZA E FORTEMENTE CONSIGLIATA. |
Verifica dell'apprendimento | |
---|---|
È PREVISTA UNA PROVA SCRITTA E UN PROGETTO. IL VOTO FINALE È UNA MEDIA PESATA DELLE DUE PROVE. LA PROVA SCRITTA COMPRENDE ESERCIZI CHE COPRONO TUTTI I MODULI DEL CORSO. LA PROVA SCRITTA E' ACCESSIBILE AGLI STUDENTI CHE HANNO INVIATO IL PROGETTO ALLA DATA DI APPELLO. IL PROGETTO SI CONCENTRA SU UN ARGOMENTO SPECIFICO LEGATO AL CALCOLO AD ALTE PRESTAZIONI. AD ESEMPIO: LA RISOLUZIONE DI UN PROBLEMA SU UNA DATA ARCHITETTURA PARALLELA; L'ESPLORAZIONE DI UNA CARATTERISTICA HARDWARE; UN'ANALISI QUANTITATIVA DI UN ALGORITMO ESISTENTE; RIPRODUZIONE DI UN ARTRICOLO SCIENTIFICO. PRATICAMENTE, IL PROGETTO COMPRENDE IL CODICE SORGENTE E UN BREVE REPORT. |
Testi | |
---|---|
- STRUCTURED PARALLEL PROGRAMMING: PATTERNS FOR EFFICIENT COMPUTATION. MORGAN KAUFMANN. MICHAEL MCCOOL, ARCH D. ROBISON, JAMES REINDERS. 2012. ISBN 0124159931 - THE OPENMP COMMON CORE: MAKING OPENMP SIMPLE AGAIN. TIMOTHY G. MATTSON, YUN (HELEN) HE AND ALICE E. KONIGES. 2019, MIT PRESS - CUDA BY EXAMPLE: AN INTRODUCTION TO GENERAL-PURPOSE GPU PROGRAMMING. JASON SANDERS, EDWARD KANDROT. ADDISON-WESLEY, 2010. ISBN 978-0131387683 - DATA PARALLEL C++. PROGRAMMING ACCELERATED SYSTEMS USING C++ AND SYCL. JAMES REINDERS , BEN ASHBAUGH , JAMES BRODMAN , MICHAEL KINSNER , JOHN PENNYCOOK , XINMIN TIAN. 2023. BOOK OPEN ACCESS. SOFTCOVER ISBN 978-1-4842-9690-5, EBOOK ISBN978-1-4842-9691-2 |
Altre Informazioni | |
---|---|
SULLA PIATTAFORMA DI E-LEARNING DIPARTIMENTO SONO DISPONIBILI INFORMAZIONI PER OGNI LEZIONE, SLIDES, CODICI DI ESEMPIO, ARTICOLI DI RIFERIMENTO, E ALTRO MATERIALE DI SUPPORTO. GLI STUDENTI AVRANNO ACCESSO ALLE RISORSE DI CALCOLO DEL CINECA E DEL INTEL CLOUD. |
BETA VERSION Fonte dati ESSE3