Date: 20 June 2024 @ 13:00 - 20:30

Timezone: UTC

Language of instruction: English

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts:

  • using pseudo-random number generators,
  • making use of reduction options using underlying sequential code,
  • making simple use of in-situ code benchmarking/profiling, and,
  • using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan).

By the end of these sessions, one will have learnt about sequential and parallel uses of:

  • C++ pseudo-random number generators and their use,
  • C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats,
  • using std::chrono facilities, e.g., for in-situ benchmarks, and,
  • how to use multi-dimensional arrays and slices in C++ code.

Level: Intermediate

Length: Four 3-Hour Sessions (2 Days)

Format: Lecture + Hands-on

Prerequisites: 

  • Experience developing sequential code in C++.
    • (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.)

 :: Tues. June 18 ::

09:00 to 12:00

13:30 to 16:30

:: Thurs. June 20 ::

09:00 to 12:00

13:30 to 16:30


Registration link

Compute Ontario Summer School is a series of online courses on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software. It runs from June 3 to June 21, 2024. The courses are delivered each workday from 9:00am to 4:30pm (EDT) with a lunch break,  in two parallel streams. Pick-and-choose the course(s) you want to attend. Registration is free. Please register early as  courses have a limited capacity. The Summer School is jointly delivered by SHARCNET, SciNet, Centre for Advanced Computing, in collaboration with the Alliance and RDM experts from across Ontario and Canada.


Activity log