(57)【要約】【課題】個々のワークステーションの保全性パラメータおよび性能パラメータをそのインタラクティブ・ワークロードに関して維持しながら、周知のグリッド計算規格を使用して、コンピュータ・ネットワークのワークステーションの利用不足資源を共用することを可能にする技術を提供すること。【解決手段】ローカル・ワークステーションのワークロードを維持しながら、ワークステーション資源を共用するためのグリッドを実現するワークステーションのネットワークにおいて、グリッド・ワークロードはローカル・ワークロードでの使用の程度に応じてワークステーションに割り当てられる。ＣＰＵ利用率が各ワークステーションで監視され、グリッド・ワークロードは、ワークステーションのインタラクティブな性能に影響を与えず、かつワークステーションのユーザの設定に合致して処理することができる場合にのみ受け入れられる。また、グリッド・ワークロードはワークステーション資源を結合する程度によって分類され、この分類はグリッド・ワークロード割り当てプロセスへのさらなる入力として使用される。【選択図】　図１
2004038972.tif 000002
【特許請求の範囲】
【請求項１】
複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを前記複数のワークステーションのうちの１つに割り当てる方法であって、
前記複数のワークステーションのうちの第１のワークステーションの、ローカル・ワークロードによる利用率を示す活動状態を判定するステップと、
前記活動状態が低い利用率を示すという判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記活動状態が高い利用率を示すという判定に応答して、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップと
を含む方法。
【請求項２】
前記活動状態が高い利用率を示すという判定に応答して、
前記第１のワークステーションで前記グリッド・ワークロードを受け入れるためのワークステーション設定を判定するステップと、
前記ワークステーション設定がＹＥＳである判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記ワークステーション設定がＮＯである判定に応答して、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップとをさらに含む請求項１に記載の方法。
【請求項３】
前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するステップをさらに含み、
前記活動状態が高い利用率を示し、かつ前記ワークステーション設定がＹＥＳであるという判定に応答して、前記グリッド・ワークロードが閾値を下回る程度にワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記グリッド・ワークロードを前記第１のワークステーションに割り当てる請求項２に記載の方法。
【請求項４】
複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを前記複数のワークステーションのうちの１つに割り当てる方法であって、
前記複数のワークステーションのうちの第１のワークステーションの資源をローカル・ワークロードが使用する程度を示す利用率レベルを監視し、該第１のワークステーションの活動状態を、前記利用率レベルが第１の閾値を下回る場合には活動停止中に設定し、前記利用率レベルが前記第１の閾値を上回り、かつ前記第１のワークステーションの活動状態が既に活動停止中または活動中である場合には活動中に設定し、前記利用率レベルが前記第１の閾値を上回り、かつ前記第１のワークステーションの活動状態が既にブロック中である場合にはブロック中に設定するステップと、
前記第１のワークステーションの活動状態をチェックするステップと、
前記第１のワークステーションが活動停止中の場合に、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記第１のワークステーションが活動中の場合に、前記グリッド・ワークロードを受け入れるための第１のワークステーションの設定を判定するステップと、
前記設定がＹＥＳであるという判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記設定がＮＯであるという判定に応答して、前記第１のワークステーションの活動状態をブロック中に設定するとともに、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップと、
前記第１のワークステーションがブロック中の場合に、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップと
を含む方法。
【請求項５】
前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するステップをさらに含み、
前記第１のワークステーションが活動中であり、かつ前記設定がＹＥＳであることに応答して、グリッド・ワークロードが第２の閾値を下回る程度にワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記グリッド・ワークロードを前記第１のワークステーションに割り当てる請求項４に記載の方法。
【請求項６】
複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てる方法であって、
前記複数のワークステーションのそれぞれでハイパーバイザを実行するステップと、
各ハイパーバイザの下で実行され、該ハイパーバイザにより優先権が与えられる第１の仮想マシンでローカル・ワークロードを実行するステップと、
前記グリッドの一部として動作可能なオペレーティング・システムを実行する少なくとも１つの追加の仮想マシンを各ハイパーバイザの下で実行するステップと、
各ローカル・ワークロードによる各ワークステーションの利用率を監視し、該利用率を示すローカル・ワークロード活動レベルを判定するステップと、
前記利用率が第１の閾値を下回ることを前記ローカル・ワークロード活動レベルが示しているという判定に応答して、前記グリッド・ワークロードを実行するために、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用するステップと
を含む方法。
【請求項７】
前記ローカル・ワークロード活動レベルを判定するステップが、前記ローカル・ワークロード活動レベルを、活動停止中、活動中、およびブロック中のカテゴリを含む少なくとも３つのカテゴリのうちの１つに分類するステップを含み、
前記活動停止中のカテゴリは前記利用率が前記第１の閾値を下回ることを示し、
前記活動中のカテゴリは、前記利用率が前記第１の閾値を上回ること、およびワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができるという設定であることを示し、
前記ブロック中のカテゴリは、前記利用率が前記第１の閾値を上回ること、および前記ワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができないという設定であることを示し、
前記ワークステーション資源は、前記ローカル・ワークロード活動レベルが活動停止中または活動中の場合に、前記グリッド・ワークロードを実行するために、前記少なくとも１つの追加の仮想マシンと共用される請求項６に記載の方法。
【請求項８】
前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するステップをさらに含み、
前記ローカル・ワークロード活動レベルが活動中であり、かつ前記ワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加仮想マシンと共用することができることを示すことに応答して、前記グリッド・ワークロードが第２の閾値を下回る程度に前記ワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用する請求項７に記載の方法。
【請求項９】
複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てるシステムであって、
複数のワークステーションのうちの第１のワークステーションの、ローカル・ワークロードによる利用率を示す活動状態を判定するためのワークステーション・モニタと、
前記活動状態が低い利用率を示すという判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるか、または、前記活動状態が高い利用率を示すという判定に応答して、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するためのワークロード・スケジューラと
を含むシステム。
【請求項１０】
前記ワークステーション・モニタは、前記利用率が高い場合に、前記第１のワークステーションに前記グリッド・ワークロードを受け入れるためのワークステーション設定を判定し、
前記ワークロード・スケジューラは、前記活動状態が高い利用率を示すという判定に応答して、前記ワークステーション設定をチェックして、ＹＥＳのワークステーション設定に応答して前記グリッド・ワークロードを前記第１のワークステーションに割り当てるか、またはＮＯのワークステーション設定に応答して他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持する請求項９に記載のシステム。
【請求項１１】
前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するためのグリッド・ワークロード・モニタをさらに含み、
前記活動状態が高い利用率を示し、かつ前記ワークステーション設定がＹＥＳであるという判定に応答して、前記グリッド・ワークロードが閾値を下回る程度にワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記ワークロード・スケジューラが前記グリッド・ワークロードを前記第１のワークステーションに割り当てる請求項１０に記載のシステム。
【請求項１２】
複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てるシステムであって、
複数のワークステーションのうちの第１のワークステーションの資源をローカル・ワークロードが使用する程度を示す利用率レベルを監視し、かつ第１ワークステーション活動状態を、
前記利用率レベルが第１の閾値を下回る場合には活動停止中に設定し、
前記利用率レベルが前記第１の閾値を上回り、かつ前記第１ワークステーション活動状態が既に活動停止中または活動中である場合には活動中に設定し、
前記利用率レベルが前記第１の閾値を上回り、かつ前記第１ワークステーション活動状態が既にブロック中である場合にはブロック中に設定し、
前記第１ワークステーション活動状態が活動中の場合には前記グリッド・ワークロードを受け入れるための第１ワークステーション設定を判定するためのワークステーション・モニタと、
前記第１ワークステーション活動状態をチェックし、
前記第１のワークステーションが活動停止中の場合に、前記グリッド・ワークロードを前記第１ワークステーションに割り当て、
前記第１のワークステーションが活動中の場合に、前記第１ワークステーション設定をチェックし、ＹＥＳの第１ワークステーション設定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるか、またはＮＯの第１ワークステーション設定に応答して、前記第１ワークステーションの活動状態をブロック中に設定するとともに、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持し、
前記第１のワークステーションがブロック中の場合には、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するためのワークロード・スケジューラと
を含むシステム。
【請求項１３】
前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するためのグリッド・ワークロード・モニタをさらに含み、
活動中の第１ワークステーション活動状態およびＹＥＳの第１ワークステーション設定に応答して、前記グリッド・ワークロードが第２の閾値を下回る程度にワークステーション資源をロックすることを前記遅延レベルが示す場合にのみ、前記ワークロード・スケジューラが前記グリッド・ワークロードを前記第１のワークステーションに割り当てる請求項１２に記載のシステム。
【請求項１４】
複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てるシステムであって、
前記複数のワークステーションのそれぞれで実行されるハイパーバイザと、
各ハイパーバイザの下で実行され、該ハイパーバイザにより優先権が与えられる第１の仮想マシンで実行されるローカル・ワークロードと、
各ハイパーバイザの下で実行され、前記グリッドの一部として動作可能なオペレーティング・システムを実行する少なくとも１つの追加の仮想マシンと、
各ローカル・ワークロードによる各ワークステーションの利用率を監視し、該利用率が示すローカル・ワークロード活動レベルを判定するためのワークステーション・モニタと、
前記利用率が第１の閾値を下回ることを前記ローカル・ワークロード活動レベルが示すという判定に応答して、前記グリッド・ワークロードを実行するために、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用するワークロード・スケジューラと
を含むシステム。
【請求項１５】
前記ワークステーション・モニタが前記ローカル・ワークロード活動レベルを、活動停止中、活動中、およびブロック中のカテゴリを含む少なくとも３つのカテゴリのうちの１つに分類し、
前記活動停止中のカテゴリは前記利用率が前記第１の閾値を下回ることを示し、
前記活動中のカテゴリは、前記利用率が前記第１の閾値を上回ること、およびワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができるという設定であることを示し、
前記ブロック中のカテゴリは、前記利用率が前記第１の閾値を上回ること、および前記ワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができないという設定であることを示し、
前記ローカル・ワークロード活動レベルが活動停止中または活動中の場合に、前記グリッド・ワークロードを実行するために、前記ワークロード・スケジューラが前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用する請求項１４に記載のシステム。
【請求項１６】
前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられるワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するためのグリッド・ワークロード・モニタをさらに含み、
前記ローカル・ワークロード活動レベルが活動中であることに応答して、前記グリッド・ワークロードが第２の閾値を下回る程度に前記ワークステーションの資源を前記グリッド・ワークロードがロックすることを前記遅延レベルが示す場合にのみ、前記ワークロード・スケジューラが、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用する請求項１５に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はグリッド計算に係り、特にグリッド計算ワークロードをネットワーク・ワークステーションに割り当てるためのシステムおよび方法に係る。
【０００２】
【従来の技術】
すべての現代の組織では、それが教育機関であっても企業体であっても、デスクトップ・システム（パーソナル・コンピュータ、ワークステーションなど）が普及している。これらのシステムは、ほとんど常時ネットワークに接続されているが、主としてエンド・ユーザの要求と使用に応じたインタラクティブなデスクトップ計算（ワークステーションの「インタラクティブ・ワークロード」と呼ばれる）に適合するものである。これらのシステムの特徴は、これらが比較的資源が豊富であるにもかかわらず（ＣＰＵ（中央演算処理装置）の能力、メモリおよびディスク容量の点で）、一日のうちでほんの僅かな時間しか使用されないことである。これらのシステムが使用される作業のピーク時であっても、これらのマシンの平均的な利用率はこれらの最大能力を遥かに下回るものである。例えば、典型的なソフトウェア開発業者のワークステーションでのＣＰＵ利用率を調査したところ、作業時間帯における平均的なＣＰＵ利用率は１０％を下回り、非作業時間帯では０％近くにまで減少することが判明した。いずれにせよ、ネットワーク接続されたデスクトップ・システムは、膨大な計算資源を表わすものであるが、それらは十分に利用されていない。以下、このような十分に利用されていない資源のことを「利用不足資源」と呼ぶことにする。
【０００３】
過去数年間にわたる、プロセッサの速度ならびにディスクのサイズおよび速度の革命的な増大と、ＲＡＭ（ランダム・アクセス・メモリ）のような他の資源の急速なコストの低下は、新しいワークステーション・アプリケーションの増大する資源要求を遥かに凌駕するものであった。その結果、ワークステーションの資源の利用率は低下し続けている。典型的なワークステーションにおけるＣＰＵの大部分の有用なインタラクティブ・サイクル（または「パワー」）は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を作成し、変更し、維持するために使用されるということも事実として認められている。しかし、現代のシステム・アーキテクチャには、メインＣＰＵからＧＵＩ関連ワークロードの大部分の負担を軽減する専用の複合グラフィック・プロセッサ（またはグラフィック・アダプタ）を含むものが増えており、過剰能力の要因をさらに増加させている。
【０００４】
これらのネットワーク接続されたワークステーションを何らかの形で結合させ、浪費されるはずのＣＰＵサイクルを利用することによってこの過剰能力あるいは余剰能力を有効に活用できるということは明らかに望ましいことである。しかしこのような努力をしようとすると、即座にいくつかの懸念が想起される。これらの潜在的な問題点には、（ｉ）資源共用によりインタラクティブ・ワークロードに関してワークステーションの性能が低下すること、（ｉｉ）外部の共用ワークロードに曝されることによるワークステーションおよびインタラクティブ・ワークロードの保全性に関する懸念、および（ｉｉｉ）分散された資源を有効に活用し管理するために要求されるインフラストラクチャの複雑さが含まれる。
【０００５】
これらの問題点を検討して、いくつかの解決策が提案されている。具体的には、ネットワークの全マシンで資源を共用するための方法と規格が既に開発されており、今もなお改良が続けられている。これは、「グリッド計算」または単に「グリッド」として知られており、ここで用いられる技術は本発明に関する当業者には周知である。グリッドに関する一般的な背景情報が、「Ｔｈｅ　Ｐｈｙｓｉｏｌｏｇｙ　ｏｆ　ｔｈｅ　Ｇｒｉｄ：　Ａｎ　Ｏｐｅｎ　Ｇｒｉｄ　Ｓｅｒｖｉｃｅｓ　Ａｒｃｈｉｔｅｃｔｕｒｅ　ｆｏｒＤｉｓｔｒｉｂｕｔｅｄ　Ｓｙｓｔｅｍｓ　Ｉｎｔｅｇｒａｔｉｏｎ」ｗｗｗ．Ｇｌｏｂｕｓ．ｏｒｇ．、１９９２年６月、Ｉ．　Ｆｏｓｔｅｒ他著と「Ｔｈｅ　Ｇｒｉｄ：Ｂｌｕｅｐｒｉｎｔ　ｆｏｒ　ａ　Ｎｅｗ　Ｃｏｍｐｕｔｉｎｇ　Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ」Ｍｏｒｇａｎ　Ｋａｕｆｍａｎ、１９９９年、Ｉ．
Ｆｏｓｔｅｒ他著に述べられている。
【０００６】
【発明が解決しようとする課題】
提案された開発中のグリッド規格は、グリッドでワークステーションの共用資源を使用することの複雑さを管理する問題点を扱うものである。しかし、典型的なグリッド環境には、グリッドによって割り当てられた作業（グリッド・ワークロードと呼ばれる）を実行することを専用としたワークステーション（またはグリッド・ノード）が含まれる。すなわちそのワークステーションは対処すべきインタラクティブ・ワークロードを有しない。この理由から、開発されたグリッドの技術と規格は上記の他の問題、すなわち、利用不足資源をグリッドと共用する個々のワークステーションにおける性能と保全性の問題には対処しない。したがって、ワークステーションのインタラクティブな性能が損なわれないように、ネットワーク・ワークステーションに割り当てられたいかなるグリッド・ワークロードでも即座に優先使用できることを保証できるように、従来のグリッド方法を改善する必要がある。また、グリッド・ワークロードの実行中に故障または障害が発生してもインタラクティブ・ワークロードの保全性を損なう危険性はないことを保証することが必要である。
【０００７】
これらの理由、および当業者に容易に認識される他の理由から、個々のワークステーションの保全性パラメータおよび性能パラメータをそのインタラクティブ・ワークロードに関して維持しながら、公知のグリッド計算規格を使用するコンピュータ・ネットワークにおいてワークステーションの利用不足資源を共用することを可能にする技術を開発することが望ましい。
【０００８】
【課題を解決するための手段】
本発明は、ワークステーションのインタラクティブな性能または保全性に影響を与えずにネットワーク上のワークステーションの利用不足資源が有効利用されるグリッド計算環境に適用可能な方法および、その方法を実施するシステムを企図する。本発明の目的を実現する上で、方法は、ワークステーション資源の可用性およびグリッド・ワークロードの特徴付けと、そのような特徴付けに依存する、グリッド・ワークロードに対するワークステーション資源の使用を管理する方針の実施を必要とする。ワークステーションは、監視され、グリッドによる使用の可能性に従って特徴付けられる。この特徴付けは、当業者に周知の方法を使用した、ワークステーションのＣＰＵ利用率レベルの分析とリアルタイムの監視に基づいている。グリッド・ワークロードは、長期間にわたってワークステーション資源をそれぞれが結合する程度に従って特徴付けられる。このような特徴付けは、シミュレーション・モデリングを使用するか、またはグリッド・ワークロードの分析によって実行することができる。次に、特定の識別された可用性の状態でどのタイプの１つ以上のグリッド・ワークロードを１つ以上のワークステーションでスケジュールすることができるかを管理する規則が確立され、実施される。すなわち、グリッド・ワークロードは使用可能と特徴付けられたワークステーションでのみスケジュールされ、ワークステーション資源上で特にハードであると特徴付けられたグリッド・ワークロードは完全に活動停止中（アイドル）のワークステーション上でスケジュールされるだけである。このような規則は、ワークステーションがインタラクティブな性能と保全性を期待されるレベルで維持することを保証しながら、グリッドが有用な作業を実行することを可能にする。
【０００９】
【発明の実施の形態】
以下、本発明の好ましい実施形態を示す添付図面を参照して本発明をより詳細に説明するが、当業者であれば、本明細書で説明する本発明を変更することができ、それでもなお、本発明の好適な結果を達成することができるということは理解されよう。したがって、以下の説明は、当業者を対象とした広範な教示的開示であり、本発明を限定するものではない。
【００１０】
グリッド計算環境に関するデバイス、システム、および関連規格、ならびに他のシステムまたは、既知であるか将来的に開発されるかにかかわらず、ネットワーク上でワークステーション資源を共用することを規定した規格は、当業者には周知のものであると想定する。このようなデバイスおよびシステムは、本発明の趣旨を逸脱せずに使用可能な多くの代替的な実施形態のどれでも実施することができる。このようなデバイスおよびシステム、ならびに基礎となる資源共用機構の詳細な説明は本発明の理解には必要ではない。本発明は、そのようなデバイスおよびシステムの動作の方法に対する改善に関する。
【００１１】
各ネットワーク・ワークステーションには、「仮想マシン」として知られるコンピューティング概念を実装するハイパーバイザと呼ばれるソフトウェアを装備することが好ましい。ハイパーバイザは、「Ｓｕｍｍａｒｙ　ｏｆ　Ｖｉｒｔｕａｌ　Ｍａｃｈｉｎｅ　Ｒｅｓｅａｒｃｈ」ＩＥＥＥ　Ｃｏｍｐｕｔｅｒ　Ｍａｇａｚｉｎｅ，１９７４年、第７巻、第６号、３４〜４５頁、Ｒ．Ｐ．　Ｇｏｌｄｂｅｒｇ著の論文に記載されている。仮想マシンは、実行環境をワークステーションのインタラクティブ・ワークロードとその可能なグリッド・ワークロードの間で区分し、グリッド・ワークロードが仮想マシンに含まれ、保護されるようにする。仮想マシンは周知であり、仮想マシンを詳細に取り上げることは本発明の理解には必須ではない。仮想マシンは、本発明の各ネットワーク・ワークステーションにワークステーションのインタラクティブ・ワークロードとワークステーションに割り当てられたグリッド・ワークロードの間である種の論理的な分離を維持させることのできる１つの可能な機構を提供する。
【００１２】
図１を参照すると、コンピュータ・ネットワーク１０には、それぞれが現代のワークステーションに典型的な資源、例えばＣＰＵ、１つ以上のディスク・ドライブ、メモリなどを含んでいる複数のワークステーション２０が含まれる。ここでは、特にＣＰＵ３０を取り上げる。上述のように、ワークステーション２０の資源は十分に利用されておらず、実際にはほとんどの期間アイドル状態にあって、活動を停止している。このようなわけで、余剰のＣＰＵサイクルを、有用な作業を実行するために使用することができるある種の仮想コンピュータ４０に結合することができる。この仮想コンピュータはグリッドまたはグリッド環境として知られており、上記のように周知の技術および規格を使用して作成される。グリッドによって行われる作業はグリッド・ワークロードとして知られており、そのグリッド・ワークロードの構成要素はグリッド計算として知られている。この仮想コンピュータまたはグリッド４０は独立した物理的な存在ではなく、当業者に周知のグリッド計算規格の任意の実施形態かを使用してグリッド計算を実行するように結合され管理されるワークステーション２０の共用余剰ＣＰＵサイクルとして存在する。
【００１３】
ワークステーション２０のインタラクティブな性能のレベルを維持するために、本発明に従って動作するグリッド・システムは各ワークステーションの状態の特徴を維持する。ワークステーション２０の状態は、そのインタラクティブな性能を損なわずにワークステーションのＣＰＵサイクルがグリッド計算を実行するためにどの程度まで使用できるかを示す。図２を参照すると、各ワークステーションはワークステーション・モニタ６０をその中で実行している。ワークステーション・モニタ６０は、ワークステーション２０のオペレーティング・システム（図示せず）上で実行されるプロセスまたはサービスである。ワークステーション・モニタ６０は、最近のワークステーションに装備されている周知のオペレーティング・システム機能によってワークステーションのＣＰＵ利用率レベルをサンプリングし、フィルタリングする。どの時点でも、ワークステーション・モニタ６０は、活動停止中、活動中、またはブロック中という、３つの状態のうちの１つにあるものとして各ワークステーション２０を識別する。この判定は、スクリーンセーバーを起動するか、または省電力活動停止状態に入るかを決定する際に多くのワークステーションが使用する判定と同様または類似したものである。ワークステーション・モニタ６０は、非常に短いＣＰＵ活動バーストが活動状態と誤認されないようにＣＰＵ初期設定データを適切な時定数でフィルタリングすることが必要である。一方、ワークステーション・モニタ６０は、ワークステーション２０が活動停止状態に入ったことを非常に迅速に認識すべきである。ワークステーション２０の状態は、ワークステーション２０のメモリ（図示せず）に記憶されている状態変数７０として、またはそのような情報を記録し、取り出すための当業者に周知の任意の他の方法を使用して維持することができる。ワークステーション２０は、ワークステーション・モニタ６０がマシンのＣＰＵ利用率レベルの変化を認識すると、一定期間にわたってマシンが活動停止中であるとスクリーンセーバーが活動化し、マシンが使用状態に戻ると非活動化するように、活動停止中７０ａと活動中７０ｂの間で遷移する（８０）。ＣＰＵ利用率データをフィルタリングするためにワークステーション・モニタ６０が使用する正確な時定数と、ワークステーション２０が活動状態７０ｂから活動停止状態７０ａに遷移するために必要な活動停止時間量とは、ユーザまたはシステム設計者によって所与のアプリケーションに応じて構成することができる。
【００１４】
ワークステーション２０は、活動状態７０ｂからブロック状態７０ｃにだけ遷移する（９０）ものであってもよい。本発明によれば、本発明を実施するソフトウェアが最初にワークステーション２０にロードされた際、またはワークステーション２０が本発明を実施するグリッド環境で使用するように元々構成されている場合、ユーザ・ダイアログ（図示せず）がユーザに提示され、ワークステーションが活動状態７０ｂにある場合にそのワークステーションをグリッド作業に使用することができるかどうかを尋ねる。ユーザが肯定的な回答を返すと、ワークステーション２０のグリッド設定変数１００はＹＥＳにセットされ、そうでない場合はＮＯにセットされる。ワークステーション・モニタは、ワークステーションを活動停止状態７０ａから活動状態７０ｂに遷移する（８０）と、グリッド設定変数１００の値をチェックする。グリッド設定変数１００の値がＮＯの場合（１００ｂ）、ワークステーション・モニタ６０はワークステーション２０をブロック状態７０ｃに遷移する（９０）。グリッド設定変数の値がＹＥＳの場合（１００ａ）、ワークステーション２０は活動状態７０ｂに留まる。ワークステーション２０がブロック状態７０ｃに留まっている間は、ワークステーション２０ではグリッド計算は受け入れられない。ワークステーション・モニタ６０が上述のような活動停止中の状態を認識し、ワークステーション２０を活動停止状態７０ａに遷移する（１１０）まで、ワークステーションはブロック状態７０ｃに留まる。
【００１５】
当業者によって容易に認識されるように、状態変数７０とグリッド設定変数１００は、ワークステーション２０のメモリ（図示せず）にバイナリ・ビットまたはビットの組み合わせとして記憶することができる。例えば状態変数７０の３つの可能な値は００、０１および１１の２つのビットの組み合わせで表わすことができ、グリッド設定変数１００の２つの可能な値は、０または１を有する１つのビットで表わすことができる。
【００１６】
ネットワーク・ワークステーション２０の状態の上記の特徴付けに加えて、本発明に従って動作するシステムは、それぞれの提案されたグリッド・ワークロードを２つのカテゴリの１つに特徴付けることも好ましい。各グリッド・ワークロードは優先使用可能または優先使用不能として分類される。優先使用可能なグリッド・ワークロードは、即座に再割り当てすることができるワークステーション資源だけを使用する。具体的には、優先使用可能なグリッド・ワークロードは、いかなるワークステーション・データ構造または資源も非常な長期にわたってロックすることはない。他のすべてのグリッド・ワークロードは優先使用不能である。後述するように、グリッド・ワークロードのこの分類によって、本発明によるシステムは、ネットワーク・ワークステーション２０のインタラクティブな動作能力をさらに保持することができる。
【００１７】
図３を参照すると、グリッド・ワークロード・マネージャ１２０は、ワークロード・アナライザ１３０およびワークロード・スケジューラ１４０を含む。グリッド・ワークロード・マネージャ１２０は、ＣＰＵサイクルをワークステーション２０のインタラクティブ・ワークロードと共用して、ネットワーク１０上の専用コンピュータ（図示せず）またはネットワーク・ワークステーション２０の１つで単一のインスタンス（プロセスまたはサービス）として実行することができるプログラムである。あるいは、グリッド・ワークロード・マネージャ１２０は、ネットワークにおける分散プログラムとして実装することもできる。
【００１８】
オフラインで実行されている、すなわちリアルタイムで実行されていないワークロード・アナライザ１３０は、グリッド・ワークロード１５０を表わす各コンピュータ・プログラムを分析し、そのプログラムを優先使用可能または優先使用不能に分類する。この分析を実行するために、ワークロード・アナライザ１３０は、プログラムの流れを追跡して、プログラムがグローバル資源ロックを起こすか、割り込みを禁止するか、または長期にわたって資源を占有すると判断される他の動作を行う場合の各インスタンスを記録することが好ましい。この分析で、資源がグリッド・ワークロードによってロックされる時間の長さが無限であるか、またはワークロードを機能させるデータに依存していると判定される場合、このプログラムは優先使用不能と判断される。ワークロード・アナライザ１３０は、ワークロードの優先使用可能性を判断するための任意の他の適切な基準を利用するように、ユーザまたはシステム設計者により構成または設計され得る。
【００１９】
ワークロード・アナライザ１３０は、例えば、使用可能な仮想マシン上のワークロードを表わすプログラムを実行し、それに不規則に割込みをかけることによって、グリッド・ワークロードを分類するようにしてもよい。その場合、ワークロード・アナライザ１３０は、プログラムが割り込みに応答するのに要する時間を記録する。プログラムがそれらの不規則な割込みに応答するのに要する平均的な時間を分析することによって、ワークロード・アナライザ１３０は優先使用可能または優先使用不能なものとしてワークロードを分類することができる。応答時間が長いほど、ワークロードが優先使用不能とみなされる可能性は大きくなる。閾値を超える平均応答時間を有するグリッド・ワークロードは優先使用不能に分類され、残りはすべて優先使用可能に分類されるように、閾値をワークロード・アナライザ１３０に設定することができる。
【００２０】
上述の方法、または本発明の目的に合致する任意の他の適切な方法を使用することによって、グリッド・ワークロード・アナライザ１３０は、各グリッド・ワークロード１５０の特徴付けを判定し、各グリッド・ワークロード１５０に関連付けられたカテゴリ変数１６０を維持する。カテゴリ変数１６０は、優先使用可能または優先使用不能の値を有することができる。状態変数７０とグリッド設定変数１００に関して上述したように、カテゴリ変数１６０は、例えば０が優先使用可能の値を表わし１が優先使用不能の値を表わすバイナリ・ビットとして記憶することができる。カテゴリ変数１６０は、専用コンピュータ（図示せず）またはグリッド・ワークロード・マネージャ１２０が実行されているネットワーク・ワークステーション２０のメモリに記憶することができる。あるいは、グリッド・ワークロード・マネージャが分散プログラムとして実行される場合、カテゴリ変数は、グリッド・ワークロード・マネージャ１２０がアクセスできる任意のメモリ位置に配置することができる。グリッド・ワークロード１５０は、グリッド４０（図１）での実行を意図した一連のコンピュータ・プログラム命令から構成されたプログラムである。各グリッド・ワークロード１５０はカテゴリ変数１６０に関連付けられている。グリッド・ワークロード１５０とカテゴリ変数１６０の間のこの関連付けは、後述するようにグリッド・ワークロード１５０のスケジューリングを試みる際にグリッド・ワークロード・マネージャ１２０が関連付けられたカテゴリ変数１６０に容易にアクセスできるように、ポインタまたは当業者に周知の任意の他のデータ構造によって確立することができる。
【００２１】
リアルタイムで実行される場合、ワークロード・スケジューラ１４０は、グリッド・ワークロード・マネージャ１２０の指示に従って、グリッド・ワークロード１５０をグリッド４０のワークステーション２０にスケジュールすることを試みる。グリッド・ワークロード・マネージャ１２０は、所定のスケジュールに従って、またはユーザもしくは他のプログラム（図示せず）からの何らかの外部刺激に応答して実行するために、ワークロード・スケジューラ１４０による１つ以上のグリッド・ワークロード１５０のスケジューリングを要求することができる。本発明によれば、グリッド・ワークロード１５０のスケジューリングを試みる場合に、システムは、可能ならば、ワークステーション２０およびグリッド・ワークロード１５０の状態の特徴付けを考慮する。
【００２２】
ネットワーク・ワークステーション２０にグリッド・ワークロード１５０をスケジュールするために、ワークロード・スケジューラ１４０は、ワークステーション２０で実行中のワークステーション・モニタ６０に要求を送信する。スケジューリング要求に応えて、ワークステーション・モニタ６０はワークステーション２０の状態をチェックする。状態変数７０が活動停止中７０ａの値を有する場合、ワークステーション・モニタ６０はワークロード・スケジューラ１４０からグリッド・ワークロード１５０を受け入れ、グリッド・ワークロードはワークステーション２０での実行を開始するが、この際、上述のようなハイパーバイザの下の仮想マシン構成を利用することが好ましい。
【００２３】
ワークロード・スケジューラ１４０からスケジューリング要求を受信したときに、状態変数７０がブロック中７０ｃの値を有することをワークステーション・モニタ６０が検出すると、ワークステーション・モニタ６０はワークロード・スケジューラ１４０からのスケジューリング要求を拒否する。状態変数７０の値が活動中７０ｂであった場合は、ワークステーション・モニタはワークステーションのグリッド設定変数１００をチェックする。グリッド設定変数１００がＹＥＳの値を有している場合、ワークステーション・モニタ６０はワークロード・スケジューラ１４０からグリッド・ワークロード１５０を受け入れ、グリッド・ワークロード１５０はワークステーション２０での実行を開始する。グリッド設定変数１００がＮＯの値を有している場合、ワークステーション・モニタ６０は状態変数７０をブロック中７０ｃに更新し、ワークロード・スケジューラ１４０からのスケジューリング要求を拒否する。このグリッド設定変数１００のダブルチェックは、初期設定後にユーザまたはシステム設計者がワークステーションのグリッド設定を変更した状況を考慮したものであり、システムがユーザの設定に従うことを保証する。
【００２４】
本発明によるシステムが上述のようにグリッド・ワークロード１５０の分類も実装している場合、これらの分類は、実行依頼されたグリッド・ワークロード１５０をどのワークステーションが受け入れるかに影響を与える。これに従って動作して、ワークロード・スケジューラ１４０は、実行依頼されたグリッド・ワークロード１５０に関連付けられたカテゴリ変数１６０の値を含むスケジューリング要求をワークステーション２０に送る。あるいは、ワークステーション・モニタ６０は、ワークロード・スケジューラ１４０から要求とともに渡された、変数を示すポインタに従って、関連付けられたカテゴリ変数１６０の値をチェックするようにしてもよい。いずれにせよ、ワークステーション・モニタは、以下のように、カテゴリ変数１６０の値を考慮して、グリッド・ワークロードを受け入れるかどうかを決定する。
【００２５】
スケジューリング要求に応えて、ワークステーション・モニタ６０はワークステーション２０の状態をチェックする。状態変数７０が活動停止中７０ａの値を有する場合、ワークステーション・モニタ６０は、グリッド・ワークロード１５０に関連付けられたカテゴリ変数の値がどのようなものであれ、ワークロード・スケジューラ１４０からグリッド・ワークロード１５０を受け入れる。前述のように、グリッド・ワークロード１５０は次いでワークステーション２０で実行されるが、その際、上述のようなハイパーバイザの下の仮想マシン構成を利用することが好ましい。前述のように、状態変数７０がブロック中７０ｃの値を有することをワークステーション・モニタ６０が検出すると、カテゴリ変数１６０の値がどのようなものであっても、ワークステーション・モニタ６０はワークロード・スケジューラ１４０からのスケジューリング要求を拒否する。
【００２６】
しかし、ワークステーション・モニタ６０は、活動中７０ｂの値の状態変数７０値を検出すると、実行依頼されたグリッド・ワークロード１５０に関連付けられたカテゴリ変数１６０の値をチェックする。カテゴリ変数１６０が優先使用不能の値を有している場合、ワークステーション・モニタ６０はワークロード・スケジューラ１４０からのスケジューリング要求を拒否する。たとえユーザがワークステーション２０のＣＰＵサイクルを要求に応じてグリッド・ワークロード１５０と共用することを意図した場合でも、優先使用不能ワークロードはワークステーション２０の資源に重大な影響を与える可能性があり、活動中のワークステーション２０で実行することは許されない。カテゴリ変数１６０が優先使用可能の値を有する場合、ワークステーション・モニタ６０はワークステーションのグリッド設定変数１００をチェックする。グリッド設定変数１００がＹＥＳの値を有する場合、ワークステーション・モニタ６０はワークロード・スケジューラ１４０からグリッド・ワークロード１５０を受け入れ、グリッド・ワークロード１５０はワークステーション２０での実行を開始する。グリッド設定変数１００がＮＯの値を有している場合、ワークステーション・モニタ６０はワークステーション状態変数をブロック中７０ｃに更新し、ワークロード・スケジューラ１４０からのスケジューリング要求を拒否する。前述のように、このグリッド設定変数１００のダブルチェックは、初期設定後にユーザまたはシステム設計者がワークステーションに対するグリッド設定を変更した場合を考慮したものであり、システムがユーザの設定に従うことを保証する。
【００２７】
本明細書に記載し図示した機能およびプロセスに関して、そのそれぞれは電子回路（すなわちハードウェア）で、または記載した機能またはステップを実施する一連のコンピュータ・プログラミング・コード命令（すなわちソフトウェア）として、あるいはハードウェアとソフトウェアの組み合わせとして実施することができる。例えば、本明細書において、ワークステーション・モニタ６０（図２）またはグリッド・ワークロード・マネージャ１２０（図３）がある種の動作または機能を実行すると記載されている場合、当業者には周知のように、この動作または機能は、ワークステーション・モニタ６０またはグリッド・ワークロード・マネージャ１２０を実行しているワークステーション２０または他のコンピュータ（図示せず）のメモリ（図示せず）でソフトウェアを実行することによって行うことができる。あるいは、このような動作または機能は、当業者には周知の技術を使用して、関連するコンピュータの回路（図示せず）に実装される命令によって行うことができる。
【００２８】
当業者には容易に理解されようが、本明細書で説明したステップおよびプロセスの正確な順番は、本発明を逸脱せずに任意の有利な方法で変更することができる。同様に、所与の環境でより優れた動作を行うようにステップを、適宜、反復、スキップ、または結合することができる。
【００２９】
図面および明細書では、本発明の好ましい実施形態を示している。また、特定の用語が使用されているが、ここでの説明は、一般的で記述的であることを意図しており、限定を意図するものではない。
【００３０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３１】
（１）複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを前記複数のワークステーションのうちの１つに割り当てる方法であって、
前記複数のワークステーションのうちの第１のワークステーションの、ローカル・ワークロードによる利用率を示す活動状態を判定するステップと、
前記活動状態が低い利用率を示すという判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記活動状態が高い利用率を示すという判定に応答して、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップと
を含む方法。
（２）前記活動状態が高い利用率を示すという判定に応答して、
前記第１のワークステーションで前記グリッド・ワークロードを受け入れるためのワークステーション設定を判定するステップと、
前記ワークステーション設定がＹＥＳである判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記ワークステーション設定がＮＯである判定に応答して、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップとをさらに含む上記（１）に記載の方法。
（３）前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するステップをさらに含み、
前記活動状態が高い利用率を示し、かつ前記ワークステーション設定がＹＥＳであるという判定に応答して、前記グリッド・ワークロードが閾値を下回る程度にワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記グリッド・ワークロードを前記第１のワークステーションに割り当てる上記（２）に記載の方法。
（４）複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを前記複数のワークステーションのうちの１つに割り当てる方法であって、
前記複数のワークステーションのうちの第１のワークステーションの資源をローカル・ワークロードが使用する程度を示す利用率レベルを監視し、該第１のワークステーションの活動状態を、前記利用率レベルが第１の閾値を下回る場合には活動停止中に設定し、前記利用率レベルが前記第１の閾値を上回り、かつ前記第１のワークステーションの活動状態が既に活動停止中または活動中である場合には活動中に設定し、前記利用率レベルが前記第１の閾値を上回り、かつ前記第１のワークステーションの活動状態が既にブロック中である場合にはブロック中に設定するステップと、
前記第１のワークステーションの活動状態をチェックするステップと、
前記第１のワークステーションが活動停止中の場合に、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記第１のワークステーションが活動中の場合に、前記グリッド・ワークロードを受け入れるための第１のワークステーションの設定を判定するステップと、
前記設定がＹＥＳであるという判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるステップと、
前記設定がＮＯであるという判定に応答して、前記第１のワークステーションの活動状態をブロック中に設定するとともに、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップと、
前記第１のワークステーションがブロック中の場合に、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するステップと
を含む方法。
（５）前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するステップをさらに含み、
前記第１のワークステーションが活動中であり、かつ前記設定がＹＥＳであることに応答して、グリッド・ワークロードが第２の閾値を下回る程度にワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記グリッド・ワークロードを前記第１のワークステーションに割り当てる上記（４）４に記載の方法。
（６）複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てる方法であって、
前記複数のワークステーションのそれぞれでハイパーバイザを実行するステップと、
各ハイパーバイザの下で実行され、該ハイパーバイザにより優先権が与えられる第１の仮想マシンでローカル・ワークロードを実行するステップと、
前記グリッドの一部として動作可能なオペレーティング・システムを実行する少なくとも１つの追加の仮想マシンを各ハイパーバイザの下で実行するステップと、
各ローカル・ワークロードによる各ワークステーションの利用率を監視し、該利用率を示すローカル・ワークロード活動レベルを判定するステップと、
前記利用率が第１の閾値を下回ることを前記ローカル・ワークロード活動レベルが示しているという判定に応答して、前記グリッド・ワークロードを実行するために、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用するステップと
を含む方法。
（７）前記ローカル・ワークロード活動レベルを判定するステップが、前記ローカル・ワークロード活動レベルを、活動停止中、活動中、およびブロック中のカテゴリを含む少なくとも３つのカテゴリのうちの１つに分類するステップを含み、
前記活動停止中のカテゴリは前記利用率が前記第１の閾値を下回ることを示し、
前記活動中のカテゴリは、前記利用率が前記第１の閾値を上回ること、およびワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができるという設定であることを示し、
前記ブロック中のカテゴリは、前記利用率が前記第１の閾値を上回ること、および前記ワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができないという設定であることを示し、
前記ワークステーション資源は、前記ローカル・ワークロード活動レベルが活動停止中または活動中の場合に、前記グリッド・ワークロードを実行するために、前記少なくとも１つの追加の仮想マシンと共用される上記（６）に記載の方法。
（８）前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するステップをさらに含み、
前記ローカル・ワークロード活動レベルが活動中であり、かつ前記ワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加仮想マシンと共用することができることを示すことに応答して、前記グリッド・ワークロードが第２の閾値を下回る程度に前記ワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用する上記（７）に記載の方法。
（９）複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てるシステムであって、
複数のワークステーションのうちの第１のワークステーションの、ローカル・ワークロードによる利用率を示す活動状態を判定するためのワークステーション・モニタと、
前記活動状態が低い利用率を示すという判定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるか、または、前記活動状態が高い利用率を示すという判定に応答して、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するためのワークロード・スケジューラと
を含むシステム。
（１０）前記ワークステーション・モニタは、前記利用率が高い場合に、前記第１のワークステーションに前記グリッド・ワークロードを受け入れるためのワークステーション設定を判定し、
前記ワークロード・スケジューラは、前記活動状態が高い利用率を示すという判定に応答して、前記ワークステーション設定をチェックして、ＹＥＳのワークステーション設定に応答して前記グリッド・ワークロードを前記第１のワークステーションに割り当てるか、またはＮＯのワークステーション設定に応答して他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持する上記（９）に記載のシステム。
（１１）前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するためのグリッド・ワークロード・モニタをさらに含み、
前記活動状態が高い利用率を示し、かつ前記ワークステーション設定がＹＥＳであるという判定に応答して、前記グリッド・ワークロードが閾値を下回る程度にワークステーションの資源をロックすることを前記遅延レベルが示す場合にのみ、前記ワークロード・スケジューラが前記グリッド・ワークロードを前記第１のワークステーションに割り当てる上記（１０）に記載のシステム。
（１２）複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てるシステムであって、
複数のワークステーションのうちの第１のワークステーションの資源をローカル・ワークロードが使用する程度を示す利用率レベルを監視し、かつ第１ワークステーション活動状態を、
前記利用率レベルが第１の閾値を下回る場合には活動停止中に設定し、
前記利用率レベルが前記第１の閾値を上回り、かつ前記第１ワークステーション活動状態が既に活動停止中または活動中である場合には活動中に設定し、
前記利用率レベルが前記第１の閾値を上回り、かつ前記第１ワークステーション活動状態が既にブロック中である場合にはブロック中に設定し、
前記第１ワークステーション活動状態が活動中の場合には前記グリッド・ワークロードを受け入れるための第１ワークステーション設定を判定するためのワークステーション・モニタと、
前記第１ワークステーション活動状態をチェックし、
前記第１のワークステーションが活動停止中の場合に、前記グリッド・ワークロードを前記第１ワークステーションに割り当て、
前記第１のワークステーションが活動中の場合に、前記第１ワークステーション設定をチェックし、ＹＥＳの第１ワークステーション設定に応答して、前記グリッド・ワークロードを前記第１のワークステーションに割り当てるか、またはＮＯの第１ワークステーション設定に応答して、前記第１ワークステーションの活動状態をブロック中に設定するとともに、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持し、
前記第１のワークステーションがブロック中の場合には、他のワークステーションへの割り当てのために前記グリッド・ワークロードを保持するためのワークロード・スケジューラと
を含むシステム。
（１３）前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられているワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するためのグリッド・ワークロード・モニタをさらに含み、
活動中の第１ワークステーション活動状態およびＹＥＳの第１ワークステーション設定に応答して、前記グリッド・ワークロードが第２の閾値を下回る程度にワークステーション資源をロックすることを前記遅延レベルが示す場合にのみ、前記ワークロード・スケジューラが前記グリッド・ワークロードを前記第１のワークステーションに割り当てる上記（１２）に記載のシステム。
（１４）複数のワークステーションを含み、該複数のワークステーションの共用資源でグリッド・ワークロードを実行するためのグリッドを実現するコンピュータ・ネットワークにおいて、前記グリッド・ワークロードを複数のワークステーションのうちの１つに割り当てるシステムであって、
前記複数のワークステーションのそれぞれで実行されるハイパーバイザと、
各ハイパーバイザの下で実行され、該ハイパーバイザにより優先権が与えられる第１の仮想マシンで実行されるローカル・ワークロードと、
各ハイパーバイザの下で実行され、前記グリッドの一部として動作可能なオペレーティング・システムを実行する少なくとも１つの追加の仮想マシンと、
各ローカル・ワークロードによる各ワークステーションの利用率を監視し、該利用率が示すローカル・ワークロード活動レベルを判定するためのワークステーション・モニタと、
前記利用率が第１の閾値を下回ることを前記ローカル・ワークロード活動レベルが示すという判定に応答して、前記グリッド・ワークロードを実行するために、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用するワークロード・スケジューラと
を含むシステム。
（１５）前記ワークステーション・モニタが前記ローカル・ワークロード活動レベルを、活動停止中、活動中、およびブロック中のカテゴリを含む少なくとも３つのカテゴリのうちの１つに分類し、
前記活動停止中のカテゴリは前記利用率が前記第１の閾値を下回ることを示し、
前記活動中のカテゴリは、前記利用率が前記第１の閾値を上回ること、およびワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができるという設定であることを示し、
前記ブロック中のカテゴリは、前記利用率が前記第１の閾値を上回ること、および前記ワークステーション設定が、前記利用率が前記第１の閾値を上回ると前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用することができないという設定であることを示し、
前記ローカル・ワークロード活動レベルが活動停止中または活動中の場合に、前記グリッド・ワークロードを実行するために、前記ワークロード・スケジューラが前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用する上記（１４）に記載のシステム。
（１６）前記グリッド・ワークロードに関連付けられており、前記グリッド・ワークロードが割り当てられるワークステーションの資源を前記グリッド・ワークロードがロックする程度を示す遅延レベルを判定するためのグリッド・ワークロード・モニタをさらに含み、
前記ローカル・ワークロード活動レベルが活動中であることに応答して、前記グリッド・ワークロードが第２の閾値を下回る程度に前記ワークステーションの資源を前記グリッド・ワークロードがロックすることを前記遅延レベルが示す場合にのみ、前記ワークロード・スケジューラが、前記ワークステーションの資源を前記少なくとも１つの追加の仮想マシンと共用する上記（１５）に記載のシステム。
【図面の簡単な説明】
【図１】本発明によるコンピュータ・ネットワークおよびグリッドを示す図である。
【図２】本発明によるワークステーションおよび関連するデータ構造を示すブロック図である。
【図３】本発明のグリッド・ワークロード・マネージャを示す図である。
【符号の説明】
１０　コンピュータ・ネットワーク
２０　ワークステーション
３０　ＣＰＵ
４０　グリッド
６０　ワークステーション・モニタ
【図１】
2004038972.tif 000003
【図２】
2004038972.tif 000004
【図３】
2004038972.tif 000005