L'High-Performance Computing (HPC) e la Matematica sono strettamente connessi
in virtù della necessità di elaborare complessi calcoli in tempi accettabili.
Nell’ambito della ricerca e delle applicazioni industriali L'HPC si riferisce
all'impiego di potenti sistemi di elaborazione–spesso costituiti da cluster di
nodi di calcolo interconnessi da reti di trasmissione dati ad alte
prestazioni–per eseguire calcoli intensivi in modo efficiente.
L'elaborazione ad alta performance è essenziale in molti ambiti matematici,
come la risoluzione numerica di equazioni differenziali complesse,
l'analisi statistica su grandi dataset e la simulazione di fenomeni fisici.
Problemi matematici avanzati, come la fattorizzazione di numeri grandi o la
ricerca di soluzioni a equazioni non lineari, richiedono una potenza di calcolo
significativa che spesso può essere fornita solo da sistemi HPC. La branca
della matematica che si occupa degli aspetti teorici di questi problemi è
la cosiddetta Matematica computazionale e si basa fortemente sull'impiego di
risorse HPC per risolvere problemi matematici mediante l'impiego di algoritmi e
tecniche computazionali. L'integrazione di HPC nella ricerca matematica consente
di affrontare sfide più complesse e di ottenere risultati in tempi ragionevoli,
contribuendo così allo sviluppo di nuove teorie, modelli e soluzioni
matematiche.
All’interno del nostro Corso di Studio in Matematica questi argomenti sono
affrontati nei programmi di diversi corsi (e.g., Analisi Numerica,
Calcolo Scientifico, Laboratorio Computazionale, Istituzioni di Analisi
Numerica, Metodi Numerici per le PDE) e prettamente dal punto di
vista della descrizione e analisi teorica degli algoritmi.
Obiettivo di questo progetto è quello di integrare
l’approccio più teorico contenuto nel nostro curriculum e gli aspetti di tipo
più pratico e implementativo. Il raggiungimento di tale scopo si otterrà mediante due linee di intervento.
La prima riguarda delle attività di didattica frontale concernenti gli
aspetti tecnologici del problema, nello specifico: l’implementazione degli
algoritmi studiati dal punto di vista teorico nei corsi curriculari con gli
strumenti del calcolo parallelo, ovvero la scrittura di codice che impieghi
gli standard MPI, OpenMP e CUDA. La seconda linea di intervento riguarda
l’interazione fisica con gli strumenti hardware che–come detto
precedentemente–dovrebbero essere cluster di nodi ad alte performance:
cuore della potenza di calcolo fornita dall'HPC.
Nel corso di un precedente progetto speciale per la didattica
si è proceduto ad assemblare e configurare con gli studenti un primo
prototipo di Calcolatore Parallelo
con venti nodi formati da Single Board Computer (SBC). Il piano è quindi
quello di ampliare questo prototipo per avere un numero di nodi di calcolo
superiore, con il fine di permettere analisi di scalabilità degli
algoritmi implementati con numeri di nodi/processi sempre più simili a
quelli che si adoperano nel mondo della ricerca e dell’industria;
successivamente quello di migliorare gli strumenti di gestione e
l’accessibilità in modo che gli studenti possano fruirne e avere
assistenza per lo sviluppo di tesi e progetti nell’ambito della
matematica computazionale.
A completamento delle attività proposte si prevede lo svolgimento di due
incontri seminariali relativi alle tecniche di programmazione parallela
nell’ambito dell’Algebra Lineare Numerica e tenuti da un esperto esterno.
Supporto studente
Il progetto cerca 2 supporti studenti tramite il seguente
bando
con scadenza fissata alle ore 13.00 del 05/04/2024.
Riconoscimento CFU
Si tratta di un Progetto Speciale per la Didattica 2023/24
finanziato dall'Università di Pisa. Al fine di ottenere crediti formativi con
la seguente attività è possibile:
svolgere un progetto che impieghi gli strumenti del calcolo parallelo per l'esame Laboratorio Computazionale,
svolgere l'attività di implementazione/progettuale per l'esame di Calcolo Scientifico con gli strumenti qui proposti,
svolgere l'attività di implementazione/progettuale per l'esame di Metodi Numerici per le PDE con gli strumenti qui proposti.
Qualora gli argomenti trattati risultassero di interesse, esiste anche la
possibilità di avere progetti di tesi al riguardo.
Calendario degli incontri
Mercoledì 27 Marzo 2024, ore 18:00, Sala Riunioni.
Incontro conoscitivo e di pianificazione incontri successivi.
Mercoledì 10 Aprile 2024, ore 16:00, Aula 4.
Possibili architetture di una macchina parallela, sperimentazioni con ssh e git.
Mercoledì 17 Aprile 2024, ore 16:00, Aula 3.
Introduzione ad MPI, prime sperimentazioni.
Mercoledì 24 Aprile 2024, ore 16:00, Aula 3.
Introduzione ad MPI, send, receive e varianti.
Lunedì 6 Maggio 2024, ore 16:00, Aula Magna - (L. Robol)
Incontro Introduttivo Nuovo Cluster HPC.
Mercoledì 8 Maggio 2024, ore 16:00, Aula 3.
Assemblaggio e lavoro tecnico sul prototipo di calcolatore parallelo.
Martedì 21 Maggio 2024, ore 16:00, Aula 3 Sala Seminari ex-albergo
Introduzioni ad MPI, comunicazioni collettive.
Mercoledì 22 Maggio 2024, ore 16:00, Aula 3 -- (S. Filippone).
Algebra Lineare Numerica Parallela.
Mercoledì 29 Maggio 2024, ore 16:00, Aula 3.
Utilizzo di Librerie Scientifiche con funzionalità parallele.
Materiale
Il materiale degli incontri è disponibile sul repository git. Si può clonare il repository con il comando:
Questo è un clone via ssh che permette, avendo i permessi, anche di
scrivere sul repository. La connessione via ssh è disponibile
attraverso la rete di ateneo, ovvero, se si è al di fuori della rete si deve
usare la vpn di ateneo.