Presentation is loading. Please wait.

Presentation is loading. Please wait.

状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール

Similar presentations


Presentation on theme: "状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール"— Presentation transcript:

1 状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
理学部 情報科学科 千葉研究室 指導教官 千葉 滋 助教授 01_08648 熊原 奈津子

2 分散環境実験と例外処理 分散環境での様々な研究のための実験 例外処理は重要 例:サーバマシンの性能改善 マシンの台数が増えると故障率が増加
クライアントマシンの台数によりサーバにかける 負荷をかえてサーバの性能を測定 クライアントマシン故障により想定した負荷がかからず 意図しない実験になる 代替マシンを使用するなどのリカバリ処理で回避

3 例外処理記述の難点(1) 例)Java言語のtry-catch文 リカバリ可能 try 文は散在 例外が発生しうる場所で
送信失敗 try 文 try { 実験プログラム送信 } catch (送信失敗 e) {  マシンを変えて送信 リカバリ可能 try 文は散在 try { 実験結果の回収 } catch (回収失敗 e) {  再試行 回収失敗

4 例外処理記述の難点(2) 例)Java言語のtry-catch文 リカバリが難しい try 文は1箇所にまとまる 例外処理を怠って
送信失敗 リカバリが難しい try 文は1箇所にまとまる try { 実験プログラムを実行 } catch (送信失敗 e){ ??? catch (回収失敗 e) {  ??? 回収失敗

5 実験支援ツール AOSted 分散環境での実験を支援する統合開発環境 実験プログラムを配布・起動 例外処理をアスペクト指向により分離して記述
ランタイム AOSted コンソール マシンの絵 AOSted ランタイム コンソールマシン 制御 プログラム (Java) 実験 プログラム (Jar) AOSted ランタイム クラスタマシン AOSted ランタイムは rcp で配布、              rsh で起動

6 制御プログラムと例外処理記述をコンパイル
AOStedの操作画面 制御プログラム 進行状況 例外処理プログラム 制御プログラムと例外処理記述をコンパイル 制御プログラムを実行

7 制御プログラムの例 指定したホストにプログラムを配布 配布したプログラムを起動 プログラムを終了 実験結果を回収

8 例外処理の記述の分離 例外ハンドラにまとめて記述して登録 制御プログラムからも独立して記述可能 アスペクト指向の応用 例外ハンドラの引数
発生箇所と例外ハンドラの対応を宣言的に細かく指定(実装はまだ未完成) 例外ハンドラの引数 発生した例外の情報を含むオブジェクト リカバリー処理用のメソッドを提供

9 例外ハンドラの例 ホストを変更して再試行

10 例外ハンドルのメカニズム 制御プログラム 例外ハンドラ AOStedの内部実装
Load loader = new Load( hosts, port, program, args); loader.setErrorHandler(condition1, new MyLoadErrorHandler()); loader.setErrorHandler(condition2, new YourLoadErrorHandler()); loader.load(); … void setErrorHandler(condition, handler){ ハンドラを登録 } void load(){ try{ }catch (UnknownHostException e){ FailEvent event = new FailEvent( host, e, …); eventが満たすconditionを検索; 満たせば対応するhandlerを取得; handler.unknownHost(event); 例外ハンドラ 無数の例外の中から選択されたものだけ class MyLoadErrorHandler extends LoadErrorHandler { public void unknownHost(FailEvent event){ //例外処理記述 } class YourLoadErrorHandler extends LoadErrorHandler { public void unknownHost(FailEvent event){ //例外処理記述 } class LoadErrorHandler { public void unknownHost(FailEvent event){ //何もしない }

11 AspectJとの比較 ライブラリのソースコードを考慮せずに例外処理が記述可能 AOStedでの記述例 AspectJでの記述例
class MyLoadErrorHandler extends LoadErrorHandler{ public void unknownHost(FailEvent e){ if (e.getHostName().equals("node03")){ …. } aspect ExceptionHandling { after(UnknownHostException e): withincode(void Transmitter.run())     && handler(e) { } ライブラリの内部実装で 使用されているクラス

12 まとめ 分散環境実験を支援する開発環境 AOSted を開発 関連研究 今後の課題 実験プログラムの配布と起動 例外処理を分離して記述可能
LAM/MPI, FT-MPI, Cuckoo MPI[實本 ‘05] 今後の課題 例外処理に関係する実装を完成させる


Download ppt "状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール"

Similar presentations


Ads by Google