smith 計算機システムの使い方 †
SMITHクラスタ計算機システムはインテルまたは互換CPUを用いた計算機システムです。
はじめに -クラスタシステムとは- †
クラスタシステム †
複数の計算機を束ねて多量の計算要求を効率よく実行できるように構成されたシステムのことです。
アクセス †
システムへはログインサーバーという名前の計算機にアクセスして用います。
- ログインサーバーへのログインの方法
- ログインサーバーでできること
その他の計算機の利用方法 †
直接ログインせず、「ジョブ投入」という形式で利用します。
- 能力別にグループ化された計算サーバーのグループ構成
- 「ジョブスクリプトファイル」の書き方
- 「ジョブ」の投入方法、確認方法、削除(強制終了)方法
- 異常状態の確認と対処
ログインサーバー †
smithシステム †
- 下の3台がログインサーバーです。
- 基本的にはsmithを使ってください。
- smithにファイルサーバーの機能(ファイルが収められているディスクがある)が設定されています。
- どのログインサーバにログインしても同じホームディレクトリになります。(「ネットワークファイルシステム」機能)
- ファイルは「RAIDシステム」により複数のディスクで構成されて保護されているので、ディスクが故障してもファイルが失われることはありません。
- ファイルサーバーは毎日深夜にバックアップサーバーの/backup_homeにバックアップされています。間違って消去したファイルでも、そこに保存されていればコピーして再生できます。
- [smith] 133.1.116.161
- [rafiki] 133.1.116.162
- [tiamat] 133.1.116.211
sbシステム †
- [sb100] 133.1.116.165
はsb100システムのログインサーバーです。
ログイン方法 †
以下では"$"はコマンドプロントを表すと見てください。
初めてログインする際には †
$ passwd
を実行してパスワードを変更すること。
公開鍵の登録方法 †
鍵システムを利用してsshで通信する場合に用います。データを暗号化して通信するので、通信経路でデータが覗き見られない安全な通信手段です。
- ssh-keygenで秘密鍵(ファイルは通常 ~/.ssh/id_rsa )、と公開鍵(ファイルは通常 ~/.ssh/id_rsa.pub )を作成する。
- ローカルホストで以下を実行
ssh-keygen
デフォルトでは秘密鍵と公開鍵がそれぞれ .ssh/id_rsaと .ssh/id_rsa.pubの名前で保存される。
- 公開鍵をアクセス先のサーバーに追加登録する。(ファイルは通常 ~/.ssh/authorized_keys 公開鍵の前にアクセス元のIPアドレスを追加する必要がある。)
- 公開鍵を表示する。
cat id_rsa.pub
この内容の先頭にアクセス元(クライアント、smithなど)のIPアドレスを追加して、アクセス先の(リモートホスト、東大物性研のohtakaなど)の .ssh/authorized_keysに追加する。(スパコンセンターではwebページを通じて公開鍵を登録することが多い)
工学研究科の外部からログインする場合 †
工学研究科の外部からログインするには先ず工学研究科のゲートウェイサーバにログインし、さらにsmith/sb100にログインする必要があります。従ってゲートウェイにユーザーアカウントを持っている必要があります。持っていない方は管理者に問い合わせて下さい。ゲートウェイにユーザーアカウントを作成する場合、公開鍵の登録が必要となりますので準備しておいて下さい。
以下はポートフォワーディングしてsmithにログインする手順です。
コンパイル/実行環境の設定 †
- Fortranコンパイラ、cコンパイラはLinux標準のgfortran、gccの他、インテル社製のifort、iccを用いることができます。
intelコンパイラは多数のバージョンがあり、moduleを使用して意図的に制御します。
- 使用可能なモジュールのリスト出力
$ module available
- 古くからのユーザ向け
古いintelコンパイラ用の設定は以下のように
# source /home/opt/settings/2017.4/intel-compiler.sh
# source /home/opt/settings/2017.4/intel-mpi.sh
などとしてコメントアウト、あるいは削除する。
ジョブキューイングシステム †
- システムで計算を実行するには、計算したい内容をジョブスクリプトファイルに書いてジョブキューイングシステムに投入する必要があります。
- ジョブ管理システムはSGE(Sun Grid Engine)です。(OGS/GE 2011.11)
- ジョブは、指定したグループの空いている計算機に自動的に割り当てられて実行されます。
- 空きが足りない場合は、他のグループに空きがあっても実行されず、他のジョブの終了を待つことになります。
- 同じ能力を持つ計算ノードはクラスごとにまとめられています。ジョブ投入時にクラスを指定します。
設定上の重要な点 †
- .cshrcの中にcdのaliasが記載されている場合がありますが、削除しないとインテルFortran/MPIの初期設定でエラーが生じ正常に実行できません。削除してください。
複数ノードを用いた並列計算について †
- 用いるノード(コア)の数を増やすと自動的に並列度が上がりますが、ギガビットイーサネットで実装されているグループではあまり速くありません。ノード間通信を含む並列計算はあまり有効ではありませんのでご注意ください。INFINIBANDが実装されているグループでは並列計算の効率が向上することが期待されます。
ジョブの投入(実行)方法 †
- 実行にはキューと並列環境(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コラム目の数字です。
計算機グループと対応するキュー及び並列環境 †
- smith/rafikiからアクセス可能なノード群
グループ | プロセッサ | コア数/CPU数 | ジョブ投入サーバ | キュー | 並列環境 | ノード間並列ファブリック |
4 | Nehalem Intel(R) Xeon(R) W5590 @ 3.33GHz | 8/2 | smith | xe1.q | x8 | |
5 | Nehalem Intel(R) Xeon(R) W5670 @ 2.93GHz | 12/5 | smith | xe2.q | x12 | |
6 | Sandy-bridge Intel(R) Xeon(R) E5-2680 0 @ 2.70GHz | 16/2 | smith | xs2.q | x16 | |
7 | Ivy-bridge Intel(R) Xeon(R) E5-2667 v2 @ 3.30GHz | 16/2 | smith | xi1.q | x16 | |
10a | Haswell Intel(R) Xeon(R) E5-2680 v3 @ 2.50GHz | 24/2 | smith | xh1.q | x24 | infini-band |
10b | Haswell Intel(R) Xeon(R) E5-2680 v3 @ 2.50GHz | 24/2 | smith | xh2.q | x24 | infini-band |
13 | Broadwell Intel(R) Xeon(R) E5-2683 v4 @ 2.10GHz | 32/2 | smith | xb1.q | x32 | infini-band |
14 | Skylake Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz | 32/2 | smith | x17.q | x32 | infini-band |
15 | Cascade Lake Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz | 40/2 | smith | x19.q | x40 | infini-band |
16 | Cascade Lake Intel(R) Xeon(R) Gold 6230R CPU @ 2.10GHz | 52/2 | smith | x20.q | x52 | infini-band |
17 | Ice Lake xeon Gold 6338 CPU @ 2.00GHz | 64/2 | smith | x21.q | x64 | infini-band |
- sb100からアクセス可能なノード群
グループ | プロセッサ | コア数/CPU数 | ジョブ投入サーバ | キュー | 並列環境 | ノード間並列ファブリック |
7a | Nehalem Intel(R) Xeon(R) X3440 @ 2.53GHz | 6/1 | sb100 | all.q | x6 | |
7b | Sandy-bridge Intel(R) Xeon(R) E5-1650 | 6/1 | rl | all.q | x6 | |
- グループ7a, 7bにジョブを投入するときはsb100でqsubコマンドを実行してください。
- それ以外のグループにジョブを投入するときはsmithでqsubコマンドを実行してください。
- ジョブスクリプトの書き方については、下の各グループごとの説明中に「ジョブスクリプトファイルの例」で説明しています。
グループ4, 5 xeシステム †
- xeon CPUで構成される計算機グループで、x8, x12 の2 parallel_environmentからなります。各ノードは2CPU(計8または12core)で構成されています。
グループ7a sb100システム †
- スクリプトの例 (cshの場合)
- ハイブリッド並列(12コア確保、各ノードにプロセス確保、プロセスごと6-OMPスレッド)
#!/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
- フラット並列(12コア)
#!/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
グループ8 xsシステム †
グループ9 xiシステム †
グループ10a-d xhシステム †
- Haswell アーキテクチャーのXeon CPUで構成される計算機グループです。各ノードは2CPU(計24core)で構成されています。メモリは64GBです。
- グループ10内ではINFINIBANDによる並列計算が可能
- グループ11内ではINFINIBANDによる並列計算が可能
- AVX機能があり高速に計算できます。
- スクリプトの例(bashの場合)
グループ13 xbシステム †
- Broadwell アーキテクチャーのXeon CPU(Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz)で構成される計算機グループです。各ノードは2CPU(計32core)で構成されています。メモリは64GBです。
- スクリプトの例(bashの場合)
グループ14 x17システム †
グループ15 x19システム †
- Cascade LakeアーキテクチャーのXeon CPU(Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz)で構成される計算機グループです。各ノードは2CPU(計40core)で構成されています。
グループ16 x20システム †
- Cascade LakeアーキテクチャーのXeon CPU(Intel(R) Xeon(R) Gold 6230R CPU @ 2.10GHz)で構成される計算機グループです。各ノードは2CPU(計52core)で構成されています。
使用可能なキューの調べ方 †
- Yオプションなどを利用してsmithなどのログインノードへsshでログインします。ログインノード上で
qmon
を実行することでqmonのウィンドウが立ち上がり
Queue Control
を見ると使用可能なキュー名(qsubの-qオプション以降に指定するオプション)を
Parallel Environment
見ると並列環境(qsubの-peオプション以降に指定するオプション)を確認することができます。
コンパイル †
過去の情報は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