(57)【要約】【課題】グリッド性能を向上させる方法を提供する。【解決手段】本方法は、一実施形態において、作業単位をグリッドエグゼキュータに送り、グリッドエグゼキュータの性能に基づいてトレーニングデータを作成し、トレーニングデータを介してニューラルネットワークをトレーニングする。トレーニングデータは、入力および出力データの対を含み、入力データは、作業単位の種類であり、出力データは、グリッドエグゼキュータのサービスの強さである。ニューラルネットワークがトレーニングされると、作業単位の種類をニューラルネットワークに入力し、かつ、ニューラルネットワークからサービスの強さを出力として受信することによって、後続の作業単位によってグリッドエグゼキュータが選択される。グリッドエグゼキュータは、その後、ニューラルネットワークから出力されたサービスの強さに基づいて選択される。【選択図】図１
2006331425.tif 000002
【特許請求の範囲】
【請求項１】
第１の複数の作業単位を第１の複数のグリッドエグゼキュータへ送るステップと、
前記第１の複数のグリッドエグゼキュータの性能に基づいて、トレーニングデータを作成するステップと、
前記トレーニングデータを介してニューラルネットワークをトレーニングするステップと、
第２の複数のグリッドエグゼキュータを前記ニューラルネットワークを介して選択するステップとを含む、方法。
【請求項２】
第２の作業単位を前記第２の複数のグリッドエグゼキュータへ並列的に送るステップをさらに含む、請求項１に記載の方法。
【請求項３】
サービスの強さを各前記第１の複数のグリッドエグゼキュータから受信するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記トレーニングデータを作成する前記ステップは、
入力データと出力データとの複数の対を前記性能に基づいて作成するステップをさらに含み、前記入力データは、前記第１の複数の作業単位の複数の種類を備え、前記出力データは、前記第１の複数のグリッドエグゼキュータの前記サービスの強さを備える、請求項３に記載の方法。
【請求項５】
前記トレーニングデータを作成する前記ステップは、
前記第１の複数のグリッドエグゼキュータにおける前記複数の種類についての応答時間に基づいて、前記複数の種類を選択するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記選択ステップは、
前記第２の作業単位の種類を前記ニューラルネットワークに入力するステップと、
第２のサービスの強さを前記ニューラルネットワークから受信するステップとをさらに含む、請求項２に記載の方法。
【請求項７】
前記選択ステップは、
前記ニューラルネットワークからの前記第２のサービスの強さに基づいて、前記第２の複数のグリッドエグゼキュータを選択するステップをさらに含む、請求項６に記載の方法。
【請求項８】
コンピュータに
サービスの強さを各第１の複数のグリッドエグゼキュータから受信するステップと、
前記サービスの強さに基づいて、前記第１の複数のグリッドエグゼキュータの一部を選択するステップと、
第１の複数の作業単位を前記第１の複数のグリッドエグゼキュータの前記一部へ並列的に送るステップと、
前記第１の複数のグリッドエグゼキュータの前記一部の性能に基づいて、トレーニングデータを作成するステップと、
前記トレーニングデータを介してニューラルネットワークをトレーニングするステップと、
前記ニューラルネットワークを介して第２の複数のグリッドエグゼキュータを選択するステップとを実行させるためのコンピュータプログラム。
【請求項９】
第２の作業単位を前記第２の複数のグリッドエグゼキュータへ並列的に送るステップをさらに含む、請求項８に記載のコンピュータプログラム。
【請求項１０】
前記トレーニングデータを作成する前記ステップは、
入力データと出力データとの複数の対を前記性能に基づいて作成するステップをさらに含み、前記入力データは、前記第１の複数の作業単位の複数の種類を備え、前記出力データは、前記第１の複数のグリッドエグゼキュータの前記一部の前記サービスの強さを備える、請求項８に記載のコンピュータプログラム。
【請求項１１】
前記トレーニングデータを作成する前記ステップは、
前記第１の複数のグリッドエグゼキュータの前記一部における前記複数の種類についての応答時間に基づいて、前記複数の種類を選択するステップをさらに含む、請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記選択ステップは、
前記第２の作業単位の種類を前記ニューラルネットワークに入力するステップと、
第２のサービスの強さを前記ニューラルネットワークから受信するステップとをさらに含む、請求項９に記載のコンピュータプログラム。
【請求項１３】
前記選択ステップは、
前記ニューラルネットワークからの前記第２のサービスの強さに基づいて、前記第２の複数のグリッドエグゼキュータを選択するステップをさらに含む、請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記受信するステップは、
利用可能なサービスを各前記第１の複数のグリッドエグゼキュータから受信するステップをさらに含む、請求項８に記載のコンピュータプログラム。
【請求項１５】
各第１の複数のグリッドエグゼキュータから、サービスの強さと、利用可能なサービスとを受信するステップと、
優先度と、前記サービスの強さおよび利用可能なサービスのうちの１つとに基づいて、前記第１の複数のグリッドエグゼキュータの一部を選択するステップと、
第１の複数の作業単位を前記第１の複数のグリッドエグゼキュータの前記一部に並列的に送るステップと、
前記第１の複数のグリッドエグゼキュータの前記一部の性能に基づいて、トレーニングデータを作成するステップと、
前記トレーニングデータを介してニューラルネットワークをトレーニングするステップと、
前記ニューラルネットワークを介して第２の複数のグリッドエグゼキュータを選択するステップとを含む、方法。
【請求項１６】
第２の作業単位を前記第２の複数のグリッドエグゼキュータへ並列的に送るステップをさらに含む、請求項１５に記載の方法。
【請求項１７】
前記トレーニングデータを作成する前記ステップは、
入力データと出力データとの複数の対を前記性能に基づいて作成するステップをさらに含み、前記入力データは、前記第１の複数の作業単位の複数の種類を備え、前記出力データは、前記第１の複数のグリッドエグゼキュータの前記一部の前記サービスの強さを備える、請求項１５に記載の方法。
【請求項１８】
前記トレーニングデータを作成する前記ステップは、
前記第１の複数のグリッドエグゼキュータの前記一部における前記複数の種類についての応答時間に基づいて、前記複数の種類を選択ステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記選択するステップは、
前記第２の作業単位の種類を前記ニューラルネットワークに入力するステップと、
第２のサービスの強さを前記ニューラルネットワークから受信するステップとをさらに含む、請求項１６に記載の方法。
【請求項２０】
前記選択するステップは、
前記ニューラルネットワークからの前記第２のサービスの強さに基づいて、前記第２の複数のグリッドエグゼキュータを選択するステップをさらに含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、グリッドコンピュータシステムに関し、より特定的には、ニューラルネットワークを介してグリッドエグゼキュータを選択することに関する。
【背景技術】
【０００２】
１９４８年のＥＤＶＡＣコンピュータシステムの開発は、コンピュータ時代の幕開けとして引用されることが多い。それ以来、コンピュータシステムは、非常に高性能の装置に発展してきており、コンピュータシステムは、数多くの互いに異なる設定がなされていることがある。コンピュータシステムは、典型的には、半導体および回路基板などのハードウェアと、コンピュータプログラムとしても知られているソフトウェアとの組み合わせを含む。
【０００３】
数年前、コンピュータシステムは、互いに通信し合わない独立型の装置であった。しかしながら、今日、コンピュータは、インターネットなどのネットワークを介しての接続がますます進んでいる。ネットワークを介して接続されると、しばしばクライアントと称されるコンピュータは、しばしばサーバと称される他のコンピュータに対してサービスを要求する。さらに、ある場合にクライアントとして振舞うコンピュータは、他の場合にはサーバとして振舞うこともある。上記のインターネットの例に加えて、企業は、その様々なコンピュータを共に結合する内部ネットワークを有することが多い。数十万人の従業員を有する大企業は、ネットワークを介して全て接続されている数十万個のコンピュータを有していることもある。これらのコンピュータの多くは、ほとんどの時間、アイドル状態である。例えば、典型的な会社員は、自分の机にコンピュータがあり、毎日数時間それを使って、電子メールをチェックしたり、不定期な文書を作成したり、サーバコンピュータからのサービスを要求をしたりする。１日の残りは、会社員は、電話に出たり、会議に出席したり、家にいたりして、コンピュータは使用されないままでアイドル状態でいる。よって、多くの企業は、コンピュータに何億ドルも投資しているにもかかわらず、そのコンピュータは充分に活用されていない。
【０００４】
このような企業が、この膨大で充分に活用されていないが広く分散しているコンピュータの能力を利用する方法を見出したいと考えるのは当然であろう。アイドル状態のコンピュータを利用するための一手法は、グリッドコンピューティングと呼ばれる。グリッドコンピューティングにおいて、グリッドコントローラは、１台のコンピュータにおけるタスクを複数のさらに小さな作業単位（ＵＯＷ）に分割する。グリッドコントローラは、各作業単位を、ネットワークを介して複数の受信コンピュータに並列的に送信して実行させる。このような受信コンピュータのあるものは、作業単位を実行して、その結果をすぐに送り戻す。他の受信コンピュータは、作業単位を実行して、その結果をさらに遅く送り戻す。さらに他の受信コンピュータは、作業単位を実行することはないか、作業単位を受信はするが実行することはないか、または作業単位を実行はするがその結果を送り戻すことはないかである。グリッドコントローラは、特定の作業単位に関して戻された第１の結果を使用し、他の後に来た結果を無視する。充分に活用されていないコンピュータ資源を利用することによる資金の節約という恩恵に加えて、グリッドコンピューティングは、大きなタスクを数多くのさらに小さな作業単位に分割してそれを並列的に実行することによる性能上の恩恵という利点もある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この性能上の恩恵を高めるために、あるグリッドコントローラは、ネットワークにおけるコンピュータの利用可能性を常時監視して、優先度が最も高い作業単位を、利用可能性が最も高いネットワーク内のコンピュータに送出する。同様に、グリッドコントローラは、優先度が最も低い作業単位を、利用可能性が最も低いネットワーク内のコンピュータに送出する。コンピュータの利用可能性を常時監視する手法は確かに性能を増強させるが、グリッド性能をさらに向上させるさらに高度な手法に対する必要性がある。
【課題を解決するための手段】
【０００６】
提供される方法、装置、システムおよび信号記録媒体は、一実施形態において、作業単位をグリッドエグゼキュータに送り、グリッドエグゼキュータの性能に基づいてトレーニングデータを作成し、トレーニングデータを介してニューラルネットワークをトレーニングする。トレーニングデータは、入力および出力データの対を含み、入力データは、作業単位の種類であり、出力データは、グリッドエグゼキュータのサービスの強さ（Ｓｅｒｖｉｃｅ  Ｓｔｒｅｎｇｔｈ）である。ニューラルネットワークがトレーニングされると、作業単位の種類をニューラルネットワークに入力し、かつ、ニューラルネットワークからサービスの強さを出力として受信することによって、後続の作業単位によってグリッドエグゼキュータが選択される。グリッドエグゼキュータは、その後、ニューラルネットワークから出力されたサービスの強さに基づいて選択される。このようにして、一実施形態において、グリッド性能が向上する。
【発明を実施するための最良の形態】
【０００７】
以降、本発明の様々な実施形態を添付の図面と共に説明する。
【０００８】
図面を参照すると、いくつかの図面を通して、同様の番号は同様の部分を示しており、図１は、本発明の一実施形態に係る、ネットワーク１３０を介してサーバ１３２に接続されたコンピュータシステム１００の高レベルブロック図を示す。一実施形態において、コンピュータシステム１００のハードウェア構成要素は、ニューヨーク州アーモンクのインターナショナルビジネスマシーンズから入手可能なｅＳｅｒｖｅｒ（ＩＢＭ社の登録商標）ｉＳｅｒｉｅｓコンピュータシステムによって実施されてもよい。しかしながら、本発明の実施形態の機構および装置は、任意の適切なコンピューティングシステムに等しく適用されることを、当業者は理解するだろう。コンピュータシステム１００は、サーバ１３２に対するクライアントとして振る舞うが、「サーバ」および「クライアント」という語は、便宜上使用するに過ぎず、他の実施形態においては、ある場合にはサーバとして使用される電子装置が、他の場合にはクライアントとして使用されてもよいし、その逆であってもよい。
【０００９】
コンピュータシステム１００の主要構成要素は、１つ以上のプロセッサ１０１と、  メインメモリ１０２と、端末インターフェイス１１１と、記憶装置インターフェイス１１２と、Ｉ／Ｏ（入力／出力）装置インターフェイス１１３と、通信／ネットワークインターフェイス１１４とを含み、これら全ては、構成要素間通信を行うためにメモリバス１０３と、Ｉ／Ｏバス１０４と、Ｉ／Ｏバスインターフェイス部１０５とを介して結合されている。
【００１０】
コンピュータシステム１００は、１つ以上のプログラム可能な汎用中央処理装置（ＣＰＵ）１０１Ａ、１０１Ｂ、１０１Ｃ、および１０１Ｄを含み、本明細書においてはプロセッサ１０１と総称される。一実施形態において、コンピュータシステム１００は、比較的大きなシステムに特有の複数のプロセッサを含むが、代わりに、他の実施形態においては、コンピュータシステム１００は、単一のＣＰＵシステムであってもよい。各プロセッサ１０１は、メインメモリ１０２に記憶された命令を実行して、１つ以上のレベルのオンボードキャッシュを含んでもよい。
【００１１】
メインメモリ１０２は、データおよびプログラムを記憶するためのランダムアクセス半導体メモリである。他の実施形態においては、メインメモリ１０２は、コンピュータシステム１００の仮想メモリ全体を表し、コンピュータシステム１００に結合された、またはネットワーク１３０を介して接続された他のコンピュータシステムの仮想メモリを含んでもよい。メインメモリ１０２は、概念的には、単一のモノリシック要素であるが、他の実施形態においては、メインメモリ１０２は、キャッシュおよび他のメモリ装置の階層構造のようないっそう複雑な機構である。例えば、メインメモリ１０２は、複数のレベルのキャッシュに存在してもよく、これらのキャッシュは、あるキャッシュが命令を保持する一方で他のキャッシュは単数または複数のプロセッサによって使用される非命令データを保持するように、機能別にさらに分割されてもよい。メインメモリ１０２は、さらに分散されて、様々な、いわゆる非一様メモリアクセス（ＮＵＭＡ）コンピュータアーキテクチャにおいて知られているように、互いに異なるＣＰＵまたはＣＰＵの組に関連付けられてもよい。
【００１２】
メインメモリ１０２は、グリッドマネージャ１５０と、ニューラルネットワーク１５２と、グリッドアプリケーション１５４と、グリッドデータ１５６とを含む。グリッドマネージャ１５０、ニューラルネットワーク１５２、グリッドアプリケーション１５４、およびグリッドデータ１５６は、コンピュータシステム１００におけるメモリ１０内に含まれるように図示されているが、他の実施形態においては、そのいくつかまたは全部が互いに異なるコンピュータシステム上にあってもよく、遠隔で、例えばネットワーク１３０を介してアクセスされてもよい。コンピュータシステム１００は、コンピュータシステム１００のプログラムが複数のさらに小さな記憶要素ではなく大きな単一の記憶要素にアクセスできるに過ぎないかのように振舞うことができるようにする、仮想アドレス指定機構を使用してもよい。よって、グリッドマネージャ１５０、ニューラルネットワーク１５２、グリッドアプリケーション１５４、およびグリッドデータ１５６は、メインメモリ１０２内に含まれるように図示されているが、これらの要素は、必ずしも同一の記憶装置に同時に全てが完全に含まれるわけではない。さらに、グリッドマネージャ１５０、ニューラルネットワーク１５２、グリッドアプリケーション１５４、およびグリッドデータ１５６は、別個の要素として図示されているが、他の実施形態においては、そのいくつか、またはそのいくつかのうちの一部は、共にパッケージ化されていてもよい。
【００１３】
グリッドマネージャ１５０は、グリッドアプリケーション１５４によって生成されたタスクを複数の作業単位に分割して、当該作業単位をサーバ１３２へ送って実行させる。様々な実施形態において、グリッドアプリケーション１５４は、ユーザアプリケーション、サードパーティアプリケーション、オペレーティングシステム、それらの任意の一部、または任意の他の適切な実行可能または解釈実行可能なコードまたはステートメントであってもよい。グリッドマネージャ１５０は、グリッドデータ１５６およびニューラルネットワーク１５２を使用して、作業単位を受信するための適切なサーバ１３２を選択する。
【００１４】
ニューラルネットワーク１５２は、人間の脳に類似した並列コンピューティングモデルであり、適応的な重みによって接続された複数の単純な処理部（プロセッサまたはコード）からなる。様々な実施形態において、ニューラルネットワーク１５２は、監視下または非監視下のいずれにあってもよい。監視下にあるニューラルネットワーク１５２が従来のプログラムと異なるのは、ニューラルネットワークがどのようにデータを処理するかを伝えるアルゴリズム的なコードをプログラマが書いていないという点である。代わりに、ニューラルネットワークは、所望の入力／出力関係のトレーニングデータをニューラルネットワークに提示することによって、トレーニングされる。非監視下にあるニューラルネットワークは、入力データから統計的に重要な特徴を抽出することができる。監視下にあるニューラルネットワークと異なるのは、入力データのみが、トレーニング中にニューラルネットワークに提示される点である。ニューラルネットワーク１５２は、学習機構を有し、学習機構は、各トレーニングの反復後に適応的な重みを更新することによって動作する。充分なレベルのトレーニングがニューラルネットワーク１５２によって達成されると、例えば、ニューラルネットワーク１５２が、トレーニングデータによって特定された所望の入力／出力関係を生じさせる場合に、ニューラルネットワーク１５２のトレーニングは終了し、ニューラルネットワーク１５２は、その適応的な重みを更新することはもはやない。代わりに、ニューラルネットワーク１５２は、実行モードに入り、そこにおいて、ニューラルネットワーク１５２は、入力データを受信して、トレーニングされた適応的な重みを使用して、出力データを生じさせる。
【００１５】
「ニューラルネットワーク」という名の範疇に入る、互いに異なる種類のコンピューティングモデルが数多く存在する。これらの互いに異なるモデルは、固有のネットワーク配列および学習機構を有する。既知のニューラルネットワークモデルの例には、逆伝搬モデル、適応共鳴理論モデル、自己組織化特徴マップモデル、自己組織化ＴＳＰネットワークモデル、および双方向連想メモリモデルがあるが、他の実施形態においては、任意の適切なモデルが使用されてもよい。
【００１６】
一実施形態において、グリッドマネージャ１５０は、図３、４、および５を参照して以下にさらに述べるような機能を実行するために、プロセッサ１０１上で実行可能な命令、またはプロセッサ１０１上で実行可能な命令によって解釈実行可能なステートメントを含む。他の実施形態においては、グリッドマネージャ１５０は、マイクロコードで実施されてもよい。他の実施形態においては、グリッドマネージャ１５０は、プロセッサを基本としたシステムに代えて、またはそれに追加して、論理ゲートまたは他の適切なハードウェア手法あるいはその両方を介してハードウェアで実施されてもよい。
【００１７】
メモリバス１０３は、プロセッサ１０１と、メインメモリ１０２と、Ｉ／Ｏバスインターフェイス部１０５との間でデータを転送するためのデータ通信経路を提供する。Ｉ／Ｏバスインターフェイス部１０５は、様々なＩ／Ｏ部へ、またはそこからデータを転送するためのシステムＩ／Ｏバス１０４にさらに結合されている。Ｉ／Ｏバスインターフェイス部１０５は、システムＩ／Ｏバス１０４を介して、Ｉ／Ｏプロセッサ（ＩＯＰ）またはＩ／Ｏアダプタ（ＩＯＡ）としても知られている複数のＩ／Ｏインターフェイス部１１１、１１２、１１３、および１１４と通信する。システムＩ／Ｏバス１０４は、例えば、業界標準のＰＣＩバスまたは任意の他の適切なバス技術であってもよい。
【００１８】
Ｉ／Ｏインターフェイス部は、様々な記憶およびＩ／Ｏ装置との通信に対応している。例えば、端末インターフェイス部１１１は、１つ以上のユーザ端末１２１、１２２、１２３、および１２４の接続に対応している。記憶装置インターフェイス部１１２は、１つ以上の直接アクセス記憶装置（ＤＡＳＤ）１２５、１２６、および１２７（典型的には回転磁気ディスクドライブ記憶装置であるが、代わりに他の装置であってもよく、当該装置は、ホストには単一の大規模記憶装置として見えるように構成されたディスクドライブのアレイを含む）の接続に対応している。メインメモリ１０２の内容は、必要に応じて、直接アクセス記憶装置１２５、１２６、および１２７に対して記憶されてもよいし、またはそこから取り出されてもよい。
【００１９】
Ｉ／Ｏおよび他の装置インターフェイス１１３は、様々な他の入力／出力装置または他の種類の装置のいずれかとのインターフェイスを提供する。２つのそのような装置、すなわち、プリンタ１２８およびファクシミリ装置１２９が、図１の実施形態例においては示されているが、他の実施形態においては、数多くの他のそのような装置が存在してもよく、互いに異なる種類のものであってもよい。ネットワークインターフェイス１１４は、コンピュータシステム１００から他のデジタル装置およびコンピュータシステムへの１つ以上の通信経路を提供し、そのような経路は、例えば１つ以上のネットワーク１３０を含んでもよい。
【００２０】
メモリバス１０３は、プロセッサ１０１、メインメモリ１０２、およびＩ／Ｏバスインターフェイス部１０５の間の直接通信経路を提供する比較的単純な単一のバス構造として図１には示されているが、実際には、メモリバス１０３は、階層型、星型、またはウェブ型構造のポイントツーポイントリンクなどの様々な形式のいずれかで配列されてもよい複数の互いに異なるバスまたは通信経路、複数の階層型バス、並列および冗長経路、または任意の他の適切な種類の構成を備えてもよい。さらに、Ｉ／Ｏバスインターフェイス部１０５およびＩ／Ｏバス１０４は、単一のそれぞれの部として図示されているが、コンピュータシステム１００は、実際には、複数のＩ／Ｏバスインターフェイス部１０５または複数のＩ／Ｏバス１０４あるいはその両方を含んでもよい。様々なＩ／Ｏ装置への様々な通信経路からシステムＩ／Ｏバス１０４を分離している複数のＩ／Ｏインターフェイス部が図示されているが、他の実施形態においては、Ｉ／Ｏ装置のいくつかまたは全ては、１つ以上のＩ／Ｏバスに直接接続されている。
【００２１】
図１に示すコンピュータシステム１００は、マルチユーザ「メインフレーム」コンピュータシステムに特有であってもよいような、複数の接続された端末１２１、１２２、１２３、および１２４を有する。典型的には、そのような場合には、接続された装置の実際の数は図１に示すよりも多いが、本発明は、任意の特定のサイズのシステムに限定されない。代わりに、コンピュータシステム１００は、典型的には単一のユーザディスプレイおよびキーボード入力のみを含む単一ユーザシステムであってもよく、または、直接のユーザインターフェイスをほとんどまたは全く有しないが他のコンピュータシステム（クライアント）からの要求は受信するサーバまたは同様の装置であってもよい。他の実施形態において、コンピュータシステム１００は、パーソナルコンピュータ、携帯コンピュータ、ラップトップまたはノートブックコンピュータ、ＰＤＡ（情報携帯端末）、タブレットコンピュータ、ポケットコンピュータ、電話、ページャ、自動車、遠隔会議システム、器具、または任意の他の適切な種類の電子機器として実施されてもよい。
【００２２】
ネットワーク１３０は、コンピュータシステム１００への、またはそこからのデータまたはコードあるいはその両方の通信に適した任意の適切なプロトコルに対応していてもよい。様々な実施形態において、ネットワーク１３０は、コンピュータシステム１００に直接または間接のいずれかで接続された、記憶装置または記憶装置の組合せを表わしてもよい。一実施形態において、ネットワーク１３０は、インフィニバンドに対応していてもよい。他の実施形態において、ネットワーク１３０は、無線通信に対応していてもよい。他の実施形態において、ネットワーク１３０は、電話線またはケーブルのような配線接続通信に対応していてもよい。他の実施形態において、ネットワーク１３０は、イーサネットＩＥＥＥ（電気電子技術者協会）８０２．３ｘ仕様に対応していてもよい。他の実施形態において、ネットワーク１３０は、ＩＰ（インターネットプロトコル）に対応していてもよい。
【００２３】
他の実施形態において、ネットワーク１３０は、構内情報通信網（ＬＡＮ）または高域通信網（ＷＡＮ）であってもよい。他の実施形態において、ネットワーク１３０は、ホットスポットサービスプロバイダネットワークであってもよい。他の実施形態において、ネットワーク１３０は、イントラネットであってもよい。他の実施形態において、ネットワーク１３０は、ＧＰＲＳ（汎用パケット無線サービス）ネットワークであってもよい。他の実施形態において、ネットワーク１３０は、ＦＲＳ（家庭用無線サービス）ネットワークであってもよい。他の実施形態において、ネットワーク１３０は、任意の適切なセルラー式データネットワーク、またはセルに基づく無線ネットワーク技術であってもよい。他の実施形態において、ネットワーク１３０は、ＩＥＥＥ８０２．１１Ｂの無線ネットワークであってもよい。さらに他の実施形態において、ネットワーク１３０は、任意の適切なネットワークまたはネットワークの組合せであってもよい。１つのネットワークを図示しているが、他の実施形態においては、任意の数（０を含む）の（同種または異種の）ネットワークがあってもよい。
【００２４】
サーバ１３２は、グリッドエグゼキュータ１３４を含み、コンピュータシステム１００に関して既に説明したハードウェア構成要素のいくつかまたは全てを含んでもよい。他の実施形態において、サーバ１３２の機能は、コンピュータシステム１００内のアプリケーションとして実施されてもよい。
【００２５】
図１は、コンピュータシステム１００、ネットワーク１３０、およびサーバ１３２の代表的な主要構成要素を高レベルで示すことが意図されており、各構成要素は、図１に示すよりも複雑度が高くてもよく、図１に示す構成要素以外の、またはそれらに加えての構成要素があってもよく、そのような構成要素の数、種類、および構成は様々であってもよいことが理解されるべきである。そのようなさらなる複雑度またはさらなる変形のいくつかの特定の例を、本明細書において示すが、これらは一例に過ぎず、必ずしもそのような変形だけではないことが理解されるべきである。
【００２６】
図１に示す本発明の様々な実施形態を実施する様々なソフトウェア構成要素は、数多くのやり方によって実施されてもよく、様々なコンピュータソフトウェアアプリケーション、ルーチン、構成要素、プログラム、オブジェクト、モジュール、データ構造などを使用することも含まれ、これらは、本明細書において「コンピュータプログラム」または単に「プログラム」と称される。コンピュータプログラムは、典型的には、コンピュータシステム１００内の様々なメモリおよび記憶装置に様々な時に存在する１つ以上の命令を備え、コンピュータシステム１００内の１つ以上のプロセッサ１０１によって読み出されて実行されると、本発明の一実施形態の様々な局面を備えるステップまたは要素を実行するのに必要なステップをコンピュータシステム１００に実行させる。
【００２７】
さらに、本発明の実施形態は、完全に機能するコンピュータシステムの場合において説明してきており、また、以降もその場合において説明するが、本発明の様々な実施形態は、様々な形式のプログラム製品として分配することもでき、本発明は、実際に分配を行うために使用される信号記録媒体の特定の種類に関わらず、等しく適用される。この実施形態の機能を規定するプログラムは、様々な具体的な信号記録媒体を介してコンピュータシステム１００に対して記憶、符号化、および伝達されてもよく、信号記録媒体は、以下のコンピュータ読み取り可能な媒体を含むが、それに限定されない。
（１）例えば、ＣＤ‐ＲＯＭ、ＤＶＤ‐Ｒ、またはＤＶＤ＋Ｒなどの、コンピュータシステムに取り付けられるか、またはその内部にある、読み出し専用メモリまたは記憶装置といった、書き換え可能でない記憶媒体上に固定的に記憶された情報、
（２）例えば、ハードディスクドライブ（例えば、ＤＡＳＤ１２５、１２６、または１２７）、ＣＤ‐ＲＷ、ＤＶＤ‐ＲＷ、ＤＶＤ＋ＲＷ、ＤＶＤ＋ＲＡＭ、またはディスケットなどの、書き換え可能な記憶媒体上に記憶された可変情報、または
（３）コンピュータ、または例えばネットワーク１３０などの電話ネットワークを介するなどして、通信または送信媒体によって伝達された情報。
【００２８】
そのような具体的な信号記録媒体は、本発明の機能を管理および制御する、コンピュータ読み取り可能な、プロセッサ読み取り可能な、または機械読み取り可能な命令またはステートメントを搬送するかまたはそれで符号化されている場合に、本発明の実施形態を表す。
【００２９】
本発明の実施形態は、クライアント企業、非営利組織、政府団体、内部組織構造体などとのサービスの取り決めの一部として伝達されてもよい。本実施形態の局面は、本明細書中で説明する方法のいくつかまたは全てを実行するようにコンピュータシステムを構成し、かつ、その方法を実施するソフトウェアシステムおよびウェブサービスを導入することを含んでもよい。これらの実施形態の局面は、クライアント企業を分析して、分析に応じた助言を作成し、助言の一部を実施するためのソフトウェアを生成し、ソフトウェアを既存の処理およびインフラストラクチャに統合し、本明細書において説明した方法およびシステムの使用を計測し、費用をユーザに割り当て、これらの方法およびシステムの使用に対するユーザへの課金を行うことを含んでもよい。
【００３０】
加えて、以下に説明する様々なプログラムは、それらが本発明の特定の実施形態において実施されるアプリケーションに基づいて識別されてもよい。しかしながら、以下の任意の特定のプログラム名称は、便宜上使用されているだけであって、したがって、本発明の実施形態は、そのような名称によって識別または意味されるあるいはその両方の任意の特定のアプリケーションにおいてのみ使用されることに限られるべきではない。
【００３１】
図１に示す実施形態例は、本発明を限定するように意図されてはいない。実際、他の代替ハードウェアまたはソフトウェアあるいはその両方の環境が、本発明の範囲を逸脱することなく使用されてもよい。
【００３２】
図２は、本発明の一実施形態に係る、システム例から選ばれた構成要素のブロック図を示す。図示のシステム例において、コンピュータシステム１００は、サーバ１３２‐１、サーバ１３２‐２、およびサーバ１３２‐３に対してネットワーク１３０を介して接続されている。各サーバ１３２‐１、サーバ１３２‐２、およびサーバ１３２‐３は、図１を参照して上述したように、サーバ１３２の例である。サーバ１３２‐１は、グリッドエグゼキュータＡ１３４‐１を含み、サーバ１３２‐２は、グリッドエグゼキュータＢ１３４‐２を含み、サーバ１３２‐３は、グリッドエグゼキュータＣ１３４‐３を含む。
【００３３】
コンピュータシステム１００は、グリッドデータ１５６を含み、これは記録２０５、２１０、および２１５を含むが、他の実施形態においては、任意の適切なデータを有する任意の数の記録が存在してもよい。各記録例は、グリッドエグゼキュータ識別子フィールド２２０と、サービスの強さフィールド２２５と、利用可能なサービスフィールド２３０と、作業単位種類フィールド２３５と、作業単位優先度フィールド２４０と、性能統計値フィールド２４５とを含む。
【００３４】
グリッドエグゼキュータ識別子フィールド２２０は、グリッドエグゼキュータＡ１３４‐１、グリッドエグゼキュータＢ１３４‐２、またはグリッドエグゼキュータＣ１３４‐３のような、グリッドエグゼキュータ１３４のうちの１つを識別する。サービスの強さ２２５は、グリッドエグゼキュータ識別子フィールド２２０で識別された関連グリッドエグゼキュータ２２０が自身が提供する他のサービスよりも高速に処理する単数または複数のサービスを示す。利用可能なサービス２３０は、グリッドエグゼキュータ２２０において利用可能なサービスを示し、グリッドエグゼキュータ２２０がサービスを実行する速度は関係ない。サービスの強さ２２５は、特定のグリッドエグゼキュータ２２０についての利用可能なサービス２３０の一部である。
【００３５】
作業単位種類２３５は、グリッドマネージャ１５０がグリッドエグゼキュータ２２０に対して送った作業単位の種類を示す。作業単位優先度２４０は、グリッドアプリケーション１５４によって通知された通りの、またはグリッドマネージャ１５０によって指定された通りの作業単位種類２３５の優先度を示す。性能統計値２４５は、作業単位種類２３５を有する作業単位がグリッドエグゼキュータ２２０へ発行された際の過去の性能を示す。様々な実施形態において、性能統計値２４５は、作業単位種類２３５を処理するための応答時間、またはグリッドエグゼキュータ２２０が作業単位種類２３５を処理するのに利用可能な時間の割合を含んでもよい。
【００３６】
図３は、本発明の一実施形態に係る、グリッドエグゼキュータ１３４を登録するための処理のフローチャートを示す。制御は、ブロック３００において開始する。制御は、その後、ブロック３０５へと続き、グリッドマネージャ１５０は、サービスの強さと、利用可能なサービスとをグリッドエグゼキュータ１３４から受信する。制御は、その後ブロック３１０へと続き、グリッドマネージャ１５０は、グリッドデータ１５６内に（記録２０５、２１０、または２１５のような）記録を作成し、グリッドエグゼキュータの識別子２２０と、グリッドエグゼキュータの報告されたサービスの強さ２２５と、グリッドエグゼキュータ１３４の報告された利用可能なサービス２３０とを記憶する。制御は、その後ブロック３９９へと続き、図３の論理に戻る。
【００３７】
図４は、本発明の一実施形態に係る、トレーニングモードにおいて作業単位の処理するためのフローチャートである。制御は、ブロック４００において開始する。制御は、その後、ブロック４０５へと続き、グリッドマネージャ１５０は、グリッドアプリケーション１５４に基づいて作業単位を作成する。様々な実施形態において、グリッドマネージャ１５０は、グリッドアプリケーション１５４のタスク、機能、要求、メッセージ、割り込み、または動作に応答してまたは基づいてあるいはその両方で、作業単位を作成してもよい。グリッドマネージャ１５０は、作成された作業単位の種類と、作成された作業単位の優先度とをさらに決定する。グリッドマネージャは、作業単位が基礎とするグリッドアプリケーション１５４の優先度に基づいて、作業単位が基礎とするグリッドアプリケーション１５４によって通知された優先度に基づいて、または任意の他の手法に基づいて、作業単位の優先度を決定してもよい。
【００３８】
制御は、その後ブロック４１０へと続き、グリッドマネージャ１５０は、グリッドエグゼキュータ１３４のサービスの強さ２２５と、グリッドエグゼキュータ１３４の利用可能なサービス２３０と、作成した作業単位の種類と、作成した作業単位の優先度とに基づいて、グリッドエグゼキュータ１３４を選択する。一実施形態において、グリッドマネージャ１５０は、作業単位の種類が合致するサービスの強さ２２５を有するグリッドエグゼキュータ１３４を選択してもよい。他の実施形態において、グリッドマネージャ１５０は、グリッドエグゼキュータ１３４の利用可能なサービス２３０またはサービスの強さ２２５のいずれかを使用して、作業単位の優先度に依存してグリッドエグゼキュータ１３４を選択してもよい。例えば、作業単位の優先度が（閾値より）高ければ、グリッドマネージャ１５０は、サービスの強さ２２５が作業単位の種類と合致するグリッドエグゼキュータ１３４を選択してもよいが、作業単位の優先度が（閾値より）低ければ、グリッドマネージャ１５０は、利用可能なサービス２３０を使用してグリッドエグゼキュータ１３４を選択してもよい。よって、グリッドマネージャ１５０は、グリッドマネージャ１５０がサービスの強さ２２５と利用可能なサービス２３０とを受信したグリッドエグゼキュータ１３４の一部を選択する。
【００３９】
グリッドマネージャ１５０は、作成された作業単位の作業単位種類を、選択されたグリッドエグゼキュータ１３４に関連したグリッドデータ１５６内の記録の作業単位種類フィールド２３５に記憶させる。グリッドマネージャ１５０は、作成された作業単位に関連した作業単位優先度を、選択されたグリッドエグゼキュータ１３４に関連した記録内の作業単位優先度フィールド２４０にさらに設定する。
【００４０】
制御は、その後ブロック４１５へと続き、グリッドマネージャ１５０は、選択されたグリッドエグゼキュータ１３４に対して、作成された作業単位を並列的に送出する。すなわち、作業単位は、任意の特定のグリッドエグゼキュータ１３４からの応答を待つことなく、選択された複数のグリッドエグゼキュータ１３４に対して送出される。グリッドエグゼキュータ１３４のうちの少なくとも１つが作業単位を実行し、応答をグリッドアプリケーション１５４に返す。
【００４１】
制御は、その後ブロック４２０へと続き、グリッドマネージャ１５０は、作業単位の並列実行に関連した性能統計データを取り出して、作業単位を実行したグリッドエグゼキュータ２２０に関連した記録の作業統計フィールド２４５内に、作業統計値を記憶させる。
【００４２】
制御は、その後ブロック４２５へと続き、グリッドマネージャ１５０は、サービスの強さ２２５と、作業単位種類２３５と、性能統計値２４５とに基づいて、トレーニングデータを作成する。一実施形態形態において、グリッドマネージャ１５０は、作業単位種類毎に、最良の性能統計値２４５を有する、例えば、応答時間が最小または利用可能性が最大であるグリッドエグゼキュータ２２０（グリッドデータ１５６内の記録）を選択する。グリッドマネージャ１５０は、その後、作業単位種類２３５とサービスの強さ２２５との対を含むトレーニングデータを作成する。制御は、その後ブロック４３０へと続き、グリッドマネージャ１５０は、作業単位種類２３５をニューラルネットワーク１５２に対する入力とし、各対のサービスの強さ２２５をニューラルネットワーク１５２からの出力として、ニューラルネットワーク１５２をトレーニングする。すなわち、グリッドマネージャ１５０は、対の各サービスの強さ２２５を少なくとも閾値割合分の時間の出力としてニューラルネットワーク１５２が作成するまで、作業種類２３５をニューラルネットワーク１５２に対して繰り返し入力する。制御は、その後ブロック４９９へと続き、図４の論理に戻る。
【００４３】
図５は、本発明の一実施形態に係る、トレーニングモードが完了した後の実行モードにおいて作業単位を処理するためのフローチャートを示す。制御は、ブロック５００において開始する。制御は、その後ブロック５０５へと続き、図４のブロック４０５を参照して上述したように、グリッドマネージャ１５０は、グリッドアプリケーション１５４に基づいて作業単位を作成する。
【００４４】
制御は、ブロック５１０へと続き、グリッドマネージャ１５０は、作業単位の種類２３５をニューラルネットワーク１５２に入力する。制御は、その後ブロック５１５へと続き、ニューラルネットワーク１５２は、サービスの強さ２２５を出力として生成する。制御は、その後ブロック５２０へと続き、グリッドマネージャ１５０は、ニューラルネットワーク１５２から出力されたサービスの強さ２２５に基づいて、グリッドデータ１５６からグリッドエグゼキュータ１３４を選択する。一実施形態において、グリッドマネージャ１５０は、ニューラルネットワーク１５２から出力されたサービスの強さと合致するサービスの強さ２２５で、グリッドエグゼキュータ１３４を選択する。
【００４５】
制御は、その後ブロック５２５へと続き、グリッドマネージャ１５０は、グリッドエグゼキュータ識別子２２０によって識別された選択グリッドエグゼキュータ１３４に対して、作業単位を並列的に送出する。制御は、その後ブロック５３０へと続き、選択されたグリッドエグゼキュータ１３４のうちの少なくとも１つが作業単位を実行して、応答をグリッドアプリケーション１５４に返す。
【００４６】
本発明の実施形態例の以上の詳細な説明において、本明細書の一部を構成し、かつ本発明が実施されるであろう特定の実施形態例を例示するに過ぎない添付の図面（同様の番号は、同様の要素を表す）を参照した。これらの実施形態を、当業者が本発明を実施することができるように充分に詳細に説明したが、他の実施形態を使用してもよく、また、論理的、機械的、電気的な変更および他の変更を本発明の範囲から逸脱することなく行ってもよい。本明細書内で使用されたような「実施形態」という用語の別の事例は、必ずしも同一の実施形態を指すものではないが、そうであってもよい。したがって、上記の詳細な説明は、制限的な意味で受け取られるべきではなく、本発明の範囲は、添付の請求項によってのみ規定される。
【００４７】
上記の説明では、本発明の実施形態が完全に理解されるように、多くの具体的な詳細を述べた。しかしながら、本発明は、これらの具体的な詳細なしで実施されてもよい。他の場合において、周知の回路、構成、および手法は詳細には示していない。
【００４８】
添付の図面は、本発明の実施形態例を例示するに過ぎず、したがって、本発明の範囲を制限するものではなく、本発明は、同様に効果的な他の実施形態を許容してもよいことに注意すべきである。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施形態を実施するためのシステム例の高レベルブロック図を示す。
【図２】本発明の一実施形態に係る、システム例から選ばれた構成要素のブロック図である。
【図３】本発明の一実施形態に係る、グリッドエグゼキュータを登録するための処理のフローチャートを示す。
【図４】本発明の一実施形態に係る、トレーニングモードにおける作業単位を処理するためのフローチャートである。
【図５】本発明の一実施形態に係る、実行モードにおける作業単位を処理するためのフローチャートである。
【符号の説明】
【００５０】
１００  コンピュータシステム
１０１  プロセッサ
１０１Ａ〜１０１Ｄ  ＣＰＵ
１０２  メインメモリ
１０３  メモリバス
１０４  Ｉ／Ｏバス
１０５  Ｉ／Ｏバスインターフェイス
１１１  端末インターフェイス
１１２  記憶装置インターフェイス
１１３  入力／出力装置インターフェイス
１１４  ネットワークインターフェイス
１２１〜１２４  ユーザ端末
１２５〜１２７  直接アクセス記憶装置
１２８  プリンタ
１２９  ファクシミリ装置
１３０  ネットワーク
１３２  サーバ
１３４  グリッドエグゼキュータ
１５０  グリッドマネージャ
１５２  ニューラルネットワーク
１５４  グリッドアプリケーション
１５６  グリッドデータ
【図１】
2006331425.tif 000003
【図２】
2006331425.tif 000004
【図３】
2006331425.tif 000005
【図４】
2006331425.tif 000006
【図５】
2006331425.tif 000007