Programmazione Parallela

Informazioni generali sull'insegnamento

Nome dell'insegnamento: Programmazione Parallela
Docente: Marko Bertogna
Corso di Studio: Laurea Magistrale in Informatica
Periodo Didattico: Primo Ciclo Semestrale
SSD: INF/01
CFU: 6

Obiettivi dell'insegnamento

    Il corso di Programmazione Parallela mira a introdurre le principali tecniche di programmazione parallela avanzata in ambiente MPI, OpenMP e CUDA/OpenCL - presentare algoritmi paralleli per problemi di base del calcolo scientifico - progettare software parallelo per alcuni problemi di calcolo scientifico provenienti da applicazioni reali di grandi dimensioni

Programma dell'insegnamento


  • Architetture parallele e progettazione di codice parallelo
    • Cache e protocolli di coerenza
    • Sistemi a memoria distribuita o condivisa
    • Architetture omogenee vs. eterogenee
    • Protocolli di sincronizzazione
    • Modelli di parallelismo
    • Programmazione concorrente
    • Design patterns paralleli
    • Analisi e profiling del software
  • Linguaggi di programmazione parallela
    • Programmazione su sistemi distribuiti in MPI
    • Programmazione su sistemi a memoria condivisa in OpenMP
    • Programmazione su GPUs e sistemi eterogenei: CUDA/OpenCL

Orario

Orario delle lezioni

  • mercoledì (11:00 - 13:00) - Laboratorio Zironi (Via Campi - Matematica)
  • giovedì (11:00 - 13:00) - Laboratorio Zironi (Via Campi - Matematica)

Orario di ricevimento

  • Mercoledì (14:00 - 16:00) o prima/dopo ogni lezione.
  • Disponibile anche in altri giorni previo appuntamento via email.

Avvisi (in ordine cronologico inverso)


  • I corsi inizieranno Mercoledi 28 Settembre 2016.

Materiale didattico

Testi di riferimento

  • A. Grama, G. Karypis, V. Kumar, A. Gupta: An introduction to Parallel Computing, Addison-Wesley, 2003
  • M. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2004
  • D.B. Kirk, W.W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach Morgan-Kaufmann, 2012
  • T.G. Mattson, B.A. Sanders, B.L. Massingill, Patterns for Parallel Programming, Addison-Wesley, 2005

Lucidi delle lezioni

Esercitazioni e Codice

Esami

  • Sessione invernale, I appello: Venerdi 19 Gennaio 2018, ore 10:00, Dipartimento di Matematica.
  • Sessione invernale, II appello: Venerdi 9 Febbraio 2018, ore 10:00, Dipartimento di Matematica.
  • Sessione invernale, III appello: Venerdi 23 Febbraio 2018, ore 10:00, Dipartimento di Matematica.
  • Sessione autunnale, I appello: Venerdi 19 Giugno 2018, ore 10:00, Dipartimento di Matematica.
  • Sessione autunnale, II appello: Venerdi 17 Luglio 2018, ore 10:00, Dipartimento di Matematica.
  • Sessione estiva, unico appello: Venerdi 18 Settembre 2018, ore 10:00, Dipartimento di Matematica.

Prove d'esame

  • L'iscrizione all'esame scritto/orale va eseguita mandando una mail al docente. L'iscrizione all'esame orale puo' avvenire solo al superamento dello scritto.

Modalità d'esame

    L'esame consiste nello svolgimento di:
    • Una prova scritta composta da due esercizi, uno per ogni modulo ("Architetture parallele e progettazione di codice parallelo" e "Linguaggi di programmazione parallela").
    • Un esame orale.

Registrazione voti

    La registrazione del voto avviene contestualmente al superamento dell'esame orale.