MI (1380) - INGEGNERIA DELL'INFORMAZIONE / INFORMATION TECHNOLOGY
A
ZZZZ
055211 - PARALLEL COMPUTING ON TRADITIONAL (CORE-BASED) AND EMERGING GPU-BASED) ARCHITECTURES THROUGH OPENMP AND OPENACC / OPENCL
055048 - PARALLEL COMPUTING ON TRADITIONAL (CORE-BASED) AND EMERGING GPU-BASED) ARCHITECTURES THROUGH OPENMP AND OPENACC / OPENCL
Programma dettagliato e risultati di apprendimento attesi
Mission and Goals
The course is dedicated to the techniques for high performance computing. It is aimed at experienced programmers (in some kind of sequential programming language), who wish to be introduced to the problems and solutions of parallel programming, or wish to optimize their applications on a parallel system. The spectrum of systems considered rangesfrom the traditional core-based systems to the emerging GPU-based ones. Effective techniques for developing and optimizing programs for parallel scientific and technical computing are presented, along with interesting sample applications and development proposals, thus following a “hands-on” teaching style. The course is cross-disciplinary.
Prerequisites
The course is offered specifically to PhD students and is restricted only to them. It is designed for their competences and expectations. It can be reasonably elected by PhD students in any engineering PhD program, who already have a basic knowledge of a sequential, i.e., non-parallel, programming language, like C, C++, Matlab or others. The course is thought of as a PhD-dedicated alternative to attending a generic CINECA course (open to anybody).
Lecture and Practice Programme
parallel hardware architectures (core-based and GPU-based) and related programming techniques
common software tools and libraries for developing parallel scientific applications:
OpenMP (core-based) – structure and application
OpenACC (mixed core-GPU) – structure and application
OpenCL (GPU-based) – structure and application
hints to other specialized parallel scientific SW libraries, e.g., MPI
winning strategies for programming parallel applications
Teaching Objectives
The participants without any specific knowledge or skill in parallel programming will be introduced to the principles of parallelism, on different supercomputing architectures, and will acquire some basic programming skills, which can quickly make them operational. Those who have some previous knowledge will improve and generalize them. The course is specifically oriented to the researchers who need an introduction to parallel programming, to evaluate its potentialities for their research activities, and who may wish to later proceed with more advanced courses.
Note Sulla Modalità di valutazione
The course participants are invited to develop a final application on selected themes (individual or a group of max two people). CINECA supercomputing facitilies are made available, upon request, for developing the exam application.
Intervallo di svolgimento dell'attività didattica
Data inizio
Data termine
Calendario testuale dell'attività didattica
The course is proposed as a full-time course in 5 days / 5 hours per day, in total 25 hours. It will be held remotely through MS Teams.
Course schedule:
Day Date - Part 1 (9:30-10:45 ; 11.00-12.15) - Part 2 (14:00-15:15 ; 15:45-17:00) - Teacher
1 08/06/2020 - Parallel hardware architectures (core-based and GPU-based) and related programming
techniques - OpenMP (core-based) - M.Cremonesi
2 09/06/2020 - OpenACC (mixed core-GPU) structure and application (new) - Exercises - F.Affinito
3 10/06/2020 - OpenCL (GPU-based) structure and application (new) - Exercises - M.Cremonesi
4 11/06/2020 - Introduction to MPI (core based) - Exercises - M.Cremonesi
5 12/06/2020 - Winning strategies - Exercises - M.Cremonesi
Bibliografia
Software utilizzato
Nessun software richiesto
Mix Forme Didattiche
Tipo Forma Didattica
Ore didattiche
lezione
25.0
esercitazione
0.0
laboratorio informatico
0.0
laboratorio sperimentale
0.0
progetto
0.0
laboratorio di progetto
0.0
Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua
Inglese
Note Docente
Course schedule:
Day Date - Part 1 (9:30-10:45 ; 11.00-12.15) - Part 2 (14:00-15:15 ; 15:45-17:00) - Teacher
1 08/06/2020 - Parallel hardware architectures (core-based and GPU-based) and related programming
techniques - OpenMP (core-based) - M.Cremonesi
2 09/06/2020 - OpenACC (mixed core-GPU) structure and application (new) - Exercises - F.Affinito
3 10/06/2020 - OpenCL (GPU-based) structure and application (new) - Exercises - M.Cremonesi
4 11/06/2020 - Introduction to MPI (core based) - Exercises - M.Cremonesi
5 12/06/2020 - Winning strategies - Exercises - M.Cremonesi