• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2024-01-26T16:58:37+09:00","default:StatE","StatE")
#author("2024-02-20T22:33:17+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 working directory in the work directory and symbolic links to wave function and potential files
 
 WORK_DIR=/sqfs/work/G15577/v60795/STATE/test/CO
 mkdir -p ${WORK_DIR}
 touch ${WORK_DIR}/zaj.data; ln -s ${WORK_DIR}/zaj.data
 touch ${WORK_DIR}/potential.data; ln -s ${WORK_DIR}/potential.data
 
 # 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
--Work領域を一時利用するためのディレクトリの作成と波動関数およびポテンシャルファイルへのシンボリックリンクの作成
 # Set the working directory in the work directory and symbolic links to wave function and potential files
 
 WORK_DIR=/sqfs/work/G15577/v60795/STATE/test/CO
 mkdir -p ${WORK_DIR}
 touch ${WORK_DIR}/zaj.data; ln -s ${WORK_DIR}/zaj.data
 touch ${WORK_DIR}/potential.data; ln -s ${WORK_DIR}/potential.data
--入出力ファイルの指定
 # 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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS