SCore 7 最新状況
PC Cluster Consortium 開発部会
堀 敦史

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

1!

SCore 7 開発キーワード• ほどほどに‒ 性能至上主義からの脱却‒ 3rd-party ライブラリの利用‒ 多少遅くなっても安定性、簡便さを優先• もっと簡単に，便利に，簡潔に‒ 設定ファイル不要，インストールに root 不要‒ 一体となったパッケージからツールの集合へ

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

2!

PMX ネットワーク• 新たなサポート‒ Inﬁniband
OFED‒ Myrinet/Myri10G
MX• Ethernet ‒ ３つの PMX デバイス
‒ PMX/SCTP
SCTP (Linux 標準) プロトコル‒ PMX/Ethernet ドライバ・パッチ不要‒ PMX/EtherHXB ドライバ・パッチ必要-高性能
上記３つは全て同時使用可能

2010年2月19日

第９回 PCクラスタ ワークショップ@京都3!

設定のオプション化• Scorehosts.db‒ 主にホストグループの記述（オプション）‒ 変更に際し，デーモンの再起動は不要• PMネットワーク設定ファイル‒ 従来の pm-ethernet.conf 等は全く不要• SCOUT‒ ssh 対応，並列化 => scoutd 不要=> ソフトをインストールするだけで SCore の実行が可能，ビルド，インストールに root 権限も不要
2010年2月19日

第９回 PCクラスタ ワークショップ@京都4!

ツールセット• SCoreの内部機能を別途ツールとして独立
Scorehosts ホストグループの指定
PAPI による計測（要カーネル）
デバッガのアタッチ
行単位でヘッダを付加
Catwalk
On Demand File Staging
Windup
リモートプロセス起動（ssh/rsh）

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

5!

ツールセットの応用例
コマンドの組み合わせ可能% scrun scratch ptrace ./a.out% scrun scratch valgrind ./a.out% scrun scratch papion ‒f ./a.out
これらは SCore 6 以前ではできなかった !!

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

6!

SCore 7 β5 の新機能	

SCore 7 β3 に加わった機能	

2010年2月19日

第９回 PCクラスタ ワークショップ@京都7!

メニイコアへの対応• CPUソケットの指定% scrun -nodes=8x2x4 ./a.out% scrun -hosts=64/2/4 ./a.out• プロセスとコアのバインディング% scrun -corebind=0x1:0x2:0x4:0x8 ./a.out• MPI と OpenMP のハイブリッド% scrun -openmp=4 ./a.out• NUMA に関しては現在研究中

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

8!

Catwalk ファイルシステム• eScience プロジェクト• Catwalk‒ On Demand File Staging• ステージングの記述が不要なので、記述を間違えない‒ Catwalk-ROMIO: MPI-IO インターフェイス• 既存の分散／並列ファイルシステムに独立なので、共存可能• root 権限不要なのでビルドするだけで利用可能
2010年2月19日

第９回 PCクラスタ ワークショップ@京都

9!

Catwalk の使い方 (1)	% cat > DIR/foo.dat!
% scout -g HOSTGROUP!
!scout は HOSTGROUP 上で動く並列シェル!
% scout cat DIR/foo.dat!
cat: DIR/foo.dat: No such file or directory!
% cd DIR!
% scout -catwalk DIR cat foo.dat!
!HOSTGROUP 上の各ホストで，サーバの DIR/foo.datを読むことができる	
2010年2月19日

第９回 PCクラスタ ワークショップ@京都

10!

Catwalk の使い方 (2)% catwalk -nh N mpirun catwalk a.out
サーバノード数	

クライアント% catwalk ‒path A:B:C ‒nh N ...
サーバのディレクトリ A,B,Cを順に探す

事前にコピーする必要がない	% catwalk ‒if ib0 ...
Inﬁniband を使う
2010年2月19日

第９回 PCクラスタ ワークショップ@京都

11!

