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

Second-semi.PDF

N/A
N/A
Protected

Academic year: 2021

シェア "Second-semi.PDF"

Copied!
48
0
0

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

全文

(1)

PC クラスタ潜在性能を

引き出すためには?

2000年2月18日(金)

第2回ソフテッククラスタセミナー

(2)

Agenda

• ソフテックPC クラスタの紹介 • クラスタシステムの性能 • 最適な線形計算ライブラリの利用 • 最適なクラスタ間通信ソフトウェアの利用 • ベンチマークによる最適化クラスタシステムの性能 評価 • まとめ

(3)
(4)

今が「旬」な

Linux OS

• ライセンス費用の負担がほとんどない • UNIX互換のOSである • ソースが公開され、カーネルのカスタマイズが可能 • フリーソフトウェアが充実 • 商用ソフトウェアもLinux対応版が増えてきた • 主要ハードウェアベンダがLinuxを正式サポート 今がまさに「旬」なOSであり、皆が興味を持っている

(5)

HPC分野における計算機事情

• 1世代前は、高性能プロセッサを搭載していたベ クトル型スーパーコンピュータが主流。

l 高性能化した汎用プロセッサを多数搭載した超

(6)

Beowulf タイプのPCクラスタ

• 一般的に入手可能な部品で構成できる(PC) • PCのCPU(PentiumⅢ)でもその性能は型落ち スパコンレベル • 安価でクラスタを構成することが可能かつ、価格性 能比が非常に高いシステムを容易に構築できる Beowulf: ベオウルフと読みます。 カリフォルニア工科大学の研究者で、NASAのゴダート宇宙センターの研究者であるTomas Sterling氏 とDonald Becker氏の2名が提唱したプロジェクト名で、一般に入手可能な製品を組み合わせて、コスト パフォーマンスの高い複数台のコンピュータ(PCクラスタなど)を形成し、スーパーコンピュータ並の計算 性能を出せるように、最適化したシステムを総称する言葉として使われています。 さらに並列対応の開発環境、通信ライブラリ、並列対応数値計算ライブ

(7)

PCクラスタへの疑問・不安

• 本当に実用的な並列処理ができるのか? • 既存のアプリケーションが正しく動作するのか? • 本当に性能が出るのか? • ハードウェアの組み立て・OS設定が面倒では? ユーザーの希望していることは単純明快

「本当に使えるクラスタシステムが欲しい

!!」

(8)

ソフテックの提供する

Linux Cluster システム(1)

l l Level 1: Level 1: ソリューションのご提供(フルセット)ソリューションのご提供(フルセット) – ハード・OS・通信ミドルウェア・開発ツール – 導入、運用支援 – 基本的な並列計算に関わるテクニカルサポート l l Level 2: Level 2: ソフトウェア・技術提供サービスのご提供ソフトウェア・技術提供サービスのご提供 – ハードはユーザーが選択 – 通信ミドルウェア・開発ツールを提供 – 並列計算に関わるテクニカルサポート

(9)

ユーザーの使用用途、アプリケーションの特性を ヒアリングし、最適なシステム&ソリューションを ご提案します ユーザーの使用用途、アプリケーションの特性を ヒアリングし、最適なシステム&ソリューションを ご提案します

ソフテックの提供する

Linux Cluster システム(2)

l l Level 3: Level 3: 高効率な並列計算高効率な並列計算((処理処理))を実現する技術を実現する技術 のご提供 のご提供 – ユーザーは、既存のマシンを利用 – 通信ミドルウェア・開発ツールも既存品を利用 – 並列計算(処理)に関わる最適化実現のためのコンサル テーション

(10)

導入事例

(国立大学 大学院研究室 ) SofTek PC Cluster 1350 SofTek PC Cluster 1350--324324 (24 node) (24 node) Spec Spec CPU: Pentiumlll 500MHz * 24 RAM:12GB

Network: Fast Ethernet(100BaseTX) Peak Performance: 13.6GFlops OS: LASER5 Linux6.0 (kernel 2.2.5) Compiler: PGI CDK

