diff --git a/meeting_notes/wg-education-training/minutes/2026_05_26.md b/meeting_notes/wg-education-training/minutes/2026_05_26.md new file mode 100644 index 0000000..6d5bf6b --- /dev/null +++ b/meeting_notes/wg-education-training/minutes/2026_05_26.md @@ -0,0 +1,302 @@ +# Education & Training working group meeting (2026-05-26) + +## Minutes + +1. Christian: [Discussed CoPilot requested changes on [PR #159][pr-159]]. +1. Pariksheet: [Explained that one of the CoPilot suggestions incorrectly wants + to apply the github-pages to a single branch whereas my intention is to + build PDF slides for all relevant branches and serve all their artifacts + in with github-pages.] +1. Luc: Okay to try pages build [for all relevant branches and see how we like + the workflow]. +1. Christian: Was the move to kokkos/development complete? +1. Luc: Yes, I think the PR was merged; [PR# 50][pr-50]. +1. Christian: Next step was to go through the material and revise? +1. Luc: Yes. +1. Christian: [Previewed github-pages output on + ] +1. Pariksheet: During testing, loading the PDFs would crash my FireFox tab, but + that no longer happens. What browser are you using? +1. Christian: Safari. +1. Pariksheet: One issue is that the slide date is the build date. +1. Patrick: Could put version [instead of the date] e.g. Kokkos 5.2. +1. Luc: SHA version can be meaningful, and Kokkos version can be confusing + because we don't know what Kokkos version it's reflecting the features of. +1. Christian: I think have a date is good [for a timestamp version]. + Somewhere. Because PDFs are going to end up in random places. +1. Patrick: I see Sandia on the title slide, but we would need for LANL as + well. +1. Christian: We have these publication / funding notes that have to be put on + slides and papers. Right now title slides only have Sandia. Remove from + title slide, add disclaimer for people to add their own funding statements + to satisfy their institution's need for acknowledgment. +1. Patrick: We can also put the slide at the very end; can be annoying to read + the second slide with things no one cares to read. +1. Christian: Okay for the end. Luc? +1. Luc: I don't know if we even have a rule for that or for contributions from + other places. +1. Christian: Make a separate slide of where to put this and put it at the end. +1. Christian: Let's review module 1 ([PDF][legacy-tag], [top-level + source][module-1]). Introduction to Kokkos. Overview of what the whole + thing is. Kokkos, parallel dispatch, and building. Adapted from + introductory slides for why you would use Kokkos, who is behind it. + Philosophy of C++ standard alignment, prerequisites, and actual programming + model. This is the first 10 slides. Then comes [the] introduction of [the] + programming model, target machine, what is performance portability, and why. + Introduction of patterns, policies, and bodies. New [...] interface we are + starting to adhere to even more. OpenMP policy, something about access + patterns we can maybe move somewhere else. Then data patterns of how we can + parallelize. Introduction to functor and lambda. How it looks together. + Lambda comparison to OpenMP. Reduction; why this pattern is there. Then a + bit about Amdahl's Law and an exercise. Then introduction to CMake, how to + do the embedded Kokkos thing, and [a little] about Spack. Gives [an] + introduction of why you should use kokkos; what's behind it. `parallel_for` + things. How do you start integrating this into a build system of your app. + Content-wise I don't think anything else would go before that. Takes 1.5 + hours to get through in the lecture and exercise time. +1. Patrick: Would be nice to see a slide about a lambda and how to decompose. + We never explain what a lambda is. +1. Christian: We explain how a functor and data works. Then we explain how the + functor works. +1. Christian: Translating a function into a lambda is not the same here; that's + a state-less lambda. The body here in `parallel_for` was never in a + function. +1. Patrick: Struggling to explain to University of Michigan students what + lambdas are and that they are not a Kokkos thing. Need to explain passing + by value and reference. +1. Christian: Would you not explain functors and only lambdas? Lambdas are the + auto-generation of a functor. Would you go the same way of explaining what + a functor is first and then show more details? +1. Patrick: Yes, we need more details of what the parentheses do. People are + confused by the strange way of writing those things. +1. Christian: Serial-OpenMP-Kokkos slide does that of showing the syntax. +1. Luc: We show a lot of C++ things that Kokkos leverages heavily. +1. Pariksheet: We could teach about lambdas before the lecture to avoid + overfilling the 1.5 hours. +1. Patrick: We have a lot of Fortran people coming to Kokkos. +1. Christian: I wouldn't try to explain it all at the beginning because people + forget and it's preferable to explain things when you introduce them. At + "Concepts for Data Parallelism" where we haven't introduced any code yet, we + could talk about the C++ features we are heavily using. Functor and + lambdas. Maybe templates if your audience does not know templates at all - + maybe see this [resource for a] C++ introduction. So "Concepts for Data + Parallelism" should introduce what we will use. Introducing [it] too early + would make it hard to make the connections. "C++ -ism[s] that we use in + Kokkos, but [that] are not Kokkos specific". +1. Christian: So let's review the slides again [of this lecture]. Intention of + the [first] slide is to tell people it's a well-supported product used by + lots of people and not 2 PhD students. +1. Pariksheet: At some point [I] would like to address [moving away from] + OpenACC and the perception of C++ complexity [compared to C being currently + taught]. +1. Christian: Wouldn't be able to do here, sometime later. +1. Christian: Should we make the slide more graphical? +1. Pariksheet: Spack has a nice exponential curve of contributors, but harder + to do show [here] because Spack has thousands of packages. +1. Patrick: I would like a GitHub contributions chart over time of different + organizations. +1. Luc: Showing that it works on their platform like AMD vendors. +1. Patrick: Showing Gordon Bell submissions as a credibility thing. +1. Christian: Could show primary development team and logos of main + contribution organizations. +1. Patrick: 2 weeks ago I was at an AMD workshop. Showed retiring projects and + how often they are fixing bugs to show people to use the project. +1. Christian: So we want a slide like this but to update it and make it more + modern. Having these numbers not completely outdated all the time. +1. Patrick: Remove compilers from slides? +1. Christian: Can explicitly list architectures and hardware being supported. +1. Patrick: Hardware more important because [a] management person won't know + about compilers. +1. Christian: Could say we use standard vendor toolchains. +1. Christian: Next slide of "Online Resources". +1. Patrick: Maybe have the mailing list? +1. Christian: Don't want [to use the] mailing list as question [submission] + mechanism; we prefer Slack channel[s]. Mailing list is now only for + announcements. +1. Patrick: Make clear that Kokkos Slack is the community hub for questions and + support. +1. Luc: Saying "fastest way to get your questions answered" seems to imply + that. +1. Patrick: Maybe should specify channel to not spam #general or something. + I'm happy with Slack, but be more clear about channel to ask questions. +1. Luc: I think that's reasonable. +1. Christian: I don't think the traffic on #general is that heavy. +1. Christian: Next slide, 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]. +1. Christian: What about [the] list of modules in the "Lecture Series Outline"? +1. Patrick: Adding python. +1. Christian: Could add that as we go. +1. Christian: Module 5 "Tasking" will be replaced by "Graphs", so we need to + update that; we don't have "Tasking" anymore. +1. Christian: In "What to Expect", we should remove the last line on "Exercises + will be talked through at next meeting". Maybe we will walk through at the + end of the recording? +1. Luc: You wrote that because of how you ran the lectures the first time. +1. Christian: We should record that and maybe have a separate recording of the + exercise walkthrough with link on the main page. +1. Luc: Pages with photos of machines could be updated? +1. Christian: Yeah, needs updating for third generation. +1. Luc: Could add European platforms like Juelich and LUMI (Stuttgart). +1. Patrick: Also Japan. +1. Luc: Also whatever the stuff in France. +1. Christian: CSCS is a good candidate. +1. Patrick: Yes, Swiss National Computing Centre (sic). +1. Patrick: Also the C++ from the ISO committee (`C\textt{++}`) because the + larger `++` is ugly. +1. Christian: Sure. +1. Christian: Also need to update captions with OpenACC, SYCL, etc. +1. Pariksheet: Would love to have a citation for these costs. +1. Christian: Could try to find it. Also big question about how AI changes the picture. +1. Christian: Slide "What is Kokkos?" looks still reasonable? +1. Patrick: Change "many large institutions" with names? +1. Christian: 250 institutions in our Slack channel; how do you + choose? Have logos a bit later. Probably "Thousands of users at + hundreds of institutions" at this point. +1. Patrick: Damien showed a pie chart of users coming from academia? +1. Christian: Could add slides of DOE labs, universities. +1. Patrick: Yes, we want to be more backed up. There was a pie chart at HPSF I think. +1. Christian: What would you do as categories? Clearly DOE labs, + universities. Hard to say industry vs. non-industry e-mail address + domains. +1. Patrick: Also CEA. +1. Christian: But number of CEA people not huge. Could have category + of EU or government research labs. +1. Patrick: Want to say not just DOE and also adoption in Europe. +1. Pariksheet: Map of world with institution pins / markers? +1. Patrick: Some fear of US and dominated by DOE labs. +1. Christian: 2 pie charts of DOE, university, commercial / other. + And then another one with location. +1. Patrick: Yes. Fine to have some DOE labs and geographical + distribution to show not just US. Major selling point. +1. Christian: I want to show you a slide from another presentation: US + gov, universities, France, Germany, Japan, others. +1. Patrick: Yes, something like this I would love to see. +1. Christian: We're not distinguishing other countries by institution. +1. Christian: I think that's good. Could add that thought. Some + progress. That's good. If anybody, Patrick in particular, could + do some of these notes as changes. +1. Patrick: I have to wait for LANL approval for PDFs to review and + once I can put on the text I can review it. +1. Christian: Every change to Kokkos tutorials needs approval? +1. Patrick: I concatenate all the slides, submit, then [after changing] submit + it again. I can make changes but cannot push. You have to send slides with + images to add them. I cannot operationally push without approval from LANL. +1. Christian: Every update needs a revision in your system? +1. Patrick: Only major updates. +1. Christian: Similar to our system. +1. Patrick: Don't want to get into trouble with export control. +1. Christian: I'll send you these slides of a presentation I gave. +1. Patrick: Maybe only just the pie charts and something about the Linux + Foundation. +1. Christian: Not a bad idea to talk about being part of HPSF and what HPSF is. + +## Tasks for next meeting + +1. Christian to send Patrick his two presentation slides with the Kokkos usage + / contributors piecharts and description of HPSF. +1. Work on remainder of [issue 156][issue-156]: + 1. Render PDFs for kokkos/development +1. Start updating module 1; attempted summary of minutes above: + 1. 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`][module-1], slide 1/72 (as well as + all other module title slides). + 1. Maybe move [memory] access patterns elsewhere? (Christian). Applies to + [`Section_Kokkos.tex`][section-kokkos], slides 28--29/72? + 1. 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). Applies to + [`Section_DataParallelPatterns.tex`][section-dataparallelpatterns], + slides 33--39/72 + 1. 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). Applies to + [`Section_Kokkos.tex`][section-kokkos], slide 24/72. + 1. Compare Kokkos to OpenACC, etc. in a table and the vendor toolkit issues + between the two approaches. (Pariksheet) + 1. Justify use of C++ e.g. compare to C, Fortran, Python. (Pariksheet) + 1. Address perceptions of complexity of C++. (Pariksheet) + 1. In the first non-title slide (applies to + [`Section_LectureOverview.tex`][section-lectureoverview], slide + 2/72) + 1. 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). + 1. List Gordon Bell submissions for credibility. (Patrick). + 1. Show [logos of] primary development team and logos of main + contribution organizations. (Christian). + 1. Show in this slide or a subsequent slide show that it is well + supported with indications of bug fixes, etc. (Luc). + 1. Remove compilers; instead explicitiy list architectures and + hardware supported and also say standard vendor toolchains + supported. (Patrick, Christian). + 1. In "Online Resources" slide (applies to + [`Section_LectureOverview.tex`][section-lectureoverview], slide + 3/72): + 1. Could specify e.g. `#kokkos-tutorial` Slack channel to not + spam `#general` although there is not as much traffic in + `#general`. (Patrick, Christian, Luc). + 1. Add link to built binary PDFs no longer part of + . (Pariksheet). + 1. 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). + 1. In "Lecture Series Outline" slide (applies to + [`Section_LectureOverview.tex`][section-lectureoverview], slide + 4/72): + 1. In Module 5, replace "Tasking" with "Graphs"; we don't have + "Tasking" anymore. (Christian). + 1. In "What to Expect" slide (applies to + [`Section_LectureOverview.tex`][section-lectureoverview], slide + 5/72): + 1. 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). + 1. In "The HPC Hardawre Landscape" (applies to + [`SectionWhatIsKokkos.tex`][section-whatiskokkos], slide 8/72): + 1. Update photos with third generation machines at Juelich, + LUMI, Japan, France, CSCS Swiss National Supercomputing + Centre. (Luc, Patrick, Christian). + 1. Update captions with OpenACC, SYCL, etc. + 1. In "Cost of Coding" (applies to + [`SectionWhatIsKokkos.tex`][section-whatiskokkos], slide 9/72): + 1. Citations / industry reports supporting cost estimates, + perhaps including how AI changes the picture. (Pariksheet, + Christian) + 1. In "What is Kokkos" (applies to + [`SectionWhatIsKokkos.tex`][section-whatiskokkos], slide 10/72): + 1. 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). + 1. In all tex files replace `C++` with `C\textt{++}` as recommended by + the ISO-C++ committee. (Patrick). + +## Next meeting + +2025-06-02. + +## Attendees + +- Christian Trott +- Luc Berger-Vergiat +- Patrick Diehl +- Pariksheet Nanda + + +[issue-156]: +[pr-159]: +[pr-50]: +[legacy-tag]: +[module-1]: +[section-lectureoverview]: +[section-whatiskokkos]: +[section-dataparallelpatterns]: +[section-kokkos]: