- 追加された行はこの色です。
- 削除された行はこの色です。
* smith 計算機システムの使い方 [#r2be5e9c]
SMITHクラスタ計算機システムはインテルまたは互換CPUを用いた計算機システムです。
#contents
**ログインサーバー [#fcf457f2]
-[smith] 133.1.116.161
-[rafiki] 133.1.116.162
-[tiamat] 133.1.116.211
の3台がログインサーバーです。smithにファイルサーバーの機能が設定されており、どのログインサーバにログインしても同じホームディレクトリになります。ファイルサーバーは毎日深夜にバックアップサーバーの/backup_homeにバックアップされています。間違って消去したファイルでも、そこに保存されていればコピーして再生できます。
-[sb100] 133.1.116.165
はsb100システムのログインサーバーです。
**ログイン方法 [#t04420e5]
smithにログインする場合
$ ssh -l [userID] 133.1.116.161
または
$ ssh [userID]@133.1.116.161
X11 のフォワーディングを許可する場合
$ ssh -Y -l [userID] 133.1.116.161
または
$ ssh -Y [userID]@133.1.116.161
を実行する。
sb100にログインする場合は同様に
$ ssh -l [userID] 133.1.116.16
などとすれば良い。
初めてログインする際には
$ passwd
を実行してパスワードを変更すること。
ここで``$``はコマンドプロントを表している。
**公開鍵の登録方法 [#o22a4270]
ローカルホストで以下を実行
ssh-keygen
デフォルトでは秘密鍵と公開鍵がそれぞれ .ssh/id_rsaと .ssh/id_rsa.pubの名前で保存される。
次に.ssh/id_rsa.pubの内容をリモートホストの .ssh/authorized_keysに追加する。
(スパコンセンターではwebページを通じて公開鍵を登録することが多い)
森川研では公開鍵を登録するwebページが無いので
cat id_rsa.pub
でid_rsa.pubの内容をターミナルで表示、コピーし、リモートホストのauthorized_keysにコピーする。
**コンパイル/実行環境の設定 [#nb54180b]
従来のsmithとは異なり、コンパイラとライブラリの設定にはmoduleを使用します。
使用可能なモジュールを調べるためには
$ module available
を実行します。特定のモジュールをロードするためには以下を実行します。
$ module load intel/2020.2.254
$ module load intelmpi/2020.2.254
$ module load python/3.8
しログアウトするとこの設定は破棄されますので、~/.bashrcに記録しておきます。
module load intel/2020.2.254
module load intelmpi/2020.2.254
module load python/3.8
古いintelコンパイラ用の設定は以下のように
# source /home/opt/settings/2017.4/intel-compiler.sh
# source /home/opt/settings/2017.4/intel-mpi.sh
などとしてコメントアウト、あるいは削除することを忘れないようにしましょう。
**ジョブキューイングシステム [#s67f500a]
-システムで計算を実行するには、計算したい内容をジョブスクリプトファイルに書いてジョブキューイングシステムに投入する必要があります。
-ジョブ管理システムはSGE(Sun Grid Engine)です。(OGS/GE 2011.11)
-ジョブは、指定したグループの空いている計算機に自動的に割り当てられて実行されます。
-空きが足りない場合は、他のグループに空きがあっても実行されず、他のジョブの終了を待つことになります。
-同じ能力を持つ計算ノードはクラスごとにまとめられています。ジョブ投入時にクラスを指定します。
***設定上の重要な点 [#hb98c6a2]
-.cshrcの中にcdのaliasが記載されている場合がありますが、削除しないとインテルFortran/MPIの初期設定でエラーが生じ正常に実行できません。削除してください。
**複数ノードを用いた並列計算について [#r3b5cd32]
-用いるノード(コア)の数を増やすと自動的に並列度が上がりますが、グループ10,11,13-15以外のシステムの通信はギガビットイーサネットで実装されていますので、あまり速くありません。ノード間通信を含む並列計算はあまり有効ではありませんのでご注意ください。グループ10,11,13-15ではINFINIBANDが実装されています。並列計算の効率が向上することが期待されます。
**ジョブの投入(実行)方法 [#k32ce356]
-実行にはキューと並列環境(parallel_environment)を指定する必要があります。ジョブスクリプトrun.cshをグループ10に投入する場合、下記のようになります。
qsub -q xh1.q -pe x24 24 run.csh
ジョブの状態を見るには
qstat
を実行します。特定のユーザのジョブの状態を見るには
qstat -u [user name]
ジョブをキャンセルするには
qdel [job ID]
を実行します。Job IDはqstatで表示される1コラム目の数字です。
***計算機グループと対応するキュー及び並列環境 [#u8381019]
プロセッサの種類 ノード内 ジョブ投入 キュー 並列環境 ノード間
コア数/CPU数 サーバー 並列ファブリック
・グループ4 xeon 8/2 smith/rafiki/tiamat xe1.q x8
・グループ5 xeon 12/2 smith/rafiki/tiamat xe2.q x12
・グループ7 core i7 sandy-bridge 6/1 sb100 all.q x6
・グループ8 xeon sandy-bridge 16/2 smith/rafiki/tiamat xs2.q x16
・グループ9 xeon ivy-bridge 16/2 smith/rafiki/tiamat xi1.q x16
・グループ10 xeon Haswell 24/2 smith/rafiki/tiamat xh1.q x24 infini-band
・グループ11 xeon Haswell 24/2 smith/rafiki/tiamat xh2.q x24 infini-band
・グループ12 xeon Haswell 24/2 smith/rafiki/tiamat yh1.q x24
・グループ13 xeon Broadwell 32/2 smith/rafiki/tiamat xb1.q x32 infini-band
・グループ14 xeon Skylake 32/2 smith/rafiki/tiamat x17.q x32 infini-band
・グループ15 xeon Cascade Lake 40/2 smith/rafiki/tiamat x19.q x40 infini-band
-[[グループ8,9での注意点>http://www-cp.prec.eng.osaka-u.ac.jp/puki_state/index.php?%E8%A8%88%E7%AE%97%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%2FSTATE%2Fcenters#taa126c5]]
-グループ7のグループにジョブを投入するときは、sb100でqsubコマンドを実行してください。
-それ以外のグループ にジョブを投入するときは、smithでqsubコマンドを実行してください。
-ジョブスクリプトの書き方については、下の各グループごとの説明中に「ジョブスクリプトファイルの例」で説明しています。
***グループ4,5 xeシステム [#mb55749d]
***グループ4, 5 xeシステム [#mb55749d]
-xeon CPUで構成される計算機グループで、x8, x12 の2 parallel_environmentからなります。各ノードは2CPU(計8または12core)で構成されています。
-ジョブスクリプトファイルの例
#!/bin/csh
#$ -cwd
#$ -pe x12 12
#$ -N JOB_NAME ← ジョブの名称を設定できる
mpirun -np $NSLOTS ./STATE_A < nfinp > nfout
-- -cwd はジョブを投入した時のディレクトリがジョブ開始時のディレクトリになることを指示するオプションです。
-- 上のx12(またはx8)はx12(またはx8)にジョブ投入することを示し、後ろの12が計算に用いるCOREの数を示すオプションです。x12は12、x8は8でないと実行されないようになっていますので注意してください。
-- -Nオプションでジョブの名前を指定できます。(先頭文字は英字です。)
-- STATE_AにはSTATEの実行ファイルをジョブ投入前にリンクしておいてください。
-- また、fort.37等、擬ポテンシャルのファイルも同様にリンクしておいてください。
-コンパイル
-- コンパイルはxe00にログインしてifortコマンドまたはmpi並列の場合はmpif90コマンドにより行います。
-- STATEユーザーはxe用のMakefileを使用してコンパイルできます。
- xe??にログインするには?
-- rsh xe00 等でOKです。
-ライブラリ
-- MKL が利用できます。
ifort xe2011(version12) のインストール記[[LinuxTips#hec6b033]]も参照。
***グループ7 sb100システム [#r74a0395]
- Sanday-bridge アーキテクチャーのCore i7 CPUで構成される計算機グループです。各ノードは1CPU(6core)で構成されています。メモリは16GBです。
- AVX機能があり高速に計算できますが、組み込んだ新しいコンパイラの制限?(バグ?)のためコンパイルが正常に終了しません。特定のファイルだけ最適化レベルを落としてコンパイルする必要があります。エラーが出たら、CPPSRCフォルダに移動して、make.sysに書かれているオプションを設定し、最適化レベルだけ-O0にして手動でコンパイルしてください。分からなければ、他の人のSTATEバイナリをコピーして使ってください。
- smithのデータを直接見れます。/home2にsmithの/homeをNFSリンクしていますのでアクセス可能です。
- スクリプトの例(cshのみしか使えません)
-- ハイブリッド並列(12コア確保、各ノードにプロセス確保、プロセスごと6-OMPスレッド)
#!/bin/csh -f
#$ -pe x6 12
#$ -cwd
#$ -N JOB_NAME ← ジョブの名称を設定できる
setenv OMP_NUM_THREADS 6
ln -fs ~/STATE/src/STATE_5.4.1/wrksrc6i5_/STATE .
mpirun -perhost 1 -np $NHOSTS ./STATE < nfinp > nfout
-- フラット並列(12コア)
#!/bin/csh -f
#$ -pe x6 12
#$ -cwd
#$ -N JOBNAME
ln -fs ~/STATE/src/STATE_5.4.1/STATE .
mpirun -np $NSLOTS ./STATE < nfinp > nfout
***グループ8 xsシステム [#r2affc72]
- Sanday-bridge アーキテクチャーのXeon CPUで構成される計算機グループです。各ノードは2CPU(計16core)で構成されています。メモリは32GBです。
- AVX機能があり高速に計算できます。
- スクリプトの例(cshのみしか使えません)
-- ハイブリッド並列(32コア確保、各ノードにプロセス確保、プロセスごと4-OMPスレッド)
#!/bin/csh -f
#$ -cwd
#$ -q xs2.q
#$ -pe x16 32
#$ -N JOB_NAME ← ジョブの名称を設定できる
#$ -j y
module load intel/2020.2.254
module load intelmpi/2020.2.254
#source /opt/settings/2017.1/intel-compiler.csh
#source /opt/settings/2017.1/intel-mpi.csh
setenv I_MPI_PIN 4
#setenv I_MPI_FABRICS shm:dapl
#setenv I_MPI_FABRICS shm:ofa
setenv I_MPI_FABRICS shm:tcp
#setenv I_MPI_DEBUG 7
ln -fs ~/STATE/src/develop/STATE5.6.0/STATE STATE
ln -fs ~/STATE/gncpp/pot.O_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.H_lda1 fort.38
setenv OMP_NUM_THREADS 1
cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID
mpirun ./STATE < nfinp_1 > nfout_1
-- フラット並列(32コア)
#!/bin/csh -f
#$ -cwd
#$ -q xs2.q
#$ -pe x16 32
#$ -N JOB_NAME ← ジョブの名称を設定できる
#$ -j y
module load intel/2020.2.254
module load intelmpi/2020.2.254
# source /opt/settings/2017.1/intel-compiler.csh
# source /opt/settings/2017.1/intel-mpi.csh
setenv I_MPI_PIN 1
#setenv I_MPI_FABRICS shm:dapl
#setenv I_MPI_FABRICS shm:ofa
setenv I_MPI_FABRICS shm:tcp
#setenv I_MPI_DEBUG 7
ln -fs ~/STATE/src/develop/STATE5.6.0/STATE STATE
ln -fs ~/STATE/gncpp/pot.O_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.H_lda1 fort.38
setenv OMP_NUM_THREADS 1 ←ココが違うだけ
cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID
mpirun ./STATE < nfinp_1 > nfout_1
***グループ9 xiシステム [#c01adc3f]
- 大容量なメモリ・localディスク搭載機です。gaussian計算はここで実行するのがよい。
- Ivy-bridge アーキテクチャーのXeon CPUで構成される計算機グループです。各ノードは2CPU(計16core)で構成されています。メモリは128GBです。
- AVX機能があり高速に計算できます。
- スクリプトの例(cshのみ)
-- フラット並列(32コア)
!/bin/csh -f
#$ -cwd
#$ -q xi1.q
#$ -pe x16 32
#$ -N JOB_NAME ← ジョブの名称を設定できる
#$ -j y
module load intel/2020.2.254
module load intelmpi/2020.2.254
# source /opt/settings/2017.1/intel-compiler.csh
# source /opt/settings/2017.1/intel-mpi.csh
setenv I_MPI_PIN 1
#setenv I_MPI_FABRICS shm:dapl
#setenv I_MPI_FABRICS shm:ofa
setenv I_MPI_FABRICS shm:tcp
#setenv I_MPI_DEBUG 7
ln -fs ~/STATE/src/develop/STATE5.6.0/STATE STATE
ln -fs ~/STATE/gncpp/pot.O_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.H_lda1 fort.38
setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える
cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID
mpirun ./STATE < nfinp_1 > nfout_1
***グループ10、11、12 xhシステム [#nbaf823d]
***グループ10, 11, 12 xhシステム [#nbaf823d]
- Haswell アーキテクチャーのXeon CPUで構成される計算機グループです。各ノードは2CPU(計24core)で構成されています。メモリは64GBです。
- グループ10内ではINFINIBANDによる並列計算が可能
- グループ11内ではINFINIBANDによる並列計算が可能
- AVX機能があり高速に計算できます。
- スクリプトの例(cshのみ)
-- フラット並列(48コア)
!/bin/csh -f
#$ -cwd
#$ -q xh1.q
#$ -pe x24 48
#$ -N JOB_NAME ← ジョブの名称を設定できる
#$ -j y
module load intel/2020.2.254
module load intelmpi/2020.2.254
# source /opt/settings/2017.1/intel-compiler.csh
# source /opt/settings/2017.1/intel-mpi.csh
setenv I_MPI_PIN 1
setenv I_MPI_FABRICS shm:tcp ← xh1 の場合 shm:dapl or shm:ofa でinfinibandが使えます
#setenv I_MPI_DEBUG 7
ln -fs ~/STATE/src/develop/STATE5.6.0/STATE STATE
ln -fs ~/STATE/gncpp/pot.O_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.H_lda1 fort.38
setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える
cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID
mpirun ./STATE < nfinp_1 > nfout_1
***グループ13 xbシステム [#ufe4b9fc]
- Broadwell アーキテクチャーのXeon CPU(Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz)で構成される計算機グループです。各ノードは2CPU(計32core)で構成されています。メモリは64GBです。
- スクリプトの例(cshのみ)
-- フラット並列(64コア)
!/bin/csh -f
#$ -cwd
#$ -q xb1.q
#$ -pe x32 64
#$ -N JOB_NAME ← ジョブの名称を設定できる
#$ -j y
module load intel/2020.2.254
module load intelmpi/2020.2.254
# source /opt/settings/2016.4/intel-compiler.csh
# source /opt/settings/2016.4/intel-mpi.csh
setenv I_MPI_PIN 1
setenv I_MPI_FABRICS shm:dapl ← shm:ofa
#setenv I_MPI_DEBUG 7
ln -fs ~/STATE/src/develop/STATE5.6.0/STATE STATE ← STATEの適切なバージョンを使用
ln -fs ~/STATE/gncpp/pot.O_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.H_lda1 fort.38
setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える
cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID
mpirun ./STATE < nfinp_1 > nfout_1
***グループ14 x17システム [#f319cab5]
- SkylakeアーキテクチャーのXeon CPU(Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz)で構成される計算機グループです。各ノードは2CPU(計32core)で構成されています。メモリは96GBです。
- スクリプトの例(cshのみ)
-- フラット並列(2ノード64コア)
!/bin/csh -f
#$ -cwd
#$ -q x17.q
#$ -pe x32 64
#$ -N JOB_NAME ← ジョブの名称を設定できる
#$ -j y
module load intel/2020.2.254
module load intelmpi/2020.2.254
# source /opt/settings/2016.4/intel-compiler.csh
# source /opt/settings/2016.4/intel-mpi.csh
setenv I_MPI_PIN 1
setenv I_MPI_FABRICS shm:dapl ← shm:ofa
#setenv I_MPI_DEBUG 7
ln -fs ~/STATE/src/develop/STATE5.6.0/STATE STATE ← STATEの適切なバージョンを使用
ln -fs ~/STATE/gncpp/pot.O_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.H_lda1 fort.38
setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える
cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID
mpirun ./STATE < nfinp_1 > nfout_1
***グループ15 x19システム [#o3556ccf]
- Cascade LakeアーキテクチャーのXeon CPU(Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz)で構成される計算機グループです。各ノードは2CPU(計40core)で構成されています。
** コンパイル [#db7201d0]
-コンパイラの環境設定: ホームディレクトリにある.bashrc(lsでは見えません。ls -laとすると見えます。)に2行を追加して下さい。
module load intel/2020.2.254
module load intelmpi/2020.2.254
*** STATEのコンパイル [#v19143d3]
-インクルードファイルmake.archをSTATEソースのディレクトリに置いてmakeしてください。
-make.archの例
################################## for (Xeon,smith) #################################
F90 = mpiifort
LINKER = mpiifort
OMP = -qopenmp
OPT3 =
FFLAGS= $(OMP) $(OPT3) -xSSE4.2 -axCOMMON-AVX512,CORE-AVX512,CORE-AVX2,CORE-AVX-I,AVX
FLAGG = $(OMP) $(OPT3)
FLAGD = $(OMP)
FFTW_DIR=$(MKLROOT)/include/fftw
INCLUDE = -I$(FFTW_DIR)
LIBS = -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -mkl=parallel
CPPDIR = /usr/bin
CPP = $(CPPDIR)/cpp -P -C -traditional
P_FLAGS = -D_INTEL_DAVIDSON_ -D_MKL_FFTW_ -D_FFTW3_ -D_TIMER_ -D_OPENMP_FUNC_ -D_SCALAPACK_ \
-D_ALLGATHERV_NOOVERLAP_
######################################################################
あるいは
################################## for (Xeon,smith) #################################
F90 = mpiifort
LINKER = mpiifort
OMP = -qopenmp
OPT3 =
FLAGS = $(OMP) $(OPT3) -axCOMMON-AVX512,CORE-AVX512,CORE-AVX2,CORE-AVX-I,AVX,SSE4.2,SSE4.1,SSSE3,SSE3,SSE2 -fixed -extend_source
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_
################################################################################
過去の情報は[[Smithシステムの使い方>計算機システムの使い方/Smith_old]] (旧) を参照して下さい。
** ネットワーク構成 [#rd9d48f4]
~-- | 等はネットワークの接続を、[]でくくられた名前はコンピュータの名称をそれぞれ表す。
+ 工学部内 ODINS network
|
| Backbone network( 工学部ネットワークから直接アクセスできない )
| |
+- [smith] -----+ 133.1.116.161 ログイン&アプリケーションサーバー & ファイルサーバー
+- [rafiki] ----+ 133.1.116.162 ログイン&アプリケーションサーバー & バックアップ
+- [tiamat] ----+ 133.1.116.211 ログイン&アプリケーションサーバー
| |
| | ■現役ノード■
| +-- [xe00], [xe01] 計算サーバー グループ4 (各ノード 8CORE (2CPU)) 並列環境=x8 キュー=xe1.q
| +-- [xe02]-[xe06] 計算サーバー グループ5 (各ノード12CORE (2CP)U) 並列環境=x12 キュー=xe1.q
| +-- [xe02]-[xe06] 計算サーバー グループ5 (各ノード12CORE (2CPU)) 並列環境=x12 キュー=xe1.q
| |
| +-- [xs01]-[xs18] 計算サーバー グループ8 (各ノード16CORE (2CPU)) 並列環境=x16 キュー=xs2.q
| |
| +-- [xi01]-[xi12] 計算サーバー グループ9 (各ノード16CORE (2CPU)) 並列環境=x16 キュー=xi1.q
| |
| +-- [xh01]-[xh17],[xh19]-[xh34]
| | 計算サーバー グループ10 (各ノード16CORE (2CPU)) 並列環境=x24 キュー=xe1.q
| +-- [xh18],[xh35]-[xh43] 計算サーバー グループ11 (各ノード24CORE (2CPU)) 並列環境=x24 キュー=xh2.q
| +-- [yh01]-[yh03] 計算サーバー グループ12 (各ノード24CORE (2CPU)) 並列環境=x24 キュー=yh1.q 濱本先生専用
| +-- [xb01]-[xb14] 計算サーバー グループ13 (各ノード32CORE (2CPU)) 並列環境=x32 キュー=xb1.q
| +-- [x1701]-[x1706] 計算サーバー グループ14 (各ノード32CORE (2CPU)) 並列環境=x32 キュー=x17.q
| |
| | ■引退ノード■
| +-- [it??]-[it??] 計算サーバー グループ0 (itanium)
| +-- [opt00], [opt01] コンパイルサーバー(opteron,opt01)
| +-- [opt02]-[opt11] 計算サーバー グループ1 (各ノード2CORE (2CPU)) mpich-opt (opt02-opt11 停止中)
| +-- [opt12]-[opt21] 計算サーバー グループ2 (各ノード4CORE (2CPU)) 並列環境=mpich-opt2
| +-- [opt22]-[opt36] 計算サーバー グループ3 (各ノード4CORE (2CPU)) 並列環境=mpich-opt3
| +-- [xeon00] ----+ サブログイン・計算サーバー (ノード8CORE (2CPU))
| | +--- [xeon01-07] 計算サーバー グループ6 (各ノード8CORE (2CPU))
| |
| |
+- [sb100] -----+ 133.1.116.165 別グループ計算サーバー
|
+-- [sb101]-[sb120] 計算サーバー グループ7 (各ノード6CORE (1CPU)) 並列環境=