SMITHクラスタ計算機システムはインテルまたは互換CPUを用いた計算機システムです。
複数の計算機を束ねて多量の計算要求を効率よく実行できるように構成されたシステムのことです。
システムへはログインサーバーという名前の計算機にアクセスして用います。
直接ログインせず、「ジョブ投入」という形式で利用します。
以下では"$"はコマンドプロントを表すと見てください。
$ ssh -Y [userID]@133.1.116.161を実行する。
$ ssh -Y [userID]@133.1.116.165を実行する。
$ passwd
を実行してパスワードを変更すること。
鍵システムを利用してsshで通信する場合に用います。データを暗号化して通信するので、通信経路でデータが覗き見られない安全な通信手段です。
ssh-keygenデフォルトでは秘密鍵と公開鍵がそれぞれ .ssh/id_rsaと .ssh/id_rsa.pubの名前で保存される。
cat id_rsa.pubこの内容の先頭にアクセス元(クライアント、smithなど)のIPアドレスを追加して、アクセス先の(リモートホスト、東大物性研のohtakaなど)の .ssh/authorized_keysに追加する。(スパコンセンターではwebページを通じて公開鍵を登録することが多い)
工学研究科の外部からログインするには先ず工学研究科のゲートウェイサーバにログインし、さらにsmith/sb100にログインする必要があります。従ってゲートウェイにユーザーアカウントを持っている必要があります。持っていない方は稲垣先生に問い合わせて下さい。ゲートウェイにユーザーアカウントを作成する場合、公開鍵の登録が必要となりますので準備しておいて下さい。 以下はポートフォワーディングしてsmithにログインする手順です。
ssh -L localhost:10022:133.1.116.161:22 -i ~/.ssh/[id_rsa] [user_name]@ssh-gw.eng.osaka-u.ac.jp -Nここで[id_rsa]は秘密鍵のファイル名、[user_name]はゲートウェイ上でのユーザーアカウント名です。
ssh localhost -p 10022ここで10022はポート番号で、最初の手順で指定したポート番号と一致する必要があります。scpを使用する際はサーバ名をlocalhost、ポート番号を10022としておけば良いでしょう。
$ module available
$ module load intel/2020.2.254 $ module load intelmpi/2020.2.254 $ module load python/3.8など
~/.bashrcへの記録(smithの場合)
module load intel/2020.2.254 module load intelmpi/2020.2.254 module load python/3.8
$ module load intel/2021.2.0 $ module load intelmpi/2021.2.0など
~/.bashrcへの記録(sb100の場合)
module load intel/2021.2.0 module load intelmpi/2021.2.0
古いintelコンパイラ用の設定は以下のように
# source /home/opt/settings/2017.4/intel-compiler.sh # source /home/opt/settings/2017.4/intel-mpi.sh
などとしてコメントアウト、あるいは削除する。
qsub -q xh1.q -pe x24 24 run.csh
ジョブの状態を見るには
qstat
を実行します。特定のユーザのジョブの状態を見るには
qstat -u [user name]
ジョブをキャンセルするには
qdel [job ID]
を実行します。Job IDはqstatで表示される1コラム目の数字です。
グループ | プロセッサ | コア数/CPU数 | ジョブ投入サーバ | キュー | 並列環境 | ノード間並列ファブリック |
4 | xeon | 8/2 | smith/rafiki/tiamat | xe1.q | x8 | |
5 | xeon | 12/2 | smih/rafiki/tiamat | xe2.q | x12 | |
6 | xeon sandy-bridge | 16/2 | smith/rafiki/tiamat | xs2.q | x16 | |
7 | xeon ivy-bridge | 16/2 | smith/rafiki/tiamat | xi1.q | x16 | |
10a | xeon Haswell | 24/2 | smith/rafiki/tiamat | xh1.q | x24 | infini-band |
10b | xeon Haswell | 24/2 | smith/rafiki/tiamat | xh2.q | x24 | infini-band |
10c | xeon Haswell | 24/2 | smith/rafiki/tiamat | xh3.q | x24 | infini-band |
10d | 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 |
16 | xeon Cascade Lake | 52/2 | smith/rafiki/tiamat | x20.q | x40 | infini-band |
グループ | プロセッサ | コア数/CPU数 | ジョブ投入サーバ | キュー | 並列環境 | ノード間並列ファブリック |
7a | core i7 sandy-bridge | 6/1 | sb100 | all.q | x6 | |
7b | xeon E5-1650 sandy-bridge | 6/1 | rl | all.q | x6 |
#$ -S /bin/csh #$ -cwd #$ -q xe2.q #$ -pe x12 12 #$ -N JOB_NAME ← ジョブの名称を設定できる mpirun ./STATE < nfinp_dav > nfout_dav
#$ -S /bin/bash #$ -cwd #$ -q xe2.q #$ -pe x12 12 #$ -N CO #$ -o CO_out #$ -e CO_err module load intel/2020.2.254 module load intelmpi/2020.2.254 export OMP_NUM_THREADS=1 SRCDIR=${HOME}/STATE/src/state-5.6.6/src PPDIR=${HOME}/STATE/gncpp MPI_COMMAND="mpirun -np ${NSLOTS}" ln -fs ${SRCDIR}/STATE ./STATE ln -fs ${PPDIR}/C_pbe1/#vnew.data fort.37 ln -fs ${PPDIR}/O_pbe1/#vnew.data fort.38 INPUT_FILE=nfinp_dav OUTPUT_FILE=nfout_dav ${MPI_COMMAND} ${STATE} < ${INPUT_FILE} > ${OUTPUT_FILE}
#!/bin/csh -f $$ -q sb.q #$ -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
#!/bin/csh -f #$ -q sb.q #$ -pe x6 12 #$ -cwd #$ -N JOBNAME ln -fs ~/STATE/src/STATE_5.4.1/STATE . mpirun -np $NSLOTS ./STATE < nfinp > nfout
#$ -S /bin/bash #$ -cwd #$ -q sb.q #$ -pe x6 6 #$ -N CO #$ -o CO_out #$ -e CO_err module load intel/2021.2.0 module load intelmpi/2021.2.0 export OMP_NUM_THREADS=1 export I_MPI_PIN=1 export I_MPI_FABRICS=shm:ofi unset I_MPI_TCP_NETMASK ROOTDIR=${HOME}/STATE SRCDIR=${ROOTDIR}/src/state-5.6.9/src PPDIR=${ROOTDIR}/gncpp MPI_COMMAND="mpirun" STATE_EXEC=STATE STATE=./STATE ln -fs ${SRCDIR}/${STATE_EXEC} ${STATE} ln -fs ${PPDIR}/C_pbe1/#vnew.data fort.37 ln -fs ${PPDIR}/O_pbe1/#vnew.data fort.38 INPUT_FILE=nfinp_dav OUTPUT_FILE=nfout_dav ${MPI_COMMAND} ${STATE} < $INPUT_FILE > $OUTPUT_FILE
#!/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 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 setenv OMP_NUM_THREADS 1 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 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID mpirun ./STATE < nfinp_1 > nfout_1
#!/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 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
#$ -S /bin/bash #$ -cwd #$ -q xs2.q #$ -pe x16 16 #$ -N JOB_NAME module load intel/2020.2.254 module load intelmpi/2020.2.254 # Above settings should be consistent with those used in the compilation MPI_COMMAND=mpirun export I_MPI_PIN=1 export I_MPI_ADJUST_ALLGATHERV=2 export OMP_NUM_THREADS=1 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID $MPI_COMMAND ./a.out < input.dat > output.dat
!/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 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
#$ -S /bin/bash #$ -cwd #$ -q xi1.q #$ -pe x16 16 #$ -N JOB_NAME module load intel/2020.2.254 module load intelmpi/2020.2.254 # Above settings should be consistent with those used in the compilation MPI_COMMAND=mpirun export I_MPI_PIN=1 export I_MPI_ADJUST_ALLGATHERV=2 export OMP_NUM_THREADS=1 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID $MPI_COMMAND ./STATE < nfinp_1 > nfout_1
!/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 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
!/bin/bash -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 export I_MPI_PIN=1 export I_MPI_FABRICS=shm:tcp ← xh1 の場合 shm:dapl or shm:ofa でinfinibandが使えます #export I_MPI_DEBUG=7 setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える 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 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID mpirun ./STATE < nfinp_1 > nfout_1
!/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 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
!/bin/bash #$ -cwd #$ -q xb1.q #$ -pe x32 64 #$ -N JOB_NAME ← ジョブの名称を設定できる #$ -j y module load intel/2020.2.254 module load intelmpi/2020.2.254 export I_MPI_PIN=1 export I_MPI_FABRICS=shm:dapl ← shm:ofa #export I_MPI_DEBUG=7 setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える 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 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID mpirun ./STATE < nfinp_1 > nfout_1
!/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 setenv I_MPI_PIN 1 setenv I_MPI_FABRICS shm:dapl ← shm:ofa #setenv I_MPI_DEBUG 7 setenv OMP_NUM_THREADS 1 ← hybrid計算の場合はここの数値を変える 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 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID mpirun ./STATE < nfinp_1 > nfout_1
#$ -S /bin/bash #$ -cwd #$ -q x17.q #$ -pe x32 32 #$ -N JOB_NAME #$ -j y module load intel/2020.2.254 module load intelmpi/2020.2.254 # Above settings should be consistent with those used in the compilation MPI_COMMAND=mpirun export I_MPI_PIN=1 export I_MPI_FABRICS=shm:dapl export OMP_NUM_THREADS=1 cat $PE_HOSTFILE | awk '{ print $1":"$2/ENVIRON["OMP_NUM_THREADS"] }' > hostfile.$JOB_ID $MPI_COMMAND ./a.out < input.dat > output.dat
qmon
を実行することでqmonのウィンドウが立ち上がり
Queue Control
を見ると使用可能なキュー名(qsubの-qオプション以降に指定するオプション)を
Parallel Environment
見ると並列環境(qsubの-peオプション以降に指定するオプション)を確認することができます。
module load intel/2020.2.254 module load intelmpi/2020.2.254
################################## 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システムの使い方 (旧) を参照して下さい。
-- | 等はネットワークの接続を、[]でくくられた名前はコンピュータの名称をそれぞれ表す。
+ 工学部内 ODINS network | | Backbone network( 工学部ネットワークから直接アクセスできない ) | | +- [smith] -----+ 133.1.116.161 ログイン&アプリケーションサーバー & ファイルサーバー +- [rafiki] ----+ 133.1.116.162 ログイン&アプリケーションサーバー & バックアップ +- [tiamat] ----+ 133.1.116.211 ログイン&アプリケーションサーバー | | | | ■ノード名 サーバー CPUコアxCPU数 並列環境 キュー | | G番号 =ノードコア数 | +-- [xe00]-[xe01] 4 4x2=8 x8 xe1.q | +-- [xe02]-[xe06] 5 4x2=8 x8 xe1.q | +-- [xe02]-[xe06] 6 6x2=12 x12 xe2.q | | | +-- [xs01]-[xs18] 8 8x2=16 x16 xs2.q | +-- [xi01]-[xi13] 9 8x2=16 x16 xi1.q | | (大メモリ機) | +-- [xh01]-[xh36] 10a 12x2=24 x24 xh1.q | +-- [xh37]-[xh43] 10b 12x2=24 x24 xh2.q | +-- [yh01]-[yh03] 10d 12x2=24 x24 yh1.q | | | +-- [xb01]-[xb14] 13 16x2=32 x32 xb1.q | +-- [x1701]-[x1708] 14 16x2=32 x32 x17.q | +-- [x1901]-[x1906] 15 20x2=40 x40 x19.q | +-- [x2001]-[x2020] 16 26x2=52 x52 x20.q | | | | ■引退ノード■ | +-- [it??]-[it??] 0 (itanium) | +-- [opt00], [opt01] コンパイルサーバー(opteron,opt01) | +-- [opt02]-[opt11] 1 (各ノード2CORE) mpich-opt | +-- [opt12]-[opt21] 2 (各ノード4CORE) mpich-opt2 | +-- [opt22]-[opt36] 3 (各ノード4CORE) mpich-opt3 | +-- [xeon00] ---+ サブログイン・計算サーバー (ノード8CORE) | | +--- [xeon01-07] グループ6 (各ノード8CORE) | | | | +- [sb100] -----+ 133.1.116.165 別グループ計算サーバー | +-- [sb101]-[sb120] 7a 6x1=6 x6 ? sb.q | | +-- [rl03]-[rl20] 7b 6x1=6 x6 ? rl.q