ID:
A001225
Durata (ore):
48
CFU:
6
Url:
DATA SCIENCE/PERCORSO COMUNE Anno: 2
Anno:
2023
Dati Generali
Periodo di attività
Primo Semestre (25/09/2023 - 12/01/2024)
Syllabus
Obiettivi Formativi
Fornire i concetti fondamentali della programmazione parallela, delle tematiche e problematiche relative la parallelizzazione degli algoritmi e delle metodologie di decomposizione, comunicazione aggregazione e mapping di task a risorse computazionali parallele e distribuite. Applicazione delle conoscenze e tecniche acquisite nell’ambito dei sistemi paralleli e distribuiti, HPC e calcolo parallelo. Capacità di applicare le tecniche acquisite nella progettazione, sviluppo e manutenzione di sistemi paralleli e distribuiti e nella parallelizzazione di sistemi preesistenti o revisione di soluzioni parallele. Capacità di effettuare scelte sulla parallelizzazione di un algoritmo e sull’implementazione di soluzioni parallele che possano ottimizzare prestazioni, affidabilità e costi, valutando in autonomia eventuali trade-off tra tali grandezze, sfruttando le competenze acquisite durante il corso ed applicate in fase sperimentale/di progetto Acquisizione di abilità nella risoluzione di problemi, in particolare attraverso lo sviluppo di algoritmi paralleli e soprattutto di rappresentarli e specificarli attraverso specifica documentazione o comunicarli direttamente ai membri del team attraverso progetti di gruppo. Acquisizione di autonomia nell’analisi e nello studio di problemi da parallelizzare e nell’apprendimento di nuove tecniche così come nella ricerca di middleware, tools, librerie e package di classi utili alla risoluzione di problemi complessi. Adozione di approcci di programmazione parallela e loro adattamento al problema in oggetto.
Prerequisiti
Conoscenze di base relative alle architetture e ai sistemi operativi degli elaboratori elettronici. Buona conoscenza di un linguaggio di programmazione, prevalentemente C. Conoscenze di base di matematica e di statistica.
Metodi didattici
Lezioni frontali e laboratorio: il corso si svolge prevalentemente attraverso lezioni frontali e seminari su specifici aspetti disciplinari. Parte delle lezioni verteranno su aspetti pratici/di laboratorio, espletato prevalentemente in aula attraverso sessioni “hands on” su propri dispositivi (BYOD – Bring Your Own Device)
Verifica Apprendimento
L'esame consiste nell’elaborazione di un progetto, seguito dalla prova orale. Il progetto verterà sugli argomenti discussi nel corso, mettendoli in pratica in un contesto applicativo di tipo HPC.
La prova orale è incentrata sulla discussione del progetto, approfondendo gli aspetti teorici e gli argomenti trattati durante il corso. Essa ha il duplice scopo di verificare il livello di conoscenza e di comprensione dei contenuti del corso e di valutare l'autonomia di giudizio, la capacità di apprendimento, l'abilità comunicativa e proprietà di linguaggio scientifico e indi valutare le facoltà logico-deduttive acquisite dallo studente.
Il voto finale è espresso in trentesimi e tiene conto della valutazione ottenuta dal progetto (70%) e durante la prova orale (30%).
La prova orale è incentrata sulla discussione del progetto, approfondendo gli aspetti teorici e gli argomenti trattati durante il corso. Essa ha il duplice scopo di verificare il livello di conoscenza e di comprensione dei contenuti del corso e di valutare l'autonomia di giudizio, la capacità di apprendimento, l'abilità comunicativa e proprietà di linguaggio scientifico e indi valutare le facoltà logico-deduttive acquisite dallo studente.
Il voto finale è espresso in trentesimi e tiene conto della valutazione ottenuta dal progetto (70%) e durante la prova orale (30%).
Testi
Libri suggeriti (in ordine di rilevanza)
- Introduction to Parallel Computing, Second Edition By Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar Publisher: Addison Wesley, 2003 ISBN: 0-201-64865-2 Pages: 856
- Wilkinson Allen “Parallel Programming. Techniques and applications using networked workstations and parallel computers” Second edition - Pearson ISBN:0-131-40563-2
- Lin- Snyder “Principles of Parallel Programming” - Pearson ISBN:0-321-48790-7
Dispense su Quantum Computing
- Introduction to Parallel Computing, Second Edition By Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar Publisher: Addison Wesley, 2003 ISBN: 0-201-64865-2 Pages: 856
- Wilkinson Allen “Parallel Programming. Techniques and applications using networked workstations and parallel computers” Second edition - Pearson ISBN:0-131-40563-2
- Lin- Snyder “Principles of Parallel Programming” - Pearson ISBN:0-321-48790-7
Dispense su Quantum Computing
Contenuti
Introduzione al calcolo parallelo. Parallelismo Implicito ed Esplicito. Architetture SIMD e MIMD, memoria condivisa e memoria distribuita. Reti di comunicazione e topologie in sistemi distribuiti. Storage distribuito, RAID, architetture di storage distribuito ed in rete: DAS, NAS, SAN. Speed up ed efficienza di algoritmi paralleli, scaling debole e scaling forte. Decomposizione di algoritmi paralleli, task parallelism e data parallelism, task decomposition graph e task interaction graph, tecniche di decomposizione dei task basati su dati, interazioni, ed altri parametri. Mapping, tecniche di mapping, mapping statico e dinamico. Paradigmi shared address space e message passing. Principali primitive MPI. Primitive di comunicazione collettiva e loro implementazione ed ottimizzazione. Programmazione parallela attraverso OpenMP.
OpenCL: architettura, principi e programmazione
Quantum computing: introduzione, principi, concetti base, porte logiche, algoritmi
OpenCL: architettura, principi e programmazione
Quantum computing: introduzione, principi, concetti base, porte logiche, algoritmi
Lingua Insegnamento
Lingua Inglese
Corsi
Corsi
DATA SCIENCE
Laurea Magistrale
2 anni
No Results Found
Persone
Persone
No Results Found