Skip to content

2021.04.15 Meeting Notes

Philipp Grete edited this page Apr 18, 2021 · 5 revisions

Agenda

  • Individual/group updates
  • Global/Mesh variables in downstream codes (pgrete)
  • Status C++17 update for constexpr branching
  • Status of Argonne GPU Hackathon
  • Paper
  • Review non-WIP PRs

Individual/group updates

LANL CS

Joshua Brown

  • Working pr performance regression
  • Looking into setting up compilation with xl compiler
  • Generate performance metrics on Grizzly
  • Code review

Jonas Lippuner

  • sparse fields were refactored and will be submitted in a separate pr
  • simplified restart and hdf5 file writer implementation
  • addressed error with hdf5 compression, compression is on by default but checks for compatible hdf5 version in the build configuration

LANL Physics

Jonah

  • Mostly been doing code review
  • Was able to open source gpu capable singularity-EOS library, spent some time making sure it was working on github

Joshua Dolence

  • Spent time working on Phoebus
  • Preparing for talks

Ben Ryan

  • Been working on his open particles pr's
  • Working on compilation with mpi and dealing with MPI_TAGS

AthenaPK

Philipp Grete

  • Adding quality of life improvements
  • Added ability to write history output files at fixed intervals
  • Working MDRange policy with tiling, noticed significant performance improvements
  • Worked on getting the hackathon instructions together for profiling

Forrest Glines

  • Been wrapping up hdf5 pull request so Parthenon can be used with Yt
  • Was looking into putting back in user hooks

Agenda

Global/Mesh variables in downstream codes

There is a need in downstream code for some way to share global mesh block variables within a package. Apparently, Jonah has old pr that might be a good starting point. Another point that was raised is that thread safety is not guaranteed by params, so it requires care when attempting to do reductions. Reasons were provided for needing such functionality: diagonostics, turbulence. Indenpdently, Kokkos currently has no build-in feature make multiple reduction in a single kernel. We would need to role our own custom reducer to be able to take an arbitrary number of variables at once.

C++17

It should be safe to start exploring c++17 at least from the point of compiler support in the future, but should wait to push changes into parthenon until after there is better support from nvcc and kokkos (more specifically, once cuda/nvcc >= 11.2 is more widely installed as the main bugs, e.g., compiling Kokkos with C++17 and relaxed constexpr, or capturing variables for constexpr if in lambdas, are fixed in that version)

Hackathon

Have been assigned 4 mentors incl. 1 Kokkos person and 1 Athena++ person. Next week will have the first set of profiling done. The current focus will likely be on the easy targets: prolongation, memory restriction, will in general increase the load balancing performance.

Paper

Consensus is to move forward with Overleaf with collaborators having access.

CI is failing

This is because to the tiling pr that was merged but is more a problem with the test using more indices than there are hardware threads available. Suggested, we simply update the unit tests so they can detect the number of available threads.

TODO

  • Josh Brown - will look into rerunning weak scaling test with hdf5 compression pr, also need to look into generating a slightly less contrived problem (compression will likely excessively performant)
  • Jonah/Phil - look into old global reduction interface
  • Phil - will start outline of paper
  • Phil - fix unit test breaking ci
Clone this wiki locally