Skip to content

Add job submit skip in pbs, sge,slurm#558

Open
KanaiYuma-aist wants to merge 43 commits into
mainfrom
feature/job_resume
Open

Add job submit skip in pbs, sge,slurm#558
KanaiYuma-aist wants to merge 43 commits into
mainfrom
feature/job_resume

Conversation

@KanaiYuma-aist

@KanaiYuma-aist KanaiYuma-aist commented Mar 31, 2026

Copy link
Copy Markdown
Collaborator

ジョブは正常終了した一方、aiaccel-job 自体が外的要因で途中で落ちた場合を想定し、
aiaccel-job 実行時に job file(.sh) と正常終了した status file (.out) が存在する場合にジョブを投入せずに終了する処理を追加しました。

  • status file に出力されている値が 0 (正常終了) の場合にジョブ投入のスキップ処理を実行します
    • その場合、status file の削除のみを実行し、ジョブ投入を行わずに終了します
    • 0 以外 (異常終了) の値だった場合は、通常通りジョブ投入を実行します

実行例

$ cat test.out 
0
$ aiaccel-job slurm --config job_config.yaml cpu test.log -- sh test_script.sh 
A successfully completed .out file exists(['/.../test.out']), so the job will not be submitted.
$ cat test.out 
cat: test.out: No such file or directory

@KanaiYuma-aist KanaiYuma-aist changed the title Add job skip in pbs, sge,slurm Add job submit skip in pbs, sge,slurm Mar 31, 2026
@KanaiYuma-aist

Copy link
Copy Markdown
Collaborator Author

メモ pbs, sge は動作確認出来ていないです

@KanaiYuma-aist

KanaiYuma-aist commented Mar 31, 2026

Copy link
Copy Markdown
Collaborator Author
  • submit_job_and_wait を追加し、pbs.py sge.py slurm.py の後半のジョブ投入と待機処理をまとめました
    • 前半の job_script 生成周りは固有の環境変数等が複数出現する都合上、まとめようとしても行数がほとんど変わらない上で可読性だけ落ちるので、一旦まとめずにそのままにしています
  • スキップ処理の判定を _is_skip_job_submission にまとめ、job_file の内容が job_script と同一のものかどうかを判定する処理を追加しました

@KanaiYuma-aist

Copy link
Copy Markdown
Collaborator Author
  • prepare_job_context を追加し、job, job_log_filename, job_status_filename, status_filename_list の生成処理をまとめました

@KanaiYuma-aist

KanaiYuma-aist commented Apr 2, 2026

Copy link
Copy Markdown
Collaborator Author
  • JobApp, SchedulerJobApp を追加し、local.py, pbs.py, sge.py, slurm.py でそれらを継承し、ジョブ投入を実行する形に改修しました
    • local.pyJobApp を、pbs.py, sge.py, slurm.pySchedulerJobApp を継承しています

@KanaiYuma-aist

KanaiYuma-aist commented Apr 6, 2026

Copy link
Copy Markdown
Collaborator Author
  • run の構成を build_job, prepare_job_context, build_job_script, launch_job にしました
    • local では prepare_single_job_context, prepare_array_job_context, launch_job をオーバーライドして実装しています
    • pbs, sge, slurm では sheduler 共通のクラスを作成し(SchedulerJobApplaunch_job をオーバーライドして実装しています
  • 定数として扱っていたクラス変数を削除しました

@KanaiYuma-aist

Copy link
Copy Markdown
Collaborator Author

conflicts を解消しました

  • SGE のジョブ名制約回避処理は、build_submit_command に統合するのが自然かと判断し、そのように改修しました。

@read-the-docs-community

read-the-docs-community Bot commented Apr 27, 2026

Copy link
Copy Markdown

@KanaiYuma-aist

Copy link
Copy Markdown
Collaborator Author

conflicts を解消しました

  • slurm に関しては、prepare_single_job_context の継承を行い、そこで job の上書き処理を追加しました
    • (trap SIGTERM の処理に必要)

@KanaiYuma-aist KanaiYuma-aist marked this pull request as ready for review May 1, 2026 04:21
@KanaiYuma-aist KanaiYuma-aist marked this pull request as draft May 1, 2026 04:27
@KanaiYuma-aist KanaiYuma-aist marked this pull request as ready for review May 1, 2026 08:18
@KanaiYuma-aist

Copy link
Copy Markdown
Collaborator Author

ABCI (PBS) において意図通りに動作することを確認したので、Draft を解除しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants