Vai al contenuto principale
Oggetto:
Oggetto:

Sistemi di calcolo parelleli e distribuiti

Oggetto:

Parallel and distributed computer systems

Oggetto:

Anno accademico 2017/2018

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++).
Basics of programming with C/C++.
Propedeutico a
Nessuno
None
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).

The course introduces the parallel and distributed computing systems from architecture and  programming viewpoints. Methodologically , the course first introduces the basic concepts and architectures for parallel and distributed programming, which are then instantiated and demonstrated on examples of interest for the student's curriculum ( eg . Scientific computing).

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.

Ability to design and implement a parallel program on different computing platforms (multi -core , GPGPU , distributed), ability to analyze the expected performance of parallel programs.

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

Traditional course with exercises held by the teacher with alternate use of the traditional blackboard and projection of slides. Agenda of lessons on the Moodle site of the course (inclusive of course material and the exercises).

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

The exam consists of a project and an oral exam, which span on the program of the entire course.

The project consists of the design, implementation and analysis of a parallel software using tools introduced in the course. The choice of software to realize is proposed by the student but should be agreed with the teacher. The project can be carried out in groups or individually and must be accompanied by a written report. The report must include the design choices, the testing and analysis of the results obtained. Admission to the oral examination is subject to the attainment of a minimum score of 18/30.

The oral examination - which is always individual - consists of an interview on the arguments developed during the course, inter-alia:

- A discussion of the project and the written report
- Programming exercises;
- The elaboration fo concepts introduced during the course

Both tests must be performed in the same examination session.

Oggetto:

Attività di supporto

- Esercitazioni alla lavagna

- Dimostrazioni di uso di strumenti di programmazione e sviluppo software

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

- Practice at the blackboard

- Practice of use of programming and software development tools

- Participation in conferences , seminars , guided tours other activities on related topics

Oggetto:

Programma

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)

1) Introduction to the architecture of parallel and distributed computer systems (10 hours)
    - Shared-memory platforms: SMP, multi-core, GPGPU (6 hours)
    - Distributed platforms: MPP, cluster, GPU (4 hours)

2) Programming paradigms (20 ore)
    - low-level of abstraction: message passing, shared memory (8 hours)
    - paradigmatic problems and case studies (8 hours)
    - high-level of abstraction: skeletons, services, components, workflows (2 hours)

3) Examples and case studies (18 hours )
    - Programming exercises with threads and MPI (10 hours)
    - Programming SIMD/GPGPUs (8 hours)

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)

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

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

Oggetto:

Note

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

No prerequisites required. Regular attendance is not strictly mandatory but is strongly recommended.

Oggetto:
Ultimo aggiornamento: 29/05/2017 07:53
Non cliccare qui!