Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
29 changes: 26 additions & 3 deletions .github/workflows/result-server-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ on:
pull_request:
paths:
- "result_server/**"
- "scripts/result_server/send_results.sh"
- "scripts/bk_functions.sh"
- "scripts/result.sh"
- "scripts/result_server/**"
- "scripts/tests/test_bk_profiler.sh"
- "scripts/tests/test_result_profile_data.sh"
- "scripts/tests/test_send_results_profile_data.sh"
- "config/system.csv"
- "config/queue.csv"
- "config/system_info.csv"
Expand All @@ -15,7 +20,12 @@ on:
- "**"
paths:
- "result_server/**"
- "scripts/result_server/send_results.sh"
- "scripts/bk_functions.sh"
- "scripts/result.sh"
- "scripts/result_server/**"
- "scripts/tests/test_bk_profiler.sh"
- "scripts/tests/test_result_profile_data.sh"
- "scripts/tests/test_send_results_profile_data.sh"
- "config/system.csv"
- "config/queue.csv"
- "config/system_info.csv"
Expand All @@ -30,8 +40,8 @@ jobs:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.12"
- "3.13"

steps:
- name: Check out repository
Expand All @@ -54,3 +64,16 @@ jobs:

- name: Run result_server pytest suite
run: python result_server/tests/run_result_server_tests.py

profile-data-shell:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Run profiler and profile-data shell tests
run: |
bash scripts/tests/test_bk_profiler.sh
bash scripts/tests/test_result_profile_data.sh
bash scripts/tests/test_send_results_profile_data.sh
55 changes: 35 additions & 20 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#
# Files that automatically skip CI:
# - root Markdown files and docs/**/* (documentation)
# - .github/**/* (GitHub-only workflow/action files)
# - result_server/**/* and config/system_info.csv (portal/server code, templates, and display metadata)
#
# Important Notes:
Expand Down Expand Up @@ -85,17 +86,22 @@ generate_matrix:
- if: '$CI_COMMIT_MESSAGE =~ /\[park-send\]/'
when: never # [park-send]コミットメッセージでは無効
- changes:
- ".gitlab-ci.yml"
- "programs/**/*"
- "scripts/**/*"
- "config/system.csv"
- "config/queue.csv"
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
paths:
- ".gitlab-ci.yml"
- "programs/**/*"
- "scripts/**/*"
- "config/system.csv"
- "config/queue.csv"
when: always
- changes:
- "*.md"
- "docs/**/*"
- "result_server/**/*"
- "config/system_info.csv"
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
paths:
- ".github/**/*"
- "*.md"
- "docs/**/*"
- "result_server/**/*"
- "config/system_info.csv"
when: never
- when: always

Expand All @@ -121,17 +127,22 @@ trigger_child_pipeline:
- if: '$CI_COMMIT_MESSAGE =~ /\[park-send\]/'
when: never # [park-send]コミットメッセージでは無効
- changes:
- ".gitlab-ci.yml"
- "programs/**/*"
- "scripts/**/*"
- "config/system.csv"
- "config/queue.csv"
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
paths:
- ".gitlab-ci.yml"
- "programs/**/*"
- "scripts/**/*"
- "config/system.csv"
- "config/queue.csv"
when: always
- changes:
- "*.md"
- "docs/**/*"
- "result_server/**/*"
- "config/system_info.csv"
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
paths:
- ".github/**/*"
- "*.md"
- "docs/**/*"
- "result_server/**/*"
- "config/system_info.csv"
when: never
- when: always
# BenchPark Monitor Jobs
Expand Down Expand Up @@ -163,7 +174,9 @@ generate_benchpark_matrix:
- if: '$CI_COMMIT_MESSAGE =~ /\[benchpark\]/'
when: always
- changes:
- "benchpark-bridge/**/*"
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
paths:
- "benchpark-bridge/**/*"
when: always
- when: never

Expand Down Expand Up @@ -197,7 +210,9 @@ trigger_benchpark_pipeline:
- if: '$CI_COMMIT_MESSAGE =~ /\[benchpark\]/'
when: always
- changes:
- "benchpark-bridge/**/*"
compare_to: "refs/heads/$CI_DEFAULT_BRANCH"
paths:
- "benchpark-bridge/**/*"
when: always
- when: never

Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ This includes:
- system-specific execution environments
- runtime requirements

## Runtime Requirements

- `result_server` requires Python 3.12 or later.

## License

