From e936b6f9b1bd91c61b0e1ba18af92af82ca369c6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 18:09:45 -0400 Subject: [PATCH 01/14] make names better for plotting --- libexec/scaling | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/libexec/scaling b/libexec/scaling index 149f5d821b..9d035bbde0 100755 --- a/libexec/scaling +++ b/libexec/scaling @@ -47,20 +47,20 @@ def benchmark(cfg, threads): exiting = False elif len(cols) > 20: if line.find('Processed') >= 0: - benchmarks['event'] = float(cols[12]) + benchmarks['Event'] = float(cols[12]) elif exiting: # catch-all for services: if len(cols) > 14: - if 'services' not in benchmarks: - benchmarks['services'] = collections.OrderedDict() - benchmarks['services'][cols[2]] = float(cols[14]) + if 'Services' not in benchmarks: + benchmarks['Services'] = collections.OrderedDict() + benchmarks['Services'][cols[2]] = float(cols[14]) # FIXME: what are these, why don't they add up? elif line.find('Average processing time') >= 0: - benchmarks['avg'] = float(cols[6]) + benchmarks['Avg'] = float(cols[6]) elif line.find('Total processing time') >= 0: - benchmarks['total'] = float(cols[6]) + benchmarks['Total'] = float(cols[6]) elif line.find('Total orchestrator time') >= 0: - benchmarks['orch'] = float(cols[6]) + benchmarks['Orch'] = float(cols[6]) except ValueError: pass return benchmarks @@ -69,16 +69,16 @@ def table(benchmarks): table = [] header = [ 'threads' ] b = benchmarks[0][1] - header.extend([x for x in b if x != 'services']) - if 'services' in b: - header.extend(b['services'].keys()) + header.extend([x for x in b if x != 'Services']) + if 'Services' in b: + header.extend(b['Services'].keys()) table.append(header) for b in benchmarks: threads,benchmark = b[0],b[1] row = [threads] - for k in ['event','avg','total','orch','services']: + for k in ['Event','Avg','Total','Orch','Services']: if k in benchmark: - if k == 'services': + if k == 'Services': row.extend(benchmark[k].values()) else: row.append(benchmark[k]) @@ -92,7 +92,7 @@ def show(benchmarks): def save(benchmarks): with open('scaling.txt','w') as f: for row in table(benchmarks): - f.write(' '.join([str(x) for x in row])) + f.write(' '.join([str(x) for x in row])+'\n') if __name__ == '__main__': cfg = cli() From 0fe7d63c79c20a49977acbd65c664f013a2e79c7 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 18:09:50 -0400 Subject: [PATCH 02/14] add plotter --- libexec/scaling.gpl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 libexec/scaling.gpl diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl new file mode 100644 index 0000000000..718e5b28b7 --- /dev/null +++ b/libexec/scaling.gpl @@ -0,0 +1,32 @@ + +set terminal qt size 1000,700 +set multiplot layout 2,2 +set key box +set xlabel 'Threads' +set ylabel 'Event Time [ms]' +set datafile columnheaders +set yrange [0:] + +set title 'I/O' +set key outside right +plot 'dog' using 1:($2*$1) pt 7 with points title columnhead(2) ,\ + '' using 1:($6) pt 7 with points title columnhead(6) ,\ + '' using 1:($35) pt 7 with points title columnhead(35) ,\ + '' using 1:($6*$1) pt 7 with points title 'I-Overhead' ,\ + +set title 'Engines' +set key outside right width 2 +plot 'dog' using 1:($16) pt 7 with points title columnhead(16) ,\ + '' using 1:($26) pt 7 with points title columnhead(26) ,\ + '' using 1:($19) pt 7 with points title columnhead(19) ,\ + '' using 1:($28) pt 7 with points title columnhead(28) ,\ + +unset title +unset key +set size 1.0,0.5 +set origin 0,0 +set ylabel 'Rate [Hz]' +f(x) = m*x +fit f(x) 'dog' using 1:(1/$2*1e3) via m +plot 'dog' using 1:(1/$2*1e3) pt 7, f(x) + From e1ef3c754c2fd88a04321c914d9252540453cc18 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 18:12:51 -0400 Subject: [PATCH 03/14] limit fit range, add another total metric --- libexec/scaling.gpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl index 718e5b28b7..df96cab33c 100644 --- a/libexec/scaling.gpl +++ b/libexec/scaling.gpl @@ -10,6 +10,7 @@ set yrange [0:] set title 'I/O' set key outside right plot 'dog' using 1:($2*$1) pt 7 with points title columnhead(2) ,\ + '' using 1:($36) pt 7 with points title columnhead(36) ,\ '' using 1:($6) pt 7 with points title columnhead(6) ,\ '' using 1:($35) pt 7 with points title columnhead(35) ,\ '' using 1:($6*$1) pt 7 with points title 'I-Overhead' ,\ @@ -27,6 +28,6 @@ set size 1.0,0.5 set origin 0,0 set ylabel 'Rate [Hz]' f(x) = m*x -fit f(x) 'dog' using 1:(1/$2*1e3) via m +fit [0:24] f(x) 'dog' using 1:(1/$2*1e3) via m plot 'dog' using 1:(1/$2*1e3) pt 7, f(x) From 273d9c25fa16a99f4826a88ce3e370f81879487d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 18:15:19 -0400 Subject: [PATCH 04/14] cleanup --- libexec/scaling.gpl | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl index df96cab33c..b1629737e1 100644 --- a/libexec/scaling.gpl +++ b/libexec/scaling.gpl @@ -8,25 +8,24 @@ set datafile columnheaders set yrange [0:] set title 'I/O' -set key outside right +set key outside right width 2 plot 'dog' using 1:($2*$1) pt 7 with points title columnhead(2) ,\ '' using 1:($36) pt 7 with points title columnhead(36) ,\ '' using 1:($6) pt 7 with points title columnhead(6) ,\ '' using 1:($35) pt 7 with points title columnhead(35) ,\ - '' using 1:($6*$1) pt 7 with points title 'I-Overhead' ,\ + '' using 1:($6*$1) pt 7 with points title 'I-Over' ,\ set title 'Engines' -set key outside right width 2 plot 'dog' using 1:($16) pt 7 with points title columnhead(16) ,\ '' using 1:($26) pt 7 with points title columnhead(26) ,\ '' using 1:($19) pt 7 with points title columnhead(19) ,\ '' using 1:($28) pt 7 with points title columnhead(28) ,\ -unset title -unset key -set size 1.0,0.5 -set origin 0,0 +set title 'Throughput' set ylabel 'Rate [Hz]' +set size 0.9,0.5 +set origin 0,0 +unset key f(x) = m*x fit [0:24] f(x) 'dog' using 1:(1/$2*1e3) via m plot 'dog' using 1:(1/$2*1e3) pt 7, f(x) From 079c62a27e3c07fb599ad5ba9e2310656fda7dd5 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 19:43:50 -0400 Subject: [PATCH 05/14] more flexible thread configuration --- libexec/scaling | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libexec/scaling b/libexec/scaling index 9d035bbde0..95ccab01db 100755 --- a/libexec/scaling +++ b/libexec/scaling @@ -5,10 +5,11 @@ def cli(): cli = argparse.ArgumentParser(description='CLARA scaling test') cli.add_argument('-y',help='YAML file',required=True) cli.add_argument('-c',help='CLARA_HOME path',default=os.getenv('CLARA_HOME',None)) - cli.add_argument('-t',help='threads',default=[2,4],type=int,action='append') + cli.add_argument('-t',help='threads (default=4,8)',default='4,8') cli.add_argument('-e',help='events per thread',default=100,type=int) cli.add_argument('input',help='input data file') cfg = cli.parse_args() + cli.t = cli.t.split(',') import sys if cfg.c is None: sys.exit('-c or $CLARA_HOME is required') return cfg From aa07db2ca2b488c3b47a00dfca9d59e6b3fc2e05 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 19:44:07 -0400 Subject: [PATCH 06/14] use real filenamt --- libexec/scaling.gpl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl index b1629737e1..a912347cf6 100644 --- a/libexec/scaling.gpl +++ b/libexec/scaling.gpl @@ -9,24 +9,24 @@ set yrange [0:] set title 'I/O' set key outside right width 2 -plot 'dog' using 1:($2*$1) pt 7 with points title columnhead(2) ,\ +plot 'scaling.txt' using 1:($2*$1) pt 7 with points title columnhead(2) ,\ '' using 1:($36) pt 7 with points title columnhead(36) ,\ '' using 1:($6) pt 7 with points title columnhead(6) ,\ '' using 1:($35) pt 7 with points title columnhead(35) ,\ '' using 1:($6*$1) pt 7 with points title 'I-Over' ,\ set title 'Engines' -plot 'dog' using 1:($16) pt 7 with points title columnhead(16) ,\ +plot 'scaling.txt' using 1:($16) pt 7 with points title columnhead(16) ,\ '' using 1:($26) pt 7 with points title columnhead(26) ,\ '' using 1:($19) pt 7 with points title columnhead(19) ,\ '' using 1:($28) pt 7 with points title columnhead(28) ,\ set title 'Throughput' set ylabel 'Rate [Hz]' -set size 0.9,0.5 -set origin 0,0 +set size 0.7,0.5 +set origin 0.12,0 unset key f(x) = m*x -fit [0:24] f(x) 'dog' using 1:(1/$2*1e3) via m -plot 'dog' using 1:(1/$2*1e3) pt 7, f(x) +fit [0:24] f(x) 'scaling.txt' using 1:(1/$2*1e3) via m +plot 'scaling.txt' using 1:(1/$2*1e3) pt 7, f(x) From d5c7f3b76ad0f59b3b5c3aa0bb009d2eed41fc0f Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 30 Oct 2025 21:51:09 -0400 Subject: [PATCH 07/14] columning --- libexec/scaling.gpl | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl index a912347cf6..9e0ba669e9 100644 --- a/libexec/scaling.gpl +++ b/libexec/scaling.gpl @@ -1,25 +1,40 @@ set terminal qt size 1000,700 + set multiplot layout 2,2 +set datafile columnheaders +set title font 'sans,14' set key box set xlabel 'Threads' set ylabel 'Event Time [ms]' -set datafile columnheaders set yrange [0:] set title 'I/O' set key outside right width 2 -plot 'scaling.txt' using 1:($2*$1) pt 7 with points title columnhead(2) ,\ - '' using 1:($36) pt 7 with points title columnhead(36) ,\ - '' using 1:($6) pt 7 with points title columnhead(6) ,\ - '' using 1:($35) pt 7 with points title columnhead(35) ,\ - '' using 1:($6*$1) pt 7 with points title 'I-Over' ,\ +plot 'scaling.txt' \ + using 1:(($2*$1)) pt 7 with points title columnhead(2) ,\ + '' using 1:((column($#))) pt 7 with points title 'Total' ,\ + '' using 1:($6) pt 7 with points title 'Reader' ,\ + '' using 1:((column($#-1))) pt 7 with points title 'Writer' ,\ + '' using 1:(($6*$1)) pt 7 with points title 'IOver' ,\ set title 'Engines' -plot 'scaling.txt' using 1:($16) pt 7 with points title columnhead(16) ,\ - '' using 1:($26) pt 7 with points title columnhead(26) ,\ - '' using 1:($19) pt 7 with points title columnhead(19) ,\ - '' using 1:($28) pt 7 with points title columnhead(28) ,\ + +# data-ai-uber.yml: +plot 'scaling.txt' \ + using 1:($7) pt 7 with points title columnhead(7) ,\ + '' using 1:($8) pt 7 with points title columnhead(8) ,\ + '' using 1:($9) pt 7 with points title columnhead(9) ,\ + '' using 1:($10) pt 7 with points title columnhead(10) ,\ + '' using 1:($11) pt 7 with points title columnhead(11) ,\ + '' using 1:($12) pt 7 with points title columnhead(12) ,\ + +# rgd-clarode.yml: +#plot 'scaling.txt' \ +# using 1:($16) pt 7 with points title columnhead(16) ,\ +# '' using 1:($26) pt 7 with points title columnhead(26) ,\ +# '' using 1:($19) pt 7 with points title columnhead(19) ,\ +# '' using 1:($28) pt 7 with points title columnhead(28) ,\ set title 'Throughput' set ylabel 'Rate [Hz]' From 4d1b94cf054393ba074a2d2b0a2f7d711c6c0d03 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 31 Oct 2025 17:01:02 -0400 Subject: [PATCH 08/14] better service choices --- libexec/scaling.gpl | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl index 9e0ba669e9..3687182e43 100644 --- a/libexec/scaling.gpl +++ b/libexec/scaling.gpl @@ -21,20 +21,25 @@ plot 'scaling.txt' \ set title 'Engines' # data-ai-uber.yml: -plot 'scaling.txt' \ - using 1:($7) pt 7 with points title columnhead(7) ,\ - '' using 1:($8) pt 7 with points title columnhead(8) ,\ - '' using 1:($9) pt 7 with points title columnhead(9) ,\ - '' using 1:($10) pt 7 with points title columnhead(10) ,\ - '' using 1:($11) pt 7 with points title columnhead(11) ,\ - '' using 1:($12) pt 7 with points title columnhead(12) ,\ +#plot 'scaling.txt' \ +# using 1:($7) pt 7 with points title columnhead(7) ,\ +# '' using 1:($8) pt 7 with points title columnhead(8) ,\ +# '' using 1:($9) pt 7 with points title columnhead(9) ,\ +# '' using 1:($10) pt 7 with points title columnhead(10) ,\ +# '' using 1:($11) pt 7 with points title columnhead(11) ,\ +# '' using 1:($12) pt 7 with points title columnhead(12) ,\ # rgd-clarode.yml: -#plot 'scaling.txt' \ -# using 1:($16) pt 7 with points title columnhead(16) ,\ -# '' using 1:($26) pt 7 with points title columnhead(26) ,\ -# '' using 1:($19) pt 7 with points title columnhead(19) ,\ -# '' using 1:($28) pt 7 with points title columnhead(28) ,\ +plot 'scaling.txt' \ + using 1:($7) pt 7 with points title columnhead(7) ,\ + '' using 1:($14) pt 7 with points title columnhead(14) ,\ + '' using 1:($15) pt 7 with points title columnhead(15) ,\ + '' using 1:($16) pt 7 with points title columnhead(16) ,\ + '' using 1:($26) pt 9 with points title columnhead(26) ,\ + '' using 1:($26) pt 9 with points title columnhead(26) ,\ + '' using 1:($19) pt 7 with points title columnhead(19) ,\ + '' using 1:($28) pt 9 with points title columnhead(28) ,\ + '' using 1:($33) pt 9 with points title columnhead(33) ,\ set title 'Throughput' set ylabel 'Rate [Hz]' From 32f98f281773613863f96640ead6171422c933fb Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 31 Oct 2025 17:41:12 -0400 Subject: [PATCH 09/14] fix header name --- libexec/scaling | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/scaling b/libexec/scaling index 95ccab01db..c241285df4 100755 --- a/libexec/scaling +++ b/libexec/scaling @@ -68,7 +68,7 @@ def benchmark(cfg, threads): def table(benchmarks): table = [] - header = [ 'threads' ] + header = [ 'Threads' ] b = benchmarks[0][1] header.extend([x for x in b if x != 'Services']) if 'Services' in b: From 653cf483151dee2921d5dee577a8a50ef8474476 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 31 Oct 2025 18:19:18 -0400 Subject: [PATCH 10/14] remove duplicate --- libexec/scaling.gpl | 1 - 1 file changed, 1 deletion(-) diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl index 3687182e43..14db409d70 100644 --- a/libexec/scaling.gpl +++ b/libexec/scaling.gpl @@ -36,7 +36,6 @@ plot 'scaling.txt' \ '' using 1:($15) pt 7 with points title columnhead(15) ,\ '' using 1:($16) pt 7 with points title columnhead(16) ,\ '' using 1:($26) pt 9 with points title columnhead(26) ,\ - '' using 1:($26) pt 9 with points title columnhead(26) ,\ '' using 1:($19) pt 7 with points title columnhead(19) ,\ '' using 1:($28) pt 9 with points title columnhead(28) ,\ '' using 1:($33) pt 9 with points title columnhead(33) ,\ From 5334e943d84864cac0feddc2ba05c58a2676d7b6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 31 Oct 2025 19:13:42 -0400 Subject: [PATCH 11/14] plot it too --- libexec/scaling | 93 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 81 insertions(+), 12 deletions(-) diff --git a/libexec/scaling b/libexec/scaling index c241285df4..36210f092e 100755 --- a/libexec/scaling +++ b/libexec/scaling @@ -1,22 +1,27 @@ #!/usr/bin/env python3 def cli(): - import os,argparse + import os,sys,argparse cli = argparse.ArgumentParser(description='CLARA scaling test') - cli.add_argument('-y',help='YAML file',required=True) + cli.add_argument('-P',help='plot only',action='store_true') + cli.add_argument('-y',help='YAML file',default=None) cli.add_argument('-c',help='CLARA_HOME path',default=os.getenv('CLARA_HOME',None)) cli.add_argument('-t',help='threads (default=4,8)',default='4,8') cli.add_argument('-e',help='events per thread',default=100,type=int) - cli.add_argument('input',help='input data file') + cli.add_argument('-i',help='input data file',default=None) cfg = cli.parse_args() - cli.t = cli.t.split(',') - import sys - if cfg.c is None: sys.exit('-c or $CLARA_HOME is required') + cfg.t = cfg.t.split(',') + if cfg.P: + cfg.i = 'scaling.txt' + else: + if cfg.y is None: sys.exit('-y YAML is required w/o -P') + if cfg.c is None: sys.exit('-c or $CLARA_HOME is required w/o -P') + if cfg.i is None: sys.exit('-i is required') return cfg def run(cmd): import subprocess - print('scaling >>> '+' '.join(cmd)) + print('run >>> '+' '.join(cmd)) p = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,universal_newlines=True,encoding='latin-1') for line in iter(p.stdout.readline, ''): line = line.strip() @@ -95,11 +100,75 @@ def save(benchmarks): for row in table(benchmarks): f.write(' '.join([str(x) for x in row])+'\n') +gnuplot=''' +set terminal qt size 1000,700 + +set multiplot layout 2,2 +set datafile columnheaders +set title font 'sans,14' +set key box +set xlabel 'Threads' +set ylabel 'Event Time [ms]' +set yrange [0:] + +set title 'I/O' +set key outside right width 2 +plot 'scaling.txt' \ + using 1:(($2*$1)) pt 7 with points title columnhead(2) ,\ + '' using 1:((column($#))) pt 7 with points title 'Total' ,\ + '' using 1:($6) pt 7 with points title 'Reader' ,\ + '' using 1:((column($#-1))) pt 7 with points title 'Writer' ,\ + '' using 1:(($6*$1)) pt 7 with points title 'IOver' ,\ + +set title 'Engines' + +# data-ai-uber.yml: +#plot 'scaling.txt' \ +# using 1:($7) pt 7 with points title columnhead(7) ,\ +# '' using 1:($8) pt 7 with points title columnhead(8) ,\ +# '' using 1:($9) pt 7 with points title columnhead(9) ,\ +# '' using 1:($10) pt 7 with points title columnhead(10) ,\ +# '' using 1:($11) pt 7 with points title columnhead(11) ,\ +# '' using 1:($12) pt 7 with points title columnhead(12) ,\ + +# rgd-clarode.yml: +plot 'scaling.txt' \ + using 1:($7) pt 7 with points title columnhead(7) ,\ + '' using 1:($14) pt 7 with points title columnhead(14) ,\ + '' using 1:($15) pt 7 with points title columnhead(15) ,\ + '' using 1:($16) pt 7 with points title columnhead(16) ,\ + '' using 1:($26) pt 9 with points title columnhead(26) ,\ + '' using 1:($19) pt 7 with points title columnhead(19) ,\ + '' using 1:($28) pt 9 with points title columnhead(28) ,\ + '' using 1:($33) pt 9 with points title columnhead(33) ,\ + +set title 'Throughput' +set ylabel 'Rate [Hz]' +set size 0.7,0.5 +set origin 0.12,0 +unset key +f(x) = m*x +fit [0:24] f(x) 'scaling.txt' using 1:(1/$2*1e3) via m +plot 'scaling.txt' using 1:(1/$2*1e3) pt 7, f(x) +''' + +def plot(): + import tempfile + with tempfile.NamedTemporaryFile(mode='w') as f: + [ f.write(x+'\n') for x in gnuplot.split('\n') ] + f.flush() + print(f.name) + print('\n'.join(list(run(['cat',f.name])))) + list(run(['gnuplot','-p',f.name])) + input() + if __name__ == '__main__': cfg = cli() - benchmarks = [] - for threads in cfg.t: - benchmarks.append([threads, benchmark(cfg, threads)]) - show(benchmarks) - save(benchmarks) + if not cfg.P: + benchmarks = [] + for threads in cfg.t: + benchmarks.append([threads, benchmark(cfg, threads)]) + show(benchmarks) + save(benchmarks) + plot() From 2ac1d3b6f1290a557e3300e093d308bd425df3cc Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 31 Oct 2025 20:53:23 -0400 Subject: [PATCH 12/14] add test data --- libexec/scaling.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 libexec/scaling.txt diff --git a/libexec/scaling.txt b/libexec/scaling.txt new file mode 100644 index 0000000000..ba5bd2f84f --- /dev/null +++ b/libexec/scaling.txt @@ -0,0 +1,9 @@ +threads Event Avg Total Orch READER DCDN MAGFIELDS FTCAL FTHODO FTTRK FTEB RASTER DCCR MLTD DCHAI FTOFHB EC CVTFP CTOF CND BAND HTCC LTCC EBHB DCTB FMT CVTSP FTOFTB EBTB RICH RTPC VTX CALIB WRITER TOTAL +4 89.44 104.79 263.02 285.48 8.58 35.38 0.02 0.08 0.07 0.11 0.04 0.05 4.89 7.26 24.06 1.65 2.03 97.49 1.73 0.52 0.09 0.14 0.09 1.01 82.23 2.17 29.04 1.47 0.93 3.19 0.04 105.53 0.32 0.24 410.47 +8 49.14 58.14 145.93 158.91 8.63 36.18 0.02 0.06 0.06 0.13 0.05 0.03 6.39 9.22 24.6 1.65 2.05 104.23 1.84 0.66 0.13 0.13 0.1 1.36 105.72 2.18 29.92 1.53 0.96 3.41 0.04 112.58 0.3 0.24 454.42 +12 32.31 46.22 116.0 129.13 9.58 39.49 0.03 0.07 0.08 0.1 0.05 0.04 7.71 9.58 28.65 1.82 2.66 121.48 2.69 0.65 0.16 0.17 0.12 1.73 136.42 2.36 35.44 1.93 1.18 3.99 0.05 120.72 0.33 0.29 529.57 +16 25.06 35.01 87.87 102.32 9.94 38.76 0.02 0.07 0.05 0.12 0.05 0.04 10.92 8.22 27.89 2.0 2.5 116.15 3.43 0.63 0.13 0.16 0.1 2.0 153.45 2.47 33.67 1.82 1.01 4.06 0.03 120.14 0.34 0.25 540.44 +20 21.25 29.48 74.0 84.97 9.17 38.91 0.02 0.07 0.06 0.1 0.05 0.04 9.75 8.24 27.88 1.84 3.69 117.77 2.7 0.53 0.16 0.18 0.11 2.11 179.11 2.39 34.19 1.89 1.11 4.22 0.04 118.14 0.31 0.22 565.03 +24 18.97 31.04 77.9 89.37 10.46 42.0 0.02 0.07 0.06 0.11 0.05 0.04 12.41 9.25 31.56 2.09 3.78 132.57 3.45 0.61 0.18 0.18 0.12 2.53 217.36 2.52 37.61 1.92 1.05 4.37 0.04 134.11 0.33 0.26 651.1 +28 15.8 29.41 73.81 85.57 10.43 42.61 0.02 0.06 0.06 0.12 0.05 0.04 12.9 9.65 33.73 2.27 4.39 137.77 2.72 0.66 0.22 0.14 0.12 2.14 239.63 2.55 37.7 2.06 1.11 4.78 0.04 131.94 0.34 0.28 680.51 +32 12.59 24.93 62.59 74.05 8.43 38.8 0.03 0.05 0.05 0.12 0.04 0.04 14.06 9.44 30.21 2.22 4.91 120.11 3.75 0.57 0.05 0.08 0.06 2.1 244.06 2.32 32.59 1.9 1.18 5.01 0.04 117.85 0.33 0.22 640.62 From d6d408173d88ac46a4b061dd5ade27d1237390ce Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 31 Oct 2025 20:55:32 -0400 Subject: [PATCH 13/14] cleanup --- libexec/scaling | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libexec/scaling b/libexec/scaling index 36210f092e..0de022937d 100755 --- a/libexec/scaling +++ b/libexec/scaling @@ -155,10 +155,8 @@ plot 'scaling.txt' using 1:(1/$2*1e3) pt 7, f(x) def plot(): import tempfile with tempfile.NamedTemporaryFile(mode='w') as f: - [ f.write(x+'\n') for x in gnuplot.split('\n') ] + f.write(gnuplot) f.flush() - print(f.name) - print('\n'.join(list(run(['cat',f.name])))) list(run(['gnuplot','-p',f.name])) input() From 0d039d2d5cb7810a3ef627fe6540812b2002e2a0 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 12 Nov 2025 18:25:34 -0500 Subject: [PATCH 14/14] Delete libexec/scaling.txt --- libexec/scaling.txt | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 libexec/scaling.txt diff --git a/libexec/scaling.txt b/libexec/scaling.txt deleted file mode 100644 index ba5bd2f84f..0000000000 --- a/libexec/scaling.txt +++ /dev/null @@ -1,9 +0,0 @@ -threads Event Avg Total Orch READER DCDN MAGFIELDS FTCAL FTHODO FTTRK FTEB RASTER DCCR MLTD DCHAI FTOFHB EC CVTFP CTOF CND BAND HTCC LTCC EBHB DCTB FMT CVTSP FTOFTB EBTB RICH RTPC VTX CALIB WRITER TOTAL -4 89.44 104.79 263.02 285.48 8.58 35.38 0.02 0.08 0.07 0.11 0.04 0.05 4.89 7.26 24.06 1.65 2.03 97.49 1.73 0.52 0.09 0.14 0.09 1.01 82.23 2.17 29.04 1.47 0.93 3.19 0.04 105.53 0.32 0.24 410.47 -8 49.14 58.14 145.93 158.91 8.63 36.18 0.02 0.06 0.06 0.13 0.05 0.03 6.39 9.22 24.6 1.65 2.05 104.23 1.84 0.66 0.13 0.13 0.1 1.36 105.72 2.18 29.92 1.53 0.96 3.41 0.04 112.58 0.3 0.24 454.42 -12 32.31 46.22 116.0 129.13 9.58 39.49 0.03 0.07 0.08 0.1 0.05 0.04 7.71 9.58 28.65 1.82 2.66 121.48 2.69 0.65 0.16 0.17 0.12 1.73 136.42 2.36 35.44 1.93 1.18 3.99 0.05 120.72 0.33 0.29 529.57 -16 25.06 35.01 87.87 102.32 9.94 38.76 0.02 0.07 0.05 0.12 0.05 0.04 10.92 8.22 27.89 2.0 2.5 116.15 3.43 0.63 0.13 0.16 0.1 2.0 153.45 2.47 33.67 1.82 1.01 4.06 0.03 120.14 0.34 0.25 540.44 -20 21.25 29.48 74.0 84.97 9.17 38.91 0.02 0.07 0.06 0.1 0.05 0.04 9.75 8.24 27.88 1.84 3.69 117.77 2.7 0.53 0.16 0.18 0.11 2.11 179.11 2.39 34.19 1.89 1.11 4.22 0.04 118.14 0.31 0.22 565.03 -24 18.97 31.04 77.9 89.37 10.46 42.0 0.02 0.07 0.06 0.11 0.05 0.04 12.41 9.25 31.56 2.09 3.78 132.57 3.45 0.61 0.18 0.18 0.12 2.53 217.36 2.52 37.61 1.92 1.05 4.37 0.04 134.11 0.33 0.26 651.1 -28 15.8 29.41 73.81 85.57 10.43 42.61 0.02 0.06 0.06 0.12 0.05 0.04 12.9 9.65 33.73 2.27 4.39 137.77 2.72 0.66 0.22 0.14 0.12 2.14 239.63 2.55 37.7 2.06 1.11 4.78 0.04 131.94 0.34 0.28 680.51 -32 12.59 24.93 62.59 74.05 8.43 38.8 0.03 0.05 0.05 0.12 0.04 0.04 14.06 9.44 30.21 2.22 4.91 120.11 3.75 0.57 0.05 0.08 0.06 2.1 244.06 2.32 32.59 1.9 1.18 5.01 0.04 117.85 0.33 0.22 640.62