Description: C++26 has been recently approved and also has a number of features relevant for high performance computing (HPC). This course will discuss how to make use of such today using either reference implementation libraries and/or recent compilers (e.g., GCC v16 used inside of an Apptainer container). In addition, this course will also address using multidimensional (array) spans (i.e., mdspan and submdspan()) from C++23 as the need to use  such is common in HPC C++ codes.

Teachers: Paul Preney (SHARCNET, University of Windsor; Subject Matter Expert of SCC Mirror Committee of ISO/IEC JTC 1/SC 22/WG 21 (C++))

Level: Intermediate

Format: Lecture and some hands-on

Certificate: Completion

Prerequisites: Prior experience writing C++ code.

Description: Julia is becoming increasingly popular for scientific computing. One may use it for prototyping as Matlab, R and Python for productivity, while gaining the same performance as compiled languages such as C/C++ and Fortran. The language is designed for both prototyping and performance, as well as simplicity. This is an introductory course on julia. Students will be able to get started quickly with the basics, in comparison with other similar languages such as Matlab, R, Python and Fortran and move on to learn how to write code that can run in parallel on multi-core and cluster systems through examples.

Teacher: Ed Armstrong, (SHARCNET, University of Guelph)

Level: Introductory

Format: Lecture + Hands-on

Certificate: Completion

Prerequisites: 

  • Must be able to use bash
  • Some familiarity with programming