Skip to content

Commit 91f2500

Browse files
Add NCU profiler support and AOBA runner notes (#20)
Document AOBA Git wrapper, proxy, and NQSV runner details, and clarify profiler metadata/result-summary comments for the NCU path. Signed-off-by: Yoshifumi Nakamura <yoshifuminakamura@users.noreply.github.com>
1 parent d74b31b commit 91f2500

53 files changed

Lines changed: 2786 additions & 188 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/result-server-tests.yml

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ on:
44
pull_request:
55
paths:
66
- "result_server/**"
7-
- "scripts/result_server/send_results.sh"
7+
- "scripts/bk_functions.sh"
8+
- "scripts/result.sh"
9+
- "scripts/result_server/**"
10+
- "scripts/tests/test_bk_profiler.sh"
11+
- "scripts/tests/test_result_profile_data.sh"
12+
- "scripts/tests/test_send_results_profile_data.sh"
813
- "config/system.csv"
914
- "config/queue.csv"
1015
- "config/system_info.csv"
@@ -15,7 +20,12 @@ on:
1520
- "**"
1621
paths:
1722
- "result_server/**"
18-
- "scripts/result_server/send_results.sh"
23+
- "scripts/bk_functions.sh"
24+
- "scripts/result.sh"
25+
- "scripts/result_server/**"
26+
- "scripts/tests/test_bk_profiler.sh"
27+
- "scripts/tests/test_result_profile_data.sh"
28+
- "scripts/tests/test_send_results_profile_data.sh"
1929
- "config/system.csv"
2030
- "config/queue.csv"
2131
- "config/system_info.csv"
@@ -30,8 +40,8 @@ jobs:
3040
fail-fast: false
3141
matrix:
3242
python-version:
33-
- "3.9"
3443
- "3.12"
44+
- "3.13"
3545

3646
steps:
3747
- name: Check out repository
@@ -54,3 +64,16 @@ jobs:
5464

5565
- name: Run result_server pytest suite
5666
run: python result_server/tests/run_result_server_tests.py
67+
68+
profile-data-shell:
69+
runs-on: ubuntu-latest
70+
71+
steps:
72+
- name: Check out repository
73+
uses: actions/checkout@v4
74+
75+
- name: Run profiler and profile-data shell tests
76+
run: |
77+
bash scripts/tests/test_bk_profiler.sh
78+
bash scripts/tests/test_result_profile_data.sh
79+
bash scripts/tests/test_send_results_profile_data.sh

.gitlab-ci.yml

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#
99
# Files that automatically skip CI:
1010
# - root Markdown files and docs/**/* (documentation)
11+
# - .github/**/* (GitHub-only workflow/action files)
1112
# - result_server/**/* and config/system_info.csv (portal/server code, templates, and display metadata)
1213
#
1314
# Important Notes:
@@ -85,17 +86,22 @@ generate_matrix:
8586
- if: '$CI_COMMIT_MESSAGE =~ /\[park-send\]/'
8687
when: never # [park-send]コミットメッセージでは無効
8788
- changes:
88-
- ".gitlab-ci.yml"
89-
- "programs/**/*"
90-
- "scripts/**/*"
91-
- "config/system.csv"
92-
- "config/queue.csv"
89+
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
90+
paths:
91+
- ".gitlab-ci.yml"
92+
- "programs/**/*"
93+
- "scripts/**/*"
94+
- "config/system.csv"
95+
- "config/queue.csv"
9396
when: always
9497
- changes:
95-
- "*.md"
96-
- "docs/**/*"
97-
- "result_server/**/*"
98-
- "config/system_info.csv"
98+
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
99+
paths:
100+
- ".github/**/*"
101+
- "*.md"
102+
- "docs/**/*"
103+
- "result_server/**/*"
104+
- "config/system_info.csv"
99105
when: never
100106
- when: always
101107

@@ -121,17 +127,22 @@ trigger_child_pipeline:
121127
- if: '$CI_COMMIT_MESSAGE =~ /\[park-send\]/'
122128
when: never # [park-send]コミットメッセージでは無効
123129
- changes:
124-
- ".gitlab-ci.yml"
125-
- "programs/**/*"
126-
- "scripts/**/*"
127-
- "config/system.csv"
128-
- "config/queue.csv"
130+
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
131+
paths:
132+
- ".gitlab-ci.yml"
133+
- "programs/**/*"
134+
- "scripts/**/*"
135+
- "config/system.csv"
136+
- "config/queue.csv"
129137
when: always
130138
- changes:
131-
- "*.md"
132-
- "docs/**/*"
133-
- "result_server/**/*"
134-
- "config/system_info.csv"
139+
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
140+
paths:
141+
- ".github/**/*"
142+
- "*.md"
143+
- "docs/**/*"
144+
- "result_server/**/*"
145+
- "config/system_info.csv"
135146
when: never
136147
- when: always
137148
# BenchPark Monitor Jobs
@@ -163,7 +174,9 @@ generate_benchpark_matrix:
163174
- if: '$CI_COMMIT_MESSAGE =~ /\[benchpark\]/'
164175
when: always
165176
- changes:
166-
- "benchpark-bridge/**/*"
177+
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
178+
paths:
179+
- "benchpark-bridge/**/*"
167180
when: always
168181
- when: never
169182

@@ -197,7 +210,9 @@ trigger_benchpark_pipeline:
197210
- if: '$CI_COMMIT_MESSAGE =~ /\[benchpark\]/'
198211
when: always
199212
- changes:
200-
- "benchpark-bridge/**/*"
213+
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
214+
paths:
215+
- "benchpark-bridge/**/*"
201216
when: always
202217
- when: never
203218

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ This includes:
4848
- system-specific execution environments
4949
- runtime requirements
5050

51+
## Runtime Requirements
52+
53+
- `result_server` requires Python 3.12 or later.
54+
5155
## License
5256

5357
This project is licensed under the BSD 3-Clause License. See [LICENSE](LICENSE).

config/queue.csv

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
queue,submit_cmd,template
22
FJ,pjsub,"-L rscunit=rscunit_ft01,rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi max-proc-per-node=${numproc_node} -x PJM_LLIO_GFSCACHE=/vol0002:/vol0003:/vol0004:/vol0005"
3+
PJM_GENKAI,pjsub,"-L rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi proc=${proc}"
34
SLURM_RC,sbatch,"-p ${queue_group} -t ${elapse} -N ${nodes} --ntasks-per-node=${numproc_node} --cpus-per-task=${nthreads}"
4-
PBS_Miyabi,qsub,"-q ${queue_group} -l select=${nodes} -l walltime=${elapse} -W group_list=jh260034"
5+
PBS_Miyabi,qsub,"-q ${queue_group} -l select=${nodes}:mpiprocs=${numproc_node}:ompthreads=${nthreads} -l walltime=${elapse} -W group_list=jh260034"
6+
PBS_Grand_C,qsub,"-q ${queue_group} -l select=${nodes}:nsockets=${cpu_per_node},walltime=${elapse} -W group_list=d30992"
7+
PBS_Grand_G,qsub,"-q ${queue_group} -l select=${nodes}:ngpus=1,walltime=${elapse} -W group_list=d30992"
8+
NQSV_AOBA_VE,qsub,"-Z -v http_proxy,https_proxy,HTTP_PROXY,HTTPS_PROXY -q ${queue_group} -T necmpi --venode ${proc} -l elapstim_req=${elapse}"
9+
NQSV_AOBA_B,qsub,"-Z -v http_proxy,https_proxy,HTTP_PROXY,HTTPS_PROXY -q ${queue_group} -T intmpi -b ${nodes} -l elapstim_req=${elapse}"
510
none,none,none

config/system.csv

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,12 @@ RC_GENOA,native,,cloud_jacamar,SLURM_RC,genoa
88
RC_FX700,native,,cloud_jacamar,SLURM_RC,fx700
99
MiyabiG,cross,miyabi_g_login,miyabi_g_jacamar,PBS_Miyabi,debug-g
1010
MiyabiC,cross,miyabi_c_login,miyabi_c_jacamar,PBS_Miyabi,debug-c
11+
GenkaiA,cross,genkai_login,genkai_jacamar,PJM_GENKAI,a-batch
12+
GenkaiB,cross,genkai_login,genkai_jacamar,PJM_GENKAI,b-batch
13+
GenkaiC,cross,genkai_login,genkai_jacamar,PJM_GENKAI,c-batch
14+
Grand_C,cross,grand_login,grand_jacamar,PBS_Grand_C,lc
15+
Grand_G,cross,grand_login,grand_jacamar,PBS_Grand_G,eg
16+
AOBA_A,cross,aoba_ab_login,aoba_ab_jacamar,NQSV_AOBA_VE,sx
17+
AOBA_B,cross,aoba_ab_login,aoba_ab_jacamar,NQSV_AOBA_B,lx
18+
AOBA_S,cross,aoba_s_login,aoba_s_jacamar,NQSV_AOBA_VE,sxs
1119
FNCX,native,,fncx-curl-jq,none,small

config/system_info.csv

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,11 @@ RC_GH200,RC_GH200,NVIDIA Grace CPU,1,72,NVIDIA Hopper H100 GPU,1,120GB,6
88
RC_DGXSP,RC_DGXSP,ARM Cortex-X925 / Cortex-A725,1,20,NVIDIA GB10,1,128GB,7
99
RC_GENOA,RC_GENOA,AMD EPYC 9684X,2,96,-,-,768GB,8
1010
RC_FX700,RC_FX700,A64FX,1,48,-,-,32GB,9
11+
GenkaiA,GenkaiA,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,-,-,512GiB,10
12+
GenkaiB,GenkaiB,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,NVIDIA H100 (Hopper),4,1024GiB,11
13+
GenkaiC,GenkaiC,Intel Xeon Platinum 8480+ (Sapphire Rapids),2,56,NVIDIA H100 (Hopper),8,8TiB,12
14+
Grand_C,Grand_C,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,-,-,512GiB,13
15+
Grand_G,Grand_G,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,NVIDIA H100 (Hopper),4,512GiB,14
16+
AOBA_A,AOBA_A,SX-Aurora TSUBASA VH,1,24,NEC SX-Aurora TSUBASA Type 20B VE,8,640GB,15
17+
AOBA_B,AOBA_B,AMD EPYC 7702,2,64,-,-,256GB,16
18+
AOBA_S,AOBA_S,SX-Aurora TSUBASA VH,1,64,NEC SX-Aurora TSUBASA Type 30A VE,8,256GB + 768GB,17

docs/ci.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,10 @@ app support matrix、partial support、app entrypoint不足、`list.csv` 内の
245245
|---|---|---|---|
246246
| Root Markdown or `docs/**/*` only / root Markdownまたは`docs/**/*`のみ | No benchmark-specific GitHub workflow / ベンチマーク用GitHub workflowなし | Skipped by `.gitlab-ci.yml` rules / `.gitlab-ci.yml` rulesでskip | Keep docs-only changes separate from benchmark logic changes / docsのみの変更はbenchmark logic変更と分ける |
247247
| `result_server/**/*` / `result_server/**/*` | `Result Server Tests` | Skipped by `.gitlab-ci.yml` rules / `.gitlab-ci.yml` rulesでskip | Portal regressions should be caught by lightweight Python tests / portal回帰はlightweight Python testで捕捉する |
248-
| Portal metadata `config/system_info.csv` / portal表示メタデータ`config/system_info.csv` | `Result Server Tests`, including site config preflight / site config preflightを含む`Result Server Tests` | Skipped by `.gitlab-ci.yml` rules / `.gitlab-ci.yml` rulesでskip | Public systems listed in `system_info.csv` must also exist in `system.csv` and reference a queue defined in `queue.csv` / `system_info.csv`に載せる公開systemは`system.csv`にも存在し、`queue.csv`定義済みqueueを参照する必要がある |
249-
| Portal upload helper / portal upload helper | `Result Server Tests` when covered by its path filter / path filter対象なら`Result Server Tests` | Not automatic for pull requests; runs only if a maintainer starts `GitLab Manual CI` / pull requestでは自動起動せず、maintainerが`GitLab Manual CI`を起動した場合のみ実行 | Upload helpers live under `scripts/**/*`, so manual benchmark validation may include them / upload helperは`scripts/**/*`配下なので手動benchmark検証の対象になりうる |
250-
| Benchmark app, shared scripts, `config/system.csv`, or `config/queue.csv` / benchmark app、共通script、`config/system.csv``config/queue.csv` | Normal GitHub review checks only / 通常のGitHub review checkのみ | Run through `GitLab Manual CI` when maintainer starts it / maintainerが`GitLab Manual CI`を起動した場合に実行 | Use `code` and `system` filters when broad validation is unnecessary / 広範な検証が不要なら`code``system`を指定する |
251-
| GitHub workflow/action / GitHub workflow/action | Workflow-specific checks when paths match / path一致時にworkflowごとのcheck | Not required by itself / それ単体では不要 | GitHub workflow/action changes affect API-calling or sync control logic. Validate them on the GitHub side; they are pushed to GitLab with `ci.skip` during protected-branch sync / GitHub workflow/action変更はAPI呼び出しやsync制御に影響する。GitHub側で確認する。protected-branch syncでは`ci.skip`付きでGitLabへpushされる |
248+
| Public site config or portal metadata `config/system.csv`, `config/queue.csv`, `config/system_info.csv` / 公開site configまたはportal表示メタデータ`config/system.csv``config/queue.csv``config/system_info.csv` | `Result Server Tests`, including site config preflight / site config preflightを含む`Result Server Tests` | `config/system.csv` and `config/queue.csv` run by `.gitlab-ci.yml`; `config/system_info.csv` is skipped / `config/system.csv``config/queue.csv``.gitlab-ci.yml`で実行、`config/system_info.csv`はskip | Public systems listed in `system_info.csv` must also exist in `system.csv` and reference a queue defined in `queue.csv` / `system_info.csv`に載せる公開systemは`system.csv`にも存在し、`queue.csv`定義済みqueueを参照する必要がある |
249+
| Portal upload or profile-data helper `scripts/bk_functions.sh`, `scripts/result.sh`, `scripts/result_server/**` / portal uploadまたはprofile-data helper `scripts/bk_functions.sh``scripts/result.sh``scripts/result_server/**` | `Result Server Tests` when covered by its path filter / path filter対象なら`Result Server Tests` | Not automatic for pull requests; runs only if a maintainer starts `GitLab Manual CI` / pull requestでは自動起動せず、maintainerが`GitLab Manual CI`を起動した場合のみ実行 | These helpers shape result JSON / upload behavior without requiring a full benchmark by default / これらのhelperはfull benchmarkを既定で要求せずにResult JSONやupload挙動へ影響する |
250+
| Benchmark app code or other shared scripts / benchmark appコードまたはその他の共通script | Normal GitHub review checks only / 通常のGitHub review checkのみ | Run through `GitLab Manual CI` when maintainer starts it / maintainerが`GitLab Manual CI`を起動した場合に実行 | Use `code` and `system` filters when broad validation is unnecessary / 広範な検証が不要なら`code``system`を指定する |
251+
| GitHub workflow/action `.github/**/*` / GitHub workflow/action `.github/**/*` | Workflow-specific checks when paths match / path一致時にworkflowごとのcheck | Skipped by `.gitlab-ci.yml` rules / `.gitlab-ci.yml` rulesでskip | GitHub workflow/action changes affect API-calling or sync control logic. Validate them on the GitHub side; they are pushed to GitLab with `ci.skip` during protected-branch sync / GitHub workflow/action変更はAPI呼び出しやsync制御に影響する。GitHub側で確認する。protected-branch syncでは`ci.skip`付きでGitLabへpushされる |
252252
| `.gitlab-ci.yml` / `.gitlab-ci.yml` | Normal GitHub review checks only / 通常のGitHub review checkのみ | Run through `GitLab Manual CI` when a maintainer needs to validate GitLab pipeline behavior / GitLab pipeline挙動の検証が必要な場合にmaintainerが`GitLab Manual CI`で実行 | This file defines GitLab benchmark pipeline behavior / このファイルはGitLab benchmark pipeline挙動を定義する |
253253

254254
## Representative Change Sets / 代表的な変更セット
@@ -263,9 +263,9 @@ Use these examples when deciding whether to split a pull request or start GitLab
263263
| `result_server/routes/usage.py` and `result_server/templates/*.html` / `result_server/routes/usage.py``result_server/templates/*.html` | `Result Server Tests` should run / `Result Server Tests`が動く | No benchmark run unless a maintainer intentionally starts one / maintainerが意図して起動しない限りbenchmark不要 |
264264
| `config/system_info.csv` only / `config/system_info.csv`のみ | `Result Server Tests` should verify public site config consistency / 公開site config整合性を`Result Server Tests`で確認 | No benchmark run because this file is portal display metadata / portal表示metadataなのでbenchmark不要 |
265265
| `config/system.csv` or `config/queue.csv` for a public system / 公開system向けの`config/system.csv`または`config/queue.csv` | `Result Server Tests` should run the site config preflight / `Result Server Tests`でsite config preflightを実行 | Start `GitLab Manual CI` too when benchmark execution behavior needs validation / benchmark実行挙動の検証が必要なら`GitLab Manual CI`も起動 |
266-
| `scripts/result_server/send_results.sh` only / `scripts/result_server/send_results.sh`のみ | `Result Server Tests` should run when the path filter matches / path filter対象なら`Result Server Tests`が動く | Manual GitLab CI is optional and only needed if upload behavior affects benchmark operation / upload挙動がbenchmark運用に影響する場合だけ手動GitLab CIを検討 |
266+
| `scripts/bk_functions.sh`, `scripts/result.sh`, or `scripts/result_server/**` only / `scripts/bk_functions.sh``scripts/result.sh`、または`scripts/result_server/**`のみ | `Result Server Tests` should run when the path filter matches / path filter対象なら`Result Server Tests`が動く | Manual GitLab CI is optional and only needed if upload behavior affects benchmark operation / upload挙動がbenchmark運用に影響する場合だけ手動GitLab CIを検討 |
267267
| `programs/qws/**/*` or `scripts/job/**/*` / `programs/qws/**/*`または`scripts/job/**/*` | Normal GitHub review checks / 通常のGitHub review check | Start `GitLab Manual CI` when benchmark validation is needed, preferably with explicit `code` and `system` filters / benchmark検証が必要なら`code``system`を明示して`GitLab Manual CI`を起動 |
268-
| `.github/workflows/sync-to-gitlab.yml` or `.github/actions/prepare-gitlab-repo/action.yml` / `.github/workflows/sync-to-gitlab.yml`または`.github/actions/prepare-gitlab-repo/action.yml` | Validate on the GitHub Actions side / GitHub Actions側で確認 | Not a GitLab benchmark trigger by itself. Protected-branch sync pushes it with `ci.skip` / それ単体ではGitLab benchmark起動対象ではない。protected-branch syncでは`ci.skip`付きでpushされる |
268+
| `.github/workflows/sync-to-gitlab.yml` or `.github/actions/prepare-gitlab-repo/action.yml` / `.github/workflows/sync-to-gitlab.yml`または`.github/actions/prepare-gitlab-repo/action.yml` | Validate on the GitHub Actions side / GitHub Actions側で確認 | Skipped by `.gitlab-ci.yml` rules when changed alone; protected-branch sync pushes it with `ci.skip` / 単独変更なら`.gitlab-ci.yml` rulesでskip。protected-branch syncでは`ci.skip`付きでpushされる |
269269
| `.gitlab-ci.yml` / `.gitlab-ci.yml` | Review the GitLab rule diff carefully / GitLab rule差分を慎重にreview | Start `GitLab Manual CI` if rule behavior itself needs validation / rule挙動そのものの検証が必要なら`GitLab Manual CI`を起動 |
270270

271271
## Contributor Guidance / コントリビュータ向け注意

docs/cx/BENCHKIT_GAP_ANALYSIS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,8 @@ Once the estimation specification is clarified, many other design decisions beco
314314
CI 関連の残 GAP は、「仕組みを新規に置く」段階から「対象範囲を運用に耐える形へ広げ、古くならないようにする」段階へ移っている。
315315
短期的な実装・確認は次の状態まで進んでいる。
316316

317-
1. `result-server-tests.yml` の path filter は、`result_server/**/*``scripts/result_server/send_results.sh``config/system.csv``config/queue.csv``config/system_info.csv``requirements-result-server.txt` を対象にする形へ更新済みである。
318-
2. `.gitlab-ci.yml` の heavy benchmark skip rules と `docs/ci.md` の説明は、root Markdown、`docs/**/*``result_server/**/*``config/system_info.csv` の扱いが一致するよう同期済みである
317+
1. `result-server-tests.yml` の path filter は、`result_server/**/*``scripts/bk_functions.sh``scripts/result.sh``scripts/result_server/**`、profile-data shell tests`config/system.csv``config/queue.csv``config/system_info.csv``requirements-result-server.txt` を対象にする形へ更新済みである。
318+
2. `.gitlab-ci.yml` の heavy benchmark skip rules と `docs/ci.md` の説明は、root Markdown、`docs/**/*``result_server/**/*`public site config / profile-data helper 周辺の lightweight verification 経路の扱いが一致するよう同期済みである
319319
3. 手動 GitLab CI は、`qws` / `MiyabiG` の最小実行で GitLab pipeline 起動から推定まで確認済みである。Pipeline API variables は JSON payload で渡す。
320320
4. protected branch sync は、`ci.skip` により GitLab mirror 更新時に GitLab CI が自動起動しないことを運用上確認済みである。
321321

0 commit comments

Comments
 (0)