Reframe Report for Feel++ heat toolbox on Gaya

1. Test Summary

  • Total Tests: 1

  • Failures: 0

nb_tasks.tasks

nb_tasks.tasks_per_node

nb_tasks.exclusive_access

meshes

discretization

solver

128

128

True

M1

P1

gamg

Description

from feelpp.benchmarking.report.atomicReports.controller import AtomicReportController
from feelpp.benchmarking.report.atomicReports.model import AtomicReportModel
from feelpp.benchmarking.report.atomicReports.view import AtomicReportView

model=AtomicReportModel([{'num_cases': 1, 'num_failures': 0, 'num_aborted': 0, 'num_skipped': 0, 'runid': 0, 'testcases': [{'build_stderr': None, 'build_stdout': None, 'dependencies_actual': [], 'dependencies_conceptual': [], 'description': '', 'display_name': "RegressionTest %nb_tasks={'tasks': 128, 'tasks_per_node': 128, 'exclusive_access': True} %meshes=M1 %discretization=P1 %solver=gamg", 'environment': 'default', 'fail_phase': None, 'fail_reason': None, 'filename': '/data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking/.venv/lib/python3.10/site-packages/feelpp/benchmarking/reframe/regression.py', 'fixture': False, 'hash': '55473afe', 'jobid': '75440', 'job_stderr': 'rfm_job.err', 'job_stdout': 'rfm_job.out', 'maintainers': [], 'name': "RegressionTest %nb_tasks={'tasks': 128, 'tasks_per_node': 128, 'exclusive_access': True} %meshes=M1 %discretization=P1 %solver=gamg", 'nodelist': ['gaya1'], 'outputdir': '/data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking/build/reframe/output/gaya/production/default/RegressionTest_55473afe', 'perfvars': [{'name': 'Constructor_initMaterialProperties', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.009822008}, {'name': 'Constructor_initMesh', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.66254486}, {'name': 'Constructor_initFunctionSpaces', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.0731087}, {'name': 'Constructor_initPostProcess', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.026403242}, {'name': 'Constructor_graph', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.032315375}, {'name': 'Constructor_matrixVector', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.049939552}, {'name': 'Constructor_algebraicOthers', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.000115778}, {'name': 'Constructor_init', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 9.66895944}, {'name': 'PostProcessing_exportResults', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 3.13249936}, {'name': 'Solve_ksp-niter', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 'iter', 'value': 21.0}, {'name': 'Solve_algebraic-assembly', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.208638122}, {'name': 'Solve_algebraic-solve', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.201034698}, {'name': 'Solve_solve', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': 's', 'value': 0.410433501}, {'name': 'Normal_Heat_Flux_alpha', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 43.66448984966519}, {'name': 'Normal_Heat_Flux_beta', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 13.234932791680627}, {'name': 'Normal_Heat_Flux_gamma', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': -57.4851845727992}, {'name': 'Points_alpha_max_field_temperature', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 17.902221778476278}, {'name': 'Points_alpha_min_field_temperature', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 11.304866748371056}, {'name': 'Points_beta_max_field_temperature', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 16.842788243943428}, {'name': 'Points_beta_min_field_temperature', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 11.082223374054397}, {'name': 'Statistics_temperature_alpha_max', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 17.90216912205248}, {'name': 'Statistics_temperature_alpha_min', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 11.371955934523339}, {'name': 'Statistics_temperature_beta_max', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 16.84274115727896}, {'name': 'Statistics_temperature_beta_min', 'reference': 0, 'thres_lower': None, 'thres_upper': None, 'unit': '', 'value': 11.112161834358321}], 'prefix': '/data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking/.venv/lib/python3.10/site-packages/feelpp/benchmarking/reframe', 'result': 'success', 'stagedir': '/data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking/build/reframe/stage/gaya/production/default/RegressionTest_55473afe', 'scheduler': 'squeue', 'system': 'gaya:production', 'tags': ['async'], 'time_compile': 0.01114344596862793, 'time_performance': 0.01783442497253418, 'time_run': 27.270243167877197, 'time_sanity': 0.013598918914794922, 'time_setup': 0.010066747665405273, 'time_total': 27.294483423233032, 'unique_name': 'RegressionTest', 'check_vars': {'valid_prog_environs': ['default'], 'valid_systems': ['gaya:production'], 'descr': '', 'sourcepath': '', 'sourcesdir': None, 'prebuild_cmds': [], 'postbuild_cmds': [], 'executable': 'apptainer exec -B"/data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking/build/reframe/stage/gaya/production/default/RegressionTest_55473afe:/rfm_workdir" --home /data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking --bind /data/scratch/cladellash/feelppdb/input_data/ThermalBridgesENISO10211/:/input_data --env OMP_NUM_THREADS=1 --sharens --bind /opt/:/opt/ /data/scratch/cladellash/images/feelpp-noble.sif feelpp_toolbox_heat --config-files /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg /input_data/gamg.cfg --directory /data/cemosis/github-actions-runner/actions-runner-2/_work/benchmarking/benchmarking/javier_test/toolboxes/heat/ThermalBridgesENISO10211/Case3/55473afe --repository.case ThermalBridgesENISO10211 --heat.scalability-save=1 --repository.append.np 0 --case.discretization P1 --heat.json.patch=\'{"op": "replace","path": "/Meshes/heat/Import/filename","value": "/input_data/partitioning/case3/M1/case3_p128.json" }\'', 'executable_opts': [], 'prerun_cmds': [], 'postrun_cmds': [], 'keep_files': [], 'readonly_files': [], 'tags': ['async'], 'maintainers': [], 'strict_check': True, 'num_tasks': 128, 'num_tasks_per_node': 128, 'num_gpus_per_node': None, 'num_cpus_per_task': 1, 'num_tasks_per_core': None, 'num_tasks_per_socket': None, 'use_multithreading': None, 'max_pending_time': None, 'exclusive_access': True, 'local': False, 'modules': [], 'env_vars': {}, 'variables': {}, 'time_limit': None, 'build_time_limit': None, 'extra_resources': {}, 'build_locally': True, 'report_dir_path': './reports/feelpp_toolbox_heat/ThermalBridgesENISO10211/gaya/2024_12_10T11_50_42', 'use_case': 'ThermalBridgesENISO10211', 'platform': 'apptainer'}, 'check_params': {'nb_tasks': {'tasks': 128, 'tasks_per_node': 128, 'exclusive_access': True}, 'meshes': 'M1', 'discretization': 'P1', 'solver': 'gamg'}}]}])
view=AtomicReportView([{'title': 'Validation measures', 'plot_types': ['scatter'], 'transformation': 'performance', 'aggregations': [{'column': 'nb_tasks.tasks', 'agg': 'filter:128'}], 'variables': ['Normal_Heat_Flux_alpha', 'Normal_Heat_Flux_beta', 'Normal_Heat_Flux_gamma', 'Points_alpha_max_field_temperature', 'Points_alpha_min_field_temperature', 'Points_beta_max_field_temperature', 'Points_beta_min_field_temperature', 'Statistics_temperature_alpha_max', 'Statistics_temperature_alpha_min', 'Statistics_temperature_beta_max', 'Statistics_temperature_beta_min'], 'names': [], 'xaxis': {'parameter': 'meshes', 'label': 'mesh levels'}, 'secondary_axis': {'parameter': 'performance_variable', 'label': 'Measures'}, 'yaxis': {'parameter': None, 'label': 'Heat flow [W]'}, 'color_axis': {'parameter': 'discretization', 'label': 'Discretization'}}, {'title': 'Performance (P1)', 'plot_types': ['stacked_bar', 'grouped_bar'], 'transformation': 'performance', 'aggregations': [{'column': 'discretization', 'agg': 'filter:P1'}], 'variables': ['Constructor_init', 'Solve_algebraic-assembly', 'PostProcessing_exportResults'], 'names': [], 'xaxis': {'parameter': 'nb_tasks.tasks', 'label': 'Number of tasks'}, 'secondary_axis': {'parameter': 'meshes', 'label': 'Mesh level'}, 'yaxis': {'parameter': None, 'label': 'execution time (s)'}, 'color_axis': {'parameter': 'performance_variable', 'label': 'Performance variable'}}, {'title': 'Speedup (P1)', 'plot_types': ['scatter'], 'transformation': 'speedup', 'aggregations': [{'column': 'discretization', 'agg': 'filter:P1'}], 'variables': ['Constructor_init', 'Solve_algebraic-assembly', 'PostProcessing_exportResults'], 'names': [], 'xaxis': {'parameter': 'nb_tasks.tasks', 'label': 'Number of tasks'}, 'secondary_axis': {'parameter': 'meshes', 'label': 'Mesh level'}, 'yaxis': {'parameter': None, 'label': 'Speedup'}, 'color_axis': {'parameter': 'performance_variable', 'label': 'Performance variable'}}, {'title': 'Performance (P2)', 'plot_types': ['stacked_bar', 'grouped_bar'], 'transformation': 'performance', 'aggregations': [{'column': 'discretization', 'agg': 'filter:P2'}], 'variables': ['Constructor_init', 'Solve_algebraic-assembly', 'PostProcessing_exportResults'], 'names': [], 'xaxis': {'parameter': 'nb_tasks.tasks', 'label': 'Number of tasks'}, 'secondary_axis': {'parameter': 'meshes', 'label': 'Mesh level'}, 'yaxis': {'parameter': None, 'label': 'execution time (s)'}, 'color_axis': {'parameter': 'performance_variable', 'label': 'Performance variable'}}, {'title': 'Speedup (P2)', 'plot_types': ['scatter'], 'transformation': 'speedup', 'aggregations': [{'column': 'discretization', 'agg': 'filter:P2'}], 'variables': ['Constructor_init', 'Solve_algebraic-assembly', 'PostProcessing_exportResults'], 'names': [], 'xaxis': {'parameter': 'nb_tasks.tasks', 'label': 'Number of tasks'}, 'secondary_axis': {'parameter': 'meshes', 'label': 'Mesh level'}, 'yaxis': {'parameter': None, 'label': 'Speedup'}, 'color_axis': {'parameter': 'performance_variable', 'label': 'Performance variable'}}])
controller=AtomicReportController(model,view)

for fig in controller.generateAll():
    fig.show()



    
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) File :1 ----> 1 for fig in controller.generateAll(): 2 import sys; fig.write_html(file=sys.stdout, include_plotlyjs=False) File /data/cemosis/github-actions-runner/actions-runner-4/_work/benchmarking/benchmarking/.venv/lib/python3.10/site-packages/feelpp/benchmarking/report/base/controller.py:20, in Controller.generateAll(self) 18 for plot_config in self.view.plots_config: 19 for plot in FigureFactory.create(plot_config): ---> 20 yield plot.createFigure(self.model.master_df) File /data/cemosis/github-actions-runner/actions-runner-4/_work/benchmarking/benchmarking/.venv/lib/python3.10/site-packages/feelpp/benchmarking/report/figureFactory.py:345, in GroupedBarFigure.createFigure(self, df) 342 df = self.transformation_strategy.calculate(df) 344 if isinstance(df.index,MultiIndex): --> 345 figure = self.createGrouped(df) 346 else: 347 figure = self.createSimple(df) File /data/cemosis/github-actions-runner/actions-runner-4/_work/benchmarking/benchmarking/.venv/lib/python3.10/site-packages/feelpp/benchmarking/report/figureFactory.py:292, in GroupedBarFigure.createGrouped(self, df) 278 frames.append([ 279 go.Bar( 280 x = frame_df.index.astype(str), (...) 284 for col in frame_df.columns 285 ]) 286 ranges.append([ 287 frame_df.min().min() - frame_df.min().min()*range_epsilon, 288 frame_df.max().max() + frame_df.min().min()*range_epsilon 289 ]) 291 fig = go.Figure( --> 292 data = frames[0], 293 frames = [ 294 go.Frame( 295 data = f, 296 name=f"frame_{i}", 297 layout=dict( 298 yaxis=dict(range = ranges[i]) 299 ) 300 ) 301 for i,f in enumerate(frames)], 302 layout=go.Layout( 303 yaxis=dict(range = ranges[0],title=self.config.yaxis.label), 304 xaxis=dict(title=self.config.xaxis.label), 305 title=self.config.title, 306 sliders=[dict( 307 active=0, currentvalue=dict(prefix=f"{self.config.secondary_axis.label} = "), transition = dict(duration= 0), 308 steps=[dict(label=f"{h}",method="animate",args=[[f"frame_{k}"],dict(mode="immediate",frame=dict(duration=0, redraw=True))]) for k,h in enumerate(anim_dimension_values)], 309 )], 310 legend=dict(title=self.config.color_axis.label if self.config.color_axis else "") 311 ) 312 ) 314 return fig IndexError: list index out of range