技術部門: JAVAアプレットによる分散処理の実現
福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平
早稲田大学
fukumori at muraoka.info.waseda.ac.jp


1.本作品の概要

本作品はネットワークを通じhttpサーバへアクセスしてくる計算機にアプレッ トと計算ジョブを割り当て、計算を実行させることにより不特定多数の計算機 を利用する分散環境を実現するものである。

近年のインターネットの普及により個人の所有するコンピュータがネットワー クに参加する環境は整いつつある。これらパーソナルコンピュータは過去には 想像もできなかったような強力な計算能力を持つにもかかわらず、いわゆる 「ネットサーフィン」と呼ばれるようなネットワーク上での情報収集を実行し ている限りにおいてその計算能力を十分に生かしていないのが実状である。

本作品では大量の計算を要求するような問題をJAVAアプレットの形態によって 分配し、計算結果を収集するようなプログラムの作成を行なう。このようなア プローチにより潜在的に存在しながら今まで利用できなかった計算機資源を活 用することが可能となる。例題としてマンデルブロー集合の計算をとりあげる ものとする。


2. 背景

現在、全世界に存在する計算機数はパーソナルコンピュータの普及により数千 万台から数億台のオーダーとなっている。また同時に、その中でインターネッ トに接続されている計算機も年々増加しつつある。
しかしこれらがその主な用途であるWWWページ閲覧の間に使用しているCPUパワー はごくわずかであり、多くの計算機資源が無駄となっている。

Netsolve, Ninfなど従来の分散計算環境ではあらかじめ特定された計算機(群) をサーバとし、それらに対してクライアントがネットワークを通じて計算リク エストを発行し、その結果を受け取るという流れが一般的であった。このよう なアプローチでは利用されうる計算機数は必然的に限定されてゆくこととなる。 したがって全世界に存在する不特定の計算機資源を利用することはこういった 従来の分散計算環境の枠組みでは考えられていなかった。

一方、JAVAとJAVAアプレットの普及によりネットワークを通じて任意の計算機 にプログラミングを送信・実行させることが近年は可能となった。
とくに最近の有力なWWWブラウザはいずれもJAVAへの対応をうたっているため、 それ以外の特別なプログラムを用意することなしに不特定多数の計算機による 分散環境を実現することが可能である。本作品はそのようなシステムの構成例 を示すことを目標とする。


3. 本作品の構成およびその特長

3.1.対象とする問題

今回は例題としてマンデルブロー集合の計算をとりあげる。マンデルブロー領 域は400x400の二次元配列で表現され、計算の結果それぞれの要素が0から1024 までの値をとるものとする。

3.2.システムの構成

システムの構成は以下の通りである。

他のシステムと異なり、実際の計算処理を実行するのはサーバではなく クライアント群である。

計算手順は以下の通りである:


図1. システムの概要

3.3.システムの特長と課題

このシステムの一番の特長はJAVAのみに見られる以下の特徴を利用し、不特定 多数の計算機による分散処理を実現させている点にある。 従来の分散計算環境はクライアントが特定の計算サーバにアクセスし、 その計算結果を受け取るという構成になっていた(図2左)。 サーバとなる計算機の構成は固定されており、利用可能となる計算機 数も実際にはある程度の上限があった。

本システムではJAVA対応ブラウザを利用してアクセスしてきた計算機すべてが 計算を分担する単位となりうる(図2右)。近年のJAVAアプレット処理系の普及 を見る限り、この手法によって利用できる潜在的計算機数は非常に大きいとい える。


図2. 従来の分散計算環境と本システムの違い

一方でこの手法においては計算処理に利用可能な計算機数が常に変化してゆく。 極端な場合、該当ページへのアクセスがなく、利用可能な計算機数がゼロ であるという状況も考えられる。 このような環境変化をサーバ側からコントロールすることは不可能なため、プ ログラミングにおいては十分な配慮が要求される。

また、計算処理に参加する計算機には制限を加えていないため、 クライアントによってネットワーク環境が大きく異なることが予想される。 さらにJAVAアプレットのセキュリティ制限により、直接の通信はアプレットと サーバ間に限定されていることも考えると、現状では

ようなアプリケーションに限定されると思われる。 そのようなアプリケーションをいくつかあげると、 などがある。

しかし現状で見られるような制限も将来ネットワーク環境の高速化 などにより徐々にゆるまってゆくことが予想される。そのような 状況においては本アプローチも有効なものになってゆくことが 考えられる。


図3. 問題の種類と利用可能計算機資源の比較


4. 本システムの実行例

4.1 計算クライアント

計算クライアントの動作状況を以下に示す。計算クライアントは5行を一単位 とするエリアについてマンデルブロー集合の計算を行い、その状況を下の テキストウインドウに表示する。


(計算クライアントアプレットのイメージ)

4.2 計算状況表示アプレット

いままでの計算結果をサーバより受け取り、マンデルブロー図形を描画する アプレットである。


(描画用アプレットのイメージ)

5. まとめ

本作品では不特定多数の計算機によるJAVAアプレットを利用した分散型計算を とりあげ、その一例としてマンデルブロー集合の計算を行なうシステムを示し た。このようなアプレットの利用法はJAVAを利用した分散環境の新しいアプロー チとして今後有効となってゆくものと考えられる。

現在までの実装では動的な負荷分散、および動作の安定性の実現について まだ課題が残っている。今後は既存の分散環境の実装も参考に、 この点についての改良も進めてゆきたい。


参考文献

[1]
Henri Casanova and Jack Dongarra. "NetSolve: A Network Server for Solving Computational Science Problems", Proceedings of Super-Computing 96 (1996)
[2]
中田, 草野, 松岡, 佐藤, 関口. "ネットワーク数値ライブラリNinfにおけるメタサーバアーキテクチャ", 情報処理学会研究報告 96-HPC-60 (1996)