Università del Salento

Collegamenti ai contenuti della pagina:
unisalento-theme-il-contenuto-pagina
Il menu di navigazione
Motore di ricerca
Area Riservata
Accessibilità






unisalento-theme-contenuto-della-pagina [Inizio pagina]

Giovanni ALOISIO

CORSI

Calcolatori Elettronici

CdL Ingegneria dell'Informazione - 6 CFU

Anno: III
 

Periodo lezioni: II semestre

 
Obiettivi del corso:

Il Corso è finalizzato allo studio della struttura dei calcolatori elettronici sequenziali. Vengono esposti i principi quantitativi per misurare le prestazioni ed i criteri per l'analisi del rapporto costo/prestazioni. Vengono affrontate, dal punto di vista del progettista di calcolatori , le fasi operative del progetto di un processore RISC, arrivando a progettare in dettaglio le unità di calcolo e di controllo, per processori Single-Cycle, Multi-Cycle e Pipeline. 

Programma:

Principi di progettazione dei calcolatori: Definizione di prestazione. Confronto di prestazioni. Principi quantitativi di progettazione dei calcolatori. Legge di Amdhal. Regole di progetto. Regola di Case/Amdhal. Rapporto Costo/Prestazioni.

Progetto di un processore RISC Single-Cycle: Progetto dell’insieme istruzioni. Progetto dell'unità di calcolo e di controllo per realizzazione a ciclo singolo. Progetto dell’unità di controllo dell’ALU tramite logica sparsa. Progetto dell’unità di controllo generale tramite logica strutturata. I problemi della progettazione a ciclo singolo.

Progetto di un processore RISC Multi-Cycle: Progetto dell'unità di controllo generale e tecniche di rappresentazione delle specifiche del controllore. Diagramma a stati finiti e microprogrammazione. Approccio cablato (uso di PLA) ed approccio strutturato (uso di ROM) per la realizzazione del controllore. Uso di sequenzializzatore esplicito.

Tecnica del pipelining: le prestazioni di sistemi organizzati a pipeline. Controllo di tipo pipeline. Conflitti strutturali, conflitti di dati e conflitti di controllo. Metodi di risoluzione dei conflitti.

Testi di riferimento:

David A. Patterson and John L. Hennessy, "Computer Organization & Design - The hardware/software Interface", Morgan Kaufmann Publishers, Inc. - Second Edition, ISBN 1-55860-428-6.

Prerequisiti:

Solide conoscenze dei contenuti forniti nel corso di Fondamenti di Informatica.

Risultati di apprendimento previsti: 

- Acquisizione delle nozioni fondamentali teoriche e pratiche relative alla progettazione di un calcolatore elettronico, per poter valutare criticamente i diversi approcci di progettazione usati per migliorare le prestazioni di un sistema di calcolo sequenziale;

- Acquisizione delle conoscenze teoriche e pratiche delle principali tecniche di progettazione utilizzate nei centri di Ricerca e Sviluppo specializzati nel progetto e realizzazione di processori digitali;

- Acquisizione di una preparazione tecnica indispensabile per eseguire autonomamente la propria attività professionale in laboratori che richiedano un approccio metodologico ed una predisposizione alla progettazione e realizzazione di sistemi di elaborazione dell'informazione.

Modalità di accertamento dei risultati: 

Il conseguimento dei crediti attribuiti all’insegnamento è ottenuto mediante prova orale con votazione finale in trentesimi ed eventuale lode.

Organizzazione della didattica: 

Sono previsti 6 CFU di lezioni teoriche (54 ore). 

Modalità di frequenza: 

La frequenza alle lezioni teoriche non è obbligatoria, anche se è fortemente consigliata. 

Per il Calendario delle Attività Didattiche e le relative Aule si rimanda alla Sezione ORARIO LEZIONI del Portale della Facoltà.

Calendario delle prove d'esame:

