HIGH PERFORMANCE COMPUTING
cod. 1007809

Anno accademico 2018/19
2° anno di corso - Secondo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
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 necessari 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. Lo studente apprenderà i principi del calcolo autonomico. Lo studente acquisirà competenze relative alle tecniche di simulazione, con particolare enfasi sulla simulazione ad eventi discreti. 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 sistemi autonomici, progettare e sviluppare simulatori ad eventi discreti, 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 Autonomico
4. Tecniche di Simulazione
5. Calcolo Quantistico

Programma esteso

1. Informatica Teorica (6 ore)
1.1. Richiami di teoria dell'informazione; 1.2. Macchine astratte; 1.3. Complessità computazionale
2. Calcolo parallelo (16 ore)
2.1. Architetture parallele; 2.2. Algoritmi paralleli; 2.3. Valutazione delle prestazioni; 2.4. Message Passing Interface (MPI); 2.5. MapReduce; 2.6. Sistemi Multicore, OpenMP; 2.7. General Purpose GPU Programming, CUDA
3. Sistemi autonomici (4 ore)
3.1. Principi dell'autonomic computing; 3.2. Modello MAPE-K; 3.3. Esempi di sistemi autonomici
4. Tecniche di Simulazione (6 ore)
4.1. Concetti generali sulle simulazioni; 4.2. Simulazioni ad eventi discreti; 4.3. Modelli DEVS; 4.4. Piattaforma di simulazione DEUS
5. Calcolo Quantistico (16 ore)
5.1. Cenni storici, prospettive a breve e lungo termine; 5.2. Richiami di algebra lineare; 5.3. Postulati della meccanica quantistica; 5.4. Quantum bit; 5.5. Modello di calcolo a circuiti quantistici; 5.6. Architetture dei computer quantistici; 5.7. Algoritmi quantistici; 5.8. Protocolli per la crittografia quantistica; 5.9. Quantum Internet

Bibliografia

- S. Arora, B. Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009
- E. Aubanel, Elements of Parallel Computing, CRC Press, 2017
- B.P. Zeighler, H. Praehofer, T.G. Kim, Theory of Modeling and Simulation, Second Edition, Academic Press, 2000
- 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, sviluppo di simulatori ad eventi discreti e programmazione di computer quantistici.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 on line.
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, articolata su domande aperte relative agli argomenti teorici del corso;
2) un progetto pratico (sviluppo di software) su uno dei seguenti temi:
- calcolo parallelo
- simulazione ad eventi discreti
- 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.
Non sono previste prove in itinere.

Altre informazioni

- - -