SQUIDでプログラムを実行するためにはキューイングシステムを利用する必要があります。 一般的には以下のようなジョブスクリプトファイルを作成しqsubコマンドを利用してジョブを投入します。 以下はSTATEを用いてCO分子の計算を実行するためのジョブスクリプトの例です
#!/bin/bash #PBS -q DBG #PBS --group=G15577 #PBS -m b #PBS -T intmpi #PBS -l cpunum_job=8 #PBS -v OMP_NUM_THREADS=1 #PBS -l elapstim_req=00:10:00 #PBS -e ERR #PBS -o OUT module load BaseCPU/2023 module load BasePy/2023 cd $PBS_O_WORKDIR # Set the executable of the STATE code ROOT_DIR=${HOME}/STATE ln -fs ${ROOT_DIR}/src/state-5.6.14/src/STATE . # Set the pseudopotential data ln -fs ${ROOT_DIR}/gncpp/pot.C_pbe1 ln -fs ${ROOT_DIR}/gncpp/pot.O_pbe1 ln -fs ${ROOT_DIR}/gncpp/vdwdphi.dat_d0.1 vdwdphi.dat # Set the input/output file INPUT_FILE=nfinp_scf OUTPUT_FILE=nfout_scf # Run! mpirun ${NQSV_MPIOPTS} ./STATE < ${INPUT_FILE} > ${OUTPUT_FILE}以下は上記ジョブスクリプトファイルの簡単な説明です。
#!/bin/bash
#PBS -q DBG
#PBS --group=G15577
#PBS -T intmpi
#PBS -l cpunum_job=8
#PBS -v OMP_NUM_THREADS=1(cpunum_job / OMP_NUM_THREADSがMPI並列数。大きい系ではOMP_NUM_THREADSは2~4を使用することが多い)
#PBS -l elapstim_req=00:10:00
#PBS -e ERR
#PBS -o OUT
module load BaseCPU/2023 module load BasePy/2023
cd $PBS_O_WORKDIR
# Set the executable of the STATE code ROOT_DIR=${HOME}/STATE ln -fs ${ROOT_DIR}/src/state-5.6.14/src/STATE .
# Set the pseudopotential data ln -fs ${ROOT_DIR}/gncpp/pot.C_pbe1 ln -fs ${ROOT_DIR}/gncpp/pot.O_pbe1
ln -fs ${ROOT_DIR}/gncpp/vdwdphi.dat_d0.1 vdwdphi.dat
# Set the input/output file INPUT_FILE=nfinp_scf OUTPUT_FILE=nfout_scf
# Run! mpirun ${NQSV_MPIOPTS} ./STATE < ${INPUT_FILE} > ${OUTPUT_FILE}
前項のようなジョブスクリプトが用意できたらqsubを使ってジョブを投入します。
$ qsub run_co.sh
ジョブの実行状況を確認するにはqstatを使用します。
$ qstat
例えば計算開始前では以下のような結果が得られます。
RequestID ReqName UserName Queue Pri STT S Memory CPU Elapse R H M Jobs --------------- -------- -------- -------- ---- --- - -------- -------- -------- - - - ---- 619040.sqd run_co.s v60795 DBG-C 0 PRR - 0.00B 0.00 0 Y Y Y 1
ジョブをキャンセルするためにはqstatで表示されたRequestIDをqdelを使用してキャンセルします。
$ qdel 619040