* 物性研究所スーパーコンピュータ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)をコピーする。~
秘密鍵は他人から読まれないようにパーミッションを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]
** 計算の実行 [#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を切り詰める必要があります。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS