- 追加された行はこの色です。
- 削除された行はこの色です。
* 物性研究所スーパーコンピュータSystem Bの使い方 [#l582f318]
* 物性研究所スーパーコンピュータSystem B(鶺䴇)の使い方 [#l582f318]
** 基本 [#i7401450]
*** 公開鍵認証 [#z71418a8]
「[[SSH公開鍵登録システムについて:https://scm-web.issp.u-tokyo.ac.jp/scm/UserSupport/ssh-pubkey-regist-system-summary.html]]」から公開鍵を登録する。
*** ログイン [#ibe6f9da]
- sshでログインする。
$ ssh your_id@sekirei.issp.u-tokyo.ac.jp
- 別のコンピュータからもログインしたい場合は秘密鍵(~/.ssh/id_rsa)をコピーする。
- 別のコンピュータからもログインしたい場合は秘密鍵(~/.ssh/id_rsa)をコピーする。~
秘密鍵は他人から読まれないようにパーミッションを600に設定する。
- パスフレーズを登録する場合は
$ ssh-add ~/.ssh/id_rsa
とする。
** STATE 5.6.0のインストール [#hcff0269]
*** 準備 [#v454e391]
$ mkdir ~/STATE/src
$ mv state_x.x.x.tar.gz ~/STATE/src
$ mv make.arch ~/STATE/src
$ cd ~/STATE/src
$ tar xzvf state_x.x.x.tar.gz
$ cd STATE_x.x.x
*** モジュールの設定 [#h67a0ed1]
デフォルトで読み込まれるモジュールは以下のコマンドで確認:
$ module list
Currently Loaded Modulefiles:
1) intel/16.0.3.210 2) mpt/2.14 3) gnu/4.8.5 4) cuda/7.0
2016年6月10日以降コンパイラが16.0.3.210に更新されていることに注意。~
これに合わせてMPIも5.1.3.210を読み込む:
$ module load intel-mpi/5.1.3.210
$ module list
Currently Loaded Modulefiles:
1) intel/16.0.3.210 3) gnu/4.8.5 5) intel-mpi/5.1.3.210
2) mpt/2.14 4) cuda/7.0
''追記'': 上の設定で計算を行うと、intel/16.0.3.210に含まれるintel-mkl/16.0.3.210のバグのため
Fatal error in PMPI_Comm_create: Other MPI error, error stack:
PMPI_Comm_create(669)................: (以下略)
のようなエラーを出して計算が止まることが判明した。
応急処置としてintel/16.0.3.210の代わりにintel/16.0.1.150をロードする。
$ module unload intel/16.0.3.210
$ module load intel/16.0.1.150
$ module list
Currently Loaded Modulefiles:
1) mpt/2.14 3) cuda/7.0 5) intel-mpi/5.1.3.210
2) gnu/4.8.5 4) intel/16.0.1.150
この状態でSTATEをコンパイルし、ジョブスクリプトでも同様のモジュール設定を行う。
*** make.arch [#ie96dbb5]
############################## for LX(Xeon,smith) #############################
F90 = mpiifort
LINKER = mpiifort
OMP = -qopenmp
OPT3 = -O3 -fp-model strict -axCORE-AVX2
FLAGS = $(OMP) $(OPT3) -fixed -extend_source -xHOST
FLAGG = $(OMP) $(OPT3)
FLAGD = $(OMP)
FFTW_DIR=$(MKLROOT)/include/fftw
INCLUDE = -I$(FFTW_DIR)
#for intelmpi
LIBS = -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -mkl=parallel
CPPDIR = /usr/bin
CPP = $(CPPDIR)/cpp -P -C -traditional
##for intelmpi
P_FLAGS = -D_INTEL_DAVIDSON_ -D_MKL_FFTW_ -D_FFTW3_ -D_TIMER_ -D_OPENMP_FUNC_ \
-D_SCALAPACK_ -D_ALLGATHERV_NOOVERLAP_
################################################################################
OMPで-openmpを使ってmakeすると
ifort: command line remark #10411: option '-openmp' is deprecated
and will be removed in a future release.
Please use the replacement option '-qopenmp'
なる警告が出るので-qopenmpに変更した。
*** コンパイル [#ff060a91]
$ make
cpping m_para.f90
Compiling m_para.f90
...
** 計算の実行 [#abea16c0]
*** ジョブスクリプトの例 [#ucc227f1]
bashの場合:
#!/bin/sh
#QSUB -queue F36cpu
#QSUB -node 8
#PBS -N Pt111_3x3
#PBS -m be
#PBS -l walltime=24:00:00
# 作業ディレクトリでモジュールを読み込む
cd $PBS_O_WORKDIR
. /etc/profile.d/modules.sh
module load intel/16.0.1.150 intel-mpi/5.1.3.210
ln -fs ~/STATE/src/STATE5.6.0_20151026/STATE STATE
ln -fs ~/STATE/gncpp/Pt_pbe1s_TM/\#vnew.data fort.37
# 環境変数FORT5, FORT6にそれぞれ入力ファイル名、出力ファイル名を設定する。
# sh, bashではexport、csh, tcshではsetenvを用いることに注意。
export FORT5=nfinp_1
export FORT6=nfout_1
mpijob ./STATE
export FORT5=nfinp_2
export FORT6=nfout_2
mpijob ./STATE
export FORT5=nfinp_3
export FORT6=nfout_3
mpijob ./STATE
*** GDIISを使うときの注意 [#c5da429f]
現状ではMDが30ステップgdiis.dataに書き込まれると
*F* PROGRAM STATE TERMINATED IN SUBROUTINE GDIIS - GDIIS: gdiis step limit
が出力されて計算が終了する仕様になっていますが、
System Bではそれまでの出力が上書きされる形で上の一行が書き込まれるため、
それまでの全エネルギーや力の計算結果が消えてしまいます。
これを防ぐにはMDが30ステップを超えそうになったら適宜gdiis.dataを切り詰める必要があります。