CODICE 66642 ANNO ACCADEMICO 2016/2017 CFU 9 cfu anno 2 INFORMATICA 9014 (LM-18) - SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano (Inglese a richiesta) SEDE PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Obbiettivo di questo corso è di fornire conoscenze di base sull'architettura dei calcolatori paralleli e una certa pratica nella loro programmazione, insieme a un minimo di capacità di valutazione di sistemi di questo tipo. MODALITA' DIDATTICHE Lezioni, esercitazioni non guidate, discussioni in aula, studio personale PROGRAMMA/CONTENUTO Prestazioni di un calcolatore: Indici di prestazione diretti e inversi, assoluti e relativi. Benchmarks. Architettura dei processori pipeline: Prestazioni dei sistemi pipeline e loro valutazione analitica. Struttura di un processore pipeline. Conflitti (strutturali, sui dati, sul controllo) e loro impatto sulle prestazioni. Riduzione dei conflitti e/o del loro effetto sulle prestazioni: tecniche hardware. Il parallelismo a livello istruzioni nei programmi. Come sfruttare meglio il parallelismo a livello istruzioni quando si usano processori pipeline: loop unrolling, ridenominazione registri, riordino delle istruzioni. Processori pipeline avanzati: Schedulazione dinamica delle istruzioni: architettura di Tomasulo. Predizione dei salti (“branch prediction”): tecniche principali. Esecuzione speculativa delle istruzioni. Cenni sui processori superscalari: Processori ad avvio multiplo. Schedulazione istruzioni su processori ad avvio multiplo. Processori VLIW. Memoria cache e prestazioni dei calcolatori: Tecniche hardware per ridurre la penalita’ di cache miss. Tecniche hardware e software per ridurre la frequenza di cache miss. Tecniche hardware per nascondere l’impatto dei cache miss. Calcolatori multiprocessore MIMD: Generalità: MIMD a memoria comune, MIMD a memoria distribuita con spazio di indirizzamento comune, MIMD a memoria distribuita e scambio di messaggi. Scopi di un calcolatore MIMD. Limiti dei calcolatori MIMD: legge di Amdahl, ritardi di comunicazione. Calcolatori MIMD a memoria comune: Struttura a grandi linee. Riduzione dei conflitti di accesso alla memoria. Coerenza di cache: protocolli basati su “snooping”. Cooperazione tra processi su calcolatori a spazio di indirizzamento comune: Comunicazione e sincronizzazione. Implementazione di lock/unlock e barrier synchronization su spazio di indirizzamento comune, discussione delle loro prestazioni. Modelli di consistenza della memoria principale. Modelli di consistenza debole e loro vantaggi in termini di prestazioni. Programmazione parallela ad alto livello su calcolatori a spazio di indirizzamento comune: le direttive OpenMP. Calcolatori MIMD a memoria distribuita e scambio di messaggi: Struttura a grandi linee. Cooperazione tra processi: funzioni di comunicazione basate sullo scambio di messaggi. Funzioni di comunicazione bloccanti vs. non bloccanti, punto-punto vs. collettive, cenni sulla loro implementazione. Funzioni non bloccanti e riordino di istruzioni. Programmazione parallela a scambio di messaggi: il paradigma SPMD. MPI, uno standard per la programmazione parallela a scambio di messaggi. Esercitazioni pratiche sulla programmazione parallela mediante la libreria MPI. Il concetto di bilanciamento del carico e il suo impatto sulle prestazioni. Tecniche per il bilanciamento dinamico del carico (cenni). Sistemi paralleli di tipo “farm” e loro valutazione analitica. Per eventuali aggiornamenti si rimanda alla URL http://www.disi.unige.it/person/CiaccioG/parcomp/programma_corso.html TESTI/BIBLIOGRAFIA John Hennessy, David Patterson: Computer Architecture: A Quantitative Approach, Morgan Kaufmann Publishers. La “2nd edition” era disponibile anche in Italiano: Architettura dei Computer: Un Approccio Quantitativo, Jackson Libri. DOCENTI E COMMISSIONI GIUSEPPE CIACCIO Ricevimento: Su appuntamento via email Commissione d'esame GIUSEPPE CIACCIO (Presidente) GIOVANNI CHIOLA FRANCESCO MASULLI LEZIONI Orari delle lezioni PARALLEL COMPUTING ESAMI MODALITA' D'ESAME Esame orale, eventuale esame pratico mediante progetto