Programming Model: C/C++, F77,f90,HPF

(11)
(12)

クラスタシステムの性能

• Beowulf type クラスタシステムの導入は確かに 簡単であり、それなりの性能も得ることが可能 • 更に性能向上を図ることが可能であるか? • 性能向上の妨げとなる要因を特定し、改良を加 えることが性能向上のために不可欠 1. メモリアーキテクチャ、特にキャッシュメモリの活用 2. クラスタ間通信のオーバヘッドの低減

(13)

メモリアーキテクチャの重要性

Memory Cache Processor Onchip Cache Processor Memory フォン・ノイマン・ボトルネック    =メモリからのデータ供給 データ授受のbottleneck 16K-32KB 128K∼4MB キャッシュの活用 演算能力に見合う だけのデータ供給 ができない

(14)

キャッシュの効果(

一時キャッシュ)

0 20 40 60 80 100 120 140 160 0 4 8 12 16 20 24 28 32 データサイズ (KB) Mflop/s 1st Cache=16KBの時 急激に性能低下 Pentium II 300MHz

(15)

キャッシュの効果(

二次キャッシュ)

0 10 20 30 40 50 60 70 80 90 100 0 128 256 384 512 640 768 896 1024 1152 データサイズ(KB) Mflop/s 急激に性能低下 2nd Cache=512KB Pentium II 300MHz キャッシュ外

(16)

• キャッシュミスが増加するようなメモリ参照パター ンの排除 • キャッシュに収まり切れないデータサイズの参照 の排除 • 科学技術計算などでは、性能に大きな影響を及 ぼす、計算ライブラリ等がキャッシュを考慮する 必要がある

キャッシュを生かすシステム

(17)

Linpack LAPACK ScaLAPACK PBLAS BLACS PVM/MPI.. BLAS BLAS Opt. BLAS 1CPU 1CPU/SMP 分散メモリ型 ATLAS

ASCI-Red Parallel BLAS

Basic Linear Algebra Communication Subprogram 分散メモリ並列対応 機能の標準化 共通のI/Fの提供 性能は? サブルーチン群の 性能最適化を考慮 Block Algorithm 性能最適化

Basic Linear Algebra Subprogram

通信系のI/F

Cache最適化

(18)

V V V + * M V * V M M M M * + Level 1 BLAS Vector-Vector Operations Level 2 BLAS Matrix-Vector Operations Level 3 BLAS Matrix-Matrix Operations S

BLAS Level毎の特性

(19)

Level 1 BLAS y = y + s * x Operation Level 2 BLAS y = y + A* x Operation Level 3 BLAS C = C + A*B Operation Memory

参照回数 演算回数(FLOP) FLOPs/MemRatio

3n 2n 2/3

n

2

2n

2

2

4n

2

2n

3

n/2

メモリ参照の回数を減らすことが重要 大きいほど 性能最適化 が可能 キャッシュ内 での演算の可 能性が高くなる

BLASの計算、性能特性の関係

(20)

50 100 150 200 250 100 200 300 400 500 MFLOPS Level 3 BLAS Level 2 BLAS Level 1 BLAS

BLASの性能(予測値)

PentiumIII 500MHz を仮定

(21)

Matrix Size (N x N)

Source+ATLAS(BLAS) Source coding Source+BLAS

1CPU性能:PentiumIII (500MHz) 0 50 100 150 200 250 300 350 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 Mflop /s LAPACK (BLAS 3) Linpack (BLAS1) ATLAS BLAS Normal BLAS ASCI-Red BLAS

LU分解の性能(Linpack &LAPACK)

PGI compiler使用

(22)

まとめ(

線形計算ライブラリ)

• Linpack : Level 1 BLASを使用

: ユーザのCoding Styleに近い : Cache外アクセスで性能劣化

• LAPACK : Level 3 BLASを使用

: Block algorithmによりCache内

アクセスの確率が増すが、限界あり

