HIGH PERFORMANCE COMPUTING

Internazionalizzazione della Didattica HIGH PERFORMANCE COMPUTING

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



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 (OPENMP)
• PROGRAMMAZIONE ETEROGENA E SU GPU (CUDA, OPENCL, SYCL)
• PROGRAMMAZIONE VETTORIALE (INTRINSICS)
• PROGRAMMAZIONE DISTRIBUITA (MPI)
• COMPILAZIONE PER HPC (LLVM)
• OTTIMIZZAZIONE DI LOOP E TUNING
• ANALISI DELLE PRESTAZIONI DI APPLICAZIONI HPC
• 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
• STRUCTURED PARALLEL PROGRAMMING: PATTERNS FOR EFFICIENT COMPUTATION. MORGAN KAUFMANN. MICHAEL MCCOOL, ARCH D. ROBISON, JAMES REINDERS. 2012. ISBN 0124159931
• 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
• DATA PARALLEL C++. MASTERING DPC++ FOR PROGRAMMING OF HETEROGENEOUS SYSTEMS USING C++ AND SYCL. AUTHORS: REINDERS, J., ASHBAUGH, B., BRODMAN, J., KINSNER, M., PENNYCOOK, J., TIAN, X. 2021. ISBN 978-1-4842-5574-2
Altre Informazioni
PER MAGGIORI INFORMAZIONI CONTATTARE IL DOCENTE ALL’INDIRIZZO BCOSENZA@UNISA.IT
  BETA VERSION Fonte dati ESSE3
  • Didattica