(57)【要約】【課題】  グリッド・コンピューティング環境の作業負荷を均衡させる方法とシステムを提供する。【解決手段】  マネージャ・デーモン１０８がグリッド・コンピューティング環境の複数のシステム１０２の複数のスケジューラ１０６から情報を取得し、その情報を用いて当該環境の作業負荷を均衡させる。上記情報にはフリー・リソースの表示、アイドル・ジョブ、そしておそらく他の情報が含まれる。【選択図】          図１
2005056391.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ環境の作業負荷を均衡させる方法であって、
グリッド・コンピューティング環境の複数のシステムのうちの少なくとも１つのシステムに関する情報を取得するステップと、
取得した情報の少なくとも一部を用いて前記複数のシステムのうちの少なくとも２のシステムの作業負荷を均衡させるステップと
を備えた
方法。
【請求項２】
取得する前記ステップが、
前記グリッド・コンピューティング環境のマネージャ・デーモンによって、前記少なくとも１つのシステムに付随する少なくとも１つのスケジューラから前記情報を取得するステップ
を備えている
請求項１に記載の方法。
【請求項３】
情報を少なくとも２つのスケジューラから取得し、
前記少なくとも２つのスケジューラのうちの１つのスケジューラが前記少なくとも２つのスケジューラのうちの少なくとも１つの他のスケジューラとは異なるスケジューラである、
請求項２に記載の方法。
【請求項４】
前記情報が、前記少なくとも１つのシステムの作業負荷に関する情報から成る、
請求項１に記載の方法。
【請求項５】
システム用の前記情報が、システムの多数のフリー・ノードのうちの少なくとも１つのノード、待ち受けている零以上のジョブから成るジョブ・キュー、およびシステム・ジョブ・ミックスの現在の状態用の少なくとも１つのスケジューラ固有の変数設定を含んでいる、
請求項４に記載の方法。
【請求項６】
均衡させる前記ステップが、
前記少なくとも２つのシステムのうちどのシステムにジョブを割り当てるべきかを決定するステップと、
決定したシステムにジョブを割り当てるステップと
を備えている、
請求項１に記載の方法。
【請求項７】
均衡させる前記ステップが、
前記少なくとも２つのシステムのうちの１つのシステムからジョブを除去するステップと、
前記少なくとも２つのシステムのうちの別のシステムに前記ジョブを割り当てるステップと
備えている、
請求項１に記載の方法。
【請求項８】
コンピュータ環境の作業負荷を均衡させるシステムであって、
グリッド・コンピューティング環境の複数のシステムのうちの少なくとも１つのシステムに関する情報を取得する手段と、
取得した情報の少なくとも一部を用いて前記複数のシステムのうちの少なくとも２のシステムの作業負荷を均衡させる手段と
を備えた
システム。
【請求項９】
取得する前記手段が、
前記グリッド・コンピューティング環境のマネージャ・デーモンによって、前記少なくとも１つのシステムに付随する少なくとも１つのスケジューラから前記情報を取得する手段
を備えている
請求項８に記載のシステム。
【請求項１０】
情報を少なくとも２つのスケジューラから取得し、
前記少なくとも２つのスケジューラのうちの１つのスケジューラが前記少なくとも２つのスケジューラのうちの少なくとも１つの他のスケジューラとは異なるスケジューラである、
請求項９に記載のシステム。
【請求項１１】
前記情報が、前記少なくとも１つのシステムの作業負荷に関する情報から成る、
請求項８に記載のシステム。
【請求項１２】
システム用の前記情報が、システムの多数のフリー・ノードのうちの少なくとも１つのノード、待ち受けている零以上のジョブから成るジョブ・キュー、およびシステム・ジョブ・ミックスの現在の状態用の少なくとも１つのスケジューラ固有の変数設定を含んでいる、
請求項１１に記載のシステム。
【請求項１３】
均衡させる前記手段が、
前記少なくとも２つのシステムのうちどのシステムにジョブを割り当てるべきかを決定する手段と、
決定したシステムにジョブを割り当てる手段と
を備えている、
請求項８に記載のシステム。
【請求項１４】
均衡させる前記手段が、
前記少なくとも２つのシステムのうちの１つのシステムからジョブを除去する手段と、
前記少なくとも２つのシステムのうちの別のシステムに前記ジョブを割り当てる手段と
備えている、
請求項８に記載のシステム。
【請求項１５】
コンピュータ環境の作業負荷を均衡させるプログラムであって、
コンピュータに、
グリッド・コンピューティング環境の複数のシステムのうちの少なくとも１つのシステムに関する情報を取得するステップと、
取得した情報の少なくとも一部を用いて前記複数のシステムのうちの少なくとも２のシステムの作業負荷を均衡させるステップと
を実行させる
プログラム。
【請求項１６】
取得する前記ステップが、
前記グリッド・コンピューティング環境のマネージャ・デーモンによって、前記少なくとも１つのシステムに付随する少なくとも１つのスケジューラから前記情報を取得するステップ
を備えている
請求項１５に記載のプログラム。
【請求項１７】
前記情報が、前記少なくとも１つのシステムの作業負荷に関する情報から成る、
請求項１５に記載のプログラム。
【請求項１８】
システム用の前記情報が、システムの多数のフリー・ノードのうちの少なくとも１つのノード、待ち受けている零以上のジョブから成るジョブ・キュー、およびシステム・ジョブ・ミックスの現在の状態用の少なくとも１つのスケジューラ固有の変数設定を含んでいる、
請求項１７に記載のプログラム。
【請求項１９】
均衡させる前記ステップが、
前記少なくとも２つのシステムのうちどのシステムにジョブを割り当てるべきかを決定するステップと、
決定したシステムにジョブを割り当てるステップと
を備えている、
請求項１５に記載のプログラム。
【請求項２０】
均衡させる前記ステップが、
前記少なくとも２つのシステムのうちの１つのシステムからジョブを除去するステップと、
前記少なくとも２つのシステムのうちの別のシステムに前記ジョブを割り当てるステップと
備えている、
請求項１５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にグリッド・コンピューティングに関し、特にグリッド・コンピューティング環境の作業負荷の管理に関する。
【背景技術】
【０００２】
グリッド・コンピューティング環境によって、複数の異質なシステムおよび／または地理的に離れたシステムを相互接続することが可能になる。（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす。）一例では、システムを相互接続するのを容易にするためにインターナショナル・ビジネス・マシーンズ・コーポレーション（International Business Machines Corporation)（アメリカ合衆国ニューヨーク州アーモンク）製のＧｌｏｂｕｓツールキットを用いている。Ｇｌｏｂｕｓによって、ユーザは複数のシステムのうちからあるジョブを実行すべきシステムを特定することができる。ユーザはＲＳＬ（Resource Specification Language:リソース特定言語）を用いて、選択したシステムにジョブの実行を依頼する。ＧｌｏｂｕｓがＲＳＬを受信するのに応答して、Ｇｌｏｂｕｓは当該ＲＳＬを目標システムのスケジューラ用の正確なフォーマットに変換する。たとえば、スケジューラがインターナショナル・ビジネス・マシーンズ・コーポレーション製のＬｏａｄＬｅｖｅｌｅｒである場合、当該ＲＳＬはコマンド・ファイルに変換する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ユーザは自分のジョブを実行するシステムを少なくとも１つ選択することができるから、あるいはその選択にかかわらず、グリッド・コンピューティング環境のシステム群は不均衡になる可能性がある。たとえば、過大な仕事を抱えているシステムがある一方、過少の仕事しかないシステムがある場合が挙げられる。したがって、グリッド・コンピューティング環境の作業負荷を均衡させる機能が求められている。また、特定の仕事に対する最良適合を決定する機能が求められている。
【課題を解決するための手段】
【０００４】
コンピューティング環境の作業負荷を均衡させる方法を提供することにより、従来技術の弱点を克服するとともにさらなる利点を実現する。その方法はたとえば、グリッド・コンピューティング環境の複数のシステムのうちの少なくとも１つのシステムに関する情報を取得するステップと、取得した情報の少なくとも一部を用いて前記複数のシステムのうちの少なくとも２のシステムの作業負荷を均衡させるステップとを備えるように構成する。
【０００５】
上で要約した方法に対応するシステムとプログラムもここに記述するとともに特許請求の範囲に記載する。
【０００６】
本発明の手法によってさらなる特徴と利点が実現する。ここでは本発明の他の実例と側面を詳細に説明するが、それらは特許請求の範囲に記載した発明の一部であると考えられる。
【発明を実施するための最良の形態】
【０００７】
本発明の一側面により、グリッド・コンピューティング環境において作業負荷均衡を実行する。一例では、グリッド・コンピューティング環境のマネージャ・デーモンは当該環境の少なくとも１つのシステムに関する情報を取得し、取得した情報に基づいて当該システム群への作業負荷の配置を決める。作業負荷の配置にはたとえば１つのシステムから別のシステムへのジョブの移動、特定のシステムへのジョブの初期配置などが含まれる。一例として、上記情報はシステムのスケジューラから取得する。
【０００８】
グリッド・コンピューティングによって、分散コンピューティングとデータ・リソース（たとえば処理、ネットワーク帯域幅、単一のシステム・イメージを形成する記憶容量など）の仮想化が可能になる。それにより、ユーザとアプリケーションは多数の情報技術（ＩＴ）機能に切れ目無くアクセスすることが保証される。多くの場合、グリッド・コンピューティング環境のシステムは異質なシステムである。すなわち、グリッド・コンピューティング環境の複数のシステムのうちの少なくとも１つのシステムは当該環境の少なくとも１つの他のシステムとは異なるハードウェアおよび／またはソフトウェアを備えている。さらに、あるいはまたは、システムは互いに地理的に離れている。グリッド・コンピューティングに関するさらなる詳細はたとえばwww-1.ibm.com//grid/about ＿grid/what ＿is.shtmlで得られる。
【０００９】
本発明の少なくとも１つの側面を組み込むとともに使用するグリッド・コンピューティング環境の一実施形態を図１に示す。グリッド・コンピューティング環境１００はたとえば複数のシステム１０２を含んでいる。この特定例では２つのシステム、すなわちシステムＡとシステムＢが示されている。しかし、他の例ではグリッド・コンピューティング環境に３つ以上のシステムが含まれている。一例では、システムＡは複数のＲＳ／６０００ノードを備えた、インターナショナル・ビジネス・マシーンズ・コーポレーション（アメリカ合衆国ニューヨーク州アーモンク）製のＳＰ（Scalable Parallel)マシンを備えており、システムＢは同じくインターナショナル・ビジネス・マシーンズ・コーポレーション製のＬＩＮＵＸクラスタを備えている。システム１０２は接続１０４（たとえばイーサネット（登録商標）接続または他種類の接続）を介して互いに接続されている。
【００１０】
システム１０２はたとえば当該システムでジョブをスケジューリングする際に使用するスケジューラ１０６を備えている。スケジューラには多種類のスケジューラのうちの１つを使用することができる。各システムは同種のスケジューラあるいは異種のスケジューラを備えている。一例として、システムＡのスケジューラ１０６はインターナショナル・ビジネス・マシーンズ・コーポレーション製のＬｏａｄＬｅｖｅｌｅｒを含んでおり、システムＢのスケジューラ１０６はアルテア・グリッド・テクノロジーズ社（Altair Grid Technologies, LLC)製のＰＢＳ（Portable Batch System)を含んでいる。ＬｏａｄＬｅｖｅｌｅｒの一例は「ＩＢＭ  ＬｏａｄＬｅｖｅｌｅｒ：使用と管理（IBM LoadLeveler: Using and Administering）」（V3R1, IBM Pub. No. SA22-7881-00, December 2001）なる名称のＩＢＭ刊行物に記載されている。
【００１１】
一例では、少なくとも１つのスケジューラがバックフィル（backfill）スケジューリングを実行する。バックフィル・スケジューリングによって、アプリケーションは実行することをスケジュール済みのアプリケーションの開始時刻に影響しないかぎりアウト・オブ・オーダ実行をすることが可能になる。バックフィル・スケジューリングの一例は「アプリケーションのデータに基づいた当該アプリケーションのバックフィル・スケジューリング（Backfill Scheduling Of Applications Based On Data Of The Applicaions）」なる名称の米国特許出願第１０／４０６９８５号（２００３年４月４日出願）に記載されている。
【００１２】
一例ではグリッド・コンピューティング環境のシステムは異質であるから、インターナショナル・ビジネス・マシーンズ・コーポレーション製でありＧｌｏｂｕｓと呼ばれているツールキットを用いてシステム間の通信を容易にしている。このツールキットはシステム間に共通層を形成するものである。たとえばＧｌｏｂｕｓ対応のシステムの場合、あるジョブ用の情報はＧｌｏｂｕｓを通過し、Ｇｌｏｂｕｓは当該情報をＧｌｏｂｕｓフォーマットに変換したのち、当該情報を別のＧｌｏｂｕｓシステムに渡す。そして、当該別のＧｌｏｂｕｓシステムは当該情報を受信システムにとって既知の形態に変換する。これにより、少なくとも１つの異なるオペレーティング・システム、異なるミドルウェア、および／または異なるスケジューラを備えたシステム群が効果的に通信することが可能になる。Ｇｌｏｂｕｓに関するさらなる詳細はたとえば「Ｇｌｏｂｕｓを用いてアプリケーションをグリッド・コンピューティング対応にする（Enabling Applications for Grid Computing with Globus）」（IBM publication no. SG24-6936-00, June 18, 2003)なる名称の文献に記載されている。
【００１３】
本発明の一側面によると、グリッド・コンピューティング環境におけるシステムの１つはマネージャ・デーモン１０８も備えている。マネージャ・デーモンはバックグラウンドで実行されており、グリッド・コンピューティング環境のシステム群のうちの少なくとも一部の間で作業負荷を均衡させる任に当たっている。マネージャ・デーモンは管理すべき複数のシステムに関する情報を取得する（たとえば供給される、確認する、など）。この情報にはたとえばシステムのＩＤ、システムにコンタクトする方法などが含まれる。
【００１４】
マネージャ・デーモンはグリッド・コンピューティング環境の作業負荷を均衡させる論理を周期的に実行する。一例では、この論理は構成可能な時間間隔で（たとえば５分ごとに）実行する。別の例では、この論理の実行は（たとえば開始時および／またはジョブの完了時、利用可能なシステム・リソースの変化、などの）イベント・ベースである。グリッド・コンピューティング環境の作業負荷を均衡させることに付随する論理の一実施形態を図２〜図４を参照して説明する。
【００１５】
まず図２を参照する。マネージャ・デーモンは少なくとも１つのシステム用にスケジューラ情報を取得する（ステップ２００）。たとえば、マネージャ・デーモンはそれらのシステムのスケジューラにコンタクトして所望の情報を取得する。この情報にはたとえばシステムの現在のフリー・ノード、そのシステムのために待ち受けているジョブから成るジョブ・キュー、およびシステムのジョブ・ミックスの現在の状態のためのスケジューラに固有の変数の設定（たとえば次に待ち受けているジョブのためのシャドウ・タイム〔すなわち当該ジョブがリソースを待ち受けるのに必要な時間〕および当該シャドウ・タイムによって保護される少なくとも１つのリソース）などがある。
【００１６】
取得した情報に基づいて、マネージャ・デーモンは作業負荷均衡を実行する（ステップ２０２）。作業負荷均衡の一例に関するさらなる詳細を図３を参照して説明する。まず、スケジューリング情報を用いて所定のジョブを実行すべきシステムを決める（ステップ３００）。一例では、これには特定のシステムにおけるアイドル・ジョブのうちどれを別のシステムで実行するかの決定が含まれる。この決定をなすのに使用する論理の一例を図４を参照して説明する。ここで説明する例では、システムＡにおける少なくとも１つのジョブをシステムＢに移動させることができるか否かを判断する。しかしながら、当業者にとって明らかなように、同様の論理を用いてジョブをシステムＡ、あるいは管理されている他のシステムに移動させることができる。
【００１７】
図４を参照する。システムＢにフリー・ノードが存在するか否かを判断する（照会４００）。フリー・ノードが存在しない場合、処理は完了する（ステップ４０２）。しかし、少なくとも１つのフリー・ノードが存在する場合、さらにシステムＡに少なくとも１つのアイドル・ジョブが存在するか否かを判断する（照会４０４）。システムＡにアイドル・ジョブが存在する場合、さらに当該アイドル・ジョブはシステムＢに適合するか否かを判断する（照会４０６）。当該アイドル・ジョブがシステムＢに適合する場合、一例ではさらに当該アイドル・ジョブがバックフィルしうるか否かを判断する（照会４０８）。当該アイドル・ジョブが新たなシステムに適合するとともにバックフィルしうる場合、当該アイドル・ジョブを転送リストに配置する（ステップ４１０）。そうでない場合、システムＡにアイドル・ジョブがさらに存在するか否かを判断する（照会４０４）。存在しない場合、処理は完了する（ステップ４０２）。
【００１８】
図３に戻る。所定のジョブを実行すべきシステムを決定するステップに加え、作業負荷均衡はさらに当該ジョブを当該システムに配置するステップを備えている（ステップ３０２）。一例では、これには各ジョブ（またはジョブ群の一部）を転送リストから、指示されたシステムへ移動させるステップが含まれる。これにはたとえば転送用に選択したジョブが開始してしまうのを防止するために元のシステム（たとえばシステムＡ）において当該ジョブを保留するステップが含まれる。次いで、新たなシステム（たとえばシステムＢ）に当該ジョブの実行を依頼する。移動が成功したら、最初のシステムから当該ジョブを除去する。保留したのち移動させる手法を用いる場合、さらに設計者の裁量によりエラー検出ステップを備えてもよい。一例では、移動ステップにおいて、Ｇｌｏｂｕｓが供給するコマンドを使用する。
【００１９】
以上、グリッド・コンピューティング環境においてデーモンを用いて作業負荷均衡を実行する際に付随する論理の一実施形態を詳細に説明した。この作業負荷均衡を実行するために使用する疑似コードの一実施形態を以下に提示する。
【００２０】
Do forever｛
#  ２つのバッチ・システムの現在のスナップショットを取得する
Access LoadLeveler on system A for FreeNodesA, ShadowTimeA, IdleJobsA
Access LoadLeveler on system B for FreeNodesB, ShadowTimeB, IdleJobsB
Clear the Transfer Lists A2B and B2A 
#  システムＢで実行しうるシステムＡのアイドル・ジョブを見いだす
if(FreeNodesB) ｛ #  システムＢにフリー・ノードが存在する場合、
Foreach(IdleJobsA) ｛ #  システムＡのすべてのアイドル・ジョブに対して
If(JobA node requirement <= FreeNodesB)｛ #  ジョブがシステムＢに適合する場合、
If(JobA Wallclock time <= ShadowTimeB) ｛ #  ジョブがバックフィルしうる場合、
Place JobA on the Transfer List A2B
｝
｝
｝
｝
#  システムＡで実行しうるシステムＢのアイドル・ジョブを見いだす
if(FreeNodesA) ｛ #  システムＡにフリー・ノードが存在する場合、
Foreach(IdleJobsB) ｛ #  システムＢのすべてのアイドル・ジョブに対して
If(JobB node requirement <= FreeNodesA)｛ #  ジョブがシステムＡに適合する場合、
If(JobB Wallclock time <= ShadowTimeA) ｛ #  ジョブがバックフィルしうる場合、
Place JobB on the Transfer List B2A
｝
｝
｝
｝
#  潜在的なジョブをＡからＢへ移動させる
foreach(job in the A2B array)｛
Move JobA to SystemB 
｝
#  潜在的なジョブをＢからＡへ移動させる
foreach(job in the B2A array)｛
Move JobB to SystemA 
｝
Sleep for a short time #  ユーザ構成可能な約３０秒間
｝# Do foreverの終了
# ジョブを１つのシステムから別のシステムへ移動させるジョブ移動サブルーチン
sub Move JobX to SystemY｛
Place JobX on System Hold 
Submit JobX to SystemY
Once JobX appears on SystemY｛
Remove JobX from SystemX
｝
｝# subroutineの終了
【００２１】
ここではグリッド・コンピューティング環境の作業負荷を均衡させる機能を説明する。作業負荷を均衡させるために一例では、過剰負荷の１つのシステムから過少負荷の別のシステムへ仕事を移動させる。他の例では、他の方法で作業負荷を均衡させる。たとえば、作業負荷均衡にはまず特定のジョブを実行すべきシステムを決め、当該システムにジョブの実行を依頼するステップが含まれる。その場合、ユーザはジョブを保留ペンに置くが、それはデーモンにとって可視である。この例では、保留ペン中のジョブはデーモンにとって可視であるが、個別システムのスケジューラにとっては可視ではない。デーモンはスケジューラに情報を要求し、その情報に基づいて特定のジョブ用の最良適合を決めるする。次いで、デーモンは選択したシステムにジョブの実行を依頼する。
【００２２】
はじめのうちはジョブの実行依頼が制御されているけれども、システムは不均衡になる可能性がある。この不均衡が生じるのはジョブ実行中に発生する予期しないイベント（たとえば予期よりも早いジョブの完了を引き起こすジョブ障害〔これにより先行するキュー入れの決定が混乱する〕）などのためである。したがって、デーモンは一例では作業負荷均衡を維持するために上述した論理も実行する。
【００２３】
作業負荷を均衡させる際に使用する情報は上述したものと異なる、上述したものよりも少ない、および／または上述したものに付加されている可能性がある。例を挙げると、ジョブ・クラスおよび／またはリソースが（たとえばメモリやソフトウェア・ライセンスなどに）適合していても、ジョブの配置を決めるために他の情報を使用することができる。
【００２４】
本発明の作業負荷均衡機能によればグリッド・コンピューティング環境の少なくとも２つのシステムの作業負荷を均衡させることができるので好都合である。ここでも、ここでは２つのシステムの場合を説明したが、独立したバッチ・キュー入れ機能を備えた３つ以上のシステムを単一のデーモンによって制御することができる。論理を拡張して追加のシステムに由来する情報を検査することができる。また、システムの例を上で示したが、他の多くの可能性が存在する。一例として、システムは均質であるが地理的に離れている場合がある。さらに、他の多くの変形例が存在しうる。
【００２５】
一側面では、デーモンを非活動化してもよい。デーモンを非活動化してもユーザは複数のシステムにジョブの実行を依頼することができるが、２つのグリッド接続されたシステム間における自動負荷均衡は行なわれない。
【００２６】
また、上述した例ではバックフィル・スケジューリング手法を用いているが、バックフィルしないものを含む他のスケジューリング手法を用いてもよい。バックフィルを使用しない手法を用いる場合、収集した情報にはシャドウ・タイムが含まれない。たとえば、ＦＩＦＯスケジューリング手法では、デーモンはアイドル・ノード、フリー・ジョブ、そしておそらくアイドル・ジョブの順序を決めるが、シャドウ・タイムを必要としない。ジョブをあるシステムに移動させることに決めるとき、フリー・リソースを考慮するが、シャドウ・タイム・テストは行なわない。同様に、作業負荷を管理する際に他のバッチ・スケジューリング手法を使用してもよい。
【００２７】
さらに、バックフィルを用いるようなスケジューラの場合、別の実施形態ではシャドウ・タイムがどのリソースを保護する（そしてどのリソースを保護しない）のかを示すリストを用いて意思決定プロセスを改善している。たとえば、シャドウ・タイムよりもほぼ長いウオールクロックを有するジョブはシャドウ・タイムが保護していないノードに転送することができる（したがってバックフィル・タイミング要件に制約されない）。
【００２８】
また、上ではスケジューラの例を提示したが、本発明の本旨の内で他の多くのスケジューラを使用することができる。他のスケジューラの例としてはたとえばプラットフォーム・コンピューティング（Platform Computing）製のＬＳＦ（Load Sharing Facility)やマウイ・スーパコンピューティング・センタ（Maui Supercomputing Center）製のＭａｕｉが挙げられる。
【００２９】
さらなる実施形態として、複数のシステムが１つのマネージャ・デーモンを備えるようにしてもよい。また、１つのデーモンが別のデーモンのバックアップであり、および／または、複数のデーモンが協働してグリッド・コンピューティング環境の作業負荷を管理する、など。さらに、グリッド・コンピューティング環境の少なくとも１つのシステムはスケジューラを備えず、その代わり他のスケジューラによってスケジューリングされる、など。
【００３０】
本発明の少なくとも１つの側面によれば、グリッド・コンピューティング環境の作業負荷を均衡させることが可能になるので好都合である。これにより、効率と生産性が向上する。動的かつ自動的に行なうことにより、この作業負荷均衡はユーザにとって透明である。
スケジューラから情報を取得しスケジューラを用いてスケジューリングの任務を遂行することにより、マネージャ・デーモンの複雑さを最小にしている。デーモンが取得する情報は複雑なスケジューリング・ソフトウェアに由来しているから、デーモンに入力する情報量が低減する。また、スケジューラは実行済みのアルゴリズムの結果をデーモンに送付することができるから、デーモンは（シャドウ・タイムの計算など）複雑な分析を行なう必要がない。
【００３１】
本発明の少なくとも１つの側面によれば、複数の並列マシン（各マシンは独立に管理されている）がたとえば単一のＧｌｏｂｕｓ実装の下でリソースを組み合わせることが可能になるので好都合である。
【００３２】
本発明はたとえばコンピュータ使用可能な媒体を備えた製品（たとえば少なくとも１つのコンピュータ・プログラム製品）に含めることができる。上記媒体はその中にたとえば本発明の機能を実現するとともに容易にするコンピュータ読み取り可能なプログラム・コード手段または論理（たとえば命令、コード、コマンドなど）を含んでいる。上記製品はその一部としてコンピュータ・システムに含めることができるし、個別に販売することもできる。
【００３３】
また、本発明の機能を実行する、マシンによって実行可能な命令から成る少なくとも１つのプログラムを組み込んだ、マシンによって読み取り可能な少なくとも１つのプログラム記憶装置を実現することができる。
【００３４】
ここに示したフローチャートは単なる例にすぎない。本発明の本旨の内で、これらのフローチャートすなわちここに記載したステップ群（またはオペレーション群）には多くの変形例がありうる。たとえば、ステップ群は異なる順序で実行することができる。また、ステップ群は付加し、削除し、あるいは変更することができる。これらの変形例はすべて特許請求の範囲に記載した発明の一部であると考えられる。
【００３５】
以上、好適な実施形態を示すとともに詳細に説明したが、当業者にとって明らかなように、本発明の本旨の内で様々な変更、付加、省略などをなすことができる。そして、これらは特許請求の範囲で定義された本発明の範囲内のものであると考えられる。
【図面の簡単な説明】
【００３６】
【図１】本発明の少なくとも１つの側面を組み込むとともに使用するコンピューティング環境の一実施形態を示す図である。
【図２】本発明の一側面に従い図１のコンピューティング環境の作業負荷を均衡させる際に付随する論理の一実施形態を示す図である。
【図３】本発明の一側面に従い作業負荷均衡に付随する論理の一実施形態に関するさらなる詳細を示す図である。
【図４】本発明の一側面に従いコンピューティング環境のどのシステムが所定のジョブを実行すべきかを判断するのに使用する論理の一実施形態を示す図である。
【符号の説明】
【００３７】
１０２  システム
１０６  スケジューラ
１０８  マネージャ・デーモン
【図１】
2005056391.tif 000003
【図２】
2005056391.tif 000004
【図３】
2005056391.tif 000005
【図４】
2005056391.tif 000006