Performance Tuning & Optimization for beginners: A practical tutorial on how to make your code run faster- 3/2/17
Would you like your code to run faster? Have you been stuck before a deadline wishing you could get your numerical results quicker? Are you leaving performance on the table by not taking advantage of the latest hardware and compiler developments?
Performance tuning can help – and it doesn’t have to be difficult or mysterious. In many cases, just a few small changes can make a significant impact on speed. In this mini-course, approaches to tuning compiled-language (C/C++/Fortran) scientific code for performance will be introduced. Strategies, tips, and tricks will be discussed for how to approach tuning your code. An overview of compiler options, as well as some of the useful profiling tools available at Princeton will be presented. Concepts such as vectorization and cache utilization, which are essential to obtain good performance on modern CPUs, will be introduced. Finally, a detailed, step-by-step, case study of an example code, resulting in a dramatic performance improvement, will illustrate the practical application of some common tuning techniques.
This mini-course assumes some basic compiled language programming experience, but assumes no knowledge of performance tuning or optimization. Examples will be shown in C and C++ for simplicity, but Fortran users are encouraged to attend as the underlying principles are the same.
Ian Cosden is a Manager, HPC Software Engineering and Performance Tuning, of the Research Computing department at Princeton University. Prior to his current position, he was a Research Computing Software & Programming Analyst where he worked with researchers to help build, develop, debug, and optimize serial/parallel scientific codes. He has a Ph.D. in Mechanical Engineering from the University of Pennsylvania where he developed the first highly-parallel hybrid atomistic-continuum model for liquid-vapor phase change.
Please register online at the training website, www.princeton.edu/training or contact Andrea Rubinstein at firstname.lastname@example.org /258-1397.
Location: Room 347, Visualization Lab
Date/Time: 03/02/17 at 09:30 am - 03/02/17 at 1:30 pm