* 物性研究所スーパーコンピュータ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を切り詰める必要があります。