* smith 計算機システムの使い方 [#r2be5e9c] SMITHクラスタ計算機システムはインテルまたは互換CPUを用いた計算機システムです。 ** ネットワーク構成 [#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)) 並列環境= **ログインサーバー [#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 を実行する。現状では -bash: /usr/local/g09/D01/g09/bsd/g09.profile: Permission denied というメッセージが出るが、通常の作業に影響は無いので無視する。 初めてログインする際には 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にコピーする。 **ジョブキューイングシステムとは? [#s67f500a] -システムで計算を実行するには、計算したい内容をジョブスクリプトファイルに書いてジョブキューイングシステムに投入する必要があります。 -ジョブ管理システムはSGE(Sun Grid Engine)です。(OGS/GE 2011.11) -ジョブは、指定したグループの空いている計算機に自動的に割り当てられて実行されます。 -空きが足りない場合は、他のグループに空きがあっても実行されず、他のジョブの終了を待つことになります。 -同じ能力を持つ計算ノードはクラスごとにまとめられています。ジョブ投入時にクラスを指定します。 *設定上の重要な点 [#hb98c6a2] -.cshrcの中にcdのaliasが記載されている場合がありますが、削除しないとインテルFortran/MPIの初期設定でエラーが生じ正常に実行できません。削除してください。 **複数ノードを用いた並列計算について [#r3b5cd32] -用いるノード(コア)の数を増やすと自動的に並列度が上がりますが、グループ8,13以外のシステムの通信はギガビットイーサネットで実装されていますので、あまり速くありません。ノード間通信を含む並列計算はあまり有効ではありませんのでご注意ください。グループ8,13では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コラム目の数字です。 -計算機グループと対応するキュー及び並列環境 プロセッサの種類 ノード内 ジョブ投入 キュー 並列環境 ノード間 コア数/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 -グループ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 -グループ8のsb??? にジョブを投入するときは、sb100でqsubコマンドを実行してください。 -それ以外のグループ にジョブを投入するときは、smithでqsubコマンドを実行してください。 -ジョブスクリプトの書き方については、下の各グループごとの説明中に「ジョブスクリプトファイルの例」で説明しています。 **各グループ [#n18333d7] ***グループ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 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 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 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] - 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 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 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 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 * コンパイル [#db7201d0] -コンパイラの環境設定: ホームディレクトリにある.bashrc(lsでは見えません。ls -laとすると見えます。)に2行を追加して下さい。 source /opt/settings/2016.4/intel-compiler.sh source /opt/settings/2016.4/intel-mpi.sh - 最新版のコンパイラを使用したい場合は以下を追加して下さい(STATEの最新版では2016.4版(上記)の使用を推奨)。 source /opt/settings/2017.1/intel-compiler.sh source /opt/settings/2017.1/intel-mpi.sh -インクルードファイルmake.arhをSTATEソースのディレクトリに置いてmakeしてください。 -make.archの例 ################################## 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]] (旧) を参照して下さい。