From 7c6f591e5532739ad0aa1baaf306c3354f380c8c Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Thu, 21 Nov 2024 16:40:41 +0100 Subject: [PATCH 01/20] fix executable #151 --- config/kub/poznan.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/kub/poznan.json b/config/kub/poznan.json index 2f2bbabd..55d9d203 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -1,5 +1,5 @@ { - "executable": "/data/home/cladellash/ktirio-urban-building/build/src/cpp/feelpp_kub_cem", + "executable": "feelpp_kub_cem", "output_directory": "{{machine.output_app_dir}}/kub", "use_case_name": "poznan", "timeout":"0-0:15:0", From f65f65d71fc4d245ce2b81ddcea1ac63a934db5a Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Thu, 21 Nov 2024 16:45:15 +0100 Subject: [PATCH 02/20] start tasks config up #151 --- config/kub/poznan.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config/kub/poznan.json b/config/kub/poznan.json index 55d9d203..33657456 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -58,8 +58,12 @@ {"tasks" : 16, "nodes":1, "exclusive_access":true}, {"tasks" : 32, "nodes":1, "exclusive_access":true}, {"tasks" : 64, "nodes":1, "exclusive_access":true}, + {"tasks" : 64, "nodes":2, "exclusive_access":true}, {"tasks" : 128, "nodes":1, "exclusive_access":true}, - {"tasks" : 256, "nodes":2, "exclusive_access":true} + {"tasks" : 128, "nodes":2, "exclusive_access":true}, + {"tasks" : 256, "nodes":2, "exclusive_access":true}, + {"tasks" : 256, "nodes":3, "exclusive_access":true}, + {"tasks" : 384, "nodes":3, "exclusive_access":true} ] } ] From c460070caa4618586aa5e4ce55b7f8accd46b4ad Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Thu, 21 Nov 2024 16:45:30 +0100 Subject: [PATCH 03/20] rm upload field #151 --- config/kub/poznan.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config/kub/poznan.json b/config/kub/poznan.json index 33657456..ebe2cb4d 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -46,10 +46,6 @@ "success": ["[ Stopping Feel++ ]"], "error": ["Error"] }, - "upload": { - "platform": "girder", - "folder_id": "672a1452b0e95728eb010b38" - }, "parameters": [ { "name": "nb_tasks", From 5be04622b140526eaada0369c23f395e73d584bf Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Thu, 21 Nov 2024 16:45:50 +0100 Subject: [PATCH 04/20] up scalability stages to new timers #151 --- config/kub/poznan.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/kub/poznan.json b/config/kub/poznan.json index ebe2cb4d..65b8ba3d 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -32,13 +32,13 @@ "name":"", "file": "instances/np_{{parameters.nb_tasks.tasks.value}}/logs/timers.json", "format": "json", - "variables_path":"*" + "variables_path":["execute","postprocess.*","simulation.*"] }, { "name":"", "file": "logs/timers.json", "format": "json", - "variables_path":"*" + "variables_path":["constructor","updateForUse.*"] } ] }, From d2bc722c2118ca85a0926b1d1129f0a922663b55 Mon Sep 17 00:00:00 2001 From: JavierCladellas <82624449+JavierCladellas@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:05:58 +0100 Subject: [PATCH 05/20] Add benchmark for feelpp_toolbox_heat - ThermalBridgesENISO10211 --- docs/modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 01695bfb..02f09263 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -4,4 +4,4 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] = Benchmarking :page-layout: toolboxes :page-tags: catalog, catalog-index -:docdatetime: 2024-12-13T17:19:11 \ No newline at end of file +:docdatetime: 2025-01-13T11:05:57 \ No newline at end of file From d5d5e0a9f715505d8ee2313d286ddff89e78b27e Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 13 Jan 2025 11:12:49 +0100 Subject: [PATCH 06/20] trigger netlify From d91d00a0eb10b716984f515375b90b7e21683e64 Mon Sep 17 00:00:00 2001 From: JavierCladellas <82624449+JavierCladellas@users.noreply.github.com> Date: Mon, 13 Jan 2025 15:06:00 +0100 Subject: [PATCH 07/20] Add benchmark for feelpp_toolbox_heat - ThermalBridgesENISO10211 --- docs/modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 01695bfb..6b9b0d2a 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -4,4 +4,4 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] = Benchmarking :page-layout: toolboxes :page-tags: catalog, catalog-index -:docdatetime: 2024-12-13T17:19:11 \ No newline at end of file +:docdatetime: 2025-01-13T15:06:00 \ No newline at end of file From 3598ebbe94e2316bff7f3e6429c2e2ba97bbe0c6 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 13 Jan 2025 15:23:14 +0100 Subject: [PATCH 08/20] trigger netlify From 0978425e5eb9eb6a1c41895c1d31129f0e669b7f Mon Sep 17 00:00:00 2001 From: JavierCladellas <82624449+JavierCladellas@users.noreply.github.com> Date: Tue, 14 Jan 2025 15:32:33 +0100 Subject: [PATCH 09/20] Add benchmark for feelpp_toolbox_heat - ThermalBridgesENISO10211 --- docs/modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 01695bfb..917eb322 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -4,4 +4,4 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] = Benchmarking :page-layout: toolboxes :page-tags: catalog, catalog-index -:docdatetime: 2024-12-13T17:19:11 \ No newline at end of file +:docdatetime: 2025-01-14T15:32:33 \ No newline at end of file From 4992d9efbf18716e162ae496facec449a4d7979a Mon Sep 17 00:00:00 2001 From: JavierCladellas <82624449+JavierCladellas@users.noreply.github.com> Date: Thu, 23 Jan 2025 13:03:52 +0100 Subject: [PATCH 10/20] Add benchmark for feelpp_toolbox_heat - ThermalBridgesENISO10211 --- docs/modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 864e2231..b82cc094 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -4,4 +4,4 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] = Benchmarking :page-layout: toolboxes :page-tags: catalog, catalog-index -:docdatetime: 2025-01-22T11:42:45 \ No newline at end of file +:docdatetime: 2025-01-23T13:03:51 \ No newline at end of file From 5a57449a6add586cb7f74a75eb3e57fdb5a7c273 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 27 Jan 2025 15:22:39 +0100 Subject: [PATCH 11/20] up kub poznan #151 --- config/kub/kub_plots.json | 176 +++++++++++++++++++++++++++++++++++--- config/kub/poznan.json | 23 ++--- 2 files changed, 179 insertions(+), 20 deletions(-) diff --git a/config/kub/kub_plots.json b/config/kub/kub_plots.json index 2d8c5237..df08d910 100644 --- a/config/kub/kub_plots.json +++ b/config/kub/kub_plots.json @@ -2,13 +2,165 @@ "plots": [ { - "title": "Absolute performance", - "plot_types": [ "grouped_bar", "table" ], + "title": "Constructor Absolute performance", + "plot_types": [ "grouped_bar" ], "transformation": "performance", - "variables": [ "execute", "postprocess", "constructor", "updateForUse", "simulation" ], + "variables": [ + "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", + "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", + "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios", "constructor.updateForUse.total" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Constructor Relative performance", + "plot_types": [ "stacked_bar", "grouped_bar" ], + "transformation": "relative_performance", + "variables": [ + "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", + "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", + "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios", "constructor.updateForUse.total" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Constructor Speedup", + "plot_types": [ "scatter" ], + "transformation": "speedup", + "variables": [ + "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", + "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", + "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios", "constructor.updateForUse.SunModel" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Simulation Absolute performance", + "plot_types": [ "grouped_bar" ], + "transformation": "performance", + "variables": [ + "execute.simulation.total", "execute.simulation.solarMasks.total", "execute.simulation.buildingExecuteStep" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Simulation Relative performance", + "plot_types": [ "stacked_bar", "grouped_bar" ], + "transformation": "relative_performance", + "variables": [ + "execute.simulation.total", "execute.simulation.solarMasks.total", "execute.simulation.buildingExecuteStep" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Simulation Speedup", + "plot_types": [ "scatter" ], + "transformation": "speedup", + "variables": [ + "execute.simulation.total", "execute.simulation.solarMasks.total", "execute.simulation.buildingExecuteStep" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Postprocess Absolute performance", + "plot_types": [ "grouped_bar" ], + "transformation": "performance", + "variables": [ + "execute.postprocess.total", "execute.postprocess.exportOutputs" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Postprocess Relative performance", + "plot_types": [ "stacked_bar", "grouped_bar" ], + "transformation": "relative_performance", + "variables": [ + "execute.postprocess.total", "execute.postprocess.exportOutputs" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "Postprocess Speedup", + "plot_types": [ "scatter" ], + "transformation": "speedup", + "variables": [ + "execute.postprocess.total", "execute.postprocess.exportOutputs" + ], + "names": [], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + } + }, + { + "title": "General Absolute performance", + "plot_types": [ "grouped_bar" ], + "transformation": "performance", + "variables": [ + "constructor.total", "execute.simulation.total","execute.postprocess.total" + ], "names": [], "xaxis": { - "parameter": "nb_tasks.tasks_per_node", + "parameter": "resources.tasks", "label": "Number of tasks" }, "yaxis": { @@ -16,13 +168,15 @@ } }, { - "title": "Relative performance", + "title": "General Relative performance", "plot_types": [ "stacked_bar", "grouped_bar" ], "transformation": "relative_performance", - "variables": [ "execute", "postprocess", "constructor", "updateForUse", "simulation" ], + "variables": [ + "constructor.total", "execute.simulation.total","execute.postprocess.total" + ], "names": [], "xaxis": { - "parameter": "nb_tasks.tasks_per_node", + "parameter": "resources.tasks", "label": "Number of tasks" }, "yaxis": { @@ -30,13 +184,15 @@ } }, { - "title": "Speedup", + "title": "General Speedup", "plot_types": [ "scatter" ], "transformation": "speedup", - "variables": [ "execute", "postprocess", "constructor", "updateForUse", "simulation" ], + "variables": [ + "constructor.total", "execute.simulation.total","execute.postprocess.total" + ], "names": [], "xaxis": { - "parameter": "nb_tasks.tasks_per_node", + "parameter": "resources.tasks", "label": "Number of tasks" }, "yaxis": { diff --git a/config/kub/poznan.json b/config/kub/poznan.json index 308776a0..ffe1991e 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -3,6 +3,10 @@ "output_directory": "{{machine.output_app_dir}}/kub", "use_case_name": "poznan", "timeout":"0-0:15:0", + "resources":{ + "tasks":"{{parameters.resources.tasks.value}}", + "exclusive_access":"{{parameters.resources.exclusive_access.value}}" + }, "platforms": { "apptainer":{ "image": { @@ -30,15 +34,15 @@ "stages": [ { "name":"", - "filepath": "instances/np_{{parameters.nb_tasks.tasks.value}}/logs/timers.json", + "filepath": "instances/np_{{parameters.resources.tasks.value}}/logs/timers.json", "format": "json", - "variables_path":["execute","postprocess.*","simulation.*"] + "variables_path":["*"] }, { "name":"", "filepath": "logs/timers.json", "format": "json", - "variables_path":["constructor","updateForUse.*"] + "variables_path":["*"] } ] }, @@ -48,14 +52,13 @@ }, "parameters": [ { - "name": "nb_tasks", + "name": "resources", "sequence": [ - {"tasks_per_node" : 8, "tasks":8, "exclusive_access":true}, - {"tasks_per_node" : 16, "tasks":16, "exclusive_access":true}, - {"tasks_per_node" : 32, "tasks":32, "exclusive_access":true}, - {"tasks_per_node" : 64, "tasks":64, "exclusive_access":true}, - {"tasks_per_node" : 128, "tasks":128, "exclusive_access":true}, - {"tasks_per_node" : 128, "tasks":256, "exclusive_access":true} + {"tasks":8, "exclusive_access":true}, + {"tasks":16, "exclusive_access":true}, + {"tasks":32, "exclusive_access":true}, + {"tasks":64, "exclusive_access":true}, + {"tasks":128, "exclusive_access":true} ] } ] From 448c14b18132fd0e80fc23064ab0f2ab01a30183 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 27 Jan 2025 16:25:51 +0100 Subject: [PATCH 12/20] support names in plots --- .../tutorial/pages/configurationfiles/plots.adoc | 14 +++++++------- .../benchmarking/reframe/config/configPlots.py | 5 +++++ src/feelpp/benchmarking/report/figureFactory.py | 8 ++++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/docs/modules/tutorial/pages/configurationfiles/plots.adoc b/docs/modules/tutorial/pages/configurationfiles/plots.adoc index 4dab7308..3014ecf4 100644 --- a/docs/modules/tutorial/pages/configurationfiles/plots.adoc +++ b/docs/modules/tutorial/pages/configurationfiles/plots.adoc @@ -120,7 +120,7 @@ plot_config = Plot(**{ "plot_types": [ "stacked_bar", "grouped_bar" ], "transformation": "performance", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "xaxis":{ "parameter":"nb_tasks.tasks", "label":"Number of tasks" @@ -148,7 +148,7 @@ plot_config = Plot(**{ "plot_types": [ "stacked_bar", "grouped_bar" ], "transformation": "relative_performance", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "xaxis":{ "parameter":"nb_tasks.tasks", "label":"Number of tasks" @@ -179,7 +179,7 @@ plot_config = Plot(**{ "plot_types": [ "stacked_bar", "grouped_bar" ], "transformation": "speedup", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "xaxis":{ "parameter":"nb_tasks.tasks", "label":"Number of tasks" @@ -208,7 +208,7 @@ figures = FigureFactory.create(Plot(**{ "plot_types": [ "scatter" ], "transformation": "performance", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "color_axis":{ "parameter":"performance_variable", "label":"Performance variable" @@ -236,7 +236,7 @@ figures = FigureFactory.create(Plot(**{ "plot_types": [ "stacked_bar" ], "transformation": "performance", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "color_axis":{ "parameter":"performance_variable", "label":"Performance variable" @@ -265,7 +265,7 @@ figures = FigureFactory.create(Plot(**{ "plot_types": [ "grouped_bar" ], "transformation": "performance", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "color_axis":{ "parameter":"performance_variable", "label":"Performance variable" @@ -293,7 +293,7 @@ figures = FigureFactory.create(Plot(**{ "plot_types": [ "table" ], "transformation": "performance", "variables": [ "computation_time","communication_time" ], - "names": ["Time"], + "names": ["Computation","Comunication"], "color_axis":{ "parameter":"performance_variable", "label":"Performance variable" diff --git a/src/feelpp/benchmarking/reframe/config/configPlots.py b/src/feelpp/benchmarking/reframe/config/configPlots.py index 0ac89960..b94ae75c 100644 --- a/src/feelpp/benchmarking/reframe/config/configPlots.py +++ b/src/feelpp/benchmarking/reframe/config/configPlots.py @@ -29,6 +29,11 @@ class Plot(BaseModel): color_axis:Optional[PlotAxis] = None layout_modifiers: Optional[Dict] = {} + @model_validator(mode="after") + def checkNames(self): + if self.variables and self.names: + assert len(self.variables)==len(self.names) + return self @field_validator("xaxis","secondary_axis", mode="after") @classmethod diff --git a/src/feelpp/benchmarking/report/figureFactory.py b/src/feelpp/benchmarking/report/figureFactory.py index 68c1152e..0f215508 100644 --- a/src/feelpp/benchmarking/report/figureFactory.py +++ b/src/feelpp/benchmarking/report/figureFactory.py @@ -80,6 +80,13 @@ def createSliderAnimation(self,df): fig = go.Figure() return fig + def renameColumns(self,df): + if self.config.variables and self.config.names: + assert len(self.config.variables) == len(self.config.names) + df = df.rename(columns = {var:name for var,name in zip(self.config.variables,self.config.names)}) + + return df + def createFigure(self,df): """ Creates a figure from the master dataframe Args: @@ -88,6 +95,7 @@ def createFigure(self,df): go.Figure: Plotly figure corresponding to the grouped Bar type """ df = self.transformation_strategy.calculate(df) + df = self.renameColumns(df) if isinstance(df.index,MultiIndex): figure = self.createMultiindexFigure(df) From 7e63233db39db7adb897e4c7d1462f7f78b02b49 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 3 Feb 2025 15:45:05 +0100 Subject: [PATCH 13/20] add public partition to gaya --- .../reframe/config/machineConfigs/gaya.py | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/feelpp/benchmarking/reframe/config/machineConfigs/gaya.py b/src/feelpp/benchmarking/reframe/config/machineConfigs/gaya.py index bf9e4f2a..7c97c0bd 100644 --- a/src/feelpp/benchmarking/reframe/config/machineConfigs/gaya.py +++ b/src/feelpp/benchmarking/reframe/config/machineConfigs/gaya.py @@ -41,6 +41,41 @@ 'memory_per_node':500 } }, + { + 'name': 'public', + 'scheduler': 'squeue', + 'launcher': 'mpiexec', + 'max_jobs': 8, + 'access': ['--partition=public'], + 'environs': ['default','hpcx'], + 'prepare_cmds': [ + 'source /etc/profile.d/modules.sh', + "export PATH=/opt/apptainer/v1.3.5/apptainer/bin/:$PATH" + ], + 'processor': { + 'num_cpus': 128 + }, + 'resources': [ + { + 'name':'launcher_options', + 'options':['-bind-to','core'] + } + ], + 'devices': [ + { + 'type': 'cpu', + 'num_devices': 6 + } + ], + 'container_platforms':[ + { + 'type': 'Apptainer' + } + ], + 'extras':{ + 'memory_per_node':500 + } + }, ] } ], @@ -50,14 +85,14 @@ 'modules': [], 'cc': 'clang', 'cxx': 'clang++', - 'target_systems': ['gaya:production'] + 'target_systems': ['gaya:production','gaya:public'] }, { 'name': 'hpcx', 'modules': ['hpcx'], 'cc': 'clang', 'cxx': 'clang++', - 'target_systems': ['gaya:production'] + 'target_systems': ['gaya:production','gaya:public'] } ] } From 87a014b4961e37b0c3e02d8f13c3299f72f7e8dc Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 3 Feb 2025 15:47:20 +0100 Subject: [PATCH 14/20] up kub cfg --- config/kub/kub_plots.json | 108 ++++++++++++-------------------------- config/kub/poznan.json | 12 ++--- 2 files changed, 40 insertions(+), 80 deletions(-) diff --git a/config/kub/kub_plots.json b/config/kub/kub_plots.json index df08d910..4c1991b7 100644 --- a/config/kub/kub_plots.json +++ b/config/kub/kub_plots.json @@ -2,33 +2,19 @@ "plots": [ { - "title": "Constructor Absolute performance", + "title": "Constructor UpdateForUse Absolute performance", "plot_types": [ "grouped_bar" ], "transformation": "performance", "variables": [ - "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", - "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", - "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios", "constructor.updateForUse.total" + "constructor.subtimers.updateForUse.subtimers.SunModel.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.updateMeshBuilding.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.weather.timeElapsed.max", + "constructor.subtimers.updateForUse.subtimers.buildingMap.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisMeshInit.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisPartition.timeElapsed.max", + "constructor.subtimers.updateForUse.subtimers.initBuildingModels.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.scenarios.timeElapsed.max" ], - "names": [], - "xaxis": { - "parameter": "resources.tasks", - "label": "Number of tasks" - }, - "yaxis": { - "label": "execution time (s)" - } - }, - { - "title": "Constructor Relative performance", - "plot_types": [ "stacked_bar", "grouped_bar" ], - "transformation": "relative_performance", - "variables": [ - "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", - "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", - "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios", "constructor.updateForUse.total" + "names": [ + "SunModel", "updateMeshBuilding", "weather", + "buildingMap", "gisMeshInit", "gisPartition", + "initBuildingModels", "scenarios" ], - "names": [], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -42,11 +28,15 @@ "plot_types": [ "scatter" ], "transformation": "speedup", "variables": [ - "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", - "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", - "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios", "constructor.updateForUse.SunModel" - ], - "names": [], + "constructor.subtimers.updateForUse.subtimers.SunModel.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.updateMeshBuilding.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.weather.timeElapsed.max", + "constructor.subtimers.updateForUse.subtimers.buildingMap.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisMeshInit.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisPartition.timeElapsed.max", + "constructor.subtimers.updateForUse.subtimers.initBuildingModels.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.scenarios.timeElapsed.max" + ], + "names": [ + "SunModel", "updateMeshBuilding", "weather", + "buildingMap", "gisMeshInit", "gisPartition", + "initBuildingModels", "scenarios" + ], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -60,25 +50,10 @@ "plot_types": [ "grouped_bar" ], "transformation": "performance", "variables": [ - "execute.simulation.total", "execute.simulation.solarMasks.total", "execute.simulation.buildingExecuteStep" + "execute.subtimers.simulation.subtimers.solarMasks.timeElapsed.max", + "execute.subtimers.simulation.subtimers.buildingExecuteStep.timeElapsed.max" ], - "names": [], - "xaxis": { - "parameter": "resources.tasks", - "label": "Number of tasks" - }, - "yaxis": { - "label": "execution time (s)" - } - }, - { - "title": "Simulation Relative performance", - "plot_types": [ "stacked_bar", "grouped_bar" ], - "transformation": "relative_performance", - "variables": [ - "execute.simulation.total", "execute.simulation.solarMasks.total", "execute.simulation.buildingExecuteStep" - ], - "names": [], + "names": ["Solar Masks","Building Execute Step"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -92,9 +67,10 @@ "plot_types": [ "scatter" ], "transformation": "speedup", "variables": [ - "execute.simulation.total", "execute.simulation.solarMasks.total", "execute.simulation.buildingExecuteStep" - ], - "names": [], + "execute.subtimers.simulation.subtimers.solarMasks.timeElapsed.max", + "execute.subtimers.simulation.subtimers.buildingExecuteStep.timeElapsed.max" + ], + "names": ["Solar Masks","Building Execute Step"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -108,25 +84,9 @@ "plot_types": [ "grouped_bar" ], "transformation": "performance", "variables": [ - "execute.postprocess.total", "execute.postprocess.exportOutputs" - ], - "names": [], - "xaxis": { - "parameter": "resources.tasks", - "label": "Number of tasks" - }, - "yaxis": { - "label": "execution time (s)" - } - }, - { - "title": "Postprocess Relative performance", - "plot_types": [ "stacked_bar", "grouped_bar" ], - "transformation": "relative_performance", - "variables": [ - "execute.postprocess.total", "execute.postprocess.exportOutputs" + "execute.subtimers.postprocess.timeElapsed.max" ], - "names": [], + "names": ["PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -140,9 +100,9 @@ "plot_types": [ "scatter" ], "transformation": "speedup", "variables": [ - "execute.postprocess.total", "execute.postprocess.exportOutputs" + "execute.subtimers.postprocess.timeElapsed.max" ], - "names": [], + "names": ["PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -156,9 +116,9 @@ "plot_types": [ "grouped_bar" ], "transformation": "performance", "variables": [ - "constructor.total", "execute.simulation.total","execute.postprocess.total" + "constructor.timeElapsed.max", "execute.subtimers.simulation.timeElapsed.max","execute.subtimers.postprocess.timeElapsed.max" ], - "names": [], + "names": ["Constructor", "Simulation", "PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -172,9 +132,9 @@ "plot_types": [ "stacked_bar", "grouped_bar" ], "transformation": "relative_performance", "variables": [ - "constructor.total", "execute.simulation.total","execute.postprocess.total" + "constructor.timeElapsed.max", "execute.subtimers.simulation.timeElapsed.max","execute.subtimers.postprocess.timeElapsed.max" ], - "names": [], + "names": ["Constructor", "Simulation", "PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -188,9 +148,9 @@ "plot_types": [ "scatter" ], "transformation": "speedup", "variables": [ - "constructor.total", "execute.simulation.total","execute.postprocess.total" + "constructor.timeElapsed.max", "execute.subtimers.simulation.timeElapsed.max","execute.subtimers.postprocess.timeElapsed.max" ], - "names": [], + "names": ["Constructor", "Simulation", "PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" diff --git a/config/kub/poznan.json b/config/kub/poznan.json index ffe1991e..44b05a9a 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -1,6 +1,6 @@ { "executable": "feelpp_kub_cem", - "output_directory": "{{machine.output_app_dir}}/kub", + "output_directory": "{{machine.output_app_dir}}/javier_test/kub", "use_case_name": "poznan", "timeout":"0-0:15:0", "resources":{ @@ -15,7 +15,8 @@ "input_dir":"/input_data/", "options": [ "--home {{machine.output_app_dir}}", - "--bind {{machine.input_dataset_base_dir}}/kub/cfg/:{{platforms.apptainer.input_dir}}" + "--bind {{machine.input_dataset_base_dir}}/kub/cfg/:{{platforms.apptainer.input_dir}}", + "--env OMP_NUM_THREADS=1" ], "append_app_option":[] }, @@ -54,11 +55,10 @@ { "name": "resources", "sequence": [ - {"tasks":8, "exclusive_access":true}, - {"tasks":16, "exclusive_access":true}, - {"tasks":32, "exclusive_access":true}, {"tasks":64, "exclusive_access":true}, - {"tasks":128, "exclusive_access":true} + {"tasks":128, "exclusive_access":true}, + {"tasks":256, "exclusive_access":true}, + {"tasks":384, "exclusive_access":true} ] } ] From 88c15b24bdc3bf13d83ebe766be9f2238115c4b9 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 10 Feb 2025 12:02:27 +0100 Subject: [PATCH 15/20] support pulling remote images --- config/kub/poznan.json | 7 +++-- src/feelpp/benchmarking/reframe/__main__.py | 14 +++++++++ .../reframe/config/configSchemas.py | 16 ++-------- tests/configtest/test_benchmark.py | 30 ------------------- 4 files changed, 21 insertions(+), 46 deletions(-) diff --git a/config/kub/poznan.json b/config/kub/poznan.json index 1f026669..086a8bfd 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -10,6 +10,7 @@ "platforms": { "apptainer":{ "image": { + "remote":"oras://ghcr.io/feelpp/ktirio-urban-building:master-sif", "name":"{{machine.containers.apptainer.image_base_dir}}/kub.sif" }, "input_dir":"/input_data/", @@ -25,11 +26,13 @@ "append_app_option":[] } }, + "input_file_dependencies":{ + "case_cfg":"Poznan.cfg" + }, "options": [ - "--config-file {{platforms.{{machine.platform}}.input_dir}}/Poznan.cfg", + "--config-file {{platforms.{{machine.platform}}.input_dir}}/{{input_file_dependencies.case_cfg}}", "--cem.database.directory {{output_directory}}/{{use_case_name}}/{{instance}}" ], - "outputs": [], "scalability": { "directory": "{{output_directory}}/{{use_case_name}}/{{instance}}/cem/", "stages": [ diff --git a/src/feelpp/benchmarking/reframe/__main__.py b/src/feelpp/benchmarking/reframe/__main__.py index 8675c932..b6c548b7 100644 --- a/src/feelpp/benchmarking/reframe/__main__.py +++ b/src/feelpp/benchmarking/reframe/__main__.py @@ -43,6 +43,20 @@ def main_cli(): app_reader.updateConfig(machine_reader.processor.flattenDict(machine_reader.config,"machine")) app_reader.updateConfig() #Update with own field + #PULL IMAGES + if not parser.args.dry_run: + for platform_name, platform_field in app_reader.config.platforms.items(): + if not platform_field.image or not platform_field.image.remote: + continue + + if platform_name == "apptainer": + print("Pulling apptainer image...") + subprocess.run(f"apptainer pull -F {platform_field.image.name} {platform_field.image.remote}", shell=True) + print(f"Apptainer images pulled in: {platform_field.name}") + elif platform_name == "docker": + raise NotImplementedError("Pulling docker image is not yet implemented") + + reframe_cmd = cmd_builder.buildCommand( app_reader.config.timeout) exit_code = subprocess.run(reframe_cmd, shell=True) diff --git a/src/feelpp/benchmarking/reframe/config/configSchemas.py b/src/feelpp/benchmarking/reframe/config/configSchemas.py index 7322d9c8..b269880a 100644 --- a/src/feelpp/benchmarking/reframe/config/configSchemas.py +++ b/src/feelpp/benchmarking/reframe/config/configSchemas.py @@ -48,25 +48,13 @@ class Scalability(BaseModel): class Image(BaseModel): - protocol:Optional[Literal["oras","docker","library","local"]] = None + remote: Optional[str] = None name:str - @model_validator(mode="before") - def extractProtocol(self): - """ Extracts the image protocol (oras, docker, etc..) or if a local image is provided. - If local, checks if the image exists """ - - self["protocol"] = self["name"].split("://")[0] if "://" in self["name"] else "local" - - if self["protocol"] not in ["oras","docker","library","local"]: - raise ValueError("Unkown Protocol") - - return self - @field_validator("name", mode="after") @classmethod def checkImage(cls,v,info): - if info.data["protocol"] == "local" and not ("{{" in v or "}}" in v) : + if not info.data["remote"] and not ("{{" in v or "}}" in v) : if not os.path.exists(v): if info.context and info.context.get("dry_run", False): print(f"Dry Run: Skipping image check for {v}") diff --git a/tests/configtest/test_benchmark.py b/tests/configtest/test_benchmark.py index 45fc11ff..f1afc305 100644 --- a/tests/configtest/test_benchmark.py +++ b/tests/configtest/test_benchmark.py @@ -7,36 +7,6 @@ -class TestImage: - """Tests for the Image schema""" - - dummy_image_path = "tests/data/configs/mockAppConfig.json" - - def test_extractProtocol(self): - """Tests the correct extraction of the protocol from the image name""" - image = Image(name=self.dummy_image_path) - assert image.protocol == "local" - assert image.name == self.dummy_image_path - - with pytest.raises(ValueError,match="Unkown Protocol"): - image = Image(name="unkown_local://tests/data/configs") - - image = Image(name="docker://test_name") - assert image.protocol == "docker" - assert image.name == "docker://test_name" - - - def test_checkImage(self): - """Tests that checking if image exists is done correctly""" - - with pytest.raises(FileNotFoundError): - image = Image(name="nonexistant_image.sif") - - #Dry run - image = Image.model_validate({"name":"nonexistant_image.sif"},context={"dry_run":True}) - assert image.protocol == "local" - - class TestPlatform: pass From 488e49664e07f1e97c9b3afbe0890308ddbe6b65 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 10 Feb 2025 14:20:51 +0100 Subject: [PATCH 16/20] fix conflict --- src/feelpp/benchmarking/reframe/__main__.py | 2 -- src/feelpp/benchmarking/report/figures/base.py | 12 ++++++++++-- .../benchmarking/report/figures/plotlyFigures.py | 9 --------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/feelpp/benchmarking/reframe/__main__.py b/src/feelpp/benchmarking/reframe/__main__.py index b6c548b7..7bb54976 100644 --- a/src/feelpp/benchmarking/reframe/__main__.py +++ b/src/feelpp/benchmarking/reframe/__main__.py @@ -50,9 +50,7 @@ def main_cli(): continue if platform_name == "apptainer": - print("Pulling apptainer image...") subprocess.run(f"apptainer pull -F {platform_field.image.name} {platform_field.image.remote}", shell=True) - print(f"Apptainer images pulled in: {platform_field.name}") elif platform_name == "docker": raise NotImplementedError("Pulling docker image is not yet implemented") diff --git a/src/feelpp/benchmarking/report/figures/base.py b/src/feelpp/benchmarking/report/figures/base.py index c1aa9bca..49923bef 100644 --- a/src/feelpp/benchmarking/report/figures/base.py +++ b/src/feelpp/benchmarking/report/figures/base.py @@ -21,7 +21,9 @@ def createSimpleFigure(self,df): raise NotImplementedError("Pure virtual function. Not to be called from the base class") def createCsv(self,df): - return self.transformation_strategy.calculate(df).to_csv() + df = self.transformation_strategy.calculate(df) + df = self.renameColumns(df) + return df.to_csv() def createFigure(self,df, **args): """ Creates a figure from the master dataframe @@ -31,7 +33,7 @@ def createFigure(self,df, **args): go.Figure: Plotly figure corresponding to the grouped Bar type """ df = self.transformation_strategy.calculate(df) - + df = self.renameColumns(df) if isinstance(df.index,MultiIndex): figure = self.createMultiindexFigure(df, **args) else: @@ -39,6 +41,12 @@ def createFigure(self,df, **args): return figure + def renameColumns(self,df): + if self.config.variables and self.config.names: + assert len(self.config.variables) == len(self.config.names) + df = df.rename(columns = {var:name for var,name in zip(self.config.variables,self.config.names)}) + + return df class CompositeFigure: def createFigure(self, df): diff --git a/src/feelpp/benchmarking/report/figures/plotlyFigures.py b/src/feelpp/benchmarking/report/figures/plotlyFigures.py index 47d3d672..1bdf904e 100644 --- a/src/feelpp/benchmarking/report/figures/plotlyFigures.py +++ b/src/feelpp/benchmarking/report/figures/plotlyFigures.py @@ -63,12 +63,6 @@ def createSliderAnimation(self,df): fig = go.Figure() return fig - def renameColumns(self,df): - if self.config.variables and self.config.names: - assert len(self.config.variables) == len(self.config.names) - df = df.rename(columns = {var:name for var,name in zip(self.config.variables,self.config.names)}) - - return df def createMultiindexFigure(self,df): """ Creates a plotly figure from a multiIndex dataframe @@ -95,9 +89,6 @@ def createFigure(self,df): Returns: go.Figure: Plotly figure corresponding to the grouped Bar type """ - df = self.transformation_strategy.calculate(df) - df = self.renameColumns(df) - figure = super().createFigure(df) figure.update_layout(self.config.layout_modifiers) figure = self.updateLayout(figure) From 0f48b669a8c937548a7dd44f6bb65d050cd4f56d Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 10 Feb 2025 15:12:59 +0100 Subject: [PATCH 17/20] up kub files --- config/kub/kub_plots.json | 116 ++++++++++++-------------------------- config/kub/poznan.json | 30 +++++----- 2 files changed, 49 insertions(+), 97 deletions(-) diff --git a/config/kub/kub_plots.json b/config/kub/kub_plots.json index 4c1991b7..e209817e 100644 --- a/config/kub/kub_plots.json +++ b/config/kub/kub_plots.json @@ -2,41 +2,11 @@ "plots": [ { - "title": "Constructor UpdateForUse Absolute performance", - "plot_types": [ "grouped_bar" ], - "transformation": "performance", - "variables": [ - "constructor.subtimers.updateForUse.subtimers.SunModel.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.updateMeshBuilding.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.weather.timeElapsed.max", - "constructor.subtimers.updateForUse.subtimers.buildingMap.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisMeshInit.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisPartition.timeElapsed.max", - "constructor.subtimers.updateForUse.subtimers.initBuildingModels.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.scenarios.timeElapsed.max" - ], - "names": [ - "SunModel", "updateMeshBuilding", "weather", - "buildingMap", "gisMeshInit", "gisPartition", - "initBuildingModels", "scenarios" - ], - "xaxis": { - "parameter": "resources.tasks", - "label": "Number of tasks" - }, - "yaxis": { - "label": "execution time (s)" - } - }, - { - "title": "Constructor Speedup", - "plot_types": [ "scatter" ], - "transformation": "speedup", - "variables": [ - "constructor.subtimers.updateForUse.subtimers.SunModel.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.updateMeshBuilding.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.weather.timeElapsed.max", - "constructor.subtimers.updateForUse.subtimers.buildingMap.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisMeshInit.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.gisPartition.timeElapsed.max", - "constructor.subtimers.updateForUse.subtimers.initBuildingModels.timeElapsed.max", "constructor.subtimers.updateForUse.subtimers.scenarios.timeElapsed.max" - ], - "names": [ - "SunModel", "updateMeshBuilding", "weather", - "buildingMap", "gisMeshInit", "gisPartition", - "initBuildingModels", "scenarios" - ], + "title": "General Relative performance", + "plot_types": [ "stacked_bar", "grouped_bar" ], + "transformation": "relative_performance", + "variables": [ "constructor", "simulation", "postprocess" ], + "names": ["Constructor", "Simulation", "PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -46,14 +16,11 @@ } }, { - "title": "Simulation Absolute performance", - "plot_types": [ "grouped_bar" ], + "title": "General Absolute performance", + "plot_types": [ "grouped_bar","stacked_bar"], "transformation": "performance", - "variables": [ - "execute.subtimers.simulation.subtimers.solarMasks.timeElapsed.max", - "execute.subtimers.simulation.subtimers.buildingExecuteStep.timeElapsed.max" - ], - "names": ["Solar Masks","Building Execute Step"], + "variables": [ "constructor", "simulation", "postprocess" ], + "names": ["Constructor", "Simulation", "PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -63,14 +30,11 @@ } }, { - "title": "Simulation Speedup", + "title": "General Speedup", "plot_types": [ "scatter" ], "transformation": "speedup", - "variables": [ - "execute.subtimers.simulation.subtimers.solarMasks.timeElapsed.max", - "execute.subtimers.simulation.subtimers.buildingExecuteStep.timeElapsed.max" - ], - "names": ["Solar Masks","Building Execute Step"], + "variables": [ "constructor", "simulation","postprocess" ], + "names": ["Constructor", "Simulation", "PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -80,13 +44,19 @@ } }, { - "title": "Postprocess Absolute performance", + "title": "Constructor UpdateForUse Absolute performance", "plot_types": [ "grouped_bar" ], "transformation": "performance", "variables": [ - "execute.subtimers.postprocess.timeElapsed.max" + "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", + "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", + "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios" + ], + "names": [ + "SunModel", "updateMeshBuilding", "weather", + "buildingMap", "gisMeshInit", "gisPartition", + "initBuildingModels", "scenarios" ], - "names": ["PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -96,13 +66,19 @@ } }, { - "title": "Postprocess Speedup", + "title": "Constructor Speedup", "plot_types": [ "scatter" ], "transformation": "speedup", "variables": [ - "execute.subtimers.postprocess.timeElapsed.max" + "constructor.updateForUse.SunModel", "constructor.updateForUse.updateMeshBuilding", "constructor.updateForUse.weather", + "constructor.updateForUse.buildingMap", "constructor.updateForUse.gisMeshInit", "constructor.updateForUse.gisPartition", + "constructor.updateForUse.initBuildingModels", "constructor.updateForUse.scenarios" + ], + "names": [ + "SunModel", "updateMeshBuilding", "weather", + "buildingMap", "gisMeshInit", "gisPartition", + "initBuildingModels", "scenarios" ], - "names": ["PostProcess"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -112,29 +88,11 @@ } }, { - "title": "General Absolute performance", + "title": "Simulation Absolute performance", "plot_types": [ "grouped_bar" ], "transformation": "performance", - "variables": [ - "constructor.timeElapsed.max", "execute.subtimers.simulation.timeElapsed.max","execute.subtimers.postprocess.timeElapsed.max" - ], - "names": ["Constructor", "Simulation", "PostProcess"], - "xaxis": { - "parameter": "resources.tasks", - "label": "Number of tasks" - }, - "yaxis": { - "label": "execution time (s)" - } - }, - { - "title": "General Relative performance", - "plot_types": [ "stacked_bar", "grouped_bar" ], - "transformation": "relative_performance", - "variables": [ - "constructor.timeElapsed.max", "execute.subtimers.simulation.timeElapsed.max","execute.subtimers.postprocess.timeElapsed.max" - ], - "names": ["Constructor", "Simulation", "PostProcess"], + "variables": [ "simulation.solarMasks", "simulation.buildingExecuteStep" ], + "names": ["Solar Masks","Building Execute Step"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" @@ -144,13 +102,11 @@ } }, { - "title": "General Speedup", + "title": "Simulation Speedup", "plot_types": [ "scatter" ], "transformation": "speedup", - "variables": [ - "constructor.timeElapsed.max", "execute.subtimers.simulation.timeElapsed.max","execute.subtimers.postprocess.timeElapsed.max" - ], - "names": ["Constructor", "Simulation", "PostProcess"], + "variables": [ "simulation.solarMasks", "simulation.buildingExecuteStep" ], + "names": ["Solar Masks","Building Execute Step"], "xaxis": { "parameter": "resources.tasks", "label": "Number of tasks" diff --git a/config/kub/poznan.json b/config/kub/poznan.json index 086a8bfd..9d7094a7 100644 --- a/config/kub/poznan.json +++ b/config/kub/poznan.json @@ -13,48 +13,41 @@ "remote":"oras://ghcr.io/feelpp/ktirio-urban-building:master-sif", "name":"{{machine.containers.apptainer.image_base_dir}}/kub.sif" }, - "input_dir":"/input_data/", + "input_dir":"/input_data", "options": [ "--home {{machine.output_app_dir}}", - "--bind {{machine.input_dataset_base_dir}}/kub/cfg/:{{platforms.apptainer.input_dir}}", + "--bind {{machine.input_dataset_base_dir}}:{{platforms.apptainer.input_dir}}", "--env OMP_NUM_THREADS=1" ], "append_app_option":[] }, "builtin":{ - "input_dir":"{{machine.input_dataset_base_dir}}/kub/cfg/", + "input_dir":"{{machine.input_dataset_base_dir}}", "append_app_option":[] } }, "input_file_dependencies":{ - "case_cfg":"Poznan.cfg" + "case_cfg":"kub/cfg/Poznan.cfg" }, "options": [ "--config-file {{platforms.{{machine.platform}}.input_dir}}/{{input_file_dependencies.case_cfg}}", - "--cem.database.directory {{output_directory}}/{{use_case_name}}/{{instance}}" + "--cem.database.directory {{output_directory}}/{{instance}}/{{use_case_name}}", + "--directory {{output_directory}}/{{instance}}/{{use_case_name}}" ], "scalability": { - "directory": "{{output_directory}}/{{use_case_name}}/{{instance}}/cem/", + "directory": "{{output_directory}}/{{instance}}/{{use_case_name}}/cem/", "stages": [ { "name":"", "filepath": "instances/np_{{parameters.resources.tasks.value}}/logs/timers.json", "format": "json", - "variables_path":["*.timeElapsed.max","execute.subtimers.*.subtimers.*.timeElapsed.max"], - "units":{ - "*":"custom instance unit", - "postprocess.exportOutputs":"exportOutputs unit special", - "simulation.buildingExecuteStep":"buildingExecuteStep unit special" - } + "variables_path":["*.timeElapsed.max","execute.subtimers.*.subtimers.*.timeElapsed.max","execute.subtimers.*.timeElapsed.max"] }, { "name":"", "filepath": "logs/timers.json", "format": "json", - "variables_path":["*.timeElapsed.max","*.subtimers.updateForUse.subtimers.*.timeElapsed.max"], - "units":{ - "*":"custom unit" - } + "variables_path":["*.timeElapsed.max","*.subtimers.*.subtimers.*.timeElapsed.max"] } ] }, @@ -68,7 +61,10 @@ "sequence": [ {"tasks":32, "exclusive_access":true}, {"tasks":64, "exclusive_access":true}, - {"tasks":128, "exclusive_access":true} + {"tasks":128, "exclusive_access":true}, + {"tasks":256, "exclusive_access":true}, + {"tasks":384, "exclusive_access":true}, + {"tasks":512, "exclusive_access":true} ] } ] From f71729a09fc9e05c0955ef1929022eb5c891ac4a Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 10 Feb 2025 15:13:13 +0100 Subject: [PATCH 18/20] up gaya for kub --- config/machines/gaya.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/machines/gaya.json b/config/machines/gaya.json index 47f15c64..072c4823 100644 --- a/config/machines/gaya.json +++ b/config/machines/gaya.json @@ -1,18 +1,18 @@ { "machine": "gaya", - "targets":["production:apptainer:"], - "execution_policy": "serial", + "targets":["public:builtin:hpcx"], + "execution_policy": "async", "reframe_base_dir":"$PWD/build/reframe", "reports_base_dir":"$PWD/reports/", //If input_user_dir exists, input_dataset_base_dir is supposed to be temporary. Will be deleted after test. // If input_user_dir DOES NOT exist, input_datates_base_dir will not be deleted "input_dataset_base_dir":"/data/scratch/cladellash/feelppdb/input_data", - "input_user_dir":"/home/u2/cladellash/largedataexample/input_data/", + // "input_user_dir":"/home/u2/cladellash/largedataexample/input_data/", "output_app_dir":"/data/scratch/cladellash/feelppdb", "containers":{ "apptainer":{ - // "cachedir": "/home/u2/cladellash/.apptainer/cache", - // "tmpdir": "/data/scratch/cladellash/images/tmp", + "cachedir": "/home/u2/cladellash/.apptainer/cache", + "tmpdir": "/data/scratch/cladellash/images/tmp", "image_base_dir":"/data/scratch/cladellash/images", "options":[ "--sharens", From 6778f19a7076b1d0d249d65a40842701527d2047 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Mon, 10 Feb 2025 15:16:55 +0100 Subject: [PATCH 19/20] up heat plots --- config/toolbox_heat/heat_plots.json | 55 ++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/config/toolbox_heat/heat_plots.json b/config/toolbox_heat/heat_plots.json index 2fac1b4d..0978a1cf 100644 --- a/config/toolbox_heat/heat_plots.json +++ b/config/toolbox_heat/heat_plots.json @@ -28,7 +28,7 @@ "label": "Measures" }, "aggregations":[ - {"column":"resources.tasks","agg":"filter:640"} + {"column":"resources.tasks","agg":"filter:768"} ] }, { @@ -57,6 +57,7 @@ "label":"Performance variable" }, "aggregations":[ + {"column":"repeat", "agg":"min"}, {"column":"discretization","agg":"filter:P1"} ] }, @@ -204,6 +205,58 @@ "aggregations":[ {"column":"discretization","agg":"filter:P3"} ] + }, + { + "title": "Algebraic-solve execution time", + "plot_types": [ "grouped_bar" ], + "transformation": "performance", + "variables": [ + "Solve_algebraic-solve" + ], + "names": [ ], + "xaxis": { + "parameter": "resources.tasks", + "label": "Number of tasks" + }, + "yaxis": { + "label": "execution time (s)" + }, + "color_axis":{ + "parameter":"mesh", + "label":"Mesh" + }, + "secondary_axis":{ + "parameter":"discretization", + "label":"Discretization" + }, + "aggregations":[ + {"column":"performance_variable","agg":"filter:Solve_algebraic-solve"} + ] + }, + { + "title":"Number of iterations of GMRES", + "plot_types":["scatter"], + "transformation":"performance", + "variables":["Solve_ksp-niter"], + "names":[], + "xaxis":{ + "parameter":"resources.tasks", + "label":"Number of tasks" + }, + "yaxis":{ + "label":"Number of iterations" + }, + "color_axis":{ + "parameter":"mesh", + "label":"Mesh" + }, + "secondary_axis":{ + "parameter":"discretization", + "label":"Discretization" + }, + "aggregations":[ + {"column":"performance_variable","agg":"filter:Solve_ksp-niter"} + ] } ] } \ No newline at end of file From ee453a09d49478c8deb8aa20da4836b88954ba84 Mon Sep 17 00:00:00 2001 From: JavierCladellas <82624449+JavierCladellas@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:33:06 +0100 Subject: [PATCH 20/20] Add benchmark for feelpp_kub_cem - poznan --- docs/modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 864e2231..4be9eeec 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -4,4 +4,4 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] = Benchmarking :page-layout: toolboxes :page-tags: catalog, catalog-index -:docdatetime: 2025-01-22T11:42:45 \ No newline at end of file +:docdatetime: 2025-02-10T15:33:05 \ No newline at end of file