50
遊休リソースを用いた 相同性検索処理の並列化とその評価 慶應義塾大学大学院 政策・メディア研究科 永安 悟史

遊休リソースを用いた相同性検索処理の並列化とその評価

Embed Size (px)

Citation preview

Page 1: 遊休リソースを用いた相同性検索処理の並列化とその評価

遊休リソースを用いた相同性検索処理の並列化とその評価

慶應義塾大学大学院

政策・メディア研究科

永安 悟史

Page 2: 遊休リソースを用いた相同性検索処理の並列化とその評価

背景

PC ・ WS のパフォーマンス向上 CPU 、メモリ、ネットワーク、ストレージ ハイパフォーマンスなハードウェアのコモディティ化 個々の PC ・ WS のリソースは余剰気味

遊休リソースコンピューティング

PC クラスタを用いた HPC PC クラスタのコストパフォーマンス 高度 and/or 高価なハードウェア / ソフトウェアの管理コ

スト

Page 3: 遊休リソースを用いた相同性検索処理の並列化とその評価

背景

0

5

10

15

20

25

30

1983

1985

1987

1989

1991

1993

1995

1997

1999

2001

Base Pairs (1,000,000,000)

0

5

10

15

20

25

Sequ

ences (1,000,000)

B ase Pairs

Sequences

バイオインフォマティクスにおける HPC 処理するデータ量が膨大、データ量の増大 PC クラスタによる演算処理( CPU )の並列・分散化 共有ディスク( NFS )を利用した分散処理の限界(→ I/O

ネック)

Growth of GenBank

Page 4: 遊休リソースを用いた相同性検索処理の並列化とその評価

モチベーション

もっと有効に計算資源を利用できるのでは? 遊休リソースコンピューティング

ユーザーに利用されていない CPU 時間を使う処理

PC クラスタ用 HPC アプリケーションと          遊休リソースコンピューティングのハイブリッド化

既存のリソースから処理能力を引き出す CPU 、メモリ、ストレージ、ネットワーク

どの程度のパフォーマンスを得られるのか? どのような制約があり、何が必要なのか?

Page 5: 遊休リソースを用いた相同性検索処理の並列化とその評価

目的

遊休リソースコンピューティングの HPC アプリケーション への適用とその実証評価 パフォーマンス、スケーラビリティの評価 既存の分散技術との比較

遊休リソースコンピューティング PC ・ WS などのコモディティハードウェアを用いる 既存の遊休資源を用いる

バイオインフォマティクスの HPC アプリケーション 処理するデータサイズが大きい アプリケーションが比較的シンプル

Page 6: 遊休リソースを用いた相同性検索処理の並列化とその評価

手法

サンプルアプリケーション⇒ BLAST Basic Local Alignment Search Tools 遺伝子データにおける類似配列の検索 比較評価できる並列分散の実装( mpiBLAST )

遊休ワークステーション ( ~ 160 台)を使用

評価項目 スケーラビリティ(ノード数、データ量) レスポンスタイム スループット

Page 7: 遊休リソースを用いた相同性検索処理の並列化とその評価

BLAST(Basic Local Alignment Search Tool)

遺伝子配列の相同性を計算する DP 法の代わりに遺伝子配列に特化

使用例 ヒトゲノムデータ (ncbi/genomes/H_sapiens)

複数のデータベース( nr 、 nt など)

FASTA DB3GB

formatdb

BLAST DB

Query sequence

blastXResults

>lcl|AK000001 AK000001.1 LENGTH:4504, CDS:<976..1443GTGACTTCAGTTTTTCGTCTTTCAACTTCAGTTGCTCATCTGCAGTCACCAGCTGGGATTTGAACCCAGCCAATCTGACTCCTGAGCTCCTCTTTCCTCCCACTTAGTCTTTTCCCCTGAGTCCAACAGCACCTTAGAGCATGTCTAATGCACGTGCTTACTGCCTTCATCTCATTGCAGCCTGTCCCTGCCAGCTGTGTCACCTTCATCCTGCTGCCAGCCCCTGGTGACTCTCCCGTTACAGATCAGAGACCAGACTCCAGGGGTGGAGAGTAGGGGTTCTGGACCAGCCGCTCTCTGCTCCTAGAGCTCTTGTCTACACAACTGCCTGGTGCTCAGGGGATGACGAGGCGCCTGCCTCTCTCAGTAGGTTGTGTGTCCTGGCAGCAGGGGTGGGACCTGTCCTCTTTCATAGCTCCAGCACATCTGTGCTGGATGTCACCTGGCTCCATCCAGTGACGGATTCATATTCTCTGTTTC

Seq.A: atgatgattgac... ||| |||| | |Seq.B: atgttgatcgcc...

Page 8: 遊休リソースを用いた相同性検索処理の並列化とその評価

BLAST の検索処理

BLAST の処理内容の傾向 クエリが長い場合 → CPU を使う クエリが多い場合 → I/O を使う

Page 9: 遊休リソースを用いた相同性検索処理の並列化とその評価

関連研究

遊休リソースコンピューティング SETI@home RC5 Folding@home

並列化 BLAST mpiBLAST HyperBLAST Hi-per BLAST TurboBLAST

Page 10: 遊休リソースを用いた相同性検索処理の並列化とその評価

既存研究との比較

超分散遊休リソースコンピューティング

並列化 BLAST NFS を利用した PC クラスタ向け並列化

利用するネットワーク 広域分散 > LAN 内分散 > PC クラスタ内分散

処理内容 反復処理 演算処理 処理単位の独立性SETI@ hom e 大容量データ解析 低 高 高(分散)Folding@ hom e M D法 低 高 高(分散)RC 5 暗号鍵探索 低 高 高(分散)BLAST データベース検索 高 中 中(並列)

Page 11: 遊休リソースを用いた相同性検索処理の並列化とその評価

アーキテクチャ – コンセプト

ストレージ共有型

ストレージ分散型

Page 12: 遊休リソースを用いた相同性検索処理の並列化とその評価

アーキテクチャ –ディスク共有型

Storage

File Server

Client nodes

file read & write

ファイルサーバ中心 大容量データを共有 NFS など

システム全体の信頼性 ファイルサーバに制約される performance/availability

Page 13: 遊休リソースを用いた相同性検索処理の並列化とその評価

アーキテクチャ – NFS

NFS ベンチマーク NFS のボトルネックの測定( CPU ノード数と I/O )

archives(fs04)

zuxXXX

200M B file read

0

10

20

30

40

50

60

70

1 2 4 8 16 24 32

# of nodes

sec. sec.

Page 14: 遊休リソースを用いた相同性検索処理の並列化とその評価

NFS v.s. Local storage

Blast CPU Usage (NFS)

0%

20%

40%

60%

80%

100%

0 20 40 60 80 100 120

Tim e (sec.)

CP

U U sage

Idle

System

User

Blast CPU Usage (Local disk)

0%

20%

40%

60%

80%

100%

0 20 40 60 80 100 120

Tim e (sec.)

CP

U U sage

Idle

System

User

Page 15: 遊休リソースを用いた相同性検索処理の並列化とその評価

Process

アーキテクチャ – Requirements

I/O 処理の低減 ローカルストレージの活用

並列化

datascandata data data datascan

並列化

data

NFS

Process data

Page 16: 遊休リソースを用いた相同性検索処理の並列化とその評価

アーキテクチャ – ディスク分散型

Storage

Client nodes

cache expire & copy データ分割

各ノードがキャッシュを保持 動的に近隣から取得 キャッシュの redundancy ファイルサーバへの負荷低減

Page 17: 遊休リソースを用いた相同性検索処理の並列化とその評価

アーキテクチャ – コンセプト(まとめ)

ストレージ共有型 多数の計算ノードから負荷が集中 ファイルサーバにボトルネック

ストレージ分散型 I/O 処理を分散することが可能 ファイルサーバのボトルネック、 SPF を解消

※SPF=Single Point of Failure

Page 18: 遊休リソースを用いた相同性検索処理の並列化とその評価

p-BLAST

p-BLAST の設計

Page 19: 遊休リソースを用いた相同性検索処理の並列化とその評価

p-BLAST設計(概要)

Client NodesMaster NodeFrontend

p-BLAST構成 フロントエンド、マスターノード、クライアントノード

フロントエンド:マスターノードへの処理要求 マスターノード:処理の分割・統合。クライアントの管理

クライアント:ファイルの保持・管理。分割されたタスクの実行

フラットなネットワーク

Page 20: 遊休リソースを用いた相同性検索処理の並列化とその評価

p-BLAST設計(マスターノード)

Client NodesMaster NodeFrontend

マスターノード機能 クライアントノード管理

コネクション管理、統計情報管理、ファイル配置管理

フロントエンドからのリクエストの処理 分割・クライアントへの割り振り・統合

タスクの分割と実行リクエスト受付

Page 21: 遊休リソースを用いた相同性検索処理の並列化とその評価

p-BLAST設計(クライアントノード)

Client NodesMaster NodeFrontend

クライアントノード機能 クライアント間のファイルの転送処理 マスターノードへの統計情報の送信 マスターノードから割り振られたタスクの処理

システム情報

タスクの実行と返却

Page 22: 遊休リソースを用いた相同性検索処理の並列化とその評価

p-BLAST設計(ファイル配置)

新規配置

コピー・(移動)

Master Client

Frontend

(1)問い合わせ

(2) ノード指示

(3) ファイル送信

(4) ファイルリスト更新

Master Client

(1) ファイルコピー指示

Client

(2) ファイル送信

(3) ファイルリスト更新

Page 23: 遊休リソースを用いた相同性検索処理の並列化とその評価

CommandExecution

p-BLAST設計( BLAST 処理)Master Node

FrontendClinet

CommandExecution

CommandExecution

Planner

Executor

Request

Divider

Merger

Result

Application Specific Routines

Page 24: 遊休リソースを用いた相同性検索処理の並列化とその評価

p-BLAST設計(メッセージング)

ノード間のメッセージには XML を利用<?xml version="1.0"?><submitJob> <executeCommand> <executable path="PATH" args="STRING" cwd="PATH"> <input> <stdin>STANDARD INPUT CONTENT</stdin> <file name="FILENAME" size="SIZE">FILE CONTENTS</file> </input> </executable> </executeCommand></submitJob>

<?xml version="1.0"?><resultJob><commandResult host="HOSTNAME"><output> <stdout>STDOUT CONTENT</stdout> <stderr/> <hostname>HOSTNAME</hostname> <execTime>EXEC_TIME</execTime></output></commandResult>

Page 25: 遊休リソースを用いた相同性検索処理の並列化とその評価

実験と評価

Page 26: 遊休リソースを用いた相同性検索処理の並列化とその評価

評価

p-BLAST と mpiBLAST との比較

評価項目 単一リクエストの処理時間(レスポンスタイム) 多重リクエストの処理能力(スループット) I/O 処理量

パラメータ ノード数 クエリサイズ クエリ数

Page 27: 遊休リソースを用いた相同性検索処理の並列化とその評価

localstoarge

localstoarge

localstoarge

localstoarge

mpiBLAST

sharedstoarge

(2) slave start

(2) slave start

(2) slave start

(2) slave start

(3) job assign

(3) job assign

(3) job assign

(3) job assign

(5) search

(5) search

(5) search

(5) search

(4) data copy

(4) data copy

(4) data copy

(4) data copy

(1) Query

(7) Result

(6)Results

Page 28: 遊休リソースを用いた相同性検索処理の並列化とその評価

実験

実験内容 レスポンスタイム計測 スループット性能計測

対象データベース nr 、約 1.5GB formatdb による分割( 2/4/8/16/32/64/128 分割)

実験環境(ノード) Pentium4/1.6GHz 、 256MB RAM 、 40GB

IDE 、 100BaseTX 、 FreeBSD 4.7

Page 29: 遊休リソースを用いた相同性検索処理の並列化とその評価

結果

レスポンスタイム

オーバーヘッド

スループット

Page 30: 遊休リソースを用いた相同性検索処理の並列化とその評価

結果

レスポンスタイム

オーバーヘッド

スループット

Page 31: 遊休リソースを用いた相同性検索処理の並列化とその評価

レスポンスタイム

評価方法 単一クエリの検索速度を計測 クエリサイズ( 1kbp 、 2kbp 、 4kbp 、 8kbp )

(1) Query

(3) Result

(2) Process

Page 32: 遊休リソースを用いた相同性検索処理の並列化とその評価

レスポンスタイム

スケーラビリティ

p-BLAST Scalability of Single Q uery Search(C om parative)

0

5

10

15

20

25

30

1 2 4 8 16 32 64

Num ber of nodes

E x ecuti

o n ti

m e (se

c.)

1kbp

2kbp

4kbp

8kbp

Page 33: 遊休リソースを用いた相同性検索処理の並列化とその評価

レスポンスタイム

p-BLAST / mpiBLAST

Single Q uery Search(1kbp)

0

10

20

30

40

50

60

1 2 4 8 16 32 64

Num ber of nodes

E x ecuti

o n tim e (sec.)

Single Q uery Search(8kbp)

0

10

20

30

40

50

60

70

1 2 4 8 16 32 64

Num ber of nodes

E x ecuti

o n tim e (sec

.)

p-BLAST

m piBLAST

Page 34: 遊休リソースを用いた相同性検索処理の並列化とその評価

結果

レスポンスタイム

オーバーヘッド

スループット

Page 35: 遊休リソースを用いた相同性検索処理の並列化とその評価

オーバーヘッド

検索時間 / 実行時間

Execution / O verhead (1kbp)

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

1 2 4 8 16 32 64

N um ber of nodes

O ther

Execution

Execution / O verhead (8kbp)

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

1 2 4 8 16 32 64

N um ber of nodes

O ther

Execution

Page 36: 遊休リソースを用いた相同性検索処理の並列化とその評価

考察(レスポンスタイム)

p-BLAST 32 ノード前後までリニアにスケール 64 ノードにおいてオーバーヘッドと検索時間が拮抗

長いクエリの検索ほど並列化メリットが大

mpiBLAST slave プロセスを起動するオーバーヘッドが大きい

rsh経由、ノード数に比例して増大

ノード数に比例してエラー発生が増加

Page 37: 遊休リソースを用いた相同性検索処理の並列化とその評価

結果

レスポンスタイム

オーバーヘッド

スループット

Page 38: 遊休リソースを用いた相同性検索処理の並列化とその評価

スループット

評価方法 100個のクエリを連続して検索 平均 4464bp 、分散 38087 処理時間とスケーラビリティ CPU 利用状況、 I/O 処理状況の計測

(1) Queries...

(3) Results...

(2) Process

Page 39: 遊休リソースを用いた相同性検索処理の並列化とその評価

スループット

ノード数と処理時間

0

20

40

60

80

100

120

140

1 2 4 8 16 32 64 128

Num ber of nodes

S p eed u p

p-BLAST

m piBLAST

(Linear)

Page 40: 遊休リソースを用いた相同性検索処理の並列化とその評価

スループット

0%

20%

40%

60%

80%

100%

0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400

Tim e (sec.)

CP

U U sage

Idle

System

User

Standalone / 2-nodes

0%

20%

40%

60%

80%

100%

0 200 400 600 800 1000

Tim e (sec.)

CPU U sage

Idle

System

U ser

Page 41: 遊休リソースを用いた相同性検索処理の並列化とその評価

スループット

0%

20%

40%

60%

80%

100%

0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400

Tim e (sec.)

CP

U U sage

Idle

System

User

Standalone / 4-nodes

0%

20%

40%

60%

80%

100%

0 40 80 120 160 200 240 280 320

Tim e (sec.)

CP

U U sage

Idle

System

User

Page 42: 遊休リソースを用いた相同性検索処理の並列化とその評価

スループット

0%

20%

40%

60%

80%

100%

0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400

Tim e (sec.)

CP

U U sage

Idle

System

User

Standalone / 8-nodes

0%

20%

40%

60%

80%

100%

0 20 40 60 80 100 120 140 160

Tim e (sec.)

CPU U sage

Idle

System

User

