Credits
6
Types
Specialisation complementary (High Performance Computing)
Requirements
This subject has not requirements
, but it has got previous capacities
Department
AC
Teachers
Person in charge
- Jesus Jose Labarta Mancho (jesus.labarta@ac.upc.edu)
Weekly hours
Theory
2
Problems
0
Laboratory
1
Guided learning
0
Autonomous learning
7
Competences
High performance computing
Generic
Basic
Contents
-
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).
Teaching methodology
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.Evaluation methodology
Any academic fraud, plagiarism or use or possession of unauthorised means in an assessment activity leads to a mark of zero (0) for
the affected test or assignment. Furthermore, in accordance with the University's regulations, if disciplinary proceedings are initiated
the subject is recorded as "Pending Assessment" until a decision is reached. These incidents are managed in accordance with the
Action Framework for Academic Integrity in Assessment at the UPC.
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.