kokkos / kokkos/kokkos-tutorials

Create Module 0 (basic training on relevant subset of C++ preceding Kokkos tutorial Modules 1 onward)

Open
#167 0 comments 0 reactions 0 assignees View on GitHub

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:
  • 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, requires clauses, 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).
  • Review existing teaching materials and lesson plans:
    • HPSF 2026 talks (Pariksheet)
    • ISO-C++ training group (Christian)
    • Patrick's textbook (ISBN 9783031543692) he used to teach mathematicians C++17/20 (Pariksheet).
    • TODO: Add others?
  • 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. runtime assert)
    • [...]

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.