diff --git a/doc/sphinx/06_umt/spp1_strong_scaling_cts2.csv b/doc/sphinx/06_umt/spp1_strong_scaling_cts2.csv index 96c846c1..8af4b743 100644 --- a/doc/sphinx/06_umt/spp1_strong_scaling_cts2.csv +++ b/doc/sphinx/06_umt/spp1_strong_scaling_cts2.csv @@ -1,113 +1,9 @@ -Cores, Actual, Ideal -1,19698510.52,19698510.52 -2,27160628.25,39397021.03 -3,40479813.88,59095531.55 -4,54727290.08,78794042.07 -5,68616446.84,98492552.59 -6,82197798.96,118191063.1 -7,96212914.42,137889573.6 -8,109870795.7,157588084.1 -9,118887361.1,177286594.7 -10,129166721.8,196985105.2 -11,144761944.3,216683615.7 -12,150322737.7,236382126.2 -13,172821321.9,256080636.7 -14,186012781,275779147.2 -15,196616933.8,295477657.8 -16,212763099.6,315176168.3 -17,219126146.1,334874678.8 -18,229226683.6,354573189.3 -19,240720199,374271699.8 -20,256540771.6,393970210.3 -21,269099627.2,413668720.9 -22,281695319.5,433367231.4 -23,295267486.4,453065741.9 -24,303894472.4,472764252.4 -25,309520979.7,492462762.9 -26,316713529.3,512161273.5 -27,330857466.8,531859784 -28,345645811.2,551558294.5 -29,357291567,571256805 -30,368109975,590955315.5 -31,381184909,610653826 -32,392442202.8,630352336.6 -33,390327945.5,650050847.1 -34,401567923.5,669749357.6 -35,412556210,689447868.1 -36,423322249.6,709146378.6 -37,435737650.3,728844889.1 -38,446760135.8,748543399.7 -39,459080548,768241910.2 -40,467545485.1,787940420.7 -41,469383474.5,807638931.2 -42,468649818.9,827337441.7 -43,478189570.5,847035952.2 -44,493713929.5,866734462.8 -45,504350801.6,886432973.3 -46,512351724.9,906131483.8 -47,526101175.8,925829994.3 -48,536408020.3,945528504.8 -49,525125966.3,965227015.4 -50,530347279.6,984925525.9 -51,541829301.7,1004624036 -52,547627555.7,1024322547 -53,560572337.6,1044021057 -54,573147630.4,1063719568 -55,582960363.7,1083418078 -56,592853890.2,1103116589 -57,579116154.4,1122815099 -58,577985982.2,1142513610 -59,586626392.2,1162212121 -60,601401914.1,1181910631 -61,608134911.6,1201609142 -62,621509915.5,1221307652 -63,629115464.7,1241006163 -64,635776117.7,1260704673 -65,620347289.9,1280403184 -66,616388979.5,1300101694 -67,625006438,1319800205 -68,639943975.6,1339498715 -69,649199746.9,1359197226 -70,659837034.7,1378895736 -71,662641438.3,1398594247 -72,674675799.6,1418292757 -73,657437843.6,1437991268 -74,650275877.8,1457689778 -75,664251365.4,1477388289 -76,671246750.6,1497086799 -77,682950053.9,1516785310 -78,687288741.7,1536483820 -79,703224447.6,1556182331 -80,706079795.5,1575880841 -81,690979702.2,1595579352 -82,687334027.8,1615277862 -83,690962870.3,1634976373 -84,696631594.8,1654674883 -85,700932424.8,1674373394 -86,717274294.8,1694071904 -87,718770959.7,1713770415 -88,730588310,1733468926 -89,709229401.4,1753167436 -90,702705862,1772865947 -91,703097353.8,1792564457 -92,715861951.1,1812262968 -93,728324014.9,1831961478 -94,739718233.4,1851659989 -95,741885143.4,1871358499 -96,753529078.9,1891057010 -97,725387441.7,1910755520 -98,723800947.8,1930454031 -99,716555149.5,1950152541 -100,725661052.9,1969851052 -101,739501500.9,1989549562 -102,732965916,2009248073 -103,751634412.4,2028946583 -104,768913530.9,2048645094 -105,735838140.6,2068343604 -106,720771843.7,2088042115 -107,726831743.3,2107740625 -108,739523378.8,2127439136 -109,748848434.7,2147137646 -110,752189251.2,2166836157 -111,760511301.9,2186534667 -112,765095570.9,2206233178 \ No newline at end of file +Cores,Actual,Ideal +1,34062747.19,34062747.19 +4,90370192.43,136250988.8 +8,147031658.3,272501977.5 +16,227168375.5,545003955 +32,258113176.7,1090007910 +64,251717866.8,2180015820 +96,415506468.8,3270023730 +112,420569616.1,3815027685 diff --git a/doc/sphinx/06_umt/spp1_strong_scaling_cts2.gp b/doc/sphinx/06_umt/spp1_strong_scaling_cts2.gp old mode 100644 new mode 100755 index 4b29392a..25ea879f --- a/doc/sphinx/06_umt/spp1_strong_scaling_cts2.gp +++ b/doc/sphinx/06_umt/spp1_strong_scaling_cts2.gp @@ -7,7 +7,7 @@ set output "spp1_strong_scaling_cts2.png" set xlabel "Num Cores" set ylabel "Figure of Merit (unknowns/sec)" -set xrange [8:112] +set xrange [1:112] set key left top set logscale x 2 @@ -22,5 +22,5 @@ set key autotitle columnheader set style line 1 linetype 6 dashtype 1 linecolor rgb "#FF0000" linewidth 2 pointtype 6 pointsize 3 set style line 2 linetype 1 dashtype 2 linecolor rgb "#FF0000" linewidth 2 -plot "spp1_strong_scaling_cts2_abridged.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 +plot "spp1_strong_scaling_cts2.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 diff --git a/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.csv b/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.csv index 60a9666d..1fa082f4 100644 --- a/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.csv +++ b/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.csv @@ -1,6 +1,7 @@ Cores, Actual, Ideal -8,1.753e+08,1.753e+08 -32,4.184e+08,7.012e+08 -56,6.608e+08,1.227e+09 -88,8.835e+08,1.928e+09 -112,1.043e+09,2.542e+09 +1,34062747.19,34062747.19 +8,80213667.01,143406814.6 +32,154566343.6,573627258.2 +56,157250754.2,1003847702 +88,230101345,1577474960 +112,296690575.2,2007695404 diff --git a/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.gp b/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.gp new file mode 100755 index 00000000..e1af8acd --- /dev/null +++ b/doc/sphinx/06_umt/spp1_strong_scaling_cts2_abridged.gp @@ -0,0 +1,26 @@ +#!/usr/bin/gnuplot +set terminal pngcairo enhanced size 1024, 768 dashed font 'Helvetica,18' +set output "spp1_strong_scaling_cts2_abridged.png" + +# no title needed since we will caption the figure +#set title "Strong scaling of SPP 1 CTS-2" font "serif,22" +set xlabel "Num Cores" +set ylabel "Figure of Merit (unknowns/sec)" + +set xrange [8:112] +set key left top + +set logscale x 2 +set logscale y 2 + +set grid +show grid + +set datafile separator comma +set key autotitle columnheader + +set style line 1 linetype 6 dashtype 1 linecolor rgb "#FF0000" linewidth 2 pointtype 6 pointsize 3 +set style line 2 linetype 1 dashtype 2 linecolor rgb "#FF0000" linewidth 2 + +plot "spp1_strong_scaling_cts2_abridged.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 + diff --git a/doc/sphinx/06_umt/spp1_throughput_V100.csv b/doc/sphinx/06_umt/spp1_throughput_V100.csv index ab4171a2..5bd437d8 100644 --- a/doc/sphinx/06_umt/spp1_throughput_V100.csv +++ b/doc/sphinx/06_umt/spp1_throughput_V100.csv @@ -1,9 +1,7 @@ -unknowns, throughput -884736,4.06E+06 -7077888,3.00E+07 -23887872,8.22E+07 -56623104,1.43E+08 -110592000,2.11E+08 -191102976,2.57E+08 -303464448,2.98E+08 -452984832,3.15E+08 +unknowns,throughput +1769472,10209722.74 +14155776,70271621.35 +47775744,174485935.3 +113246208,271737705.3 +221184000,354227397.6 +382205952,404820271.5 diff --git a/doc/sphinx/06_umt/spp1_throughput_V100.csv.deprecated b/doc/sphinx/06_umt/spp1_throughput_V100.csv.deprecated new file mode 100644 index 00000000..ab4171a2 --- /dev/null +++ b/doc/sphinx/06_umt/spp1_throughput_V100.csv.deprecated @@ -0,0 +1,9 @@ +unknowns, throughput +884736,4.06E+06 +7077888,3.00E+07 +23887872,8.22E+07 +56623104,1.43E+08 +110592000,2.11E+08 +191102976,2.57E+08 +303464448,2.98E+08 +452984832,3.15E+08 diff --git a/doc/sphinx/06_umt/spp1_throughput_V100.gp b/doc/sphinx/06_umt/spp1_throughput_V100.gp old mode 100644 new mode 100755 diff --git a/doc/sphinx/06_umt/spp2_strong_scaling_cts2.csv b/doc/sphinx/06_umt/spp2_strong_scaling_cts2.csv new file mode 100644 index 00000000..98108035 --- /dev/null +++ b/doc/sphinx/06_umt/spp2_strong_scaling_cts2.csv @@ -0,0 +1,113 @@ +Cores,Actual,Ideal +1,17925851.82,17925851.82 +2,27435363.32,35851703.64 +3,32020817.69,53777555.46 +4,47239328.13,71703407.28 +5,48844923.33,89629259.1 +6,55587536.86,107555110.9 +7,56964618.37,125480962.7 +8,80213667.01,143406814.6 +9,68722267.39,161332666.4 +10,75095488.53,179258518.2 +11,78961814.2,197184370 +12,94395276.6,215110221.8 +13,83158952.19,233036073.7 +14,86902849.7,250961925.5 +15,91279088.16,268887777.3 +16,112652799.5,286813629.1 +17,101049168.4,304739480.9 +18,119482796.8,322665332.8 +19,101967395.4,340591184.6 +20,121521455.9,358517036.4 +21,111589974.9,376442888.2 +22,110264288.4,394368740 +23,114443972.6,412294591.9 +24,138982938,430220443.7 +25,127541312.4,448146295.5 +26,102939840.3,466072147.3 +27,153518858.6,483997999.1 +28,124670950.1,501923851 +29,111899003.3,519849702.8 +30,136030065.6,537775554.6 +31,120739951.8,555701406.4 +32,154566343.6,573627258.2 +33,127325285.7,591553110.1 +34,133701008.2,609478961.9 +35,144402044,627404813.7 +36,168416486.8,645330665.5 +37,132862017.7,663256517.3 +38,135478730.7,681182369.2 +39,119125061.2,699108221 +40,162188238.1,717034072.8 +41,115727205.4,734959924.6 +42,145362698.1,752885776.4 +43,123487647,770811628.3 +44,149533687,788737480.1 +45,159280709,806663331.9 +46,149322725.2,824589183.7 +47,148926437.2,842515035.5 +48,158436928.4,860440887.4 +49,147276588.7,878366739.2 +50,181758900.1,896292591 +51,158649555.9,914218442.8 +52,138540398.3,932144294.6 +53,141701886.6,950070146.5 +54,164731418.3,967995998.3 +55,145993181.3,985921850.1 +56,157250754.2,1003847702 +57,151960268.6,1021773554 +58,135849433.5,1039699406 +59,143178834.5,1057625257 +60,195384943,1075551109 +61,151841985.6,1093476961 +62,158978837.8,1111402813 +63,181954179.6,1129328665 +64,205506112.8,1147254516 +65,149315373.8,1165180368 +66,175392178.6,1183106220 +67,157017282.8,1201032072 +68,166757797.3,1218957924 +69,143125323.2,1236883776 +70,159323055.1,1254809627 +71,150699696,1272735479 +72,177587354,1290661331 +73,170217640.1,1308587183 +74,179052497.4,1326513035 +75,184496273.2,1344438887 +76,178120120.4,1362364738 +77,145610631.7,1380290590 +78,161912985.5,1398216442 +79,169113104.5,1416142294 +80,244397666.8,1434068146 +81,210115736.9,1451993997 +82,181152680,1469919849 +83,174647078.2,1487845701 +84,227335265.9,1505771553 +85,193113989.4,1523697405 +86,198261643.8,1541623257 +87,194158113.5,1559549108 +88,230101345,1577474960 +89,200083104.7,1595400812 +90,240832294.6,1613326664 +91,182371816.2,1631252516 +92,217781585.5,1649178367 +93,223182959.5,1667104219 +94,244031131.9,1685030071 +95,210902507.1,1702955923 +96,268751049.2,1720881775 +97,204791785.1,1738807627 +98,233093759,1756733478 +99,225002252.4,1774659330 +100,291158037.8,1792585182 +101,233511411.3,1810511034 +102,243750252.2,1828436886 +103,234683224.3,1846362737 +104,234947331.7,1864288589 +105,277750848.5,1882214441 +106,229575652,1900140293 +107,228018141.4,1918066145 +108,264374446.9,1935991997 +109,219520294.3,1953917848 +110,255498853.1,1971843700 +111,231346021.6,1989769552 +112,296690575.2,2007695404 diff --git a/doc/sphinx/06_umt/spp2_strong_scaling_cts2.gp b/doc/sphinx/06_umt/spp2_strong_scaling_cts2.gp new file mode 100755 index 00000000..b427ff95 --- /dev/null +++ b/doc/sphinx/06_umt/spp2_strong_scaling_cts2.gp @@ -0,0 +1,26 @@ +#!/usr/bin/gnuplot +set terminal pngcairo enhanced size 1024, 768 dashed font 'Helvetica,18' +set output "spp2_strong_scaling_cts2.png" + +# no title needed since we will caption the figure +#set title "Strong scaling of SPP 1 CTS-2" font "serif,22" +set xlabel "Num Cores" +set ylabel "Figure of Merit (unknowns/sec)" + +set xrange [1:112] +set key left top + +set logscale x 2 +set logscale y 2 + +set grid +show grid + +set datafile separator comma +set key autotitle columnheader + +set style line 1 linetype 6 dashtype 1 linecolor rgb "#FF0000" linewidth 2 pointtype 6 pointsize 3 +set style line 2 linetype 1 dashtype 2 linecolor rgb "#FF0000" linewidth 2 + +plot "spp2_strong_scaling_cts2.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 + diff --git a/doc/sphinx/06_umt/spp2_strong_scaling_cts2_abridged.csv b/doc/sphinx/06_umt/spp2_strong_scaling_cts2_abridged.csv new file mode 100644 index 00000000..788c7770 --- /dev/null +++ b/doc/sphinx/06_umt/spp2_strong_scaling_cts2_abridged.csv @@ -0,0 +1,7 @@ +Cores, Actual, Ideal +1,17925851.82,17925851.82 +8,147031658.3,272501977.5 +32,258113176.7,1090007910 +56,287721496.4,1907513843 +88,266038409.1,2997521753 +112,420569616.1,3815027685 diff --git a/doc/sphinx/06_umt/spp2_strong_scaling_cts2_abridged.gp b/doc/sphinx/06_umt/spp2_strong_scaling_cts2_abridged.gp new file mode 100755 index 00000000..59e589f9 --- /dev/null +++ b/doc/sphinx/06_umt/spp2_strong_scaling_cts2_abridged.gp @@ -0,0 +1,26 @@ +#!/usr/bin/gnuplot +set terminal pngcairo enhanced size 1024, 768 dashed font 'Helvetica,18' +set output "spp2_strong_scaling_cts2_abridged.png" + +# no title needed since we will caption the figure +#set title "Strong scaling of SPP 2 CTS-2" font "serif,22" +set xlabel "Num Cores" +set ylabel "Figure of Merit (unknowns/sec)" + +set xrange [8:112] +set key left top + +set logscale x 2 +set logscale y 2 + +set grid +show grid + +set datafile separator comma +set key autotitle columnheader + +set style line 1 linetype 6 dashtype 1 linecolor rgb "#FF0000" linewidth 2 pointtype 6 pointsize 3 +set style line 2 linetype 1 dashtype 2 linecolor rgb "#FF0000" linewidth 2 + +plot "spp2_strong_scaling_cts2_abridged.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 + diff --git a/doc/sphinx/06_umt/spp2_throughput_V100.csv b/doc/sphinx/06_umt/spp2_throughput_V100.csv new file mode 100644 index 00000000..f28ca083 --- /dev/null +++ b/doc/sphinx/06_umt/spp2_throughput_V100.csv @@ -0,0 +1,9 @@ +unknowns,throughput,,,,,,,,, +2654208,21676983.21,,,,,,,,, +6291456,45701699.5,,,,,,,,, +12288000,79225954.28,,,,,,,,, +21233664,114537827.7,,,,,,,,, +50331648,160341978,,,,,,,,, +130842624,200104616.1,,,,,,,,, +215973888,214659364.2,,,,,,,,, +331776000,219351111.1,,,,,,,,, diff --git a/doc/sphinx/06_umt/spp2_throughput_V100.gp b/doc/sphinx/06_umt/spp2_throughput_V100.gp new file mode 100755 index 00000000..6f3e8793 --- /dev/null +++ b/doc/sphinx/06_umt/spp2_throughput_V100.gp @@ -0,0 +1,28 @@ +#!/usr/bin/gnuplot +set terminal pngcairo enhanced size 1024, 768 dashed font 'Helvetica,18' +set output "spp2_throughput_V100.png" + +# no title needed since we will caption the figure +#set title "Power9/V100 single GPU throughput as a function of problem size" font "serif,22" +set xlabel "Num Unknowns" +set ylabel "Figure of Merit (unknowns/sec)" + +# allow autoscaling +#set xrange [1:128] +set key left top + +# linear axes for throughput plots +#set logscale x 2 +#set logscale y 2 + +set grid +show grid + +set datafile separator comma +set key autotitle columnheader + +set style line 1 linetype 6 dashtype 1 linecolor rgb "#FF0000" linewidth 2 pointtype 6 pointsize 3 +set style line 2 linetype 1 dashtype 2 linecolor rgb "#FF0000" linewidth 2 + +plot "spp2_throughput_V100.csv" using 1:2 with linespoints linestyle 1 + diff --git a/doc/sphinx/06_umt/umt.rst b/doc/sphinx/06_umt/umt.rst index c4953094..6a23cde8 100644 --- a/doc/sphinx/06_umt/umt.rst +++ b/doc/sphinx/06_umt/umt.rst @@ -18,31 +18,34 @@ Characteristics Problem ------- -The benchmark problem is a single node sweep performance problem (SPP) -on a 3D unstructured mesh. Two variants of interest exist: - -- SPP 1, a configuration with a high number of unknowns per spatial - element with 72 directions and 128 energy bins to solve per mesh - cell. -- SPP 2, a configuration with a low number of unknowns per spatial - element with 32 directions and 16 energy bins to solve per mesh +The benchmark problem is a single node sweep performance problem (SPP) on a 3D unstructured mesh. Two variants of interest exist: + +- SPP 1, a configuration with a high number of unknowns per spatial element with 72 directions and 128 energy bins to solve per + mesh cell. +- SPP 2, a configuration with a low number of unknowns per spatial element with 32 directions and 16 energy bins to solve per mesh cell. SPP 2 is still a work in progress. Figure of Merit --------------- -The Figure of Merit is defined as the number of unknowns solved per -second. The number of unknowns solved by UMT is defined as: +The Figure of Merit is defined as the number of unknowns solved per second, which is calculated by: .. code-block:: - number of unknowns = <# mesh cells> * <# sub-cell 'corner' elements per cell> * - <# directions> * + number of unknowns = <# mesh cells * 8> * <# directions> * + +Explanation on the '# mesh cells * 8': UMT further decomposes a mesh cell into 'corner' sub-cell spatial elements. There are 8 'corners' per cell in a 3D mesh. + +Source code modifications +------------------------- -The number of corners in a mesh cell is 8 for the 3D unstructured mesh -problem. (For a 2D mesh problem it would be 4.) +Please see :ref:`GlobalRunRules` for general guidance on allowed modifications. +For UMT, we define the following restrictions on source code modifications: +Solver input in the test driver includes arrays such as 'thermo_density' and 'electron_specific_heat'. These arrays currently contain a constant +value across the array, as the benchmarks use a simplified single material problem. For example, 1.31 for thermo_density. These arrays should not +be collapsed to a scalar, as production problems of interest will have a spread of values in these arrays for multi-material problems. Building ======== @@ -62,6 +65,7 @@ Build Requirements * C/C++ compiler(s) with support for C++11 and Fortran compiler(s) with support for F2003. * `CMake 3.18X `_ +* `Conduit v0.8.9 (pending), or the develop branch as of 1/1/2024. `_ * `Spack `_ (optional) * MPI 3.0+ @@ -70,52 +74,50 @@ Build Requirements * `mpich `_ * `mvapich2 `_ -Additional third party libraries requirements are noted in `DEPENDENCIES.md `_ +* For CPU threading support, a Fortran compiler that support OpenMP 4.5, and an MPI implementation that supports MPI_THREAD_MULTIPLE. +* For GPU support, a Fortran compiler with full support for OpenMP 4.5 target offloading. -If OpenMP threading is used, the MPI implementation must support MPI_THREAD_MULTIPLE. +Instructions for building the code can be found in the UMT github repo under +`BUILDING.md `_ -Instructions for building the code can be found in the UMT github repo -under `BUILDING.md `_ - -Generating the problem input -============================ +Running +======= -For strong scaling on a CPU the memory footprint of UMT should be between 45%-55% of the computational device's main memory. -Python scripts in the github repo /benchmarks directory are provided to assist in generating a series of runs with UMT. +To run the test problems, select SPP 1 or SPP 2 using the -b command line switch. Select the mesh size to generate by using +'-d x,y,z' where x,y,z is the number of tiles to produce in each cartesian axis. When generating a mesh, the dimensions should +be equiaxed, within a factor of 1.2. -Example of creating a mesh sized to use 128GB of memory (50% of a test node with 256GB). -Will refine the mesh once, splitting each mesh cell edge into 27 edges and produce a mesh called 'refined_mesh.mesh'. +For example -d 5,5,5 is an ideal dimensioned mesh. A mesh dimensioned as -d 1,1,125 would +be an example of the most unideal mesh, which will negatively impact performance and not represent cases of interest +for UMT. -.. code-block:: - - makeUnstructuredBox -r 27 -o umt_spp1.mesh +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. -Running -======= +Benchmark problems should target roughly half the node memory (for CPUs) or half the device memory (for GPUs). -To run test problem, select SPP 1 or SPP 2 using the -b command line switch. -For example, +For example, to create a global mesh of size 20,20,20 tiles: .. code-block:: - mpirun -n 1 test_driver -c 1 -b $num -i ./refined_mesh.mesh + mpirun -n 1 test_driver -B global -d 20,20,20 -b $num where num = 1 for SPP 1 or num = 2 for SPP 2. Example FOM Results =================== -Results from Branson are provided on the following systems: +Results from UMT are provided on the following systems: * Crossroads (see :ref:`GlobalSystemATS3`) * Sierra (see :ref:`GlobalSystemATS2`) -Strong scaling data for SPP 1 on Crossroads is shown in the table and figure below +Strong scaling data for SPP 1 and 2 on Crossroads is shown in the tables and figures below .. csv-table:: Strong scaling of SPP 1 on Crossroads :file: spp1_strong_scaling_cts2_abridged.csv :align: center - :widths: 8, 10, 10 + :widths: auto :header-rows: 1 .. figure:: spp1_strong_scaling_cts2.png @@ -123,55 +125,57 @@ Strong scaling data for SPP 1 on Crossroads is shown in the table and figure bel :align: center :scale: 50% - Strong scaling of SPP 1 on Crossroads - -.. todo csv-table:: SPP #2 on CTS-2 +.. csv-table:: SPP #2 on CTS-2 :file: spp2_strong_scaling_cts2_abridged.csv :align: center - :widths: 8, 10, 10 + :widths: auto :header-rows: 1 -.. todo figure:: spp2_strong_scaling_cts2.png - :alt: CPU Strong Scaling (Fixed problem size, SPP #2) +.. figure:: spp2_strong_scaling_cts2.png + :alt: Strong scaling of SPP 2 on Crossroads :align: center :scale: 50% Strong scaling of SPP 2 on CTS-2 -Throughput study of SPP 1 performance on Sierra, single GPU, as a function of problem size: +Throughput study of SPP 1 and 2 performance on Sierra, single GPU, as a function of problem size: -.. TODO - add runtime in this table?? .. csv-table:: Throughput for SPP 1 on Sierra :file: spp1_throughput_V100.csv :align: center - :widths: 10, 10 + :widths: auto :header-rows: 1 .. figure:: spp1_throughput_V100.png :alt: Throughput of SPP 1 on Sierra :align: center + :scale: 50% - Throughput of SPP 1 on Sierra - -.. note:: - Performance data for SPP 2 coming soon. - -.. TODO - add runtime in this table?? -.. todo csv-table:: SPP 2 throughput on Power9 and V100 - :file: umtsp2_throughput_gpu.csv +.. csv-table:: Throughput for SPP 2 on Sierra + :file: spp2_throughput_V100.csv :align: center - :widths: 10, 10, 10 + :widths: auto :header-rows: 1 -.. todo figure:: umtsp2-throughput_gpu.png - :alt: SPP 2 GPU throughput as a function of problem size +.. figure:: spp2_throughput_V100.png + :alt: Throughput of SPP 2 on Sierra :align: center + :scale: 50% + Verification of Results ======================= -Correctness on the SPP 1 and SPP 2 problems are checked by verifying that all incoming and outgoing energy is properly tracked by the solver. -The test driver will automatically check this value at the end of the run and output if the test is a pass or fail. +UMT will perform a verification step at the end of the benchmark problem and print out a PASS or FAIL. + +Example output: + +.. code-block:: + + RESULT CHECK PASSED: Energy check (this is relative to total energy) 1.26316e-15 within tolerance of +/- 1e-09; check './UMTSPP1.csv' for tally details + +Additional diagnostic data on this energy check, as well as throughput and memory use, is provided in a UMTSPP#.csv file that +UMT writes out at run end. References ========== diff --git a/doc/sphinx/06_umt/umtsp2_strong_scaling_cpu.csv b/doc/sphinx/06_umt/umtsp2_strong_scaling_cpu.csv deleted file mode 100644 index fbb7c718..00000000 --- a/doc/sphinx/06_umt/umtsp2_strong_scaling_cpu.csv +++ /dev/null @@ -1,3 +0,0 @@ -Cores, Actual, Ideal - -TODO - run this. diff --git a/doc/sphinx/06_umt/umtsp2_throughput_gpu.csv b/doc/sphinx/06_umt/umtsp2_throughput_gpu.csv deleted file mode 100644 index e0131a56..00000000 --- a/doc/sphinx/06_umt/umtsp2_throughput_gpu.csv +++ /dev/null @@ -1,22 +0,0 @@ -unknowns, throughput -49152,120022.0986 -393216,1217089.688 -1327104,3999486.093 -3145728,9431417.414 -6144000,16331035.97 -10616832,26221540.93 -16859136,41053108.77 -25165824,47258709.76 -35831808,57249118.34 -49152000,53069635.92 -65421312,53391475.46 -84934656,57150762.59 -107986944,61442310.83 -134873088,52869974.38 -165888000,55939987.49 -201326592,54680094.61 -241483776,58094977.75 -286654464,56477371.49 -337133568,56763670.5 -393216000,56686957.8 -455196672,56063165.34 diff --git a/umt b/umt index a6e8898d..ed70b58e 160000 --- a/umt +++ b/umt @@ -1 +1 @@ -Subproject commit a6e8898d34b9ea3ad6cd5603ddfd44e05c53b7ec +Subproject commit ed70b58e77b6dfb29b6b7f01d53bde2a02b7f218