Code Optimization

Courses tagged with "Code Optimization"

This short course introduces one of the pillars of performance tuning and optimization of Python applications: profiling tools.

You will learn how to:

  • Collect statistics about memory usage and execution time
  • Analyze and visualize the results
  • Use this information to optimize scripts

OpenMP is a standardized API for parallelizing Fortran, C, and C++ programs on shared-memory architectures. This tutorial provides an introduction to OpenMP in a concise, progressive fashion, so you can begin to apply OpenMP to your codes in a minimum amount of time. Some general information on parallel processing is also included to the extent necessary to explain various points about OpenMP. Examples are presented in both Fortran and C.

Prerequisites: Knowledge of basic programming in Fortran, C, or C++.

Note: This course was previously offered on CI-Tutor.

Performance tools are software used to measure application performance, usually with respect to the execution time of all or portions of a code. These tools collect data from a running application that is later analyzed to determine if and where there are performance bottlenecks.

This tutorial introduces the capabilities of the following relatively easy-to-use performance tools: strace, gprof, and TAU. There are many more tools available for analyzing code performance not covered. This tutorial aims to get you started using performance tools and help you later when you explore other tools' capabilities.

Target Audience: Scientific application developers with basic parallel programming experience who are new to using performance tools.