Giovanni ALOISIO

Giovanni ALOISIO

Professore I Fascia (Ordinario/Straordinario)

Dipartimento di Ingegneria dell'Innovazione

Centro Ecotekne Pal. O - S.P. 6, Lecce - Monteroni - LECCE (LE)

Ufficio, Piano terra

Telefono +39 0832 29 7221 +39 0832 29 7304

Area di competenza:

ING-INF 05 Sistemi di Elaborazione delle Informazioni

Orario di ricevimento

Tutti i giorni previo appuntamento via email

Visualizza QR Code Scarica la Visit Card

Curriculum Vitae

 Giovanni Aloisio is Full professor of Information Processing Systems at the Dept. of Innovation Engineering of the University of Salento, Lecce, Italy, where he leads the HPC laboratory. Former director of the “Advanced Scientific Computing” (ASC) Division at the Euro-Mediterranean Center on Climate Change (CMCC), he is now a member of the CMCC Strategic Council and Director of the CMCC Supercomputing Center. His expertise concerns high performance computing, grid & cloud computing and distributed data management. From 1986 to 1990 he contributed to the Caltech Concurrent Computation Program (C3P) led by Geoffrey C. Fox at the California Institute of Technology, investigating the efficiency of the Hypercube architecture in Real-Time SAR data processing. From 1991 to 1994, he collaborated with the Center for Advanced Computing Research (CACR) led by Paul Messina at the California Institute of Technology on High Performance Distributed Computing projects. He also collaborated with Carl Kesselman of the Information Sciences Institute on the use of Computational Grids for the management of large collections of scientific data. He has been a co-founder of the European Grid Forum (Egrid), which then merged into the Global Grid Forum (GGF), now Open Grid Forum (OGF). He has been involved into several EU grid projects such as GridLab, EGEE, IS-ENES1. He has been responsible for ENES (European Network for Earth System Modelling) in the EU-FP7 EESI (European Exascale Software Initiative) project, chairing the Working Group on Weather, Climate and solid Earth Sciences (WCES). He has also contributed to the IESP (International Exascale Software Project) exascale roadmap. He has been the chair of the European panel of experts on WCES that has contributed to the PRACE strategic document "The Scientific Case for HPC in Europe 2015-2020". Presently, he is coordinating CMCC activities into several EU FP7 projects such as EUBrazilCC, IS-ENES2, CLIP-C and the G8 ExArch. As CMCC, he is also the coordinator of the OFIDIA (Operational FIre Danger preventIon plAtform) project, in the context of the European Territorial Cooperation Program Greece-Italy 2007-2013. He is responsible for the University of Salento (as PRACE Third Party) in the EU-FP7 EESI2 project, chairing the WCES Working Group. He is a member of the ENES HPC Task Force. He is the author of more than 100 papers in referred journals on high performance computing, grid & cloud computing and distributed data management. 

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. Moreover the main background concepts to understand Machine Learning are presented. 

Course Contents

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

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

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

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

Basic optimization techniques for serial code: Scalar profiling (Function and line-based runtime profiling, Hardware performance counters, Manual instrumentation). Common sense optimizations. (6 hours).

Data access optimization: Balance analysis and lightspeed estimates (Bandwidth-based performance modeling, The STREAM benchmarks). (2 hours).

Machine Learning: What we will learn on Machine Learning (2 hours).

Supervised Learning Algorithms: - Linear Regression - Classification (3 hours).

Hypothesis Function for Linear Regression: - Representation of the hypothesis function for regression problems (3 hours).

Linear Regression with one variable - Cost Function: - Analysis of the hypothesis function and the Cost Function - Use of graph for their interpretation (3 hours).

Countour Plots: Use of the Contour plots to have a better intuition of the Cost Function (3 hours).

Minimization of the Cost Function-Gradient Descent Algorithm: Use of the Gradient Descent to minimize the Cost Function (4 hours).

Linear Regression with multiple features: Hypothesis function for Multivariate Linear regression (4 hours).

Gradient Descent for Multivariate Linear Regression: Cost Function and Gradient Descent Algorithm for Multivariate Linear Regression (4 hours).

Feature Scaling: Practical tricks for making Gradient Descent work well (3 hours).

