Insegnamenti

Seleziona l'Anno Accademico:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Docente
FABIO MAGGIO (Tit.)
Periodo
Primo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[60/65]  MATEMATICA [65/20 - Ord. 2012]  Applicativo 6 48

Obiettivi

1. Conoscenza e capacità di comprensione.
L'obiettivo dellinsegnamento, rivolto a studenti del corso di Laurea Magistrale in Matematica, è quello di far acquisire allo studente una sufficiente padronanza dell'intero flusso computazionale per l'analisi numerica di problemi applicativi di interesse scientifico, tecnologico e industriale. Poichè il focus e' su problemi di grande scala, un'attenzione particolare verrà riservata al calcolo parallelo e ai suoi paradigmi principali, alla luce delle specifiche dell'hardware piu' comunemente usato nella comunità scientifica.
2. Capacità di applicare conoscenza e comprensione.
Capacità di identificare modelli matematici appropriati e applicarli alla soluzione di problemi del mondo fisico. Capacità di identificare l'approccio parallelo ottimale (che dipende dal problema in esame e dall'hardware disponibile) e di realizzare l'implementazione pratica degli algoritmi e dei run su piattaforme computazionali per il calcolo scientifico.
3. Autonomia di giudizio.
Al termine del corso gli studenti saranno in grado di valutare la fattibilità dellanalisi numerica di un problema applicativo in funzione delle risorse di calcolo disponibili, selezionando la metodologia più appropriata per la problematica in esame. Saranno capaci di identificare le caratteristiche di una piattaforma di calcolo scientifico in grado di effettuate l'analisi del problema di interesse, minimizzando costi e computational effort.
4. Abilità comunicative.
Gli studenti saranno in grado di illustrare le problematiche principali e le ragionevoli aspettative inerenti alla simulazione numerica di una precisa applicazione tecnica o industriale, usando - a seconda delle situazioni - termini tecnici o divulgativi, necessari ad esempio nellinterazione con interlocutori di provenienza settoriale diversa. Analogamente, saranno in grado di effettuare semplici studi di fattibilità relativi a una precisa analisi computazionale.
5. Capacità di apprendimento.
Il corso fornirà agli studenti la capacità di fruire della letteratura tecnica specifica, stimolandoli alla frequentazione della comunità scientifica del settore e abituandoli al lavoro di gruppo con esperti di altre discipline. Infine, grazie alla conoscenza delle basi di programmazione parallela, gli studenti potranno studiare e comprendere in autonomia schemi message-passing innovativi, basati su OpenMP o MPI, e utilizzarli nell'implementazione di solver HPC o altre applicazioni tecnico-scientifiche.

Prerequisiti

1. Conoscenze. È richiesta una buona conoscenza dei fondamenti dell'algebra lineare, dell'analisi matematica e della fisica generale. È raccomandabile aver seguito un corso di base di analisi numerica, in cui siano stati trattati gli algoritmi fondamentali, diretti e iterativi, per la risoluzione dei sistemi lineari. È necessaria la conoscenza elementare di un linguaggio compilato ad alto livello ottimizzato per il calcolo scientifico (preferibilmente C, ammesso Fortran 90). È fortemente auspicabile la conoscenza dellinglese scientifico.
2. Abilità e competenze. Gli studenti dovranno essere in grado di applicare le metodologie apprese durante il corso di laurea triennale. In particolare: calcolo di derivate e di integrali, manipolazione di espressioni matriciali e vettoriali, programmazione di algoritmi in uno dei linguaggi del punto precedente.
3. Corsi propedeutici. Non sono previsti corsi propedeutici.

Contenuti

