Offerta Didattica

 

ENGINEERING AND COMPUTER SCIENCE

PARALLEL PROGRAMMING

Classe di corso: LM-32, 18 - Classe delle lauree magistrali in Ingegneria informatica
AA: 2020/2021
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
ING-INF/05A scelta dello studenteLiberaLiberaNo
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
64024824024
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

OF1 (Conoscenza e comprensione) – 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. OF2 (Capacità di applicare conoscenza e comprensione) - 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. OF3 (Autonomia di giudizio) - 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 OF4 (Abilità comunicative) - 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. OF5 (Capacità di apprendimento) – 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.

Learning Goals


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)

Teaching Methods


Prerequisiti

Conoscenze di base relative alle architetture e ai sistemi operativi degli elaboratori elettronici. Conoscenza di un linguaggio di programmazione.

Prerequisites


Verifiche dell'apprendimento

Elaborazione di un progetto di programmazione parallela, relazione scritta e discussione dei risultati e degli argomenti teorici relativi al progetto.

Assessment


Programma del Corso

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. Laboratorio di calcolo parallelo: progettazione e realizzazione di un cluster parallelo.

Course Syllabus


Testi di riferimento: 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

Elenco delle unità didattiche costituenti l'insegnamento

Docente: SALVATORE DISTEFANO

Orario di Ricevimento - SALVATORE DISTEFANO

GiornoOra inizioOra fineLuogo
Lunedì 11:00 12:00Ingegneria, Piano 7, Blocco B
Note: Il ricevimento è previa appuntamento, si prega di contattare il docente e concordare la data e l'ora di ricevimento, non necessariamente il lunedi'.
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti