Skip to content

Commit

Permalink
Merge branch 'main' of github.com:lanl/benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
gshipman committed Feb 7, 2024
2 parents ae5a8fa + 8edd03a commit 3854cd7
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 8 deletions.
24 changes: 22 additions & 2 deletions doc/sphinx/03_vibe/vibe.rst
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,29 @@ Throughput performance of Parthenon-VIBE on a 40GB A100 is provided within the f
Validation
==========
Parthenon-VIBE prints to a history file (default name ``burgers.hst``) a
time series of the sum of squares of evolved variables integrated over
volume for each octant of the domain, as well as the total number of
meshblocks in the simulation at that time. To compare these quantities
between runs, we provide the ``burgers_diff.py`` program in the
benchmark folder. This will diff two history files and report when the
relative difference is greater than some tolerance.
.. note::
``burgers.hst`` is **appended** to when the executable is re-run. So
if you want to compare two different history files, rename the
history file by changing either ``problem_id`` in the ``parthenon/job``
block in the input deck (this can be done on the command line. When
you start the program, add ``parthenon/job/problem_id=mynewname`` to
the command line argument), or copy the old file to back it up.
To check that a modified calculation is still correct, run
``burgers_diff.py`` to compare a new run to the fiducial one at the
default tolerance. If no diffs are reported, the modified calculation
is correct.
References
==========
.. [Parthenon-VIBE] Jonah Miller, 'Parthenon', 2023. [Online]. Available: https://github.com/parthenon-hpc-lab/parthenon. [Accessed: 20- Mar- 2023]
.. [Parthenon-VIBE] Jonah Miller, 'Parthenon', 2024. [Online]. Available: https://github.com/parthenon-hpc-lab/parthenon. [Accessed: 06- Feb- 2024]
36 changes: 31 additions & 5 deletions doc/sphinx/06_umt/umt.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ UMT can be found on github and cloned via:
Build Requirements
------------------

* C/C++ compiler(s) with support for C++11 and Fortran compiler(s) with support for F2003.
* `CMake 3.18X <https://cmake.org/download/>`_
* `Conduit v0.8.9 (pending), or the develop branch as of 1/1/2024. <https://github.com/LLNL/conduit>`_
* C/C++ compiler(s) with support for C++14 and Fortran compiler(s) with support for F2003.
* `CMake 3.21X <https://cmake.org/download/>`_
* `Conduit v0.9.0 <https://github.com/LLNL/conduit>`_
* `Spack <https://github.com/spack/spack>`_ (optional)

* MPI 3.0+
Expand Down Expand Up @@ -94,8 +94,6 @@ for UMT.
Use '-B global' to specify that the size is for the global mesh, which is suitable for strong scaling studies. If performing a
weak scaling study, you can specify '-B local' to specify the size of the mesh per rank instead.

Benchmark problems should target roughly half the node memory (for CPUs) or half the device memory (for GPUs).

For example, to create a global mesh of size 20,20,20 tiles:

.. code-block::
Expand All @@ -104,6 +102,34 @@ For example, to create a global mesh of size 20,20,20 tiles:
where num = 1 for SPP 1 or num = 2 for SPP 2.

Benchmark problems should target roughly half the node memory (for CPUs) or half the device memory (for GPUs). The problem size
(and therefore memory used) can be adjusted by increasing or decreasing the number of mesh tiles the problem runs on.

When tuning the problem size, you can check the UMT memory usage in the output. For example, here is an example output from
benchmark #1 with a 10x10x10 tile mesh:

.. code-block::
=================================================================
Solving for 221184000 global unknowns.
(24000 spatial elements * 72 directions (angles) * 128 energy groups)
CPU memory needed (rank 0) for PSI: 1687.5MB
Current CPU memory use (rank 0): 2667.74MB
Iteration control: relative tolerance set to 1e-10.
=================================================================
When predicting memory usage, a rough ballpark estimate is:

.. code-block::
global memory estimate = # global unknowns to solve * 8 bytes ( size of a double data type, typically 8 bytes ) * 175%
# unknowns to solve = # spatial elements * # directions * # energy bins
Each mesh tile has 192 3d corner spatial elements. Benchmark #1 has 72 directions and 128 energy bins. Benchmark #2 has 32
directions and 16 energy bins.


Example FOM Results
===================

Expand Down
2 changes: 1 addition & 1 deletion parthenon
Submodule parthenon updated 171 files

0 comments on commit 3854cd7

Please sign in to comment.