福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平 早稲田大学 村岡研究室

Slides:



Advertisements
Similar presentations
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
Advertisements

マルチスレッド処理 (II) Multithreading
Webプロキシサーバにおける 動的資源管理方式の提案と実装
動画像品質調整機能を組み込んだ プロキシキャッシングシステムの 実装と評価
IDLTM/IONTMを使用した UDON (Universe via Darts ON-line) プロトタイプの作成
Ex7. Search for Vacuum Problem
Ex8. Search for Vacuum Problem(2)
分散コンピューティング環境上の Webリンク収集システムの実装
Iアプリプログラミング その1  鳥居秀徳.
Javaでゲーム  山本拓弥.
JAVA.
JavaServlet&JSP入門 01K0018 中村太一.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
独習Java ・ 12.1  インターネットアドレス ・ 12.2  サーバーソケットとソケット  12月 19日    小笠原 一恵.
IAA情報登録クライアント for Windows
計算機プログラミングI 第12回 2003年1月23日(木) インターフェース スレッド 最後に お知らせ クイズ 授業アンケート
第9章 オブジェクトの構築 日下部研究室 修士2年 秋本 浩平.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
Curlの仕組み.
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
第20章 Flyweight ~同じものを共有して無駄をなくす~
アプレット プログラミング 第10回 アプレット プログラミング第10回.
端末およびサービス透過的な 情報閲覧支援システムの構築
サーバ負荷分散におけるOpenFlowを用いた省電力法
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
Stateful Session Beans
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
P2P方式によるオンラインゲームの研究、開発
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
UDPマルチキャストチャット                    空川幸司.
日本Androidの会 事務局長 SIPropプロジェクト 代表 グロースエクスパートナーズ 今村 謙之(いまむら のりつな)
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
第6回 2007年6月1日 応用Java (Java/XML).
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
Java Bytecode Modification and Applet Security
インターネットにおける真に プライベートなネットワークの構築
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
Internet広域分散協調サーチロボット の研究開発
私の立場 OSカーネルを手がけるエンジニア 大阪市立大学 創造都市研究科の学生
端末およびサービス透過的な 情報閲覧支援システムの構築
Java8について 2014/03/07.
Recoveryアドバイスをもつ アスペクト指向システム
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
非対称リンクにおける ジャンボフレームの性能評価
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
TCP制御フラグの解析による ネットワーク負荷の推測
Ex7. Search for Vacuum Problem
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
アルゴリズムとデータ構造1 2006年7月11日
「マイグレーションを支援する分散集合オブジェクト」
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
「マイグレーションを支援する分散集合オブジェクト」
オープンソースソフトウェアに対する コーディングパターン分析の適用
卒業研究 JCSPを用いたプログラム開発  池部理奈.
理工学部情報学科 情報論理工学研究室 延山 周平
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
P2P & JXTA Memo For Beginners
TCP/IPの通信手順 (tcpdump)
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
第6章 インターネットアプリケーション 6.1 インターネットアプリケーション 6.2 Javaによるネットワーク処理 6.3 電子メール
5-6 SurfaceView による高速描画 (1)SurfaceViewを使う A. SurfaceView とは
Presentation transcript:

福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平 早稲田大学 村岡研究室 JAVAアプレットによる 分散処理の実現 福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平 早稲田大学 村岡研究室

発表の概要 はじめに システムの概要 実行例 今後の展開 まとめ

目標:世界中に存在する計算機を使った 並列分散処理 はじめに ―本作品の動機と目標― 目標:世界中に存在する計算機を使った 並列分散処理 動機: ネットワーク接続されているPCの増加 これらPCの計算能力が生かされているかは疑問 JAVA(アプレット)の特徴である アーキテクチャ非依存性 ネットワーク適用性 を生かして大規模な問題を分散計算させることができないか

システムの概要 サーバはJAVA Program、クライアントはJAVA Appletで実装 Crowd Computingに基づく計算 依存のない小さな 計算単位の集合 クライアント クライアント クライアント サーバ 計算の実行