BLASのCache最適化の必要性

• ATLAS (Automatically Tuned Linear Algebra Software) [1] • ASCI-Red BLAS[2]

BLASのCache最適化の必要性

• ATLAS (Automatically Tuned Linear Algebra Software) [1]

(23)

通信の重要性

• クラスタシステムにおける通信は、クラスタの性 能に多くの影響を及ぼす

• 通信において必要な性能指標

– latency small messagesの通信に係る

– throughput large messagesの通信に係る

– scalability compute nodeの数に係る

• コストをかければGigabit級の通信デバイスも利 用可能だが、コストに見合う性能が出せるのか?

(24)

TCP/IPベースの通信の現状(1)

• Socket I/F及びTCP/IP プロトコルは、プロトコル 処理とインタフェース処理がマルチレイヤレベル で行われ、プロトコル処理においてはwindowに 基づくフロー制御を行っているため、パケットの ack及びcheck sum処理に多くのCPUを消費する • TCP/IPスタック上の一連の処理を効率的に行う ため、カーネルバッファ領域を使用したデータチェ インニングを絶えず行うため、メモリ管理(mbuf) が複雑であり、特にスモールTCPパケットの処理 は、多くのCPUリソースを使用する

(25)

• パケットのMTU(Ethernet:1500byte)が小さい

ためにlarge packetに対しては、OS interrupt

のオーバヘッドが生じる

• ユーザ領域とカーネル領域間のデータコピー処

理に多くの時間を消費する

(26)

IP処理 Program USER Space Kernel Space NIC Data Link処理 ユーザメモリ領域 カーネルメモリ領域 Memory Copy Packet Xfer TCP/UDP +header+Descripter 作成 system call NICメモリ領域 割込み オーバヘッド Program 通信処理 ユーザメモリ領域 カーネルメモリ領域 Packet Xfer system call NICメモリ領域 専用ドライバ ポーリング TCP/IP 専用通信

通信オーバヘッドの低減

カーネルを経由しないユーザレベル通信によって 通信オーバヘッドを回避できる!

(27)

提案されている通信ソフトウェア

• 低遅延通信ソフトウェアの実装必要要件 – 複数の処理に対して物理的なネットワーク(NIC)を共 有できること – 同時に複数のプロセスでネットワークを使用する状況 において、それぞれをプロテクトできること – カーネルオーバヘッドを削減すること – ユーザ標準APIを提供できること

• M-VIA (Linux用VI Architectureの実装) • GAMMA (Linux用Active Messageの実装)

M-VIA, GAMMA共に上位ソフトウェアとしてMPIを提供

(28)

M-VIA

(A High Performance Modular VIA for Linux)[3]

• VI Architecture に完全準拠

• 独自APIによる低通信レイテンシ、高スループット を実現

• 対応NIC:DEC Tulip (DC21*4*, 21143含む) chip, Intel i8255x (for x=7, 8 or 9) chip,

Packet Engines GNIC-I, GNIC-II Gigabit Ethernet

(29)

MVICH

[4] • VI Architecture上で動作可能なMPI • 現在MPICH 1.1.2に対応 • 現在初期バージョン(0.0.3)のリリースのため、 bsend, pack/unpack等が使えない制限あり • M-VIAと同様に低通信レイテンシ、高スループッ トを実現

(30)

性能比較 (

通信レイテンシ)

0 50 100 150 200 250 300 0 128 256 384 512 640 768 896 1024

latency (1/2 Round Trip Time) (μs)

MPICH socket(TCP) MVICH M-VIA

128byteでMPICH と比べMVICHは 1.9倍の高速化

評価環境:Pentium III 500MHz×2, Memory 384MB, Intel EtherExpress Pro/100 NIC, 100Base Switching Hub, Linux 2.2.13

(31)

性能比較 (

通信スループット)

0 2 4 6 8 10 12 32 64 128 256 512 1K 2K 4K 8K 16K 32K 64K 128K 256K

message size (byte)

Througput (Band width) (Mbyte/s)

MPICH socket(TCP) MVICH(M-VIA) M-VIA 4KbyteまでMPICHと 比べMVICHは平均34%、 最大139%(32byte)の スループット向上

(32)

GAMMA

(Genoa Active Message Machine) [5] • “communication handlers” という低レベルのネッ トワークデバイスへのアクセス機能を、ユーザプ ログラムで扱える Active Messages [7]ライブラリを 提供 • 独自APIによる低通信レイテンシ、高スループット を実現 • 対応NIC:DEC Tulip (DC21*4*, 21143含む) chipsets, Intel i8255x (for x=7, 8 or 9)

(33)

MPI/GAMMA

[6]

• GAMMA上で動作可能なMPI • 現在MPICH 1.1.2に対応

• Fast Ethernetを用いたMPIの中で現在最良の性 能(低通信レイテンシ、高スループット)を発揮

(34)

0 50 100 150 200 250 300

latency (1/2 Round Trip Time) (μs)

MPICH socket(TCP) MPI/GAMMA GAMMA

評価環境:Pentium III 500MHz×2, Memory 384MB, DEC DC21143 NIC, 100Base Switching Hub, Linux 2.2.13

128byteでMPICH と比べMPI/GAMMA は3.1倍の高速化

(35)

0 2 4 6 8 10 12 32 64 128 256 512 1K 2K 4K 8K 16K 32K 64K 128K 256K

message size (byte)

Througput (Band width) (Mbyte/s)

MPICH socket(TCP) MPI/GAMMA GAMMA 8KbyteまでMPICHと 比べMPI/GAMMAは 平均49%、最大404% (32byte)のスループット 向上

性能差 (

通信スループット)

(36)

0 50 100 150 200 250 300 0 128 256 384 512 640 768 896 1024

message size (byte)

latency (1/2 Round Trip Time) (μs)

MPICH socket(TCP) MVICH M-VIA MPI/GAMMA GAMMA

総合性能比較 (

通信レイテンシ)

IPレイヤを介さない通信ソフトウェアで低レイテンシを実現 IPレイヤを介さない通信ソフトウェアで低レイテンシを実現

(37)

0 2 4 6 8 1 0 1 2 32 64 128 256 512 1K 2K 4K 8K 16K 32K 64K 128K 256K m e s s a g e s i z e ( b y t e )

Througput (Band width) (Mbyte/s)

M P I C H socket(TCP) M V I C H ( M - V I A ) M - V I A M P I / G A M M A G A M M A IPレイヤを介さない通信ソフトウェアで高スループットを実現 IPレイヤを介さない通信ソフトウェアで高スループットを実現

総合性能比較 (

通信スループット)

(38)

まとめ

(通信)

• Fast Ethernetベースの通信においても、適切な通 信ソフトウェアの利用で、通信性能向上が可能 • 通信のAPIとしてMPIが汎用的に使用可能 • GAMMA、MPI/GAMMAを用いるとFast Ethernet の持つ最大性能近くまで、性能を発揮できる • 特にメッセージサイズが小さい時に、通信レイテン シを大幅に減少可能(Gigabit級の通信デバイス に匹敵) コモディティなFast Ethernet ベースの通信は コモディティなFast Ethernet ベースの通信は

(39)

• ScaLAPACK(ScalLable Linear Algebra PACKage) は、線形計算ライブラリLAPACK の並列版 • PGI CDKで提供されるScaLAPCKを用いた並列計 算機向けLU分解プログラムxdlutime [8]を利用 • Pentium III用にATLASを用いて最適化された BLAS及び、ASCI-Red BLASを適用 • ScaLAPACKの下位で呼び出されるMPIとして、 MPICH(p4)及び、MPI/GAMMAを適用 • 台数効果及び、BLASの違い、MPIの違いによるク ラスタ性能を測定

ScaLAPACKを用いたクラスタ性能測定

(40)

評価環境

• Pentium III 500MHz×4, Memory 256MB, DEC

