High performance computing is the use of a parallel computer in order to reduce the time needed to solve a single instance of a computational problem. This type of computing is currently strongly supported by the existence of a standard library called MPI (Message Passing Interface) for parallel programming by exchanging messages, and by the ease with which it is possible to aggregate low cost personal computers / workstations in order to obtain parallel computing platforms, commonly called “clusters”. This type of platform has been adopted by companies as the first choice for their high computational needs. In this curricular unit it is intended that students learn to analyze and decompose a problem into executable components in parallel and that they implement the respective parallel program using the standard library for exchanging MPI messages.
High Performance Computing Parallel Programming HPC MPI
It is expected that the student when completing this course unit will be able to:
1. Recognize the role and importance of high performance computing in the broader context of building information and communication systems;
2. Identify the main high performance computing techniques, methodologies and tools;
3. Apply high performance computing techniques to implement computational solutions to solve problems of medium to high complexity.
1. Motivation and history;
2. Parallel architectures;
3. Design of parallel algorithms;
4. Message exchange programming;
5. The MPI library;
6. Performance analysis;
7. Applications.
Michael J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw-Hill Higher Education, ISBN-13: 978-0071232654.
Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta, Introduction to Parallel Computing, 2nd edition, Pearson - Addison Wesley, ISBN-13: 978-0201648652.
E-learning
Evaluation is made on individual basis and it involves the coexistence of two modes: continuous assessment (60%) and
final evaluation (40%). Further information is detailed in the Learning Agreement of the course unit.
The students are supposed to be proficient in Portuguese language and also in English language at reading level. Knowledge of the C programming language is assumed.