Salta al contenuto principale
CODICE 98217
ANNO ACCADEMICO 2021/2022
CFU
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre
MODULI Questo insegnamento è un modulo di:
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

The course tackles the design and implementation of numerical algorithms for high performance computers in order to let students have a practical experience of the subject. In this framework, advanced architectures, parallel numerical algorithms, and their application to scientific and engineering problems are considered.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Il corso affronta la progettazione e l'implementazione di algoritmi numerici per computer ad alte prestazioni al fine di consentire agli studenti di avere un'esperienza pratica della materia. In questo contesto vengono prese in considerazione architetture di elaborazione di tipo avanzato, algoritmi numerici paralleli e la loro applicazione a problemi scientifici e ingegneristici.

MODALITA' DIDATTICHE

Lezioni integrate da tutorial.

Molti esempi di algoritmi in Python sono forniti e discussi durante le lezioni.

PROGRAMMA/CONTENUTO

  1. Richiamo dei concetti di base dell'architettura dei computer: esempi, livelli hardware, architetturali, e software, processori, architettura di sistema di base, macchine di Von Neumann, macchine CISC e RISC, processori di segnali digitali (DSP), memoria. Struttura a strati di un computer: dall'hardware al software. Aspetti progettuali e architetture di elaborazione. Architetture GPU.
  2. Calcolo parallelo: macchine parallele e di tipo distribuitio architetture multiprocessore, architetture a memoria condivisa e a scambio di messaggi, reti di interconnessione, comunicazione tra processori, analisi delle prestazioni. Architetture di memoria di computer paralleli. Complessità della comunicazione.
  3. Programmazione di tipo parallelo: progettazione di algoritmi paralleli, modelli di programmazione parallela e prestazioni. Introduzione alla programmazione parallela e concorrente con Python.
  4. Modelli numerici e algoritmi: Esempi di algoritmi paralleli: ricerca del parallelismo con un esempio concettuale, algoritmo dei numeri primi, estimatore Montecarlo Pi, elaborazione con array, semplice equazione del calore. Introduzione agli algoritmi di Machine Learning. Algoritmo di foresta casuale.

TESTI/BIBLIOGRAFIA

  • Kaminsky, A., BIG CPU, BID DATASolving the World's Toughest Problems with Parallel Computing, CreateSpace Independent Publishing Platform; 1 edition (30 July 2016)
  • Benmammar, B. (2017), Concurrent, Real-Time and Distributed Programming in Java. Newark: John Wiley & Sons, Incorporated.
  • Zaccone, G. (2019), Python Parallel Programming Cookbook, 2nd edition, Packt Publishing. Birmingham, UK.
  • Prsentazioni e note fornite dal docente.

DOCENTI E COMMISSIONI

Commissione d'esame

ERMANNO DI ZITTI (Presidente)

RICCARDO BERTA (Presidente Supplente)

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

Esame orale.

MODALITA' DI ACCERTAMENTO

La prova orale verterà sulla mappatura di algoritmi paralleli in architetture parallele a supporto di metodi numerici.

In particolare, all'inizio dell'esame, ogni studente avrà la possibilità di presentare l'implementazione di un algoritmo a sua scelta in una specifica architettura concorrente e distribuita, evidenziando punti chiave e problemi.

Calendario appelli

Data appello Orario Luogo Tipologia Note
14/01/2022 10:00 GENOVA Esame su appuntamento
14/01/2022 10:00 GENOVA Orale
11/02/2022 10:00 GENOVA Esame su appuntamento
11/02/2022 10:00 GENOVA Orale
22/07/2022 10:00 GENOVA Esame su appuntamento
22/07/2022 10:00 GENOVA Orale
26/08/2022 10:00 GENOVA Esame su appuntamento
26/08/2022 10:00 GENOVA Orale
09/09/2022 10:00 GENOVA Esame su appuntamento
09/09/2022 10:00 GENOVA Orale