HIGH PERFORMANCE COMPUTING
cod. 1007809

Anno accademico 2023/24
2° anno di corso - Secondo semestre
Docente
Michele AMORETTI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in INGLESE

Obiettivi formativi

Conoscenze e capacità di comprendere - Mediante le lezioni frontali tenute durante il corso, lo studente acquisirà i metodi e le conoscenze necessarie a comprendere il funzionamento delle principali tipologie di macchine astratte. Lo studente apprenderà le principali classi di complessità computazionale. Lo studente apprenderà inoltre i principi e le tecnologie delle architetture di calcolo parallele, nonché i principi dell'analisi e progettazione di algoritmi paralleli. Infine, lo studente acquisirà i metodi e le conoscenze necessari a comprendere il funzionamento dei computer quantistici e a progettare semplici algoritmi quantistici.
Capacità di applicare conoscenza e comprensione - Mediante le lezioni frontali e le esercitazioni pratiche svolte in classe relativamente ad alcuni argomenti del programma, lo studente apprenderà come applicare le conoscenze acquisite in un contesto reale di progettazione. In particolare, lo studente imparerà a: progettare algoritmi paralleli efficienti, progettare e sviluppare programmi paralleli, progettare algoritmi e protocolli quantistici.
Autonomia di giudizio - Lo studente dovrà essere in grado di comprendere e valutare in maniera critica le principali tipologie di sistemi di calcolo ad alte prestazioni.
Capacità comunicative - Tramite le lezioni frontali e il confronto con il docente, lo studente acquisirà il lessico specifico inerente i sistemi di calcolo ad alte prestazioni. Ci si attende che, al termine del corso, lo studente sia in grado di trasmettere, in forma orale e in forma scritta, i principali contenuti del corso, quali idee, problematiche ingegneristiche e relative soluzioni.
Capacità di apprendimento - Lo studente che abbia frequentato il corso sarà in grado di approfondire le proprie conoscenze in materia di sistemi di calcolo ad alte prestazioni attraverso la consultazione autonoma di testi specialistici, riviste scientifiche o divulgative, anche al di fuori degli argomenti trattati strettamente a lezione, al fine di affrontare efficacemente l’inserimento nel mondo del lavoro o intraprendere percorsi di formazione successivi.

Prerequisiti

- - -

Contenuti dell'insegnamento

1. Informatica Teorica
2. Calcolo Parallelo
3. Calcolo Quantistico

Programma esteso

1. Informatica Teorica (6 ore)
1.1. Richiami di teoria dell'informazione; 1.2. Automi e calcolabilità; 1.3. Complessità computazionale
2. Calcolo Parallelo (20 ore)
2.1. Architetture parallele; 2.2. Algoritmi paralleli; 2.3. Valutazione delle prestazioni; 2.4. Message Passing Interface (MPI); 2.5. Sistemi Multicore, OpenMP; 2.6. General Purpose GPU Programming, CUDA
3. Calcolo Quantistico (22 ore)
3.1. Cenni storici, prospettive a breve e lungo termine; 3.2. Richiami di algebra lineare; 3.3. Postulati della meccanica quantistica; 3.4. Informazione quantistica; 3.5. Modello di calcolo a circuiti quantistici; 3.6. Architetture dei computer quantistici; 3.7. Algoritmi quantistici; 3.8. Crittografia quantistica; 3.9. Quantum Internet

Bibliografia

- M. Sipser, Introduction to the Theory of Computation, Cengage Learning, 2013
- E. Aubanel, Elements of Parallel Computing, CRC Press, 2017
- M. Nielsen, I. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, 2010

Metodi didattici

Le attività didattiche saranno condotte privilegiando lezioni frontali in cui il docente spiega gli argomenti mostrando delle slide e scrivendo sulla lavagna.
Alcune ore saranno dedicate ad esercitazioni pratiche di programmazione parallela, programmazione di computer quantistici, simulazione di reti quantistiche. Il materiale didattico (comprendente slide, dispense, codice sorgente, articoli scientifici) verrà caricato con cadenza settimanale sulla piattaforma Elly. Per scaricare il materiale didattico è necessaria l’iscrizione al corso online.
Si ricorda agli studenti non frequentanti di controllare il materiale didattico disponibile e le indicazioni fornite dal docente tramite la piattaforma Elly.

Modalità verifica apprendimento

La valutazione degli apprendimenti prevede due momenti:
1) una prova scritta della durata di 3 ore, divisa in due parti della stessa durata, articolata su domande aperte relative agli argomenti teorici del corso (informatica teorica e calcolo parallelo nella prima parte, calcolo quantistico nella seconda parte); entrambe le parti devono essere superate con successo nello stesso appello;
2) un progetto pratico (sviluppo di software) su uno dei seguenti temi:
- calcolo parallelo
- calcolo quantistico
E' prevista la stesura di una breve relazione e la presentazione orale del lavoro svolto.
La prova scritta è valutata con scala 0-30. Il progetto è valutato con scala 0-30. I due punteggi vengono mediati a formare il voto finale. E' prevista una prova scritta in itinere sulle parti 1 e 2 del programma.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

Questo insegnamento concorre alla realizzazione degli obiettivi ONU dell'Agenda 2030 per lo Sviluppo Sostenibile