- Oggetto:
- Oggetto:
Sistemi di calcolo parelleli e distribuiti
- Oggetto:
Parallel and distributed computer systems
- Oggetto:
Anno accademico 2015/2016
- 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
- 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 insegnamento
Corso tradizionale con esercitazioni tenute dal docente con utilizzo alternato di lavagna tradizionale e proiezione di slide. Registro delle lezioni sul sito moodle del corso (inclusivo del materiale didattico ed esercizi proposti).
- Oggetto:
Modalità di verifica dell'apprendimento
L'esame è costituito da un progetto e una prova orale, che verte su tutto il programma svolto.
Il progetto consiste nella progettazione, l'implementazione e l'analisi di un software parallelo medianti gli stumenti presentanti nel corso. La scelta del software da realizzare è proposta dallo studente e concordata con il docente. Il progetto può essere realizzato in gruppo o individualmente e deve essere accompagnato da una relazione scritta. La relazione deve riportare le scelte progettuali, le sperimentazione e l'analisi dei risultati ottenuti. L'ammissione alla prova orale è condizionata al conseguimento di un punteggio di almeno 18/30.La prova orale - sempre induviduale - consiste in un colloquio sugli argomenti svolti durante il corso e prevede, in particolare:
- l'eventuale discussione del progetto e della relazione
- l'eventuale svolgimento di esercizi;
- l'esposizione di argomenti e risultati trattati nel corso, incluse alcune dimostrazioni.
Entrambe le prove devono essere superate nella stessa sessione d'esame.- Oggetto:
Attività di supporto
- Esercitazioni alla lavagna.
- Dimostrazioni di uso di strumenti di programmazione e sviluppo software.
- 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.
Vedi programma.
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:
Orario lezioni
Giorni Ore Aula Martedì 9:00 - 11:00 Aula Avogadro Dipartimento di Fisica Mercoledì 9:00 - 11:00 Aula Wick Dipartimento di Fisica Giovedì 14:00 - 16:00 Aula Wick Dipartimento di Fisica Lezioni: dal 27/04/2016 al 23/06/2016 - Oggetto:
Note
Nessuna propedeuticità obbligatoria. Frequenza non obbligatoria, ma fortemente consigliata.
- Oggetto: