PROGRAMMAZIONE PARALLELA E HPC
cod. 1007846

Anno accademico 2024/25
3° anno di corso - Secondo semestre
Docente
Roberto ALFIERI
Settore scientifico disciplinare
Informatica (INF/01)
Ambito
Discipline informatiche
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in ITALIANO

Obiettivi formativi

Il corso introduce i principi ed i concetti fondamentali su cui si basano i sistemi paralleli. In particolare, vengono analizzate le architetture moderne, le caratteristiche degli algoritmi paralleli e le metodologie di programmazione per le architetture piu' diffuse (cluster processori, GPU)

Prerequisiti

Architettura degli Elaboratori, Sistemi Operativi

Contenuti dell'insegnamento

Studio e analisi delle prestazioni dei sistemi per il calcolo HPC.
Programmazione parallela a memoria condivisa con openMP, distribuita con MPI e programmazione delle GPU con CUDA.

Programma esteso

- hardware: architettura degli elaboratori paralleli, performance degli elaboratori e dei componenti principali: CPU, GPU, storage, high speed network (infiniband e omnipath), top500; use case: il cluster HPC UniPR

- software: progettazione di programmi paralleli, efficienza e speedup, legge di Amdahl, parallelismo automatico, guidato e manuale.
- parallelismo a memoria condivisa con openMP
- parallelismo a memoria distribuita con MPI
- programmazione di architetture GPU con CUDA

Laboratorio: prove sul cluster HPC UniPR, gestore code, ambiente software del cluster, profiling, sviluppo del codice parallelo.

Bibliografia

Il materiale didattico sara' fornito su Elly (slide delle lezioni e riferimenti bibliografici)

Metodi didattici

Proporre un percorso che, partendo dalle architetture hardware piu' diffuse, propone diverse metodologie di programmazione adatte a tali sistemi.
Il corso prevede, oltre a lezioni teoriche, una serie di esercitazioni pratiche svolte sul cluster HPC di ateneo.

Con riferimento agli Indicatori di Dublino:

Conoscenza e capacità di comprensione
Il corso introduce i primi concetti relativi al calcolo paralello e ad alte prestazioni. Particolare enfasi è data alla comprensione delle dei modelli di calcolo ed algoritmi adatti. I riferimenti per gli approfondimenti sono in italiano e viene utilizzata durante le lezioni la terminologia in lingua inglese come avviamento alla consultazione di letteratura scientifica internazionale.

Capacità di applicare conoscenza e comprensione
Le conoscenze teoriche presentate vengono sempre applicate alla risoluzione di problemi specifici. Le esercitazioni che affiancano il corso sono incentrate sulla risoluzione di esercizi e problemi, con particolare riferimento all’utilizzo dei sistemi paralleli. Spesso i metodi risolutivi vengono presentati sotto forma algoritmica, sviluppando negli studenti la capacità di strutturare procedure utili in numerose parti dell'informatica e non solo nell'ambito HPC.

Autonomia di giudizio
Gli esercizi, che vengono proposti relativamente alla parte teorica svolta a lezione, possono venire risolti individualmente o in gruppo. Il confronto con i compagni di corso, nel lavoro a casa o durante gli svolgimenti in aula, favorisce lo sviluppo di capacità specifiche per poter a chiarire ai compagni o ai docenti le proprie argomentazioni. Spesso gli esercizi proposti possono venire risolti in modi molto diversi e l'ascolto delle soluzioni proposte da altri permette di sviluppare la capacità di individuare strutture comuni, al di là delle apparenti differenze superficiali.

Abilità comunicative
Le numerose discussioni sui diversi metodi per risolvere i problemi proposti consentono di migliorare le capacità di comunicazione. Vengono inoltre abitualmente utilizzate durante le spiegazioni (ed esplicitamente evidenziate in classe) alcune modalità di comunicazione specifiche della tecnologia informatica.

Capacità di apprendimento
Lo studio delle origini delle soluzioni tecnologiche e la loro introduzione motivata da considerazioni quantitative contribuisce a realizzare negli studenti la capacità di apprendere in modo profondo e non soltanto superficiale e ripetitivo. Le conoscenze così acquisite non sono mai rigide e definitive, ma sono perfettamente adattabili ad ogni evoluzione e cambiamento di prospettiva e di contesto.

Modalità verifica apprendimento

Risultati dell'apprendimento e modalità di verifica
Saper comprendere e utilizzare in modo appropriato le tecniche relative alla programmazione di un sistema parallelo. Saper progettare un algoritmo parallelo ed implementarlo su un cluster/acceleratore hardware. Conoscere l'architettura di base delle configurazioni moderne di cluster HPC.

Modalità di verifica/esame
L'esame consiste in un colloquio orale a cui si accede solo previa consegna della prove di laboratorio assegnate durante il corso. Durante l'orale si discutono le consegne di laboratorio, nonche' argomenti di teoria trattati a lezione. In assenza della consegna delle prove di laboratorio, sara' richiesta una prova pratica sugli argomenti di laboratorio.
Non sono previste prove intermedie

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti


E. segreteria.scienze@unipr.it

Servizio per la qualità della didattica

Manager della didattica:
Dott.ssa Claudia Buga

T. 0521 902842
E. smfi.didattica@unipr.it
E. claudia.buga@unipr.it

Presidente del corso di studio

Prof. Alessandro Dal Palù
E. alessandro.dalpalu@unipr.it

Delegato orientamento in ingresso

Prof. Vincenzo Arceri
E. vincenzo.arceri@unipr.it

Delegato orientamento in uscita

Prof.ssa Chiara Guardasoni
E. chiara.guardasoni@unipr.it

Referente piani di studio

Prof. Flavio Bertini
E. flavio.bertini@unipr.it

Referente convalide

Prof. Andrea Munaro
E. andrea.munaro@unipr.it

Docenti tutor

Prof. Enea Zaffanella
E. enea.zaffanella@unipr.it

Delegati Erasmus

Prof. Andrea Munaro
E. andrea.munaro@unipr.it

Studente tutor per scambi all'estero (in definizione)
E.

Responsabile assicurazione qualità

Prof.ssa Chiara Guardasoni
E. chiara.guardasoni@unipr.it

Tirocini formativi

Referente prof. Enea Zaffanella
E. enea.zaffanella@unipr.it

Referente per le fasce deboli

Prof. Fiorenza Morini
E. fiorenza.morini@unipr.it

Studenti tutor

Tutor a.a. 2024-2025 
Dott. Saverio Mattia Merenda
Tutorato a sportello tutti i venerdì 9:00-10:30 in aula M a Matematica previo appuntamento via e-mail:
E. saveriomattia.merenda@studenti.unipr.it
 

Rappresentanti degli studenti in CCSU

  • Lorenzo Copelli
  • Alessandro Frasconi
  • Marcello Galli
  • Samuel Seligardi