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.

Piano Didattico

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.

1° Anno

InsegnamentiCreditiTAFSSD
9
B
ING-INF/04
Compulsory activities for Embedded & Iot Systems
Compulsory activities for Smart Systems & Data Analytics
6
B/C
INF/01 ,ING-INF/06
6
B/C
ING-INF/05
Compulsory activities for Robotics Systems
6
B/C
INF/01
6
B/C
ING-INF/05

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

InsegnamentiCreditiTAFSSD
Compulsory activities for Embedded & Iot Systems
Compulsory activities for Robotics Systems
Compulsory activities for Smart Systems & Data Analytics
6
B/C
ING-INF/05
InsegnamentiCreditiTAFSSD
9
B
ING-INF/04
Compulsory activities for Embedded & Iot Systems
Compulsory activities for Smart Systems & Data Analytics
6
B/C
INF/01 ,ING-INF/06
6
B/C
ING-INF/05
Compulsory activities for Robotics Systems
6
B/C
INF/01
6
B/C
ING-INF/05
Attivato nell'A.A. 2023/2024
InsegnamentiCreditiTAFSSD
Compulsory activities for Embedded & Iot Systems
Compulsory activities for Robotics Systems
Compulsory activities for Smart Systems & Data Analytics
6
B/C
ING-INF/05
Insegnamenti Crediti TAF SSD
Tra gli anni: 1°- 2°
Tra gli anni: 1°- 2°
3 modules among the following (Computer vision and Human computer interaction 1st year only; Advanced computer architectures 2nd year only; the other courses both 1st and 2nd year). Year 2023/24: Robot Programming and Control not activated
6
C
INF/01 ,ING-INF/06
6
C
ING-IND/16
6
C
INF/01 ,ING-INF/06
Tra gli anni: 1°- 2°
Tra gli anni: 1°- 2°
Further activities. International students (ie students who do not have an Italian bachelor’s degree) must compulsorily gain 3 credits of Italian language skills
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

4S009012

Crediti

6

Coordinatore

Nicola Bombieri

Lingua di erogazione

Inglese en

Offerto anche nei corsi:

Settore Scientifico Disciplinare (SSD)

INF/01 - INFORMATICA

Corsi Singoli

Autorizzato

L'insegnamento è organizzato come segue:

Parte II

Crediti

3

Periodo

I semestre

Parte I

Crediti

3

Periodo

I semestre

Obiettivi di apprendimento

Il corso si propone di fornire le conoscenze teoriche e pratiche per la programmazione e l'analisi di architetture di calcolo avanzate con particolare enfasi alle piattaforme embedded parallele ed eterogenee. Al termine del corso lo studente dovrà dimostrare di essere in grado di applicare le conoscenze necessarie per individuare tecniche di sviluppo di software dedicato per edge computing, anche in un contesto di ricerca, attraverso l'analisi dell'efficienza delle applicazioni considerando vincoli funzionali e non funzionali di progettazione (correttezza, performance, consumo di potenza ed efficienza energetica). Queste conoscenze consentiranno allo studente di effettuare un’analisi delle performance e profiling del codice, con individuazione delle zone critiche e relativa ottimizzazione considerando caratteristiche architetturali della piattaforma. Al termine del corso lo studente sarà in grado di confrontare pattern diversi di sviluppo di software embedded parallelo e scegliere tra questi il più adeguato a seconda del contesto d'uso. In fase di definizione della struttura del codice ottimizzato, sarà in grado di fare le scelte progettuali più appropriate a seconda del contesto e piattaforma in cui l'applicazione parallela verrà usata. Inoltre, lo studente avrà le conoscenze necessarie per proseguire gli studi in modo autonomo nell’ambito dei linguaggi e tecniche di programmazione per lo sviluppo di software per piattaforme embedded parallele ed eterogenee.

Prerequisiti e nozioni di base

Programmazione di base in C

Programma

Modulo TEORIA (32 ore):
-) Introduzione alle architetture avanzate di calcolo.
-) Modelli di programmazione parallela e per architetture programmabili at-the-edge.
-) Misura e analisi delle prestazioni, legge di Amdhal e metriche per la misura delle prestazioni.
-) Consumi di potenza ed efficienza energetica: modelli di programmazione
-) Data-level parallelism: architetture GPU e CPU-iGPU
-) Pipeline: concetti base ed avanzati.
-) Instruction-level parallelism (ILP).
-) Tecniche avanzate di branch prediction, static scheduling e speculation.
-) Gerarchie di memoria: concetti base ed avanzati.
-) Tecniche avanzate per l'ottimizzazione delle performance della cache.
-) Thread-level parallelism (TLP).
-) Coerenza della cache in architetture shared-memory, protocolli Snoopy.
-) Edge computing e Deep Learning at the edge
Modulo LABORATORIO (24 ore):
-) Programmazione architetture eterogenee (CPU-iGPU)
-) Utilizzo di compilatori paralleli per architetture multi-core.
-) Inferenza basata su CNN e transfer learning at the edge

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 forntali e sviluppo codice per lab

Modalità di verifica dell'apprendimento

Esercizi a risposta libera per la parte di teoria, sviluppo codice per la parte di lab. 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 di architetture di calcolo avanzate
- 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