PROGRAMMAZIONE CONCORRENTE, PARALLELA E SU CLOUD

Vittorio SCARANO PROGRAMMAZIONE CONCORRENTE, PARALLELA E SU CLOUD

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



OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2016
SECONDO SEMESTRE
CFUOREATTIVITÀ
432LEZIONE
216LABORATORIO
Obiettivi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE
I RISULTATI DI APPRENDIMENTO DA CONSEGUIRE SONO:
- PRINCIPI E CARATTERISTICHE DI BASE DEGLI ALGORITMI E DEI SISTEMI PARALLELI E DISTRIBUITI E SU CLOUD E DELLE TECNICHE PER LA VALUTAZIONE DELLE LORO PRESTAZIONI
- STRUTTURA DI SISTEMI OPERATIVI MODERNI, ARCHITETTURE PARALLELE E MULTICORE E RETI DI CALCOLATORI

GLI STUDENTI ACQUISIRANNO CONOSCENZA DI:
- PROGRAMMAZIONE CONCORRENTE: ANALISI DELLE PROBLEMATICHE E DELLE STRUTTURE DATI CONCORRENTI PIÙ NOTE (LISTE, CODE, TABELLE HASH, CODE A PRIORITÀ, ETC.).
- SCHEDULING PARALLELO. ARCHITETTURA DI BASE DEI MULTIPROCESSORI E ARCHITETTURE MULTI-CORE.
- PROGRAMMAZIONE PARALLELA: ARCHITETTURE MESSAGE PASSING E SHARED MEMORY. MPI, COMUNICAZIONE POINT TO POINT, BLOCCANTE E NON BLOCCANTE. COMUNICAZIONE COLLETTIVA. USO DEL CLUSTER. BENCHMARKING DI APPLICAZIONI PARALLELE MPI SU CLOUD

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
I RISULTATI DI APPRENDIMENTO DA CONSEGUIRE SONO:
- PROGETTARE UN SISTEMA DISTRIBUITO E VALUTARNE LE SUE PRESTAZIONI
- SVILUPPARE APPLICAZIONI IN AMBITO CONCORRENTE E PARALLELO

GLI STUDENTI SARANNO IN GRADO DI:
- ANALIZZARE LA COMPLESSITA’ E DIMOSTRARE LA CORRETTEZZA DI ALGORITMI SU STRUTTURE DATI CONCORRENTI.
- PROGETTARE E SCRIVERE SEMPLICI PROGRAMMI IN MPI ED EFFETTUARNE IL BENCHMARKING SU CLOUD AWS
Prerequisiti
LO STUDENTE DEVE AVERE ACQUISITO CONOSCENZE SULL’ARCHITETTURA DELLE RETI E SUI PROTOCOLLI TCP/IP E SULLA PROGRAMMAZIONE CLIENT/SERVER. LO STUDENTE DEVE AVERE ANCHE UNA SIGNIFICATIVA ESPERIENZA DI PROGRAMMAZIONE IN JAVA E C, E SISTEMI OPERATIVI E DEVE SAPERE USARE IN MANIERA ESPERTA UN INTEGRATED DEVELOPMENT
Contenuti
PER OGNI ARGOMENTO SONO INDICATE LE ORE DI LEZIONE FRONTALE (F) E DI LABORATORIO (L))

•INTRODUZIONE ALLA PROGRAMMAZIONE CONCORRENTE 2F
•MUTUA ESCLUSIONE 4F
•OGGETTI CONCORRENTI 2F
•SPIN LOCKS 2F
•MONITORS 4F
•LINKED LIST 4F
•CONCURRENT QUEUE 4F
•SCHEDULING E WORK DISTRIBUTION 4F
•INTRODUZIONE ALLA PROGRAMMAZIONE PARALLELA 2F
•MPI: CONCETTI 1F
•COMUNICAZIONE POINT-TO-POINT IN MPI: BLOCCANTE E NON BLOCCANTE 1F+4L
•DATI NON CONTIGUI IN MPI 1F + 4L
•COMUNICAZIONE COLLETTIVA IN MPI 1F + 4L
•USO DEL CLUSTER IN MPI 2L
•CLOUD COMPUTING ON AWS 2L
Metodi Didattici
IL CORSO COMPRENDE UNA PARTE DI BASE (4 CFU 32 ORE) IN CUI VENGONO SPIEGATI I PRINCIPI DEL CALCOLO CONCORRENTE (ALGORITMI E STRUTTURE DATI CONCORRENTI), PARALLELO (PROGRAMMAZIONE MPI) E SU CLOUD (AMAZON AWS) E DI UN PARTE PRATICA (2 CFU 16 ORE) IN CUI VENGONO ILLUSTRATI DIVERSI ESEMPI DI APPLICAZIONI PARALLELE IN C-MPI E DEL LORO BENCHMARKING IN AMAZON AWS.
Verifica dell'apprendimento
SEI APPELLI DISTRIBUITI NEL CORSO DELL’ANNO ACCADEMICO, OLTRE A DUE APPELLI RISERVATI AGLI STUDENTI FUORI CORSO. PER OGNI APPELLO È PREVISTA UNA PROVA PROGETTUALE (PROGETTO DA COMPLETARE IN UN MESE) ED UNA PROVA ORALE. IL VOTO VIENE CALCOLATO CON UNA MEDIA PESATA DEI VOTI DELLE DUE PROVE SOSTENUTE.
Testi
•"THE ART OF MULTIPROCESSOR PROGRAMMING", M. HERLIHY E N. SHAVIT.
•"JAVA CONCURRENCY IN PRACTICE". BRIAN GOETZ ET AL.
•"PARALLEL PROGRAMMING IN C WITH MPI AND OPENMP", MICHAEL J. QUINN
•"AN INTRODUCTION TO PARALLEL PROGRAMMING", PETER PACHECO
•MPI TUTORIAL, ARTICLES AND ADDITIONAL MATERIAL ON THE WEBSITE
Altre Informazioni
SONO DISPONIBILI INFORMAZIONI PER OGNI LEZIONE, I CODICI DEGLI ESEMPI DISCUSSI NELLE LEZIONI DI LABORATORIO, TRACCE DI ESAMI E ALTRO MATERIALE DI SUPPORTO (MANUALI DI PROGRAMMAZIONE, TUTORIAL, ARTICOLI A SUPPORTO) SULLA
HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2020-09-23]