Client(s) Server 3. ソケット接続を確保し、 計算クライアントになる 1. Httpによる 該当ページへのアクセス resultcode = is.readByte(); startline = is.readInt(); endline = is.readInt(); if (resultcode == 1) { MSubArea msarea = new MSubArea(startline, endline); if (recv_msarea(msarea, is) == 0) { for (int i = 0; i < endline - startline; i++) { marea.area[i + startline] = msarea.subarea[i]; mctrl.Dflag[i + startline] = 1; } os.writeByte(resultcode); os.writeInt(mctrl.startline); os.writeInt(mctrl.endline); ....... send_msarea(msarea, os); is.close(); os.close(); ...... 3. ソケット接続を確保し、 計算クライアントになる 1. Httpによる 該当ページへのアクセス public class Mserv { ……... while (listening) { Socket clientSocket = null; try { clientSocket = serverSocket.accept(); } …….. new MservThread(clientSocket, minfo, marea, mctrl).start(); } ……. class MservThread extends Thread { public void run() { ...... minfo.ix = is.readDouble(); minfo.iy = is.readDouble(); minfo.size = is.readDouble(); mctrl.startline = is.readInt(); mctrl.endline = is.readInt(); // Mandelblot calculation ..... public class Mclient extends Applet implements Runnable { ..... public void run() { while (execflag == true) { try { String hostname = getCodeBase().getHost(); clientSocket = new Socket(hostname, PORT); ...... } ........ reqtype = is.readInt(); switch (reqtype) { case 1: ..... os.writeDouble(minfo.ix); os.writeDouble(minfo.iy); os.writeDouble(minfo.size); os.writeInt(startline); os.writeInt(endline); .... } 2.サーバから Applet送信 Client(s) 4. サーバから 初期データを送信 5.担当部分の 計算を実行 Server 6. 計算結果を受け取る

マンデルブロー集合の計算例における実行の流れ 計算対象を小領域に分割 マンデルブロー集合の計算の場合、縦5ライン単位での分割を行なう

クライアントへの計算の分配 複数のクライアントの同時処理が前提 クライアント数は常に変動 計算済 計算中 次の計算予定部 計算実行中にクライアント終了、その他コネクションの切断 現在はネットワークの例外処理で対処

実行例 1. マンデルブロー集合の計算 2. ナップザック問題

今後の展開 各計算機の能力に合わせた負荷分散 安定性の強化 適用アプリケーションの拡大 レイトレーシングなどに対しては比較的容易に対応が可能 探索問題について可能性を探る

まとめ ネットワーク上に存在する不特定多数の計算機を対象とした分散計算処理の可能性について述べた これによりJAVAとJAVA appletの持つ特徴を生かした、世界中の計算機を利用する並列分散処理の可能性がひらけるものと考える

負荷分散の問題(その2) 本格的な解決 計算機ごとにパフォーマンスを計測、それに基づいて負荷分配を実施 計算時間の計測 ネットワークパフォーマンスの計測

一般の関心を引くページ/プロジェクトとの組み合わせ 今後の展開 ―― 計算機資源の確保 一般の関心を引くページ/プロジェクトとの組み合わせ 例: NASAの“Mars Pathfinder”ページ 一日あたりで数百万単位のアクセス 観測データのレンダリング処理などは関心を引く? 他のアプリケーションとの並立 例:「JAVA将棋」(早稲田大学村岡研究室) 一日あたり2000件のアクセス 一回の接続時間は20分程度 アイドル時間が長いアプリケーション その他 何らかの対価を払う?

計算機資源の確保 理論上は全世界のネットワーク接続された計算機を利用することが可能 一方で極端な場合計算機資源が確保できない場合すら存在する 計算機資源をどう確保するか→当面の課題

ネットワークの問題 HTTPアクセスの可能なすべての計算機を対象とすることを前提とする 現在ネットワークの性能には大きなばらつきが認められる 適用可能なアプリケーションは現状では限定 将来的にはネットワーク状況の改善により適用可能なアプリケーションは増加