(57)【要約】【課題】分散コンピューティングに参加するクライアントコンピュータ群を速やかに確保すること。【解決手段】分散コンピューティング支援サーバ１４ａは、各ユーザコンピュータ１２から、該ユーザコンピュータ１２が提供可能な計算資源の量を示す提供可能資源データを受信し、該ユーザコンピュータ１２に関連づけてデータベース１４ｂに記憶する。分散コンピューティングサーバ１８から、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信すると、データベース１４ｂの記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、ユーザコンピュータ１２の中から選出し、選出されるクライアントコンピュータ群及び分散コンピューティングサーバ１８による分散コンピューティングを開始させる。【選択図】図１
2008102857.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザコンピュータとネットワークを介して通信接続される分散コンピューティング支援装置であって、
前記各ユーザコンピュータから、該コンピュータが提供可能な計算資源の量を示す提供可能資源データを受信する提供可能資源データ受信手段と、
前記各ユーザコンピュータに関連づけて、該コンピュータから受信される提供可能資源データを記憶する提供可能資源データ記憶手段と、
分散コンピューティングのサーバコンピュータから、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信する手配リクエスト受信手段と、
前記手配リクエスト受信手段により手配リクエストが受信される場合に、前記提供可能資源データ記憶手段の記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、前記複数のユーザコンピュータの中から選出するクライアントコンピュータ群選出手段と、
前記クライアントコンピュータ群選出手段により選出されるクライアントコンピュータ群及び前記サーバコンピュータによる分散コンピューティングを開始させる分散コンピューティング開始手段と、
を含むことを特徴とする分散コンピューティング支援装置。
【請求項２】
請求項１に記載の分散コンピューティング支援装置において、
前記クライアントコンピュータ群選出手段により選出されるクライアント群に関連づけてポイントを記憶するポイント記憶手段をさらに含む、
ことを特徴とする分散コンピューティング支援装置。
【請求項３】
請求項２に記載の分散コンピューティング支援装置において、
前記ポイントは、前記分散コンピューティングに提供される計算資源、前記分散コンピューティングに関する計算の実行時間のいずれか少なくとも一方に基づいて算出される、
ことを特徴とする分散コンピューティング支援装置。
【請求項４】
請求項１乃至３のいずれかに記載の分散コンピューティング支援装置において、
前記分散コンピューティング開始手段は、前記クライアントコンピュータ群選出手段により選出されるクライアントコンピュータ群に対して、前記サーバコンピュータのアドレスを含む分散コンピューティング参加リクエストを送信する、
ことを特徴とする分散コンピューティング支援装置。
【請求項５】
複数のユーザコンピュータとネットワークを介して通信接続される分散コンピューティング支援装置を含む分散コンピューティングシステムの制御方法であって、
前記分散コンピューティング支援装置において、前記各ユーザコンピュータから、該コンピュータが提供可能な計算資源の量を示す提供可能資源データを受信する提供可能資源データ受信ステップと、
前記分散コンピューティング支援装置において、前記各ユーザコンピュータに関連づけて、該コンピュータから受信される提供可能資源データを記憶させる提供可能資源データ記憶ステップと、
前記分散コンピューティング支援装置において、分散コンピューティングのサーバコンピュータから、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信する手配リクエスト受信ステップと、
前記分散コンピューティング支援装置において、前記手配リクエストが受信される場合に、前記提供可能資源データ記憶ステップでの記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、前記複数のユーザコンピュータの中から選出するクライアントコンピュータ群選出ステップと、
前記クライアントコンピュータ群選出ステップで選出されるクライアントコンピュータ群及び前記サーバコンピュータによる分散コンピューティングを開始させる分散コンピューティング開始ステップと、
を含むことを特徴とする分散コンピューティングシステムの制御方法。
【請求項６】
複数のユーザコンピュータとネットワークを介して通信接続されるコンピュータを、
前記各ユーザコンピュータから、該コンピュータが提供可能な計算資源の量を示す提供可能資源データを受信する提供可能資源データ受信手段、
前記各ユーザコンピュータに関連づけて、該コンピュータから受信される提供可能資源データを記憶する提供可能資源データ記憶手段、
分散コンピューティングのサーバコンピュータから、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信する手配リクエスト受信手段、
前記手配リクエスト受信手段により手配リクエストが受信される場合に、前記提供可能資源データ記憶手段の記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、前記複数のユーザコンピュータの中から選出するクライアントコンピュータ群選出手段、及び
前記クライアントコンピュータ群選出手段により選出されるクライアントコンピュータ群及び前記サーバコンピュータによる分散コンピューティングを開始させる分散コンピューティング開始手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散コンピューティング支援装置、分散コンピューティングシステムの制御方法及びプログラムに関する。
【背景技術】
【０００２】
一般に参加者を募って、参加者が所有するパーソナルコンピュータの空いた計算資源により分担実行させることにより、大規模な計算を短期間で完了させようとする分散コンピューティングが知られている。今日では、数学的難問を解決しようとするものや、宇宙からの有意信号を発見しようとするものなど、興味深い分散コンピューティングプロジェクトがインターネット上で複数進行している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
分散コンピューティングプロジェクトでは、一般的に、主催者は独自にウェブサイトなどの手段により参加者を募集するが、彼の元に参加者が十分に集まるまで目的の計算を完了することができないという問題がある。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、分散コンピューティングに参加するクライアントコンピュータ群を速やかに確保できる分散コンピューティング支援装置、分散コンピューティングシステムの制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る分散コンピューティング支援装置は、複数のユーザコンピュータとネットワークを介して通信接続される分散コンピューティング支援装置であって、前記各ユーザコンピュータから、該コンピュータが提供可能な計算資源の量を示す提供可能資源データを受信する提供可能資源データ受信手段と、前記各ユーザコンピュータに関連づけて、該コンピュータから受信される提供可能資源データを記憶する提供可能資源データ記憶手段と、分散コンピューティングのサーバコンピュータから、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信する手配リクエスト受信手段と、前記手配リクエスト受信手段により手配リクエストが受信される場合に、前記提供可能資源データ記憶手段の記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、前記複数のユーザコンピュータの中から選出するクライアントコンピュータ群選出手段と、前記クライアントコンピュータ群選出手段により選出されるクライアントコンピュータ群及び前記サーバコンピュータによる分散コンピューティングを開始させる分散コンピューティング開始手段と、を含むことを特徴とする。
【０００６】
また、本発明に係る分散コンピューティングシステムの制御方法は、複数のユーザコンピュータとネットワークを介して通信接続される分散コンピューティング支援装置を含む分散コンピューティングシステムの制御方法であって、前記分散コンピューティング支援装置において、前記各ユーザコンピュータから、該コンピュータが提供可能な計算資源の量を示す提供可能資源データを受信する提供可能資源データ受信ステップと、前記分散コンピューティング支援装置において、前記各ユーザコンピュータに関連づけて、該コンピュータから受信される提供可能資源データを記憶させる提供可能資源データ記憶ステップと、前記分散コンピューティング支援装置において、分散コンピューティングのサーバコンピュータから、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信する手配リクエスト受信ステップと、前記分散コンピューティング支援装置において、前記手配リクエストが受信される場合に、前記提供可能資源データ記憶ステップでの記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、前記複数のユーザコンピュータの中から選出するクライアントコンピュータ群選出ステップと、前記クライアントコンピュータ群選出ステップで選出されるクライアントコンピュータ群及び前記サーバコンピュータによる分散コンピューティングを開始させる分散コンピューティング開始ステップと、を含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、複数のユーザコンピュータとネットワークを介して通信接続されるコンピュータを、前記各ユーザコンピュータから、該コンピュータが提供可能な計算資源の量を示す提供可能資源データを受信する提供可能資源データ受信手段、前記各ユーザコンピュータに関連づけて、該コンピュータから受信される提供可能資源データを記憶する提供可能資源データ記憶手段、分散コンピューティングのサーバコンピュータから、必要とする計算資源の量を示す必要資源データを含む手配リクエストを受信する手配リクエスト受信手段、前記手配リクエスト受信手段により手配リクエストが受信される場合に、前記提供可能資源データ記憶手段の記憶内容を参照して、該手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、前記複数のユーザコンピュータの中から選出するクライアントコンピュータ群選出手段、及び前記クライアントコンピュータ群選出手段により選出されるクライアントコンピュータ群及び前記サーバコンピュータによる分散コンピューティングを開始させる分散コンピューティング開始手段として機能させるためのプログラムである。このプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読取可能な情報記憶媒体に格納されてよい。
【０００８】
本発明は、前記クライアントコンピュータ群選出手段により選出されるクライアント群に関連づけてポイントを記憶するポイント記憶手段をさらに含んでよい。このとき、前記ポイントは、前記分散コンピューティングに提供される計算資源、前記分散コンピューティングに関する計算の実行時間のいずれか少なくとも一方に基づいて算出されてよい。
【０００９】
また、前記分散コンピューティング開始手段は、前記クライアントコンピュータ群選出手段により選出されるクライアントコンピュータ群に対して、前記サーバコンピュータのアドレスを含む分散コンピューティング参加リクエストを送信してよい。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【００１１】
図１は、本発明の実施形態に係る分散コンピューティングシステムの全体構成図である。同図に示すように、この分散コンピューティングシステム１０は、インターネット等の通信ネットワークに接続された多数のユーザコンピュータ１２、１以上の分散コンピューティングサーバ１８及び分散コンピューティング支援システム１４を含んで構成されている。ユーザコンピュータ１２は、例えば家庭用テレビゲーム機、パーソナルコンピュータ、ホームサーバなどの各種のコンピュータであってよく、通常はユーザプログラムを実行し、ユーザの利用に供されるものであり、ユーザの希望或いはユーザコンピュータ１２の動作状態に応じて、分散コンピューティングサーバ１８が主催する分散コンピューティングに参加し、その計算の一部を担うものである。
【００１２】
分散コンピューティングサーバ１８は、大規模科学技術計算等、複雑な計算を分散コンピューティングにより実行する際に、その中心的役割を担うサーバコンピュータである。具体的には、分散コンピューティングに参加する各ユーザコンピュータ１２（クライアントコンピュータ）に対して、目的の計算の一部を実行するためのプログラム（クライアントプログラム）を送信し、該ユーザコンピュータ１２からそのクライアントプログラムの実行結果を受信する。そして、分散コンピューティングに参加した全てのユーザコンピュータ１２から実行結果を受信すると、それらを統合して目的の計算の実行結果を算出するものである。
【００１３】
分散コンピューティング支援システム１４は、分散コンピューティング支援サーバ１４ａ及びデータベース１４ｂを含んで構成されており、各分散コンピューティングサーバ１８が必要数のクライアントコンピュータを確保するのを支援するものである。具体的には、分散コンピューティング支援サーバ１４ａは、ユーザコンピュータ１２から分散コンピューティングに提供可能な計算資源（例えばＣＰＵタイム、メモリ量など）の量を示す提供可能資源データを受信して、それをユーザコンピュータ１２に関連づけてデータベース１４ｂに記憶している。分散コンピューティングサーバ１８は、目的とする計算を分散コンピューティングにより実行する場合には、クライアントコンピュータ群の手配リクエストを分散コンピューティング支援サーバ１４ａに送信するようにしている。分散コンピューティング支援サーバ１４ａは、手配リクエストの受信に応じて、データベース１４ｂに提供可能制限データが記憶されたユーザコンピュータ１２の中から、分散コンピューティングに参加するクライアントコンピュータ群を選出する。この際、手配リクエストには、分散コンピューティングに必要な計算資源の量を示す必要資源データが含まれており、選出されるクライアントコンピュータ群に関連づけられた各提供可能資源データが示す計算資源の量の合計が、この必要資源データが示す量以上となるようにして、クライアントコンピュータ群を選出している。
【００１４】
分散コンピューティング支援サーバ１４ａは、クライアントコンピュータ群を選出すると、それらコンピュータに対して分散コンピューティング参加リクエストを送信する。このリクエストには、手配リクエストを送信した分散コンピューティングサーバ１８のアドレスが含まれており、クライアントコンピュータに選ばれた各ユーザコンピュータ１２は、そのアドレスに対して、クライアントプログラムのリクエストを送信し、返信されるプログラムを実行するようになっている。クライアントプログラムの実行が終了すると、実行結果は分散コンピューティングサーバ１８に送信され、該分散コンピューティングサーバ１８で統合され、当初の目的の計算結果が算出される。
【００１５】
ここで、分散コンピューティング支援システム１４の機能的構成について説明する。図２は、分散コンピューティング支援システム１４の機能ブロック図である。同図に示されるように、分散コンピューティング支援システム１４は、機能的には、提供可能資源管理部２０、手配リクエスト受信部２２、クライアントコンピュータ群選出部２４、分散コンピューティング開始部２６、ポイント管理部２８、ユーザデータリスト３０及び資源テーブル３２を含んで構成されている。これらの機能は、分散コンピューティング支援サーバ１４ａにおいて支援プログラムが実行されることにより実現される。この支援プログラムは、通信ネットワーク１６を介して他のコンピュータからダウンロードされてもよいし、ＣＤ−ＲＯＭやＤＶＤ-ＲＯＭなどのコンピュータ読取可能な情報記憶媒体に格納されて、該媒体からインストールされてもよい。
【００１６】
まず、提供可能資源管理部２０は、各ユーザコンピュータ１２から、該ユーザコンピュータ１２が分散コンピューティングに提供可能な計算資源の量を示す提供可能資源データを受信する。提供可能資源データは、例えばユーザの操作に応じて内容が指定され、各ユーザコンピュータ１２から送信されてよい。また、ユーザコンピュータ１２に、自身の動作状態を監視するプログラムを実行させるようにしておき、このプログラムが所定の動作状態、例えばスリープモードに入って、長時間にわたり計算資源が余ることが予想される動作状態となった場合などに、当該余ることが予想される計算資源の量をプログラムが算出して、それを示す提供可能制限データを自動送信してもよい。
【００１７】
資源テーブル３２は、データベース１４ｂを含んで構成されるものであり、ユーザコンピュータ１２の識別情報（ユーザコンピュータＩＤ）に関連づけて、該ユーザコンピュータ１２から受信される提供可能資源データを記憶するものである。図３は、資源テーブル３２の内容を模式的に示したものである。同図に示すように、資源テーブル３２は、ユーザコンピュータＩＤと、該ＩＤにより識別されるユーザコンピュータ１２が分散コンピューティングに提供することができる計算資源量、すなわち提供可能資源量を示す提供可能資源データと、を互いに関連づけて記憶している。
【００１８】
手配リクエスト受信部２２は、分散コンピューティングサーバ１８から必要資源データを含む手配リクエストを受信する。
【００１９】
クライアントコンピュータ群選出部２４は、手配リクエスト受信部２２により手配リクエストが受信される場合に、資源テーブル３２の記憶内容を参照して、受信した手配リクエストに含まれる必要資源データにより示される量の計算資源を提供可能なクライアントコンピュータ群を、資源テーブル３２に開放計算資源量が記憶されたユーザコンピュータ１２の中から選出する。
【００２０】
分散コンピューティング開始部２６は、クライアントコンピュータ群選出部２４により選出されるクライアントコンピュータ群及び手配リクエストを送信した分散コンピューティングサーバ１８による分散コンピューティングを開始させる。具体的には、クライアントコンピュータ群選出部２４により選出されるクライアントコンピュータ群に対して、手配リクエストを送信した分散コンピューティングサーバ１８のアドレスを含む分散コンピューティング参加リクエストを送信し、これにより分散コンピューティングを開始させる。
【００２１】
ユーザデータリスト３０は、図４に示される内容を有しており、ユーザコンピュータＩＤに関連づけて、該ＩＤにより識別されるユーザコンピュータ１２のアドレス及び該ユーザコンピュータ１２を使用するユーザが獲得したポイントを記憶するものである。すなわち、本実施形態では、分散コンピューティング支援サーバ１４ａのポイント管理部２８が、ユーザコンピュータ１２の計算資源の一部又は全部が分散コンピューティングに供された場合に、その計算資源の量や分散コンピューティングに関する計算の実行時間（すなわちクライアントプログラムの実行時間）に基づいて、ポイントを算出するようにしており、その積算値がユーザデータリスト３０に記憶されるようになっている。ポイントは、例えば通信ネットワーク１６上で提供される各種サービスの支払いに使用可能である。これにより、より多い量の計算資源を分散コンピューティングに提供すればするほど、またより長い時間だけクライアントプログラムを実行すればするほど、ポイントが溜まるようになり、各ユーザに分散コンピューティングの参加を動機付けることができる。
【００２２】
ポイント管理部２８は、ユーザデータリストに記憶されるポイントの値を更新するものであり、上述したようにしてポイントを算出すると、その値を既に記憶されるポイントの値に加算して、ポイントの値を更新する。
【００２３】
図５は、本分散コンピューティングシステム１０の動作シーケンス図である。同図に示すように、このシステムでは、まず分散コンピューティングを行おうとする分散コンピューティングサーバ１８から分散コンピューティング支援サーバ１４ａに手配リクエストを送信する（Ｓ１０１）。この手配リクエストには、分散コンピューティングサーバ１８自身のアドレス、及び必要資源データが含まれる。分散コンピューティング支援サーバ１４ａでは、手配リクエスト受信部２２がこの手配リクエストを受信し、クライアントコンピュータ群選出部２４が、該手配リクエストに含まれる必要資源データ及び資源テーブルに記憶された各提供可能資源データに基づいて、必要数のクライアントコンピュータを選出する（Ｓ１０２）。次に、分散コンピューティング開始部２６が、クライアントコンピュータとして選出されたユーザコンピュータ１２に対して（ここではユーザコンピュータＡ，Ｂ及びＸとする。）、分散コンピューティングへの参加リクエストを送信する（Ｓ１０３〜Ｓ１０５）。このとき、各ユーザコンピュータ１２のアドレスはユーザデータリストから読み出される。また、参加リクエストには、手配リクエストに含まれる分散コンピューティングサーバ１８のアドレスが含まれる。クライアントコンピュータとして選出されたユーザコンピュータＡ，Ｂ及びＸは、手配リクエストに含まれるアドレスに対して、それぞれのコンピュータで実行すべきクライアントプログラムを要求するクライアントプログラムリクエストを送信する（Ｓ１０６〜Ｓ１０８）。そして、これに応じて分散コンピューティングサーバ１８は、クライアントプログラムα，β及びγをそれぞれ返信する（Ｓ１０９〜Ｓ１１１）。
【００２４】
これらクライアントプログラムα，β及びγを受信したユーザコンピュータＡ，Ｂ及びＸは、それぞれのプログラムを実行する（Ｓ１１２）。そして、実行結果をそれぞれのユーザコンピュータＩＤとともに分散コンピューティングサーバ１８に返信する（Ｓ１１５，Ｓ１１８，Ｓ１２１）。分散コンピューティングサーバ１８では、分散コンピューティング支援サーバ１４ａに対して、ユーザコンピュータＩＤを伴って、クライアントプログラムの実行完了を通知する（Ｓ１１６，Ｓ１１９，Ｓ１２２）。分散コンピューティング支援サーバ１４ａのポイント管理部２８は、この通知を受信すると、各クライアントコンピュータに加算すべきポイントを演算し、それをユーザデータリスト３０に登録する(Ｓ１１７，Ｓ１２０，Ｓ１２３）。一方、分散コンピューティングサーバ１８は、すべてのクライアントコンピュータからクライアントプログラムの実行結果を受信すると、それらを統合して、最終的な計算結果を算出する（Ｓ１２４）。
【００２５】
以上説明した分散コンピューティングシステム１０によると、事前に各ユーザコンピュータ１２が提供可能な計算資源の量がデータベース１４ｂに登録されており、新たに分散コンピューティングによる大規模計算を開始しようとする分散コンピューティングサーバ１８から手配リクエストを受信すると、分散コンピューティングサーバ１４ａがデータベース１４ｂの内容及び手配リクエストに含まれる必要資源データに従って速やかにクライアントコンピュータ群を選出し、分散コンピューティングを開始させる。これにより、分散コンピューティングサーバ１８は、速やかに必要数のクライアントコンピュータを確保して、分散コンピューティングを開始することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係る分散コンピューティングシステムの全体構成図である。
【図２】分散コンピューティング支援サーバの機能ブロック図である。
【図３】資源テーブルを示す図である。
【図４】ユーザデータリストを示す図である。
【図５】分散コンピューティングシステムの動作シーケンス図である。
【符号の説明】
【００２７】
１０  分散コンピューティングシステム、１２  ユーザコンピュータ、１４  分散コンピューティング支援システム、１４ａ  分散コンピューティング支援サーバ、１４ｂ  データベース、１６  通信ネットワーク、１８  分散コンピューティングサーバ、２０  提供可能資源管理部、２２  手配リクエスト受信部、２４  クライアントコンピュータ群選出部、２６  分散コンピューティング開始部、２８  ポイント管理部、３０  ユーザデータリスト、３２  資源テーブル。
【図１】
2008102857.tif 000003
【図２】
2008102857.tif 000004
【図３】
2008102857.tif 000005
【図４】
2008102857.tif 000006
【図５】
2008102857.tif 000007