Skip to content

Commit df3985e

Browse files
author
MFC Action
committed
Docs @ 6c18780
1 parent d73dab1 commit df3985e

File tree

16 files changed

+73
-65
lines changed

16 files changed

+73
-65
lines changed

documentation/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ <h1><a class="anchor" id="autotoc_md81"></a>
144144
<li><a class="el" href="md_examples.html">Example Cases</a></li>
145145
<li><a class="el" href="md_running.html">Running MFC</a></li>
146146
<li><a class="el" href="md_visualization.html">Flow Visualization</a></li>
147-
<li><a class="el" href="md_expectedPerformance.html">Performance Results</a></li>
147+
<li><a class="el" href="md_expectedPerformance.html">Performance</a></li>
148148
<li><a class="el" href="md_authors.html">MFC's Authors</a></li>
149149
<li><a class="el" href="md_references.html">References</a></li>
150150
</ul>

documentation/md_expectedPerformance.html

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
1515
<meta name="generator" content="Doxygen 1.12.0"/>
1616
<meta name="viewport" content="width=device-width, initial-scale=1"/>
17-
<title>MFC: Performance Results</title>
17+
<title>MFC: Performance</title>
1818
<link href="tabs.css" rel="stylesheet" type="text/css"/>
1919
<script type="text/javascript" src="jquery.js"></script>
2020
<script type="text/javascript" src="dynsections.js"></script>
@@ -131,14 +131,18 @@
131131
</div>
132132

133133
<div><div class="header">
134-
<div class="headertitle"><div class="title">Performance Results</div></div>
134+
<div class="headertitle"><div class="title">Performance</div></div>
135135
</div><!--header-->
136136
<div class="contents">
137137
<div class="textblock"><p><a class="anchor" id="autotoc_md62"></a></p>
138138
<p>MFC has been benchmarked on several CPUs and GPU devices. This page shows a summary of these results.</p>
139139
<h1><a class="anchor" id="autotoc_md63"></a>
140-
Expected time-steps/hour</h1>
141-
<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 (8 PDEs) and 8M grid points (158-cubed uniform grid). The numerics are WENO5 finite volume reconstruction and 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. Results are for MFC v4.9.3 (July 2024 release), though numbers have not changed meaningfully since then. All results are for the compiler that gave the best performance. CPU results may be performed on CPUs with more cores than reported in the table; we report results for the best performance given the full processor die by checking the performance for different core counts on that device. GPU results on single-precision (SP) GPUs performed computation in double-precision via conversion in compiler/software; these numbers are <em>not</em> for single-precision computation. AMD MI250X GPUs have two graphics compute dies (GCDs) per MI250X device; we report results for one GCD, though one can quickly estimate full MI250X runtime by halving the single GCD grind time number.</p>
140+
Figure of merit: Grind time performance</h1>
141+
<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), also known as the grind time. We solve an example 3D, inviscid, 5-equation model problem with two advected species (8 PDEs) and 8M grid points (158-cubed uniform grid). The numerics are WENO5 finite volume reconstruction and HLLC approximate Riemann solver. This case is located in <code>examples/3D_performance_test</code>.</p>
142+
<p>Results are for MFC v4.9.3 (July 2024 release), though numbers have not changed meaningfully since then. All results are for the compiler that gave the best performance. Note:</p><ul>
143+
<li>CPU results may be performed on CPUs with more cores than reported in the table; we report results for the best performance given the full processor die by checking the performance for different core counts on that device. These are reported as (X/Y cores), where X is the used cores, and Y is the total on the die.</li>
144+
<li>GPU results on single-precision (SP) GPUs performed computation in double-precision via conversion in compiler/software; these numbers are <em>not</em> for single-precision computation. AMD MI250X GPUs have two graphics compute dies (GCDs) per MI250X device; we report results for one GCD, though one can quickly estimate full MI250X runtime by halving the single GCD grind time number.</li>
145+
</ul>
142146
<table class="markdownTable">
143147
<tr class="markdownTableHead">
144148
<th class="markdownTableHeadRight">Hardware </th><th class="markdownTableHeadRight"></th><th class="markdownTableHeadCenter">Grind Time </th><th class="markdownTableHeadLeft">Compiler </th><th class="markdownTableHeadLeft">Computer </th></tr>
@@ -159,11 +163,15 @@ <h1><a class="anchor" id="autotoc_md63"></a>
159163
<tr class="markdownTableRowEven">
160164
<td class="markdownTableBodyRight">NVIDIA RTX6000 (SP GPU) </td><td class="markdownTableBodyRight">1 GPU </td><td class="markdownTableBodyCenter">3.9 </td><td class="markdownTableBodyLeft">NVHPC 22.11 </td><td class="markdownTableBodyLeft">GT Phoenix </td></tr>
161165
<tr class="markdownTableRowOdd">
162-
<td class="markdownTableBodyRight">Apple M1 Max </td><td class="markdownTableBodyRight">8 cores </td><td class="markdownTableBodyCenter">72 </td><td class="markdownTableBodyLeft">GNU 14.1.0 </td><td class="markdownTableBodyLeft">N/A </td></tr>
166+
<td class="markdownTableBodyRight">Apple M1 Max </td><td class="markdownTableBodyRight">8/10 cores </td><td class="markdownTableBodyCenter">72 </td><td class="markdownTableBodyLeft">GNU 14.1.0 </td><td class="markdownTableBodyLeft">N/A </td></tr>
163167
<tr class="markdownTableRowEven">
164-
<td class="markdownTableBodyRight">AMD EPYC 7713 </td><td class="markdownTableBodyRight">32 cores </td><td class="markdownTableBodyCenter">137 </td><td class="markdownTableBodyLeft">GNU 12.1.0 </td><td class="markdownTableBodyLeft">GT Phoenix </td></tr>
168+
<td class="markdownTableBodyRight">AMD EPYC 9534 (Genoa) </td><td class="markdownTableBodyRight">64/64 cores </td><td class="markdownTableBodyCenter">96 </td><td class="markdownTableBodyLeft">GNU 12.3.0 </td><td class="markdownTableBodyLeft">GT Phoenix </td></tr>
165169
<tr class="markdownTableRowOdd">
166-
<td class="markdownTableBodyRight">Intel Xeon Gold 6226 </td><td class="markdownTableBodyRight">12 cores </td><td class="markdownTableBodyCenter">152 </td><td class="markdownTableBodyLeft">Intel oneAPI 2022.1 </td><td class="markdownTableBodyLeft">GT Phoenix </td></tr>
170+
<td class="markdownTableBodyRight">Intel Xeon Gold 6454S (Sapphire Rapids) </td><td class="markdownTableBodyRight">16/32 cores </td><td class="markdownTableBodyCenter">111 </td><td class="markdownTableBodyLeft">NVHPC 24.5 </td><td class="markdownTableBodyLeft">GT Rogues Gallery </td></tr>
171+
<tr class="markdownTableRowEven">
172+
<td class="markdownTableBodyRight">AMD EPYC 7713 (Milan) </td><td class="markdownTableBodyRight">32/64 cores </td><td class="markdownTableBodyCenter">137 </td><td class="markdownTableBodyLeft">GNU 12.1.0 </td><td class="markdownTableBodyLeft">GT Phoenix </td></tr>
173+
<tr class="markdownTableRowOdd">
174+
<td class="markdownTableBodyRight">Intel Xeon Gold 6226 (Cascade Lake) </td><td class="markdownTableBodyRight">12/12 cores </td><td class="markdownTableBodyCenter">152 </td><td class="markdownTableBodyLeft">Intel oneAPI 2022.1 </td><td class="markdownTableBodyLeft">GT Phoenix </td></tr>
167175
</table>
168176
<p><b>All grind times 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>
169177
<h1><a class="anchor" id="autotoc_md64"></a>

