- Oggetto:
- Oggetto:
Sistemi di calcolo parelleli e distribuiti
- Oggetto:
Parallel and distributed computer systems
- Oggetto:
Anno accademico 2013/2014
- Codice dell'attività didattica
- MFN0795
- Docente
- Marco Aldinucci (Titolare del corso)
- Corso di studi
- 008510-102 Laurea Magistrale in Fisica ind. Astrofisica e Fisica Teorica
008510-103 Laurea Magistrale in Fisica ind. Fisica dell'Ambiente e delle Tecnologie Avanzate
008510-101 Laurea Magistrale in Fisica ind. Astrofisica e Raggi Cosmici
008510-103 Laurea Magistrale in Fisica ind. Fisica dell'Ambiente
008510-104 Laurea Magistrale in Fisica ind. Fisica delle Tecnologie Avanzate
008510-106 Laurea Magistrale in Fisica ind. Fisica Nucleare e Sub-nucleare
008510-107 Laurea Magistrale in Fisica ind. Fisica Teorica - Anno
- 3° anno
- Periodo didattico
- Terzo periodo didattico
- Tipologia
- C=Affine o integrativo
- Crediti/Valenza
- 6
- SSD dell'attività didattica
- INF/01 - informatica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Obbligatoria
- Tipologia d'esame
- Orale
- Modalità d'esame
- progetto ed orale su appuntamento con il docente.
- Prerequisiti
- Fondamenti di programmazione imperativa (C/C++).
- Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
Il corso introduce i sistemi di calcolo paralleli e distribuiti sia al livello di architettura che di metodologie e strumenti di programmazione. Metodologicamente, il corso prima introduce le architetture ed i concetti fondamentali per la programmazione parallela e distribuita, che poi vengono instanziati ed esemplificati su esempi di interesse per per i curriculum dello studente (es. calcolo scientifico).
- Oggetto:
Risultati dell'apprendimento attesi
Capacità di progettare e implementare un programma parallelo su diverse piattaforme di calcolo (multi-core, GPGPU, distribuita), capacità di analizzarne le prestazioni attese.
- Oggetto:
Modalità di verifica dell'apprendimento
Progetto ed esame orale.
- Oggetto:
Attività di supporto
Esercitazioni alla lavagna.
- Oggetto:
Contenuti
Vedi programma.
- Oggetto:
Programma
1) Introduzione alle architetture parallele e distribuite (10 ore)
- architeture a memoria condivisa: SMP, multi-core, GPGPU (6 ore)
- distribuita: MPP, cluster, grid (4 ore)
2) Paradigmi di programmazione (20 ore)
- a basso livello di astrazione: scambio di messaggi, memoria condivisa (8 ore)
- esempi di parallelizzazione di problemi classici (8 ore)
- ad alto livello di astrazione (cenni): componenti, servizi, workflow, skeleton (2 ore)
3) Esempi di uso ed esercitazioni (18 ore )
- Programmazione con thread_POSIX e MPI, esercizi su casi di studio (10 ore)
- Programmazione SIMD/GPGPUs (8 ore)1) Introduction to the architecture of parallel and distributed computer systems; shared memory: SMP, multi-core; multicomputers: multiprocessor, cluster, GPGPUs 2) Programming paradigms ; low-level of abstraction: message passing, shared memory ; case studies ; high-level of abstraction: skeletons, services, components, workflows 3) Examples and case studies; programming exercises with threads and MPI; GPGPUs programming.
Testi consigliati e bibliografia
- Oggetto:
Barry Wilkinson, Michael Allen Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers Prentice Hall; 2 edition ISBN-10: 0131405632
Marco Danelutto DISTRIBUTED SYSTEMS: PARADIGMS AND MODELS, 2011 (Dispensa)
- Oggetto:
Note
Nessuna propedeuticità obbligatoria. Frequenza non obbligatoria, ma fortemente consigliata.
- Oggetto: