Skip to content

Commit

Permalink
Docs @ 24ea4af
Browse files Browse the repository at this point in the history
  • Loading branch information
MFC Action committed Jul 25, 2024
1 parent 7d24e5e commit 4707e84
Show file tree
Hide file tree
Showing 459 changed files with 26,681 additions and 21,224 deletions.
32 changes: 16 additions & 16 deletions documentation/doxygen_crawl.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@
<a href="doxygen_crawl.html"/>
<a href="pages.html"/>
<a href="index.html"/>
<a href="index.html#autotoc_md83"/>
<a href="index.html#autotoc_md84"/>
<a href="index.html#autotoc_md81"/>
<a href="index.html#autotoc_md82"/>
<a href="md_authors.html"/>
<a href="md_case.html"/>
<a href="md_case.html#acoustic-source"/>
<a href="md_case.html#acoustic-supports"/>
<a href="md_case.html#autotoc_md10"/>
<a href="md_case.html#autotoc_md11"/>
<a href="md_case.html#autotoc_md12"/>
Expand All @@ -45,8 +47,6 @@
<a href="md_case.html#autotoc_md24"/>
<a href="md_case.html#autotoc_md25"/>
<a href="md_case.html#autotoc_md26"/>
<a href="md_case.html#autotoc_md27"/>
<a href="md_case.html#autotoc_md28"/>
<a href="md_case.html#autotoc_md3"/>
<a href="md_case.html#autotoc_md4"/>
<a href="md_case.html#autotoc_md5"/>
Expand All @@ -55,6 +55,8 @@
<a href="md_case.html#autotoc_md8"/>
<a href="md_case.html#autotoc_md9"/>
<a href="md_examples.html"/>
<a href="md_examples.html#autotoc_md28"/>
<a href="md_examples.html#autotoc_md29"/>
<a href="md_examples.html#autotoc_md30"/>
<a href="md_examples.html#autotoc_md31"/>
<a href="md_examples.html#autotoc_md32"/>
Expand Down Expand Up @@ -87,9 +89,9 @@
<a href="md_examples.html#autotoc_md59"/>
<a href="md_examples.html#autotoc_md60"/>
<a href="md_examples.html#autotoc_md61"/>
<a href="md_examples.html#autotoc_md62"/>
<a href="md_examples.html#autotoc_md63"/>
<a href="md_expectedPerformance.html"/>
<a href="md_expectedPerformance.html#autotoc_md63"/>
<a href="md_expectedPerformance.html#autotoc_md64"/>
<a href="md_expectedPerformance.html#autotoc_md65"/>
<a href="md_expectedPerformance.html#autotoc_md66"/>
<a href="md_expectedPerformance.html#autotoc_md67"/>
Expand All @@ -98,32 +100,30 @@
<a href="md_expectedPerformance.html#autotoc_md70"/>
<a href="md_expectedPerformance.html#autotoc_md71"/>
<a href="md_expectedPerformance.html#autotoc_md72"/>
<a href="md_expectedPerformance.html#autotoc_md73"/>
<a href="md_expectedPerformance.html#autotoc_md74"/>
<a href="md_getting-started.html"/>
<a href="md_getting-started.html#autotoc_md74"/>
<a href="md_getting-started.html#autotoc_md75"/>
<a href="md_getting-started.html#autotoc_md76"/>
<a href="md_getting-started.html#autotoc_md77"/>
<a href="md_getting-started.html#autotoc_md78"/>
<a href="md_getting-started.html#autotoc_md79"/>
<a href="md_getting-started.html#autotoc_md80"/>
<a href="md_papers.html"/>
<a href="md_references.html"/>
<a href="md_running.html"/>
<a href="md_running.html#autotoc_md85"/>
<a href="md_running.html#autotoc_md86"/>
<a href="md_running.html#autotoc_md87"/>
<a href="md_running.html#autotoc_md88"/>
<a href="md_running.html#autotoc_md89"/>
<a href="md_running.html#autotoc_md90"/>
<a href="md_running.html#autotoc_md91"/>
<a href="md_running.html#autotoc_md92"/>
<a href="md_running.html#autotoc_md93"/>
<a href="md_testing.html"/>
<a href="md_testing.html#autotoc_md95"/>
<a href="md_testing.html#autotoc_md96"/>
<a href="md_testing.html#autotoc_md93"/>
<a href="md_testing.html#autotoc_md94"/>
<a href="md_visualization.html"/>
<a href="md_visualization.html#autotoc_md100"/>
<a href="md_visualization.html#autotoc_md101"/>
<a href="md_visualization.html#autotoc_md102"/>
<a href="md_visualization.html#autotoc_md103"/>
<a href="md_visualization.html#autotoc_md96"/>
<a href="md_visualization.html#autotoc_md97"/>
<a href="md_visualization.html#autotoc_md98"/>
<a href="md_visualization.html#autotoc_md99"/>
</body>
Expand Down
4 changes: 2 additions & 2 deletions documentation/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="md_readme"></a></p>
<h1><a class="anchor" id="autotoc_md83"></a>
<h1><a class="anchor" id="autotoc_md81"></a>
User Documentation</h1>
<ul>
<li><a class="el" href="md_getting-started.html">Getting Started</a></li>
Expand All @@ -148,7 +148,7 @@ <h1><a class="anchor" id="autotoc_md83"></a>
<li><a class="el" href="md_authors.html">MFC's Authors</a></li>
<li><a class="el" href="md_references.html">References</a></li>
</ul>
<h1><a class="anchor" id="autotoc_md84"></a>
<h1><a class="anchor" id="autotoc_md82"></a>
Code/API Documentation</h1>
<p>MFC's three codes have their own documentation:</p>
<ul>
Expand Down
4 changes: 2 additions & 2 deletions documentation/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var index =
[
[ "User Documentation", "index.html#autotoc_md83", null ],
[ "Code/API Documentation", "index.html#autotoc_md84", null ]
[ "User Documentation", "index.html#autotoc_md81", null ],
[ "Code/API Documentation", "index.html#autotoc_md82", null ]
];
151 changes: 105 additions & 46 deletions documentation/md_case.html

