Laurea magistrale in Medical bioinformatics

Laurea magistrale in Medical bioinformatics

Architectures and systems for biological data processing (2020/2021)

Codice insegnamento
4S004555
Crediti
6
Coordinatore
Nicola Bombieri
Altri corsi di studio in cui è offerto
Settore disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Lingua di erogazione
Inglese

Pagine collegate al corso



L'insegnamento è organizzato come segue:
Attività Crediti Periodo Docenti
Teoria 4 II semestre Nicola Bombieri
Laboratorio 2 II semestre Nicola Bombieri

Vai all'orario delle lezioni

Obiettivi formativi

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.

Programma

Modulo TEORIA (32 ore):
-) Introduzione al parallelismo e alle architetture parallele.
-) Progettazione di programmi per architetture parallele.
-) Modelli di programmazione parallela.
-) Misura e analisi delle prestazioni, legge di Amdhal e metriche per la misura delle prestazioni.
-) 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.
-) General purpose Graphic Processing Unit (GP-GPU).
-) Introduzione vincoli non funzionali: consumo di potenza ed efficienza energetica.

Modulo LABORATORIO (24 ore):
-) Utilizzo di compilatori paralleli per architetture multiprocessore (OpenMP).
-) Utilizzo di compilatori paralleli per architetture multicomputer (MPI).
-) Programmazione GP-GPU: CUDA.

Modalità d'esame

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.

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).

Testi di riferimento
Attività Autore Titolo Casa editrice Anno ISBN Note
Teoria John Hennessy, David Patterson Computer Architecture - A Quantitative Approach (Edizione 6) Morgan Kaufmann 2018 9780128119051
Teoria David B. Kirk, Wen-mei W. Hwu Programming Massively Parallel Processors - A Hands-on Approach (Edizione 3) Morgan Kaufmann 2017 978-0-12-811986-0




© 2002 - 2021  Universit√† degli studi di Verona
Via dell'Artigliere 8, 37129 Verona  |  P. I.V.A. 01541040232  |  C. FISCALE 93009870234