Learning Rate: Another practical tricks for making Gradient Descent work well (2 hours).

Features and Polynomial Regression: How to use the machinery of Linear Regression to fit very complicated, even very non linear functions (4 hours).

Normal Equation: - Normal Equation as a better way to solve for the optimal value of the Linear Regression parameters - Advantages and disadvantages of Gradient Descent and Normal Equation methods (4 hours).

Normal Equation and Non-Invertibility: Cases of Non-Invertibility (2 hours).

Logistic Regression: How do we develop a Classification Algorithm? (3 hours).

Logistic Regression - Hypothesis Representation: Mathematical formula defining the hypothesis for Logistic Regression and its probabilistic interpretation (4 hours).

Decision Boundaries: - What Decision Boundaries mean? - Example for non-linear Decision Boundaries (2 hours).

Logistic Regression-Cost Function: - Cost Function for Logistic Regression - Simplified Cost Function and Gradient Descent (2 hours).

Multi-class Classification: One-versus-all Classification (2 hours).

Overfitting and Regularization: - The problem of Overfitting - Regularization - Regularized Cost Function (3 hours).

Neural Networks: Non Linear hypothesis, Neurons and the brain, Model representation, Multi-class classification, Cost Function & Backpropagation algorithm (6 hours)

Advice for Applying ML: Model selection &Training_Validation_Test sets (1 hours)

