Agent - 医療情報システム研究室

Download Report

Transcript Agent - 医療情報システム研究室

Grid環境における
進化計算手法の検討
Summer United Workshops on Parallel,
Distributed and Cooperative Processing
2002. 8. 21-23, 湯布院ハイツ
谷村
廣安
三木
青井
勇輔
知之
光範
桂子
(同志社大学大学院)
(同志社大学)
(同志社大学)
(同志社大学大学院)
研究背景
Grid計算環境
– 仮想的なコミュニティで資源を共有し,大規模計算が可能
– 従来とは異なる並列計算環境
動的に変化する環境,非均質な環境
セキュリティ,ポータビリティ,etc.
– 各種ミドルウェアの整備
– テストベッドの整備
Gridのアプリケーション
– 様々なアプリケーションを動かしたい・・
どのような計算?
どのような計算モデル?
プログラミングモデルは?
Gridのプログラミングモデル
Grid RPCに基づくシステム
– 遠隔サーバに用意されたライブラリを容易に使う仕組み
– ex. Ninf / Ninf-G, Netsolve
– Parameter Sweep, Master Workerモデルを想定
タスク並列に適している
あらかじめ分割された仕事
上記以外の計算モデル
– もともとGridに適したアルゴリズムのアプリケーションが
あるのではないか?
GOCA
Grid Oriented Computing Application
 仕事は複数に分割できる
 分割された仕事
– 互いに依存関係が少ないか,独立に実行可能である
– 並列処理可能である
 仕事間は頻繁な通信を必要としない
 ある資源が突然利用できなくなっても,低コストで仕事を
継続できる
 ある資源が突然加わっても,それを有効に利用できる
上記を満たすアプリケーションとして・・
進化計算
進化計算手法 (GA, GP, PSA, etc.)
– 最適化問題
目的関数の値を制約条件内で最小化,もしくは最大化する
設計変数を決定する問題
Ex. 構造物の設計,タンパク質の立体構造予測
目的関数
Opt.
設計変数
– 生物の進化にヒントを得た最適化手法
– 経験的かつ確率的な探索 ← GOCAを満たす
– 複雑かつ大規模な問題が解ける可能性
EVOLVE/Gシステムの提案
目的
– 進化計算の研究者がGridモデルを容易に検討できる
– MW以外のGridモデルの構築をサポートする
– 効率的にGrid環境を利用できる
新しい機能として
– Gridのノードをクラスタリングできる
– 階層的なクラスタを構築できる
アプリケーションの記述
– EVOLVE/Gが提供するAPIを利用する
ジョブの実行,情報の取得,通信の枠組みなど
EVOLVE/Gシステム
Client
 Agent
実行要求
モニタリング
Agent
実行要求,
その他命令
ユーザ拡張
基本システム
Grid計算環境
 Worker
コアな計算
情報の取得
Agentを介した通信
Worker
Worker
Worker管理
Workerの通信制御
Agentでの処理
ユーザ拡張
基本システム
Agentの動作
Agent
 Agentによる定期チェック
 障害ノードは省く
 取得情報
 計算経過・結果
 通信データ
 マシン状況
3
1
2
Worker
Worker
 情報の利用方法
 アプリケーション側で記述
Worker
Worker
マシン停止
Worker
ネットワーク停止
Gridノードのクラスタリング
ユーザが定義するルールに従う
– 計算性能,ネットワーク性能
– 所属するサイト,クラスタ型計算機
Grid環境
など
階層的なクラスタ計算
Super Agent
Worker
Super Agent :
最上位のAgent
Worker
Worker
Worker / Agent
上位のWorker :
下位のクラスタのAgent
上位の通信モデルと下位
の通信モデルが存在する
Worker
Worker
Worker
評価実験
EVOLVE/Gを構築し,それを用いてPSA/GAc
のGridモデルを実装する
– Basicモデル: クラスタリングしない
– Hybridモデル: クラスタリングする
3サイト,25ノードからなるGrid環境で実験
– BasicモデルとHybridモデルの比較
– 手動でクラスタリングを行い,3つのサイト毎に分類
する
PSA/GAc
Start
生成処理
受理判定
推移
 並列SAとGAの遺伝的交叉を組み合わ
せたハイブリッドな最適化手法
 SAの特徴
– 焼きなまし(アニーリング)を模倣
– 現在の状態しか保存しない
– 近傍に重点をおいた解探索
 GAの特徴
徐冷判定
徐冷処理
終了判定
End
– 生物の進化の仕組みを模倣
– 複数の個体を解候補としてもつ
– 大域的な探索
 両者の利点を生かすアルゴリズム
 主にタンパク質の立体構造予測に適用
PSA/GAc (contd.)
2個体のペアを作り,設計変数間で1点交叉を行う
d:Crossover interval
d
d
d
d
SA
SA
End
Crossover
SA
Crossover
Crossover
SA
High
Temperature
Low
Basicモデル
 Worker上でSAを実行し,Agent上で遺伝的交叉を行う
 Agentのチェック時に,交叉周期まで計算を終了し,かつ
連絡のとれるWorker同士でペアを作る
 遅いWorkerは次のチェックポイントまで待機する
