You are in: Home » Teaching » HPC 2018-2019

High Performance Computing
Laurea in Ingegneria e Scienze Informatiche, Università di Bologna, 2018/2019

[ Avvisi | Introduzione | Programma | Esami | Orario delle lezioni | Lucidi delle lezioni | Codice di esempio]

Avvisi

24/7/2019
I voti della prova scritta del 24/6/2019 sono disponibili su AlmaEsami. I dettagli dei punteggi assegnati ad ogni esercizio sono consultabili su questo file.
20/4/2019
Ricevo da un collega dell'Istituto Nazionale di Geofisica e Vulcanologia (INGV) la segnalazione di due bandi per tecnologi (tempo determinato, 24 mesi rinnovabili, retribuzione 55.000 euro/anno lordi) su tematiche di High Performance Computing presso le sezioni INGV di Bologna e Pisa. È richiesta la laurea magistrale. Scadenza dei bandi 16 maggio 2019; maggiori informazioni su questa pagina (primo bando, secondo bando)
15/4/2019
Sono aperte le iscrizioni ai primi due appelli d'esame della sessione estiva (giugno/luglio 2019). Ricordo che le liste chiudono alcuni giorni prima della prova, quindi è necessario iscriversi per tempo.
4/4/2019
Ho ricevuto diverse richieste circa la posibilità di accorpare alcuni passi del programma del progetto; ho aggiunto un chiarimento in proposito nelle specifiche. In breve: è possibile ma meno semplice di quanto possa sembrare. Se non fatto correttamente si rischia di introdurre delle distorsioni nei risultati. Per tale motivo tale ottimizzazione non è richiesta.
21/02/2019
I voti della prova scritta del 19/2/2019 sono disponibili su AlmaEsami. I dettagli dei punteggi assegnati ad ogni esercizio sono consultabili su questo file. È possibile sostenere nuovamente la prova scritta per migliorare il voto; tuttavia, chi consegna un nuovo scritto perde automaticamente tutti i voti degli scritti precedenti, a prescindere dal nuovo risultato; chi si presenta nuovamente ma si ritira senza consegnare non perde il vecchio voto. È disponibile il testo del compito con un commento relativo all'esercizio 2 (parallelizzazione di un ciclo con OpenMP).
27/01/2019
I voti della prova scritta del 22/1/2019 sono disponibili su AlmaEsami. I dettagli dei punteggi assegnati ad ogni esercizio sono consultabili su questo file. È possibile sostenere nuovamente la prova scritta per migliorare il voto; tuttavia, chi consegna un nuovo scritto perde automaticamente tutti i voti degli scritti precedenti, a prescindere dal nuovo risultato; chi si presenta nuovamente ma si ritira senza consegnare non perde il vecchio voto. È disponibile il testo del compito con alcuni commenti sugli errori comuni.
22/01/2019
Cambio aula: la prova d'esame del 19/2 si svolgerà in aula 2.6. L'orario resta invariato.
18/01/2019
È disponibile un ulteriore esempio di prova di esame, con alcuni commenti sulle risposte viste in passato.
16/01/2019
Il secondo appello è fissato per il 19/2/2019 alle ore 14:00 in aula 2.3; sono consapevole che la data non è ottimale, ma non ci sono alternative. È richiesta l'iscrizione tramite AlmaEsami
15/01/2019
Il server isi-raptor03.csr.unibo.it è nuovamente disponibile. Rimane disponibile anche la macchina virtuale disi-hpc.csr.unibo.it (stesse modalità di accesso di isi-raptor03) su cui è possibile testare le versioni OpenMP/MPI.
11/01/2019
A causa di un imprevisto, la seconda prova scritta originariamente fissata per il 15/2/2019 è rinviata; a breve sarà comunicata la nuova data e verranno aperte le iscrizioni tramite AlmaEsami. Mi scuso per il disagio.
08/01/2019
Il server isi-raptor03.csr.unibo.it risulta irraggiungibile (almeno da me; se qualcuno riesce a collegarsi mi faccia sapere). Nell'attesa di risolvere il problema, per la programmazione OpenMP/MPI si può usare la macchina virtuale disi-hpc.csr.unibo.it con le stesse modalità di accesso di isi-raptor03.
29/12/2018
Ho aggiornato il file earthquake.c del progetto per correggere un errore di accesso out-of-bound nella funzione propagate_energy(); ringrazio Samuele Medici per aver segnalato il problema.
20/12/2018
È disponibile la specifica del progetto per l'AA 2018/2019; la versione seriale del programma da realizzare è stata modificata per includere l'inizializzazione esplicita del generatore pseudocasuale.
27/11/2018
Mercoledì 28 novembre alle ore 18:00 in aula Magna terrò un seminario dal titolo Fiori, conchiglie e fiocchi di neve: la bellezza computazionale della natura per il ciclo Open Your Mind. Il seminario è completamente slegato dal corso di HPC e avrà un taglio divulgativo. Chi fosse in zona è benvenuto. AGGIORNAMENTO: è disponibile il video della presentazione.
24/10/2018
Sono disponibili le date degli appelli d'esame della sessione invernale (gennaio/febbraio 2019). Le liste di iscrizione sono già aperte. Ricordo che le liste chiudono alcuni giorni prima della prova, quindi è necessario iscriversi per tempo.
19/9/2018
La lezione di giovedì 27 settembre è annullata. e verrà recuperata venerdì 5 ottobre dalle ore 11:00 alle 13:00 in aula 2.6
8/9/2018
La prima lezione del corso si terrà giovedì 20 settembre alle ore 9:00 in aula 2.4 (nuova sede)
21/8/2018
Creata questa pagina.

