diff --git a/dashboards/dashboard_walberla.py b/dashboards/dashboard_walberla.py index 065f36fc0778fb54cde29b8b166fb6c94c820cff..cc9b19bc4be7d988354e3638fa07f426a1bdc3aa 100644 --- a/dashboards/dashboard_walberla.py +++ b/dashboards/dashboard_walberla.py @@ -86,3 +86,70 @@ def dashboard_uniformgridcpu(): rows=[row], templating=[*filter_vars], annotations=annotations) + + +def dashboard_uniformgridgpu(): + data_source = 'InfluxDB-1' + arch = 'GPU' + measurment_name = f'UniformGrid{arch}' + row_repeat = "host" + + options = DashboardOptions( + title=f'Uniform Grid {arch}', + description=f"Benchmark dashboard for the Uniform Grid {arch} Benchmark from walberla", + tags=[arch, 'benchmark', 'walberla', 'Uniform Grid'], + timezone="browser", + ) + + filters = [ + Filter("project_id", multi=True, default_value='walberla/walberla'), + Filter("branch", multi=True, default_value='master'), + Filter("host", multi=False, default_value='medusa'), + Filter("GPU"), + Filter("collisionSetup"), + Filter("mpi_num_processes"), + Filter("streamingPattern"), + Filter("timeStepStrategy"), + Filter("stencil"), + Filter("blocks_0"), + Filter("blocks_1"), + Filter("blocks_2"), + Filter("cellsPerBlock_0"), + Filter("cellsPerBlock_1"), + Filter("cellsPerBlock_2"), + Filter("gpuBlockSize_0"), + Filter("gpuBlockSize_1"), + Filter("gpuBlockSize_2"), + Filter("periodic_0"), + Filter("periodic_1"), + Filter("periodic_2"), + ] + + fields = [PanelInfos("mlupsPerProcess", Units.number), ] + + filter_vars = [get_dashboard_variable(filter, measurment_name, data_source) for filter in filters] + + row_repeat_var = [fv for fv in filter_vars if fv.name == row_repeat][0] + + where = join_variable_and([f.name for f in filters]) + annotations = get_commit_annotation(data_source, "red", "commits", measurment_name) + + panels = [ + get_time_series_panel( + field, + data_source, + measurment_name, + where=where, + group_by=[f.name for f in filters], + ) + for field in fields] + + row = pack_in_row( + title=f"{row_repeat}: ${row_repeat_var.name}", + panels=[*panels], + repeat=Repeat('v', row_repeat_var.name), + ) + return build_dashboard(options, + rows=[row], + templating=[*filter_vars], + annotations=annotations) diff --git a/dashboards/deploy.py b/dashboards/deploy.py index 51f0b1353588dc4b1408f7074422a494142a32a5..be0800978ff2c672ee1ec8d0bceb0ee4d8704ed9 100644 --- a/dashboards/deploy.py +++ b/dashboards/deploy.py @@ -5,7 +5,7 @@ import dashboards.dashboard_list as boards from dashboards.upload import upload_dashboard from dashboards.dashboard_fe2ti import dashboard_fe2ti from dashboard_pystencils import dashboard_pystencils_cpu -from dashboard_walberla import dashboard_uniformgridcpu +from dashboard_walberla import dashboard_uniformgridcpu, dashboard_uniformgridgpu logger = logging.getLogger(__file__) logger.setLevel(logging.INFO) @@ -42,6 +42,7 @@ def main(): upload_dashboard(dashboard_pystencils_cpu(), folder=pystencils_foler) elif "walberla" in board_name: upload_dashboard(dashboard_uniformgridcpu(), folder=walberla_folder) + upload_dashboard(dashboard_uniformgridgpu(), folder=walberla_folder) else: board = getattr(boards, board_name) upload_dashboard(board(), folder=walberla_folder) diff --git a/tests/test_dashboard_creation.py b/tests/test_dashboard_creation.py index 14ba2e6856fbdf8c30eb0ec18226fc01c9c703cb..9acea28ba9313b166a423fadf11aa74828fc73a2 100644 --- a/tests/test_dashboard_creation.py +++ b/tests/test_dashboard_creation.py @@ -7,6 +7,7 @@ from dashboards.dashboard_base import (get_commit_annotation, from dashboards.dashboard_list import dashboard_uniformGridGPU from dashboards.dashboard_fe2ti import dashboard_fe2ti from dashboards.dashboard_pystencils import dashboard_pystencils_cpu +from dashboards.dashboard_walberla import dashboard_uniformgridgpu, dashboard_uniformgridcpu from dashboards.influx_queries import Query, show_tag_values dataSource = 'InfluxDB-1' @@ -89,3 +90,8 @@ def test_dashboard_fe2ti(): def test_dashboard_pystencils_cpu(): dashboard_pystencils_cpu() + + +def test_dashboard_walberla(): + dashboard_uniformgridcpu() + dashboard_uniformgridgpu()