(57)【要約】【課題】  グリッド内で実行中のプロセスに関する状況情報を入手するための方法、装置、およびコンピュータ命令を提供することにある。【解決手段】  データ処理システムからグリッド上のリモート・ノードへジョブをサブミットしたことに応答して、リモート・ノードからジョブ識別子を受信する。そのジョブ識別子を１組のジョブ識別子内に保管する。データ処理システムからサブミットされたジョブの状況を求める要求に応答して、１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットする。１組のジョブ状況要求に対する応答を受信する。次に、その応答を提示する。【選択図】  図２
2004295887.tif 000002
【特許請求の範囲】
【請求項１】
グリッド内で実行中のプロセスに関する状況情報を入手するためのデータ処理システム内の方法において、
前記データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するステップと、
前記ジョブ識別子を１組のジョブ識別子内に保管するステップと、
前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするステップと、
前記１組のジョブ状況要求に対する応答を受信するステップと、
前記応答を提示するステップとを有する方法。
【請求項２】
前記ジョブ識別子がファイルに保管される、請求項１に記載の方法。
【請求項３】
ジョブ状況要求に対する応答が特定のジョブが実行済みであることを示している場合、前記特定のジョブに関する前記１組のジョブ識別子内の特定のジョブ識別子を除去するステップをさらに有する、請求項１に記載の方法。
【請求項４】
前記データ処理システム上で実行中のローカル・ジョブに関する前記１組のジョブ識別子内にジョブ識別子を保管するステップをさらに有する、請求項１に記載の方法。
【請求項５】
前記１組のジョブ識別子内の各ジョブ識別子が固有の識別子である、請求項１に記載の方法。
【請求項６】
ユーザ入力および定期的イベントのうちの少なくとも１つに応答して、ジョブの状況を求める要求が生成される、請求項１に記載の方法。
【請求項７】
前記リモート・ノードがＧＲＡＭである、請求項１に記載の方法。
【請求項８】
表示画面およびスピーカのうちの少なくとも１つを使用して、前記応答が提示される、請求項１に記載の方法。
【請求項９】
グリッド内で実行中のプロセスに関する状況情報を入手するためのデータ処理システムにおいて、前記データ処理システムが、
前記データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するための第１の受信手段と、
前記ジョブ識別子を１組のジョブ識別子内に保管するための保管手段と、
前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするためのサブミット手段と、
前記１組のジョブ状況要求に対する応答を受信するための第２の受信手段と、
前記応答を提示するための提示手段とを有するデータ処理システム。
【請求項１０】
前記ジョブ識別子がフラット・ファイルに保管される、請求項９に記載のデータ処理システム。
【請求項１１】
ジョブ状況要求に対する応答が特定のジョブが実行済みであることを示している場合、前記特定のジョブに関する前記１組のジョブ識別子内の特定のジョブ識別子を除去するための除去手段をさらに有する、請求項９に記載のデータ処理システム。
【請求項１２】
前記データ処理システム上で実行中のローカル・ジョブに関する前記１組のジョブ識別子内にジョブ識別子を保管するための保管手段をさらに有する、請求項９に記載のデータ処理システム。
【請求項１３】
前記１組のジョブ識別子内の各ジョブ識別子が固有の識別子である、請求項９に記載のデータ処理システム。
【請求項１４】
ユーザ入力および定期的イベントのうちの少なくとも１つに応答して、ジョブの状況を求める要求が生成される、請求項９に記載のデータ処理システム。
【請求項１５】
前記リモート・ノードがＧＲＡＭである、請求項９に記載のデータ処理システム。
【請求項１６】
表示画面およびスピーカのうちの少なくとも１つを使用して、前記応答が提示される、請求項９に記載のデータ処理システム。
【請求項１７】
グリッド内で実行中のプロセスに関する状況情報を入手するためのデータ処理システムにおいて、前記データ処理システムが、
バス・システムと、
前記バス・システムに接続されたメモリであって、１組の命令を含むメモリと、
前記バス・システムに接続された処理装置であって、前記データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するためと、前記ジョブ識別子を１組のジョブ識別子内に保管するためと、前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするためと、前記１組のジョブ状況要求に対する応答を受信するためと、前記応答を提示するための１組の命令を実行する処理装置とを有するデータ処理システム。
【請求項１８】
グリッド内で実行中のプロセスに関する状況情報を入手するためのコンピュータ可読媒体内のコンピュータ・プログラム記録媒体において、前記コンピュータ・プログラム記録媒体が、
データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するための第１の命令と、
前記ジョブ識別子を１組のジョブ識別子内に保管するための第２の命令と、
前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするための第３の命令と、
前記１組のジョブ状況要求に対する応答を受信するための第４の命令と、
前記応答を提示するための第５の命令とを有するコンピュータ・プログラム記録媒体。
【請求項１９】
前記ジョブ識別子がフラット・ファイルに保管される、請求項１８に記載のコンピュータ・プログラム記録媒体。
【請求項２０】
ジョブ状況要求に対する応答が特定のジョブが実行済みであることを示している場合、前記特定のジョブに関する前記１組のジョブ識別子内の特定のジョブ識別子を除去するための第６の命令をさらに有する、請求項１８に記載のコンピュータ・プログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、改良されたデータ処理システムに関し、特に、データを処理するための改良された方法および装置に関する。より詳細には、本発明は、グリッド内の複数ノードから状況情報を入手するための方法、装置、およびコンピュータ命令を提供する。
【背景技術】
【０００２】
ネットワーク・データ処理システムは、ビジネスおよび研究のあらゆる面で一般に使用されている。このようなネットワークは、データおよびアイディアを伝達するとともに情報を記憶するためのリポジトリを提供する。さらに、多くの場合、ネットワーク・データ処理システムを構成する種々のノードを使用して情報を処理することができる。個々のノードは、実行すべき種々のタスクを有することができる。そのうえ、複雑な計算などの共通問題の解決を目指して種々のノードに作業させることがより一般的になっている。リソース共用方式に関与する１組のノードは、「グリッド」または「グリッド・ネットワーク」ともいう。たとえば、グリッド・ネットワーク内の複数ノードは、キーの暗号解読などの複雑な計算を実行するために処理リソースを共用することができる。
【０００３】
グリッド・ネットワーク内のノードは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）などのネットワーク・データ処理システム内に含まれる可能性がある。このようなノードは、地理的に多様な種々の位置に位置することもできる。たとえば、インターネットに接続された種々のコンピュータは、グリッド・ネットワークに処理リソースを提供することができる。何千もの個々のコンピュータの使用を応用することにより、大きい問題を迅速に解決することができる。グリッドは、ガン研究、物理学、地学など、多くの分野で使用されている。
【０００４】
ユーザは、グリッド内の他のノード上でリモートで実行すべきジョブをサブミットすることができる。このようなジョブは通常、グリッド・リソース・アプリケーション管理（ＧＲＡＭ）サービスなどのサーバ・プロセスにサブミットされる。グリッド・リソース・アプリケーション・マネージャは、リモート・リソースが種々のプラットフォーム上で実行される場合でも、このようなリソース上でプログラムを始動できるようにするものである。
【０００５】
ある時点でユーザはジョブの処理結果を受信する。本発明では、結果を受信する前にユーザがリモート・ノード上でのこのようなジョブの処理に関する状況情報を入手したいと希望する場合が多いことを認識している。現在、このタイプのジョブの分散処理に関連して、このような機能は入手不能である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、ネットワーク・データ処理システム内のリモート・ノードで実行中のジョブに関する状況情報を入手するための改良された方法、装置、およびコンピュータ命令を備えることは有利なことだろう。
【課題を解決するための手段】
【０００７】
本発明は、グリッド内で実行中のプロセスに関する状況情報を入手するための方法、装置、およびコンピュータ命令を提供する。データ処理システムからグリッド上のリモート・ノードへジョブをサブミットしたことに応答して、リモート・ノードからジョブ識別子を受信する。そのジョブ識別子を１組のジョブ識別子内に保管する。データ処理システムからサブミットされたジョブの状況を求める要求に応答して、１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットする。１組のジョブ状況要求に対する応答を受信する。次に、その応答を提示する。
【０００８】
本発明に特有と思われる新規な特徴は特許請求の範囲に示されている。しかし、本発明そのものと、その好ましい使用形態、その他の目的および利点については、添付図面に関連して読んだときに以下に示す例示的な実施形態の詳細な説明を参照することによって最も良く理解できるだろう。
【発明を実施するための最良の形態】
【０００９】
次に添付図面に関連して説明すると、図１は本発明を実現可能なデータ処理システムのネットワークの絵画表現を示している。ネットワーク・データ処理システム１００は、本発明を実現可能な複数コンピュータからなるネットワークである。ネットワーク・データ処理システム１００はネットワーク１０２を含み、このネットワークはネットワーク・データ処理システム１００内でまとめて接続された様々な装置およびコンピュータ間に通信リンクを設けるために使用する媒体である。ネットワーク１０２は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続部を含むことができる。
【００１０】
図示の例では、サーバ１０４は記憶装置１０６とともにネットワーク１０２に接続されている。加えて、クライアント１０８、１１０、１１２もネットワーク１０２に接続されている。これらのクライアント１０８、１１０、１１２は、たとえば、パーソナル・コンピュータまたはネットワーク・コンピュータにすることができる。図示の例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、アプリケーションなどのデータをクライアント１０８〜１１２に提供する。クライアント１０８、１１０、１１２はサーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示しない追加のサーバ、クライアント、その他の装置を含むこともできる。図示の例では、ネットワーク・データ処理システム１００はインターネットであり、ネットワーク１０２は、相互に通信するためのプロトコルからなる伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートを使用するネットワークとゲートウェイからなる世界的な集合を表している。インターネットの中心部には、データおよびメッセージを経路指定する何千もの商用、政府、教育、その他のコンピュータ・システムから構成されるメジャー・ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然のことながら、ネットワーク・データ処理システム１００は、たとえば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、または広域ネットワーク（ＷＡＮ）などのいくつかの異なるタイプのネットワークとしても実現可能である。図１は、一例として作成したものであって、本発明に関するアーキテクチャ上の制限として作成したわけではない。ネットワーク・データ処理システム１００内の種々のサーバおよびクライアントはノードともいう。
【００１１】
図２を参照すると、本発明の好ましい実施形態により、図１のサーバ１０４などのサーバとして実現可能なデータ処理システムのブロック図が示されている。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２および２０４を含む対称マルチプロセッサ（ＳＭＰ）システムにすることができる。別法として、単一プロセッサ・システムを使用することもできる。システム・バス２０６にはメモリ・コントローラ／キャッシュ２０８も接続され、これはローカル・メモリ２０９へのインターフェースを提供する。Ｉ／Ｏバス・ブリッジ２１０は、システム・バス２０６に接続され、Ｉ／Ｏバス２１２へのインターフェースを提供する。メモリ・コントローラ／キャッシュ２０８とＩ／Ｏバス・ブリッジ２１０は図示の通り統合することができる。
【００１２】
Ｉ／Ｏバス２１２に接続された周辺装置相互接続（ＰＣＩ）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６へのインターフェースを提供する。ＰＣＩローカル・バス２１６には、いくつかのモデムを接続することができる。典型的なＰＣＩバス実現例は、４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートすることになる。図１のクライアント１０８〜１１２への通信リンクは、アドイン・ボードによりＰＣＩローカル・バス２１６に接続されたモデム２１８およびネットワーク・アダプタ２２０によって提供することができる。
【００１３】
追加のＰＣＩバス・ブリッジ２２２および２２４は追加のＰＣＩローカル・バス２２６および２２８にインターフェースを提供し、それにより追加のモデムまたはネットワーク・アダプタをサポートすることができる。このようにして、データ処理システム２００は複数のネットワーク・コンピュータへの接続を可能にする。メモリマップ・グラフィックス・アダプタ２３０とハード・ディスク２３２も、直接または間接的に、図示の通りＩ／Ｏバス２１２に接続することができる。
【００１４】
当業者であれば、図２に示すハードウェアが様々になる可能性があることが分かるだろう。たとえば、図示のハードウェアに加えてまたはそのハードウェアの代わりに光ディスク・ドライブなどの他の周辺装置を使用することもできる。図示の例は、本発明に関連するアーキテクチャ上の制限を暗示するものではない。
【００１５】
図２に示すデータ処理システムは、たとえば、ニューヨーク州アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ社の製品であり、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ）オペレーティング・システムまたはＬＩＮＵＸオペレーティング・システムを実行するＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓシステムにすることができる。
【００１６】
次に図３に関連して説明すると、本発明を実現可能なデータ処理システムを示すブロック図が示されている。データ処理システム３００はクライアント・コンピュータの一例である。データ処理システム３００は、周辺装置相互接続（ＰＣＩ）ローカル・バス・アーキテクチャを使用する。図示の例はＰＣＩバスを使用しているが、アクセラレィティッド・グラフィックス・ポート（ＡＧＰ）および産業標準構成（ＩＳＡ）などの他のバス・アーキテクチャを使用することもできる。プロセッサ３０２とメイン・メモリ３０４は、ＰＣＩブリッジ３０８によりＰＣＩローカル・バス３０６に接続されている。ＰＣＩブリッジ３０８は、プロセッサ３０２用の統合メモリ・コントローラおよびキャッシュ・メモリも含むことができる。ＰＣＩローカル・バス３０６への追加の接続は、直接構成要素相互接続またはアドイン・ボードによって行うことができる。図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、ＳＣＳＩホスト・バス・アダプタ３１２、および拡張バス・インターフェース３１４は直接構成要素接続によりＰＣＩローカル・バス３０６に接続されている。対照的に、オーディオ・アダプタ３１６、グラフィックス・アダプタ３１８、オーディオ／ビデオ・アダプタ３１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス３０６に接続されている。拡張バス・インターフェース３１４は、キーボードおよびマウス・アダプタ３２０、モデム３２２、追加メモリ３２４用の接続を可能にする。小型コンピュータ・システム・インターフェース（ＳＣＳＩ）ホスト・バス・アダプタ３１２は、ハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、ＣＤ−ＲＯＭドライブ３３０用の接続を可能にする。
【００１７】
オペレーティング・システムは、プロセッサ３０２上で動作し、図３のデータ処理システム３００内の様々な構成要素を調整し、その制御を可能にするために使用する。オペレーティング・システムは、マイクロソフト社から入手可能なＷｉｎｄｏｗｓＸＰ（Ｒ）などの市販のオペレーティング・システムにすることができる。Ｊａｖａ（Ｒ）などのオブジェクト指向プログラミング・システムは、このオペレーティング・システムとともに動作し、データ処理システム３００上で実行されるＪａｖａ（Ｒ）プログラムまたはアプリケーションからオペレーティング・システムへの呼出しを行うことができる。「Ｊａｖａ」はサンマイクロシステムズ社の商標である。オペレーティング・システム、オブジェクト指向オペレーティング・システム、アプリケーションまたはプログラム用の命令は、ハード・ディスク・ドライブ３２６などの記憶装置上に位置し、プロセッサ３０２による実行のためにメイン・メモリ３０４にロードすることができる。
【００１８】
当業者であれば、実現例に応じて図３のハードウェアが様々になる可能性があることが分かるだろう。図３に示すハードウェアに加えてまたはそのハードウェアの代わりに、フラッシュ読取り専用メモリ（ＲＯＭ）、同等の不揮発性メモリ、光ディスク・ドライブなどの他の内部ハードウェアまたは周辺装置を使用することもできる。また、本発明のプロセスは、マルチプロセッサ・データ処理システムにも適用することができる。
【００１９】
図３の図示の例と上記の例はアーキテクチャ上の制限を暗示するものではない。他の一例として、データ処理システム３００は、携帯情報端末（ＰＤＡ）装置またはノートブック・コンピュータにすることもできる。
【００２０】
本発明は、グリッド内でジョブを実行中のプロセスに関する状況情報を入手するための方法、装置、およびコンピュータ命令を提供する。本発明のメカニズムは、グリッド内のリモート・ノード上で実行中のジョブに関する状況情報を入手するためのノードにおける能力を提供する。本発明のメカニズムは、実行するためにジョブがサブミットされたときに返されるジョブ識別子を記憶することを含む。現在、これらのジョブ識別子を保管し、これらの識別子を使用して、リモート・ノード上で実行中のプロセスに関する状況情報を入手するために使用可能なこのようなプロセスはまったくない。このジョブ識別子は、リモート・プロセスに関する状況情報を入手するために要求を送信するために使用する。このメカニズムは、ローカルでプロセス状況をチェックするために使用する現在入手可能なＵＮＩＸコマンド「ｐｓ」への拡張機能を提供する。本発明のこのメカニズムは、リモートで実行中のプロセスに関する情報を入手するための能力を提供する。
【００２１】
次に図４に関連して説明すると、本発明の好ましい実施形態により、ネットワーク・データ処理システム内に論理装置を分散させる際に使用する構成要素を示す図が示されている。この例では、ノード４００、４０２、４０４、４０６、４０８、４１０、４１２はグリッド内のノードである。ノード４１４、４１６、４１８はグリッドの一部ではないノードである。これらのノードは、図１のネットワーク・データ処理システム１００などのネットワーク・データ処理システム内に位置することができる。この例では、これらのノードはいずれもインターネットの一部であるノードである。
【００２２】
グリッド内の種々のノードはグリッド・プロセスにより相互に接続されている。これらのプロセスは、たとえば、ｗｗｗ．ｇｌｏｂｕｓ．ｏｒｇのＧｌｏｂｕｓ  Ｐｒｏｊｅｃｔから入手可能なＧｌｏｂｕｓ  Ｔｏｏｌｋｉｔ２．２などのツール・キットにすることができる。Ｇｌｏｂｕｓ  Ｐｒｏｊｅｃｔは、科学工学計算へのグリッド概念の応用を可能にすることに焦点を合わせた研究開発プロジェクトである。これらの実施形態に示した例およびコマンドはＧｌｏｂｕｓ  Ｔｏｏｌｋｉｔ２．２とともに使用するためのものであるが、特定の実現例に応じて、他のタイプのグリッド処理ソフトウェアを使用することができる。
【００２３】
この例では、ノード４０４は、実行のために種々のノードに関する要求を受信し、アプリケーションを分散するためのグリッド・リソース・アプリケーション管理（ＧＲＡＭ）サービスとして機能することができる。ノード４０４はユーザから要求を受信する。これらの要求は、ユーザが実行しようと試みるすべてのプログラムに関連するディジタル証明書を添付して、そのユーザがパスフレーズを使って最初にサインオンしたときに受信される。次に、実行アプリケーション・マネージャから１つのアプリケーションが選択される。さらに、他の必要なリモート・リソースとともに、実行のために１つまたは複数のノードを選択することができる。
【００２４】
たとえば、ノード４００のユーザは、実行のために１つまたは複数のジョブをノード４０４にサブミットする。ノード４０４は、ジョブを処理するために１つまたは複数のノードを選択する。ジョブは、モニター可能なタスクまたは実行可能プログラムである。「タスク」はセンサーまたはその他のメカニズムにすることができる。グリッド・コンピューティングは、非コンピュータ・プログラムを強化するように設計されている。たとえば、釘を打つために呼び出されるグリッド付加メカニズムの状況は、このメカニズムが釘の数を報告するというようにして収集することができる。これは、プロセスが呼び出されたときにこのようなメカニズムがプロセス状況を獲得する方法を報告する必要があるという可能性を持ち出すものである。たとえば、「Ｎａｉｌ−ｐｏｕｎｄｅｒ」というグリッド・ノードにジョブがサブミットされると、このノードは、「ｎｕｍｂｅｒ−ｐｏｕｎｄｅｄ−ｓｔａｔｕｓ」というプログラムがそのジョブの状況が必要なときに呼び出すべき状況プログラムであることを報告する。
【００２５】
これらの例では、ｇｌｏｂｕｓ−ｊｏｂ−ｓｕｂｍｉｔ要求またはコマンドを使用して、グリッドにジョブがサブミットされる。このプロセスの一部として、ノード４０４は、選択したノードでそのジョブを処理するために必要な適切なアプリケーションを選択することになる。たとえば、ノード４０８および４１０は、ノード４００からサブミットされたジョブを処理するためのノードとして選択することができる。その後、ノード４０４は、実行のためにノード４０８および４１０に対して適切なアプリケーションとともにジョブを送信する。
【００２６】
ノード４００のユーザは、ノード４０８および４１０によって処理中のジョブの状況を入手したいと希望する場合がある。これらの例では、本発明のメカニズムは、リモート・ノード上で処理中のジョブに関する状況情報をノード４００が入手できるようにするために、グリッド・プロセス状況（ＧＰＳ）コマンドという追加のコマンドを提供する。このメカニズムは、状況情報が必要なクライアントに対する修正のみ必要とする。ノード４０４が提供するＧＲＡＭサービスなどのサーバ・プロセスに対する変更は一切不要である。
【００２７】
ノード４００でグリッド・プロセス状況コマンドを生成する際に、ｇｌｏｂｕｓ−ｊｏｂ−ｓｕｂｍｉｔを介してグリッドにジョブがサブミットされる。この例では、ノード４０４に対してジョブがサブミットされる。このコマンドは、ジョブが要求されたときに記憶された情報によって使用可能になる。本発明のメカニズムは「ｍｙ−ｊｏｂ−ｓｕｂｍｉｔ」コマンドを含む。このコマンドを使用してグリッドにジョブがサブミットされると、本発明のメカニズムは、ｇｌｏｂｕｓ−ｊｏｂ−ｓｕｂｍｉｔによって返される戻りリソース指定定義言語（ＲＳＬ）文字列を読み取るためにｇｌｏｂｕｓ−ｊｏｂ−ｓｕｂｍｉｔの周りに置かれるラッパを作成する。ＲＳＬは、リソースを記述するための共通交換言語を提供する。Ｇｌｏｂｕｓリソース管理アーキテクチャの様々な構成要素は、ＲＳＬ文字列を操作し、システム内の他の構成要素と協力してその管理機能を実行する。ＲＳＬは複雑なリソース記述を構成するために使用する骨組み構文を提供し、様々なリソース管理構成要素によって、この共通構造に特定の＜属性，値＞の対が導入される。リソース記述の各属性は、リソース管理システム内の１つまたは複数の構成要素の挙動を制御するためのパラメータとして機能する。
【００２８】
これらの例では、ラッパー「ｍｙ−ｊｏｂ−ｓｕｂｍｉｔ」として参照される。ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドは、＜ｒｅｍｏｔｅ＿ｈｏｓｔｎａｍｅ＞というこのようなファイルがジョブをサブミットしたノード上に存在しない場合に、＄ＨＯＭＥ／．ｇｌｏｂｕｓ＿ｊｏｂ／＜ｒｅｍｏｔｅ＿ｈｏｓｔｎａｍｅ＞というファイルを作成することになる。応答が返されると、戻りＲＳＬ文字列からリモート・ホスト名が取られる。リモート・プロセスＩＤもＲＳＬ文字列から抽出され、＄ＨＯＭＥ／．ｇｌｏｂｕｓ＿ｊｏｂ／＜ｒｅｍｏｔｅ＿ｈｏｓｔｎａｍｅ＞ファイルに記憶される。
【００２９】
その後、ユーザが状況情報を入手したいと希望したときに、ユーザは「ｇｐｓ」コマンドを入力する。このコマンドは、＄ＨＯＭＥ／．ｇｌｏｂｕｓ＿ｊｏｂディレクトリ内のすべてのファイルを読み取る。その後、このコマンドは、これらのホスト上で動作中のジョブのプロセス状況を獲得するためにリモート・ジョブをこれらのホストに発行し、関連の＄ＨＯＭＥ／．ｇｌｏｂｕｓ＿ｊｏｂ／＜ｒｅｍｏｔｅ＿ｈｏｓｔｎａｍｅ＞ファイルに記憶された対応プロセスＩＤをサーチする。図示の例では、これらのジョブ要求は、特定の実現例に応じて、ノードに直接送信される場合もあれば、グリッド・サーバ・プロセスを介して送信される場合もある。
【００３０】
この例では、ノード４００は、図２のデータ処理システム２００などのサーバを使用して実現することができる。他のノードは、図３のデータ処理システム３００などのデータ処理システムを使用して実現することができる。
【００３１】
次に図５に関連して説明すると、本発明の好ましい実施形態により、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドに対する応答を示す図が示されている。文字列５００は、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドを使用してジョブをサブミットしたノードに送り返されるジョブＩＤ文字列の一例である。この文字列は、リソース・リストとも呼ばれ、本発明のメカニズムが使用し、ジョブに関する状況情報を入手するために使用する。これらの例では、この文字列は、このプロセスを実行するグローバス・ジョブ・マネージャによって作成される。グローバス・ジョブ・マネージャは、ジョブを処理するリモート・ノード上で実行されるプログラムまたはプロセスである。文字列５００のセクション５０２は、プロセス識別子（ＰＩＤ）を含む。
【００３２】
図６には、本発明の好ましい実施形態により、状況情報を入手するために使用する項目を示す図が示されている。項目６００はファイル６０２内に位置する。ファイル６０２のファイル名は、これらの例のリモート・ホストの名前を表している。これらの例では、このファイルは、「＄ＨＯＭＥ／．ｇｌｏｂｕｓ＿ｊｏｂ」というディレクトリに記憶される。ファイル６０４は、「＜ｏｔｈｅｒｈｏｓｔ＞」というもう１つのホスト用である。この例では、項目６００は、プロセスＩＤ６０６とジョブＩＤ６０８を含む。この情報は、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドに応答して文字列５００などのジョブＩＤ文字列が返されたときに保管される。次に、グリッド・プロセス状況コマンドが実行されると、本発明のメカニズムは、「ｐｓ−ｅｆｌ」というジョブをサブミットして、プロセス情報を入手する。
【００３３】
この例では、「ｐｆ」はプロセス状況の略であり、「ｅｆｌ」はプロセス状況を求める要求のオプションである。ｐｓコマンドは、アクティブ・プロセスに関する情報を印刷する。フラグがない場合、ｐｓは、制御端末に関連するプロセスに関する情報を印刷する。その出力は、プロセスＩＤと、端末識別子と、累積実行時間と、コマンド名を含む。フラグ付きで表示された情報は、それに応じて様々になる。たとえば、「−ｅ」はカーネル・プロセスを除くすべてのプロセスに関する情報を標準出力に書き出すオプションであり、「−ｆ」は完全なリストを生成するオプションであり、「−ｌ」は長いリストを生成するオプションである。上記のｎａｉｌ−ｐｏｕｎｄｅｒの例で述べたように、これは、ジョブ・サブミッション時にリモート・ノードによって返される状況モニター・プログラムにすることができるだろう。
【００３４】
図７では、本発明の好ましい実施形態により、状況情報を含む応答を示す図が示されている。応答７００は、ｐｓ−ｅｆｌジョブがサブミットされたときに返される応答の一例である。このグローバル・プロセス状況コマンドは、各プロセスＩＤごとに表示するために返される情報をフォーマットする。
【００３５】
次に図８を参照すると、本発明の好ましい実施形態により、ジョブ状況情報の表示の一例が示されている。この例では、表示８００は単一ジョブ・プロセスに関する情報を表示する。当然のことながら、多くのジョブ・プロセスをジョブ８００内で提示することもできる。この例では、表示８００は、各プロセスごとに、Ｆ８０１、Ｓ８０２、ＵＩＤ８０４、ＰＩＤ８０６、ＰＰＩＤ８０８、Ｃ８１０、ＰＲＩ８１２、ＮＩ８１４、ＡＤＤＲ８１６、ＳＺ８１８、ＷＣＨＡＮ８２０、ＳＴＩＭＥ８２２、ＴＴＹ８２４、ＴＩＭＥ８２６、ＣＭＤ８２８というフィールドを提供する。Ｆ８０１は、プロセスまたは−Ｌオプションが指定されている場合はスレッドに関連するフラグ（１６進および付加）を含む。Ｓ８０２はプロセスまたはカーネル・スレッドの状態を表し、ＵＩＤ８０４はプロセスのユーザＩＤ番号である。ＰＩＤ８０６はジョブに関するプロセスＩＤを表している。このプロセスＩＤは、そのプロセスが動作中のノードのみに固有のものである。ＰＰＩＤ８０８は親プロセスのプロセスＩＤである。次に、Ｃ８１０はプロセスまたはスレッドのＣＰＵ使用率である。この値は、システム・クロックが時を刻むたびに増分され、プロセスまたはスレッドが動作中であることが判明する。この値は、毎秒１回、２で割ることによってスケジューラによって減衰される。ｓｃｈｅｄ＿ｏｔｈｅｒポリシーの場合、プロセス・スケジューリング優先順位を決定する際にＣＰＵ使用率を使用する。大きい値はＣＰＵ集中プロセスを示し、その結果、プロセス優先順位が低くなり、小さい値は入出力集中プロセスを示し、その結果、より有利な優先順位になる。このフィールドのデフォルト・ヘッダはＣである。
【００３６】
ＰＲＩ８１２はプロセスまたはカーネル・スレッドの優先順位を表している。ＰＲＩ８１２の数字が大きい場合は優先順位が低いことを意味する。ＮＩ８１４は、ｓｃｈｅｄ＿ｏｔｈｅｒポリシーの場合に優先順位を計算する際に使用するプロセスのｎｉｃｅの値を表している。ＡＤＤＲ８１６は、通常の場合はプロセス・スタックのセグメント番号を含み、カーネル・プロセスの場合は前処理データ域のアドレスを含む。ＳＺ８１８は、プロセスのコア・イメージのサイズをページ数で示す。ＷＣＨＡＮ８２０は、プロセスまたはカーネル・スレッドが待っているかまたはスリープしているイベントである。カーネル・スレッドの場合、カーネル・スレッドが動作中であれば、このフィールドはブランクになる。プロセスの場合、１つのカーネル・スレッドだけがスリープ中であれば、待ちチャネルはスリープ中のカーネル・スレッドの待ちチャネルとして定義され、そうではない場合は星印が表示される。
【００３７】
ＳＴＩＭＥ８２２はプロセスの開始時間を表している。ＬＡＮＧ環境変数はこのフィールドの外観を制御する。ＴＴＹ８２４はそのプロセス用の制御ワークステーションであり、「−」はそのプロセスがワークステーションに関連付けられていないことを意味し、「？」はワークステーションが不明であることを意味する。ＴＩＭＥ８２６はそのプロセスの合計実行時間を示す。ＣＭＤ８２８はコマンド名を含む。この例証では、完全なコマンド名とそのパラメータが表示されている。
【００３８】
さらに、情報を視覚的に提示することに加え、他のタイプの提示も使用することができる。たとえば、他の情報をスピーカにより聞こえるように提示することができる。
【００３９】
次に図９を参照すると、本発明の好ましい実施形態により、ジョブをサブミットするためのプロセスの流れ図が示されている。このプロセスは、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドを使用したときに開始されるプロセスの一例である。図９に示すプロセスは、図４のノード４００などのノードで実現可能である。
【００４０】
このプロセスは、ステップ９００でリモート・リソースによって処理するためにジョブをサブミットすることによって開始する。このジョブは、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドを使用してサブミットされる。戻り文字列を受信する（ステップ９０２）。この戻り文字列からプロセスＩＤとジョブＩＤを保管し（ステップ９０４）、その後、処理は終了する。この情報は、リモート・ノードに関する状況情報を入手する際に使用するために、図６のファイル６０２などのファイルに保管される。ジョブが終了した場合、ｐｓコマンドに応答してＰＩＤは報告されない。ジョブが完了した場合、完了が報告される。
【００４１】
次に図１０を参照すると、本発明の好ましい実施形態により、状況コマンドを処理するためのプロセスの流れ図が示されている。図１０に示すプロセスは、グリッド状況プロセス・コマンドの実行に応答して開始される。この図に示す諸ステップは、グリッド・プロセス状況コマンドのうち、状況情報を求める要求をサブミットする部分を示している。このプロセスは、図４のノード４００などのノード上で実行することができる。
【００４２】
このプロセスは、ファイルを識別することによって開始する（ステップ１００６）。これらのファイルは、プロセス用のファイルが記憶されているディレクトリまたはフォルダ内で識別される。これらのファイルは、たとえば、図６のファイル６０２および６０４にすることができる。その後、処理するために識別したファイルの１つを選択する（ステップ１００２）。その後、プロセス状況を入手するためにジョブをサブミットする（ステップ１００４）。次に、追加の未処理のファイルが存在するかどうかの判定を行う（ステップ１００６）。追加のファイルが存在する場合、プロセスは上記のステップ１００２に戻り、そうではない場合、プロセスは終了する。
【００４３】
次に図１１に関連して説明すると、本発明の好ましい実施形態により、返された状況情報を処理するために使用するプロセスの流れ図が示されている。図１１に示すプロセスは、プロセスに関する状況情報が返されたときにグリッド状況プロセス・コマンドが使用する諸ステップを示している。
【００４４】
このプロセスは、応答を受信するのを待つことによって開始する（ステップ１１００）。応答を受信すると、この応答は、図８の表示８００などの表示として提示される（ステップ１１０２）。次にプロセスは、他の応答が予想されるかどうかを判定する（ステップ１１０４）。他の応答が予想される場合、プロセスはステップ１１００に戻る。そうではない場合、プロセスは終了する。
【００４５】
次に図１２を参照すると、本発明の好ましい実施形態により、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンド用の疑似コードを示す図が示されている。コード１２００は、シェル・コマンドまたはシェル・スクリプト内のコードの一例である。コード１２００は、必要なジョブをサブミットするものであり、後で状況情報を入手する際に使用するために戻り文字列を保管することになる。
【００４６】
図１３に関連して説明すると、本発明の好ましい実施形態により、グリッド・プロセス状況コマンド用の疑似コードを示す図が示されている。コード１３００は、シェル・コマンドまたはシェル・スクリプト内のコードの一例である。この例では、コード１３００は、現在処理中のジョブを識別するために使用するプロセスを実現するものである。
【００４７】
したがって、本発明は、リモート・ノード上で実行中のプロセスに関する状況情報を入手するための方法、装置、およびコンピュータ命令を提供する。本発明のメカニズムは、ノードのユーザがリモート・ノード上で実行中のプロセスに関する情報を入手するための能力を提供する。このメカニズムは、状況コマンドが実行されるクライアントまたはノードにとって、リモートのためのプロセスまたはサービスに変更または修正を加える必要はない。
【００４８】
本発明のメカニズムは新しいジョブサブミットコマンドであるｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドを提供するが、これは、ジョブをサブミットし、状況情報を入手する際に使用するために戻り文字列を保管する。そのうえ、本発明のメカニズムはグリッド・プロセス状況コマンドを提供するが、これは、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドによって保管した情報を使用して、リモート・ノード上のジョブの状況情報を入手するために使用する。
【００４９】
完全に昨日するデータ処理システムに関連して本発明を説明してきたが、当業者であれば、本発明のプロセスが命令および様々な形式からなるコンピュータ可読媒体の形で配布可能であり、その配布を実行するために実際に使用する特定タイプの信号運搬媒体にかかわらず本発明が等しく適用されることが分かることは、留意すべき重要なことである。コンピュータ可読媒体の例としては、フレキシブル・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能タイプの媒体と、たとえば、無線周波伝送および光波伝送などのディジタルおよびアナログ通信リンク、有線または無線通信リンクなどの伝送タイプの媒体とを含む。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するためにデコードされるコード化フォーマットの形を取ることができる。
【００５０】
本発明の説明は、例示および説明のために提示したものであり、網羅するためのものでも、開示した形の本発明に制限するためのものでもない。当業者には多くの修正形態および変形形態が明白になるだろう。実施形態は、本発明の原理、実用的な応用例を最も良く説明し、企図する特定の用途に適した様々な修正を伴う様々な実施形態に関する本発明を他の当業者が理解できるようにするために選択し、記載したものである。
【００５１】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）グリッド内で実行中のプロセスに関する状況情報を入手するためのデータ処理システム内の方法において、
前記データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するステップと、
前記ジョブ識別子を１組のジョブ識別子内に保管するステップと、
前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするステップと、
前記１組のジョブ状況要求に対する応答を受信するステップと、
前記応答を提示するステップとを有する方法。
（２）前記ジョブ識別子がファイルに保管される、上記（１）に記載の方法。
（３）ジョブ状況要求に対する応答が特定のジョブが実行済みであることを示している場合、前記特定のジョブに関する前記１組のジョブ識別子内の特定のジョブ識別子を除去するステップをさらに有する、上記（１）に記載の方法。
（４）前記データ処理システム上で実行中のローカル・ジョブに関する前記１組のジョブ識別子内にジョブ識別子を保管するステップをさらに有する、上記（１）に記載の方法。
（５）前記１組のジョブ識別子内の各ジョブ識別子が固有の識別子である、上記（１）に記載の方法。
（６）ユーザ入力および定期的イベントのうちの少なくとも１つに応答して、ジョブの状況を求める要求が生成される、上記（１）に記載の方法。
（７）前記リモート・ノードがＧＲＡＭである、上記（１）に記載の方法。
（８）表示画面およびスピーカのうちの少なくとも１つを使用して、前記応答が提示される、上記（１）に記載の方法。
（９）グリッド内で実行中のプロセスに関する状況情報を入手するためのデータ処理システムにおいて、前記データ処理システムが、
前記データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するための第１の受信手段と、
前記ジョブ識別子を１組のジョブ識別子内に保管するための保管手段と、
前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするためのサブミット手段と、
前記１組のジョブ状況要求に対する応答を受信するための第２の受信手段と、
前記応答を提示するための提示手段とを有するデータ処理システム。
（１０）前記ジョブ識別子がフラット・ファイルに保管される、上記（９）に記載のデータ処理システム。
（１１）ジョブ状況要求に対する応答が特定のジョブが実行済みであることを示している場合、前記特定のジョブに関する前記１組のジョブ識別子内の特定のジョブ識別子を除去するための除去手段をさらに有する、上記（９）に記載のデータ処理システム。
（１２）前記データ処理システム上で実行中のローカル・ジョブに関する前記１組のジョブ識別子内にジョブ識別子を保管するための保管手段をさらに有する、上記（９）に記載のデータ処理システム。
（１３）前記１組のジョブ識別子内の各ジョブ識別子が固有の識別子である、上記（９）に記載のデータ処理システム。
（１４）ユーザ入力および定期的イベントのうちの少なくとも１つに応答して、ジョブの状況を求める要求が生成される、上記（９）に記載のデータ処理システム。
（１５）前記リモート・ノードがＧＲＡＭである、上記（９）に記載のデータ処理システム。
（１６）表示画面およびスピーカのうちの少なくとも１つを使用して、前記応答が提示される、上記（９）に記載のデータ処理システム。
（１７）グリッド内で実行中のプロセスに関する状況情報を入手するためのデータ処理システムにおいて、前記データ処理システムが、
バス・システムと、
前記バス・システムに接続されたメモリであって、１組の命令を含むメモリと、
前記バス・システムに接続された処理装置であって、前記データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するためと、前記ジョブ識別子を１組のジョブ識別子内に保管するためと、前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするためと、前記１組のジョブ状況要求に対する応答を受信するためと、前記応答を提示するための１組の命令を実行する処理装置とを有するデータ処理システム。
（１８）グリッド内で実行中のプロセスに関する状況情報を入手するためのコンピュータ可読媒体内のコンピュータ・プログラム記録媒体において、前記コンピュータ・プログラム記録媒体が、
データ処理システムから前記グリッド上のリモート・ノードへジョブをサブミットしたことに応答して、前記リモート・ノードからジョブ識別子を受信するための第１の命令と、
前記ジョブ識別子を１組のジョブ識別子内に保管するための第２の命令と、
前記データ処理システムからサブミットされたジョブの状況を求める要求に応答して、前記１組のジョブ識別子を使用して１組のジョブ状況要求を形成して、依然として実行中のプロセスに関する前記１組のジョブ識別子内の各ジョブ識別子ごとにジョブ状況要求をサブミットするための第３の命令と、
前記１組のジョブ状況要求に対する応答を受信するための第４の命令と、
前記応答を提示するための第５の命令とを有するコンピュータ・プログラム記録媒体。
（１９）前記ジョブ識別子がフラット・ファイルに保管される、上記（１８）に記載のコンピュータ・プログラム記録媒体。
（２０）ジョブ状況要求に対する応答が特定のジョブが実行済みであることを示している場合、前記特定のジョブに関する前記１組のジョブ識別子内の特定のジョブ識別子を除去するための第６の命令をさらに有する、上記（１８）に記載のコンピュータ・プログラム記録媒体。
【図面の簡単な説明】
【００５２】
【図１】本発明を実現可能なデータ処理システムのネットワークの絵画表現である。
【図２】本発明の好ましい実施形態により、サーバとして実現可能なデータ処理システムのブロック図である。
【図３】本発明を実現可能なデータ処理システムを示すブロック図である。
【図４】本発明の好ましい実施形態により、グリッド内の構成要素を示す図である。
【図５】本発明の好ましい実施形態により、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンドに対する応答を示す図である。
【図６】本発明の好ましい実施形態により、状況情報を入手するために使用する項目を示す図である。
【図７】本発明の好ましい実施形態により、状況情報を含む応答を示す図である。
【図８】本発明の好ましい実施形態により、ジョブ状況情報の表示の一例を示す図である。
【図９】本発明の好ましい実施形態により、ジョブをサブミットするためのプロセスの流れ図である。
【図１０】本発明の好ましい実施形態により、状況コマンドを処理するためのプロセスの流れ図である。
【図１１】本発明の好ましい実施形態により、返される状況情報を処理するために使用するプロセスの流れ図である。
【図１２】本発明の好ましい実施形態により、ｍｙ−ｊｏｂ−ｓｕｂｍｉｔコマンド用の疑似コードを示す図である。
【図１３】本発明の好ましい実施形態により、グリッド・プロセス状況コマンド用の疑似コードを示す図である。
【符号の説明】
【００５３】
２００  データ処理システム
２０２、２０４  プロセッサ
２０６  システム・バス
２０８  メモリ・コントローラ／キャッシュ
２０９  ローカル・メモリ
２１０  Ｉ／Ｏバス・ブリッジ
２１２  Ｉ／Ｏバス
２１４  ＰＣＩバス・ブリッジ
２１６  ＰＣＩローカル・バス
２１８  モデム
２２０  ネットワーク・アダプタ
２２２、２２４  ＰＣＩバス・ブリッジ    
２２６、２２８  ＰＣＩローカル・バス    
２３０  メモリマップ・グラフィックス・アダプタ
２３２  ハード・ディスク
【図１】
2004295887.tif 000003
【図２】
2004295887.tif 000004
【図３】
2004295887.tif 000005
【図４】
2004295887.tif 000006
【図５】
2004295887.tif 000007
【図６】
2004295887.tif 000008
【図７】
2004295887.tif 000009
【図８】
2004295887.tif 000010
【図９】
2004295887.tif 000011
【図１０】
2004295887.tif 000012
【図１１】
2004295887.tif 000013
【図１２】
2004295887.tif 000014
【図１３】
2004295887.tif 000015