Machine learning system design: Error analysis, Trading off precision and recall (1 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.

Andrew Ng : "Video Course on Machine Learning"

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. Moreover the student will understand the background main concepts related to Machine Learning.

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.

 

Didattica

A.A. 2020/2021

CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Anno accademico di erogazione 2020/2021

Per immatricolati nel 2018/2019

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Course type Laurea Magistrale

Language INGLESE

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

Year taught 2020/2021

For matriculated on 2019/2020

Course year 2

Structure DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Subject matter PERCORSO COMUNE

Location Lecce

A.A. 2019/2020

CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Anno accademico di erogazione 2019/2020

Per immatricolati nel 2017/2018

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Course type Laurea Magistrale

Language INGLESE

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

Year taught 2019/2020

For matriculated on 2018/2019

Course year 2

Structure DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Subject matter PERCORSO COMUNE

Location Lecce

A.A. 2018/2019

CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Anno accademico di erogazione 2018/2019

Per immatricolati nel 2016/2017

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Course type Laurea Magistrale

Language INGLESE

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

Year taught 2018/2019

For matriculated on 2017/2018

Course year 2

Structure DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Subject matter PERCORSO COMUNE

Location Lecce

A.A. 2017/2018

CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Anno accademico di erogazione 2017/2018

Per immatricolati nel 2015/2016

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Course type Laurea Magistrale

Language INGLESE

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

Year taught 2017/2018

For matriculated on 2016/2017

Course year 2

Structure DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Subject matter PERCORSO COMUNE

Location Lecce

A.A. 2016/2017

CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0 Ore Studio individuale: 96.0

Anno accademico di erogazione 2016/2017

Per immatricolati nel 2014/2015

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce - Università degli Studi

HIGH PERFORMANCE COMPUTING

Corso di laurea COMPUTER ENGINEERING

Tipo corso di studio Laurea Magistrale

Crediti 9.0

Ripartizione oraria Ore Attività frontale: 81.0 Ore Studio individuale: 144.0

Anno accademico di erogazione 2016/2017

Per immatricolati nel 2015/2016

Anno di corso 2

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce - Università degli Studi

A.A. 2015/2016

CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0 Ore Studio individuale: 96.0

Anno accademico di erogazione 2015/2016

Per immatricolati nel 2013/2014

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce - Università degli Studi

HIGH PERFORMANCE COMPUTING

Corso di laurea COMPUTER ENGINEERING

Tipo corso di studio Laurea Magistrale

Crediti 9.0

Ripartizione oraria Ore Attività frontale: 81.0 Ore Studio individuale: 144.0

Anno accademico di erogazione 2015/2016

Per immatricolati nel 2014/2015

Anno di corso 2

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce - Università degli Studi

Torna all'elenco
CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Per immatricolati nel 2018/2019

Anno accademico di erogazione 2020/2021

Anno di corso 3

Semestre Secondo Semestre (dal 02/03/2021 al 06/06/2021)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

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

Il Corso è ^nalizzato 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.

CONOSCENZE E COMPRENSIONE:
Al termine del corso lo studente sarà in grado di conoscere le nozioni fondamentali teoriche e pratiche relative alla progettazione di un calcolatore elettronico.
CAPACITÀ DI APPLICARE CONOSCENZE E COMPRENSIONE:
Al termine dell’insegnamento lo studente sarà in grado di applicare le conoscenze acquisite per poter progettare un calcolatore elettronico ed applicare tecniche di ottimizzazione per migliorarne le prestazioni.
AUTONOMIA DI GIUDIZIO
Al termine dell’insegnamento lo studente sarà in grado di valutare criticamente i diversi approcci di progettazione di una calcolatore elettronico identi^cando le soluzioni migliori per ottimizzarne le prestazioni.
ABILITÀ COMUNICATIVE:
Al termine dell’insegnamento lo studente avrà acquisito una terminologia scienti^ca adeguata e saprà esporre con proprietà di linguaggio gli argomenti trattati nel corso.
CAPACITÀ DI APPRENDIMENTO:
Lo studente sarà capace di catalogare, schematizzare, riassumere e rielaborare i contenuti acquisiti.
Al termine dell’insegnamento lo studente avrà acquisito adeguate capacità per lo sviluppo e l'approfondimento di ulteriori competenze nel settore della progettazione di un calcolatore elettronico, con particolare riferimento alla consultazione di materiale bibliografico e di altre informazioni disponibili in rete. Potrà approfondire le proprie conoscenze sulle migliori strategie di progettazione ed ottimizzazione delle prestazioni di una calcolatore sequenziale.

Il corso è strutturato in 54 ore di lezioni frontali.
Le lezioni si svolgono settimanalmente in aula con l’utilizzo di diapositive in formato Power Point, ausilio di filmati e animazioni, nonché della lavagna in dotazione nelle aule.
Lo studente è guidato lungo il percorso, con modalità di active learning, a svolgere in aula delle attività individuali o di gruppo.

Il conseguimento dei crediti attribuiti all’insegnamento è ottenuto mediante una prova orale, in cui si valutano i risultati di apprendimento complessivamente acquisiti dallo studente.
Allo studente (frequentante e non frequentante) saranno poste tre domande, di cui una volta a verificare la capacità di problem solving dello studente e la sua capacità di applicare le conoscenze teorico/pratiche acquisite.
Nell’attribuzione del punteggio ^nale si terrà conto:
• del livello di conoscenze teorico/pratiche acquisite (50%);
• della capacità di applicare le conoscenze teorico/pratiche acquisite (30%);
• dell’autonomia di giudizio (10%);
• delle abilità comunicative (10%).
La lode viene attribuita quando lo studente abbia dimostrato piena padronanza della materia.

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

Le slide delle lezioni sono disponibili on-line secondo le modalità comunicate in aula dal
docente. Inoltre in non-frequentanti potranno fare richiesta del materiale del corso via email

Principi di progettazione dei calcolatori: De^nizione 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 speci^che 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. Conjitti strutturali, conjitti di dati e conjitti di controllo. Metodi di risoluzione dei conflitti.

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.

CALCOLATORI ELETTRONICI (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

For matriculated on 2019/2020

Year taught 2020/2021

Course year 2

Semestre Secondo Semestre (dal 01/03/2021 al 11/06/2021)

Language INGLESE

Subject matter PERCORSO COMUNE (999)

Location Lecce

Students are expected to have the following background: Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program. Familiarity with the basic probability theory. Familiarity with the basic linear algebra. 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.

The course discusses the cache-based processor architectures, with a special focus on the issues related to performance. Multicores solutions and those bases on simultaneous multithreading are considered. The general strategies for optimizing serial coded are also presented. Moreover, the course provides a broad introduction to Machine Learning and Neural Networks Topics include: Linear regression, Linear regression with multiple variables, Regularization, Logistic regression, Neural Networks, Advice for Machine Learning, Machine Learning system design, Support Vector Machines. Hands-off are also organized to provide students the capacity to develop specific use cases, using the Python language and Jupiter Notebooks.

KNOWLEDGE AND UNDERSTANDING:

By the end of the course, students will gain knowledge of the key theoretical and practical notions to solve the main issues related to the use of high-performance computers.

In addition, students will have a basic theoretical knowledge of Machine Learning.

APPLYING KNOWLEDGE AND UNDERSTANDING:

By the end of the course, students will know how to use the acquired notions for the efficient use of a high-performance computer. In addition, students will be able to develop Machine Learning applications.

MAKING JUDGEMENTS

By the end of the course, students will know how to evaluate the different approaches to the optimization of a program running on a high-performance computer, being able to choose the best solutions for performance optimization. Students will also be able to critically assess the different Machine Learning approaches.

COMMUNICATION SKILLS:

By the end of the course, students will be able to use a clear language and an adequate scientific terminology to argue on the topics dealt with in the course.

LEARNING SKILLS:

Students will be able to classify, schematize, summarize and process the acquired knowledge. By the end of the course, students will have the appropriate skills to develop and widen their knowledge of high-performance computing, with particular regard to the use of reference documentation and other information available online. Students will be able to widen their knowledge about the best strategies for the use and performance optimization of a high-performance computer.

Students will also be able to further widen their knowledge in the field of artificial intelligence.

The credits of this course are obtained by means of an oral exam, that will assess the overall learning results achieved by the student.

Students (both attending and non-attending) will be asked three questions, one of which is aimed at checking problem solving skills and the student's ability to use the theoretical and practical notions acquired.

The final score will consider:

• the level of theoretical/practical notions acquired (50%);

• the ability to use the theoretical/practical notions acquired (30%);

• the ability to make autonomous assessments (10%);

• the communication skills (10%).

Honors are awarded to students mastering the topics covered in the course.

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.

Dates for the exams will be published on the official University web site.

Lecture slides presented during the course will be provided and available on-line.

Introduction of the course and review of previous topics covered in the hrst level course on
Computer Architectures.
General-purpose cache-based microprocessor architecture: Performance metrics and
benchmarks. Moore’s Law. Pipelining. Superscalarity. SIMD.
Memory hierarchies: Cache. Cache mapping. Prefetch.
Advanced Solutions: Multicore processors. Multithreaded processors. Vector processors.
Basic optimization techniques for serial code: Scalar prohling (Function and line-based
runtime prohling, Hardware performance counters, Manual instrumentation). Common
sense optimizations.
Data access optimization: Balance analysis and lightspeed estimates (Bandwidth-based
performance modeling, The STREAM benchmarks).
Machine Learning: What we will learn on Machine Learning.
Supervised Learning Algorithms: - Linear Regression - Classihcation.
Hypothesis Function for Linear Regression: - Representation of the hypothesis function for
regression problems.
Linear Regression with one variable - Cost Function: - Analysis of the hypothesis function
and the Cost Function - Use of graph for their interpretation (3 hours).
Countour Plots: Use of the Contour plots to have a better intuition of the Cost Function (3
hours).
Minimization of the Cost Function-Gradient Descent Algorithm: Use of the Gradient Descent
to minimize the Cost Function (3 hours).
Linear Regression with multiple features: Hypothesis function for Multivariate Linear
regression (3 hours).
Gradient Descent for Multivariate Linear Regression: Cost Function and Gradient Descent
Algorithm for Multivariate Linear Regression (3 hours).
Feature Scaling: Practical tricks for making Gradient Descent work well.
Learning Rate: Another practical tricks for making Gradient Descent work well.
Features and Polynomial Regression: How to use the machinery of Linear Regression to ht
very complicated, even very non linear functions.
Normal Equation: - Normal Equation as a better way to solve for the optimal value of the
Linear Regression parameters - Advantages and disadvantages of Gradient Descent and
Normal Equation methods.
Normal Equation and Non-Invertibility: Cases of Non-Invertibility.
Logistic Regression: How do we develop a Classihcation Algorithm?
Logistic Regression - Hypothesis Representation: Mathematical formula dehning the
hypothesis for Logistic Regression and its probabilistic interpretation.
Decision Boundaries: - What Decision Boundaries mean? - Example for non-linear Decision
Boundaries.
Logistic Regression-Cost Function: - Cost Function for Logistic Regression - Simplihed Cost
Function and Gradient Descent.
Multi-class Classihcation: One-versus-all Classihcation.
Overhtting and Regularization: - The problem of Overhtting - Regularization - Regularized
Cost Function.
Neural Networks: Non Linear hypothesis, Neurons and the brain, Model representation,
Multi-class classihcation, Cost Function & Backpropagation algorithm
Advice for Applying ML: Model selection &Training_Validation_Test sets
Machine learning system design_Error analysis, Trading off precision and recall

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.
Andrew Ng : "Video Course on Machine Learning"

HIGH PERFORMANCE COMPUTING (ING-INF/05)
CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Per immatricolati nel 2017/2018

Anno accademico di erogazione 2019/2020

Anno di corso 3

Semestre Secondo Semestre (dal 02/03/2020 al 05/06/2020)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

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

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

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. 

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

 

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

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

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

Introduzione al corso ed evoluzione tecnologica (4 ore).

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 (10 ore).

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 (10 ore).

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 (20 ore).

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 (10 ore).

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.

CALCOLATORI ELETTRONICI (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

For matriculated on 2018/2019

Year taught 2019/2020

Course year 2

Semestre Secondo Semestre (dal 02/03/2020 al 05/06/2020)

Language INGLESE

Subject matter PERCORSO COMUNE (999)

Location Lecce

Students are expected to have the following background: Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program. Familiarity with the basic probability theory. Familiarity with the basic linear algebra. 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.

The course provides a broad introduction to Machine Learning and Neural Networks Topics include: Linear regression, Linear regression with multiple variables, Regularization, Logistic regression, Neural Networks, Advice for Machine Learning, Machine Learning system design, Support Vector Machines. Hands-off are also organized to provide students the capacity to develop specific use cases, using the Python language and Jupiter Notebooks.

The course focuses on the basic of Machine Learning and Neural Networks. The theory behind Machine Learning and Neural Networks is presented and applications are developed using the Python language and Jupiter Notebooks.

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 Department of Innovation Engineering. Lectures will be also given exploiting communication and collaboration platforms, like Microsoft Teams.

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.

Introduction to Machine Learning (2 hours).

Linear Regression: Model representation, Cost Function, Cost Function Intuition, Gradient Descent, Gradient Descent Intuition, Gradient Descent for Linear Regression (6 hours).

Linear Regression with multiple variables: Multiple features, Gradient Descent for Multiple variables, Gradient Descent in practice I: feature scaling, Gradient Descent in practice II: Learning rate, Features and polynomial regression, Normal Equation, Normal Equation and non-invertibility (6 hours).

Regularization: The problem of Overfitting, Cost Function, Regularized Linear Regression (6 hours).

Logistic Regression: Classification, Hypothesis Representation, Decision Boundary, Cost Function, Simplified cost function and gradient descent, Advanced Optimization, Multi-class classification: One-vs-all, Overfitting, Cost Function, Regularized Logistic Regression (6 hours).

Neural Networks-Representation: Non-linear hypothesis, Neurons and brains, Model Representation, Examples and intuitions, Multi-class classification (6 hours).

Neural Networks-Learning: Cost Function and Backpropagation algorithm, Backpropagation intuition. Implementation note: Unrolling parameters, Gradient checking, Random initialization, Putting it together (6 hours).

Advice for applying Machine Learning: Deciding what try next, Evaluating a hypothesis, Model selection and training/validation/test sets, Diagnosing bias vs variance, Regularization & bias/variance, Learning curves (6 hours).

Machine Learning system design: Prioritizing what to work on: Spam classification example, Error analysis, Error metrics for skewed classes, Trading off precision and recall, Data for machine learning (6 hours).

Support Vector Machines: Optimization objective, Large Margin Intuition, The mathematics behind large margin classification, Kernels, Using an SVM (6 hours).

Hands-on Machine Learning:  Use casesdeveloped using Python and Jupiter Notebook (25 hours).

- Andrea Ng, Machine Learning – Online book (http://cnx.org/content/col11500/1.4/) and in particular the Lectures notes (reported at pag. 223-320 of the online book).

- Teacher’s Slides presented during the course.

- Jupiter Notebooks provided during the course.

HIGH PERFORMANCE COMPUTING (ING-INF/05)
CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Per immatricolati nel 2016/2017

Anno accademico di erogazione 2018/2019

Anno di corso 3

Semestre Secondo Semestre (dal 04/03/2019 al 04/06/2019)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

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

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

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. 

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

 

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

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

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

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.

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.

CALCOLATORI ELETTRONICI (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

For matriculated on 2017/2018

Year taught 2018/2019

Course year 2

Semestre Secondo Semestre (dal 04/03/2019 al 04/06/2019)

Language INGLESE

Subject matter PERCORSO COMUNE (999)

Location Lecce

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.

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.

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. 

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.

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

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

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.

HIGH PERFORMANCE COMPUTING (ING-INF/05)
CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0

Per immatricolati nel 2015/2016

Anno accademico di erogazione 2017/2018

Anno di corso 3

Semestre Secondo Semestre (dal 01/03/2018 al 01/06/2018)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

CALCOLATORI ELETTRONICI (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Degree course COMPUTER ENGINEERING

Subject area ING-INF/05

Course type Laurea Magistrale

Credits 9.0

Teaching hours Ore Attività frontale: 81.0

For matriculated on 2016/2017

Year taught 2017/2018

Course year 2

Semestre Secondo Semestre (dal 01/03/2018 al 01/06/2018)

Language INGLESE

Subject matter PERCORSO COMUNE (999)

Location Lecce

HIGH PERFORMANCE COMPUTING (ING-INF/05)
CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0 Ore Studio individuale: 96.0

Per immatricolati nel 2014/2015

Anno accademico di erogazione 2016/2017

Anno di corso 3

Semestre Secondo Semestre (dal 01/03/2017 al 02/06/2017)

Lingua

Percorso PERCORSO COMUNE (999)

Sede Lecce - Università degli Studi

CALCOLATORI ELETTRONICI (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Corso di laurea COMPUTER ENGINEERING

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 9.0

Ripartizione oraria Ore Attività frontale: 81.0 Ore Studio individuale: 144.0

Per immatricolati nel 2015/2016

Anno accademico di erogazione 2016/2017

Anno di corso 2

Semestre Secondo Semestre (dal 01/03/2017 al 02/06/2017)

Lingua

Percorso PERCORSO COMUNE (999)

Sede Lecce - Università degli Studi

HIGH PERFORMANCE COMPUTING (ING-INF/05)
CALCOLATORI ELETTRONICI

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore Attività frontale: 54.0 Ore Studio individuale: 96.0

Per immatricolati nel 2013/2014

Anno accademico di erogazione 2015/2016

Anno di corso 3

Semestre Secondo Semestre (dal 29/02/2016 al 03/06/2016)

Lingua

Percorso PERCORSO COMUNE (999)

Sede Lecce - Università degli Studi

CALCOLATORI ELETTRONICI (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Corso di laurea COMPUTER ENGINEERING

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 9.0

Ripartizione oraria Ore Attività frontale: 81.0 Ore Studio individuale: 144.0

Per immatricolati nel 2014/2015

Anno accademico di erogazione 2015/2016

Anno di corso 2

Semestre Secondo Semestre (dal 29/02/2016 al 03/06/2016)

Lingua

Percorso PERCORSO COMUNE (999)

Sede Lecce - Università degli Studi

HIGH PERFORMANCE COMPUTING (ING-INF/05)
HIGH PERFORMANCE COMPUTING

Corso di laurea COMPUTER ENGINEERING

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 9.0

Ripartizione oraria Ore Attività frontale: 78.0 Ore Studio individuale: 147.0

Per immatricolati nel 2013/2014

Anno accademico di erogazione 2014/2015

Anno di corso 2

Semestre Secondo Semestre (dal 02/03/2015 al 06/06/2015)

Lingua

Percorso PERCORSO COMUNE (999)

Sede Lecce - Università degli Studi

HIGH PERFORMANCE COMPUTING (ING-INF/05)

Pubblicazioni

Vedi file allegato

 

Scarica pubblicazioni

Temi di ricerca

Calcolo ad Alte Prestazioni

Grid & Cloud Computing