cryoSPARC/qsub をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
Clusters形式
「&color(magenta){Master};」のweb画面で発行するジョブを ...
ジョブ管理システム で管理されているリソースから 適切に選...
目下使用できる ジョブ管理システム は
-pbs([[OpenPBS]], [[Torque>TORQUE]]ら)
-[[slurm]]
-gridengine
となっているみたい. ここでは OpenPBS を採用しています.
slurmの場合[[cryoSPARC/sbatch]]
gridengineの場合[[cryoSPARC/sge]]
***&color(magenta){master};と&color(orangered){worker};の...
[[cryoSPARC/Master-Worker]]と同じように構築してください.
ジョブ管理システム の枠組みで
&color(magenta){master};ノード は ジョブ発行ノード を担い、
&color(orangered){worker};ノードを 計算ノードを担います.
そのように job管理システム を構築してください.
参照 [[slurm]], [[OpenPBS]]
***テンプレートの作成 [#sa5f7bb8]
ジョブ管理システム毎の設定シート(&color(darkorange){clust...
まずはそのテンプレートを取得.
#code(nonumber){{
[cryosparc@cryosparc ~]$ cryosparcm cluster example
Writing example cluster_info.json and cluster_script.sh t...
Unknown cluster type. Supported templates are:
pbs
slurm
gridengine
Any cluster scheduler is supported, but you may have to w...
[cryosparc@cryosparc ~]$
}}
ここでは[[OpenPBS]]を使用するので「pbs」のテンプレートを...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cryosparcm cluster example pbs
Writing example cluster_info.json and cluster_script.sh t...
[cryosparc@cryosparc ~]$
}}
すると、コマンドを実行した場所に設定ファイルのテンプレー...
テンプレート&color(darkorange){cluster_info.json};の中身...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cat cluster_info.json
{
"name" : "pbscluster",
"worker_bin_path" : "/path/to/cryosparc_worker/bin/cr...
"cache_path" : "/path/to/local/SSD/on/cluster/nodes",
"send_cmd_tpl" : "ssh loginnode {{ command } }",
"qsub_cmd_tpl" : "qsub {{ script_path_abs } }",
"qstat_cmd_tpl" : "qstat -as {{ cluster_job_id } }",
"qdel_cmd_tpl" : "qdel {{ cluster_job_id } }",
"qinfo_cmd_tpl" : "qstat -q"
}
[cryosparc@cryosparc ~]$
}}
もう一つの&color(darkorchid){cluster_script.sh};はこんな...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cat cluster_script.sh
#!/usr/bin/env bash
#### cryoSPARC cluster submission script template for PBS
## Available variables:
## {{ run_cmd } } - the complete command strin...
## {{ num_cpu } } - the number of CPUs needed
## {{ num_gpu } } - the number of GPUs needed.
## Note: The code will use thi...
## The cluster scheduler...
## of setting CUDA_VISIB...
## job uses the correct ...
## {{ ram_gb } } - the amount of RAM needed i...
## {{ job_dir_abs } } - absolute path to the job d...
## {{ project_dir_abs } } - absolute path to the proje...
## {{ job_log_path_abs } } - absolute path to the log f...
## {{ worker_bin_path } } - absolute path to the cryos...
## {{ run_args } } - arguments to be passed to ...
## {{ project_uid } } - uid of the project
## {{ job_uid } } - uid of the job
## {{ job_creator } } - name of the user that crea...
## {{ cryosparc_username } } - cryosparc username of the ...
##
## What follows is a simple PBS script:
#PBS -N cryosparc_{{ project_uid } }_{{ job_uid } }
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
#PBS -o {{ job_log_path_abs } }
#PBS -e {{ job_log_path_abs } }
{{ run_cmd } }
[cryosparc@cryosparc ~]$
}}
これら2つを ジョブ管理システム openPBS に適合するように...
***cluster_info.json [#xd24055f]
変更箇所
-name:
cryoSPARCで認識できる名称
-worker_bin_path
&color(orangered){worker};ノードでの「cryosparcw」までの...
「/home/cryosparc/cryoSPARC/cryosparc_worker/bin/cryospar...
-cache_path
&color(orangered){worker};ノードでの「Fast Local Storage...
「/scr/cs」
-send_cmd_tpl
「{{ command }}」
&color(magenta){master};ノードが直接qsubを実行できないシ...
&color(red){*};&size(10){***ここのpukiwikiの記述ルールの...
#code(diff,nonumber){{
--- cluster_info.json.orig 2025-10-25 00:14:26.24747...
+++ cluster_info.json 2025-10-25 01:06:35.750542940 +0900
@@ -1,8 +1,8 @@
{
"name" : "pbscluster",
- "worker_bin_path" : "/path/to/cryosparc_worker/bin/c...
- "cache_path" : "/path/to/local/SSD/on/cluster/nodes",
- "send_cmd_tpl" : "ssh loginnode {{ command } }",
+ "worker_bin_path" : "/home/cryosparc/cryoSPARC/cryos...
+ "cache_path" : "/scr/cs",
+ "send_cmd_tpl" : "{{ command } }",
"qsub_cmd_tpl" : "qsub {{ script_path_abs } }",
"qstat_cmd_tpl" : "qstat -as {{ cluster_job_id } }",
"qdel_cmd_tpl" : "qdel {{ cluster_job_id } }",
}}
***cluster_script.sh [#q36925f9]
ジョブ監視システムに投入されるスクリプト文です.
openPBSなので「#PBS」とディレクティブが含まれ、要求するリ...
「cluster_script.sh」はテンプレートでジョブの内容でテンプ...
変数には
num_cpu: CPUの数
num_gpu: GPUの数
ram_gb: RAMのサイズ
とかがあります.
これらの値はジョブの設定画面で決められるものや、内部で既...
計算に必要なCPUの数、GPUの数、RAMのサイズが定まれば、ジョ...
テンプレートの「#PBS -l」欄には「gputype=P100」とありま...
#code(diff,nonumber){{
--- cluster_script.sh.orig 2025-10-25 01:21:29.46470...
+++ cluster_script.sh 2025-10-25 01:21:38.559632567 +0900
@@ -22,7 +22,7 @@
## What follows is a simple PBS script:
#PBS -N cryosparc_{{ project_uid } }_{{ job_uid } }
-#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu }...
+#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu }...
#PBS -o {{ job_log_path_abs } }
#PBS -e {{ job_log_path_abs } }
}}
&color(red){*};&size(10){***ここのpukiwikiの記述ルールの...
***カスタマイズしたテンプレートの取り込み [#x8613478]
こうしてカスタマイズした&color(darkorange){cluster_info.j...
これらのファイルが置かれた場所で「cryosparcm cluster conn...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cryosparcm cluster connect
:
Successfully added cluster lane pbscluster
(確認は下記コマンドで)
[cryosparc@cryosparc ~]$ cryosparcm cli "get_scheduler_la...
(削除はcluster_info.jsonのnameを使います)
[cryosparc@cryosparc ~]$ cryosparcm cluster remove pbsclu...
(あるいは)
[cryosparc@cryosparc ~]$ cryosparcm cli "remove_scheduler...
}}
***ホスト毎にジョブを流したい [#o64a290a]
もはやジョブ管理システムではなくなっているような気がしま...
「&color(darkorchid){cluster_script.sh};」の「#PBS -l」欄...
#code(diff,nonumber){{
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
}}
そして「&color(darkorange){cluster_info.json};」でnameを...
gpu02なら
#code(diff,nonumber){{
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
}}
「&color(darkorange){cluster_info.json};」でnameを「cs-gp...
これでホスト指定でジョブ投入が行えます。
&size(10){これなら「master-worker」方式でもよさげですが.....
***メモ [#i6ab2782]
「&color(red){[Errno 2] No such file or directory: 'qsub'...
Clusters形式で自動起動する場合、/etc/profile.d/slurm.sh ...
その際「cryosparc.service」で
#code(nonumber){{
ExecStart=/home/cryosparc/cryosparc_master/bin/cryosparcm...
↓
ExecStart=/bin/bash -l /home/cryosparc/cryosparc_master/b...
}}
とする. そうしないとsbatchやqsubコマンドが見つからずに落...
***メモ clusterでのpatchの当て方 [#x9457434]
master側には
#code(nonumber){{
cryosparcm patch
}}
でいいのだが、worker側にはpatchがあたらない. なので
#code(nonumber){{
cryosparcm patch --download
あるいは
cryosparcm patch --download --force
}}
にてパッチファイルを取得して、
#code(nonumber){{
cd cryosparc_worker/
cp ../cryosparc_master/cryosparc_worker_patch.tar.gz .
bin/cryosparcw patch
}}
で行う
***変数を追加 [#m4be6276]
「とある系で計算してたらメモリーが足らない」と表示された....
たいていは、cryoSPARCが想定しているメモリー量よりも多くの...
回避策としては「#PBS -l」にパラメータを設置します. すると...
&color(darkorchid){cluster_script.sh};の例. ram_gb_multi...
#code(nonumber){{
#!/usr/bin/env bash
#PBS -N cryosparc_{{ project_uid } }_{{ job_uid } }
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
#PBS -o {{ job_log_path_abs } }
#PBS -e {{ job_log_path_abs } }
{{ run_cmd } }
}}
これで登録すると
cryoSPARCサービスのAdmin->Cluster Configurationが下記のよ...
&ref(2025y06m11d_023041213.png,nolink,80%);
このままでは「No cluster variables have been set.」なので...
&ref(2025y06m11d_023740044.png,nolink); --> &ref(2025y06m...
これでジョブを投入する際にLaneから「pbscluster」を選ぶと...
&ref(2025y06m11d_024146948.png,nolink); --> &ref(2025y06m...
終了行:
Clusters形式
「&color(magenta){Master};」のweb画面で発行するジョブを ...
ジョブ管理システム で管理されているリソースから 適切に選...
目下使用できる ジョブ管理システム は
-pbs([[OpenPBS]], [[Torque>TORQUE]]ら)
-[[slurm]]
-gridengine
となっているみたい. ここでは OpenPBS を採用しています.
slurmの場合[[cryoSPARC/sbatch]]
gridengineの場合[[cryoSPARC/sge]]
***&color(magenta){master};と&color(orangered){worker};の...
[[cryoSPARC/Master-Worker]]と同じように構築してください.
ジョブ管理システム の枠組みで
&color(magenta){master};ノード は ジョブ発行ノード を担い、
&color(orangered){worker};ノードを 計算ノードを担います.
そのように job管理システム を構築してください.
参照 [[slurm]], [[OpenPBS]]
***テンプレートの作成 [#sa5f7bb8]
ジョブ管理システム毎の設定シート(&color(darkorange){clust...
まずはそのテンプレートを取得.
#code(nonumber){{
[cryosparc@cryosparc ~]$ cryosparcm cluster example
Writing example cluster_info.json and cluster_script.sh t...
Unknown cluster type. Supported templates are:
pbs
slurm
gridengine
Any cluster scheduler is supported, but you may have to w...
[cryosparc@cryosparc ~]$
}}
ここでは[[OpenPBS]]を使用するので「pbs」のテンプレートを...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cryosparcm cluster example pbs
Writing example cluster_info.json and cluster_script.sh t...
[cryosparc@cryosparc ~]$
}}
すると、コマンドを実行した場所に設定ファイルのテンプレー...
テンプレート&color(darkorange){cluster_info.json};の中身...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cat cluster_info.json
{
"name" : "pbscluster",
"worker_bin_path" : "/path/to/cryosparc_worker/bin/cr...
"cache_path" : "/path/to/local/SSD/on/cluster/nodes",
"send_cmd_tpl" : "ssh loginnode {{ command } }",
"qsub_cmd_tpl" : "qsub {{ script_path_abs } }",
"qstat_cmd_tpl" : "qstat -as {{ cluster_job_id } }",
"qdel_cmd_tpl" : "qdel {{ cluster_job_id } }",
"qinfo_cmd_tpl" : "qstat -q"
}
[cryosparc@cryosparc ~]$
}}
もう一つの&color(darkorchid){cluster_script.sh};はこんな...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cat cluster_script.sh
#!/usr/bin/env bash
#### cryoSPARC cluster submission script template for PBS
## Available variables:
## {{ run_cmd } } - the complete command strin...
## {{ num_cpu } } - the number of CPUs needed
## {{ num_gpu } } - the number of GPUs needed.
## Note: The code will use thi...
## The cluster scheduler...
## of setting CUDA_VISIB...
## job uses the correct ...
## {{ ram_gb } } - the amount of RAM needed i...
## {{ job_dir_abs } } - absolute path to the job d...
## {{ project_dir_abs } } - absolute path to the proje...
## {{ job_log_path_abs } } - absolute path to the log f...
## {{ worker_bin_path } } - absolute path to the cryos...
## {{ run_args } } - arguments to be passed to ...
## {{ project_uid } } - uid of the project
## {{ job_uid } } - uid of the job
## {{ job_creator } } - name of the user that crea...
## {{ cryosparc_username } } - cryosparc username of the ...
##
## What follows is a simple PBS script:
#PBS -N cryosparc_{{ project_uid } }_{{ job_uid } }
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
#PBS -o {{ job_log_path_abs } }
#PBS -e {{ job_log_path_abs } }
{{ run_cmd } }
[cryosparc@cryosparc ~]$
}}
これら2つを ジョブ管理システム openPBS に適合するように...
***cluster_info.json [#xd24055f]
変更箇所
-name:
cryoSPARCで認識できる名称
-worker_bin_path
&color(orangered){worker};ノードでの「cryosparcw」までの...
「/home/cryosparc/cryoSPARC/cryosparc_worker/bin/cryospar...
-cache_path
&color(orangered){worker};ノードでの「Fast Local Storage...
「/scr/cs」
-send_cmd_tpl
「{{ command }}」
&color(magenta){master};ノードが直接qsubを実行できないシ...
&color(red){*};&size(10){***ここのpukiwikiの記述ルールの...
#code(diff,nonumber){{
--- cluster_info.json.orig 2025-10-25 00:14:26.24747...
+++ cluster_info.json 2025-10-25 01:06:35.750542940 +0900
@@ -1,8 +1,8 @@
{
"name" : "pbscluster",
- "worker_bin_path" : "/path/to/cryosparc_worker/bin/c...
- "cache_path" : "/path/to/local/SSD/on/cluster/nodes",
- "send_cmd_tpl" : "ssh loginnode {{ command } }",
+ "worker_bin_path" : "/home/cryosparc/cryoSPARC/cryos...
+ "cache_path" : "/scr/cs",
+ "send_cmd_tpl" : "{{ command } }",
"qsub_cmd_tpl" : "qsub {{ script_path_abs } }",
"qstat_cmd_tpl" : "qstat -as {{ cluster_job_id } }",
"qdel_cmd_tpl" : "qdel {{ cluster_job_id } }",
}}
***cluster_script.sh [#q36925f9]
ジョブ監視システムに投入されるスクリプト文です.
openPBSなので「#PBS」とディレクティブが含まれ、要求するリ...
「cluster_script.sh」はテンプレートでジョブの内容でテンプ...
変数には
num_cpu: CPUの数
num_gpu: GPUの数
ram_gb: RAMのサイズ
とかがあります.
これらの値はジョブの設定画面で決められるものや、内部で既...
計算に必要なCPUの数、GPUの数、RAMのサイズが定まれば、ジョ...
テンプレートの「#PBS -l」欄には「gputype=P100」とありま...
#code(diff,nonumber){{
--- cluster_script.sh.orig 2025-10-25 01:21:29.46470...
+++ cluster_script.sh 2025-10-25 01:21:38.559632567 +0900
@@ -22,7 +22,7 @@
## What follows is a simple PBS script:
#PBS -N cryosparc_{{ project_uid } }_{{ job_uid } }
-#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu }...
+#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu }...
#PBS -o {{ job_log_path_abs } }
#PBS -e {{ job_log_path_abs } }
}}
&color(red){*};&size(10){***ここのpukiwikiの記述ルールの...
***カスタマイズしたテンプレートの取り込み [#x8613478]
こうしてカスタマイズした&color(darkorange){cluster_info.j...
これらのファイルが置かれた場所で「cryosparcm cluster conn...
#code(nonumber){{
[cryosparc@cryosparc ~]$ cryosparcm cluster connect
:
Successfully added cluster lane pbscluster
(確認は下記コマンドで)
[cryosparc@cryosparc ~]$ cryosparcm cli "get_scheduler_la...
(削除はcluster_info.jsonのnameを使います)
[cryosparc@cryosparc ~]$ cryosparcm cluster remove pbsclu...
(あるいは)
[cryosparc@cryosparc ~]$ cryosparcm cli "remove_scheduler...
}}
***ホスト毎にジョブを流したい [#o64a290a]
もはやジョブ管理システムではなくなっているような気がしま...
「&color(darkorchid){cluster_script.sh};」の「#PBS -l」欄...
#code(diff,nonumber){{
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
}}
そして「&color(darkorange){cluster_info.json};」でnameを...
gpu02なら
#code(diff,nonumber){{
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
}}
「&color(darkorange){cluster_info.json};」でnameを「cs-gp...
これでホスト指定でジョブ投入が行えます。
&size(10){これなら「master-worker」方式でもよさげですが.....
***メモ [#i6ab2782]
「&color(red){[Errno 2] No such file or directory: 'qsub'...
Clusters形式で自動起動する場合、/etc/profile.d/slurm.sh ...
その際「cryosparc.service」で
#code(nonumber){{
ExecStart=/home/cryosparc/cryosparc_master/bin/cryosparcm...
↓
ExecStart=/bin/bash -l /home/cryosparc/cryosparc_master/b...
}}
とする. そうしないとsbatchやqsubコマンドが見つからずに落...
***メモ clusterでのpatchの当て方 [#x9457434]
master側には
#code(nonumber){{
cryosparcm patch
}}
でいいのだが、worker側にはpatchがあたらない. なので
#code(nonumber){{
cryosparcm patch --download
あるいは
cryosparcm patch --download --force
}}
にてパッチファイルを取得して、
#code(nonumber){{
cd cryosparc_worker/
cp ../cryosparc_master/cryosparc_worker_patch.tar.gz .
bin/cryosparcw patch
}}
で行う
***変数を追加 [#m4be6276]
「とある系で計算してたらメモリーが足らない」と表示された....
たいていは、cryoSPARCが想定しているメモリー量よりも多くの...
回避策としては「#PBS -l」にパラメータを設置します. すると...
&color(darkorchid){cluster_script.sh};の例. ram_gb_multi...
#code(nonumber){{
#!/usr/bin/env bash
#PBS -N cryosparc_{{ project_uid } }_{{ job_uid } }
#PBS -l select=1:ncpus={{ num_cpu } }:ngpus={{ num_gpu } ...
#PBS -o {{ job_log_path_abs } }
#PBS -e {{ job_log_path_abs } }
{{ run_cmd } }
}}
これで登録すると
cryoSPARCサービスのAdmin->Cluster Configurationが下記のよ...
&ref(2025y06m11d_023041213.png,nolink,80%);
このままでは「No cluster variables have been set.」なので...
&ref(2025y06m11d_023740044.png,nolink); --> &ref(2025y06m...
これでジョブを投入する際にLaneから「pbscluster」を選ぶと...
&ref(2025y06m11d_024146948.png,nolink); --> &ref(2025y06m...
ページ名:
1