Page 43: 遊休リソースを用いた相同性検索処理の並列化とその評価

スループット

Disk operations (8-nodes/standalone)

Disk operations

0

100

200

300

400

500

600

0 40 80 120 160

Tim e (sec.)

Numb

er of

d is k op

erati

o ns

8 nodes

Single

Page 44: 遊休リソースを用いた相同性検索処理の並列化とその評価

Physical I/O v.s. Memory cache

vm stat (Physical disk read)

0%

20%

40%

60%

80%

100%

1 11 21 31

Sec.

U sage

Idle

System

User

vm stat (System cache read)

0%

20%

40%

60%

80%

100%

1 11 21 31

Sec.

U sage

Idle

System

User

Page 45: 遊休リソースを用いた相同性検索処理の並列化とその評価

考察(スループット)

p-BLAST 4 、 8 ノード前後から CPU 利用率が向上

データの分割によるオンメモリ処理(物理 I/O の低減) Super-linear なスケーラビリティ

( 32 ノード以降は実装に難あり)

mpiBLAST 16 ノード前後までリニアにスケールアップ

Long-running な処理では MPI に強み ( Super-linear にならない理由を補完)

ノード数が増えるとエラーが頻発し実行不可 通常のデスクトップ PC という環境が原因

Page 46: 遊休リソースを用いた相同性検索処理の並列化とその評価

考察(まとめ)

mpiBLAST MPI はレスポンスタイムの向上には寄与しない

ノード増加に比例したオーバーヘッド

不安定な環境に弱い 遊休リソースコンピューティングには不向き

p-BLAST レスポンス・スループット向上に有効

十分なスケーラビリティ

不安定な環境に強い データの冗長性、短い接続時間

Page 47: 遊休リソースを用いた相同性検索処理の並列化とその評価

まとめ

遊休リソースコンピューティングと HPC アプリケーションのハイブリッド化は有効である ストレージが大きなボトルネックになっていたことを示し、その解決方法を示した

データ分割による並列度向上とオンメモリ処理化 短時間のコネクション 細かなノード管理

今後、増加を続ける計算需要に適用可能

Page 48: 遊休リソースを用いた相同性検索処理の並列化とその評価

今後の課題

マスターノードの動的なマイグレーション マスターの実行されるノードが動的に移動

グループ化とカスケード接続 多様なネットワーク形態

他のアプリケーションへの適用 計算 intensive なアプリケーション 分散メモリ機能の提供

Page 49: 遊休リソースを用いた相同性検索処理の並列化とその評価

関連文献・研究

Altschul SF, Gish W, Miller W, Myers EW, Lipman DJ.; Basic local alignment search tool.; J Mol Biol; 1990 Oct 5; pp.403-10.

Aaron E. Darling, Lucas Carey, Wu-chun Feng; The Design, Implementation, and Evaluation of mpiBLAST; ClusterWorld conference 2003

Ian Korf, Mark Yandell, Joseph Bedell; BLAST; O'Reilly & Associates, Inc.; 2003 Growth of GenBank; Feb.2002; http://www.ncbi.nih.gov/Genbank/genbankstats.html Hong-Song Kim, Hae-Jin Kim, and Dong-Soo Han; Hyper-BLAST: A Parallelized BLAST for

Speedup of Similarity Search; Akira Naruse, Naoki Nishinomiya, Kouichi Kumon, Masahito Yamaguchi; Hi-per BLAST: High

Performance BLAST on PC Cluster System; Genome Informatics 13; pp.254-255; 2002 R.D.Bjornson, A.H.Sherman, S.B.Weston, N.Willard, J.Wing; TurboBLAST: A Parallel

Implemetation of BLAST Built on the TurboHub; HiCOMB 2002 IBM; IBM Redbooks; Benchmark and Performance Analysis of TurboBLAST on IBM xSeries

Server Cluster; 2002 永松 秀人 , 廣安 知之 , 三木 光範 ; 相同性検索プログラム FASTA と BLAST に関する調査報告 ; ISDL Report No.20030608006; 2003年 9月 8日

Page 50: 遊休リソースを用いた相同性検索処理の並列化とその評価

End