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.)
- Teacher: Paul Preney