kokkos / kokkos/kokkos-tutorials
Create Module 0 (basic training on relevant subset of C++ preceding Kokkos tutorial Modules 1 onward)
Open
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 388
- Forks
- 129
- PR merge metrics
- No merged PRs in 30d
Description
The checklist for suggested revisions contains:
- People in parenthesis who weighed in on the discussion during the Education and Training working group meetings and are potential contributors for the suggested change. Items are pulled from the following meetings of the working group:
- 2026-03-11
- 2026-06-16 (this link 2026-06-16 will work after https://github.com/kokkos/development/pull/65 is merged)
- When making changes, refer to the latest PDF built from CI (does not exist yet!)
- Broadly outline both parts of modern C++ that are useful to train on and those not compatible with concurrency:
- Standard C++ containers are almost impossible to use in a safe and canonical way with Kokkos concurrency (Christian).
- If possible, highlight these pitfalls.
- Cover compatible concepts: Ranges,
requiresclauses, how to build overload sets, basics of for loops, constructors, temporaries, references (Christian).- Extend and clean up this list as the module develops.
- Lower the barrier to entry for new users (Christian).
- Standard C++ containers are almost impossible to use in a safe and canonical way with Kokkos concurrency (Christian).
- Review existing teaching materials and lesson plans:
- HPSF 2026 talks (Pariksheet)
- From Fortran
- From Python / R using Rosetta code and Carpentries-style workshops
- HPC foundational topics (relevant to Kokkos: build systems, debugging, profiling, C++, etc.)
- ISO-C++ training group (Christian)
- Patrick's textbook (ISBN 9783031543692) he used to teach mathematicians C++17/20 (Pariksheet).
- TODO: Add others?
- HPSF 2026 talks (Pariksheet)
- For each tutorial module analyze assumed knowledge of C++ and related HPC foundational topics:
- TODO: Module 1
- Module 2
- Reference semantics: copy-by-reference, copy-by-value
- lambda syntax, including
[=]copy-by-value - HPC foundational topic of separate memory on CPU and GPU
- Pointers:
shared_ptr, reference counting, pointers to fixed-size arrays, pointers to multidimensional arrays,nullptr - Class templates
- Class constructors and constructor overloading
- Class operator overloading for assignment
- Preprocessor operations:
static_assert(vs. runtimeassert)
- [...]
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing tutorial Modules 1 and 2, the linked HPSF talks, the ISO-C++ training materials, and Patrick’s C++17/20 textbook. Define the relevant C++ and HPC prerequisites, then create Module 0 before Module 1 and complete the checklist, including documenting incompatible standard containers and compatible concepts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100