This course will review the HPC practices for attaining high efficiency of scientific codes on modern accelerators from multiple vendors for the best productivity across many systems that are currently used through academia and industry. These GPU accelerators now employ multiple programming models, which will be described in depth. Performance modeling will also be introduced to show how accurate performance models can establish user expectations, diagnose system inefficiencies, and guide progress of code optimization. The coding excercises will focus on the programming models covered in lectures and aim to provide results aligned with the performance models established during the course.
