Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

215 make memory a parameter #218

Open
wants to merge 102 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
f8af9bc
init vega rfm cfg #206
JavierCladellas Dec 20, 2024
d68b8ed
init vega env script #206
JavierCladellas Dec 20, 2024
c2fabb5
add vega #206
JavierCladellas Dec 20, 2024
f66b6e8
tmod4 -> lmod & add openMPI gcc module
JavierCladellas Dec 20, 2024
257f3d8
Use specific python version #206
JavierCladellas Dec 20, 2024
6fd3002
rm env vars from rfm cfg #206
JavierCladellas Dec 20, 2024
2ddd5fc
add openmpi module for discoverer #206
JavierCladellas Dec 20, 2024
d78e405
try using python module #206
JavierCladellas Dec 20, 2024
14262e9
rm comments #206
JavierCladellas Jan 13, 2025
b11dfaf
add python3.12 in classifiers #206
JavierCladellas Jan 13, 2025
6c0c93c
add Javier to authors
JavierCladellas Jan 13, 2025
7df9ca8
echo modules avail #206
JavierCladellas Jan 13, 2025
423af3b
module avail python #206
JavierCladellas Jan 13, 2025
6286d7c
use python 3.10 #206 [ci skip]
JavierCladellas Jan 13, 2025
d093f20
debug #206
JavierCladellas Jan 13, 2025
4efc5e3
explicit python version #206
JavierCladellas Jan 13, 2025
0b6957a
debug python #206
JavierCladellas Jan 13, 2025
c84c10f
try fix #206
JavierCladellas Jan 13, 2025
f496426
fix subparameter in missing vals
JavierCladellas Jan 13, 2025
715018f
Merge branch 'master' into 206-vega
JavierCladellas Jan 13, 2025
6ae0458
add quotas for vega #206
JavierCladellas Jan 14, 2025
9be5852
try fix validation error #206
JavierCladellas Jan 14, 2025
852d1de
better syntax
JavierCladellas Jan 14, 2025
90ff196
bug fix
JavierCladellas Jan 14, 2025
4758b73
stop using python in antora
JavierCladellas Jan 15, 2025
f3607b1
add zip to jinja2
JavierCladellas Jan 15, 2025
f56ea7b
add individual download CSV buttons #170
JavierCladellas Jan 15, 2025
cc3cca2
bug fixes
JavierCladellas Jan 15, 2025
99c9b52
big figureFactory refactor
JavierCladellas Jan 15, 2025
68985dc
docstrings #170
JavierCladellas Jan 16, 2025
f383ec8
rm unused CSS
JavierCladellas Jan 16, 2025
542a3c2
add download buttons to overviews #170
JavierCladellas Jan 16, 2025
875dd6d
pass template path to renderer
JavierCladellas Jan 16, 2025
0d7a160
refactor figure templates #170
JavierCladellas Jan 16, 2025
63862b4
more figure refactoring #170
JavierCladellas Jan 16, 2025
35366d5
Start work on LaTeX button. #170
JavierCladellas Jan 16, 2025
54a8bec
SoC and add filters #170 (strip quotes)
JavierCladellas Jan 16, 2025
8a2e6bb
Use strategy + factory in controller #170
JavierCladellas Jan 16, 2025
00b2b29
strategies --> transformationStrategies
JavierCladellas Jan 16, 2025
45a25ab
mv data generation strategies #170
JavierCladellas Jan 16, 2025
649b816
rename test (strategies)
JavierCladellas Jan 16, 2025
c972701
init data generation tests #170
JavierCladellas Jan 16, 2025
29ed057
refactor mock data
JavierCladellas Jan 16, 2025
bbb6907
StrategyFactory -> TransformationStrategyFactory
JavierCladellas Jan 16, 2025
f919cb6
add mock params
JavierCladellas Jan 16, 2025
034f6dc
add dataGenerationStrategies tests #170
JavierCladellas Jan 16, 2025
e8e3da9
transformationStrategies -> transformationFactory
JavierCladellas Jan 16, 2025
d00043e
dataGenerationStrategies -> dataGenerationFactory #170
JavierCladellas Jan 16, 2025
c266413
TestStrategy -> TestFactory
JavierCladellas Jan 16, 2025
8ab2794
add parameter conditions #215
JavierCladellas Jan 17, 2025
3299f5f
add resources field #215
JavierCladellas Jan 20, 2025
6bea159
up tests to support resources field #215
JavierCladellas Jan 20, 2025
a41b458
add memory as extra #215
JavierCladellas Jan 20, 2025
6f1ad99
handle memory in resource dispatch #215
JavierCladellas Jan 20, 2025
a8ed6ce
split ressource management logic #215
JavierCladellas Jan 20, 2025
71475d4
docstrings #215
JavierCladellas Jan 20, 2025
498bd82
add tests for resource assignation #215
JavierCladellas Jan 20, 2025
c5d254c
add memory to thermal_bridges #215
JavierCladellas Jan 20, 2025
ac7d5c7
Merge branch '206-vega' into 215-make-memory-a-parameter
JavierCladellas Jan 20, 2025
c922452
fix typo
JavierCladellas Jan 20, 2025
8099aa8
rm old memory field
JavierCladellas Jan 20, 2025
99de9a6
use only tasks #215
JavierCladellas Jan 20, 2025
656458e
typo #215
JavierCladellas Jan 20, 2025
8478cdd
Merge branch '170-add-csv-and-latex-export-buttons' into 215-make-mem…
JavierCladellas Jan 20, 2025
9a1b506
fix condition handling #215
JavierCladellas Jan 20, 2025
2dadb07
set min tasks_per_node to 1 #215
JavierCladellas Jan 20, 2025
d514d93
output script and logs
JavierCladellas Jan 20, 2025
560f369
add mem directive #215
JavierCladellas Jan 21, 2025
9810046
lower mem #215
JavierCladellas Jan 21, 2025
e911833
rm print
JavierCladellas Jan 21, 2025
1ea9daf
rm unused method
JavierCladellas Jan 21, 2025
caf4815
cmd -> bash (syntax highligt)
JavierCladellas Jan 21, 2025
ad2e4ab
add logs partial to param table
JavierCladellas Jan 21, 2025
50ca58e
docstring
JavierCladellas Jan 21, 2025
fb12ce6
hotfix for dry-run stuck
JavierCladellas Jan 21, 2025
ba446b8
fix memory hadnling #215
JavierCladellas Jan 21, 2025
e6e8e9f
add memory per node in hpc systems #215
JavierCladellas Jan 21, 2025
58f444b
up case heat thermal bridges gaya #215
JavierCladellas Jan 21, 2025
c4e3cd0
fix typo in ci
JavierCladellas Jan 21, 2025
9b5f34d
change overview to new parameter names #215
JavierCladellas Jan 21, 2025
a82321e
fix memory enforcing #215
JavierCladellas Jan 22, 2025
38f335d
rm use_nodes_option #215
JavierCladellas Jan 22, 2025
d4a9064
rm discoverer module not found (openmpi)
JavierCladellas Jan 22, 2025
88cddf9
put use_node_options, force num_Tasks on taskStrategy #215
JavierCladellas Jan 22, 2025
0274980
Add benchmark for feelpp_toolbox_heat - ThermalBridgesENISO10211
JavierCladellas Jan 22, 2025
0a4f140
support '|' separator on plot config (for when benchmarks have differ…
JavierCladellas Jan 22, 2025
3e4b06f
docstrings & tests
JavierCladellas Jan 22, 2025
979aa49
up memoryEnforcer tests #215
JavierCladellas Jan 22, 2025
a1f012d
fix test and docstring
JavierCladellas Jan 22, 2025
3cd8be1
Merge pull request #217 from feelpp/new-benchmark
JavierCladellas Jan 22, 2025
3b5183e
move rfm output export after_performance -> after_run #215
JavierCladellas Jan 22, 2025
b623a1c
add assert for mem per node #215
JavierCladellas Jan 22, 2025
84b73b8
made num_nodes a rfm variable #215
JavierCladellas Jan 23, 2025
3f47e86
hotfix to show actual resources for tests in param table #215 Also ad…
JavierCladellas Jan 23, 2025
30f90b2
factor tasks per node #215
JavierCladellas Jan 23, 2025
92c6eec
rm use_nodes_option #215
JavierCladellas Jan 23, 2025
c14d907
fix num nodes computation #215
JavierCladellas Jan 23, 2025
eb8a451
fix tests #215
JavierCladellas Jan 23, 2025
afc78b9
render param table even on empty
JavierCladellas Jan 27, 2025
6c643d9
fix typo
JavierCladellas Jan 30, 2025
f9fa444
conditions are now lists #215
JavierCladellas Jan 30, 2025
09994b2
add total run time to param table
JavierCladellas Jan 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ jobs:
- name: Render docs
run: |
source .venv/bin/activate
render-benchmarks --config_file=./tmp/website_config.json
render-benchmarks --config-file=./tmp/website_config.json
- name: Compile docs
run: |
source .venv/bin/activate
Expand Down
7 changes: 6 additions & 1 deletion config/tests_parallelSum/parallelSum.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
}
]
},
// Resources for the test
"resources":{
"tasks":"{{parameters.resources.tasks.value}}",
"exclusive_access":"{{parameters.resources.exclusive_access.value}}"
},
// Files containing app outputs
"outputs": [
{
Expand All @@ -35,7 +40,7 @@
// Test parameters
"parameters": [
{
"name": "nb_tasks",
"name": "resources",
"sequence": [
{"tasks" : 1, "exclusive_access":true},
{"tasks" : 2, "exclusive_access":true},
Expand Down
6 changes: 3 additions & 3 deletions config/tests_parallelSum/plots.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"variables": [ "computation_time" ],
"names": ["Time"],
"xaxis":{
"parameter":"nb_tasks.tasks",
"parameter":"resources.tasks",
"label":"Number of tasks"
},
"yaxis":{"label":"Execution time (s)"},
Expand All @@ -28,7 +28,7 @@
},
"yaxis":{"label":"Execution time (s)"},
"secondary_axis":{
"parameter":"nb_tasks.tasks",
"parameter":"resources.tasks",
"label":"Number of tasks"
}
},
Expand All @@ -39,7 +39,7 @@
"variables": [ "computation_time" ],
"names": ["Time"],
"xaxis": {
"parameter": "nb_tasks.tasks",
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"yaxis": {
Expand Down
78 changes: 68 additions & 10 deletions config/toolbox_heat/heat_plots.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
],
"names": [ ],
"xaxis": {
"parameter": "meshes",
"parameter": "mesh",
"label": "mesh levels"
},
"yaxis": {
Expand All @@ -28,7 +28,7 @@
"label": "Measures"
},
"aggregations":[
{"column":"nb_tasks.tasks","agg":"filter:128"}
{"column":"resources.tasks","agg":"filter:640"}
]
},
{
Expand All @@ -42,11 +42,11 @@
],
"names": [ ],
"xaxis": {
"parameter": "nb_tasks.tasks",
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"secondary_axis": {
"parameter": "meshes",
"parameter": "mesh",
"label": "Mesh level"
},
"yaxis": {
Expand All @@ -71,11 +71,11 @@
],
"names": [ ],
"xaxis": {
"parameter": "nb_tasks.tasks",
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"secondary_axis": {
"parameter": "meshes",
"parameter": "mesh",
"label": "Mesh level"
},
"yaxis": {
Expand All @@ -100,11 +100,11 @@
],
"names": [ ],
"xaxis": {
"parameter": "nb_tasks.tasks",
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"secondary_axis": {
"parameter": "meshes",
"parameter": "mesh",
"label": "Mesh level"
},
"yaxis": {
Expand All @@ -129,11 +129,11 @@
],
"names": [ ],
"xaxis": {
"parameter": "nb_tasks.tasks",
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"secondary_axis": {
"parameter": "meshes",
"parameter": "mesh",
"label": "Mesh level"
},
"yaxis": {
Expand All @@ -146,6 +146,64 @@
"aggregations":[
{"column":"discretization","agg":"filter:P2"}
]
},
{
"title": "Performance (P3)",
"plot_types": [ "stacked_bar", "grouped_bar" ],
"transformation": "performance",
"variables": [
"Constructor_init",
"Solve_algebraic-assembly",
"PostProcessing_exportResults"
],
"names": [ ],
"xaxis": {
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"secondary_axis": {
"parameter": "mesh",
"label": "Mesh level"
},
"yaxis": {
"label": "execution time (s)"
},
"color_axis":{
"parameter":"performance_variable",
"label":"Performance variable"
},
"aggregations":[
{"column":"discretization","agg":"filter:P3"}
]
},
{
"title": "Speedup (P3)",
"plot_types": [ "scatter" ],
"transformation": "speedup",
"variables": [
"Constructor_init",
"Solve_algebraic-assembly",
"PostProcessing_exportResults"
],
"names": [ ],
"xaxis": {
"parameter": "resources.tasks",
"label": "Number of tasks"
},
"secondary_axis": {
"parameter": "mesh",
"label": "Mesh level"
},
"yaxis": {
"label": "Speedup"
},
"color_axis":{
"parameter":"performance_variable",
"label":"Performance variable"
},
"aggregations":[
{"column":"discretization","agg":"filter:P3"}
]
}
]
}
50 changes: 36 additions & 14 deletions config/toolbox_heat/thermal_bridges_case_3.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
{
"executable": "feelpp_toolbox_heat",
"output_directory": "{{machine.output_app_dir}}/toolboxes/heat/ThermalBridgesENISO10211/Case3",
"output_directory": "{{machine.output_app_dir}}/javier_test/toolboxes/heat/ThermalBridgesENISO10211/Case3",
"use_case_name": "ThermalBridgesENISO10211",
"timeout":"0-00:10:00",
"memory":"250G",
"resources":{
"tasks":"{{parameters.resources.tasks.value}}",
"exclusive_access":"{{parameters.resources.exclusive_access.value}}",
"memory":"{{parameters.memory.value}}"
},
"platforms": {
"apptainer":{
"image": {
"name":"{{machine.containers.apptainer.image_base_dir}}/feelpp-noble.sif"
},
"input_dir":"/input_data/",
"input_dir":"/input_data",
"options": [
"--home {{machine.output_app_dir}}",
"--bind {{machine.input_dataset_base_dir}}/{{use_case_name}}/:{{platforms.apptainer.input_dir}}",
Expand All @@ -29,11 +33,8 @@
"--heat.scalability-save=1",
"--repository.append.np 0",
"--case.discretization {{parameters.discretization.value}}",
"--heat.json.patch='{\"op\": \"replace\",\"path\": \"/Meshes/heat/Import/filename\",\"value\": \"{{platforms.{{machine.platform}}.input_dir}}/partitioning/case3/{{parameters.meshes.value}}/case3_p{{parameters.nb_tasks.tasks.value}}.json\" }'"
"--heat.json.patch='{\"op\": \"replace\",\"path\": \"/Meshes/heat/Import/filename\",\"value\": \"{{platforms.{{machine.platform}}.input_dir}}/partitioning/case3/{{parameters.mesh.value}}/case3_p{{parameters.resources.tasks.value}}.json\" }'"
],
"env_variables":{
"OMP_NUM_THREADS":"1"
},
"outputs": [
{
"filepath": "{{output_directory}}/{{instance}}/{{use_case_name}}/heat.measures/values.csv",
Expand Down Expand Up @@ -69,18 +70,39 @@
},
"parameters": [
{
"name": "nb_tasks",
"sequence": [
{"tasks":128,"tasks_per_node":128,"exclusive_access":true}
"name": "resources",
"zip":[
{
"name":"tasks",
"sequence":[128,256,384,512,640,768,896,1024,1152,1280]
},
{
"name":"exclusive_access",
"repeat":{"value":true,"count":10}
}
]
},
{
"name": "meshes",
"sequence": ["M1"]
"name":"mesh",
"sequence":["M1","M2","M3"]
},
{
"name":"memory",
"sequence":[200, 300, 3000],
"conditions":{
"200": [ { "discretization": ["P1","P2"], "mesh": ["M1","M2"] }, { "discretization": ["P2"], "mesh": ["M3"] } ],
"300": [ { "discretization": ["P1"], "mesh": ["M3"] }, { "discretization": ["P3"], "mesh": ["M1","M2"] } ],
"3000": [ { "discretization": ["P3"], "mesh": ["M3"] } ]
}
},
{
"name": "discretization",
"sequence": ["P1"]
"name":"discretization",
"sequence":["P1","P2","P3"],
"conditions":{
"P1":[{ "resources.tasks":[128,256,384,512,640,768] }],
"P2":[{ "resources.tasks":[768,896,1024,1152,1280] }],
"P3":[{ "resources.tasks":[640,768,896,1024,1152,1280] }]
}
},
{
"name": "solver",
Expand Down
2 changes: 1 addition & 1 deletion docs/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
:docdatetime: 2025-01-22T11:42:45
12 changes: 6 additions & 6 deletions docs/modules/tutorial/pages/configurationfiles/plots.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ For the given example, it produces the following dataframe

[%dynamic%open%hide_code,python]
----
from feelpp.benchmarking.report.strategies import StrategyFactory
from feelpp.benchmarking.report.transformationFactory import TransformationStrategyFactory
from feelpp.benchmarking.reframe.config.configPlots import Plot
plot_config = Plot(**{
"title": "Absolute performance",
Expand All @@ -131,7 +131,7 @@ plot_config = Plot(**{
"label":"N"
}
})
strategy = StrategyFactory.create(plot_config)
strategy = TransformationStrategyFactory.create(plot_config)
strategy.calculate(model.master_df)
----

Expand All @@ -141,7 +141,7 @@ The relative performance strategy computes the proportion of the time that a a `

[%dynamic%open%hide_code,python]
----
from feelpp.benchmarking.report.strategies import StrategyFactory
from feelpp.benchmarking.report.transformationFactory import TransformationStrategyFactory
from feelpp.benchmarking.reframe.config.configPlots import Plot
plot_config = Plot(**{
"title": "Absolute performance",
Expand All @@ -159,7 +159,7 @@ plot_config = Plot(**{
"label":"N"
}
})
strategy = StrategyFactory.create(plot_config)
strategy = TransformationStrategyFactory.create(plot_config)
strategy.calculate(model.master_df)
----

Expand All @@ -172,7 +172,7 @@ For the example, this strategy will produce the following.

[%dynamic%open%hide_code,python]
----
from feelpp.benchmarking.report.strategies import StrategyFactory
from feelpp.benchmarking.report.transformationFactory import TransformationStrategyFactory
from feelpp.benchmarking.reframe.config.configPlots import Plot
plot_config = Plot(**{
"title": "Absolute performance",
Expand All @@ -190,7 +190,7 @@ plot_config = Plot(**{
"label":"N"
}
})
strategy = StrategyFactory.create(plot_config)
strategy = TransformationStrategyFactory.create(plot_config)
strategy.calculate(model.master_df)
----

Expand Down
12 changes: 6 additions & 6 deletions docs/modules/tutorial/pages/gettingstarted.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,28 @@
== Installation

1. Clone the Repository
[source,cmd]
[source,bash]
----
git clone https://github.com/feelpp/benchmarking.git
----

2. Use a python virtual environment [Optional]
[source,cmd]
[source,bash]
----
python3 -m venv .venv
source .venv/bin/activate
----

3. Build the project
[source,cmd]
[source,bash]
----
pip3 wheel --no-deps --wheel-dir dist .
----

4. Install requirements

This will install necessary dependencies as well as the built project from the previous step.
[source,cmd]
[source,bash]
----
python3 -m pip install -r requirements.txt
----
Expand All @@ -38,7 +38,7 @@ This Feel++ Benchmarking "Hello World" application will compute the sum of an ar
Additionally, the app will measure the time taken to perform the partial sum, and will save it under a _scalability.json_ file.

The executable is already provided as _tests/data/parallelSum_. You can update it and recompile it for a specific config as needed.
[source,cmd]
[source,bash]
----
mpic++ -std=c++17 -o test/data/parallelSum test/data/parallelSum.cpp
----
Expand All @@ -51,7 +51,7 @@ mpic++ -std=c++17 -o test/data/parallelSum test/data/parallelSum.cpp
Configuration files might require some changes for specific configurations depending on the system you are running the framework.

Finally, to benchmark the test application, generate the reports and plot the figures, run
[source,cmd]
[source,bash]
----
execute-benchmark --machine-config config/machines/local.json \
--benchmark-config config/test_parallelSum/parallelSum.json \
Expand Down
Loading
Loading