Vai al contenuto principale
Oggetto:
Oggetto:

Sistemi di calcolo parelleli e distribuiti

Oggetto:

Parallel and distributed computer systems

Oggetto:

Anno accademico 2014/2015

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 verifica dell'apprendimento

Progetto ed esame orale.

progetto ed orale su appuntamento con il docente.

Oggetto:

Attività di supporto

Esercitazioni alla lavagna.

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:

Note

Nessuna propedeuticità obbligatoria. Frequenza non obbligatoria, ma fortemente consigliata.

Oggetto:
Ultimo aggiornamento: 16/04/2015 15:14
Non cliccare qui!