diff --git a/.github/workflows/result-server-tests.yml b/.github/workflows/result-server-tests.yml index 5c7ef42..115e5df 100644 --- a/.github/workflows/result-server-tests.yml +++ b/.github/workflows/result-server-tests.yml @@ -19,6 +19,7 @@ on: - "scripts/tests/test_genesis_gpu_mlp_estimation.sh" - "scripts/tests/test_result_profile_data.sh" - "scripts/tests/test_process_and_send_results.sh" + - "scripts/tests/test_scheduler_extra_args.sh" - "scripts/tests/test_send_estimate_artifacts.sh" - "scripts/tests/test_send_results_profile_data.sh" - "scripts/test_estimate_submit.sh" @@ -51,6 +52,7 @@ on: - "scripts/tests/test_genesis_gpu_mlp_estimation.sh" - "scripts/tests/test_result_profile_data.sh" - "scripts/tests/test_process_and_send_results.sh" + - "scripts/tests/test_scheduler_extra_args.sh" - "scripts/tests/test_send_estimate_artifacts.sh" - "scripts/tests/test_send_results_profile_data.sh" - "scripts/test_estimate_submit.sh" @@ -130,6 +132,7 @@ jobs: bash scripts/tests/test_ncu_plan_generation.sh bash scripts/tests/test_result_profile_data.sh bash scripts/tests/test_process_and_send_results.sh + bash scripts/tests/test_scheduler_extra_args.sh bash scripts/tests/test_send_results_profile_data.sh bash scripts/tests/test_send_estimate_artifacts.sh bash scripts/tests/test_estimation_gpu_kernel_ensemble_average.sh diff --git a/config/queue.csv b/config/queue.csv index 5dc57dc..3991079 100644 --- a/config/queue.csv +++ b/config/queue.csv @@ -2,7 +2,7 @@ queue,submit_cmd,template SLURM_RIKYU,sbatch,"-p ${queue_group} ${scheduler_extra_args} -t ${elapse} -N ${nodes} --ntasks-per-node=${numproc_node} --cpus-per-task=${nthreads} --gpus=${proc}" 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}" +SLURM_RC,sbatch,"-p ${queue_group} ${scheduler_extra_args} -t ${elapse} -N ${nodes} --ntasks-per-node=${numproc_node} --cpus-per-task=${nthreads}" 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" diff --git a/docs/ci.md b/docs/ci.md index d76a872..7e9851c 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -71,6 +71,7 @@ The workflow accepts these inputs: | `target_ref` | Branch, tag, or SHA in the upstream repository to test / upstreamリポジトリ内でテストするbranch、tag、SHA | `feature/my-change`, `ci/pr-123`, `develop` | | `code` | BenchKit program filter / BenchKitプログラムのフィルタ | `qws,genesis` | | `system` | BenchKit system filter. Legacy BenchPark bridge jobs in this repo do not honor this as a general system selector. / BenchKit systemフィルタ。このrepo内のlegacy BenchPark bridge jobは汎用system selectorとしては扱いません | `Fugaku,MiyabiG` | +| `BK_ALLOCATION_PROJECT_ID` | Optional semantic project/allocation ID supplied by the Portal. BenchKit translates it to scheduler syntax only for systems that require it, for example Slurm `--account=` on RIKYU. / Portal が渡す任意の意味的な project/allocation ID。BenchKit は必要な system に限って scheduler 書式へ変換します。例: RIKYU の Slurm `--account=` | `rkp00010` | | `app` | Legacy BenchPark bridge app filter. Active BenchPark CI/CD/CB result handling is maintained in a separate project. / legacy BenchPark bridge appフィルタ。現行BenchPark CI/CD/CB結果受け取りは別プロジェクト側で管理します | `osu-micro-benchmarks` | | `benchpark` | Enable the legacy BenchPark bridge path together with BenchKit / legacy BenchPark bridge pathも有効化 | `true` | | `park_only` | Run only the legacy BenchPark bridge path / legacy BenchPark bridgeのみ実行 | `true` | diff --git a/docs/guides/portal-execution-profiles-handoff.md b/docs/guides/portal-execution-profiles-handoff.md index df0ded1..e5408dd 100644 --- a/docs/guides/portal-execution-profiles-handoff.md +++ b/docs/guides/portal-execution-profiles-handoff.md @@ -69,8 +69,12 @@ The current GitLab CI entry point consumes `code`, `system`, and the resolved allocation project ID. Execution profile fields such as `exp` remain Portal-side matching and audit metadata until the GitLab matrix generator grows a matching selector. Scheduler-specific command-line formatting belongs to the -BenchKit CI generation layer, not to Portal profile records. BenchPark bridge -controls in this repository are legacy; active BenchPark CI/CD/CB result +BenchKit CI generation layer, not to Portal profile records. Allocation project +ID is optional. Slurm systems that require an explicit charged project, such as +RIKYU, derive `--account=` when the value is present, +unless a site-local `BK_SCHEDULER_EXTRA_ARGS*` override is already set. Systems +without such a scheduler requirement should leave the field empty. BenchPark +bridge controls in this repository are legacy; active BenchPark CI/CD/CB result handling has moved to a separate project. ## GitLab Pipeline Trigger Configuration diff --git a/result_server/routes/admin.py b/result_server/routes/admin.py index 80861a7..045fd74 100644 --- a/result_server/routes/admin.py +++ b/result_server/routes/admin.py @@ -108,9 +108,6 @@ def _parse_execution_profile_form(): f"got {len(system)} ({system_label}). " "Split the profile per system or keep only one system in this profile." ) - if request.form.get("status", "").strip() == "approved" and not allocation_project_id: - errors.append("approved profiles require allocation_project_id") - actor = session.get("user_email", "") raw_profile = { "id": request.form.get("id", "").strip(), @@ -291,8 +288,6 @@ def _build_execution_pipeline_plan(store): request_errors = [] if not profile_id: request_errors.append("profile_id is required") - if profile and not resolve_result.allocation_project_id: - request_errors.append("profile allocation_project_id is required") if effective_exp: plan.warnings.append( "Profile Exp is used for Portal profile matching and is not sent to GitLab CI." diff --git a/result_server/templates/admin_execution_profiles.html b/result_server/templates/admin_execution_profiles.html index 0cf73c6..944a71a 100644 --- a/result_server/templates/admin_execution_profiles.html +++ b/result_server/templates/admin_execution_profiles.html @@ -371,8 +371,8 @@

{% if edit_profile %}Edit Profile{% else %}Create Prof