• 検索結果がありません。

第3回戦略シンポジウム緑川公開用

N/A
N/A
Protected

Academic year: 2021

シェア "第3回戦略シンポジウム緑川公開用"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

クラスタコンピュータを

メモリ資源として利用する

ソフトウエア分散共有メモリ技術とその応用

-情報科学科

緑川博子

第3回 私立大学戦略的研究基盤形成支援事業シンポジウム

2010年 5月15日

(2)

概要

• 

背景

– 

分散メモリシステムと共有メモリシステム

– 

クラスタコンピュータの台頭

– 

ネットワークの高性能化

– 

並列プログラミングモデル

• 

ソフトウエア分散共有メモリ

(SDSM)とは

• 

研究紹介

– 

ソフトウエア分散共有メモリシステム 

SMS

– 

並列プログラミング環境、並列言語

MpC

– 

逐次処理用の分散大容量メモリ 

DLM

(3)

スーパーコンピュータ世界の

Top500

におけるコンピュータアーキテクチャの変遷

Top 500 list of Supercomputers

(4)

世界トップ500スーパーコンピュータリストにおける


クラスタコンピュータの占める割合の変遷

Top 500 list of Supercomputers

(http://www.top500.org)

日本の学会誌おける最初のクラスタの紹介

(5)

並列コンピュータシステム

メモリアーキテクチャによる分類

分散メモリコンピュータ

共有メモリコンピュータ

SMP

Symmetric Multiprocessor

密結合

疎結合

クラスタ 

cluster

CPU間通信高速、CPU数に制限

CPU間通信低速、CPU数増やせる

ネットワーク結合

CPU

メモリ

バス結合

CPU

CPU

メモリ

CPU

メモリ

CPU

メモリ

CPU

(6)

ネットワークの性能向上

1990年代には100倍の性能向上

最近

10年でも20 50倍の性能向上

(KHUQHW  0ELWVHF )DVW(KHUQHW  0ELWVHF *LJDELW(KHUQHW  0ELWVHF*ELWVHF $70  *ELWVHF 0\ULQHW  *ELWVHF )LEHU&KDQHO  *ELWVHF ,QILQL%DQG  *ELWVHF ;6'5 *LJDELW(KHUQHW  *ELWVHF ,QILQL%DQG  *ELWVHF ;6'5 0\UL*  *ELWVHF ,QILQL%DQG  *ELWVHF ;''5 *ELWVHF ;6'5 ,QILQL%DQG  *ELWVHF ;4'5 *LJDELW(KHUQHW  *ELWVHF *LJDELW(KHUQHW  *ELWVHF ,QILQL%DQG  *ELWVHF ;('5

(7)

コンピュータクラスタ 


CPU

CPU

CPU

CPU

メモリ

メモリ

メモリ

メモリ

複数コンピュータをネットワーク結合�

分散メモリ並列コンピュータ�

ネットワーク�

それぞれメモリが分散しているので、�

他のノードのメモリの中にあるデータを読み書きできない�

(8)

コンピュータクラスタ


(分散メモリ並列コンピュータ)

CPU

CPU

CPU

CPU

メモリ

メモリ

メモリ

メモリ

普通のプログラムの書き方はできない�

コンピュータ同志でデータを送り合う必要がある�

メッセージパッシングプログラミングモデル

を用いる�

書き込み

読みだし

(9)

CPU

CPU

メモリ

共有メモリプログラミングモデルを使って�

プログラムは簡単に書ける�

data

バス

共有メモリ並列コンピュータ

a = 10

b = a

データ書き込み

データ読み込み

(10)

並列プログラムの書き方のモデル

CPU間のデータ交換方式で分類

すると2種類

1.  メッセージパッシング プログラミングモデル

   データのメッセージの送受信文で記述

   (記述例: 

send p0 a; receive p1 b; ) 

    

MPI (標準的なプログラミングインターフェース)

2.

 共有メモリプログラミングモデル

   共有データへの読み書き、代入文で記述

   (記述例:  

b=a; )

(11)

並列プログラミングモデル

メッセージパッシングモデル

P0

      

P1

int a; int a;

a=10;

send P1 a; recv P0 a;

共有メモリモデル

  

P0

     

P1

    

int a;

a=10;

局所データ 

a

しかない

データ送受信

 共有データ 

a

がある

同じデータで

も送受信が

必要

更新した値は

自動的に

全員に見える

(12)

並列プログラミングモデル

2変数使用時,bへのaの代入

メッセージパッシングモデル

P0

       

P1

int a=10; int b

send P1 a; recv P0 b;

共有メモリモデル

  

P0

     

P1

int a=10; int b;

       

b=a;

局所データ 

a,b

データ送受信

データ送受信文

大域データ 

データ代入文

a,b

データ代入文

プログラム

が煩雑で、

見にくい

(13)

分散メモリ

あたかも一つのメモリであるかのようにみせかける�

分散共有メモリ

コンピュータクラスタ

CPU

CPU

CPU

CPU

メモリ

メモリ

メモリ

メモリ

(14)

SMS

(ソフトウエア分散共有メモリ 

SDSM

CPU

CPU

CPU

CPU

メモリ

メモリ

メモリ

メモリ

従来のプログラムと同じようなプログラミングが可能�

ソフトウエア分散共有メモリ�

(15)

概要

• 

背景

– 

分散メモリシステムと共有メモリシステム

– 

クラスタコンピュータの台頭

– 

ネットワークの高性能化

– 

並列プログラミングモデル

• 

ソフトウエア分散共有メモリ

(SDSM)とは

• 

研究紹介

– 

ソフトウエア分散共有メモリシステム 

SMS

– 

並列プログラミング環境、並列言語

MpC

– 

逐次処理用の分散大容量メモリ 

DLM

(16)

概要

• 

背景

– 

分散メモリシステムと共有メモリシステム

– 

クラスタコンピュータの台頭

– 

ネットワークの高性能化

– 

並列プログラミングモデル

• 

ソフトウエア分散共有メモリ

(SDSM)とは

• 

研究紹介

– 

ソフトウエア分散共有メモリシステム 

SMS

– 

並列プログラミング環境、並列言語

MpC

– 

逐次処理用の分散大容量メモリ 

DL

(17)

P0

PCノード0

P1

P2

PCノード1

PCノード2

プロセスが協調してジョブを実行(メタプロセス)

プロセス

PCクラスタ

並列処理(ジョブ)とプロセスの関係

汎用ネットワーク

(18)

並列処理ジョブ(メタプロセス)

local

...

プロセスP1

プロセスP0

global

local

shared

global

Shared変数と階層データスコープ

一つのジョブを協力して行う

プロセス全体から読み書きできる

データのカテゴリを追加した

共有メモリプログラミングモデル

(19)

MpC言語

メタプロセスモデルを実現するための言語

•  C言語に最小限の拡張を施した言語

•  共有データ型 shared

   記憶クラス指定子に追加

auto|register|static|extern|typedef|

shared

•  データ分散割付指定

を導入した拡張C言語

(20)

分散共有メモリプログラミングモデル


並列言語 

MpC 

P0

shared int a;

int b;

main( ){

int c=10;

a=20;

}      

P1

shared int a;

int b;

main( ){

int c=10;

b=a;

}      

PCクラスタのような

分散メモリコンピュータ

でも、

共有メモリモデル

でプログラムが書ける

ネットワーク

(21)

MpCプログラム


  

SMSプログラム


pthreadプログラム

コンパイルコマンド例

mpcc 

prg.mpc -osms_prog –use sms

MpCプログラム

実行プログラム

共有メモリ並列マシン用

pthreadプログラム

Cプログラム

MpCトランスレータ

Cコンパイラ

実行プログラム

クラスタ用

SDSMプログラム

SDSM用のライブラリ

SMS, TreadMarks, JIAJIA

pthreadライブラリ

MpC コンパイラ

MpC 

コンパイラ

(22)

floyd : Shortest path search

node memory 128MB

クラスタにおける性能評価

MpC vs. OmniOpenMP (Score : RWCプロジェクト)

MpCは,他の共有メモリモデル (OmniOpenMP)に比べ, 実行時間が短い(高速)! 2倍の速度をもつノード間通信 (Myrinetで高速PM通信)を 用いた場合に比べても速い! クラスタのノード間通信 1GbpsのEthernet および2GbpsのMyrinet2000 の場合の実行時間の比較

H. Midorikawa, et al.: "The Performance Analysis of Portable Parallel Programming Interface MpC for SDSM and pthread", Proc. of IEEE/ACM Inter. Symp. on Cluster Computing and the Grid (CCGrid2005) ,Vol.2, pp.889-896

実行時間

(s

ec

)

(23)

ep

laplace

実行時間

(s

ec

)

実行時間

(s

ec

)

プロセス数(ノード数)

プロセス数(ノード数)

(24)

mm(nonblocking)

mm(blocking)

実行時間

(s

ec

)

実行時間

(s

ec

)

プロセス数(ノード数)

プロセス数(ノード数)

MpCは,

いずれのベンチマークに

おいても高速!

(25)

H. Midorikawa, et al.: "The Performance Analysis of Portable Parallel Programming Interface MpC for SDSM and pthread", Proc. of IEEE/ACM Inter. Symp. on Cluster Computing and the Grid (CCGrid2005) ,Vol.2, pp.889-896, (2005) 緑川他: “メタプロセスモデルに基づくポータブルな並列プログラミングインターフェースMpC”,       情報処理学会論文誌コンピューテイングシステム,Vol.46 No.SIG4(ACS9), pp.69-85,(2005)

NPB3.0の複数のベンチマークプログラムの

逐次プログラムに対する


各種

API(言語)で書かれた並列プログラムの平均有効行数増加率

逐次プログラムに比べ、 MpCは,プログラム行数が 7%程度しか増加しない より簡単に記述が可能! メッセージパッシングモデル は逐次プログラムに比べ、 74%もプログラム行数が増加

(26)

概要

• 

背景

– 

分散メモリシステムと共有メモリシステム

– 

クラスタコンピュータの台頭

– 

ネットワークの高性能化

– 

並列プログラミングモデル

• 

ソフトウエア分散共有メモリ

(SDSM)とは

• 

研究紹介

– 

ソフトウエア分散共有メモリシステム 

SMS

– 

並列プログラミング環境、並列言語

MpC

– 

逐次処理用の分散大容量メモリ 

DLM

(27)

•  64bitOSの普及⇒ 巨大アドレス空間が利用可能

      

        (

x86_64 現実装  → 48bitアドレス 256TB)

  大規模データを利用する応用に恩恵

     (バイオインフォマティックス、データベース、新応用)

48bit (256tebibytes)

56bit (64pebibytes)

64bit (16exbibytes)

動機大きなアドレス空間を活かす


大規模データ処理への期待

(28)

DLM

( Distributed Large Memory)

ランタイムシステムの構成

Memserv Process Memserv Process Cal Process Cal Thread Com Thread Memserv Process memhost2 memhost1

memhost3 calhost

メモリサーバーホスト

計算ホスト

calhost 2048 // 2GB

memhost1 8192 // 8GB

memhost2 4096 // 4GB

memhost3 4096 // 4GB

memhost4 4096 // 4GB

   

:

設定ファイル例:

hostfile

コマンド実行例 

usr_prog args -- -n 4 –f

hostfile

DLMページサイズ : OS管理ページサイズの整数倍の自由な値

DLMページサイズ

(29)

DLM プログラム例1

(行列ベクトル積

matv.c)

#include <stdio.h> #include <dlm.h>

#define N 16384 // total memory 231B + 215 B, 約2GiB

dlm double a[N][N], x[N], y[N]; // DLM使用

int main(int argc, char *argv[]) { int i,j;

double temp;

// 行列aを初期化

for ( i = 0; i< N; i++)

for ( j = 0; j<N; j++) a[i][j] = i; //  ベクトルxを初期化 for (i = 0; i < N; i++) x[i] = i; // a[N][N]*x[N]=y[N] 計算 for(i = 0; i < N; i++){

temp = 0;

for(j = 0; j<N; j++) temp += a[i][j]*x[j]; y[i] = temp; } return 0; }

dlm宣言

宣言されたデータはローカルメモリが

足りない時、遠隔メモリに展開される

DLM宣言しないデータは

従来通りローカルメモリ

のみが使用される。

従来同様、ユーザは逐次プログラム

を書くだけ!

実際には並列プログラム

(計算プロセス+メモリサーバプロセス)

として稼働

コンパイルコマンド例

dlmcc

matv.c -omatv

(30)

性能評価実験環境 

10GbEthe結合クラスタ

10GbEther結合クラスタ(CSLM) (swap領域 10GB)

Cluster HP DL585 G2 x 5 Nodes

Node CPU Opteron 2.8GHz x 4 (8Cores)

Node Memory 64GByte(64GiB)

PCI bus 64bit/100MHz PCI-X, PCI-Expressx4 PCI-Expressx8

OS Linux kernel 2.6.9-42 x86_64

Compiler gcc version 3.4.6

Network 10GbEthernet protocol

NIC Myri-10G

Switch Fujitsu XG1200(10GbE Switch)

Hard Disk

SAS 147GB 10krpm 2台RAID1  Smart array 5i HP 431958-B21 (SAS 147GB, 10krpm,

TransRate 300MBps, seektime 4(Ave),8.1(Max)ms)

CSLM: 理化学研究所 次世代計算科学研究開発プログラム所有のクラスタ

op4 6000 // 60GB

op3 6000

hostfile

通信方式

TCP socket 使用

(31)

SwapDisk使用時に対するDLM速度向上比


  

10GbEthernet結合, 64GBMemory,10GBswap領域

行列ベクトル積 

matv.c

67.1GB 64GiB

速度向上比1

物理メモリちょうどくらいで、

DiskとDLM(2台)は同等性能

物理メモリに対するswap使用比が 15%程度で, DLM性能はハードディスク使用時性 能の10倍を超える 物理メモリに対する swap使用比が3%程 度でも, DLM性能は 3倍高い 緑川他:“分散大容量メモリシステムDLMの設計とDLMコンパイラの構築”, 信学技報 Vol.102, No.398, pp.29-34, 2007

(32)

SwapDisk使用時に対するDLM速度向上比 


  

1GbEthernet結合, 1GBMem, 4GBswap

行列ベクトル積 

matv.c

物理メモリに対するswap使用比が 160%程度で, DLM性能は9.5倍高速 物理メモリに対するswap使 用比がそれ以上になると DLM性能は4.5∼5.5倍高速 緑川他: “分散大容量メモリシステムDLMの設計とDLMコンパイラの構築”, 信学技報 Vol.102, No.398, pp.29-34, 2007

(33)

0 50 100 150 200 250 300 350 400 1024 512 256 128 64 32 16 8 4 Ra te M B /s ec DLM Page Size (KB)

Array Size:100M (2.4GBytes) 8% LocalMemory/Total memory Copy Scale Add Triad

DLM利用時の 遠隔メモリバンド幅 


(STREAM Benchmark)

380MB/sec

~ 40MB/

sec

DLM ページサイズ

1MB ~ 4KB

他の研究:

ネットワークブロックデバイス

によるスワップデバイス交換方式

• Panda[2005]らの研究 

InfiniBand,RDMA,メモリ登録

119MB/s

• 後藤ら[2006]の研究

10Gb Ethernet,専用NIC,RDMA

131MB/S∼204MB/s

特殊な通信方式やハードウエアを用いた従来研究に比べ, ユーザレベルソフトウエアと汎用通信プロトコルのみで、 DLMは、他研究より高速!

(34)

最悪時でも

35倍の実行時間

DLMページサイズ 4KBのとき)

後藤ら

[2006]の研究(10GbE,専用NIC,RDMA):

ローカルメモリ率17%で

55倍低下(ページサイズ128KB)

通常プログラム

(ローカルメモリのみ使用

)

に対する

DLMプログラム

(遠隔メモリも使用)

の相対実行時間

Himeno Benchmark(Large)

ローカルメモリ

が全データの

8%

であっても

DLMページサイズ1MB

5

倍の実行時間ですむ

H.Midorikawa et al. : "DLM: A Distributed Large Memory System using Remote Memory Swapping over Cluster Nodes", Proc. of IEEE Cluster2008 pp.268-273, (2008-09)

緑川他:"遠隔メモリを利用する分散大容量メモリシステムDLMの設計と10GbEthernetにおける初期性能評価",      情報処理学会論文誌コンピューティングシステム, Vol.1, No.3, pp.136-157(2008) DLM利用により, 5倍程度の実行時間低下で, 10倍以上のメモリサイズが利用可能 ユーザレベルソフトウエアと 汎用通信プロトコルのみで、 DLMは、他研究より高速!

(35)

DLM-MPI

汎用オープンクラスタ向けシステム

•  MPIバッチキューイングシステムで利用可能なDLM

–  可搬性,可用性 の向上

–  高性能なクラスタを、少ない資金で多くの人が手軽に利用可能

  (従来、クラスタに縁のない逐次プログラムユーザにも恩恵)

–  通信媒体から独立な通信方式 MPI を採用

  (様々なネットワーク:

Ethernet, InfiniBand, Myrinet

   などでも利用可

)

 オープンクラスタ 

2システムで稼働実験済み

–  T2K-Tokyo (ノード間 Myri-10G x 4本 40Gbps)

–  T2K-Tsukuba (ノード間 InfiniBand 64Gbps)

(36)

!"#䉲䊮䊘䉳䉡䊛䈧䈒䈳"$$%

!"#$%&'($)*&'+,-.&*/'+

᧲੩ᄢቇ᭴ᚑ 䋨ᣣ┙䋩

!"#䉲䊮䊘䊘䊘䊘䊘䊘䊘䊘䊘䊘䊘䊘䉳䉡䊛䈧䈒䈳"$$%

!"#$%&' ! ()*

+,&-.

! /01234$,'

5&6$78 ! 9/"2:

3;44<:='&>?=$# @#?&7>$##&>? A$7"/*B"#$%&'C D01E:F'&>"G"/"H 9*1E:F'&>"G"9 3;44<:='&>?=$#"@#?&7>$##&>? A$7")/*"#$%&'C"*I)2:F'&> J?$7-K&"J8'?&6 /"L:M""/)E:F'&>

インターコネクト

Myri-10G x 4本 /node

Node間 40Gbps x双方向

4CPUs(16コア)/node 

(AMD Opteron8356)

メモリ 

32GB/node

8nodes メモリ 128GB/node

Top500 45位 (日本3位) Nov. 2009

システム図:朴泰祐:T2Kシンポジウムつくば2008 資料 http://www.ccs.tsukuba.ac.jp/workshop/t2k-sympo2008/

(37)

Kernel Code

STREAM

COPY a(i) = b(i)

SCALE a(i) = q*b(i)

ADD a(i) = b(i) + c(i)

TRIAD a(i) = b(i) + q*c(i)

DLM-MPI: MPI-MX

493MB/s (Myri-10G x2)

613MB/s(Myri-10G x4)

DLM-socket: TCP/IP

EthernetonMyri-10G x 1

380MB/s

(38)

DLM Himeno benchmark

さらに大きなサイズでも稼働

XLARGE (

112GB

) 179.4MFLOPS,

Relative Time 2.32 ( based on the time in Elarge,15GB)

float  1025 x 1025 x 2049

20GB/node x

6 nodes 

Local memory ratio

17.4%

Bonding = 4

XLARGE-d (

241GB

)88.8 MFLOPS,

Relative Time

4.68

( based on the time in Elarge,15GB)

double1025 x 1025 x 2049

20GB/node x

12nodes

Localmemory ratio

8.1%

(39)

!"#$%&'($)*&'+,-.&*/'+

╳ᵄᄢቇ᭴ᚑ

01&&+- 2$3+45$64&4(7

!"#$%&' ! ()* +,&-. ! /0"123$,' 4&5$67 ! 89"1: ;<$6-=&";7'<&5 *99"1:>""?8@:A'&B 2C33D:E'&B<E$#"F#<&6B$##&B< 0G8"1:A' 4&5$67 ! 89"1: 2C33D:E'&B<E$#"F#<&6B$##&B< 0G8"1:A'

インターコネクト

InfiniBand

4x DDR 4本 /node

Node間 64Gbps x双方向

4CPUs(16コア)/node

 (

AMD Opteron8356)

メモリ 

32GB/node

Top500 56位 (日本6位)Nov. 2009

システム図:朴泰祐:T2Kシンポジウムつくば2008 資料 http://www.ccs.tsukuba.ac.jp/workshop/t2k-sympo2008/

(40)

DLM-M

マルチクライアント向け

DLM

 ( メモリーサーバプロセス常駐型 )

–  計算プロセス

•  計算スレッド(クライアント)

•  通信スレッド

–  メモリサーバ

•  サーバメインプロセス

•  複数の処理プロセス

–  ノード間通信

•  ネットワークに汎用の


TCP/IPソケットを利用

計算プロセス 計算 スレッド 通信 スレッド 計算ノード2 計算プロセス 計算 スレッド 通信 スレッド 計算ノード1 メモリ サーバ プロセス 処理プロセス メモリ サーバ プロセス 処理プロセス メモリ サーバ プロセス 処理プロセス メモリサーバ1 メモリサーバ2 メモリサーバ3 2 2 2 1 1 1 ユーザの実行する
 プログラム

(41)

計算プロセス 計算
 スレッド 通信
 スレッド 計算ノード1 管理
 プロセス 管理ノード 計算プロセス 計算
 スレッド 通信
 スレッド 計算ノード2 処理プロセス メモリサーバ1 1 状況報告
 スレッド メモリサーバ
 スレッド 処理プロセス メモリサーバ2 1 2 状況報告
 スレッド メモリサーバ
 スレッド 処理プロセス メモリサーバ3 2 状況報告
 スレッド メモリサーバ
 スレッド メモリサーバ
 プロセス メモリサーバ
 プロセス メモリサーバ
 プロセス

自動メモリサーバ割り付け

DLM fora Cluster on LAN

負荷分散、ユーザ利用環境の向上

Clients

(42)

WAN

WAN結合クラスタ群 

InTrigger

http://www.intrigger.jp/

•  オープンコンピュータシステム群

–  インタラクティブな利用環境

–  ユーザアカウント共通

–  WAN環境(

全国

17大学サイト, 21 クラスタ

)  2010年5月現在

        構成図2008年6月現在 (11組織 319ノード/848コア)

      田浦: Intrigger : オープンな情報処理・システム研究プラットフォーム ,  

(43)

Client User

User Program

DLM-WAN Admin

Group of Clusters 

(WAN)

Cluster(LAN) ・・・ DLM-LAN Admin Memory Server Calculate Node

自動クラスタ割り付け

メモリサーバ・計算ノード割り付け

DLM forClusters on WAN

Cluster(LAN) ・・・ DLM-LAN Admin Memory Server Calculate Node Cluster(LAN) ・・・ DLM-LAN Admin Memory Server Calculate Node

(44)

Thank you!

関連研究の論文・発表資料などは

以下を参照ください

参照

関連したドキュメント

Recent developments in neuroimaging methodologies have increased our understanding of neuropsychological functions and networks, and have shown that the right frontal lobe

CIとDIは共通の指標を採用しており、採用系列数は先行指数 11、一致指数 10、遅行指数9 の 30 系列である(2017

区分 項目 内容 公開方法等 公開情報 地内基幹送電線に関する情報

定可能性は大前提とした上で、どの程度の時間で、どの程度のメモリを用いれば計

実習と共に教材教具論のような実践的分野の重要性は高い。教材開発という実践的な形で、教員養

・Syslog / FTP(S) / 共有フォルダ / SNMP

( 内部抵抗0Ωの 理想信号源

区分別用途 提出の有無 ア 第一区分が半分を超える 第一区分が半分を超える 不要です イ 第一区分が半分を超える 第二区分が半分以上 提出できます