This project is licensed under the BSD 3-Clause License. See [LICENSE](LICENSE).
7 changes: 6 additions & 1 deletion config/queue.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
queue,submit_cmd,template
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"
PJM_GENKAI,pjsub,"-L rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi proc=${proc}"
SLURM_RC,sbatch,"-p ${queue_group} -t ${elapse} -N ${nodes} --ntasks-per-node=${numproc_node} --cpus-per-task=${nthreads}"
PBS_Miyabi,qsub,"-q ${queue_group} -l select=${nodes} -l walltime=${elapse} -W group_list=jh260034"
PBS_Miyabi,qsub,"-q ${queue_group} -l select=${nodes}:mpiprocs=${numproc_node}:ompthreads=${nthreads} -l walltime=${elapse} -W group_list=jh260034"
PBS_Grand_C,qsub,"-q ${queue_group} -l select=${nodes}:nsockets=${cpu_per_node},walltime=${elapse} -W group_list=d30992"
PBS_Grand_G,qsub,"-q ${queue_group} -l select=${nodes}:ngpus=1,walltime=${elapse} -W group_list=d30992"
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}"
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}"
none,none,none
8 changes: 8 additions & 0 deletions config/system.csv
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,12 @@ RC_GENOA,native,,cloud_jacamar,SLURM_RC,genoa
RC_FX700,native,,cloud_jacamar,SLURM_RC,fx700
MiyabiG,cross,miyabi_g_login,miyabi_g_jacamar,PBS_Miyabi,debug-g
MiyabiC,cross,miyabi_c_login,miyabi_c_jacamar,PBS_Miyabi,debug-c
GenkaiA,cross,genkai_login,genkai_jacamar,PJM_GENKAI,a-batch
GenkaiB,cross,genkai_login,genkai_jacamar,PJM_GENKAI,b-batch
GenkaiC,cross,genkai_login,genkai_jacamar,PJM_GENKAI,c-batch
Grand_C,cross,grand_login,grand_jacamar,PBS_Grand_C,lc
Grand_G,cross,grand_login,grand_jacamar,PBS_Grand_G,eg
AOBA_A,cross,aoba_ab_login,aoba_ab_jacamar,NQSV_AOBA_VE,sx
AOBA_B,cross,aoba_ab_login,aoba_ab_jacamar,NQSV_AOBA_B,lx
AOBA_S,cross,aoba_s_login,aoba_s_jacamar,NQSV_AOBA_VE,sxs
FNCX,native,,fncx-curl-jq,none,small
8 changes: 8 additions & 0 deletions config/system_info.csv
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,11 @@ RC_GH200,RC_GH200,NVIDIA Grace CPU,1,72,NVIDIA Hopper H100 GPU,1,120GB,6
RC_DGXSP,RC_DGXSP,ARM Cortex-X925 / Cortex-A725,1,20,NVIDIA GB10,1,128GB,7
RC_GENOA,RC_GENOA,AMD EPYC 9684X,2,96,-,-,768GB,8
RC_FX700,RC_FX700,A64FX,1,48,-,-,32GB,9
GenkaiA,GenkaiA,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,-,-,512GiB,10
GenkaiB,GenkaiB,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,NVIDIA H100 (Hopper),4,1024GiB,11
GenkaiC,GenkaiC,Intel Xeon Platinum 8480+ (Sapphire Rapids),2,56,NVIDIA H100 (Hopper),8,8TiB,12
Grand_C,Grand_C,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,-,-,512GiB,13
Grand_G,Grand_G,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,NVIDIA H100 (Hopper),4,512GiB,14
AOBA_A,AOBA_A,SX-Aurora TSUBASA VH,1,24,NEC SX-Aurora TSUBASA Type 20B VE,8,640GB,15
AOBA_B,AOBA_B,AMD EPYC 7702,2,64,-,-,256GB,16
AOBA_S,AOBA_S,SX-Aurora TSUBASA VH,1,64,NEC SX-Aurora TSUBASA Type 30A VE,8,256GB + 768GB,17
12 changes: 6 additions & 6 deletions docs/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,10 @@ app support matrix、partial support、app entrypoint不足、`list.csv` 内の
|---|---|---|---|
| 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変更と分ける |
| `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で捕捉する |
| 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を参照する必要がある |
| 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検証の対象になりうる |
| 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`を指定する |
| 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される |
| 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を参照する必要がある |
| 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挙動へ影響する |
| 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`を指定する |
| 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される |
| `.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挙動を定義する |

## Representative Change Sets / 代表的な変更セット
Expand All @@ -263,9 +263,9 @@ Use these examples when deciding whether to split a pull request or start GitLab
| `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不要 |
| `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不要 |
| `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`も起動 |
| `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を検討 |
| `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を検討 |
| `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`を起動 |
| `.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される |
| `.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される |
| `.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`を起動 |

## Contributor Guidance / コントリビュータ向け注意
Expand Down
4 changes: 2 additions & 2 deletions docs/cx/BENCHKIT_GAP_ANALYSIS.md
Original file line number Diff line number Diff line change
Expand Up @@ -314,8 +314,8 @@ Once the estimation specification is clarified, many other design decisions beco
CI 関連の残 GAP は、「仕組みを新規に置く」段階から「対象範囲を運用に耐える形へ広げ、古くならないようにする」段階へ移っている。
短期的な実装・確認は次の状態まで進んでいる。

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` を対象にする形へ更新済みである。
2. `.gitlab-ci.yml` の heavy benchmark skip rules と `docs/ci.md` の説明は、root Markdown、`docs/**/*`、`result_server/**/*`、`config/system_info.csv` の扱いが一致するよう同期済みである
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` を対象にする形へ更新済みである。
2. `.gitlab-ci.yml` の heavy benchmark skip rules と `docs/ci.md` の説明は、root Markdown、`docs/**/*`、`result_server/**/*`、public site config / profile-data helper 周辺の lightweight verification 経路の扱いが一致するよう同期済みである
3. 手動 GitLab CI は、`qws` / `MiyabiG` の最小実行で GitLab pipeline 起動から推定まで確認済みである。Pipeline API variables は JSON payload で渡す。
4. protected branch sync は、`ci.skip` により GitLab mirror 更新時に GitLab CI が自動起動しないことを運用上確認済みである。

Expand Down
Loading
Loading