Introduzione

Questa è la pagina del corso di High Performance Computing, corso di laurea in Ingegneria e Scienze Informatiche, AA 2018/2019, Università di Bologna (campus di Cesena). Il corso intende fornire agli studenti le conoscenze teoriche e pratiche necessarie per progettare, implementare e analizzare programmi paralleli su architetture a memoria condivisa e distribuita.

Prerequisiti: Questo corso richiede una buona conoscenza della programmazione in linguaggio C, e delle architetture dei calcolatori (a livello di quanto presentato nel corso di architettura dei calcolatori). Lavoreremo in ambiente Linux utilizzando prevalentemente software libero (compilatore GCC, libreria Open MPI; per la programmazione CUDA useremo il software proprietario NVIDIA, dato che al momento mancano alternative libere). È quindi auspicabile avere già acquisito confidenza con l'ambiente Unix/Linux e i suoi strumenti di sviluppo.

Programma del corso e libri di testo

Programma di massima

Testi di riferimento

Materiale per approfondimenti

Guide introduttive alla shell Linux

(per chi non ha seguito il corso di Sistemi Operativi con il prof. Vittorio Ghini)

Esame

Specifiche del progetto per l'AA 2018/2019

Specifiche del progetto [PDF] (consegna entro le ore 23:59 del 30 settembre 2019)

Regole d'esame

Per sostenere la prova scritta è obbligatorio iscriversi tramite AlmaEsami. Le liste di iscrizione chiudono alcuni giorni prima per consentire la gestione degli aspetti logistici dell'esame, per cui è necessario iscriversi per tempo. Le date delle prove scritte sono riportate nella tabella seguente:

Prove scritte di High Performance Computing 2018/2019
Sessione invernale (Gennaio-Febbraio 2019)
I Martedì 22/1/2019 ore 10:00 aula 2.5
[Dettaglio voti] [Testo con alcuni commenti]
II Martedì 19/2/2019 ore 14:00 aula 2.6
[Dettaglio voti] [Testo]
Sessione estiva (Giugno-Luglio 2019)
I Mercoledì 19/6/2019 ore 10:00 aula 2.13
II Mercoledì 3/7/2019 ore 10:00 aula 2.4
[Dettaglio voti]
III Mercoledì 24/7/2019 ore 10:00 aula 2.13
[Dettaglio voti]
Sessione autunnale (Settembre 2019)
I lunedì 16/9/2019 ore 09:00 lab 2.2
È obbligatoria l'iscrizione tramite AlmaEsami

Orario delle lezioni

Tutte le lezioni si svolgeranno presso il nuovo campus universitario di Cesena.

Alcune lezioni potrebbero subire delle variazioni rispetto all'orario; si prega di fare riferimento al calendario delle lezioni che verrà aggiornato di volta in volta.

Orario del corso di High Performance Computing, AA 2018/2019
Martedì 9:00—11:00, Lab 3.3
Giovedì 9:00—12:00, Aula 2.4

Lucidi delle lezioni

I lucidi non sono da considerare come sostitutivi né dei testi di riferimento né della frequenza alle lezioni, che costituiscono importanti elementi per una buona preparazione dell'esame; i lucidi messi a disposizione costituiscono soltanto uno schema di parte delle lezioni. Ringrazio chi mi segnalerà eventuali errori.

