Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
7355a7e
cleanup
JavierCladellas Dec 1, 2025
55c8ec3
cleanup
JavierCladellas Dec 9, 2025
5e4cd48
use ref
JavierCladellas Dec 9, 2025
fa3a5e3
rm cases
JavierCladellas Dec 9, 2025
7f58d64
rm discr
JavierCladellas Dec 9, 2025
8cc5695
rm broken link
JavierCladellas Dec 9, 2025
6579197
rm old apps from cmake
JavierCladellas Dec 9, 2025
93f44cc
Merge branch 'cleanup' into bench-io
JavierCladellas Dec 9, 2025
a1639fc
cleanup
JavierCladellas Dec 9, 2025
9bc9a2e
rm old files from cmake
JavierCladellas Dec 9, 2025
2287bda
Merge branch 'cleanup' of https://github.com/numpex/apps-feelpp into …
JavierCladellas Dec 9, 2025
e84628d
Merge branch 'cleanup' into bench-io
JavierCladellas Dec 9, 2025
519929f
fix env
JavierCladellas Dec 9, 2025
b0b20db
add firtufy_source flag ?
JavierCladellas Dec 9, 2025
dc977d4
up deps
JavierCladellas Dec 9, 2025
a9f527e
add extra js and css for bench
JavierCladellas Dec 9, 2025
587f689
up plots
JavierCladellas Dec 9, 2025
0c3f6d8
fix plot types
JavierCladellas Dec 9, 2025
19117ce
up distance plots
JavierCladellas Dec 9, 2025
24ec21c
up bench descs
JavierCladellas Dec 9, 2025
62976b5
Bump peter-evans/create-pull-request from 7 to 8
dependabot[bot] Dec 10, 2025
3134dbf
add docs to gitignore
JavierCladellas Dec 11, 2025
a79eefb
fix paths
JavierCladellas Dec 11, 2025
21aaa63
try debug ci
JavierCladellas Dec 11, 2025
e86445b
bench wf debug
JavierCladellas Dec 11, 2025
94e2ef9
try debug get runner info [ci skip]
JavierCladellas Dec 11, 2025
17ec564
try with repo runners [ci skip]
JavierCladellas Dec 11, 2025
3b39529
use CR_PAT for filtering runners [ci skip]
JavierCladellas Dec 11, 2025
445f48d
try get org runners [ci skip]
JavierCladellas Dec 11, 2025
7c2f879
bypass runner check [ci skip]
JavierCladellas Dec 11, 2025
2ca63aa
change use case and add mesh stats
JavierCladellas Dec 11, 2025
8e8a9a4
cleanup
JavierCladellas Dec 11, 2025
3bc5d98
cleanup
JavierCladellas Dec 11, 2025
dff6ab4
reup runner check [ci skip]
JavierCladellas Dec 11, 2025
deb1860
try fix runner check [ci skip]
JavierCladellas Dec 11, 2025
fe3a3a3
try fix download hpc-sys [ci skip]
JavierCladellas Dec 11, 2025
cf272dd
fix entrypoints names [ci skip]
JavierCladellas Dec 11, 2025
5e43e7d
use uv instead of entrypoints [ci skip]
JavierCladellas Dec 11, 2025
156a3f5
rm usage print [ci skip]
JavierCladellas Dec 11, 2025
cc30261
use uv run [ci skip]
JavierCladellas Dec 11, 2025
a0d549b
try fix ambiguous venv... [ci skip]
JavierCladellas Dec 11, 2025
80c07e8
activate env instead... [ci skip]
JavierCladellas Dec 11, 2025
eeda8ff
rm uv run [ci skip]
JavierCladellas Dec 11, 2025
4cbd2c0
syntax bug fix [ci skip]
JavierCladellas Dec 11, 2025
f8e5aa3
use uv
JavierCladellas Dec 11, 2025
98c6d45
add bench deploy workflow [ci skip]
JavierCladellas Dec 11, 2025
6211017
add website deploy workflow [ci skip]
JavierCladellas Dec 11, 2025
f67eb26
wrong dirname [ci skip]
JavierCladellas Dec 11, 2025
505f8f4
dont use requirements.txt
JavierCladellas Dec 11, 2025
1e0c005
empty obsolete ci
JavierCladellas Dec 11, 2025
cde4d63
Merge remote-tracking branch 'origin/main' into bench-io
JavierCladellas Dec 11, 2025
3d6bd6f
up checkout
JavierCladellas Dec 11, 2025
153d7e0
up checkout to v6 [ci skip]
JavierCladellas Dec 11, 2025
fb83691
add mesh stats and label fix
JavierCladellas Dec 12, 2025
bceb843
rm P3 [ci skip]
JavierCladellas Dec 12, 2025
b71aca1
rm max retries
JavierCladellas Dec 12, 2025
0003b02
compile apps in ci (?) [ci skip]
JavierCladellas Dec 12, 2025
b457244
fix csv download
JavierCladellas Dec 12, 2025
c61d41b
avoid "%" , latex parses not escapes [ci skip]
JavierCladellas Dec 12, 2025
6187999
init build and docker workflow
JavierCladellas Dec 18, 2025
f0fea56
use gaya for now, bug with feelpp runner
JavierCladellas Dec 18, 2025
c954727
rm cases
JavierCladellas Dec 18, 2025
4de8d0b
setup node before checkout, try fix
JavierCladellas Dec 18, 2025
545ebb6
rm node, try using checkout v4
JavierCladellas Dec 18, 2025
6bdfa7f
use checkout v4 [ci skip]
JavierCladellas Dec 18, 2025
2b598ba
add full deploy worfklow [build container]
JavierCladellas Dec 18, 2025
a3ef295
test use apptainer image for io bench [ci skip]
JavierCladellas Dec 18, 2025
27903d5
builtin -> cladellas for testing [ci skip]
JavierCladellas Dec 18, 2025
b149a12
add credentails for image pulling [ci skip]
JavierCladellas Dec 18, 2025
179a996
rm apps compile [ci skip]
JavierCladellas Dec 18, 2025
84be316
try fix image location [build container]
JavierCladellas Dec 18, 2025
938d05e
don't pull image for now during bench. (token issue) [ci skip]
JavierCladellas Dec 18, 2025
e26a900
try fix packaging [build container]
JavierCladellas Dec 19, 2025
b6f1d0e
build with noble [build container]
JavierCladellas Dec 19, 2025
dc2cd8f
fix dir [build container]
JavierCladellas Dec 19, 2025
128d8e4
add healthcheck [build container]
JavierCladellas Dec 19, 2025
8b52dbd
packaging and containerizing didn't work :( Using binary in gaya [ci …
JavierCladellas Dec 19, 2025
3f5fed2
up netlify build
JavierCladellas Dec 19, 2025
a6c26ae
fix missing uv install
JavierCladellas Dec 19, 2025
d9fd376
Merge remote-tracking branch 'origin/dependabot/github_actions/peter-…
JavierCladellas Dec 19, 2025
693d460
rm reviewers
JavierCladellas Dec 19, 2025
bf9fd12
low params to test [ci skip]
JavierCladellas Dec 19, 2025
e67d40d
gaya default runner
JavierCladellas Jan 13, 2026
f9ce4ab
small refactor and put correct params
JavierCladellas Jan 13, 2026
c0dc496
fix distance case data
JavierCladellas Jan 13, 2026
17f7a2d
up feelpp base image [build container]
JavierCladellas Jan 13, 2026
31cfbac
fix missing unit [build container]
JavierCladellas Jan 13, 2026
0dcae58
add checkout [build container]
JavierCladellas Jan 13, 2026
a5db5ea
use apt instead of dpkg [build container]
JavierCladellas Jan 14, 2026
941ba54
try again with noble [build container]
JavierCladellas Jan 14, 2026
758fd95
add heat case
JavierCladellas Jan 14, 2026
d84e0d6
add toolbox heatfluid case
JavierCladellas Jan 14, 2026
bb2da60
add elasticity case
JavierCladellas Jan 14, 2026
b7c6cb0
add thermoelectric case
JavierCladellas Jan 14, 2026
a8a82c9
add ktirio-geom benches
JavierCladellas Jan 14, 2026
7011f9c
up perlin case bench txts
JavierCladellas Jan 14, 2026
0bbafbd
fix name
JavierCladellas Jan 14, 2026
e7aee28
make io benchmarkable from apptainer
JavierCladellas Jan 14, 2026
9444496
Add benchmark on gaya_cladellash for feelpp_app_io - ThermalBridgesEN…
JavierCladellas Jan 14, 2026
9e5d379
Merge pull request #52 from numpex/new-benchmark-gaya_cladellash-Ther…
JavierCladellas Jan 14, 2026
ccd7635
rm cb results... Should never go in gh
JavierCladellas Jan 15, 2026
bc5447e
temp trigger pages deploy
JavierCladellas Jan 15, 2026
cf229d7
back to deploy gh pages only on main [ci skip]
JavierCladellas Jan 15, 2026
0604149
rename
JavierCladellas Jan 15, 2026
d320a9e
up discr to be as in D7.1 v 2.0.0
JavierCladellas Jan 15, 2026
c85c0a6
Add full parameters [ci skip]
JavierCladellas Jan 16, 2026
2e12470
rm figure ref number (refs unsupported)
JavierCladellas Jan 16, 2026
a7dec34
Add benchmark on gaya_cladellash for -
JavierCladellas Jan 16, 2026
a04071b
Merge pull request #53 from numpex/new-benchmark-gaya_cladellash-
JavierCladellas Jan 16, 2026
743a98b
export ndofs also
JavierCladellas Jan 16, 2026
a4cb283
use eye case for io and update to D7.1 v2.0.0
JavierCladellas Jan 16, 2026
8de0ab9
Merge branch 'bench-io' of https://github.com/numpex/apps-feelpp into…
JavierCladellas Jan 16, 2026
d5c8605
put full case....
JavierCladellas Jan 16, 2026
1333081
dummy to [build container]
JavierCladellas Jan 16, 2026
62edd81
deploy website
JavierCladellas Jan 19, 2026
de02f9e
up timeout [ci skip]
JavierCladellas Jan 19, 2026
7bd44b3
Add benchmark on gaya_cladellash for feelpp_app_io - eye2brain
JavierCladellas Jan 19, 2026
c5a70a3
Merge pull request #54 from numpex/new-benchmark-gaya_cladellash-eye2…
JavierCladellas Jan 19, 2026
4d0c6df
up distance
JavierCladellas Jan 20, 2026
f77a6b7
up distance plots
JavierCladellas Jan 22, 2026
ae2d2ff
add and fix distance case [build container]
JavierCladellas Jan 22, 2026
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
142 changes: 77 additions & 65 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ on:
benchmark_config:
description: 'Path to benchmark configuration'
required: True
default: src/app-feelpp-discr-1/thermal_bridges_case_3.json
default: src/app-feelpp-io/feelpp-io.json
plots_config:
description: 'Path to plots related configuration'
required: True
default: src/app-feelpp-discr-1/heat_plots.json
default: src/app-feelpp-io/plots.json
create_pr:
description: 'Create Pull Request'
type: boolean
Expand All @@ -42,7 +42,7 @@ jobs:
- name: Get machines configuration
id: download_systems_config
run: |
machine_config=$(curl https://gist.githubusercontent.com/thomas-saigre/50760ea0999fb22dbf623c962a3c7664/raw/1ebe7c248e6d50466e492480cc24928bbc60be3c/systems.json )
machine_config=$(curl -H "Authorization: token ${{ secrets.CR_PAT }}" https://raw.githubusercontent.com/feelpp/hpc-systems/refs/heads/main/systems.json)
machine_config=$(jq --compact-output '.' <<< $machine_config)
echo "machine_config=$machine_config" >> $GITHUB_OUTPUT

Expand All @@ -54,55 +54,50 @@ jobs:

filtered_systems_config=$(echo "$machine_config" | jq --arg valid_systems "$valid_systems" '
($valid_systems | split(",")) as $systems |
with_entries(select([.key] | inside($systems))) | [.[]]
with_entries(select(.key as $k | $systems | index($k))) | [.[]]
')
filtered_systems_config=$(jq --compact-output '.' <<< $filtered_systems_config)
echo "filtered_systems_config=$filtered_systems_config" >> $GITHUB_OUTPUT

# - name: Filter Available Runners
# id: filter-available-systems
# run: |
# all_runners=$(curl -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
# -H "X-GitHub-Api-Version: 2022-11-28" \
# https://api.github.com/orgs/numpex/actions/runners
# )
# echo $all_runners

# all_runners=$(echo $all_runners | jq -r '.runners')

# available_systems="[]"

# while read -r system; do
# tag=$(echo "$system" | jq -r .runner_tag);
# runner=$(echo "$all_runners" | jq --arg tag "$tag" '
# map(select(.labels[].name | contains($tag)))
# ')

# if [ "$(echo "$runner" | jq 'length')" -eq 0 ]; then
# echo "No runner found for $tag ..."
# continue
# fi

# if echo "$runner" | jq -e 'map(select(.status == "online")) | length > 0' >/dev/null; then
# available_systems=$(echo "$available_systems" | jq --argjson sys "$system" '. + [$sys]')
# else
# echo "No online runners for $tag ..."
# fi
# done < <(echo '${{steps.filter-systems.outputs.filtered_systems_config}}' | jq -c '.[]')

# available_systems=$(jq --compact-output '.' <<< $available_systems)
# echo "available_systems=$available_systems" >> $GITHUB_OUTPUT

# - name: Set matrix
# id: hpc-systems
# run: |
# echo "matrix=$(jq -c --null-input --argjson config '${{steps.filter-available-systems.outputs.available_systems}}' '{include: $config}')" >> $GITHUB_OUTPUT
- name: Filter Available Runners
id: filter-available-systems
run: |
all_runners=$(curl -H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.CR_PAT }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/numpex/apps-feelpp/actions/runners
)
echo $all_runners

all_runners=$(echo $all_runners | jq -r '.runners')

available_systems="[]"

while read -r system; do
tag=$(echo "$system" | jq -r .runner_tag);
runner=$(echo "$all_runners" | jq --arg tag "$tag" '
map(select(.labels[].name | contains($tag)))
')

if [ "$(echo "$runner" | jq 'length')" -eq 0 ]; then
echo "No runner found for $tag ..."
continue
fi

if echo "$runner" | jq -e 'map(select(.status == "online")) | length > 0' >/dev/null; then
available_systems=$(echo "$available_systems" | jq --argjson sys "$system" '. + [$sys]')
else
echo "No online runners for $tag ..."
fi
done < <(echo '${{steps.filter-systems.outputs.filtered_systems_config}}' | jq -c '.[]')

available_systems=$(jq --compact-output '.' <<< $available_systems)
echo "available_systems=$available_systems" >> $GITHUB_OUTPUT

- name: Set matrix
id: hpc-systems
run: |
echo "matrix=$(jq -c --null-input --argjson config '${{steps.filter-systems.outputs.filtered_systems_config}}' '{include: $config}')" >> $GITHUB_OUTPUT
echo "matrix=$(jq -c --null-input --argjson config '${{steps.filter-available-systems.outputs.available_systems}}' '{include: $config}')" >> $GITHUB_OUTPUT

benchmark:
needs: [factory]
Expand All @@ -113,46 +108,56 @@ jobs:
timeout-minutes: 7200
name: ${{matrix.machine}}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v5

- name: Create machine config
run: |
json_machine_config='${{ toJson(matrix.system_config) }}'
echo "$json_machine_config" > machine_config.json

- name: Create venv
run: |
uv venv .venv
source .venv/bin/activate

- name: Install feelpp-benchmarking
run: uv pip install feelpp-benchmarking


- name: Print system Usage
run: bash ./system_entrypoints/${{matrix.machine}}.sh
env:
PROJECT_ID: ${{matrix.project_id || ''}}

- name: Execute benchmarks (CLI)
if: ${{ matrix.submit == 'cli' }}
run: |
./tmp_system_entrypoints/${{matrix.machine}}.sh
source .venv/bin/activate
feelpp-benchmarking-exec \
-mc machine_config.json \
-bc ${{ github.event.inputs.benchmark_config || github.event.client_payload.benchmark_config }} \
-pc ${{ github.event.inputs.plots_config || github.event.client_payload.plots_config}} \
-v \
-rfm="-v --exec-order=name --max-retries=2"
-rfm="-v --exec-order=name"
env:
# GIRDER_API_KEY: ${{ secrets.GIRDER }}
PROJECT_ID: ${{matrix.project_id || ''}}
GHCRIO_USER: ${{ github.actor }}
GHCRIO_TOKEN: ${{ secrets.CR_PAT_WORKFLOW }}
GHCRIO_TOKEN: ${{ secrets.CR_PAT }}

#TODO TEMPORARY TMP_SYSTEM_ENTRYPOINTS
#TODO TEMPORARY SYSTEM_ENTRYPOINTS
- name: Execute benchmarks (slurm)
if: ${{ matrix.submit == 'slurm' }}
run: |
./tmp_system_entrypoints/${{matrix.machine}}.sh
srun --partition ${{matrix.submit_partition}} \
--time 48:00:00 \
--account ${{matrix.project_id}} \
--qos ${{matrix.qos}} \
--nodes 1 --ntasks 1 --cpus-per-task 1 --ntasks-per-node 1 \
./tmp_system_entrypoints/${{matrix.machine}}_launchBenchmark.sh \
./system_entrypoints/${{matrix.machine}}_launchBenchmark.sh \
-m machine_config.json \
-b ${{ github.event.inputs.benchmark_config || github.event.client_payload.benchmark_config }} \
-p ${{ github.event.inputs.plots_config || github.event.client_payload.plots_config}}
env:
GIRDER_API_KEY: ${{ secrets.GIRDER }}

- name: Parse reports path
id: parse_reports_path
Expand All @@ -170,7 +175,10 @@ jobs:
name: Stage results
if: ${{ github.event.inputs.create_pr == 'true' || github.event.client_payload.create_pr == 'true' }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v5


- name: Download results
uses: actions/download-artifact@v6
Expand All @@ -181,9 +189,11 @@ jobs:

- name: Create Virtual Environment
run: |
python3 -m venv .venv
uv venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt

- name: Install feelpp-benchmarking
run: uv pip install feelpp-benchmarking

- name: Upload to staging folder
run: |
Expand All @@ -204,7 +214,7 @@ jobs:
echo "use_case=$(jq -r '.use_case_name' ${{ github.event.inputs.benchmark_config || github.event.client_payload.benchmark_config }})" >> $GITHUB_OUTPUT

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v8
with:
title: "Add benchmark on ${{ github.event.inputs.hpc-systems }} for ${{ steps.gather_arguments.outputs.executable_name }} - ${{ steps.gather_arguments.outputs.use_case }}"
commit-message: "Add benchmark on ${{ github.event.inputs.hpc-systems }} for ${{ steps.gather_arguments.outputs.executable_name }} - ${{ steps.gather_arguments.outputs.use_case }}"
Expand All @@ -220,9 +230,6 @@ jobs:
see https://github.com/peter-evans/create-pull-request for more details
reviewers: |
JavierCladellas
prudhomm
vincentchabannes
thomas-saigre
labels: new-benchmark
branch: new-benchmark-${{ github.event.inputs.hpc-systems || github.event.client_payload.hpc-systems }}-${{ steps.gather_arguments.outputs.use_case }}
env:
Expand All @@ -235,7 +242,9 @@ jobs:
if: ${{ github.event.inputs.create_website == 'true' || github.event.client_payload.create_website == 'true' }}
steps:

- uses: actions/checkout@v6
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v5

- name: Download results
uses: actions/download-artifact@v6
Expand All @@ -246,9 +255,12 @@ jobs:

- name: Create Virtual Environment
run: |
python3 -m venv .venv
uv venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt

- name: Install feelpp-benchmarking
run: uv pip install feelpp-benchmarking

- name: Merge website configs
run: |
source .venv/bin/activate
Expand Down
91 changes: 91 additions & 0 deletions .github/workflows/benchmark_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Benchmark Deploy

on:
pull_request:
types: [closed]

jobs:
accepted:
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'new-benchmark')
runs-on: self-feelpp
env:
GIRDER_API_KEY: ${{ secrets.GIRDER }}
name: Move to production
steps:
- uses: astral-sh/setup-uv@v5

- uses: actions/checkout@v4

- name: Create Virtual Environment
run: |
uv venv .venv
source .venv/bin/activate

- name: Install feelpp-benchmarking
run: uv pip install feelpp-benchmarking

- name: Download stage reports
run: |
source .venv/bin/activate
source ./girder_deploy_config.sh
feelpp-girder download -gid $staging_folder_id -o ./tmp/ -d

- name: Download Production config
run: |
source .venv/bin/activate
source ./girder_deploy_config.sh
feelpp-girder download -gid $production_website_config_id -o ./configs_tmp/ -fn production_config.json

- name: Merge stage configs
run: |
source .venv/bin/activate
merge-json-configs -fp "./tmp/**/website_config.json" -o ./configs_tmp/stage_config.json -u

- name: Update Stage Config
run: |
source .venv/bin/activate
source ./girder_deploy_config.sh
update-stage-config -stag ./configs_tmp/stage_config.json -prod ./configs_tmp/production_config.json -prodid $production_folder_id

- name: Merge stage and prod configs
run: |
source .venv/bin/activate
merge-json-configs -fp "./configs_tmp/**/*.json" -o ./configs_tmp/website_config.json

- name: Upload New Website config
run: |
source .venv/bin/activate
source ./girder_deploy_config.sh
feelpp-girder upload --item ./configs_tmp/website_config.json --girder_id $production_folder_id

- name: Cleanup stage folder
run: |
source .venv/bin/activate
source ./girder_deploy_config.sh
feelpp-girder move -oid $staging_folder_id -nid $accepted_folder_id

denied:
if: github.event.pull_request.merged == false && contains(github.event.pull_request.labels.*.name, 'new-benchmark')
runs-on: self-feelpp
env:
GIRDER_API_KEY: ${{ secrets.GIRDER }}

name: Move to denied
steps:
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v5

- name: Create Virtual Environment
run: |
uv venv .venv
source .venv/bin/activate

- name: Install feelpp-benchmarking
run: uv pip install feelpp-benchmarking

- name: Cleanup stage folder
run: |
source .venv/bin/activate
source ./girder_deploy_config.sh
feelpp-girder move -oid $staging_folder_id -nid $denied_folder_id
Loading