Per il Calendario delle prove d'esame si rimanda alla sezione relativa del Portale della Facoltà

 

High Performance Computing

CdLM Computer Engineering - 9 CFU

Year: II 

2nd semester
 
Overview

The architectures of cache-based microprocessors is discussed, with a special focus on their inherent performance limitations. Developments based on multicore chips and simultaneous multithreading are also considered. General optimization strategies for serial code on cache-based architectures are presented. Simple models are used to convey the concept of “best possible” performance of loop kernels, showing how to raise those limits by code transformations. Hands-on on parallel computing will be also organized through case studies to be developed using MPI and their parallel efficiency evaluation.

Course Contents

Introduction of the course and review of previous topics covered in the first level course on Computer Architectures (2 hours).

General-purpose cache-based microprocessor architecture: Performance metrics and benchmarks. Moore’s Law. Pipelining. Superscalarity. SIMD (6 hours).

Memory hierarchies: Cache. Cache mapping. Prefetch (6hours).

Advanced Solutions: Multicore processors. Multithreaded processors. Vector processors (6 hours).

Basic optimization techniques for serial code: Scalar profiling (Function and line-based runtime profiling, Hardware performance counters, Manual instrumentation). Common sense optimizations. Simple measure, large impact. Aliasing, Computational accuracy, Register optimizations, Using compiler logs). C++ optimizations (Temporaries, Dynamic memory management, Loop kernels and iterators) (6 hours).

Data access optimization: Balance analysis and lightspeed estimates (Bandwidth-based performance modeling, The STREAM benchmarks). Storage order. Case study: The Jacobi algorithm (6 hours).

Parallel computers: Taxonomy of parallel computing paradigms. Shared-memory computers (Cache coherence, UMA, ccNUMA). Distributed-memory computers. Hierarchical (hybrid) systems. Networks (Basic performance characteristics of networks, Buses, Switched and fat-tree networks, Mesh networks, Hybrids) (6 hours).

Basics of parallelization: Parallelism (Data parallelism, Functional parallelism). Parallel scalability (Factors that limit parallel execution, Scalability metrics, Simple scalability laws, Parallel efficiency, Serial performance versus strong scalability, Refined performance models, Choosing the right scaling baseline, Case study: Can slower processors compute faster? Load imbalance) (8 hours).

Hands-on parallel computing: case studies developed using MPI and parallel efficiency evaluation (35 hours).

Reference Book

Georg Hager and Gerhard Wellein, " Introduction to High Performance Computing for Scientists and Engineers ", CRC Press, © 2011 by Taylor and Francis Group, LLC - ISBN 978-1-4398-1192-4.

Prerequisite:

Good knowledge of the contents of first level courses on Informatics (Fondamenti di Informatica and Calcolatori Elettronici) and of the courses on "Parallel Algorithms" - 2nd Year (1st semester) of the 2nd Level Degree in Computer Engineering.

Learning Outcomes:

After the course the student should be able to understand how to solve a number of central issues in high performance computing, starting from a deep knowledge of the basics of modern processor architectures and serial optimization techniques that can effectively exploit the architectural features for scientific computing. 

Method of assessing results: oral + project development

The oral exam is aimed at verifying to what extent the student has gained knowledge and understanding of the selected topics of the course and is able to communicate about his understanding.

Students, divided into small groups (max two students), will also get hands-on experience, developing small projects on specific topics of the course. The max final vote is expressed as 30/30 with the possibility to get the laude

Office Hours: By appointment; contact the instructor by email or at the end of class meetings.

Organisation of teaching:

9 CFU (81 hours). 

Attendance rules and calendar of the final tests:

Compulsory attendance is requested, since attendance at lectures and laboratory is mandatory because the course is based on the "learning by doing" approach on the advanced computing resources provided. The course will be held in the HPC Lab of the Engineering Faculty.

Calendar of exams:

For the calendar of exams, please refer to the section on the Faculty Portal.