1. La simulazione numerica come strumento di supporto alle decisioni (4 ore).
Comprensione del ruolo della simulazione numerica e delle sue potenzialità nellanalisi di problemi applicativi di interesse scientifico, tecnologico e industriale, anche tramite esempi. Conoscenza dellevoluzione storica della disciplina e del panorama della tecnologia computazionale recente. Definizione del ruolo del matematico come computational scientist. Consapevolezza dellimportanza dellapproccio multidisciplinare.
2. Gli strumenti matematici di base per lanalisi computazionale (18 ore).
Raggiungimento di un livello adeguato delle tecnologie matematiche necessarie per il flusso completo dellanalisi numerica di un problema applicativo formulabile in termini di unequazione differenziale lineare alle derivate parziali (PDE). Classificazione delle PDEs fondamentali della fisica matematica, familiarità con tecniche di 3D grid-generation tramite strumenti public domain o proprietari, padronanza di metodi per la discretizzazione spazio-temporale, conoscenza dei protocolli di comunicazione su distributed-memory machines, capacità di interfacciarsi con librerie per lalgebra lineare parallela e per lI/O ottimizzato, esperienza di uso di applicativi per la visualizzazione e il post-processing.
3. Design e implementazione di un workflow ottimizzato per la simulazione numerica (18 ore).
Analisi della complessità computazionale e del rapporto costo/fattibilità in funzione delle risorse di calcolo disponibile, design e generazione della griglia computazionale, identificazione dellalgoritmo ottimale di parallel computing, definizione delle specifiche di I/O e degli strumenti di post-processing.
4. Laboratorio (12 ore).
Implementazione di applicazioni per la simulazione numerica di media scala inerenti a problematiche tipiche delle scienze applicate. Programmazione avanzata usando uno dei linguaggi specificati nei "Prerequisiti" e implementazione ottimizzata di solutori paralleli.

Metodi Didattici

Il corso consisterà in 40 ore di lezioni frontali (equivalenti a 5 crediti) e 3 laboratori di 4 ore (12 ore totali, 1 credito).
In alcune occasioni, durante le lezioni frontali, verrà chiesto di portare il proprio PC (uno ogni 2-3 studenti) per replicare le procedure mostrate dal docente sul proprio PC.
I laboratori verranno svolti preferibilmente su macchine di proprieta' degli studenti (una ogni 2-3 persone) con sistema operativo Linux, compilatori GCC e software scientifico indicato dal docente.
Se tale soluzione non sara' praticabile, gli studenti potranno utilizzare i PC di un laboratorio della facoltà

Verifica dell'apprendimento

L'accertamento delleffettiva acquisizione dei risultati di apprendimento verrà effettuato tramite strumenti diversi.
Il buon esito dei tre laboratori cosituirà una prima forma di verifica dell'apprendimento dei concetti illustrati a lezione e della capacità di metterli in pratica adattandoli ad applicazioni di bassa/media difficoltà.
Nel corso dei laboratori verrà anche valutata la capacità di interagire in gruppo per ideare soluzioni a problematiche nuove o comunque non completamente corrispondenti a quelle già descritte in dettaglio durante le lezioni.
L'esame finale sarà subordinato allo svolgimento di una simulazione numerica da svolgere in gruppo di 2-3 studenti che prevederà l'implementazione di un codice parallelo i cui run saranno effettuati sul cluster di calcolo parallelo del CRS4: i discenti dovranno produrre una documentazione dettagliata sul lavoro svolto.
Questo report sarà la base per l'esame orale vero e proprio nel corso del quale, prendendo spunto da quanto fatto nella simulazione, potranno essere discussi alcuni aspetti generali delle idee esposte nelle lezioni frontali.

Testi

1) S. Seatzu, C. Van der Mee, P. Contu. "Matematica Applicata - Un secondo corso", SIMAI e-Lecture Notes, 2017, http://cab.unime.it/journals/index.php/lecture/article/view/1663/0

2) A. Quarteroni, A. Valli. "Numerical Approximation of Partial Differential Equations", Springer-Verlag Berlin Heidelberg, 1994

3) W. Gropp, E. Lusk and A. Skjellum. "Using MPI, Third Edition",
The MIT Press, Cambridge (USA), London (UK), 2014

4) B. Chapman, G. Jost and R. van der Pas. "Using OpenMP", The MIT Press, Cambridge (USA), London (UK), 2008

5) materiale scritto e distribuito dal docente (formato pdf)

6) manuali del software usato durante il corso (ad esempio: GMSH, Metis, PlotMTV, etc)

NB: i testi 4 e 5 possono essere sostituiti da manuali/tutorial analoghi

Altre Informazioni

Durante le lezioni frontali verranno consegnati agli studenti note scritte di approfondimento sugli argomenti trattati realizzate dal docente (in formato pdf) e tracce sommarie sulle esercitazioni (tali da richiedere comunque una elaborazione e integrazione significativa da parte dei partecipanti).
Saranno inoltre segnalati approfondimenti critici nello stato dell'arte della letteratura scientifica per stimolare la riflessione intorno alle tematiche trattate e ai trends dell'HPC (ad esempio: "HPC is dying, and MPI is killing it" di J. Dursi)

Informazioni più dettagliate sulla filosofia del corso e i suoi contenuti sono reperibili in questo documento

Questionario e social

Condividi su:
Impostazioni cookie