Catwalk-ROMIO の使い方	
% catwalk –romio mpirun catwalk a.out!
!a.out で MPI_File_open( "catwalk:/xxx/yyy" ) とするとサーバの /xxx/yyy がアクセスされる!
server% catwalk –mpi –SSH comp32!
!Catwalk 環境と SSH port forwarding を設定し!
!comp32 に ssh でログイン!
comp32% mpirun catwalk a.out!
!server 上のファイルを MPI-IO でアクセス．!
2010年2月19日

第９回 PCクラスタ ワークショップ@京都

12!

Catwalk vs. NFS (1)• ひとつのファイルを各プロセスが 1/N 読む
NFS

Catwalk

2x1

2x164x48x1

8x1616x42x12x164x48x18x1616x42x44x14x168x416x1

16x162x44x1

4x168x416x1

16x16

20
Aggregate Bandwidth [MB/sec]

Aggregate Bandwidth [MB/sec]

20
16128400.8 1

10File Size [1000MB]

2010年2月19日

2016128400.8 11020File Size [1000MB]

第９回 PCクラスタ ワークショップ@京都

13!

Catwalk vs. NFS (2)	• 4x16 の各プロセスが 1GB のファイルを書込む際のサーバの負荷!
!

!

!

12030
8 MinutesInsensitive
Zone

60

15

Load Average (Left Y-Axis)

0

10time cat /proc/loadavg (Right Y-Axis)

0600

1200

2010年2月19日

1800Time [Sec.]

2400

3000

53600

0

Load Average (1 Min.)

25
20

20

1.2

Load Average (Left Y-axis)

80

40

Catwalk!
3"time cat /proc/loadavg" [Sec.]

100
Load Average (1 Min.)

!

2.5

12

0.8

1.5

0.6

Stage-OUT Phase

10.4

time cat /proc/loadavg (Right Y-Axis)
0.5
00.2

0600

1200

第９回 PCクラスタ ワークショップ@京都

1800

2400

3000

3600

"time cat /proc/loadavg" [Sec.]NFS

0Time [Sec.]

14!

Catwalk-ROMIO vs. PVFS2	
• Catwalk-ROMIO
サーバ１台
Ethernet (1 Gb/s)• PVFS2
サーバ４台
Myri10G (10 Gb/s)
nodes=16x16	

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

15!

Catwalk の内部	
リング分散プロセス構造!
並列アクセスを出来るだけ逐次アクセスに!
!→ シークを減らして高速化!
• Stage-IN!
– 対象ファイルを全てローカルディ
スクにコピー!
• Stage-OUT!
– 逐次全体コピー!
• MPI-IO Read!
– Stage-IN と同じ!
• MPI-IO Write!
– 並列書込要求を逐次書込に変換
2010年2月19日

第９回 PCクラスタ ワークショップ@京都

16!

OOM̲KILLER への対応
Linux でクラスタ運用する場合の大きな問題• OOM̲KILLER とは？
メモリ不足の時にカーネルが発動する「ロシアンルーレット」• OOM̲KILLER の対応‒ SCore の並列ジョブは、より OOM̲KILLER の対象となるように自動的に設定‒ これによりメモリが足りなくなってもノードが落ちる（使えなくなる）現象を回避
2010年2月19日

第９回 PCクラスタ ワークショップ@京都

17!

ファイナルリリースへ• 以下の機能を実装したらβを外す予定‒ One-sided 通信‒ ギャングスケジューリング
• 2010 年度中を予定

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

18!

eScience プロジェクト	
• 今回リリースに含まれるもの!
– STG，Catwalk !ファイルステージング!
– libioc !
!
!ファイル I/O のトレース!!
– MPI-Adapter!
!異 MPI 環境での互換性を保つ!
– Xabclib!
!自動チューニング数値 Lib.!
– Xcrypt!
!ジョブ投入スクリプト言語• 今後のリリースに含まれる予定のもの!
– XcalableMP!
!新並列プログラミング言語!

2010年2月19日

第９回 PCクラスタ ワークショップ@京都

19!