HIGH PERFORMANCE COMPUTING

Biagio COSENZA HIGH PERFORMANCE COMPUTING

0522500136
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
INFORMATICA
2020/2021



ANNO ORDINAMENTO 2016
SECONDO SEMESTRE
CFUOREATTIVITÀ
648LABORATORIO
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
IL CORSO INCLUDE ORE DI DIDATTICA NELLA FORMA DI LEZIONI CON ARGOMENTI TEORICI SEGUITI DA ESERCITAZIONI GUIDATE NELLE QUALI GLI/LE STUDENTI/ESSE VERIFICANO DIRETTAMENTE LE CONOSCENZE TEORICHE APPRESE.

LEZIONI:
• INTRODUZIONE AL CALCOLO AD ALTE PRESTAZIONI
• PROGRAMMING PATTERNS
• PROGRAMMAZIONE MULTICORE / LABORATORIO SU OPENMP
• PROGRAMMAZIONE ETEROGENA E SU GPU / LABORATORIO SU CUDA, OPENCL, SYCL
• VETTORIZZAZIONE / LABORATORIO SU PROGRAMMAZIONE VETTORIALE CON INTRINSICS
• PROGRAMMAZIONE DISTRIBUITA / LABORATORIO SU MPI
• COMPILAZIONE PER HPC / LABORATORIO SU LLVM
• OTTIMIZZAZIONE DI LOOP E TUNING / LABORATORIO SU LOOP OPTIMIZATIONS
• ANALISI DELLE PRESTAZIONI DI APPLICAZIONI HPC / LABORATORIO SU ROOFLINE MODEL
• APPLICAZIONI HPC E COMPUTATIONAL DWARFS
Metodi Didattici
IL CORSO PREVEDE 48 ORE DI LABORATORIO.

IN OGNI LEZIONE GLI STUDENTI STUDIANO I FONDAMENTALI TEORICI DEGLI ARGOMENTI TRATTATI, SEGUITI DA ESERCIZI DI PROGRAMMAZIONE DOVE LE GLI STUDENTI POSSONO APPLICARE LE CONOSCENZE ACQUISITE PROGRAMMANDO PIATTAFORME PARALLELE CON DIVERSI MODELLI DI PROGRAMMAZIONE.

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 CI CODICI SORGENTI DI RIFERIMENTO PER GLI ESERCIZI. IL CORSO PREVEDE UN PROGETTO FINALE CHE VERRÀ VALUTATO E CONTRIBUIRÀ AL VOTO FINALE. LA FREQUENZA E FORTEMENTE CONSIGLIATA.
Verifica dell'apprendimento
È PREVISTA UNA PROVA SCRITTA E UN PROGETTO. IL VOTO FINALE È UNA MEDIA PESATA DELLE DUE PROVE.
Testi
• DESIGNING AND BUILDING PARALLEL PROGRAMS. IAN FOSTER. ADDISON-WESLEY, 1995, ISBN 978-0201575941
• THE OPENMP COMMON CORE. BY TIMOTHY G. MATTSON, YUN (HELEN) HE AND ALICE E. KONIGES. 2019, MIT PRESS
• JASON SANDERS, EDWARD KANDROT, CUDA BY EXAMPLE: AN INTRODUCTION TO GENERAL-PURPOSE GPU PROGRAMMING, ADDISON-WESLEY, 2010, ISBN 978-0131387683
• PETER PACHECO, AN INTRODUCTION TO PARALLEL PROGRAMMING, MORGAN KAUFMANN, 2011, ISBN 978-0123742605
Altre Informazioni
PER MAGGIORI INFORMAZIONI CONTATTARE IL DOCENTE ALL’INDIRIZZO BCOSENZA@UNISA.IT
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2021-06-28]