This course presents the main concepts behind parallel programming models and their implementation. The course analyzes the role of the programmer, the compiler, the runtime and operating systems when looking for productive programming environments and their efficient implementation. The course also describes the tools required to understand the behavior of parallel applications when executed on current supercomputing architectures (based on a collection of distributed-memory nodes, each one built from current multicore chips and/or accelerators). The course will be very practical with optimization and parallelization assignments using different tools (Extrae, Paraver and Dimemas) and programming models (OpenMP, OmpSs, MPI or CUDA) and insights into their implementation.
Person in charge
Jesus Jose Labarta Mancho (
Technical Competences of each Specialization
High performance computing
CEE4.2 - Capability to analyze, evaluate, design and optimize software considering the architecture and to propose new optimization techniques.
CEE4.3 - Capability to analyze, evaluate, design and manage system software in supercomputing environments.
Generic Technical Competences
CG3 - Capacity for mathematical modeling, calculation and experimental designing in technology and companies engineering centers, particularly in research and innovation in all areas of Computer Science.
CB7 - Ability to integrate knowledges and handle the complexity of making judgments based on information which, being incomplete or limited, includes considerations on social and ethical responsibilities linked to the application of their knowledge and judgments.
CB9 - Possession of the learning skills that enable the students to continue studying in a way that will be mainly self-directed or autonomous.
Basic concepts in parallel programming and performance analysis
Necessary background to follow an advanced parallel programming course. Issues when programming multicore architectures. General introduction of the main techniques and basic features of current performance analysis tools.
Advanced shared- and distributed-memory programming: OpenMP and MPI
Summary of basic features in OpenMP and MPI. Advanced features in OpenMP, MPI and hybrid programming.
Advanced dataflow programming and novel paradigms for accelerator-based architectures
Dataflow paradigms (OmpSs). Runtime exploitation of parallelism and architecture hiding. Advanced parallel programming using accelerators: CUDA, OpenCL, OpenACC, ...
Data acquisition and performance analytics
Tracing of sequential and parallel applications. Trace processing and performance analytics.
Models and performance prediction
Trace-based modeling of parallel performance. Architectural parameters: CPU, memory, interconnect.
Analysis and optimization of real applications
Analysis of two large applications (sequential and/or parallel) and optimization using hybrid programming paradigms (dataflow, shared- and distributed-memory and accelerators).
For the part devoted to programming models, theory classes to understand the concepts behind parallel programming models for current supercomputing architectures. This will be followed by a general introduction of the main techniques and basic features of major tools. Laboratory classes will start by introducing advanced features in the most used programming models and the usage of the tools on some simple examples. Then the student will be faced with a few relatively large codes that will have to be analyzed with different tools and optimized using hybrid programming models.
The evaluation of the course will be based on a set of practical works. At least two major applications will have to be evaluated by each student. At least one of the applications will be in an area to which the student has no previous exposure. A detailed analysis report of the performance "problems" of each application will be required, including a detailed quantification of their importance and suggestions of potential ways to overcome them.
NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT
NO HAY CAMBIOS RESPECTO A LA INFORMACIÓN PUBLICADA EN LA GUIA DOCENTE
NO CHANGES REGARDING THE INFORMATION PUBLISHED IN THE TEACHING GUIDE
Les classes seran online durant tot el curs.
S'assignaran treballs individuals que seran monitoritzats periòdicament pel professor.
La clases serán online durante todo el curso.
Se asignarán trabajos individuales que serán monitorizados periódicamente por el profesor.
Classes will be online throughout the course.
Individual assignments will be assigned which will be monitored periodically by the teacher.
L'examen consistirà en una presensentació online (20 min presentació + 10 min preguntes). Tots els alumnes hauran d'assistir a totes les presentacions i avaluar-les com a informació addicional per a ajustar l'avaluació del professor.
El examen consistirá en una presentación online (20 min presentación + 10 min preguntas).
Todos los alumnos deberán asistir a todas las presentaciones y evaluarlas como información adicional para ajustar la evaluación del profesor.
The exam will consist of an online presentation (20 min presentation + 10 min questions). All students will be required to attend all presentations and evaluate them as additional information to adjust the teacher's assessment.
Si hi ha problemes importants de connectivitat en algun moment, es reagendarà la sessió.
Si hay problemas importantes de conectividad en algún momento, se reagendará la sesión.
If there are significant connectivity issues at some point, the session will be rescheduled.
Where we are
B6 Building Campus Nord
C/Jordi Girona Salgado,1-3
08034 BARCELONA Spain
Tel: (+34) 93 401 70 00