High Performance Computing: FORTRAN, OpenMP and MPI
Overall Course Objectives
FORTRAN is one of the principal languages used in scientific, numerical and engineering programming and knowledge in FORTRAN is an indispensible qualification for students, researchers, and engineers. With the two recent revisions of the language, the power of the language has been progressively enhanced, and most vendors (IBM, HP, SGI, Intel, Sun, Cray) provide highly optimizing FORTRAN compilers, based on more than 50 years of experience.
MPI (Message Passing Interface) is the de-facto standard for programming portable message-passing parallel applications on networked computers (also known as clusters). MPI has bindings to C/C++ and FORTRAN, and it is available on all massively-parallel supercomputers.
OpenMP (Open Multi-Processing) is a standard application programming interface (API) that supports multi-platform shared memory multiprocessing programming in C/C++ and FORTRAN. It consists of a set of compiler directives, library routines, and environment variables that enable shared memory parallelism and execution.
The current and the future supercomputers consist of a cluster of computers (nodes) each with multiple processing cores (dual, quad, multicore) that share the memory of the node.
The goal of the course it to outline strategies for porting and writing efficient, portable, maintainable code for such hybrid computer archictectures.
See course description in Danish
Learning Objectives
- read programs written in FORTRAN
- write programs in FORTRAN
- read programs with OpenMP directives
- write programs with OpenMP directives
- read programs using MPI
- write programs using MPI
- understand the difference between shared and distributed memory paralleism
- perform serial benchmarking of code
- perform code debugging
- measure parallel efficiency
- use Amdah’s law
Course Content
The Ph.D. course consists of 3 parts:
Part I: Programming FORTRAN
Part II: Introduction to OpenMP
Part III: MPI
Teaching Method
The PhD. course consists of 2-3 hours lecture per day and 2-3 hours exercises.