Relion/slurm をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
slurmで流すときの「&color(orangered){''Standard submissio...
2026.08.31 改定. 複数計算ノード対応へ. NVIDIA MPS(Multi...
#code(nonumber){{
#!/bin/bash
#SBATCH --ntasks=XXXmpinodesXXX # Number...
#SBATCH --cpus-per-task=XXXthreadsXXX # Number...
#SBATCH --partition=XXXqueueXXX # Queue ...
#SBATCH --nodes=XXXnodesXXX # CEIL( ...
#SBATCH --error=XXXerrfileXXX
#SBATCH --output=XXXoutfileXXX
#SBATCH --job-name=XXXnameXXX
cd $SLURM_SUBMIT_DIR
### Environment Modules
. /etc/profile.d/modules.sh
module load mpi/openmpi-x86_64
module load relion
### requested resources
cat <<_EOF_>XXXoutfileXXX
----------------------------------------------
start `date`
----------------------------------------------
Queue name XXXqueueXXX
required cores XXXcoresXXX :( XXXmpinodesXXX[mpi] *...
nodes XXXnodesXXX :CEIL( XXXcoresXXX / XXX...
_EOF_
### check command
cmd_=$(/bin/cat <<_EOF_
XXXcommandXXX
_EOF_
)
cmd=$(echo "$cmd_" | sed -z 's/\n/\&\&/g')
run=$(echo $cmd|awk '{print $1}')
### Run
export OMPI_MCA_pml=ob1
export OMPI_MCA_btl=self,vader,tcp
SECONDS=0
command="{ { srun --mpi=pmix_v3 ${cmd:0:-2} | tee -a XXXo...
eval $command
cat <<_EOF_>>XXXoutfileXXX
----------------------------------------------
use relion: `readlink -f $run`
end time: `date '+%y%m%d %H:%M:%S'` (spend `printf "%02...
----------------------------------------------
done
_EOF_
}}
「srun」で投げてますが、以前この部分をmpirunで以前は作っ...
mpirunなので「--oversubscribe」とかでrelion_refine_mpiの...
ただそうなると「--oversubscribe」が使えないので「Number o...
***Runningパネル [#p4ffefa9]
Class2DやClass3DはGPUを使っての計算が可能ですが、複数のMP...
例えば、4枚GPUマシンが2台あってそれを全て使って計算した...
#code(nonumber){{
1つのGPUに1つのMPI(子MPI)プロセスを割り当てるなら、8...
加えて、親MPIを1つ加えての合計9MPIが必要となる ...
次に、1つのノードに幾つのMPIを乗せるか。9MPIの計算に...
もし 32core/4GPUと64core/4GPUなら、少ない32core...
9MPIを6coreで計算するので、全体では9 x 6 = 54 cor...
}}
これでパネルは下記のようにします
&ref(2026y09m01d_105627163.png,nolink);
&color(red){*};「Compute」タグでは「Use GPU acceleration?...
見切れてますが「&color(magenta){Queue submit command};」...
ログ(run.out)には
#code(nonumber){{
:
Queue name g
required cores 54 :( 9[mpi] * 6[threads] )
nodes 2 :CEIL( 54 / 27 ) :( g[01-02] )
:
}}
と記載されます
slurm側では、それぞれ30coreを確保して計算されることにな...
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g01 30/64 **********---------- ...
g02 30/32 *******************- ...
}}
***Runningパネル その2 [#s6b23ccf]
2枚のGPUを持つマシンが3台あって、それぞれ32core持ってい...
#code(nonumber){{
2(GPU) x 3(ノード) なので6MPIとなるが、親MPIを加える...
7MPIを3台で計算するので、7(MPI)÷3(ノード) = 2.3...
全ノードいずれも32coreなので、1ノードでは 32(core)...
7MPIを1MPI当たり10coreで計算するので、全体では7(MP...
}}
***Runningパネル その3 [#ga8f94f6]
2枚のGPUを持つマシンが5台あって、TH有効で1ノードに 128...
#code(nonumber){{
2(GPU) x 5(ノード) なので10MPIとなるが、親MPIを加え...
次に1つのノードに幾つのMPIを乗せるか。11MPIの計算を...
全部の計算ノードが(HTレベルで)128coreなので、128(HT)...
11MPIを42core(HT)で計算するので、全体では 11x42...
}}
&ref(2026y10m02d_170125673.png,nolink);
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g31 126/128 ******************** ...
g32 126/128 ******************** ...
g33 126/128 ******************** ...
g34 126/128 ******************** ...
g35 126/128 ******************** ...
}}
***Runningパネル その4 [#p526c1a3]
2枚のGPUを持つマシンが5台あって、TH有効で1ノードに 128...
#code(nonumber){{
2x5で 10MPI 作成可能だが、Class2Dを行うので各GPUに2MPI...
次に1つのノードに幾つのMPIを乗せるか。21MPIの計算を...
全部の計算ノードが(HTレベルで)128coreなので、128(HT)...
21MPIを25core(HT)で計算するので、全体では 21x2...
}}
なので
&ref(2026y10m02d_165704793.png,nolink);
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g31 125/128 ******************** ...
g32 125/128 ******************** ...
g33 125/128 ******************** ...
g34 125/128 ******************** ...
g35 125/128 ******************** ...
}}
***Runningパネル その5 [#bfd78ef0]
2枚のGPUを持つマシンが5台あって、TH有効で1ノードに 128...
#code(nonumber){{
2x5で 10MPI 作成可能だが、各GPUに2MPI載せたい。な...
1つのノードに幾つのMPIを乗せるか。21MPIの計算を5台...
1MPI当たり4threadsで計算したい --> Number of threads: 4
21MPIを4core(HT)で計算するので、21x4 = 84core(H...
}}
&ref(2026y10m02d_165426386.png,nolink);
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g31 20/128 ****---------------- ...
g32 20/128 ****---------------- ...
g33 20/128 ****---------------- ...
g34 20/128 ****---------------- ...
g35 20/128 ****---------------- ...
}}
***Runningパネル(CPUを使い切りたい) [#i1443692]
GPUを使わず、全CPU coreを使って計算したいなら. MotionCorr...
#code(nonumber){{
32coreマシンと64coreマシンなら、1MPI1threadsとし...
core数が違うので、--ntasks-per-nodeで均等割りはしない
96÷2 = 48 なので、1ノードの最低coreを48 coreと...
}}
パネルにすれば
&ref(2026y09m01d_112508834.png,nolink);
&color(red){*};「Compute」タグでは「Use GPU acceleration?...
ログ(run.out)には
#code(nonumber){{
:
Queue name g
required cores 96 :( 96[mpi] * 1[threads] )
nodes 2 :CEIL( 96 / 48 ) :( g[01-02] )
:
}}
と記載されます
slurm側では、それぞれ全core確保して計算されることになりま...
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g01 64/64 ******************** ...
g02 32/32 ******************** ...
}}
となります
***Runningパネル (4ノードGPUマシン) [#p9addeb8]
1台の2基のGPUがあって、それぞれが32coreなら
#code(nonumber){{
1つのGPUに1つのMPI(子MPI)プロセスを乗せるので、4 ...
加えて、親MPIがあるので合計9MPIが必要となる
次に1つのノードには 9(MPI)÷4(台) = 2.25なので、...
そして32coreマシンなので、32÷3 = 10.67で、1M...
9MPIをそれぞれ10coreで計算するので、全体では9 x 1...
}}
パネルでは下記のようになります
&ref(2026y09m05d_012429295.png,nolink);
見切れてますが「&color(magenta){Queue submit command};」...
run.outは下記のようになり
#code(nonumber){{
Queue name g2
required cores 90 :( 9[mpi] * 10[threads] )
nodes 4 :CEIL( 90 / 23 ) :( g[21-24] )
}}
計算途中の sload を見ると、各ノードは 3MPI確保されるので...
#code(nonumber){{
Queue Run wait Host CPU usage ...
g21 30/32 *******************- ...
g22 30/32 *******************- ...
g23 30/32 *******************- ...
g24 30/32 *******************- ...
}}
***メモ [#d9a6053d]
使用可能な変数とパネルの位置
#code(nonumber){{
Number of MPI procs: => XXXmpinodesXXX
Number of threads; => XXXthreadsXXX
Submit to queue?: => XXXqueueXXX
Minimum dedicated cores per node: => XXXdedicatedXXX
}}
他「Standard submisstion script」で使える変数
#code(nonumber){{
XXXmpinodesXXX * XXXthreadsXXX => XXXcoresXXX ...
XXXnodesXXX = CEIL( XXXcoresXXX / XXXdedicatedXXX )
}}
slurmでは、
「Number of MPI procs」はtaskとして扱い「--ntask(-n)」に...
「Number of threasds」は「--cpus-per-task(-c)」に該当かな...
XXXnodesXXX は「--nodes(-N)」に該当かな
計算ノード間でMPIの数を均等にしたいなら「&color(magenta){...
もし同じqueueの中で、計算機を指定したいなら「&color(magen...
終了行:
slurmで流すときの「&color(orangered){''Standard submissio...
2026.08.31 改定. 複数計算ノード対応へ. NVIDIA MPS(Multi...
#code(nonumber){{
#!/bin/bash
#SBATCH --ntasks=XXXmpinodesXXX # Number...
#SBATCH --cpus-per-task=XXXthreadsXXX # Number...
#SBATCH --partition=XXXqueueXXX # Queue ...
#SBATCH --nodes=XXXnodesXXX # CEIL( ...
#SBATCH --error=XXXerrfileXXX
#SBATCH --output=XXXoutfileXXX
#SBATCH --job-name=XXXnameXXX
cd $SLURM_SUBMIT_DIR
### Environment Modules
. /etc/profile.d/modules.sh
module load mpi/openmpi-x86_64
module load relion
### requested resources
cat <<_EOF_>XXXoutfileXXX
----------------------------------------------
start `date`
----------------------------------------------
Queue name XXXqueueXXX
required cores XXXcoresXXX :( XXXmpinodesXXX[mpi] *...
nodes XXXnodesXXX :CEIL( XXXcoresXXX / XXX...
_EOF_
### check command
cmd_=$(/bin/cat <<_EOF_
XXXcommandXXX
_EOF_
)
cmd=$(echo "$cmd_" | sed -z 's/\n/\&\&/g')
run=$(echo $cmd|awk '{print $1}')
### Run
export OMPI_MCA_pml=ob1
export OMPI_MCA_btl=self,vader,tcp
SECONDS=0
command="{ { srun --mpi=pmix_v3 ${cmd:0:-2} | tee -a XXXo...
eval $command
cat <<_EOF_>>XXXoutfileXXX
----------------------------------------------
use relion: `readlink -f $run`
end time: `date '+%y%m%d %H:%M:%S'` (spend `printf "%02...
----------------------------------------------
done
_EOF_
}}
「srun」で投げてますが、以前この部分をmpirunで以前は作っ...
mpirunなので「--oversubscribe」とかでrelion_refine_mpiの...
ただそうなると「--oversubscribe」が使えないので「Number o...
***Runningパネル [#p4ffefa9]
Class2DやClass3DはGPUを使っての計算が可能ですが、複数のMP...
例えば、4枚GPUマシンが2台あってそれを全て使って計算した...
#code(nonumber){{
1つのGPUに1つのMPI(子MPI)プロセスを割り当てるなら、8...
加えて、親MPIを1つ加えての合計9MPIが必要となる ...
次に、1つのノードに幾つのMPIを乗せるか。9MPIの計算に...
もし 32core/4GPUと64core/4GPUなら、少ない32core...
9MPIを6coreで計算するので、全体では9 x 6 = 54 cor...
}}
これでパネルは下記のようにします
&ref(2026y09m01d_105627163.png,nolink);
&color(red){*};「Compute」タグでは「Use GPU acceleration?...
見切れてますが「&color(magenta){Queue submit command};」...
ログ(run.out)には
#code(nonumber){{
:
Queue name g
required cores 54 :( 9[mpi] * 6[threads] )
nodes 2 :CEIL( 54 / 27 ) :( g[01-02] )
:
}}
と記載されます
slurm側では、それぞれ30coreを確保して計算されることにな...
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g01 30/64 **********---------- ...
g02 30/32 *******************- ...
}}
***Runningパネル その2 [#s6b23ccf]
2枚のGPUを持つマシンが3台あって、それぞれ32core持ってい...
#code(nonumber){{
2(GPU) x 3(ノード) なので6MPIとなるが、親MPIを加える...
7MPIを3台で計算するので、7(MPI)÷3(ノード) = 2.3...
全ノードいずれも32coreなので、1ノードでは 32(core)...
7MPIを1MPI当たり10coreで計算するので、全体では7(MP...
}}
***Runningパネル その3 [#ga8f94f6]
2枚のGPUを持つマシンが5台あって、TH有効で1ノードに 128...
#code(nonumber){{
2(GPU) x 5(ノード) なので10MPIとなるが、親MPIを加え...
次に1つのノードに幾つのMPIを乗せるか。11MPIの計算を...
全部の計算ノードが(HTレベルで)128coreなので、128(HT)...
11MPIを42core(HT)で計算するので、全体では 11x42...
}}
&ref(2026y10m02d_170125673.png,nolink);
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g31 126/128 ******************** ...
g32 126/128 ******************** ...
g33 126/128 ******************** ...
g34 126/128 ******************** ...
g35 126/128 ******************** ...
}}
***Runningパネル その4 [#p526c1a3]
2枚のGPUを持つマシンが5台あって、TH有効で1ノードに 128...
#code(nonumber){{
2x5で 10MPI 作成可能だが、Class2Dを行うので各GPUに2MPI...
次に1つのノードに幾つのMPIを乗せるか。21MPIの計算を...
全部の計算ノードが(HTレベルで)128coreなので、128(HT)...
21MPIを25core(HT)で計算するので、全体では 21x2...
}}
なので
&ref(2026y10m02d_165704793.png,nolink);
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g31 125/128 ******************** ...
g32 125/128 ******************** ...
g33 125/128 ******************** ...
g34 125/128 ******************** ...
g35 125/128 ******************** ...
}}
***Runningパネル その5 [#bfd78ef0]
2枚のGPUを持つマシンが5台あって、TH有効で1ノードに 128...
#code(nonumber){{
2x5で 10MPI 作成可能だが、各GPUに2MPI載せたい。な...
1つのノードに幾つのMPIを乗せるか。21MPIの計算を5台...
1MPI当たり4threadsで計算したい --> Number of threads: 4
21MPIを4core(HT)で計算するので、21x4 = 84core(H...
}}
&ref(2026y10m02d_165426386.png,nolink);
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g31 20/128 ****---------------- ...
g32 20/128 ****---------------- ...
g33 20/128 ****---------------- ...
g34 20/128 ****---------------- ...
g35 20/128 ****---------------- ...
}}
***Runningパネル(CPUを使い切りたい) [#i1443692]
GPUを使わず、全CPU coreを使って計算したいなら. MotionCorr...
#code(nonumber){{
32coreマシンと64coreマシンなら、1MPI1threadsとし...
core数が違うので、--ntasks-per-nodeで均等割りはしない
96÷2 = 48 なので、1ノードの最低coreを48 coreと...
}}
パネルにすれば
&ref(2026y09m01d_112508834.png,nolink);
&color(red){*};「Compute」タグでは「Use GPU acceleration?...
ログ(run.out)には
#code(nonumber){{
:
Queue name g
required cores 96 :( 96[mpi] * 1[threads] )
nodes 2 :CEIL( 96 / 48 ) :( g[01-02] )
:
}}
と記載されます
slurm側では、それぞれ全core確保して計算されることになりま...
#code(nonumber){{
(sloadから)
Queue Run wait Host CPU usage ...
g01 64/64 ******************** ...
g02 32/32 ******************** ...
}}
となります
***Runningパネル (4ノードGPUマシン) [#p9addeb8]
1台の2基のGPUがあって、それぞれが32coreなら
#code(nonumber){{
1つのGPUに1つのMPI(子MPI)プロセスを乗せるので、4 ...
加えて、親MPIがあるので合計9MPIが必要となる
次に1つのノードには 9(MPI)÷4(台) = 2.25なので、...
そして32coreマシンなので、32÷3 = 10.67で、1M...
9MPIをそれぞれ10coreで計算するので、全体では9 x 1...
}}
パネルでは下記のようになります
&ref(2026y09m05d_012429295.png,nolink);
見切れてますが「&color(magenta){Queue submit command};」...
run.outは下記のようになり
#code(nonumber){{
Queue name g2
required cores 90 :( 9[mpi] * 10[threads] )
nodes 4 :CEIL( 90 / 23 ) :( g[21-24] )
}}
計算途中の sload を見ると、各ノードは 3MPI確保されるので...
#code(nonumber){{
Queue Run wait Host CPU usage ...
g21 30/32 *******************- ...
g22 30/32 *******************- ...
g23 30/32 *******************- ...
g24 30/32 *******************- ...
}}
***メモ [#d9a6053d]
使用可能な変数とパネルの位置
#code(nonumber){{
Number of MPI procs: => XXXmpinodesXXX
Number of threads; => XXXthreadsXXX
Submit to queue?: => XXXqueueXXX
Minimum dedicated cores per node: => XXXdedicatedXXX
}}
他「Standard submisstion script」で使える変数
#code(nonumber){{
XXXmpinodesXXX * XXXthreadsXXX => XXXcoresXXX ...
XXXnodesXXX = CEIL( XXXcoresXXX / XXXdedicatedXXX )
}}
slurmでは、
「Number of MPI procs」はtaskとして扱い「--ntask(-n)」に...
「Number of threasds」は「--cpus-per-task(-c)」に該当かな...
XXXnodesXXX は「--nodes(-N)」に該当かな
計算ノード間でMPIの数を均等にしたいなら「&color(magenta){...
もし同じqueueの中で、計算機を指定したいなら「&color(magen...
ページ名:
1