ARCHITECTURES AND MODELS FOR NUMERICAL METHODS

ARCHITECTURES AND MODELS FOR NUMERICAL METHODS

_
iten
Ultimo aggiornamento 23/06/2021 07:46
Codice
98217
ANNO ACCADEMICO
2021/2022
CFU
5 cfu al 2° anno di 10728 ENGINEERING TECHNOLOGY FOR STRATEGY (AND SECURITY) (LM/DS) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/01
LINGUA
Inglese
SEDE
GENOVA (ENGINEERING TECHNOLOGY FOR STRATEGY (AND SECURITY))
periodo
1° Semestre
moduli
Questo insegnamento è un modulo di:
materiale didattico

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.

Modalità 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

Ricevimento: Ricevimento su appuntamento

LEZIONI

Modalità didattiche

Lezioni integrate da tutorial.

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

ORARI

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

ESAMI

Modalità d'esame

Esame orale.

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