kokkos / kokkos/kokkos-tutorials
Update Module 1 (from the version used in the 2020 ECP tutorial video recordings)
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 388
- Forks
- 129
- PR merge metrics
- No merged PRs in 30d
Description
Slide numbers below apply to the PDF of the legacy 2020 version of Module 1, but the latest built PDF for the most up-to-date version.
Moving the tasks discussed at the 2026-05-26 and 2026-06-09 meetings of the education and working group to this issue. The people mentioned parenthetically at the end of each suggestion below are those who weighed in on the discussion during the WG meetings, mentioned here to help map back to the relevant discussion in the meeting notes as well as highlight potential contributors for the suggested change. The list can be edited, and/or we can create sub-issues as needed.
- In all tex files replace
C++withC\textt{++}as recommended by the ISO-C++ committee. (Patrick) - In all tex files replace magic strings of Kokkos, CUDA, GCC versions, etc. to be consistent across slides using LaTeX macros. @lucbv
- In the title slide (slide 1/72):
- Remove the Sandia acknowledgment from the title slide text and replace it with a disclaimer for people to add their own funding statements in a slide at the end to satisfy their institution's need for acknowledgment. (Christian, Patrick). Applies to
KokkosTutorial_01_Introduction.tex, slide 1/72 (as well as all other module title slides). @diehlpk
- Remove the Sandia acknowledgment from the title slide text and replace it with a disclaimer for people to add their own funding statements in a slide at the end to satisfy their institution's need for acknowledgment. (Christian, Patrick). Applies to
- In the first non-title slide (applies to
Section_LectureOverview.tex, slide 2/72):- Backport the usage / contributor pie charts from Christian's other presentation to make it more graphical and show use outside the DOE and outside the US. (Christian, Patrick)
- List Gordon Bell submissions for credibility. (Patrick)
- Show [logos of] primary development team and logos of main contribution organizations. (Christian).
- Show in this slide or a subsequent slide show that it is well supported with indications of bug fixes, and other statistics from linux insight for example... (Luc).
- Remove compilers; instead explicitiy list architectures and hardware supported and also say standard vendor toolchains supported. (Patrick, Christian).
- [Rahul finished this in PR #173:] In "Online Resources" slide (applies to
Section_LectureOverview.tex, slide 3/72):- Could specify e.g.
#kokkos-tutorialSlack channel to not spam#generalalthough there is not as much traffic in#general. (Patrick, Christian, Luc) - Add link to built binary PDFs no longer part of https://github.com/kokkos/kokkos-tutorials/. (Pariksheet)
- Remove "whitelist domains" because we can't [do that anymore]. If you know somebody on the Slack, you can ask them to send you the invite; you don't need to go through us [Slack administrators]. (Christian)
- Could specify e.g.
- In "Lecture Series Outline" slide (applies to
Section_LectureOverview.tex, slide 4/72):- In Module 5, replace "Tasking" with "Graphs"; we don't have "Tasking" anymore. (Christian)
- In "What to Expect" slide (applies to
Section_LectureOverview.tex, slide 5/72):- Remove the last line on "Exercises will be talked through at next meeting"; have a separate recording [of the exercise solutions] and link to the main [tutorials] page. (Christian)
- [Patrick working on this:] In "The HPC Hardware Landscape" (applies to
SectionWhatIsKokkos.tex, slide 8/72): @diehlpk- Update photos with third generation machines at Juelich, LUMI, Japan, France, CSCS Swiss National Supercomputing Centre. (Luc, Patrick, Christian)
- Update captions with OpenACC, SYCL, etc.
- [Pariksheet submitted PR #180] In "Cost of Coding" (applies to
SectionWhatIsKokkos.tex, slide 9/72):- Citations / industry reports supporting cost estimates, perhaps including how AI changes the picture. (Pariksheet, Christian)
- In "What is Kokkos" (applies to
SectionWhatIsKokkos.tex, slide 10,70/72):- [Patrick working on this:] Change "Hundreds of users at many large institutions" to "Thousands of users at hundreds of institutions". Also use the pie chart from HPSF. (Patrick, Christian)
- Compare Kokkos to OpenACC, etc. in a table and the vendor toolkit issues between the two approaches. (Pariksheet)
- Justify use of C++ e.g. compare to C, Fortran, Python. (Pariksheet)
- Address perceptions of complexity of C++. (Pariksheet)
- In "Concepts: Patterns, Policies, and Bodies" (applies to
Section_Kokkos.tex, slide 24/72):- Mention the general C++ features we will be using in the "Concepts for Data Parallelism" slide of both lambdas and templates along with resources where they can brush up / learn more about those outside of the short review in this module. (Patrick, Christian)
- In "Problem: memory access pattern" (Applies to
Section_Kokkos.tex, slides 28–29/72?):- Maybe move [memory] access patterns elsewhere? (Christian) Keep for now and do after SC
- In "Data parallel patterns" (slide 30/72):
- Mention what C++ features Kokkos uses; opportunity to check with learners about their knowledge of the C++ feature otherwise explain on the whiteboard or quick concept review slides. Having a slide on templates and lambdas would be super helpful. (Patrick)
- [Pariksheet submitted PR #174:] In slides after "Using Kokkos for data parallel patterns (2)" (applies to
Section_DataParallelPatterns.tex, slides 33–39/72):- After explaining what a functor is, explain a little about general C++ lambda syntax (e.g.
=by value and&by reference) to help understand how they are used in functors; would help students unfamiliar with C++ lambdas thinking they are Kokkos specific. (Patrick)
- After explaining what a functor is, explain a little about general C++ lambda syntax (e.g.
- [Rahul working on this:] In "Amdahl’s Law (2)" (slides 46,52/72):
- Update to more relevant GPU and OpenMP CPU targets. Nvidia Pascal, Intel Haswell, and Intel Phi Knight's Landing (KNL) are not relevant these days. Consider GPUs other than Nvidia. (Luc, Patrick).
- Document how the graphs were generated for reproducibility, either in a LaTeX comment in the source code or more visibly on the slide. (Pariksheet, Luc)
- In "Recurring Exercise: Inner Product" (slides 48–50/72):
- Every math textbook would name the matrix dimensions in the slide as
M×N.Mshould the the number of column andNthe number of rows. But this needs to be done consistently across slides and code examples. (Luc)
- Every math textbook would name the matrix dimensions in the slide as
- In "Exercise # 1: Inner Product, Flat Parallelism on the CPU" (slides 49/72):
- This slide seems to contain the lambda to functor explanation, but appears inadequate. (Luc)
- In "Exercise # 1: Going beyond" (slides 51,58,67/72):
- Don't show an example older GPU that doesn't actually work with the current CUDA. (Christian) @diehlpk
- In "Building Applications with Kokkos" (slides 54–68/72):
- Ping the build and packaging working group about how to update the state of packaging. (Luc)
- [Luc working on this:] Update the build and packaging slides as needed. (Luc)
- Ask Christian if it still makes sense to keep this section of the tutorial; may be better addressed in the documentation. Building from source should be a documentation page instead of on slides; slides could point to documentation. (Luc, Pariksheet) After SC
- Like the C++ prerequisite concepts section header, may want to state the assumed knowledge about
CMakeLists.txt. (Pariksheet) After SC - Update to better reflect the state of
spack. (Luc, Pariksheet) After SC - GPU slides favor CUDA; maybe we could allow flexibility to tailor slides ot HIP, etc.? (Pariksheet, Luc) After SC
- [Rahul working on this:] Is it still reasonable to have a requirement on Kokkos
4.2in theCMakeLists.txtexcerpt? Could replace withX.Y? Point to the minimum supported hardware in the documentation. Also use consistent minimum versions of Kokkos in different slides.
- In "Embedded Kokkos" (slide 60/73 -- note this is only in the new slide deck, not the original)
- In "Option 2: via FetchContent" update the hash. (Luc, Pariksheet) After SC
- In "Module 2: Outlook" (slide 72/72):
- Remove the hard-coded date in the slide title. (Pariksheet)
Change log:
- 2026-09-03
- Added **[assignees:]** working on PRs discussed at 2026-08-18 and 2026-09-01 Education and Training WG meeting.
- 2026-08-25
- Added suggestions from 2026-08-11 Education and Training WG meeting.
- 2026-07-21
- Added **[assignees:]** working on PRs discussed at today's Education and Training WG meeting.
- Updated with PRs 173 and 174.
- 2026-07-14
- Added **[assignees:]** working on PRs discussed at today's Education and Training WG meeting.
- 2026-06-09
- Added suggestions from today's Education and Training WG meeting.
- Reordered changes by slide number instead of strictly matching the meeting notes of high-level changes and detailed changes.
- Added a link at the top to the 2020 Module 1 PDF and the latest built PDF.
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 comparing the legacy and latest Module 1 PDFs, then read Content/Presentations/modularized/KokkosTutorial_01_Introduction.tex and the referenced section files, including Section_LectureOverview.tex, Section_WhatIsKokkos.tex, Section_DataParallelPatterns.tex, and Section_Kokkos.tex. The issue covers many independent slide updates; done means the selected unchecked items are reflected consistently in the source and the rebuilt Module 1 presentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, latex
- Domain
- content, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100