Sistemi di calcolo parelleli e distribuiti

 

Parallel and distributed computer systems

 

Anno accademico 2018/2019

Codice attività didattica
MFN0795
Docente
Marco Aldinucci (Titolare del corso)
Corso di studio
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 attività didattica
INF/01 - informatica
Erogazione
Tradizionale
Lingua
Italiano
Frequenza
Obbligatoria
Tipologia esame
Orale
Prerequisiti
  • Italiano
  • English
Fondamenti di programmazione imperativa (C/C++).
Propedeutico a
  • Italiano
  • English
Nessuno
 
 

Obiettivi formativi

  • Italiano
  • English

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).

 

Risultati dell'apprendimento attesi

  • Italiano
  • English

Capacità di progettare e implementare un programma parallelo su diverse piattaforme di calcolo (multi-core, GPGPU, distribuita), capacità di analizzarne le prestazioni attese.

 

Programma

  • Italiano
  • English

1) Introduzione alle architetture parallele e distribuite (10 ore)
    - architeture a memoria condivisa: SMP, multi-core, GPGPU (6 ore)
    - distribuita: MPP, cluster, GPU (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)

 

Modalità di insegnamento

  • Italiano
  • English

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).

 

Modalità di verifica dell'apprendimento

  • Italiano
  • English

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 individuale - 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

Entrambe le prove devono essere superate nella stessa sessione d'esame.

 

Attività di supporto

  • Italiano
  • English

- Esercitazioni alla lavagna

- Dimostrazioni di uso di strumenti di programmazione e sviluppo software

- Partecipazione a conferenze, seminari, visite guidate altre attività  su argomenti correlati

 

Testi consigliati e bibliografia

  • Italiano
  • English

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)

 

Note

  • Italiano
  • English

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

 

Orario lezioniV

Nota: Per visualizzare l'orario seguire il link: http://magistrale.educ.di.unito.it/index.php/offerta-formativa/insegnamenti/elenco-completo/elenco-completo/scheda-insegnamento?cod=MFN0795&codA=&year=2016&orienta=FH

Registrazione
  • Aperta
     
    Ultimo aggiornamento: 29/05/2017 07:53
    Campusnet Unito
    Location: https://fisica.campusnet.unito.it/robots.html
    Non cliccare qui!