Relion/slurm をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
slurmをjob queuing systemに使った場合
-厳しくリソース管理が行われるので16coreマシンに 5mpi/4thr...
-なので割り当てられたリソースを無視する「--oversubscribe...
-hostfileは提供してくれないから、必要だったら作る必要がある
-job発行時に$TMPDIRの提供がない. Prolog/Epilog機構を駆使...
これらに留意する必要があるっぽい
slurmでrelionを使うときの「qsub.sh」を作ってみている. &...
#code(nonumber){{
#!/bin/bash
#SBATCH --partition=XXXqueueXXX
#SBATCH --ntasks=XXXmpinodesXXX
#SBATCH --cpus-per-task=XXXthreadsXXX
#SBATCH --error=XXXerrfileXXX
#SBATCH --output=XXXoutfileXXX
#SBATCH --job-name=XXXnameXXX
#SBATCH --gres=gpu:4
#################################
cd $SLURM_SUBMIT_DIR
### Environment Modules (ジョブ投入前の環境変数(PATH,LD_...
. /etc/profile.d/modules.sh
module load mpi/openmpi-x86_64
module load relion
### requested resources
cat <<_EOF_>XXXoutfileXXX
----------------------------------------------
start `date`
----------------------------------------------
Queue name XXXqueueXXX
used nodes ${SLURM_JOB_NODELIST}
+--NumberOfProcess[MPI procs] XXXmpinodesXXX
+-- NumberOfThreads[threads] XXXthreadsXXX
_EOF_
### check command
cmd_=$(/bin/cat <<_EOF_
XXXcommandXXX
_EOF_
)
cmd=$(echo "$cmd_" | sed -z 's/\n/\&\&/g')
run=$(echo $cmd|awk '{print $1}')
### mpirun option
opt=" --display-map --bind-to none --mca plm_rsh_agent rs...
opt=" --display-map --bind-to none --mca pml ob1 --mca mt...
### check GPU
np=XXXmpinodesXXX
localnodefile=1
if [ ${run##*/} = "relion_refine_mpi" ]; then
if [[ $cmd = *--gpu* ]]; then
np=$(expr $np + 1)
fi
fi
### Run
SECONDS=0
command="{ { mpirun $opt --host ${SLURMD_NODENAME} -np $n...
eval $command
cat <<_EOF_>>XXXoutfileXXX
----------------------------------------------
use relion: `readlink -f $run`
end time: `date '+%y%m%d %H:%M:%S'` (spend `printf "%02...
----------------------------------------------
done
_EOF_
}}
***メモ [#u3fb57e3]
GPUの使用枚数のしては「Queue submit command:」欄で行う. ...
複数ノードを使っての計算が目的なら「--gres=gpu:X」の値は...
&ref(2023y07m29d_112636965.png,nolink);
relionのソースを修正して、枚数指定の入力欄を拵えればいい...
画面はこんな感じになるのかも.
[[https://hpc.nih.gov/apps/relion/index.html>+https://hpc...
ただ、こうゆう修正を行うとupdateの時が面倒かなぁ. &size(1...
「Compute」タグの「Which GPUs to use:」欄から得られそうだ...
***メモ その2 [#t1becb3d]
mpirunのオプション
「 --display-map --bind-to none --mca pml ob1 --mca mtl ^...
について
「--mca pml ob1」
PML(Point-to-Pint Messaging Layer) ob1[古典的で安定したPM...
「--mca mtl ^ofi」
MTL(Matching Transport Layer) ofi(libfabric)ベースのMTLを...
「--mca btl self,vander,tcp」
BTL(Byte Transfer Layer) PML=ob1 の設定の中で実際の通信を...
「--mca_tcp_if_include lo,rth0」
BTLがtcpの際に、使用するインターフェース(loとeth0), これ...
終了行:
slurmをjob queuing systemに使った場合
-厳しくリソース管理が行われるので16coreマシンに 5mpi/4thr...
-なので割り当てられたリソースを無視する「--oversubscribe...
-hostfileは提供してくれないから、必要だったら作る必要がある
-job発行時に$TMPDIRの提供がない. Prolog/Epilog機構を駆使...
これらに留意する必要があるっぽい
slurmでrelionを使うときの「qsub.sh」を作ってみている. &...
#code(nonumber){{
#!/bin/bash
#SBATCH --partition=XXXqueueXXX
#SBATCH --ntasks=XXXmpinodesXXX
#SBATCH --cpus-per-task=XXXthreadsXXX
#SBATCH --error=XXXerrfileXXX
#SBATCH --output=XXXoutfileXXX
#SBATCH --job-name=XXXnameXXX
#SBATCH --gres=gpu:4
#################################
cd $SLURM_SUBMIT_DIR
### Environment Modules (ジョブ投入前の環境変数(PATH,LD_...
. /etc/profile.d/modules.sh
module load mpi/openmpi-x86_64
module load relion
### requested resources
cat <<_EOF_>XXXoutfileXXX
----------------------------------------------
start `date`
----------------------------------------------
Queue name XXXqueueXXX
used nodes ${SLURM_JOB_NODELIST}
+--NumberOfProcess[MPI procs] XXXmpinodesXXX
+-- NumberOfThreads[threads] XXXthreadsXXX
_EOF_
### check command
cmd_=$(/bin/cat <<_EOF_
XXXcommandXXX
_EOF_
)
cmd=$(echo "$cmd_" | sed -z 's/\n/\&\&/g')
run=$(echo $cmd|awk '{print $1}')
### mpirun option
opt=" --display-map --bind-to none --mca plm_rsh_agent rs...
opt=" --display-map --bind-to none --mca pml ob1 --mca mt...
### check GPU
np=XXXmpinodesXXX
localnodefile=1
if [ ${run##*/} = "relion_refine_mpi" ]; then
if [[ $cmd = *--gpu* ]]; then
np=$(expr $np + 1)
fi
fi
### Run
SECONDS=0
command="{ { mpirun $opt --host ${SLURMD_NODENAME} -np $n...
eval $command
cat <<_EOF_>>XXXoutfileXXX
----------------------------------------------
use relion: `readlink -f $run`
end time: `date '+%y%m%d %H:%M:%S'` (spend `printf "%02...
----------------------------------------------
done
_EOF_
}}
***メモ [#u3fb57e3]
GPUの使用枚数のしては「Queue submit command:」欄で行う. ...
複数ノードを使っての計算が目的なら「--gres=gpu:X」の値は...
&ref(2023y07m29d_112636965.png,nolink);
relionのソースを修正して、枚数指定の入力欄を拵えればいい...
画面はこんな感じになるのかも.
[[https://hpc.nih.gov/apps/relion/index.html>+https://hpc...
ただ、こうゆう修正を行うとupdateの時が面倒かなぁ. &size(1...
「Compute」タグの「Which GPUs to use:」欄から得られそうだ...
***メモ その2 [#t1becb3d]
mpirunのオプション
「 --display-map --bind-to none --mca pml ob1 --mca mtl ^...
について
「--mca pml ob1」
PML(Point-to-Pint Messaging Layer) ob1[古典的で安定したPM...
「--mca mtl ^ofi」
MTL(Matching Transport Layer) ofi(libfabric)ベースのMTLを...
「--mca btl self,vander,tcp」
BTL(Byte Transfer Layer) PML=ob1 の設定の中で実際の通信を...
「--mca_tcp_if_include lo,rth0」
BTLがtcpの際に、使用するインターフェース(loとeth0), これ...
ページ名:
1