Princeton Institute for Computational Science and Engineering (PICSciE) Performance Tuning Mini-Course

Performance Tuning & Optimization for Beginners: A practical tutorial on how to make your code run faster

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.

Date & Time

July 20, 2016 | 10:30am – 2:30pm

Location

Princeton University, 134 Lewis Science Library

Speakers

Ian Cosden

Affiliation

Princeton University

Notes

Please register at the Training website or contact Andrea Rubinstein at alrubins@princeton.edu or at 609-258-1397.