Studiare

In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.

Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.
Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:

Laurea magistrale in Ingegneria e scienze informatiche - Immatricolazione dal 2025/2026

Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.

CURRICULUM TIPO:

1° Anno 

2° Anno   Attivato nell'A.A. 2023/2024

InsegnamentiCreditiTAFSSD
Prova finale
24
E
-
Attivato nell'A.A. 2023/2024
InsegnamentiCreditiTAFSSD
Prova finale
24
E
-
Insegnamenti Crediti TAF SSD
Tra gli anni: 1°- 2°
2 insegnamenti a scelta (A.A. 2022/23: Quantum computing non erogato; A.A. 2023/24: Progettazione ad alte prestazioni in C++ non erogato)
6
B
INF/01
6
B
INF/01
Tra gli anni: 1°- 2°
Lingua inglese liv. B2
3
F
-
Tra gli anni: 1°- 2°
Tra gli anni: 1°- 2°
Altre attivita'
3
F
-

Legenda | Tipo Attività Formativa (TAF)

TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S008908

Crediti

6

Coordinatore

Non ancora assegnato

Lingua di erogazione

Italiano

Settore Scientifico Disciplinare (SSD)

INF/01 - INFORMATICA

L'insegnamento è organizzato come segue:

Teoria
Attività mutuata da Parallel programming - Teoria del corso: Laurea magistrale in Medical bioinformatics [LM-18]

Crediti

4

Periodo

Secondo semestre

Docenti

Nicola Bombieri

Laboratorio
Attività mutuata da Parallel programming - Laboratorio del corso: Laurea magistrale in Medical bioinformatics [LM-18]

Crediti

2

Periodo

Secondo semestre

Docenti

Nicola Bombieri

Obiettivi di apprendimento

Il corso si propone di fornire conoscenze teoriche e pratiche per la programmazione e l'analisi di architetture di calcolo avanzate con particolare enfasi alle piattaforme multiprocessore e GPU. Conoscenza e capacità di comprensione Capacità di applicare le conoscenze necessarie per individuare tecniche di parallelizzazione di applicazioni Software, anche in un contesto di ricerca, attraverso l'analisi dell'efficienza delle applicazioni considerando vincoli funzionali e non funzionali di progettazione (correttezza, performance, consumo energetico). Conoscenze applicate e capacità di comprensione Analisi delle performance e profiling del codice, con individuazione zone critiche e relativa ottimizzazione considerando caratteristiche architetturali della piattaforma. Autonomia di giudizio Capacità di confrontare pattern di parallelismo diversi e scegliere tra questi il piu adeguato a seconda del contesto d'uso. In fase di definizione della struttura del codice ottimizzato, capacità di fare le scelte progettuali più appropriate a seconda del contesto e piattaforma in cui l'applicazione parallela verrà usata. Abilità comunicative Lo studente sarà, inoltre, in grado di relazionarsi con gli interlocutori nell'ambiente lavorativo o di ricerca. Capacità di apprendere Capacità di proseguire gli studi in modo autonomo nell’ambito dei linguaggi di programmazione paralleli e dello sviluppo di software per piattaforme embedded e/o parallele.

Prerequisiti e nozioni di base

Programmazione di base in C

Programma

Teoria:
- Parallel architectures
- Parallel programming models
- Performance measurement
- Perspective on Parallel Programming
- Designing parallel programs
- GPUs and CUDA:
overview , parallel programming model, threads
memory hierarchy/model
performance considerations
optimizations
- Graph algorithms on GPUs
data representations: Adj. matriX/lists, edge lists
Parallel algorithms for graph traversal (BFS)
Parallel algorithms for graph analysis (SSSP, APSP)
Parallel algorithms for graphs: load balancing and memory accesses: issues and management
Lab:
- OpenMP
- MPI
- CUDA

Bibliografia

Visualizza la bibliografia con Leganto, strumento che il Sistema Bibliotecario mette a disposizione per recuperare i testi in programma d'esame in modo semplice e innovativo.

Modalità didattiche

Lezioni frontali per teoria
Lezioni frontali e sviluppo codice in lab.

Modalità di verifica dell'apprendimento

Esercizi a risposta aperta (tempo totale 2 o 2.5 ore)

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI

Criteri di valutazione

Per superare l'esame lo studente dovrà dimostrare di:
- aver compreso i principi alla base della programmazione parallela
- essere in grado di esporre le proprie argomentazioni in modo preciso e organico senza divagazioni
- saper applicare le conoscenze acquisite per risolvere problemi applicativi presentati sotto forma di esercizi, domande e progetti.

Criteri di composizione del voto finale

L'esame consiste in una prova scritta, contenente domande a risposta multipla, domande a risposta aperta ed esercizi riguardanti sia la parte teorica che di laboratorio. Lo studente potrà elaborare un progetto assegnato dal docente per un bonus (fino a +5 punti).

Lingua dell'esame

English