I lucidi al momento disponibili sono quelli usati l'anno accademico precedente; saranno possibili modifiche durante il corso, specialmente prima delle varie lezioni.

20/9/2018 ore 9:00 aula 2.4
Introduzione al corso (Pacheco cap. 1)
[ODP] [PDF]
Altro materiale
25/9/2018 ore 9:00 lab 3.3
Parallel computing architectures (Pacheco cap. 2 escluso 2.3.3)
[ODP] [PDF]
Altro materiale
27/9/2018
Lezione annullata
2/10/2018 ore 9:00 lab 3.3
Performance Evaluation of Parallel Programs (Pacheco cap. 2.6)
[ODP] [PDF]
4/10/2018 ore 9:00 aula 2.4
Parallel Programming Patterns
[ODP] [PDF]
5/10/2018 ore 11:00 aula 2.6
Parallel Programming Patterns (cont.)
9/10/2018 ore 09:00 lab 3.3
Shared-Memory Programming with OpenMP (fino slide 12; Pacheco cap. 5)
[ODP] [PDF]
Altro materiale
11/10/2018 ore 09:00 aula 2.4
Shared-Memory Programming with OpenMP (fino slide 41; Pacheco cap. 5)
16/10/2018 ore 09:00 lab 3.3
Prima esercitazione OpenMP
[ODT] [PDF] [ex1-openmp.zip] [possibili soluzioni] [Istruzioni per la connessione al server]
18/10/2018 ore 09:00 aula 2.4
Shared-Memory Programming with OpenMP (concluso; Pacheco cap. 5)
23/10/2018 ore 09:00 lab 3.3
Seconda esercitazione OpenMP
[ODT] [PDF] [ex2-openmp.zip] [possibili soluzioni]
25/10/2018 ore 09:00 aula 2.4
Parallelizing Loops
[ODP] [PDF]
Introduction to MPI (Pacheco cap. 3)
30/10/2018 ore 09:00 lab 3.3
Terza esercitazione OpenMP
[ODT] [PDF] [ex3-openmp.zip] [possibili soluzioni]
1/11/2018
No lezione (Ognissanti)
6/11/2018 ore 09:00 lab 3.3
Prima esercitazione MPI
[ODT] [PDF] [ex1-mpi.zip] [possibili soluzioni]
8/11/2018 ore 09:00 aula 2.4
Distributed-Memory Programming with MPI (cont., Pacheco cap. 3)
[ODP] [PDF]
Altro materiale
13/11/2018 ore 09:00 lab 3.3
Seconda esercitazione MPI
[ODT] [PDF] [ex2-mpi.zip] [possibili soluzioni]
15/11/2018 ore 09:00 aula 2.4
Distributed-Memory Programming with MPI (cont., Pacheco cap. 3)
20/11/2018 ore 09:00 lab 3.3
Terza esercitazione MPI
[ODT] [PDF] [ex3-mpi.zip] [possibili soluzioni]
22/11/2018 ore 09:00 aula 2.4
CUDA Programming
[ODP] [PDF]
Altro materiale
27/11/2018 ore 09:00 lab 3.3
Prima esercitazione CUDA
ODT] [PDF] [ex1-cuda.zip] [possibili soluzioni]
29/11/2018 ore 09:00 aula 2.4
CUDA Programming (cont.)
Compilazione questionari sul corso
4/12/2018 ore 09:00 lab 3.3
Seconda esercitazione CUDA
[ODT] [PDF] [ex2-cuda.zip] [possibili soluzioni]
6/12/2018 ore 09:00 aula 2.4
CUDA Programming (cont.)
11/12/2018 ore 09:00 lab 3.3
Terza esercitazione CUDA
[ODT] [PDF] [ex3-cuda.zip] [possibili soluzioni]
13/12/2018 ore 09:00 aula 2.4
SIMD Programming
[ODP] [PDF]
18/12/2018 ore 09:00 lab 3.3
Esercitazione SIMD
[ODT] [PDF] [ex1-simd.zip] [possibili soluzioni]
20/12/2018 ore 09:00 aula 2.4
Presentazione del progetto d'esame

Codice di esempio

HPC1819.zip: esempi di programmazione illustrati durante il corso.

Istruzioni per l'accesso al server usato in laboratorio.

This page validates as XHTML 1.0 strict This page validates as CSS Check the accessibility of this page with WAVE
This page was last updated on July 26 2019 informativa sulla privacy