documentation/navtreedata.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ var NAVTREE =
107107
[ "Example", "md_examples.html#autotoc_md61", null ]
108108
] ]
109109
] ],
110-
[ "Performance Results", "md_expectedPerformance.html", [
111-
[ "Expected time-steps/hour", "md_expectedPerformance.html#autotoc_md63", null ],
110+
[ "Performance", "md_expectedPerformance.html", [
111+
[ "Figure of merit: Grind time performance", "md_expectedPerformance.html#autotoc_md63", null ],
112112
[ "Weak scaling", "md_expectedPerformance.html#autotoc_md64", [
113113
[ "AMD MI250X GPU", "md_expectedPerformance.html#autotoc_md65", null ],
114114
[ "NVIDIA V100 GPU", "md_expectedPerformance.html#autotoc_md66", null ],

documentation/pages.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_authors.html" target="_self">Authors</a></td><td class="desc"></td></tr>
140140
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_case.html" target="_self">Case Files</a></td><td class="desc"></td></tr>
141141
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_examples.html" target="_self">Example Cases</a></td><td class="desc"></td></tr>
142-
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_expectedPerformance.html" target="_self">Performance Results</a></td><td class="desc"></td></tr>
142+
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_expectedPerformance.html" target="_self">Performance</a></td><td class="desc"></td></tr>
143143
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_getting-started.html" target="_self">Getting Started</a></td><td class="desc"></td></tr>
144144
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_papers.html" target="_self">Papers</a></td><td class="desc"></td></tr>
145145
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_references.html" target="_self">References</a></td><td class="desc"></td></tr>

documentation/search/all_10.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
var searchData=
22
[
33
['hard_20coded_20patches_0',['Hard Coded Patches',['../md_case.html#autotoc_md9',1,'']]],
4-
['hardcodied_20ic_20example_1',['2D Hardcodied IC Example',['../md_examples.html#autotoc_md40',1,'']]],
5-
['hour_2',['Expected time-steps/hour',['../md_expectedPerformance.html#autotoc_md63',1,'']]]
4+
['hardcodied_20ic_20example_1',['2D Hardcodied IC Example',['../md_examples.html#autotoc_md40',1,'']]]
65
];

documentation/search/all_13.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ var searchData=
22
[
33
['mach_20number_0',['12. Artificial Mach Number',['../md_case.html#autotoc_md19',1,'']]],
44
['material’s_1',['5. Fluid Material’s',['../md_case.html#autotoc_md13',1,'']]],
5-
['mfc_2',['MFC',['../md_getting-started.html#autotoc_md76',1,'Building MFC'],['../md_getting-started.html#autotoc_md74',1,'Fetching MFC']]],
6-
['mi250x_20gpu_3',['AMD MI250X GPU',['../md_expectedPerformance.html#autotoc_md65',1,'']]],
7-
['model_4',['Model',['../md_case.html#autotoc_md18',1,'11. Phase Change Model'],['../md_case.html#autotoc_md16',1,'9. Ensemble-Averaged Bubble Model']]]
5+
['merit_3a_20grind_20time_20performance_2',['Figure of merit: Grind time performance',['../md_expectedPerformance.html#autotoc_md63',1,'']]],
6+
['mfc_3',['MFC',['../md_getting-started.html#autotoc_md76',1,'Building MFC'],['../md_getting-started.html#autotoc_md74',1,'Fetching MFC']]],
7+
['mi250x_20gpu_4',['AMD MI250X GPU',['../md_expectedPerformance.html#autotoc_md65',1,'']]],
8+
['model_5',['Model',['../md_case.html#autotoc_md18',1,'11. Phase Change Model'],['../md_case.html#autotoc_md16',1,'9. Ensemble-Averaged Bubble Model']]]
89
];

documentation/search/all_15.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
var searchData=
22
[
3-
['of_20primitive_20variables_0',['Analytical Definition of Primitive Variables',['../md_case.html#autotoc_md8',1,'']]],
4-
['on_20pace_20phoenix_1',['Remote Visualization on PACE Phoenix',['../md_visualization.html#autotoc_md98',1,'']]],
5-
['optional_20accepting_20command_20line_20arguments_2',['(Optional) Accepting command line arguments',['../md_case.html#autotoc_md3',1,'']]],
6-
['ordering_3',['Ordering',['../md_case.html#autotoc_md25',1,'Conservative Variables Ordering'],['../md_case.html#autotoc_md26',1,'Primitive Variables Ordering']]],
7-
['osher_20problem_201d_4',['Shu-Osher problem (1D)',['../md_examples.html#autotoc_md28',1,'']]],
8-
['output_5',['7. Formatted Output',['../md_case.html#autotoc_md15',1,'']]],
9-
['output_6',['Serial data output',['../md_visualization.html#autotoc_md97',1,'']]]
3+
['of_20merit_3a_20grind_20time_20performance_0',['Figure of merit: Grind time performance',['../md_expectedPerformance.html#autotoc_md63',1,'']]],
4+
['of_20primitive_20variables_1',['Analytical Definition of Primitive Variables',['../md_case.html#autotoc_md8',1,'']]],
5+
['on_20pace_20phoenix_2',['Remote Visualization on PACE Phoenix',['../md_visualization.html#autotoc_md98',1,'']]],
6+
['optional_20accepting_20command_20line_20arguments_3',['(Optional) Accepting command line arguments',['../md_case.html#autotoc_md3',1,'']]],
7+
['ordering_4',['Ordering',['../md_case.html#autotoc_md25',1,'Conservative Variables Ordering'],['../md_case.html#autotoc_md26',1,'Primitive Variables Ordering']]],
8+
['osher_20problem_201d_5',['Shu-Osher problem (1D)',['../md_examples.html#autotoc_md28',1,'']]],
9+
['output_6',['7. Formatted Output',['../md_case.html#autotoc_md15',1,'']]],
10+
['output_7',['Serial data output',['../md_visualization.html#autotoc_md97',1,'']]]
1011
];

documentation/search/all_16.js

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,19 @@ var searchData=
1010
['patch_20types_7',['Immersed Boundary Patch Types',['../md_case.html#autotoc_md24',1,'']]],
1111
['patch_20types_8',['Patch types',['../md_case.html#autotoc_md23',1,'']]],
1212
['patches_9',['Patches',['../md_case.html#autotoc_md7',1,'3. Patches'],['../md_case.html#autotoc_md11',1,'4. Immersed Boundary Patches'],['../md_case.html#autotoc_md9',1,'Hard Coded Patches']]],
13-
['performance_20results_10',['Performance Results',['../md_expectedPerformance.html',1,'']]],
14-
['phase_20change_20model_11',['11. Phase Change Model',['../md_case.html#autotoc_md18',1,'']]],
15-
['phoenix_12',['Remote Visualization on PACE Phoenix',['../md_visualization.html#autotoc_md98',1,'']]],
16-
['points_13',['Points',['../md_expectedPerformance.html#autotoc_md70',1,'16M Grid Points'],['../md_expectedPerformance.html#autotoc_md71',1,'64M Grid Points']]],
17-
['post_20process_14',['Testing Post Process',['../md_testing.html#autotoc_md94',1,'']]],
18-
['power9_20cpu_15',['Power9 CPU',['../md_expectedPerformance.html#autotoc_md67',1,'IBM Power9 CPU'],['../md_expectedPerformance.html#autotoc_md72',1,'IBM Power9 CPU']]],
19-
['primitive_20variables_16',['Analytical Definition of Primitive Variables',['../md_case.html#autotoc_md8',1,'']]],
20-
['primitive_20variables_20ordering_17',['Primitive Variables Ordering',['../md_case.html#autotoc_md26',1,'']]],
21-
['problem_201d_18',['problem 1D',['../md_examples.html#autotoc_md52',1,'Lax shock tube problem (1D)'],['../md_examples.html#autotoc_md28',1,'Shu-Osher problem (1D)'],['../md_examples.html#autotoc_md37',1,'Titarev-Toro problem (1D)']]],
22-
['problem_202d_19',['Lid-Driven Cavity Problem (2D)',['../md_examples.html#autotoc_md46',1,'']]],
23-
['problem_202d_20',['Isentropic vortex problem (2D)',['../md_examples.html#autotoc_md31',1,'']]],
24-
['procedure_21',['Procedure',['../md_visualization.html#autotoc_md96',1,'']]],
25-
['process_22',['Testing Post Process',['../md_testing.html#autotoc_md94',1,'']]],
26-
['profiling_23',['GPU Profiling',['../md_running.html#autotoc_md87',1,'']]]
13+
['performance_10',['Performance',['../md_expectedPerformance.html',1,'']]],
14+
['performance_11',['Figure of merit: Grind time performance',['../md_expectedPerformance.html#autotoc_md63',1,'']]],
15+
['phase_20change_20model_12',['11. Phase Change Model',['../md_case.html#autotoc_md18',1,'']]],
16+
['phoenix_13',['Remote Visualization on PACE Phoenix',['../md_visualization.html#autotoc_md98',1,'']]],
17+
['points_14',['Points',['../md_expectedPerformance.html#autotoc_md70',1,'16M Grid Points'],['../md_expectedPerformance.html#autotoc_md71',1,'64M Grid Points']]],
18+
['post_20process_15',['Testing Post Process',['../md_testing.html#autotoc_md94',1,'']]],
19+
['power9_20cpu_16',['Power9 CPU',['../md_expectedPerformance.html#autotoc_md67',1,'IBM Power9 CPU'],['../md_expectedPerformance.html#autotoc_md72',1,'IBM Power9 CPU']]],
20+
['primitive_20variables_17',['Analytical Definition of Primitive Variables',['../md_case.html#autotoc_md8',1,'']]],
21+
['primitive_20variables_20ordering_18',['Primitive Variables Ordering',['../md_case.html#autotoc_md26',1,'']]],
22+
['problem_201d_19',['problem 1D',['../md_examples.html#autotoc_md52',1,'Lax shock tube problem (1D)'],['../md_examples.html#autotoc_md28',1,'Shu-Osher problem (1D)'],['../md_examples.html#autotoc_md37',1,'Titarev-Toro problem (1D)']]],
23+
['problem_202d_20',['Lid-Driven Cavity Problem (2D)',['../md_examples.html#autotoc_md46',1,'']]],
24+
['problem_202d_21',['Isentropic vortex problem (2D)',['../md_examples.html#autotoc_md31',1,'']]],
25+
['procedure_22',['Procedure',['../md_visualization.html#autotoc_md96',1,'']]],
26+
['process_23',['Testing Post Process',['../md_testing.html#autotoc_md94',1,'']]],
27+
['profiling_24',['GPU Profiling',['../md_running.html#autotoc_md87',1,'']]]
2728
];

documentation/search/all_17.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ var searchData=
88
['remote_20visualization_20on_20pace_20phoenix_5',['Remote Visualization on PACE Phoenix',['../md_visualization.html#autotoc_md98',1,'']]],
99
['restarting_20cases_6',['Restarting Cases',['../md_running.html#autotoc_md90',1,'']]],
1010
['result_7',['Result',['../md_examples.html#autotoc_md30',1,'Result'],['../md_examples.html#autotoc_md39',1,'Result'],['../md_examples.html#autotoc_md42',1,'Result'],['../md_examples.html#autotoc_md51',1,'Result'],['../md_examples.html#autotoc_md54',1,'Result']]],
11-
['results_8',['Performance Results',['../md_expectedPerformance.html',1,'']]],
12-
['riemann_20test_202d_9',['2D Riemann Test (2D)',['../md_examples.html#autotoc_md55',1,'']]],
13-
['running_10',['Running',['../md_running.html',1,'']]],
14-
['running_20an_20example_20case_11',['Running an Example Case',['../md_getting-started.html#autotoc_md78',1,'']]],
15-
['running_20pace_20paraview_20server_12',['Step 3: Running pace-paraview-server',['../md_visualization.html#autotoc_md101',1,'']]],
16-
['running_20the_20test_20suite_13',['Running the Test Suite',['../md_getting-started.html#autotoc_md77',1,'']]],
17-
['running_2emd_14',['running.md',['../running_8md.html',1,'']]],
18-
['runs_15',['Example Runs',['../md_running.html#autotoc_md91',1,'']]],
19-
['runtime_16',['1. Runtime',['../md_case.html#autotoc_md5',1,'']]]
11+
['riemann_20test_202d_8',['2D Riemann Test (2D)',['../md_examples.html#autotoc_md55',1,'']]],
12+
['running_9',['Running',['../md_running.html',1,'']]],
13+
['running_20an_20example_20case_10',['Running an Example Case',['../md_getting-started.html#autotoc_md78',1,'']]],
14+
['running_20pace_20paraview_20server_11',['Step 3: Running pace-paraview-server',['../md_visualization.html#autotoc_md101',1,'']]],
15+
['running_20the_20test_20suite_12',['Running the Test Suite',['../md_getting-started.html#autotoc_md77',1,'']]],
16+
['running_2emd_13',['running.md',['../running_8md.html',1,'']]],
17+
['runs_14',['Example Runs',['../md_running.html#autotoc_md91',1,'']]],
18+
['runtime_15',['1. Runtime',['../md_case.html#autotoc_md5',1,'']]]
2019
];

0 commit comments

Comments
 (0)