(Agent)
SA/Worker
SA/Worker
SA/Worker
SA/Worker
遺伝的交叉
計算
待機
Hybridモデル
PSA/GAc
 2階層のモデル
 下位のクラスタでは基本的なPSA/GAcを行う
 上位のクラスタでは,各PSA/GAcの最良解を交換する
SA
SA
PSA/GAc
PSA/GAc
PSA/GAc
PSA/GAc
SA
SA
PSA/GAc
PSA/GAc
PSA/GAc
最良解の交換
Hybridモデル (contd.)
最良解の交換
Super Agent
Worker / Agent
Worker
基本的なPSA/GAc
実験環境
同志社大学
同志社大
Galley
– Galley Cluster
PentiumIII 1.1GHz x 1
PentiumIII 850MHz x 8
– Gregor Cluster
PentiumIII 1GHz x 12
大阪産業大学
100Mbps LAN
Gregor
Internet
Moon
大産大
– Moon Cluster
Pentium4 1.7GHz x 4
1KB メッセージ送信時のスループット
合計 1 + 24 ノード
Galley – Gregor
10.95 MB/sec
Galley – Moon
107.7 KB/sec
対象問題
 タンパク質の立体構造予測
–
–
–
–
岡崎国立共同研究機構分子科学研究所 岡本らのエネルギー関数
Met-Enkephalin (5残基)
最小エネルギー構造は E < -11 kcal/mol である
19個の二面角を設計変数とする
Main
chain
Side
chain
パラメータと予備実験
各ノードで実行するSA数
初期温度
最終温度
交叉周期
16
2.0
0.10
192 ステップ
近傍幅
180°→ (180×0.3)°
エネルギー計算に要する時間 [sec]
Cluster
Galley
Gregor
Moon
1ステップ
0.215
0.173
0.109
192ステップ
41.4
33.2
20.9
最良解とステップ数の推移
(Basicモデルの場合)
3500
20
ステップ数
15
エネルギー値
2500
10
2000
5
1500
0
1000
-5
500
-10
0
-15
0
10
20
チェックポイント
30
最良解のエネルギー値
[kcal/mol]
最良解のステップ数
3000
Basicモデルの問題
計算の早いWorkerグループと遅いWorker
グループに分かれている
– チェックポイントでの最良解が振動している
– 同じ計算スピード同士で,情報交換を行っている
考察
– 最初からグループ分けしたモデル?
Hybridモデルが良いのではないか
モデル比較:ステップ数
エネルギー値 [kcal/mol]
20
15
Basicモデル
10
Hybridモデル
5
0
-5
-10
-15
0
500
1000
1500
2000
ステップ数
2500
3000
モデル比較:経過時間
エネルギー値 [kcal/mol]
20
15
Basicモデル
Hybridモデル
10
5
0
-5
-10
-15
0
200
400
600
実行時間 [sec]
800
1000
考察 (Hybridモデルの利点)
 パラメトリック探索(各実行が並列)
– 進化計算の並列アルゴリズムは,並列度を上げることにより,解
探索能力にも影響があり,並列度を上げることが良い?
– 大規模並列より,中規模の並列を複数試す方が良い?
– 個々が完全に独立したパラメトリックサーチより,それぞれの情
報を交換し合いながら,お互いに適切なパラメータを見つける
 階層的な通信モデル
– 通信モデルを階層化し,上位のクラスタでは疎な通信,下位の
クラスタでは密な通信を行う
– パフォーマンスのスケーラビリティを確保できる
– ネットワーク的に近いノードをクラスタリングする
まとめ
進化計算開発者のためのGridミドルウェア
「EVOLVE/G」を提案
– Grid上で容易にアプリケーションを構築可能
– 進化計算の論理モデルを自由に構築可能
– Grid環境をクラスタリングし,階層的トポロジを形成可能
PSA/GAcのGridモデルの実装と評価実験
– クラスタリングを行った階層モデルの有効性が示された
進化計算のようなアプリケーションのGridモデルを
検討する際に,EVOLVE/Gが有効なシステムである
ことを確認した
EVOLVE/G Agent API
eg_agent_worker_setting()
– Workerの配置,起動
eg_agent_check_worker()
– Workerのチェック
eg_agent_read_data()
– Workerから取得した情報の読み込み
– タグを付けて読み込む
eg_agent_write_data()
– Workerに送る情報の書き出し
– タグを付けて書き出す
EVOLVE/G Worker API
eg_worker_read_param()
– Agentから送られる入力ファイルの読み込み
eg_worker_check_readable()
– Agentからの要求が来ているかの確認
eg_worker_read_data()
– Agentからの受け取った情報の読み込み
eg_worker_write_data()
– Agentへ送る情報の書き出し
遅いWorkerグループ
遅いWorkerは局所探索が間に合わない
遅いWorkerが生きる場合
– 機能分化
傾斜法などで局所探索のみさせる
パラメータを変えて,違うものを探す
– 保険
早いWorkerのノードに障害が発生する
(アプリケーションより下位層の問題)
早いWorkerの探索が初期収束する
(アプリケーションの問題)