Performance Tuning and Optimization

Remote event

Writing optimized code will help you to become a more productive computational scientist and reduce your time to solution, while making more efficient use of advanced cyberinfrastructure and reducing the carbon footprint of your workload. We start with a brief overview of software profiling, which allows you to identify portions of the code that account for most of the run time. We then cover some of the key principles of writing fast code, with an emphasis on loop level transformations and making effective use of your processor’s cache. We also address commonly used techniques such as force reduction (replacement of expensive operations with equivalent, faster options), time-space tradeoffs (pre-computation and reuse of results), short circuiting (avoiding operations in compound logical tests) and one-off optimizations based on the specific features of your code.

Instructor