Skip to content

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

Description

@omsai

The checklist for suggested revisions contains:


  • 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)
    • [...]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions