diff --git a/doc/sphinx/10_Microbenchmarks/M1_STREAM/STREAM.rst b/doc/sphinx/10_Microbenchmarks/M1_STREAM/STREAM.rst index 73f059e1..eb0315df 100644 --- a/doc/sphinx/10_Microbenchmarks/M1_STREAM/STREAM.rst +++ b/doc/sphinx/10_Microbenchmarks/M1_STREAM/STREAM.rst @@ -76,4 +76,21 @@ Dependent Variable(s) 2. A minimum number of cores and threads that achieves MAX_BW. MIN_CT Example Results -=============== \ No newline at end of file +=============== + +CTS-1 Snow +----------- + +.. csv-table:: STREAM microbenchmark bandwidth measurement + :file: stream-cts1_ats5intel-oneapi-openmpi.csv + :align: center + :widths: 10, 10 + :header-rows: 1 + +.. figure:: cpu_cts1.png + :align: center + :scale: 50% + :alt: STREAM microbenchmark bandwidth measurement + +ATS-3 Rocinante HBM +------------------- \ No newline at end of file diff --git a/doc/sphinx/10_Microbenchmarks/M1_STREAM/cpu.gp b/doc/sphinx/10_Microbenchmarks/M1_STREAM/cpu.gp index e4bb7155..36f35a67 100644 --- a/doc/sphinx/10_Microbenchmarks/M1_STREAM/cpu.gp +++ b/doc/sphinx/10_Microbenchmarks/M1_STREAM/cpu.gp @@ -1,13 +1,13 @@ #!/usr/bin/gnuplot +#STREAM set terminal pngcairo enhanced size 1024, 768 dashed font 'Helvetica,18' -set output "cpu_66M.png" +set output "cpu_cts1.png" -set title "Branson Strong Scaling Performance on CTS-1, 66M particles" font "serif,22" +set title "STREAM Single node bandwidth" font "serif,22" set xlabel "No. Processing Elements" -set ylabel "Figure of Merit (particles/sec)" +set ylabel "Figure of Merit Triad (MB/s)" set xrange [1:64] -set key left top set logscale x 2 set logscale y 2 @@ -21,15 +21,9 @@ 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 "cpu_66M.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 - -set output "cpu_133M.png" -set title "Branson Strong Scaling Performance on CTS-1, 133M particles" font "serif,22" -plot "cpu_133M.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 - - -set output "cpu_200M.png" -set title "Branson Strong Scaling Performance on CTS-1, 200M particles" font "serif,22" -plot "cpu_200M.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 +plot "stream-cts1_ats5intel-oneapi-openmpi.csv" using 1:2 with linespoints linestyle 1 +# set output "cpu_133M.png" +# set title "Branson Strong Scaling Performance on CTS-1, 133M particles" font "serif,22" +# plot "cpu_133M.csv" using 1:2 with linespoints linestyle 1, "" using 1:3 with line linestyle 2 diff --git a/doc/sphinx/10_Microbenchmarks/M1_STREAM/stream-cts1_ats5intel-oneapi-openmpi.csv b/doc/sphinx/10_Microbenchmarks/M1_STREAM/stream-cts1_ats5intel-oneapi-openmpi.csv new file mode 100644 index 00000000..1eeddf3c --- /dev/null +++ b/doc/sphinx/10_Microbenchmarks/M1_STREAM/stream-cts1_ats5intel-oneapi-openmpi.csv @@ -0,0 +1,8 @@ +No. Cores,Bandwidth +1,10919.0 +2,10809.5 +4,10481.3 +8,8326.0 +16,7954.7 +32,4983.1 +36,3023.6 diff --git a/utils/pavparse b/utils/pavparse index 2b8d52bd..859fbe36 100755 --- a/utils/pavparse +++ b/utils/pavparse @@ -35,7 +35,8 @@ def flatten_dict(result, prefix=''): return aa, bb -def js_list_to_df(results_list): + +def js_list_to_df(results_list, flatkeys): result_collection=[] for i, result in enumerate(results_list): @@ -45,13 +46,11 @@ def js_list_to_df(results_list): while b_dict: bd1={} if i==0: print(f"PREFIX: {prefix}") - for bk, bv in b_dict.items(): - # if i==0: - # print(f"KEY: {bk}") - # print(f"VAL: {bv}") - + + for bk, bv in b_dict.items(): prefixbk = prefix - if not bk == 'var': + if not bk == 'var': + prefixbk=prefix+bk+'.' a_dictnew, b_dictnew = flatten_dict(bv, prefixbk) a_dict.update(a_dictnew) @@ -60,6 +59,14 @@ def js_list_to_df(results_list): b_dict = bd1.copy() prefix=prefixbk + print(flatkeys) + if flatkeys: + oldkeys = [k for k in a_dict.keys() if flatkeys in k] + print(oldkeys) + newkeys = [k.split('.')[-1] for k in oldkeys] + for (o, n) in zip(oldkeys, newkeys): + a_dict[n] = a_dict[o] + result_collection.append(pd.Series(a_dict)) return pd.DataFrame(result_collection) @@ -112,6 +119,9 @@ def args(): parser.add_argument('-it', '--index_title', type=str, default=None, help="Change the title of the index (output x column).") + parser.add_argument('-d', '--flatten', type=str, default=None, + help="Flatten a key to get at the nested values below uniformally.") + return parser if __name__ == '__main__': @@ -129,7 +139,7 @@ if __name__ == '__main__': rsltchoose = [k for k in keepers if '=' in k] rsltkeep.append(index) - rslt_df = js_list_to_df(jsin) + rslt_df = js_list_to_df(jsin, arguments.flatten) sys_name = rslt_df.sys_name.iloc[0] test_list = rslt_df.name.iloc[0].split('.')[:2] @@ -151,7 +161,8 @@ if __name__ == '__main__': for rchoose in rsltchoose: key, val = rchoose.split('=') keptvals.append(val) - rslt_df=rslt_df.loc[rslt_df[key] == val] + + rslt_df = rslt_df.loc[rslt_df[key] == val] test_list.extend(keptvals) test_title = "-".join(test_list) @@ -172,7 +183,7 @@ if __name__ == '__main__': if index_title: grouped_df.index.name = index_title if value_title: - grouped_df.columns=value_title + grouped_df.columns = value_title grouped_dfs[gtitle] = grouped_df.squeeze().map(fmt.format) df_mean[gtitle] = grouped_df.mean().values[0]