DC21143 NIC, 100Base Switching Hub, Linux 2.2.13 • 各ノード(CPU)への行列の割り当て:2×2 • 1回当たりの計算単位:64×64のブロック N N cpu1 cpu2 cpu3 cpu4 64 64

(41)

ScaLAPACK 性能比較(台数効果)

0 100 200 300 400 500 600 700 800 900 0 500 1000 1500 2000 2500 3000 3500 4000 4500 matrix size Mflop/s 1cpu- Normal-BLAS 1cpu-Atlas 1cpu-ASCI 2cpu-Atlas-p4 2cpu-ASCI-p4 4cpu-Atlas-p4 4cpu-ASCI-p4 Matrix size 2000 ASCI-red, MPI/GAMMA

cpu Mflop/s scalability

1 284 1

2 448.65 1.6

(42)

ScaLAPACK 性能比較(通信による差異)

0 100 200 300 400 500 600 700 800 900 Mflop/s 1cpu-ASCI 2cpu-ASCI-p4 2cpu-ASCI-gm 4cpu-ASCI-p4 4cpu-ASCI-gm ASCI-MPICHと比べ ASCI-MPI/GAMMAは 平均4%、最大79% (size 100)の性能向上

(43)

性能差の同定

1(性能デバッガ利用例)

VAMPIR&VAMPIRtraceによる性能デバッグ

MPICH

(44)
(45)

性能差の同定

3(タイムライン分析)

(46)

総合性能比較

4台で850Mflop/s達成 0 100 200 300 400 500 600 700 800 900 Mflop/s 1cpu-Normal BLAS 1cpu-Atlas 1cpu-ASCI 2cpu-Atlas-p4 2cpu-ASCI-p4 2cpu-Atlas-gm 2cpu-ASCI-gm 4cpu-Atlas-p4 4cpu-ASCI-p4 4cpu-Atlas-gm 4cpu-ASCI-gm

(47)

まとめ

• 適切な線形計算ライブラリを利用することで、ス ケーラブルな性能を得ることが可能 • 適切な通信ソフトウェアを利用することで、更に 性能向上を図ることが可能 • ユーザプログラムの性能を最大限引き出すため には、性能ボトルネックを見極め、それに適切に 対処することが必要である 高価なシステムの導入よりもユーザプログラムへの 適切な対処で高性能を図れる! 高価なシステムの導入よりもユーザプログラムへの 適切な対処で高性能を図れる! ソフテックは本当に使えるクラスタシステムを提供します

(48)

参考

[1] http://www.netlib.org/atlas/ [2] http://www.cs.utk.edu/~ghenry/distrib/archive.htm [3] http://www.nersc.gov/research/FTG/via/ [4] http://www.nersc.gov/research/FTG/mvich/index.html [5] http://www.disi.unige.it/project/gamma/ [6] http://www.disi.unige.it/project/gamma/mpigamma/ [7] http://now.cs.berkeley.edu/AM/active_messages.html [8] http://ie.korea.ac.kr/~supercom/software/

参照

関連したドキュメント

[r]

多核種除去設備等の サンプルタンク ALPS処理⽔等貯留タンク または ALPS

 実施にあたっては、損傷したHIC排気フィルタと類似する環境 ( ミスト+エアブロー ) ※1 にある 排気フィルタ

「JSME S NC-1 発電用原子力設備規格 設計・建設規格」 (以下, 「設計・建設規格」とい う。

原子炉建屋から採取された試料は、解体廃棄物の汚染状態の把握、発生量(体 積、質量)や放射能量の推定、インベントリの評価を行う上で重要である。 今回、 1

竣工予定 2020 年度 処理方法 焼却処理 炉型 キルンストーカ式 処理容量 95t/日(24 時間運転).

処理処分の流れ図(図 1-1 及び図 1-2)の各項目の処理量は、産業廃棄物・特別管理産業廃 棄物処理計画実施状況報告書(平成

報告は、都内の事業場(病院の場合は病院、自然科学研究所の場合は研究所、血液