High Performance Computing Optimization Training
The goal of this training is to provide knowledge on major topics to achieve program performance.
How to optimize a program to obtain the best performance, and parallel programming - how to port a program to a parallel computer to reduce the execution time by dividing the work among several threads/processes.
- Parallel Computer Architectures
- Compilers and Monitoring Tools
- Program Analysis and Optimization
- Performance Tuning
- Shared Memory Parallel Programming using OpenMP
- Parallel Programming in Distributed Memory using MPI
Upon completion of this course, the student should be able to:
- Understand basic parallel computer architectures
- Use system tools to identify performance problems
- Evaluate program performance
- Better use compiler/mathematical libraries capabilities
- Understand basic optimization techniques
- Recognize the advantages and pitfalls of parallel processing
- Write multithreaded programs using OpenMP
- Write multiprocessor programs using Message Passing Interface - MPI
- This course is intended to programmers who work currently with C and Fortran, want to be able to recognize performance problems in their application, and to improve the execution time by program optimization and parallel execution.
- Students should have C or Fortran programming experience, and know how to perform basic Linux/Unix commands (cp, ls, make etc)