Large diffs are not rendered by default.

70 changes: 35 additions & 35 deletions documentation/md_examples.html
Original file line number Diff line number Diff line change
Expand Up @@ -134,155 +134,155 @@
<div class="headertitle"><div class="title">Example Cases</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="autotoc_md29"></a></p>
<h1><a class="anchor" id="autotoc_md30"></a>
<div class="textblock"><p><a class="anchor" id="autotoc_md27"></a></p>
<h1><a class="anchor" id="autotoc_md28"></a>
Shu-Osher problem (1D)</h1>
<p>Reference: C. W. Shu, S. Osher, Efficient implementation of essentially non-oscillatory shock-capturing schemes, Journal of Computational Physics 77 (2) (1988) 439–471. doi:10.1016/0021-9991(88)90177-5.</p>
<h2><a class="anchor" id="autotoc_md31"></a>
<h2><a class="anchor" id="autotoc_md29"></a>
Initial Condition</h2>
<div class="image">
<img src="initial-1D_shuosher_old-example.png" alt=""/>
<div class="caption">
Initial Condition</div></div>
<h2><a class="anchor" id="autotoc_md32"></a>
<h2><a class="anchor" id="autotoc_md30"></a>
Result</h2>
<div class="image">
<img src="result-1D_shuosher_old-example.png" alt=""/>
<div class="caption">
Result</div></div>
<h1><a class="anchor" id="autotoc_md33"></a>
<h1><a class="anchor" id="autotoc_md31"></a>
Isentropic vortex problem (2D)</h1>
<p>Reference: Coralic, V., &amp; Colonius, T. (2014). Finite-volume Weno scheme for viscous compressible multicomponent flows. Journal of Computational Physics, 274, 95–121. <a href="https://doi.org/10.1016/j.jcp.2014.06.003">https://doi.org/10.1016/j.jcp.2014.06.003</a></p>
<h2><a class="anchor" id="autotoc_md34"></a>
<h2><a class="anchor" id="autotoc_md32"></a>
Density</h2>
<div class="image">
<img src="alpha_rho1-2D_isentropicvortex-example.png" alt=""/>
<div class="caption">
Density</div></div>
<h2><a class="anchor" id="autotoc_md35"></a>
<h2><a class="anchor" id="autotoc_md33"></a>
Density Norms</h2>
<div class="image">
<img src="density_norms-2D_isentropicvortex-example.png" alt=""/>
<div class="caption">
Density Norms</div></div>
<h1><a class="anchor" id="autotoc_md36"></a>
<h1><a class="anchor" id="autotoc_md34"></a>
Rayleigh-Taylor Instability (3D)</h1>
<h2><a class="anchor" id="autotoc_md37"></a>
<h2><a class="anchor" id="autotoc_md35"></a>
Final Condition</h2>
<div class="image">
<img src="final_condition-3D_rayleigh_taylor-example.png" alt=""/>
<div class="caption">
Final Condition</div></div>
<h2><a class="anchor" id="autotoc_md38"></a>
<h2><a class="anchor" id="autotoc_md36"></a>
Centerline Velocities</h2>
<p><img src="linear_theory.jpg" alt="Linear Theory Comparison" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md39"></a>
<h1><a class="anchor" id="autotoc_md37"></a>
Titarev-Toro problem (1D)</h1>
<p>Reference: V. A. Titarev, E. F. Toro, Finite-volume WENO schemes for three-dimensional conservation laws, Journal of Computational Physics 201 (1) (2004) 238–260.</p>
<h2><a class="anchor" id="autotoc_md40"></a>
<h2><a class="anchor" id="autotoc_md38"></a>
Initial Condition</h2>
<div class="image">
<img src="initial-1D_titarevtorro-example.png" alt=""/>
<div class="caption">
Initial Condition</div></div>
<h2><a class="anchor" id="autotoc_md41"></a>
<h2><a class="anchor" id="autotoc_md39"></a>
Result</h2>
<div class="image">
<img src="result-1D_titarevtorro-example.png" alt=""/>
<div class="caption">
Result</div></div>
<h1><a class="anchor" id="autotoc_md42"></a>
<h1><a class="anchor" id="autotoc_md40"></a>
2D Hardcodied IC Example</h1>
<h2><a class="anchor" id="autotoc_md43"></a>
<h2><a class="anchor" id="autotoc_md41"></a>
Initial Condition</h2>
<div class="image">
<img src="initial-2D_hardcodied_ic-example.png" alt=""/>
<div class="caption">
Initial Condition</div></div>
<h2><a class="anchor" id="autotoc_md44"></a>
<h2><a class="anchor" id="autotoc_md42"></a>
Result</h2>
<p><img src="result-2D_hardcodied_ic-example.png" alt="" class="inline" title="Result"/> </p>
<h1><a class="anchor" id="autotoc_md45"></a>
<h1><a class="anchor" id="autotoc_md43"></a>
Rayleigh-Taylor Instability (2D)</h1>
<h2><a class="anchor" id="autotoc_md46"></a>
<h2><a class="anchor" id="autotoc_md44"></a>
Final Condition</h2>
<div class="image">
<img src="final_condition-2D_rayleigh_taylor-example.png" alt=""/>
<div class="caption">
Final Condition</div></div>
<h2><a class="anchor" id="autotoc_md47"></a>
<h2><a class="anchor" id="autotoc_md45"></a>
Centerline Velocities</h2>
<p><img src="linear_theory.jpg" alt="Linear Theory Comparison" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md48"></a>
<h1><a class="anchor" id="autotoc_md46"></a>
Lid-Driven Cavity Problem (2D)</h1>
<p>Reference: Bezgin, D. A., &amp; Buhendwa A. B., &amp; Adams N. A. (2022). JAX-FLUIDS: A fully-differentiable high-order computational fluid dynamics solver for compressible two-phase flows. arXiv:2203.13760</p>
<p>Reference: Ghia, U., &amp; Ghia, K. N., &amp; Shin, C. T. (1982). High-re solutions for incompressible flow using the Navier-Stokes equations and a multigrid method. Journal of Computational Physics, 48, 387-411</p>
<p>Video: <a href="https://youtube.com/shorts/JEP28scZrBM?feature=share">https://youtube.com/shorts/JEP28scZrBM?feature=share</a></p>
<h2><a class="anchor" id="autotoc_md49"></a>
<h2><a class="anchor" id="autotoc_md47"></a>
Final Condition</h2>
<div class="image">
<img src="final_condition-2D_lid_driven_cavity-example.png" alt=""/>
<div class="caption">
Final Condition</div></div>
<h2><a class="anchor" id="autotoc_md50"></a>
<h2><a class="anchor" id="autotoc_md48"></a>
Centerline Velocities</h2>
<div class="image">
<img src="centerline_velocities-2D_lid_driven_cavity-example.png" alt=""/>
<div class="caption">
Centerline Velocities</div></div>
<h1><a class="anchor" id="autotoc_md51"></a>
<h1><a class="anchor" id="autotoc_md49"></a>
Shock Droplet (2D)</h1>
<p>Reference: Panchal et. al., A Seven-Equation Diffused Interface Method for Resolved Multiphase Flows, JCP, 475 (2023)</p>
<h2><a class="anchor" id="autotoc_md52"></a>
<h2><a class="anchor" id="autotoc_md50"></a>
Initial Condition</h2>
<div class="image">
<img src="initial-2D_shockdroplet-example.png" alt=""/>
<div class="caption">
Initial Condition</div></div>
<h2><a class="anchor" id="autotoc_md53"></a>
<h2><a class="anchor" id="autotoc_md51"></a>
Result</h2>
<p><img src="result-2D_shockdroplet-example.png" alt="" class="inline" title="Result"/> </p>
<h1><a class="anchor" id="autotoc_md54"></a>
<h1><a class="anchor" id="autotoc_md52"></a>
Lax shock tube problem (1D)</h1>
<p>Reference: P. D. Lax, Weak solutions of nonlinear hyperbolic equations and their numerical computation, Communications on pure and applied mathematics 7 (1) (1954) 159–193.</p>
<h2><a class="anchor" id="autotoc_md55"></a>
<h2><a class="anchor" id="autotoc_md53"></a>
Initial Condition</h2>
<div class="image">
<img src="initial-1D_laxshocktube-example.png" alt=""/>
<div class="caption">
Initial Condition</div></div>
<h2><a class="anchor" id="autotoc_md56"></a>
<h2><a class="anchor" id="autotoc_md54"></a>
Result</h2>
<div class="image">
<img src="result-1D_laxshocktube-example.png" alt=""/>
<div class="caption">
Result</div></div>
<h1><a class="anchor" id="autotoc_md57"></a>
<h1><a class="anchor" id="autotoc_md55"></a>
2D Riemann Test (2D)</h1>
<p>Reference: Chamarthi, A., &amp; Hoffmann, N., &amp; Nishikawa, H., &amp; Frankel S. (2023). Implicit gradients based conservative numerical scheme for compressible flows. arXiv:2110.05461</p>
<h2><a class="anchor" id="autotoc_md58"></a>
<h2><a class="anchor" id="autotoc_md56"></a>
Density Initial Condition</h2>
<div class="image">
<img src="alpha_rho1_initial-2D_riemann_test-example.png" alt=""/>
<div class="caption">
Density</div></div>
<h2><a class="anchor" id="autotoc_md59"></a>
<h2><a class="anchor" id="autotoc_md57"></a>
Density Final Condition</h2>
<div class="image">
<img src="alpha_rho1_final-2D_riemann_test-example.png" alt=""/>
<div class="caption">
Density Norms</div></div>
<h1><a class="anchor" id="autotoc_md60"></a>
<h1><a class="anchor" id="autotoc_md58"></a>
Strong- &amp; Weak-scaling</h1>
<p>The <a href="case.py"><b>Scaling</b></a> case can exercise both weak- and strong-scaling. It adjusts itself depending on the number of requested ranks.</p>
<p>This directory also contains a collection of scripts used to test strong-scaling on OLCF Frontier. They required modifying MFC to collect some metrics but are meant to serve as a reference to users wishing to run similar experiments.</p>
<h2><a class="anchor" id="autotoc_md61"></a>
<h2><a class="anchor" id="autotoc_md59"></a>
Weak Scaling</h2>
<p>Pass <code>--scaling weak</code>. The <code>--memory</code> option controls (approximately) how much memory each rank should use, in Gigabytes. The number of cells in each dimension is then adjusted according to the number of requested ranks and an approximation for the relation between cell count and memory usage. The problem size increases linearly with the number of ranks.</p>
<h2><a class="anchor" id="autotoc_md62"></a>
<h2><a class="anchor" id="autotoc_md60"></a>
Strong Scaling</h2>
<p>Pass <code>--scaling strong</code>. The <code>--memory</code> option controls (approximately) how much memory should be used in total during simulation, across all ranks, in Gigabytes. The problem size remains constant as the number of ranks increases.</p>
<h2><a class="anchor" id="autotoc_md63"></a>
<h2><a class="anchor" id="autotoc_md61"></a>
Example</h2>
<p>For example, to run a weak-scaling test that uses ~4GB of GPU memory per rank on 8 2-rank nodes with case optimization, one could:</p>
<div class="fragment"><div class="line">./mfc.sh run examples/scaling/case.py -t pre_process simulation \</div>
Expand Down
22 changes: 11 additions & 11 deletions documentation/md_expectedPerformance.html
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,9 @@
<div class="headertitle"><div class="title">Performance Results</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="autotoc_md64"></a></p>
<div class="textblock"><p><a class="anchor" id="autotoc_md62"></a></p>
<p>MFC has been benchmarked on several CPUs and GPU devices. This page shows a summary of these results.</p>
<h1><a class="anchor" id="autotoc_md65"></a>
<h1><a class="anchor" id="autotoc_md63"></a>
Expected time-steps/hour</h1>
<p>The following table outlines observed performance as nanoseconds per grid point (ns/GP) per equation (eq) per right-hand side (rhs) evaluation (lower is better). We solve an example 3D, inviscid, 5-equation model problem with two advected species (a total of 8 PDEs). The numerics are WENO5 and the HLLC approximate Riemann solver. This case is located in <code>examples/3D_performance_test</code>. We report results for various numbers of grid points per CPU die (or GPU device) and hardware.</p>
<table class="markdownTable">
Expand All @@ -156,34 +156,34 @@ <h1><a class="anchor" id="autotoc_md65"></a>
<td class="markdownTableBodyRight">Apple M2 </td><td class="markdownTableBodyCenter">6 cores </td><td class="markdownTableBodyCenter">365 </td><td class="markdownTableBodyCenter">306 </td><td class="markdownTableBodyCenter">563 </td><td class="markdownTableBodyCenter">GNU 13.2.0 </td><td class="markdownTableBodyLeft">N/A </td></tr>
</table>
<p><b>All results are in nanoseconds (ns) per grid point (gp) per equation (eq) per right-hand side (rhs) evaluation, so X ns/gp/eq/rhs. Lower is better.</b></p>
<h1><a class="anchor" id="autotoc_md66"></a>
<h1><a class="anchor" id="autotoc_md64"></a>
Weak scaling</h1>
<p>Weak scaling results are obtained by increasing the problem size with the number of processes so that work per process remains constant.</p>
<h2><a class="anchor" id="autotoc_md67"></a>
<h2><a class="anchor" id="autotoc_md65"></a>
AMD MI250X GPU</h2>
<p>MFC weask scales to (at least) 65,536 AMD MI250X GPUs on OLCF Frontier with 96% efficiency. This corresponds to 87% of the entire machine.</p>
<p><img src="../res/weakScaling/frontier.svg" alt="" style="pointer-events: none; height: 50%; width:50%; border-radius: 10pt" class="inline"/></p>
<h2><a class="anchor" id="autotoc_md68"></a>
<h2><a class="anchor" id="autotoc_md66"></a>
NVIDIA V100 GPU</h2>
<p>MFC weak scales to (at least) 13,824 V100 NVIDIA V100 GPUs on OLCF Summit with 97% efficiency. This corresponds to 50% of the entire machine.</p>
<p><img src="../res/weakScaling/summit.svg" alt="" style="pointer-events: none; height: 50%; width:50%; border-radius: 10pt" class="inline"/></p>
<h2><a class="anchor" id="autotoc_md69"></a>
<h2><a class="anchor" id="autotoc_md67"></a>
IBM Power9 CPU</h2>
<p>MFC Weak scales to 13,824 Power9 CPU cores on OLCF Summit to within 1% of ideal scaling.</p>
<p><img src="../res/weakScaling/cpuScaling.svg" alt="" style="pointer-events: none; height: 50%; width:50%; border-radius: 10pt" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md70"></a>
<h1><a class="anchor" id="autotoc_md68"></a>
Strong scaling</h1>
<p>Strong scaling results are obtained by keeping the problem size constant and increasing the number of processes so that work per process decreases.</p>
<h2><a class="anchor" id="autotoc_md71"></a>
<h2><a class="anchor" id="autotoc_md69"></a>
NVIDIA V100 GPU</h2>
<p>For these tests, the base case utilizes 8 GPUs with one MPI process per GPU. The performance is analyzed at two different problem sizes of 16M and 64M grid points, with the base case using 2M and 8M grid points per process.</p>
<h3><a class="anchor" id="autotoc_md72"></a>
<h3><a class="anchor" id="autotoc_md70"></a>
16M Grid Points</h3>
<p><img src="../res/strongScaling/strongScaling16.svg" alt="" style="pointer-events: none; width: 50%; border-radius: 10pt" class="inline"/></p>
<h3><a class="anchor" id="autotoc_md73"></a>
<h3><a class="anchor" id="autotoc_md71"></a>
64M Grid Points</h3>
<p><img src="../res/strongScaling/strongScaling64.svg" alt="" style="pointer-events: none; width: 50%; border-radius: 10pt" class="inline"/></p>
<h2><a class="anchor" id="autotoc_md74"></a>
<h2><a class="anchor" id="autotoc_md72"></a>
IBM Power9 CPU</h2>
<p>CPU strong scaling tests are done with problem sizes of 16, 32, and 64M grid points, with the base case using 2, 4, and 8M cells per process.</p>
<p><img src="../res/strongScaling/cpuStrongScaling.svg" alt="" style="pointer-events: none; width: 50%; border-radius: 10pt" class="inline"/> </p>
Expand Down
Loading

0 comments on commit 4707e84

Please sign in to comment.