Inizio della pagina -
Logo DISCO
|
Visita la Versione ad elevata leggibilità
|
Vai al Contenuto della pagina
|
Vai alla Fine dei contenuti
|
Vai al Menu Principale
|
Vai alla Barra di navigazione (sei in)
|
Vai al Menu di navigazione (albero)
|
Vai alla Lista dei comandi
|
Vai alla Lista degli approfondimenti
|
Vai al Menu inferiore
|
Logo Ateneo
   
Didattica
Sistemi di calcolo parallelo

Codice ins.

Insegnamento

CFU ins.

Tipo ins.

Anno

Sem.

SSD ins.

Responsabile insegnamento

F1801Q117

Sistemi di Calcolo Parallelo

6

OBS

2

2

INF/01

DOMINONI Matteo

 

Parallel computing systems

 

 

 

 

 

 

Contenuti:
Il Corso presenta una panoramica completa di architetture parallele e dei relativi paradigmi computazionali. Inoltre introduce lo studente alla progettazione ed implementazione di applicazioni parallele in ambiente distribuito e su GP-GPU con particolare attenzione all’ambiente di sviluppo CUDA.

Obiettivi formativi:

Lo studente apprende i paradigmi computazionali delle applicazioni parallele. Per completare l’analisi di tali applicazioni, vengono introdotte ed utilizzate le metriche di prestazione nell’attività di laboratorio su macchine parallele in ambiente MPI e CUDA con gli algoritmi presentati a lezione.

Prerequisiti:
Conoscenze di architetture degli elaboratori, di elementi di networking, linguaggi di programmazione con particolare riferimento ai linguaggi C/C++, modelli di computabilità e algoritmi e complessità.

Metodi didattici:

Lezione, esercitazione, seminari, attività di studio individuale supportate da materiali didattici in e-learning e attività progettuale sviluppata in ambiente parallelo, in particolare su sistemi con accelleratori GP-GPU Nvidia e ambiente CUDA. 

Programma esteso:

  • Considerazioni di base e misura delle prestazioni.
  • La classificazione delle architetture parallele ed i paradigmi computazionali, con approfondimento delle architetture SIMD e MIMD.
  • L’architettura degli acceleratori grafici e i relativi paradigmi computazionali 
  • Tipologie di interconnessione e modelli di comunicazione.
  • Esempi di piattaforme a memoria condivisa con cenni alle architetture multicore
  • Esempi di piattaforma distribuita: cluster di PC/workstation e su network locale e dedicato, sistemi con acceleratori grafici.
  • Programmazione su piattaforme a memoria condivisa, introduzione a OpenMP
  • Uso di librerie Message Passing Interface (MPI) quale ambiente di programmazione per la realizzazione di algoritmi paralleli su architetture multiprocessore: inizializzazione, operazioni globali, modularità .
  • Introduzione all’ambiente di programmazione su acceleratori grafici: ambiente CUDA.
  • Tecniche di parallelizzazione: tipi di decomposizione, mapping, bilanciamento del carico e tecniche di ottimizzazione.
  • Inibitori della parallelizzazione
  • Operazioni di comunicazione base
  • Filesystem paralleli
  • Modelli analitici di programmi paralleli
  • Cenni su alcuni algoritmi paralleli significativi. 

Testi di riferimento:
S. Rajasekaran, J. Reif, Handbook of Parallel Computing: Models, Algorithms and Applications, Chapman & Hall/CRC, 2008
A. Grama, A. Gupta, G. Karypis, V. Kumar.Introduction to Parallel Computing, 2°Ed., Addison-Wesley, 2003.
J. Sanders, E. Kandrot  CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison-Wesley Professional, 2010.

Modalità di verifica dell'apprendimento:
Tipo esame:

Scritto e orale separati

Tipo valutazione:
Voto finale

The course presents a comprehensive overview of parallel architectures and associated computational paradigms. It also introduces the student to the design and implementation of parallel applications in distributed environments and GP-GPU with CUDA development environment emphasis.

Obiettivi formativi:
The student learns the computational paradigms of parallel applications. The performance metrics used in the activity of parallel machines are introduced to complete the analysis of these applications, with particular emphasis on the algorithms presented in class and in a lab environment with CUDA and MPI.

Prerequisiti:
Knowledge of computer architecture; elements of networking; programming languages, with particular regard to the C / C + + languages; algorithms and models of computability and complexity.

Metodi didattici:
Lesson, tutorial, seminars, individual study activities supported by teaching materials in e-learning, and project activity developed in a parallel environment, especially on systems with GP-GPU accelerators from Nvidia and CUDA environment.

Altre informazioni:

Programma esteso:

Basic considerations and performance measurement.
The classification of parallel architectures and computational paradigms, with SIMD and MIMD architectures deepening.
The architecture of graphics accelerators and related computational paradigms
Types of interconnection and communication patterns.
Examples of shared-memory platforms with references to multicore architectures.
Examples of distributed platform: PC clusters / networks of workstations and local and dedicated systems with graphics accelerators.
Programming on shared memory platforms, introduction to OpenMP.
Use of libraries Message Passing Interface (MPI) as a programming environment for the realization of parallel algorithms on multiprocessor architectures: initialization, global operations, modularity.
Introduction to the programming on graphics accelerators: CUDA environment.
Parallelization techniques: types of decomposition, mapping, load balancing and optimization techniques
Inhibitors of parallelization
Basic communication operations
Parallel Filesystems
Analytical modelling of parallel programs
Overview on some relevant parallel algorithms.

Testi di riferimento:
S. Rajasekaran, J. Reif, Handbook of Parallel Computing: Models, Algorithms and Applications, Chapman & Hall/CRC, 2008
A. Grama, A. Gupta, G. Karypis, V. Kumar.Introduction to Parallel Computing, 2°Ed., Addison-Wesley, 2003.
J. Sanders, E. Kandrot  CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison-Wesley Professional, 2010.

Modalità di verifica dell'apprendimento
Tipo esame:

Scritto e orale separati

Tipo valutazione:
Voto finale

Approfondimenti

Google Translate
Translate to English Translate to French Translate to German Translate to Spanish Translate to Chinese Translate to Portuguese Translate to Arabic
Translate to Albanian Translate to Bulgarian Translate to Croatian Translate to Czech Translate to Danish Translate to Dutch Translate to Finnish Translate to Greek Translate to Hindi
Translate to Hungarian Translate to Irish Translate to Japanese Translate to Korean Translate to Norwegian Translate to Polish Translate to Romanian Translate to Russian Translate to Serbian
Translate to Slovenian Translate to Swedish Translate to Thai Translate to Turkish

(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - ultimo aggiornamento di questa pagina 27/09/2012