Vai al contenuto principale
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

GiorniOreAula
Martedì9:00 - 11:00Aula Avogadro Dipartimento di Fisica
Mercoledì9:00 - 11:00Aula Wick Dipartimento di Fisica
Giovedì14:00 - 16:00Aula 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:
Ultimo aggiornamento: 28/04/2016 14:05
Location: https://fisica.campusnet.unito.it/robots.html
Non cliccare qui!