Upload
satoshi-nagayasu
View
1.436
Download
3
Embed Size (px)
Citation preview
遊休リソースを用いた相同性検索処理の並列化とその評価
慶應義塾大学大学院
政策・メディア研究科
永安 悟史
背景
PC ・ WS のパフォーマンス向上 CPU 、メモリ、ネットワーク、ストレージ ハイパフォーマンスなハードウェアのコモディティ化 個々の PC ・ WS のリソースは余剰気味
遊休リソースコンピューティング
PC クラスタを用いた HPC PC クラスタのコストパフォーマンス 高度 and/or 高価なハードウェア / ソフトウェアの管理コ
スト
背景
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
モチベーション
もっと有効に計算資源を利用できるのでは? 遊休リソースコンピューティング
ユーザーに利用されていない CPU 時間を使う処理
PC クラスタ用 HPC アプリケーションと 遊休リソースコンピューティングのハイブリッド化
既存のリソースから処理能力を引き出す CPU 、メモリ、ストレージ、ネットワーク
どの程度のパフォーマンスを得られるのか? どのような制約があり、何が必要なのか?
目的
遊休リソースコンピューティングの HPC アプリケーション への適用とその実証評価 パフォーマンス、スケーラビリティの評価 既存の分散技術との比較
遊休リソースコンピューティング PC ・ WS などのコモディティハードウェアを用いる 既存の遊休資源を用いる
バイオインフォマティクスの HPC アプリケーション 処理するデータサイズが大きい アプリケーションが比較的シンプル
手法
サンプルアプリケーション⇒ BLAST Basic Local Alignment Search Tools 遺伝子データにおける類似配列の検索 比較評価できる並列分散の実装( mpiBLAST )
遊休ワークステーション ( ~ 160 台)を使用
評価項目 スケーラビリティ(ノード数、データ量) レスポンスタイム スループット
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...
BLAST の検索処理
BLAST の処理内容の傾向 クエリが長い場合 → CPU を使う クエリが多い場合 → I/O を使う
関連研究
遊休リソースコンピューティング SETI@home RC5 Folding@home
並列化 BLAST mpiBLAST HyperBLAST Hi-per BLAST TurboBLAST
既存研究との比較
超分散遊休リソースコンピューティング
並列化 BLAST NFS を利用した PC クラスタ向け並列化
利用するネットワーク 広域分散 > LAN 内分散 > PC クラスタ内分散
処理内容 反復処理 演算処理 処理単位の独立性SETI@ hom e 大容量データ解析 低 高 高(分散)Folding@ hom e M D法 低 高 高(分散)RC 5 暗号鍵探索 低 高 高(分散)BLAST データベース検索 高 中 中(並列)
アーキテクチャ – コンセプト
ストレージ共有型
ストレージ分散型
アーキテクチャ –ディスク共有型
Storage
File Server
Client nodes
file read & write
ファイルサーバ中心 大容量データを共有 NFS など
システム全体の信頼性 ファイルサーバに制約される performance/availability
アーキテクチャ – 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.
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
Process
アーキテクチャ – Requirements
I/O 処理の低減 ローカルストレージの活用
並列化
datascandata data data datascan
並列化
data
NFS
Process data
アーキテクチャ – ディスク分散型
Storage
Client nodes
cache expire & copy データ分割
各ノードがキャッシュを保持 動的に近隣から取得 キャッシュの redundancy ファイルサーバへの負荷低減
アーキテクチャ – コンセプト(まとめ)
ストレージ共有型 多数の計算ノードから負荷が集中 ファイルサーバにボトルネック
ストレージ分散型 I/O 処理を分散することが可能 ファイルサーバのボトルネック、 SPF を解消
※SPF=Single Point of Failure
p-BLAST
p-BLAST の設計
p-BLAST設計(概要)
Client NodesMaster NodeFrontend
p-BLAST構成 フロントエンド、マスターノード、クライアントノード
フロントエンド:マスターノードへの処理要求 マスターノード:処理の分割・統合。クライアントの管理
クライアント:ファイルの保持・管理。分割されたタスクの実行
フラットなネットワーク
p-BLAST設計(マスターノード)
Client NodesMaster NodeFrontend
マスターノード機能 クライアントノード管理
コネクション管理、統計情報管理、ファイル配置管理
フロントエンドからのリクエストの処理 分割・クライアントへの割り振り・統合
タスクの分割と実行リクエスト受付
p-BLAST設計(クライアントノード)
Client NodesMaster NodeFrontend
クライアントノード機能 クライアント間のファイルの転送処理 マスターノードへの統計情報の送信 マスターノードから割り振られたタスクの処理
システム情報
タスクの実行と返却
p-BLAST設計(ファイル配置)
新規配置
コピー・(移動)
Master Client
Frontend
(1)問い合わせ
(2) ノード指示
(3) ファイル送信
(4) ファイルリスト更新
Master Client
(1) ファイルコピー指示
Client
(2) ファイル送信
(3) ファイルリスト更新
CommandExecution
p-BLAST設計( BLAST 処理)Master Node
FrontendClinet
CommandExecution
CommandExecution
Planner
Executor
Request
Divider
Merger
Result
Application Specific Routines
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>
実験と評価
評価
p-BLAST と mpiBLAST との比較
評価項目 単一リクエストの処理時間(レスポンスタイム) 多重リクエストの処理能力(スループット) I/O 処理量
パラメータ ノード数 クエリサイズ クエリ数
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
実験
実験内容 レスポンスタイム計測 スループット性能計測
対象データベース nr 、約 1.5GB formatdb による分割( 2/4/8/16/32/64/128 分割)
実験環境(ノード) Pentium4/1.6GHz 、 256MB RAM 、 40GB
IDE 、 100BaseTX 、 FreeBSD 4.7
結果
レスポンスタイム
オーバーヘッド
スループット
結果
レスポンスタイム
オーバーヘッド
スループット
レスポンスタイム
評価方法 単一クエリの検索速度を計測 クエリサイズ( 1kbp 、 2kbp 、 4kbp 、 8kbp )
(1) Query
(3) Result
(2) Process
レスポンスタイム
スケーラビリティ
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
レスポンスタイム
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
結果
レスポンスタイム
オーバーヘッド
スループット
オーバーヘッド
検索時間 / 実行時間
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
考察(レスポンスタイム)
p-BLAST 32 ノード前後までリニアにスケール 64 ノードにおいてオーバーヘッドと検索時間が拮抗
長いクエリの検索ほど並列化メリットが大
mpiBLAST slave プロセスを起動するオーバーヘッドが大きい
rsh経由、ノード数に比例して増大
ノード数に比例してエラー発生が増加
結果
レスポンスタイム
オーバーヘッド
スループット
スループット
評価方法 100個のクエリを連続して検索 平均 4464bp 、分散 38087 処理時間とスケーラビリティ CPU 利用状況、 I/O 処理状況の計測
(1) Queries...
(3) Results...
(2) Process
スループット
ノード数と処理時間
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)
スループット
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
スループット
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
スループット
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
スループット
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
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
考察(スループット)
p-BLAST 4 、 8 ノード前後から CPU 利用率が向上
データの分割によるオンメモリ処理(物理 I/O の低減) Super-linear なスケーラビリティ
( 32 ノード以降は実装に難あり)
mpiBLAST 16 ノード前後までリニアにスケールアップ
Long-running な処理では MPI に強み ( Super-linear にならない理由を補完)
ノード数が増えるとエラーが頻発し実行不可 通常のデスクトップ PC という環境が原因
考察(まとめ)
mpiBLAST MPI はレスポンスタイムの向上には寄与しない
ノード増加に比例したオーバーヘッド
不安定な環境に弱い 遊休リソースコンピューティングには不向き
p-BLAST レスポンス・スループット向上に有効
十分なスケーラビリティ
不安定な環境に強い データの冗長性、短い接続時間
まとめ
遊休リソースコンピューティングと HPC アプリケーションのハイブリッド化は有効である ストレージが大きなボトルネックになっていたことを示し、その解決方法を示した
データ分割による並列度向上とオンメモリ処理化 短時間のコネクション 細かなノード管理
今後、増加を続ける計算需要に適用可能
今後の課題
マスターノードの動的なマイグレーション マスターの実行されるノードが動的に移動
グループ化とカスケード接続 多様なネットワーク形態
他のアプリケーションへの適用 計算 intensive なアプリケーション 分散メモリ機能の提供
関連文献・研究
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日
End