#author("2024-01-26T16:58:37+09:00","default:StatE","StatE") * プログラムの実行方法 [#p7abb6b1] ** ジョブスクリプトの書き方 [#gd1b6333] SQUIDでプログラムを実行するためにはキューイングシステムを利用する必要があります。 一般的には以下のようなジョブスクリプトファイルを作成しqsubコマンドを利用してジョブを投入します。~ 以下はSTATEを用いてCO分子の計算を実行するためのジョブスクリプトの例です - run_co.sh #!/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} 以下は上記ジョブスクリプトファイルの簡単な説明です。 --使用するshの宣言 #!/bin/bash --使用するジョブクラスの指定([[使用可能なジョブクラス>計算機システムの使い方/squid_en/queues]]) #PBS -q DBG --自分の所属するグループの指定(指導教員に確認) #PBS --group=G15577 --使用する並列計算環境の指定(STATEの場合は主にintmpiを使用) #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 --エラー出力ファイルの指定(上記の例ではERRというファイルにエラーが出力される) #PBS -e ERR --標準出力ファイルの指定(上記の例ではOUTというファイルメッセージが出力される) #PBS -o OUT --使用するモジュールの指定(プログラムをビルドした際のものと同じものを指定) module load BaseCPU/2023 module load BasePy/2023 --プログラムを実行するディレクトリへの移動(特別な場合を除いては変更せずにこのまま使用) cd $PBS_O_WORKDIR --使用するSTATEの実行形式の指定 # 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 --使用するvan der Waalsカーネルの指定(van der Waals density functionalを使用しない場合は不要) ln -fs ${ROOT_DIR}/gncpp/vdwdphi.dat_d0.1 vdwdphi.dat --入出力ファイルの指定 # Set the input/output file INPUT_FILE=nfinp_scf OUTPUT_FILE=nfout_scf --STATEの実行 # Run! mpirun ${NQSV_MPIOPTS} ./STATE < ${INPUT_FILE} > ${OUTPUT_FILE} [[Quantum-ESPRESSOの場合の例>計算機システムの使い方/squid/job_script_qe]] ** プログラムの実行方法 [#ha220d6a] 前項のようなジョブスクリプトが用意できたら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