* smith 計算機システムの使い方 [#r2be5e9c]

SMITHクラスタ計算機システムはインテルまたは互換CPUを用いた計算機システムです。

** ネットワーク構成 [#rd9d48f4]

~-- | 等はネットワークの接続を、~[]でくくられた名前はコンピュータの名称をそれぞれ表す。

 + 工学部内 ODINS network
 |
 |           Backbone network( 工学部ネットワークから直接アクセスできない )
 |               |
 +- [smith] -----+                          133.1.116.161 ログイン&アプリケーションサーバー
 |               |
 +- [rafiki] ----+                          133.1.116.162 ログインサーバーバックアップ
 |               |
 |               +-- [opt00], [opt01]       コンパイルサーバー(opt01 停止中)
 |               |
 |               +-- [opt12]-[opt21]        計算サーバー グループ2 (各4CORE 2CPU) 並列環境=mpich-opt2 
 |               +-- [opt22]-[opt36]        計算サーバー グループ3 (各4CORE 2CPU) 並列環境=mpich-opt3
 |               |
 |               +-- [xe00], [xe01]         計算サーバー グループ4 (各8CORE 2CPU) 並列環境=x8
 |               +-- [xe02]-[xe06]          計算サーバー グループ5 (各12CORE 2CPU) 並列環境=x12
 |               |
 |               +-- [xs01]-[xe??]          計算サーバー グループ8 (各16CORE 2CPU) 並列環境=x16
 |               |
 |               |・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
 |               |
 |               +-- [xeon00] ----+         ログイン・計算サーバー (8CORE 2CPU)
 |               |                |
 |               |                +--- [xeon01-07] 計算サーバー グループ6 (各8CORE 2CPU)
 |               |
 |               |・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
 |               |
 +- [sb100] -----+                          133.1.116.165 新計算サーバー
                 |
                 +-- [sb101]-[sb120]        計算サーバー グループ7 (各6CORE 1CPU) 並列環境=x20
                 |  
                 +-- [corei7-3930k-1]       計算サーバー テスト用 (6CORE 1CPU) 

**ジョブキューイングシステムとは? [#s67f500a]
-システムで計算を実行するには、計算したい内容をジョブスクリプトファイルに書いてジョブキューイングシステムに投入する必要があります。
-ジョブ管理システムはSGE(Sun Grid Engine)です。(OGS/GE 2011.11)
-ジョブは、指定したグループの空いている計算機に自動的に割り当てられて実行されます。
-空きが足りない場合は、他のグループに空きがあっても実行されず、他のジョブの終了を待つことになります。

**複数ノードを用いた並列計算について [#r3b5cd32]
-用いるノード(コア)の数を増やすと自動的に並列度が上がりますが、グループ8以外のシステムの通信はギガビットイーサネットで実装されていますので、あまり速くありません。ノード間通信を含む並列計算はあまり有効ではありませんのでご注意ください。グループ8ではINFINIBANDが実装されています。並列計算の効率が向上することが期待されます。

**ジョブの投入(実行)方法 [#k32ce356]

-実行にはキューと並列環境(parallel_environment)を指定する必要があります。ジョブスクリプトrun.cshをグループ2に投入する場合、下記のようになります。

    qsub -q opt1.q -pe mpich-opt2 4 run.csh

-計算機グループと対応するキュー及び並列環境

               プロセッサの種類     ノード内     ジョブ投入  キュー  並列環境
                                    コア数/CPU数 サーバー 
 ・グループ2 opteron              4/2         smith        opt1.q     mpich-opt2
 ・グループ3 opteron              4/2         smith        opt2.q     mpich-opt3
 ・グループ4 xeon                 8/2         smith        xe1.q      x8
 ・グループ5 xeon                12/2         smith        xe2.q      x12
 ・グループ6 xeon                 8/2         xeon00       all.q      x8
 ・グループ7 core i7 sandy-bridge  6/1         sb100        all.q      x6
 ・グループ8 xeon sandy-bridge   16/2         smith        xs1.q      x16


-グループ6のxeon?? にジョブを投入するときは、xeon00でqsubコマンドを実行してください。
-グループ8のsb??? にジョブを投入するときは、sb100でqsubコマンドを実行してください。
-それ以外のグループ にジョブを投入するときは、smithでqsubコマンドを実行してください。

-ジョブスクリプトの書き方については、下の各グループごとの説明中に「ジョブスクリプトファイルの例」で説明しています。


**各グループ [#n18333d7]
***グループ0(工学部森川研の有史以前) [#se5e3002]
-廃棄済みのため欠番(Itaniumのグループがあった)

***グループ1 [#dd9e89c2]
-廃棄済みのため欠番(旧opteronのグループがあった)

***グループ2,3 opt??システム [#l20f66f6]
-opteron CPUで構成される計算機グループで、mpich-opt2, mpich-opt3 の2 parallel_environmentからなります。各ノードは2CPU(計4core)で構成されています。

-ジョブスクリプトファイルの例
  #!/bin/csh
  #$ -cwd
  #$ -pe mpich-opt2 4
  #$ -N JOBNAME
  mpirun -nolocal -np $NSLOTS -machinefile ../$USER.$PE.$JOB_ID ./STATE_A < nfinp > nfout
  
--  -cwd はジョブを投入した時のディレクトリがジョブ開始時のディレクトリになることを指示するオプションです。
--  上のmpich-opt2の後ろの4が計算に用いるCOREの数を示すオプションです。
--  -Nオプションでジョブの名前を指定できます。(先頭文字は英字です。)
-- STATE_AにはSTATEの実行ファイルをジョブ投入前にリンクしておいてください。
-- また、fort.37等、擬ポテンシャルのファイルも同様にリンクしておいてください。
-コンパイル
--  コンパイルはopt00にログインしてifortコマンドにより行います。
--  STATEユーザーはopt用のMakefileを使用してコンパイルできます。
-  opt??にログインするには?
-- rsh opt00 等でOKです。
-ライブラリ
--  ACML,mpich-2 が利用できます。

***グループ4,5 xeシステム [#mb55749d]
-xeon CPUで構成される計算機グループで、x8, x12 の2 parallel_environmentからなります。各ノードは2CPU(計8または12core)で構成されています。

-ジョブスクリプトファイルの例
  #!/bin/csh
  #$ -cwd
  #$ -pe x12 12
  #$ -N JOBNAME
  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]]も参照。


***グループ6 xeon00システム [#d2c31954]
- xeon CPUで構成される計算機グループですが、特定のプロジェクト用のため一般利用はできません。

-ジョブスクリプトファイルの例
  #!/bin/csh
  #$ -cwd
  #$ -pe x8 8
  #$ -N JOBNAME
  mpirun  -np $NSLOTS ./STATE_A < nfinp > nfout

***グループ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 JOBNAME
 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
 #$ -pe x16 32
 #$ -cwd
 #$ -N JOBNAME
 setenv OMP_NUM_THREADS         4   # OPENMP並列数
 setenv I_MPI_ADJUST_ALLGATHERV 2   # MPI集団通信ALLGATHERVのアルゴリズム
 setenv I_MPI_PIN               1   # 
 ln -fs ~/STATE/src/STATE_5.4.1/STATE .
 mpirun  -perhost 4 -np 8 ./STATE < nfinp > nfout
-- フラット並列(32コア)
 #!/bin/csh -f
 #$ -pe x16 32
 #$ -cwd
 #$ -N JOBNAME
 setenv OMP_NUM_THREADS         1   # OPENMP並列数
 setenv I_MPI_ADJUST_ALLGATHERV 2   # MPI集団通信ALLGATHERVのアルゴリズム
 setenv I_MPI_PIN               1   # 
 ln -fs ~/STATE/src/STATE_5.4.1/STATE .
 mpirun -np $NSLOTS ./STATE < nfinp > nfout

-make.sysの例
 ###################  FOR PC clusterC (Xeon) with mpiifort #####################
 F90    =  mpiifort
 LINKER =  mpiifort
 OMP    = 
 OPT1   = -O1 
 OPT3   = -O3
 # Xeon with SSE4
 FLAG   = $(OMP) $(OPT1) -fixed -extend_source -axAVX,SSE4.2 -mcmodel=large -g -traceback 
 FLAGS  = $(OMP) $(OPT3) -fixed -extend_source -axAVX,SSE4.2 -mcmodel=large -g -traceback 
 FLAGD  = $(OMP) $(OPT3) -fixed -extend_source -axAVX,SSE4.2 -mcmodel=large -g -traceback 
 FLAGNP =        $(OPT3) -fixed -extend_source -axAVX,SSE4.2 -mcmodel=large -g -traceback 
 DEBUG  = 
 LIBS   = -mkl=sequential
 LAPACK =
 INCLUDE = -I$(MKLROOT)/include/fftw -I/opt/intel/impi/3.2.1.009/include64/
 CPPDIR  = /usr/bin
 CPP       = $(CPPDIR)/cpp -P -C -traditional
 P_FLAGS   = -D_FFTW3_ -D_MKL_   -D_PC_CLUSTER_ -D_TIMER_                               -D_TEST_ -D_PATIENT_ -D_TIMERx_ -D_INTEL_
 
 ################################################################################
 # preprocessor switches
 # _FFTW3_       usage of FFTW3 interface
 # _FFTW3_MPI    usage of FFTW3/MPI
 # _PAITIENT_    FFTW3 planning parameter. strong optimization of FFT procedure.
 # _MKL_         disable usage of FFTW wisdom
 # _INTEL_/_KEI_ select appropriate module for use of 'chdir'  
 # _PC_CLUSTER_  use of algorithms for non-vector machine
 # _TIMER_       elaps time measurement for important procedures
 # _TIMERx_      elaps times of program regions in main/scf routines
 # _TEST_        affect # of revision of eigen-vector & other parts (Haraguchi-san's)
 # _OPENMP_FUNC__OPENMP_FUNC_   activate openMP control functions
 # _SCALAPACK_   use of saclapack routines
 ################################################################################


----------------------------------------------------------------------------------------------

* SXで実行させた結果(バイナリデータ)を読み込みたい。 [#ab45c110]
- 可能です。
 
zaj.data, potention.data, restart.dataについて下記のようにして、読み込み時のエンディアンを変更します。出力もSX互換のままになりますので、さらに継続して使うときは注意してください。
 setenv F_UFMTENDIAN 43,70,80 (cshの場合)
 export F_UFMTENDIAN=43,70,80 (bashの場合)
 F_UFMTENDIAN=43,70,80 ; export F_UFMTENDIAN (shの場合)

----------------------------------------------------------------------------------------------


以下、古い情報です。


* smith 計算機システムの使い方(旧) [#b903d366]

SMITHクラスタ計算機システムはインテルまたは互換CPUを用いた計算機システムです。

** ネットワーク構成 [#x85a42b8]

~-- | 等はネットワークの接続を、~[]でくくられた名前はコンピュータの名称をそれぞれ表す。

 + 工学部内 ODINS network
 |
 |           Backbone network( 工学部ネットワークから直接アクセスできない )
 |               |
 +- [smith] -----+                          133.1.116.161 ログインサーバー
 |               |
 +- [rafiki] ----+                          133.1.116.162 アプリケーションサーバー
 |               |
 |               |                          (133.1.116.163 WEBサーバー休止中)
 |               |
 |               +-- [ita*]                 Itanium CPUシステム(撤去)
 |               |
 |               +-- [opt00], [opt01]       コンパイルサーバー(opt01 停止中)
 |               |
 |               +-- [opt02]-[opt11]        計算サーバー グループ1 (各2CORE 2CPU) mpich-opt (opt02-opt11 停止中)
 |               |
 |               +-- [opt12]-[opt21]        計算サーバー グループ2 (各4CORE 2CPU) mpich-opt2 (opt17 停止中)
 |               |
 |               +-- [opt22]-[opt36]        計算サーバー グループ3 (各4CORE 2CPU) mpich-opt3
 |               |
 |               +-- [xe00], [xe01]         計算サーバー グループ4 (xe00はコンパイルサーバー兼用)(各8CORE 2CPU) x8
 |               |
 |               +-- [xe02]-[xe06]          計算サーバー グループ5 (各12CORE 2CPU) x12
 |               |
 |               +-- [xeon00] ----+         ログイン・計算サーバー (8CORE 2CPU)
 |               |                |
 |               |                +--- [xeon01-07] 計算サーバー グループ6 (各8CORE 2CPU)
 |               |
 +- [sb100] -----+                          133.1.116.165 新計算サーバー
                 |
                 +-- [sb101]-[sb120]        計算サーバー グループ7 (各6CORE 1CPU) x20
                 |                           [Sandy-bridge Corei7-3960k]
                 +-- [corei7-3930k-1]       計算サーバー テスト用 (6CORE 1CPU) 

**ジョブの投入について [#q22a1518]
-システムで計算を実行するには、計算したい内容をジョブにしてジョブキューイングシステムに投入する必要があります。
-ジョブ管理システムはSGE(Sun Grid Engine)5.3です。
-ジョブは自動的に空いている計算機に割り当てられて実行されます。(しかしグループを超えて違う計算機には割り当てられませんので注意が必要です。)
-ジョブの作り方は下記各システムの説明に「ジョブスクリプトファイルの例」がありますので参考にしてください。
-用いるコアの数を増やすと自動的に並列度が上がりますが、通信はギガビットイーサネットで実装されていますので、あまり速くありません。ノード間通信を含む並列計算はあまり有効ではありませんのでご注意ください。
-opt parallel_environmentにジョブを投入するときは、smithかopt??でqsubコマンドを実行してください。
-xe parallel_environmentにジョブを投入するときは、xe00でqsubコマンドを実行してください。
-xeon parallel_environmentにジョブを投入するときは、xeon00でqsubコマンドを実行してください。

**キューとparallel_environmentについて [#j6529b3c]
-各計算ノードはそれぞれ別々のキューとして管理されています。
-違う規模の計算機は別々の parallel_environmentとして管理しています。(mpich-opt, mpich-opt2, mpich-opt3, x8, x12)
-通常、キューを指定せず、-peオプションで parallel_environmentを指定してください。
- parallel_environmentを指定すると、ジョブはその parallel_environmentに属するノードでのみ割り当てられます。
-投入したジョブのparallel_environmentに属するノードに空きが足りない場合は、他のparallel_environmentに空きがあっても実行されず、その parallel_environmentの他のジョブの終了を待つことになります。

**各システム [#o99a72fa]
***opt??システム [#l914a98c]
-opteron CPUで構成される計算機グループで、mpich-opt, mpich-opt2, mpich-opt3 の3 parallel_environmentからなります。

-ジョブスクリプトファイルの例
  #!/bin/csh
  #$ -cwd
  #$ -pe mpich-opt2 4
  #$ -N JOBNAME
  mpirun -nolocal -np $NSLOTS -machinefile ../$USER.$PE.$JOB_ID ./STATE_A < nfinp > nfout
  
--  -cwd はジョブを投入した時のディレクトリがジョブ開始時のディレクトリになることを指示するオプションです。
--  上のmpich-opt2の後ろの4が計算に用いるCOREの数を示すオプションです。
--  -Nオプションでジョブの名前を指定できます。(先頭文字は英字です。)
-- STATE_AにはSTATEの実行ファイルをジョブ投入前にリンクしておいてください。
-- また、fort.37等、擬ポテンシャルのファイルも同様にリンクしておいてください。
-コンパイル
--  コンパイルはopt00にログインしてifortコマンドにより行います。
--  STATEユーザーはopt用のMakefileを使用してコンパイルできます。
-  opt??にログインするには?
-- rsh opt00 等でOKです。
-ライブラリ
--  ACML,mpich-2 が利用できます。

***x?システム [#jf4030e4]
-xeon CPUで構成される計算機グループで、x8, x12 の2 parallel_environmentからなります。

-ジョブスクリプトファイルの例
  #!/bin/csh
  #$ -cwd
  #$ -pe x12 12
  #$ -N JOBNAME
  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]]も参照。


***xeon00システム [#qf359bf3]
- xeon CPUで構成される計算機グループですが、特定のプロジェクト用のため一般利用はできません。

-ジョブスクリプトファイルの例
  #!/bin/csh
  #$ -cwd
  #$ -pe x8 8
  #$ -N JOBNAME
  mpirun  -np $NSLOTS ./STATE_A < nfinp > nfout

***sb100システム [#f7c64b2d]
- 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 erace
 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 erace
 ln -fs ~/STATE/src/STATE_5.4.1/STATE .
 mpirun -np $NSLOTS ./STATE < nfinp > nfout
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS