@@ -134,6 +134,7 @@ def plot_scaling_test(self, ax, quantity='time', **plotting_params): # pragma:
134134 timing_step = get_sorted (stats , type = 'timing_step' )
135135
136136 t_mean = np .mean ([me [1 ] for me in timing_step ])
137+ t_min = np .min ([me [1 ] for me in timing_step ][1 :])
137138
138139 if quantity == 'throughput' :
139140 timings [np .prod (procs ) / self .tasks_per_node ] = experiment .res ** self .ndim / t_mean
@@ -147,6 +148,8 @@ def plot_scaling_test(self, ax, quantity='time', **plotting_params): # pragma:
147148 timings [np .prod (procs ) / self .tasks_per_node ] = t_mean
148149 elif quantity == 'time_per_task' :
149150 timings [np .prod (procs )] = t_mean
151+ elif quantity == 'min_time_per_task' :
152+ timings [np .prod (procs )] = t_min
150153 else :
151154 raise NotImplementedError
152155 except (FileNotFoundError , ValueError ):
@@ -167,6 +170,7 @@ def plot_scaling_test(self, ax, quantity='time', **plotting_params): # pragma:
167170 'throughput_per_task' : 'throughput / DoF/s' ,
168171 'time' : r'$t_\mathrm{step}$ / s' ,
169172 'time_per_task' : r'$t_\mathrm{step}$ / s' ,
173+ 'min_time_per_task' : r'minimal $t_\mathrm{step}$ / s' ,
170174 'efficiency' : 'efficiency / DoF/s/task' ,
171175 }
172176 ax .set_ylabel (labels [quantity ])
@@ -358,6 +362,7 @@ def plot_scalings(problem, **kwargs): # pragma: no cover
358362 ('RBC' , 'throughput' ): {'x' : [1 / 10 , 64 ], 'y' : [2e4 , 2e4 * 640 ]},
359363 ('RBC' , 'time' ): {'x' : [1 / 10 , 64 ], 'y' : [60 , 60 / 640 ]},
360364 ('RBC' , 'time_per_task' ): {'x' : [1 , 640 ], 'y' : [60 , 60 / 640 ]},
365+ ('RBC' , 'min_time_per_task' ): {'x' : [1 , 640 ], 'y' : [60 , 60 / 640 ]},
361366 ('RBC' , 'throughput_per_task' ): {'x' : [1 / 1 , 640 ], 'y' : [2e4 , 2e4 * 640 ]},
362367 }
363368
@@ -373,7 +378,7 @@ def plot_scalings(problem, **kwargs): # pragma: no cover
373378 fig .savefig (path , bbox_inches = 'tight' )
374379 print (f'Saved { path !r} ' , flush = True )
375380
376- for quantity in ['time' , 'throughput' , 'time_per_task' , 'throughput_per_task' ][::- 1 ]:
381+ for quantity in ['time' , 'throughput' , 'time_per_task' , 'throughput_per_task' , 'min_time_per_task' ][::- 1 ]:
377382 fig , ax = plt .subplots (figsize = figsize_by_journal ('TUHH_thesis' , 1 , 0.6 ))
378383 for config in configs :
379384 config .plot_scaling_test (ax = ax , quantity = quantity )
0 commit comments