-
Notifications
You must be signed in to change notification settings - Fork 12
Add driver bencher benchmarks #1450
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
Open
msimberg
wants to merge
41
commits into
C2SM:main
Choose a base branch
from
msimberg:bencher-distributed-driver
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
41 commits
Select commit
Hold shift + click to select a range
c127dd3
feat(driver): add distributed driver benchmark tests and options
msimberg 4374272
feat(nox): add benchmark_driver_mpi and bencher upload sessions
msimberg c53954b
fix(nox): exclude benchmark_only tests from default test_model_mpi se…
msimberg 013811b
fix: rebuild driver and state in timeloop benchmark setup [R1]
msimberg 3721dbe
fix: function-scope grid fixture for clean limited-area xfail [R7]
msimberg f58b0b5
fix: assert single-step for grid overrides [R4]
msimberg 5d8e9c2
fix: use is_upload_rank directly and drop redundant -k [R5][R6]
msimberg 486dd5b
fix: call resolve_rank once in driver bencher upload sessions [R8]
msimberg 49ec68f
fix: clear rank env in is_upload_rank explicit-none test [R10]
msimberg a4fb1c8
refactor(ci): factor bencher driver job anchors and drop intra-node v…
msimberg adb0466
refactor(nox): share bencher upload helpers, fix driver JSON path, dr…
msimberg 2aee9e0
feat(benchmark): append GHEX transport to driver bencher testbed
msimberg 958dc27
feat(ci): use R02B06 global grid and single step for distributed driv…
msimberg 7d3224b
refactor(driver): extract initialize_driver_states helper
msimberg eaceffa
refactor(benchmark): hardcode JW, 100 steps and 50 s dtime for MPI dr…
msimberg 44ff10b
feat(benchmark): add single-rank driver benchmark
msimberg 9f9fe32
refactor(benchmark): remove testing.benchmark module and driver-bench…
msimberg 2e7a0c7
feat(ci): add single-rank driver bencher jobs and hardcode benchmark …
msimberg a45264c
feat(benchmark): parametrize driver benchmarks by experiment with ids…
msimberg b4c26b7
ci(benchmark): temporarily disable serial bencher jobs for driver-ben…
msimberg 1880f2e
Merge remote-tracking branch 'origin/main' into bencher-distributed-d…
msimberg 1b4b726
ci(benchmark): run driver benchmark with 4 ranks / 1 node (mpitask4 d…
msimberg 259418a
ci(benchmark): pin OMP threads and use full-node GPU layout for drive…
msimberg 6921efd
refactor(ci): follow naming conventions and disable MPS for driver be…
msimberg f54f263
ci(benchmark): pin OMP_NUM_THREADS to 64 for driver bencher
msimberg 1d5da84
ci(benchmark): pin OMP_NUM_THREADS to 32 for driver bencher
msimberg 4c32a6e
ci(benchmark): pin OMP_NUM_THREADS to 8 for driver bencher
msimberg 2d7d16f
ci(benchmark): settle OMP_NUM_THREADS at 72 for driver bencher
msimberg 4665673
refactor: address review round on driver bencher benchmarks
msimberg 1d034e7
ci(benchmark): drop .retry_on_transient_failure from driver bencher jobs
msimberg 417e924
Consolidate driver benchmark fixtures and factor grid resolution
msimberg f7ffd98
fix: label MPI benchmark process_props param id as distributed
msimberg b2223b1
fix: reuse _serial_testbed in _driver_mpi_bencher_testbed
msimberg c803d2d
fix: clarify MPS not enabled comments in benchmark CI
msimberg bbca49f
fix: address driver-benchmark review round; restore fixtures.py re-ex…
msimberg a381e86
Apply suggestion from @msimberg
msimberg f746d52
Apply suggestion from @msimberg
msimberg 81ccc5a
Apply suggestion from @msimberg
msimberg c9641df
Apply suggestion from @msimberg
msimberg ff7553f
refactor: parameterize driver_benchmark_experiment fixture directly
msimberg 6c8eeb3
Remove rules section from benchmark_bencher_baseline.yml
msimberg File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -9,6 +9,13 @@ | |||||||
| OMP_PLACES: cores | ||||||||
| OMP_NUM_THREADS: 72 | ||||||||
|
|
||||||||
| .benchmark_driver_base_variables: | ||||||||
| variables: | ||||||||
| SLURM_TIMELIMIT: '02:00:00' | ||||||||
| OMP_PROC_BIND: close | ||||||||
| OMP_PLACES: cores | ||||||||
| OMP_NUM_THREADS: 72 | ||||||||
|
|
||||||||
| .benchmark_nox_job: | ||||||||
| stage: benchmark | ||||||||
| script: | ||||||||
|
|
@@ -27,6 +34,52 @@ | |||||||
| SLURM_PARTITION: normal | ||||||||
| SLURM_TIMELIMIT: '01:30:00' | ||||||||
|
|
||||||||
| .benchmark_driver_mpi_nox_job: | ||||||||
| stage: benchmark | ||||||||
| script: | ||||||||
| - .cscs-ci/scripts/ci-mpi-wrapper.sh nox -s "${NOX_SESSION}" -- --backend=$BACKEND --grid=$GRID | ||||||||
| # MPS is explicitly not enabled here. The job uses one GPU per task. | ||||||||
| before_script: | ||||||||
| - cd /icon4py | ||||||||
| - source .cscs-ci/scripts/gt4py-cache.sh | ||||||||
| extends: [.benchmark_driver_base_variables] | ||||||||
| variables: | ||||||||
| # allow-task-sharing lets NCCL open peer GPUs for GPU-GPU communication. | ||||||||
| SLURM_GPUS_PER_NODE: 4 | ||||||||
| SLURM_CPUS_PER_TASK: 72 | ||||||||
| SLURM_GRES_FLAGS: allow-task-sharing | ||||||||
| parallel: | ||||||||
| matrix: | ||||||||
| - BACKEND: [dace_cpu, dace_gpu, gtfn_cpu, gtfn_gpu] | ||||||||
| GRID: [R02B06_GLOBAL] | ||||||||
| .benchmark_driver_nox_job: | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Only a nit comment. Most other configurations are separate by a blank line.
Suggested change
|
||||||||
| stage: benchmark | ||||||||
| script: | ||||||||
| - nox -s "${NOX_SESSION}" -- --backend=$BACKEND --grid=$GRID | ||||||||
| # MPS is explicitly not enabled here. The job uses one GPU per task. | ||||||||
| before_script: | ||||||||
| - cd /icon4py | ||||||||
| - source .cscs-ci/scripts/gt4py-cache.sh | ||||||||
| extends: [.benchmark_driver_base_variables] | ||||||||
| variables: | ||||||||
| SLURM_GPUS_PER_TASK: 1 | ||||||||
| SLURM_CPUS_PER_TASK: 72 | ||||||||
| parallel: | ||||||||
| matrix: | ||||||||
| - BACKEND: [dace_cpu, dace_gpu, gtfn_cpu, gtfn_gpu] | ||||||||
| GRID: [R02B06_GLOBAL] | ||||||||
| .bencher_github_event_setup: | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
| script: | ||||||||
| - export PR_ID=$(echo "${CI_COMMIT_BRANCH}" | grep -o 'pr[0-9]*' | grep -o '[0-9]*') | ||||||||
| - export FEATURE_BRANCH=$(curl -s https://api.github.com/repos/C2SM/icon4py/pulls/$PR_ID | jq -r '.head.ref') | ||||||||
| - export GITHUB_ACTIONS=true | ||||||||
| - export GITHUB_EVENT_NAME=pull_request | ||||||||
| - export GITHUB_STEP_SUMMARY=$CI_PROJECT_DIR/step_summary.log | ||||||||
| - export GITHUB_SHA=$CI_COMMIT_SHA | ||||||||
| - export GITHUB_EVENT_PATH=$CI_PROJECT_DIR/event.json | ||||||||
| - | | ||||||||
| echo "{\"pull_request\": {\"head\": {\"repo\": {\"full_name\": \"C2SM/icon4py\"}}}, \"repository\": {\"full_name\": \"C2SM/icon4py\"}, \"number\": $PR_ID}" > $CI_PROJECT_DIR/event.json | ||||||||
|
|
||||||||
|
|
||||||||
| build_baseimage_aarch64: | ||||||||
| extends: [.build_baseimage_aarch64] | ||||||||
|
|
||||||||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.