This is an archive of class materials presented in March 2019 and October 2018.  The focus of this training is on programming for advanced architectures on Intel based machines such as Stampede2 and Frontera. We review the basics of vectorization, discuss the importance of multi-threaded programming, and cover the importance of hybrid programming on manycore architectures.

We also provide practical information and advice to enable experienced OpenMP and MPI programmers to enhance applications on the manycore architectures. We provide recommendations regarding MPI and OpenMP task layout. Optimization methods in multithreading are covered in depth.