(57)【要約】  ネットワークを介して少なくとも１つの電子装置のリソースを計算して分散する。【選択図】      図１３
2013546067.tif 000002
【特許請求の範囲】
【請求項１】
複数の別個の電子装置のリソースを計算するステップと、
タスクを受け取り、前記複数の別個の電子装置のうちの少なくとも１つの電子装置の前記リソースにタスクセグメントを分散するステップと、
を含むことを特徴とする方法。
【請求項２】
前記複数の別個の電子装置からグループを選択するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数の別個の電子装置から前記グループを選択するステップが、
ラベル付けされていないグループに関連付けるメンバーをグループの組から選択することにより、前記複数の別個の電子装置から前記グループの組を編成するステップと、
前記ラベル付けされていないグループに信頼できるグループとしてラベル付けするステップと、
前記信頼できるグループ内の各メンバーに信頼できるメンバーとしてラベル付けするステップと、
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記複数の別個の電子装置の前記リソースを計算するステップが、
前記複数の別個の電子装置のうちの少なくとも第１の装置を検出するステップと、
前記第１の装置及び該第１の装置の第１の接続をモデル化するステップと、
前記第１の装置及び接続モデルのリソース使用量を計算するステップと、
前記第１の装置及び接続モデルのアイドル割合を計算するステップと、
前記第１の装置モデル、前記リソース使用量及び前記アイドル割合を含む結果の組を編成するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記複数の別個の電子装置の前記計算されたリソースを集計するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記複数の別個の電子装置の前記計算されたリソースを集計するステップが、
前記複数の別個の電子装置のうちの少なくとも１つの電子装置の前記計算されたリソースに関する結果の組を受け取るステップと、
前記受け取った結果の組からリソースコンポーネント利用可能性を抽出して分類するステップと、
総リソースコンポーネント利用可能性を計算するステップと、
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記複数の別個の電子装置の前記計算されたリソースをモニタするステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記複数の別個の電子装置の前記計算されたリソースをモニタするステップが、
前記複数の別個の電子装置の前記計算されたリソースの第１の変数を設定するステップと、
タイマをリセットして始動するステップと、
前記タイマがカウントを完了した時の第２の変数をチェックするステップと、
前記第１の変数を前記第２の変数と比較するステップと、
を含み、
前記第１の変数が前記第２の変数に等しい場合には、タスク要求フラグをチェックし、
前記第１の変数が前記第２の変数に等しくない場合には、前記第１の変数を前記第２の変数に置き替え、前記第２の変数をリセットして、前記タスク要求フラグをチェックし、
前記タスク要求フラグが偽である場合には、前記タイマをリセットして始動するステップに戻る、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記タスクを受け取り、前記複数の別個の電子装置のうちの少なくとも１つの電子装置の前記リソースに前記タスクセグメントを分散するステップが、
タスク要求を受け取るステップと、
前記計算されたリソースのリソース閾値パーセンテージ利用可能性を検証するステップと、
前記タスク要求を確認するステップと、
前記タスクを受け取るステップと、
前記タスクをタスクセグメントに区分化するステップと、
ターゲット接続及びターゲット装置リソースを確立するステップと、
前記ターゲット接続及び前記ターゲット装置リソースに前記タスクセグメントを提出するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記複数の別個の電子装置のうちの前記少なくとも１つの電子装置から完了したタスクセグメントを受け取って編成するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記複数の別個の電子装置のうちの前記少なくとも１つから前記完了したタスクセグメントを受け取って編成するステップが、
指定時間をカウントするステップと、
前記カウントが完了した時に受け取りフラグをチェックするステップと、
を含み、
前記受け取りフラグが真である場合には、前記システムが、受け取ったセグメントを編成し、
前記受け取りフラグが偽である場合には、前記システムが、前記指定時間を再カウントし、前記再カウントが完了した時に前記受け取りフラグをチェックする、
ことを特徴とする請求項１０に記載の方法。
【請求項１２】
不完全なタスクセグメントを修正するステップをさらに含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記不完全なタスクセグメントを修正するステップが、前記受け取った完了したタスクセグメントがエラーを有する場合に、前記複数の別個の電子装置のうちの少なくとも１つの電子装置の前記リソースに前記タスクセグメントを再分散するステップを含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記複数の別個の電子装置からグループを選択するステップと、
前記複数の別個の電子装置のリソースを計算するステップと、
前記複数の別個の電子装置の前記計算されたリソースを集計するステップと、
前記複数の別個の電子装置の前記計算されたリソースをモニタするステップと、
タスクを受け取り、前記複数の別個の電子装置のうちの少なくとも１つの電子装置の前記リソースにタスクセグメントを分散するステップと、
前記複数の別個の電子装置のうちの前記少なくとも１つから完了したタスクセグメントを受け取って編成するステップと、
前記不完全なタスクセグメントを修正するステップと、
を含むことを特徴とする方法。
【請求項１５】
複数の別個の電子装置からの少なくとも第２の電子装置のリソースを計算するように構成された第１の電子装置を備え、
前記第１の電子装置が、少なくとも前記第２の電子装置の前記リソースにタスクセグメントを分散するように構成される、
ことを特徴とするシステム。
【請求項１６】
複数の別個の電子装置から少なくとも第２の電子装置を選択するように構成された第１の電子装置を備え、
前記第１の電子装置が、前記第２の電子装置のリソースを計算するように構成され、
前記第１の電子装置が、前記第２の電子装置の前記リソースにタスクセグメントを分散するように構成される、
ことを特徴とするシステム。
【請求項１７】
複数の別個の電子装置からの少なくとも第２の電子装置のリソースを計算するように構成された第１の電子装置を備え、
前記第１の電子装置が、前記第２の電子装置の前記リソースをモニタするように構成され、
前記第１の電子装置が、少なくとも前記第２の電子装置の前記リソースにタスクセグメントを分散するように構成される、
ことを特徴とするシステム。
【請求項１８】
複数の別個の電子装置から少なくとも第２の電子装置を選択するように構成された第１の電子装置を備え、
前記第１の電子装置が、前記第２の電子装置のリソースを計算するように構成され、
前記第１の電子装置が、前記第２の電子装置の前記リソースを集計するように構成され、
前記第１の電子装置が、前記第２の電子装置の前記リソースをモニタするように構成され、
前記第１の電子装置が、前記第２の電子装置の前記リソースにタスクセグメントを分散するように構成され、
前記第１の電子装置が、完了したタスクセグメントを受け取って編成するように構成され、
前記第１の電子装置が、不完全なタスクセグメントを修正するように構成される、
ことを特徴とするシステム。
【請求項１９】
リソースを選択する手段と、
リソースを計算する手段と、
少なくとも第２の電子装置の前記リソースを集計する手段と、
少なくとも前記第２の電子装置の前記リソースをモニタする手段と、
少なくとも前記第２の電子装置の前記リソースにタスクセグメントを分散する手段と、
完了したタスクセグメントを受け取って編成する手段と、
不完全なタスクセグメントを修正する手段と、
を備えることを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワークを介して少なくとも１つの電子装置のリソースを計算して分散するための方法又はシステムに関する。
【背景技術】
【０００２】
現在では、グループコンピューティングシステム及び集合的レンダリングシステムが実施されているが、今のところこれらの利用はいくつかの方法に限られている。
【０００３】
まず、例えばワールドコミュニティーグリッド（ＷＣＧ）は、パーソナルコンピュータの所有者に、これらの所有者の予備の又はアイドル状態のパーソナルコンピュータを分散コンピューティングとして知られている分担処理スキームに提供して、これらのパーソナルコンピュータを複雑なスーパーコンピュータの一部にする能力を与える。従って、このスーパーコンピュータは、開発室又は研究室内に存在する中心機械ではなく、むしろ単一のタスクを処理する１つのスーパーコンピュータとして集約的に機能する無数のコンピュータを組み合わせたものである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、残念なことに、ＷＣＧは、データを分析してシミュレーションを実行する必要がある科学者にしかタスクの開始を認めていない。ユーザは、単なる貢献者にすぎず、集約処理システムに接続することから恩恵を受けることはない。このシステムには、タスクの計算を要求し、データを記憶し、又はユーザによる提供を追跡する適当な方法が存在しない。
【０００５】
さらに、ＷＣＧは、ユーザに積極的に登録して貢献するように求める一方で、ユーザが自身のグループを形成して創出するための機構をユーザに提供していない。
【課題を解決するための手段】
【０００６】
本発明は、リソースを動的にモデル化、再モデル化して、画像レンダリング、複雑なアルゴリズム、記憶などの複数のタスクに割り当てることができる包括的グループコンピューティング方法及びシステムを通じてこれらの短所を改善しようとするものである。従って、本発明は、一般に、ネットワークを介して少なくとも１つの電子装置のリソースを計算して分散するための方法又はシステムに関する。
【０００７】
本発明は、ネットワークを介して少なくとも１つの電子装置のリソースを計算して分散するための方法又はシステムに関する。
【０００８】
本発明は、業務プロセス、コンピュータ実施方法、コンピュータプログラム製品、コンピュータシステム及びネットワーク、ユーザインターフェイス、アプリケーションプログラミングインターフェイスなどを含む様々な形で具体化することができる。
【０００９】
添付図面を参照する以下の明細書に、本発明のこれらの及びその他のより詳細かつ具体的な特徴をより完全に開示する。
【図面の簡単な説明】
【００１０】
【図１】リソースを計算して分散する方法を示すフロー図である。
【図２】リソースの選択をさらに示すフロー図である。
【図３】リソースの計算をさらに示すフロー図である。
【図４】リソースの集計をさらに示すフロー図である。
【図５】リソースのモニタリングをさらに示すフロー図である。
【図６】タスクの受け取り及びタスクセグメントの分散をさらに示すフロー図である。
【図７】タスクセグメントの受け取り及び編成をさらに示すフロー図である。
【図８】タスクセグメントの修正をさらに示すフロー図である。
【図９ａ】本発明の代替の実施形態を示すフロー図である。
【図９ｂ】本発明の代替の実施形態を示すフロー図である。
【図９ｃ】本発明の代替の実施形態を示すフロー図である。
【図９ｄ】本発明の代替の実施形態を示すフロー図である。
【図９ｅ】本発明の代替の実施形態を示すフロー図である。
【図９ｆ】本発明の代替の実施形態を示すフロー図である。
【図１０ａ】ある時間にわたるＣＰＵ状態を示すグラフである。
【図１０ｂ】ある時間にわたるＣＰＵ状態を示すグラフである。
【図１０ｃ】ある時間にわたるＣＰＵ状態を示すグラフである。
【図１１】装置のリソース使用量を示すスクリーンショットである。
【図１２】フレームをレンダリングするための時間を示すスクリーンショットである。
【図１３】リソースを計算して分散するための装置を示すブロック図である。
【図１４】リソースを計算して分散するためのシステムの概略図である。
【図１５】リソースを計算して分散するための自己発見可能な電子装置の概略図である。
【発明を実施するための形態】
【００１１】
以下の説明では、本発明の１又はそれ以上の実施形態を理解できるように、説明目的でフロー図及びシステム構成などの数多くの詳細について説明する。しかしながら、当業者には、本発明を実施するためにこれらの具体的な詳細が必須ではないことが明らかであり、また明らかになるであろう。
【００１２】
本発明は、グループを選択すること、このグループ内の少なくとも１つの電子装置のリソースを計算すること、この少なくとも１つの電子装置のリソースを集計すること、この少なくとも１つの電子装置のリソースをモニタすること、タスクを受け取って、この少なくとも１つの電子装置のリソースにタスクセグメントを分散すること、この少なくとも１つの電子装置から完了したタスクセグメントを受け取って編成すること、及び不完全なタスクセグメントを修正することに関する。
【００１３】
上記の実施形態では、一般にグループ選択が、まず例えばローカルエリアネットワーク（ＬＡＮ）上の全てのパーソナルコンピュータ（ＰＣ）、又は広域ネットワーク（ＷＡＮ）上のオンライン多人数プレイ用のゲームフォーラムを通じて接続された全てのゲーム機などの、選択が行われるシステムに様々な媒体を介して接続された電子装置の範囲を有することを含む。従って、装置は、利用可能なあらゆる接続媒体を使用して、ＷＡＮ及びＬＡＮ接続を介してシステムに接続することができる。
【００１４】
次に、除外、包含、又はその他の選択機構を使用して、範囲内の装置の少なくとも１つを選択する。例えば、ユーザがサインインして通信するソーシャルネットワークは、既に数多く存在する。これらのソーシャルネットワークの友人形態では、恋愛が始まり、同僚がつながり、家族が再会し、興味の似た者同士が互いに導かれる。従って、これらのソーシャルネットワークでは、結び付きがユーザ同士の間を形成し、あるユーザは、ある人物を関連性によって信頼するので、これらの人物は、同様に互いの処理能力も信用するようになる。この選択機構では、ユーザが、ソーシャルネットワーク内で形成された結び付きに基づいて、ユーザの組（及び拡大解釈すれば、ユーザの関連する電子装置）を選択することができる。
【００１５】
概略的には、あるシステム又はあるユーザがユーザの組を編成し、このユーザの組から複数のグループを形作る。次に、システムは、これらのグループにラベルを付け、その後、グループ内の各ユーザ（及び拡大解釈すれば、ユーザの関連する電子装置）にラベルを付ける。例えば、ユーザの組を、ツイッタのフォロア、Ｆａｃｅｂｏｏｋの友人、連絡先リスト、ブロガーのグループ、又はウェブサイト加入者とすることができ、お薦めのツイータ、大学の友人、仕事上の連絡先、編成者、又は管理者などのサブセットを、それぞれ形作られる又は選択されるグループとすることができる。
【００１６】
グループの選択後に、ラベル又は階層を割り当てる。さらに、このラベルは「信頼」レベルを示す。例えば、社内ＬＡＮに接続するシステムは、ユーザ名に基づいて会社の従業員リストを取り出すことができる。次に、このシステムは、具体的に個人を選択し、或いは「営業部」又は「部長」などの事前指定を使用して従業員リスト内のグループを選択することができる。さらに、例えば、Ｆａｃｅｂｏｏｋの兄弟及び家族指定を利用して、Ｆａｃｅｂｏｏｋの友人リストからグループを形作ることもできる。
【００１７】
事前指定又はいずれかの選択機構を使用する場合、システムは、電子装置を個々の機械に関連付けなければならない。電子装置の関連付けの一例として、ユーザ名及びこのユーザ名によってログオンされた最後のＰＣを利用すること、及びこのＰＣに関連する媒体アクセス制御アドレス（ＭＡＣアドレス）を関連付けることを挙げることができる。しかしながら、選択したメンバーへの電子装置の関連付けは、選択以外で完了することもできる。
【００１８】
さらに、システムは、「部長」などのグループを選択した後で、その関連するＰＣを、リソース共有から除外するもの、又はリソース共有に含めるものとして指定することもできる。なお、特定のユーザなどの選択が重複することもでき、関連する装置が複数の指定を受けることもできる。
【００１９】
また、以下で説明するように、特定のタスクに適した又は適していないグループ、或いは排他的な好みを有するグループも存在し得るので、タスクをシステムの内の異なるグループに分散することができる。従って、より複雑な階層が必要となり得る。
【００２０】
この階層は、グループに「信頼できる」というラベルが付けられ、ユーザ又はユーザの機械が未特定である１つの層とすることができる。「信頼できるグループ」とは、グループ内の電子装置が、タスクセグメントを送信するのに安全な電子装置であると見なされるものとすることができる。同様に、階層は、「信頼できる」、「信頼できない」及び未特定などの２つの層を有することができる。層の階層は、システムのニーズに基づいて指数関数的に増加することができる。
【００２１】
また、選択は、システムの動作開始時、又はシステムの動作中のあらゆる時点で行うことができる。選択は、複数回行うこと、繰り返すこと、変更すること、又は調整することができる。図１では、グループを選択する（ステップ２００）ことにより、リソースを共有する処理が開始される。図２では、最初にユーザプール又はグループの組から１つのグループを選択することにより、選択するグループの組の編成が行われる（ステップ２１１）。上述したように、ユーザプールは、ツイッタのフォロア、Ｆａｃｅｂｏｏｋの友人、連絡先リスト、ブロガーのグループ、又はウェブサイト加入者とすることができる。
【００２２】
次に、１つのグループに「信頼できるグループ」としてラベル付けするなどのように、編成されたグループに階層指定をラベル付けし（ステップ２１４）、その後、信頼できるグループ内のメンバーに関連する各電子装置に信頼できる電子装置としてラベル付けし、この装置又はこの装置内の構成要素に優先番号をさらに割り当てるなどのように、グループ内のメンバーに個別の指定を与える（ステップ２１７）。従って、図２の選択及びラベル付けステップは、システムのグループ及びグループメンバーに優先順位を付けることを通じたより複雑な階層となり得る。
【００２３】
システムは、グループを自動的かつ動的に選択することができる（ステップ２００）が、システム又はユーザは、グループ及びその特定メンバーの利用可能性又は能力についての予備知識を有することができるので、システムは、自律的活動に限定されるものではない。従って、さらなる階層的構造化が必要となり得る。システムは、ユーザ又はサードパーティシステムからのコマンドを促し、又はこれを受け取って選択を行うこともできる。さらに、システムは、グラフィックユーザインターフェイス（ＧＵＩ）を利用して、使い勝手の良い選択環境を提供することもできる。
【００２４】
上記の実施形態によれば、グループ選択（ステップ２００）の後、システムは、グループ内のリソースを計算しなければならない（ステップ３００）。最初のリソース計算は、最初のモデル化機構であり、後で行う動的モデル化及び最適化の基礎を提供する。
【００２５】
図３に示すように、システムは、グループの内のリソースを計算するために、選択したグループ内の少なくとも１つの電子装置を検出し（ステップ３１１）、この電子装置の構成要素及び接続をモデル化し（ステップ３１３）、これらの構成要素及び接続の使用量を計算し（ステップ３１５）、これらの構成要素及び接続のアイドル割合を計算して（ステップ３１７）、結果の組を編成する（ステップ３１９）。
【００２６】
例えば、電子装置の検出は、システムが、ピング又は上述したようにＭＡＣアドレス検索などのエコー要求を通じて、選択されたグループのメンバーを捜すことによって行うことができる。検出はこれらの機構に限定されず、あらゆる数の検出機構又は検出機構の組み合わせによって行うこともできる。
【００２７】
さらに、装置が検出されるとモデル化が開始され、電子装置がプロセッサ及びネットワークインターフェイスなどの単純な装置であるか、複数のプロセッサ及び接続を有するハイテクスーパーコンピュータなどの複雑な装置であるか、それともこれらの両極端な装置の間の装置であるかに関わらず、電子装置の仕組みを「追跡」する。さらに、電子装置はＰＣに限定されず、例えば、携帯電話機、ハンドヘルド装置、パーソナルコンピュータ、デジタル時計、デジタル腕時計、全地球測位システムの装置、スキャナ、プリンタ、ホームシアターシステム、ゲーム機、電子卓上電話機、自動車用ステレオ、自動車の管理コンピュータ、ハンドヘルド音楽プレーヤ、食洗機、電子レンジ、セキュリティシステム、カメラ、カムコーダ、又はプロセッサ及びネットワークインターフェイスを有する他のいずれの電子装置であってもよい。また、ネットワークインターフェイスは、例えば、ＩＰ  ＷＡＮ／ＬＡＮネットワーク、ＷｉＦｉネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）、３Ｇ無線、４Ｇ無線、ＩＲインターフェイス、衛星、マイクロ波などの、データ転送を可能にするいずれの通信技術であってもよい。
【００２８】
理解を容易にするために、プロセッサ及びネットワークインターフェイス装置を有する少なくとも１つの電子装置の例として、ラップトップパーソナルコンピュータ（ラップトップ）を利用することができ、この場合、このラップトップの内部構成要素であるリードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、グラフィックプロセッサ、中央処理装置（ＣＰＵ）、ネットワークインターフェイスカードなどが利用可能なリソースとなる。上記に及び図３に示すように、リソースの計算は、装置を検出すること（ステップ３１１）、そして次に装置リソースをモデル化すること（ステップ３１３）を必要とする。
【００２９】
さらに、モデル化（ステップ３１３）に関して、システムは、特定の構成要素を識別して、各構成要素の総処理能力を収集する。従って、システムは、各構成要素の現在の使用量を計算する（ステップ３１５）際に、構成要素の総処理能力を利用することにより、この構成要素のアイドル割合を計算することもできる（ステップ３１７）。同様に、システムは、接続の使用量を計算する（ステップ３１５）際に、構成要素をモデル化する（ステップ３１３）際に収集した情報を利用することにより、この接続の利用可能な帯域幅を計算することもできる（ステップ３１７）。最後に、システムは、これらの結果を結果の組に編成しなければならない（ステップ３１９）。
【００３０】
さらに、計算（ステップ３００）は、複数の選択された装置のうちの単一の装置に対して行われ、従って装置毎に計算を行わなければならない。各装置が計算された後、システムは、この時点で大量の別個の装置データを有しているので、このデータを処理して利用可能なシステムリソースを確認しなければならない。従って、システムは、結果の組を受け取り（ステップ４１１）、各結果の組から抽出したリソースデータを分類する（ステップ４１４）ことにより、計算した複数の別個の電子装置の各々のリソースを集計する（ステップ４００）。その後、システムは、全体的なリソースコンポーネントの利用可能性を計算する。
【００３１】
従って、システムは、タスク要求を待つ間、確立したグループ及び集計したリソースに関して絶えずモニタ、最適化、再モデル化を行う。換言すれば、システムは、最初のモデルが完成した（ステップ３００及びステップ４００）後、この完成したモデルを統計的最適化に利用する。
【００３２】
例えば、システムは、同等のシステム接続を有する同等の電子装置であるラップトップＡ及びラップトップＢという２つのラップトップを検出した場合、同等に分散されるようにモデルを最適化することができる。さらに、ユーザがラップトップＡ上でウェブブラウジングなどの活動を開始した場合、ラップトップＡの利用可能なリソースは明らかに減少する。システムは、この減少を検出する（ステップ５１７）と、分散を再モデル化して最適化し直す。
【００３３】
別の例では、最先端のプロセッサを含み、５６ｋモデムを介してシステムに接続するラップトップＡと、最先端のプロセッサよりも相対的に遅い中レベルのプロセッサを含み、１ＧＩＧのＮＩＣを介してシステムに接続するラップトップＢとがシステムに接続した場合、システムは、装置毎に障害を認識し、モデルを統計的に最適化してタスクを分散する。従って、ラップトップＡのプロセッサはラップトップＢよりも高速であるが、両ラップトップのネットワーク接続が、比例的に最適化アルゴリズムに寄与する。
【００３４】
また、モニタ及び最適化を動的かつ連続的に行っているが、これらの周波数は、トグル又は調整することができる。また、一般に、回帰又は標準偏差などの統計的技術を使用して最適化を完了しているが、他の統計的方法を使用することもできる。従って、最適化アルゴリズムを調整又はトグルすることもできる。
【００３５】
ここで、上述したように、構成要素毎に複数の変数が存在するので、装置内の各構成要素をモニタしなければならない。従って、以下、図５を参照しながら、構成要素のスケールで装置をモニタすること（ステップ５００）について説明する。
【００３６】
まず、計算した複数の別個の電子装置のリソースをモニタする（ステップ５００）際に、最初の最適化（ステップ５１０）を行われなければならない。この最初の最適化（ステップ５１０）では、システムが、モデルを利用して、最も速いタスク処理に最適な分散を計算する。最初の最適化（ステップ５１０）後、電子装置内の特定の構成要素に割り当てられた第１の変数を、アイドル時間に等しい値又はリソースの利用可能性を示す値に設定（ステップ５１１）しなければならない。次に、タイマを設定して始動する（ステップ５１３）。このタイマは、システムがどれほどの頻度で構成要素の使用量をチェックするかを調整する。タイマが終了すると、構成要素の現在のアイドル時間をチェックして第２の変数に設定する（ステップ５１５）。その後、第１の変数と第２の変数を比較する（ステップ５１７）。
【００３７】
第１の変数と第２の変数が等しい場合、システムは、タスクフラグをチェックする（ステップ５１９）。タスクフラグが、システム内に分散されるのを待っているタスクが存在しないことを意味する偽である場合、システムは、タイマをリセットして再びカウントを行う。一方、タスクフラグが真である場合、システムは、タスクの受け取り／タスクセグメントの分散に進む（ステップ６００）。
【００３８】
第１の変数と第２の変数が等しくない場合、第２の変数値が第１の変数値に取って代わり、システムは、最適化のやり直し（ステップ５１８）に進む。最適化のやり直し（ステップ５１８）後、タスクフラグをチェックし（ステップ５１９）、上述したようにモニタを続行し、又はタスクを処理する（ステップ６００）。
【００３９】
この場合も、モニタ及び最適化が動的かつ絶えず循環し、従ってこのタスク処理モデルは常にアクティブであり更新されるので、システムは、タスク要求を受け取った時に、タスクセグメントをすぐに分散できるかどうかを積極的に知るようになる。また、図１では、受け取り及び分散（ステップ６００）の前にモニタリング（ステップ５００）を行っているが、システムは、いかなる時でも、またいかなるステップ（すなわち、ステップ２００〜ステップ８００）中でも最適化をやり直すことができる。
【００４０】
さらに、タスクセグメントの最初の分散後にシステムを最適化し直した場合、構成要素がタスクセグメントを受け取った時点で構成要素の利用可能性が変化するので有利であろう。
【００４１】
モニタ及び最適化（ステップ５００）により、タスクセグメントの予測可能性も生まれる。すなわち、システムは、共有されるコンピューティングプラットフォームを常にモニタして最適化するので、特定の装置上のタスクセグメントの処理にかかる推定時間が分かるようになる。
【００４２】
図６に関して、システムは、タスクを受け取って、複数の別個の電子装置のうちの少なくとも１つの電子装置のリソースにタスクセグメントを分散する（ステップ６００）ために、一般的には、最初に１つの電子装置とハンドシェイクする必要がある。従って、システムは、電子装置からタスク要求を受け取り（ステップ６１１）、利用可能なリソースの閾値パーセンテージを検証して（ステップ６１２）、システムが利用可能なリソースを有していない場合には、タスクを処理する要求を拒否するようになる。或いは、システムは、タスク要求の受け取りは確認するものの、さらなるリソースが利用可能になるまで処理を拒否すること、或いはこのタスク要求をタスク要求キューに加えることができる。このキューは、先入れ先出しキュー、又は後入れ先出しスタックとすることができる。また、リソースの検証は、最適化及びモニタリングに基づくことができるが、計算（ステップ３００）などの別のステップに基づくこともできる。
【００４３】
システムは、検証（ステップ６１２）後に、ハンドシェイクを完了してタスク自体を待っている要求を確認する（ステップ６１３）。システムは、タスクを受け取る（ステップ６１４）と、このタスクをタスクセグメントに分割し（ステップ６１５）、最適化モデルに基づいて、各セグメントの対象とする接続及び装置リソースを確立する（ステップ６１６）。また、既にモデルが最適化されているので、システムは、タスクセグメントをこれらの割り当て対象に即座に提出して（ステップ６１７）、完了時間を推定することができる。
【００４４】
システムは、受け取り及び分散（ステップ６００）後、戻ってくる処理済みのタスクセグメントを編成するのを待つ（ステップ７００）。システムは、タイマを使用して、セグメントの推定処理時間に等しい長さの時間をカウントする（ステップ７１１）。その後、システムは、タスクセグメントの受け取りフラグをチェックする（ステップ７１４）。タスクセグメントの受け取りフラグが真である場合、タスクセグメントが受け取られており、システムは、受け取ったセグメントの編成に進む。タスクセグメントの受け取りフラグが偽である場合、タスクセグメントが受け取られておらず、システムは、タイマをリセットして（ステップ７１３）再びカウントする（ステップ７１１）。システムは、指定されたカウントループ回数後にもタスクセグメントが受け取られない場合、終了機能（図示せず）を有することができる。
【００４５】
受け取り及び編成（ステップ７００）は、タスクセグメント毎に行わなければならない。従って、全体的には、システムが、処理タスクセグメントの組を待ち、関連するタスクセグメント受け取りフラグＲＦｉをチェックし、処理済みのタスクセグメントを全て受け取った後、又は終了機能を実行した後に、セグメント受け取りフラグが真である（ＲＦｉ＝１）処理済みタスクセグメントｉの合計Σを編成する。
【００４６】
さらに、システムは、紛失したタスクセグメント又は不完全なタスクセグメントを有する場合、この不完全なタスクセグメントのための修正機能（ステップ８００）を有することができる。
【００４７】
例えば、システムは、タスクセグメントを編成した（ステップ７００）後、不完全なデータ、破損データ、又は紛失データを求めてタスクセグメント及びその関連フラグを見直す（ステップ８００）。システムは、セグメントを見直して、あらゆる順序で又は同時にフラグをチェックすることができる。システムは、上記エラーのいずれかを求めてタスクセグメントを見直すことができ、エラーが見つかった場合には、エラーフラグを真に設定する（ステップ８１１）。その後、システムは、エラーフラグをチェックする（ステップ８１５）。エラーフラグが偽である場合、システムは終了する。エラーフラグが真である場合、システムは、マークされたタスクセグメントを再送して再処理する（ステップ６１５／６１６）。システムは、再提出後に、再び処理済みタスクを編成するのを待たなければならない（ステップ７００）。
【００４８】
上記の実施形態に加え、一部又は全部の転送にセキュリティ及び圧縮の層を加えることもできる。例えば、タスクセグメント及び完了したタスクセグメントに対して暗号化アルゴリズムを実行することができる。さらに、グループの選択は、セキュアな接続、アクセスレベル、又はメンバーの暗号化能力に基づくことができる。さらに、システムは、セキュリティ及び利用可能なリソースを求めるタスク要求に基づいてタスクセグメントの分散を選択することもできる。これらの問題については、上記の実施形態内の、例えば、選択、最適化及びモニタ、計算などのあらゆるステップにおいて対処することができる。
【００４９】
システムは、共有処理されるタスクの種類に関してあらゆるタスクを計算することができる。しかしながら、上述したシステムの利点は、そのスーパーコンピューティング能力にある。従って、複雑な画像生成、大規模サンプリング計算、トランスコーディングなどが上述したタスクタイプの例である。
【００５０】
例えば、個々のラップトップがタスクを受け取って、例えばカムコーダからの映画などの映画をトランスコードし、この映画をＹｏｕＴｕｂｅ（登録商標）．ｃｏｍなどのウェブページにアップロードできるようにする場合、このラップトップは、映画の１フレームをトランスコードするのに７時間かかることがある。しかしながら、上記のシステムでは、タスク要求を受け取って映画をトランスコードする場合、ＹｏｕＴｕｂｅ（登録商標）．ｃｏｍに映画をアップロードしながらリアルタイムで映画をトランスコードして、システム内の全てのラップトップに対してフレームを同時にレンダリングできるようにすることができる。さらに、２台のラップトップが存在する場合、フレームの総数が２で除算される。さらに、Ｘ台のラップトップの場合には、フレームの総数がＸで除算される。従って、システムが、１台のラップトップしか有しておらず、これが７時間毎に１つのフレームを計算する場合、百万フレームを有する映画をトランスコードするには数年かかることになる。しかしながら、システムが、同様の能力を有する５０万台のラップトップを有する場合、映画を約１４時間＋その他の処理オーバヘッドでトランスコードすることができる。
【００５１】
同様に、高解像度画像をレンダリングするには、１台のラップトップでは３０分かかることがある。しかしながら、このシステムでは、画像を分割して利用可能なプロセッサ間で分散し、各別個のプロセッサが異なる写真部分を（１画素又は画素の組で）レンダリングするようにすることができるので、システムに接続された電子装置の数だけレンダリング時間を短縮することができる。
【００５２】
図１０ａ〜図１０ｂ、図１１及び図１２は、１つのＰＣが同じ映画を単独でトランスコードした場合よりもシステムが２０倍〜４０倍の速さで映画をトランスコードすることの証明である。
【００５３】
図１０ａは、ある時間にわたるＰＣによるＣＰＵ使用量であり、図１０ｂは、ある時間にわたるＣＰＵのアイドル状態であり、図１０ｃは、ある時間にわたる本システムによるＣＰＵ使用量である。図１０ａと図１０ｂ、図１０ｃと図１０ｂを比較すると、ＣＰＵの使用がアクティブな時にはアイドル状態が低いことが分かる。同様に、図１０ａと図１０ｃを比較すると、本システムによるＣＰＵ使用量は、ＰＣによるＣＰＵ使用量とは無関係である。また、これらの図を比較すると、ＣＰＵがある特定の時間、すなわち９だけ増分する間にわたってアイドル状態であった後、本システムによるＣＰＵ使用量は高くなるが、ＰＣによるＣＰＵ使用が開始すると、本システムによるＣＰＵの使用が直ちに停止していることが分かる。これらの関係は、図１０ｃの４つのピークの組及び図１０ａ内の３つのピークの組によって明らかに証明されている。
【００５４】
図１１では、ＰＣのＣＰＵ使用量が１００％である。この使用量がＰＣによる使用量である場合、ＣＰＵがフル稼働しているので、このＣＰＵを本システムのリソースとして利用することはできない。しかしながら、物理メモリはほんの４４％である。従って、物理メモリは、６６％がアイドル状態であり、依然として本システムに利用可能なリソースである。システムは、構成要素の現在の使用量が５０％などの指定量を越えた場合には、決してその構成要素を使用しないという構成要素の閾値利用可能性を含むことができる。この閾値が満たされた場合、システムは、その構成要素に利用不可能なリソースとしてラベルを付けることができる。従って、図１１の構成要素に５０％の閾値を使用した場合、ＣＰＵが利用できない間でも物理メモリは利用可能である。
【００５５】
スクリーンショットである図１２では、システム内のＰＣが、フレームをトランスコードするという分散されたタスクを完了するまでの残り時間を推定している（すなわちＥＴＡ  ０６ｈ３９ｍ３８ｓ）。さらに、フレームが４つの象限などのセグメントに分割され、このＰＣがこれらのセグメントの１つのみ、すなわち１つの象限を処理するように指示されている場合、このＰＣがトランスコードを完了するまでの時間はセグメント数によって除算され、すなわち６ｈ４０ｍ／４＝１ｈ４０ｍとなる。
【００５６】
代替の実施形態では、システムが上述のステップを交互に又は同時に行うことができる。従って、図９Ａ〜図９ｆで説明したように、各ステップを単独で行うことができ、これらのステップの複数の組み合わせをグループ化することができる。
【００５７】
図９ａには、システムがリソースを計算し、タスクを受け取って、これらのリソース間でタスクセグメントを分散する本発明の実施形態を示す。
【００５８】
図９ｂには、システムがグループを選択し、リソースを計算し、タスクを受け取って、これらのリソース間でタスクセグメントを分散する本発明の実施形態を示す。
【００５９】
図９ｃには、システムがリソースを計算し、リソースを集計し、タスクを受け取って、これらのリソース間でタスクセグメントを分散する本発明の実施形態を示す。
【００６０】
図９ｄには、システムがリソースを計算し、リソースをモニタし、タスクを受け取って、これらのリソース間でタスクセグメントを分散する本発明の実施形態を示す。
【００６１】
図９ｅには、システムがリソースを計算し、タスクを受け取り、これらのリソース間でタスクセグメントを分散し、処理済みのタスクセグメントを受け取って、受け取った処理済みのセグメントを編成する本発明の実施形態を示す。
【００６２】
図９ｆには、システムがリソースを計算し、タスクを受け取り、これらのリソース間でタスクセグメントを分散し、処理済みのタスクセグメントを受け取り、これらの受け取った処理済みのセグメントを編成して、エラーを修正する本発明の実施形態を示す。
【００６３】
図１３のネットワークインターフェイス１００２及びプロセッサ１００１を有する電子装置１０００のように、システムをハードウェアで具体化することもできる。プロセッサは、選択モジュール１０２０、計算モジュール１０３０、集計モジュール１０４０、モニタモジュール１０５０、分散モジュール１０６０、編成モジュール１０７０、及び修正モジュール１０８０をさらに有する。或いは、このハードウェア構成を、図９Ａ〜図９ｆの実施形態と同様のモジュール設定を有するように構成することもできる。
【００６４】
また、このシステムを、クライアントのフレームワークを最適化するサーバシステムとすることもできる。図１４では、システムＡが、ネットワーク接続１００２及びプロセッサ１００１を有する電子装置１０００ａを有する。プロセッサ１００１は、上述したモジュールの組み合わせのいずれかを含むことができる。電子装置１０００ａは、電子装置１０００．０、１０００．１及び１０００．ｊへの仮想接続ａ−０、ａ−１及びａ−ｊをそれぞれ可能にするクラウドＣへの物理接続３を有する（この場合、ｊはシステムに接続された電子装置の総数を表す整数である）。各電子装置１０００．０〜１０００．ｊは、クラウドＣへの物理接続３を有するネットワークインターフェイス２、及びリソース１を有する。
【００６５】
例えば、サーバの実施形態では、Ｓｏｎｙ社のＶａｉｏラップトップコンピュータなどのラップトップをサーバとすることができ、このＶａｉｏサーバ１０００ａが、Ｖａｉｏ分散アプリケーションを提供して、クライアント１０００．０〜１０００．ｊを管理することができる。さらに、Ｖａｉｏサーバ１０００ａは、帯域幅推定器を使用してネットワーク上の時間を最小化することにより、応答時間のピングを行うことにより、及び利用可能なプロセッサをシミュレーションでモデル化して統計値を収集することにより、ネットワークをモデル化することができる。従って、Ｖａｉｏの排他的クラウドＣでは、モデルがＶａｉｏサーバ１０００ａによって動的に更新される。
【００６６】
モデルが構築されると、Ｖａｉｏサーバ１０００ａは、タスク及び接続速度が要求する処理能力、セキュリティアクセス、又はモデルを記述した使用認可及び追跡に基づいて、クラウドＣ全体にわたってタスクセグメントを分散することができる。また、クライアント１０００．０〜１０００．ｊは、複数のシステム、ネットワーク又はグループに加入することができる。
【００６７】
或いは、このシステムを、自己発見クライアントシステムとすることもできる。図１５では、システムＢが、ネットワーク接続１００２及びプロセッサ１００１を有する電子装置１０００ｂを有する。サーバシステムと同様に、電子装置１０００ｂのプロセッサ１００１は、上述したモジュールの組み合わせのうちのいずれかを含むことができる。電子装置１０００ｂは、電子装置１０００．０、１０００．１及び１０００．ｊ（ｊは、システムに接続された電子装置の総数を表す整数である）への仮想接続ｂ−０、ｂ−１及びｂ−ｊを可能にするクラウドＣへの物理接続３をそれぞれ有する。各電子装置１０００．０〜１０００．ｊは、クラウドＣへの物理接続３を有するネットワークインターフェイス２、及びリソース１を有する。しかしながら、自己発見クライアントシステムでは、システムＢ内のあらゆる電子装置が分散モデルを形成して最適化することができる。
【００６８】
例えば、Ｓｏｎｙ社のＶａｉｏラップトップコンピュータなどのラップトップクライアント１０００ｂ上の自己発見アプリケーションプログラミングインターフェイス（ＡＰＩ）は、システムＢ内で能力を明らかにすることができる。このＡＰＩは、ハンドシェイクタイプの通信、すなわち「繋がっていますか？」「繋がっています、アイドル状態なので作業できますよ」という通信で他のＳｏｎｙ社のＶａｉｏクライアント１０００．１〜１０００．ｊに接続する。その後、Ｓｏｎｙ社のＶａｉｏクライアント１０００ｂは、他のＳｏｎｙ社のＶａｉｏクライアント１０００．０〜１０００．ｊにスレッドを提案し、リソース３上で実行する。或いは、Ｓｏｎｙ社のＶａｉｏクライアント１０００ｂは、他のＳｏｎｙ社のＶａｉｏクライアント１０００．０〜１０００．ｊに、近隣でどのリソースが利用可能であるかを発見し、スレッドを実行して、いつそれが終了したかを報告するように要求することもできる。
【００６９】
また、上記のいずれかのシステムでは、企業環境におけるブレードコンピュータのようなＣＰＵマルチプライヤを追加することもできる。ＣＰＵマルチプライヤは、ハードドライブを持たず、主にネットワークインターフェイスによる処理能力を有する。従って、マルチプライヤを追加することにより、例えばモニタリングモジュール及び最適化モジュールなどの、システム内のあらゆるモジュールを補助することができる。
【００７０】
同様に、古い電子製品及び新しい電子製品をシステムに追加することもできる。例えば、必ずしも古いコンピュータをアップグレードする必要はない。古いコンピュータをシステムに追加し、ネットワーク上の総処理能力にアクセスして、タスクを分散し、オフロードし、又は共有するようにすることができる。また、この古いコンピュータが、システム内の他の電子装置と同種である必要はない。古いコンピュータは、あらゆる異なるフォームファクタ、すなわちＬｉｎｕｘ（登録商標）、Ｌｉｎｕｘ（登録商標）組み込み型、Ｗｉｎｄｏｗｓ（登録商標）などであってもよく、又はあらゆる構成要素ブランド、すなわちＡＭＤ又はＩｎｔｅｌを含むこともできる。さらに、通常は共有コンピューティングに付随しないＴＶ、ＤＶＲなどのその他の電子装置を追加することもできる。従って、本発明は、システムが家庭内の装置に接続し、累積アイドル時間、リソースタイプ、すなわちグラフィックプロセッサ、中央処理装置又は当業者に周知の他のあらゆる種類のプロセッサを記述し、全ての利用可能な装置にタスクセグメントを分散できるようにするものである。
【００７１】
現在のグリッドコンピューティングは企業向けであり、一般消費者による利用向けではないので、リソースのマーケティング及び販売は、システムの別の態様となり得る。従って、上記のシステムでは、電子装置の所有者が、そのアイドル状態の処理能力をサードパーティシステムによって使用できるようにすることができる。このサードパーティは、提供された処理能力に比例して所有者に補償を行うことができる。従って、所有者は、自身のリソースをサードパーティに販売し、これらのリソースを慈善行為に提供し、サードパーティに大量の記憶リソースを提供し、又はこれらの全てを提供することができる。また、電子装置の所有者に処理能力の提供を奨励するために、映画チケット、又はオンライン映画を購入するためのポイント、或いは慈善的なプロセッサの提供に対する税控除などの報奨を与えることもできる。
【００７２】
従って、本発明の実施形態は、リソースを計算してセグメントを分散するためのシステムを生産して提供するものである。いくつかの実施形態を参照しながら本発明をかなり詳細に説明したが、本発明は、本発明の思想又は範囲から逸脱することなく様々な形で具体化することができる。従って、以下の特許請求の範囲を、本明細書に含まれる実施形態の説明に決して限定すべきではない。
【符号の説明】
【００７３】
１０００：電子装置
１００１：メモリ
１００２：ネットワークインターフェイス
１００３：リソース計算及びタスク分散アプリケーション
１００５：ＣＰＵ
１０２０：選択モジュール
１０３０：計算モジュール
１０４０：集計モジュール
１０５０：モニタモジュール
１０６０：分散モジュール
１０７０：編成モジュール
１０８０：修正モジュール
【図１】
2013546067.tif 000003
【図２】
2013546067.tif 000004
【図３】
2013546067.tif 000005
【図４】
2013546067.tif 000006
【図５】
2013546067.tif 000007
【図６】
2013546067.tif 000008
【図７】
2013546067.tif 000009
【図８】
2013546067.tif 000010
【図９ａ】
2013546067.tif 000011
【図９ｂ】
2013546067.tif 000012
【図９ｃ】
2013546067.tif 000013
【図９ｄ】
2013546067.tif 000014
【図９ｅ】
2013546067.tif 000015
【図９ｆ】
2013546067.tif 000016
【図１０ａ】
2013546067.tif 000017
【図１０ｂ】
2013546067.tif 000018
【図１０ｃ】
2013546067.tif 000019
【図１１】
2013546067.tif 000020
【図１２】
2013546067.tif 000021
【図１３】
2013546067.tif 000022
【図１４】
2013546067.tif 000023
【図１５】
2013546067.tif 000024
【国際調査報告】
2013546067.tif 000025