- Docente: Stefano Mattoccia
- Crediti formativi: 8
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Moduli: Stefano Mattoccia (Modulo 1) Fabio Tosi (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea Magistrale in Ingegneria informatica (cod. 6719)
-
Orario delle lezioni (Modulo 1)
dal 19/09/2025 al 19/12/2025
-
Orario delle lezioni (Modulo 2)
dal 17/09/2025 al 17/12/2025
Conoscenze e abilità da conseguire
Al termine del corso lo studente acquisisce competenze avanzate nell'ambito del calcolo accelerato e dei moderni sistemi per l'elaborazione ad alte prestazioni (HPC). In particolare, sviluppa una conoscenza approfondita delle tecnologie di accelerazione disponibili, dalle estensioni SIMD fino alle moderne architetture GPU e framework emergenti per il calcolo eterogeneo, maturando la capacità di ottimizzare problemi computazionali attraverso la scelta appropriata di pattern algoritmici, formati numerici e strategie di decomposizione del calcolo. Lo studente padroneggia gli strumenti di programmazione per l'accelerazione su CPU e attraverso CUDA per GPU, acquisendo una comprensione avanzata dei modelli di esecuzione e delle tecniche di ottimizzazione specifiche per ogni piattaforma. Queste capacità permettono di sviluppare soluzioni computazionalmente efficienti in ambiti all'avanguardia quali intelligenza artificiale, elaborazione di big data e calcolo scientifico ad alte prestazioni.
Contenuti
Architetture e modelli di programmazione per calcolo a elevate prestazioni. Nel corso si farà paricolare riferimento a tematiche inerenti computer vision e intelligenza artificiale.
1: Introduzione al calcolo a elevate prestazioni
-
Concetti fondamentali del calcolo parallelo
-
Architetture per calcolo a elevate prestazioni: CPU multi-core, GPU, sistemi embedded
2: SIMD and Multi-threading (Modulo 1)
-
Introduzione al SIMD
-
Principi di multi-threading
-
SIMD e Multi-threading
3: GPU e Programmazione CUDA C (Modulo 2)
-
Modello di Programmazione CUDA
-
Architetture GPU e Modello di Esecuzione CUDA
-
Gerarchia e Organizzazione della Memoria GPU
-
Ecosistema CUDA: Librerie e Applicazioni
4: Rappresentazione ed elaborazioni con numeri reali (Modulo 1)
-
Floating point
-
Fixed point
5: Tecnologie Emergenti (Modulo 1)
-
FPGA (Field Programmable Gate Array)
Testi/Bibliografia
Lucidi e codice disponibili in Virtuale.
Per approfondimenti:
Cheng, J., Grossman, M., McKercher, T. (2014). Professional CUDA C Programming. Wrox Pr Inc. (1^ edizione)
Kirk, D. B., Hwu, W. W. (2013). Programming Massively Parallel Processors. Morgan Kaufmann (3^ edizione)
Timothy G. Mattson, Yun (Helen) He, Alice E. Koniges, The OpenMP Common Core: Making OpenMP Simple Again, MIT Press, 2019
Jean-Michel Muller , Nicolas Brunie , Florent de Dinechin , Claude-Pierre Jeannerod , Mioara Joldes , Vincent Lefèvre , Guillaume Melquiond , Nathalie Revol , Serge Torre, Handbook of Floating-Point Arithmetic, Springer Birkhäuser 2018
Jean-Michel Muller, Elementary Functions: Algorithms and Implementation, Springer Birkhäuser 2016
Metodi didattici
Verifica delle nozioni presentate durante le lezioni mediante esercitazioni con strumenti di sviluppo software.
Modalità di verifica e valutazione dell'apprendimento
La verifica consiste nello sviluppo automomo di un progetto (gruppi di non più di due studenti) e in domande sui temi del corso.
Studenti/sse con DSA o disabilità temporanee o permanenti: si raccomanda di contattare per tempo l’ufficio di Ateneo responsabile (https://site.unibo.it/studenti-con-disabilita-e-dsa/it): sarà sua cura proporre agli/lle studenti/sse interessati/e eventuali adattamenti, che dovranno comunque essere sottoposti, con un anticipo di 15 giorni, all’approvazione del/della docente, che ne valuterà l'opportunità anche in relazione agli obiettivi formativi dell'insegnament
Strumenti a supporto della didattica
Piattaforme di svilippo software.
Orario di ricevimento
Consulta il sito web di Stefano Mattoccia
Consulta il sito web di Fabio Tosi