SISTEMI DISTRIBUITI 1 E LABORATORIO
Anno accademico 2016/2017 - 1° anno - Curriculum Sistemi di Rete e Sicurezza- SISTEMI DISTRIBUITI 1: Giuseppe PAPPALARDO
- LABORATORIO: Christian Napoli
Organizzazione didattica: 225 ore d'impegno totale, 189 di studio individuale, 36 di lezione frontale
Semestre: 2°
Obiettivi formativi
- LABORATORIO
Un approccio moderno alla risoluzione di problemi scientifici non può prescindere dall’utilizzo di sistemi di calcolo per la creazione di modelli, la simulazione di scenari e la verifica sperimentale di ipotesi difficilmente ricreabili in laboratorio. Inoltre un numero sempre maggiore di applicativi home consumer hanno da tempo iniziato a richiedere ed utilizzare piattaforme di calcolo ad alte performance.
Questo corso vuole offrire una breve introduzione alle architetture di calcolo ad alte performance ed ai principali paradigmi: MPI, OpenMP, GPGPU, hadoop, openstack. Infine il corso si ripropone di creare quegli strumenti di base per l’approfodimento ulteriore di questi paradigmi e delle tecnologie ad essi connesse, con particolare riferimento alle moderne tecniche ibride di programmazione per il calcolo parallelo ad alte performances, ai paradigmi utilizzati per la collezione e l'analisi di grandi quantiativi di dati, quali Hadoop e mapreduce, e l'utilizzo ad essi connesso delle infrastrutture di calcolo su cloud e la loro gestione (Openstack).
Prerequisiti richiesti
- LABORATORIO
Architettura degli Elaboratori;
Elementi di programmazione;
Conoscenze di base di C o C++.
Frequenza lezioni
- LABORATORIO
Obbligatoria.
Contenuti del corso
- LABORATORIO
I. Introduzione al calcolo distribuito
II. Tassonomia di Flynn, paradigmi di memoria, threads, scheduling, messaggi
III. Paradigmi di passaggio di messaggi e Message Passing Interface
IV. Paradigmi di Shared Memory e Open MultiProcessing
V. GPGPU Programming e Common Unified Device Architecture (CUDA)
VI. Programmazione ad ate performance per architetture ibride di calcolo
VII. Distributed Big Data Analysis e paradigmi di calcolo shared nothing
VIII. MapReduce, file system distribuito, Hadoop e MrJob (python)
IX. Soluzioni cloud oriented per il calcolo distribuito
XI. OpenStack
Testi di riferimento
- LABORATORIO
Testi di riferimento:
1. G. Hager, G. Wellein: Introduction to High Performance Computing for Scientists
and Engineers, CRC Press (2010)
1. G. Coulouris et al.: Distributed Systems, Pearson (2013)
2. Gropp et al.: Using MPI, MIT press (2014)
3. B. Chapman, G. Jost: Using OpenMP, MIT press (2007)
4. J. Sanders: CUDA by Example, Addison-Wesley (2010)
5. T. White: Hadoop: the definitive guide, O’Reilly (2015)
6. T. Fifield et al.: OpenStack Operations Guide, O’Reilly (2016)Altri testi utili per approfondimento:
- D. Culler et al.: Parallel Computer Architecture, Kaufmann (1998)
- M.J. Quinn: Parallel Programming in C with Mpi and Openmp, McGrawHill (2008)
- G. Barlas: Multicore and GPU Programming, Kaufmann (2014)
- N. Wilt: CUDA Handbook, Addison-Wesley (2013)
- E. Sammer: Hadoop Operations, O’Reilly (2012)
- M. GRoover, T. Malaska: Hadoop Applications Architectures, O’Reilly (2015)
- K. Basil et al.: OpenStack Security Guide, O’Reilly (2015)
Programmazione del corso
LABORATORIO | |||
* | Argomenti | Riferimenti testi | |
---|---|---|---|
1 | * | Sistemi distribuiti in ambito HPC | G. Coulouris et al.: Distributed Systems, Pearson (2013) |
2 | * | Message Passing Interface | Gropp et al.: Using MPI, MIT press (2014) |
3 | * | OpenMP | B. Chapman, G. Jost: Using OpenMP, MIT press (2007) |
4 | * | GPGPU programming e CUDA | J . Sanders: CUDA by Example, Addison-Wesley (2010) |
5 | * | HPC in architetture ibride | G. Hager, G. Wellein: Introduction to High Performance Computing for Scientists and Engineers, CRC Press (2010) |
6 | * | Hadoop | T. White: Hadoop: the definitive guide, O’Reilly (2015) |
7 | * | OpenStack | T. Fifield et al.: OpenStack Operations Guide, O’Reilly (2016) |
N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
- LABORATORIO
Progetto unico.