#author("2025-04-25T15:32:03+09:00","default:StatE","StatE")
#author("2025-04-25T17:39:44+09:00","default:StatE","StatE")
* QEの実行方法 [#y6d24ae0]
** 一般的なpw.xの実行方法 [#e46cbda8]
MPI等を用いてビルドした場合、pw.xは以下のように実行します。
 mpirun -np 4 pw.x < scf.in > scf.out
あるいは
 mpirun -np 4 pw.x -i scf.in > scf.out
ここで入力ファイルはscf.in、出力ファイルはscf.outとし、4プロセスを用いて実行しています。
** smith上での実行方法 [#h67495c9]
TBD
** ohtaka上での実行方法 [#p939e3cd]
ここではohtaka上でOneAPIを使ってpw.xをビルドしたと仮定します。
使用したモジュールは以下とします。
  1) oneapi_compiler/2023.0.0   2) oneapi_mkl/2023.0.0   3) oneapi_mpi/2023.0.0  
簡単のため、''pw.x''へのコマンドサーチパスは既に設定されているとします。
ohtaka上では''mpirun''ではなく''srun''を用いて''pw.x''を実行します。
また''pw.x''はジョブスクリプトを用いて投入する必要があります。
以下にジョブスクリプトの例を示します。

- ''run.sh''
 #!/bin/sh
 #SBATCH -J  FeS2
 #SBATCH -p  i8cpu
 #SBATCH -N  8
 #SBATCH -n  256
 #SBATCH -c  4
 #SBATCH -t  00:30:00
 #
 ###########
 # Modules #
 ###########
 #
 module purge
 module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0
 export FI_PROVIDER=psm3
 ulimit -s unlimited
 #
 #########################
 # Parallelization level #
 #########################
 #
 # k-point (pool) parallelism
 #
 NPOOLS=1
 #
 # band parallelism
 #
 NBAND=4
 #
 # MPI command
 #
 MPI_COMMAND=srun
 #
 # PW directory and command
 #
 PW_DIR="${HOME}/QE/src/qe-7.3/bin"
 #
 PW="${PW_DIR}/pw.x -npools ${NPOOLS} -nband ${NBAND}"
 #
 # Execute
 #
 ${MPI_COMMAND} ${PW} < ${INPUT_FILE} > ${OUTPUT_FILE}
以下に説明を加えます。
- 使用するパーティションの指定
 #SBATCH -p  i8cpu
- 使用するノードの数
 #SBATCH -N  8
- 使用するプロセス数
 #SBATCH -n  256
- 使用するスレッド数
 #SBATCH -c  4
- 実行時間(の上限)
 #SBATCH -t  00:30:00
- 使用するモジュールの指定。''pw.x''をビルドした際と同じものを指定
 module purge
 module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0
- OneAPIを使用してプログラムをビルドした場合に指定する必要のある変数
 export FI_PROVIDER=psm3
- 任意
 ulimit -s unlimited
- k点並列数の指定(筆者独自の方法ですが(以下のプログラムの実行の箇所も参照)、)
 NPOOLS=1
- バンド並列数の指定
 NBAND=4
- MPIコマンドの指定
 MPI_COMMAND=srun
- ''pw.x''のディレクトリの指定
 PW_DIR="${HOME}/QE/src/qe-7.3/bin"
- ''pw.x''と並列数の指定
 PW="${PW_DIR}/pw.x -npools ${NPOOLS} -nband ${NBAND}"
- ''pw.x''の実行
 ${MPI_COMMAND} ${PW} < ${INPUT_FILE} > ${OUTPUT_FILE}

ジョブを実行するには以下を実行します。
 sbatch run.sh
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS