| | | corso | | | | |
Sistemi Distribuiti: paradigmi e modelli (Parallel and Distributed Systems: paradigms and models)
Codice: | 305AA | Crediti: | 9 | Semestre: | 1 | Sigla: | SPM | |
|
Settore disciplinare: | INF/01 - Informatica |
Docenti
Ultima versione disponibile: programma da confermare per l’a.a. 2014/2015
Prerequisiti
Obiettivi di apprendimento
Il corso tratta dei paradigmi e dei modelli di programmazione utilizzati per sistemi distribuiti e paralleli sia a
livello delle applicazioni che degli strumenti di supporto. Partendo da modelli di programmazione
strutturata (algorithmical skeleton, parallel design pattern) o basati sul concetto di componente o di
servizio, verranno presi in considerazione sia i problemi relativi agli aspetti funzionali (potere espressivo,
modularità, riuso) che quelli relativi agli aspetti non funzionali (performance, fault tolerance, adattività). Il
modulo di laboratorio permetterà di sperimentare diversi approcci e soluzioni sulle architetture distribuite
maggiormente diffuse, come reti di workstation, griglie computazionali e cloud.
English Description
The main course deals with a set of arguments related to the programming models targeting parallel and/or distributed architectures. The common background of these arguments is represented by structured parallel programming models, such as those based on algorithmic skeletons or on parallel design patterns. These programming models are used to discuss:
- the general idea of structured parallel pattern exposed to the application programmer as primitive mechanisms of the parallel programming framework
- the technologies and the paradigms that can be used to efficiently implement structured parallel patterns on different kind of (hardware and software) target architectures including the more common architectures such as network of workstations and multi/many core machines
- a general methodology for the modular design and implementation of parallel applications from a set of predefined building blocks whose parallel pattern, performance features and composition properties are known.
The course includes a “theoretic” part and a lab part. The lab part consists in the presentation of a set of structured parallel programming frameworks as well as of a set of implementation techniques (in classroom) and in the implementation of a simple project (individual) of either a structured parallel application or of a run time support for some structured parallel pattern.
Indicazioni metodologiche
9 crediti
Programma
- Modelli di programmazione parallela strutturati basati su algorithmic skeletons: potere espressivo, tipi di skeleton, modello di programmazione, composizione, semantica, parametri funzionali e non funzionali, tecniche di implementazione basate su process template e su macro data flow, modelli di prestazioni e tecniche di ottimizzazione.
-
Implementazione di pattern paralleli: progettazione di template per macchine parallele/distribuite, tecniche particolari per architetture a memoria distribuita e a memoria comune, tecniche di trasformazione ed ottimizzazione, tecniche per il controllo delle caratteristiche non funzionali di computazioni parallele.
-
Metodologia per lo sviluppo composizionale di applicazioni parallele: definizione dell’insieme dei building block, tecniche di progettazione strutturate, tecniche per il monitoraggio e per il controllo delle caratteristiche non funzionali.
Modalità di esame
L'esame consiste in un progetto e in una prova orale.