(57)【要約】【課題】ワークロード・マネージャにおいてディスパッチャのシェア（Ｄ）を計算する方法を提供すること。【解決手段】  前記ワークロード・マネージャは一のアービトレータに結合され、当該アービトレータは複数のシステムに結合され、各システムは一のディスパッチャを備え、各ディスパッチャは複数の実行ユニットに結合され、前記アービトレータはワークロード項目のフローを受け取り且つこれを前記ディスパッチャに配分するのに適合しており、前記実行ユニットは前記ワークロード項目を実行するのに適合しており、前記ワークロード項目は少なくとも第１〜第３のワークロード・タイプを有する。前記方法は、前記複数のシステムにわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を読み取るステップを有し、前記サービス単位はＣＰＵ消費量を測定するための値であり、各システム上の各ワークロード・タイプ用のキャパシティ（ｃａｐ）値を読み取るステップをさらに有し、前記キャパシティ値は一のシステムが実行することができる最大サービス単位を示す。さらに、前記方法は、前記キャパシティ値を前記サービス単位の合計値で除算することにより、ディスパッチャの相対シェア（Ｒ）を計算するステップと、各システムの前記ディスパッチャの相対シェアのうち最小値を獲得するステップと、各システム上の各ワークロード・タイプ用の前記ワークロード項目のキュー長（ｑ）を各システム上の各ワークロード・タイプの前記キャパシティ値で除算することにより、各システム用の相対キュー長（Ｖ）を計算するステップと、前記最小値と前記相対キュー長の第１の関数とを乗算することにより、各システム用の前記ディスパッチャのシェア（Ｄ）を計算するステップとを有する。【選択図】  図３
2011513807.tif 000002
【特許請求の範囲】
【請求項１】
ワークロード・マネージャ（１０１）においてディスパッチャのシェア（Ｄ）を計算する方法であって、
前記ワークロード・マネージャ（１０１）はアービトレータ（１０２）に結合され、前記アービトレータ（１０２）は複数のシステム（１１７〜１１９）に結合され、各システムはディスパッチャ（１０３、１０４又は１０５）を備え、各ディスパッチャ（１０３、１０４又は１０５）は複数の実行ユニット（１０６〜１０８、１０９〜１１１又は１１２〜１１４）に結合され、前記アービトレータ（１０２）はワークロード項目（１１５）のフローを受け取り且つこれを前記ディスパッチャ（１０３〜１０５）に配分するのに適合しており、前記実行ユニット（１０６〜１１４）は前記ワークロード項目（１１５）を実行するのに適合しており、前記ワークロード項目（１１５）は少なくとも第１〜第３のワークロード・タイプを有しており、
前記方法は、
メモリ（１１６）から前記複数のシステム（１１７〜１１９）にわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を読み取るステップを有し、前記サービス単位は一の時間インターバル中のＣＰＵ消費量を測定するための値であり、
前記メモリ（１１６）から前記複数のシステム（１１７〜１１９）の各システム上の各ワークロード・タイプ用のキャパシティ値（ｃａｐ）を読み取るステップを有し、前記キャパシティ値（ｃａｐ）は前記時間インターバル中に一のシステムが実行することができる最大サービス単位を示し、
各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）を各ワークロード・タイプの前記サービス単位の合計値（Ｗ）で除算することにより、各システムのディスパッチャの相対シェア（Ｒ）を計算するとともに、各システムの当該ディスパッチャの相対シェア（Ｒ）のうち最小値を獲得するステップを有し、
各システム上の各ワークロード・タイプ用の前記ワークロード項目（１１５）のキュー長（ｑ）を各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）で除算することにより、各システム用の相対キュー長（Ｖ）を計算するステップを有し、
算術演算を使用して、前記最小値及び前記相対キュー長（Ｖ）の第１の関数（４２７）を組み合わせることにより、各システム用の前記ディスパッチャのシェア（Ｄ）を計算するステップを有する方法。
【請求項２】
前記相対キュー長（Ｖ）の前記第１の関数（４２７）は、前記相対キュー長（Ｖ）の最大値の逆数値を計算する、請求項１に記載の方法。
【請求項３】
前記算術演算は乗算である、請求項１又は請求項２に記載の方法。
【請求項４】
前記ディスパッチャのシェア（Ｄ）は、当該ディスパッチャのシェア（Ｄ）を全てのシステムの全てのディスパッチャの和で除算することにより正規化される、請求項１ないし請求項３の何れか１項に記載の方法。
【請求項５】
前記第１〜第３のワークロード・タイプは、ＣＰ、ｚＡＡＰ及びｚＩＩＰワークロード・タイプである、請求項１ないし請求項４の何れか１項に記載の方法。
【請求項６】
前記最小値は、当該最小値を全てのシステムの全ての最小値の和で除算することにより正規化される、請求項１ないし請求項５の何れか１項に記載の方法。
【請求項７】
前記アービトレータは、前記ワークロード項目（１１５）のフローを他のシステム内の他のディスパッチャに配分する、請求項１ないし請求項６の何れか１項に記載の方法。
【請求項８】
請求項１ないし請求項７の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【請求項９】
ワークロード・マネージャ（１０１）においてディスパッチャのシェア（Ｄ）を計算するためのデータ処理システムであって、
前記ワークロード・マネージャ（１０１）はアービトレータ（１０２）に結合され、前記アービトレータ（１０２）は複数のシステム（１１７〜１１９）に結合され、各システムはディスパッチャ（１０３、１０４又は１０５）を備え、各ディスパッチャ（１０３、１０４又は１０５）は複数の実行ユニット（１０６〜１０８、１０９〜１１１又は１１２〜１１４）に結合され、前記アービトレータ（１０２）はワークロード項目（１１５）のフローを受け取り且つこれを前記ディスパッチャ（１０３〜１０５）に配分するのに適合しており、前記実行ユニット（１０６〜１１４）は前記ワークロード項目（１１５）を実行するのに適合しており、前記ワークロード項目（１１５）は少なくとも第１〜第３のワークロード・タイプを有しており、
前記データ処理システムは、
メモリ（１１６）から前記複数のシステム（１１７〜１１９）にわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を読み取るためのコンポーネントを備え、前記サービス単位は一の時間インターバル中のＣＰＵ消費量を測定するための値であり、
前記メモリ（１１６）から前記複数のシステム（１１７〜１１９）の各システム上の各ワークロード・タイプ用のキャパシティ値（ｃａｐ）を読み取るためのコンポーネントを備え、前記キャパシティ値（ｃａｐ）は前記時間インターバル中に一のシステムが実行することができる最大サービス単位を示し、
各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）を各ワークロード・タイプの前記サービス単位の合計値（Ｗ）で除算することにより、各システムのディスパッチャの相対シェア（Ｒ）を計算するとともに、各システムの当該ディスパッチャの相対シェア（Ｒ）のうち最小値を獲得するためのコンポーネントを備え、
各システム上の各ワークロード・タイプ用の前記ワークロード項目（１１５）のキュー長（ｑ）を各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）で除算することにより、各システム用の相対キュー長（Ｖ）を計算するためのコンポーネントを備え、
算術演算を使用して、前記最小値及び前記相対キュー長（Ｖ）の第１の関数（４２７）を組み合わせることにより、各システム用の前記ディスパッチャのシェア（Ｄ）を計算するためのコンポーネントを備える、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークロード・マネージャにおいてルーティング・ワークロードを計算する方法及びコンピュータ・プログラムに係る。
【背景技術】
【０００２】
メインフレームは、重要なアプリケーションを実行し且つ金融取引処理のような大量なデータを処理するために、主として大組織によって使用されるコンピュータである。メインフレームは、信頼性及び安全なシステムを提供するために、高度の冗長性を有している。メインフレームは、複数のオペレーティング・システムを実行又はホストすることができるから、現用中の多数の小型サーバをメインフレームに置き換えると、管理負担を軽減させ且つ改良されたスケーラビリティを提供することができる。最近のメインフレームは、ＩＢＭ社のｚＳｅｒｉｅｓ及びシステムｚ９サーバを含む。
【０００３】
並列シスプレックスは、ｚ／ＯＳを使用して、単一のシステム・イメージとして協調して動作する、複数のＩＢＭメインフレームのクラスタである。シスプレックスは、並行処理を使用し且つ完全なデータ保全性を維持しつつ、複数のシステムにわたる読み取り／書き込みデータの共有を可能にすることにより、最大３２個のシステムをクラスタ化し且つこれらのシステムにわたり一のワークロードを共有する。このワークロードについては、これを一のシステム内の複数の個別プロセッサにわたり動的に配分（distribute）したり、使用可能な資源を有するクラスタ内の任意のシステムに配分することができる。また、ワークロード平衡化は、クリティカルな応答レベルを維持しつつ、並列シスプレックス・クラスタにわたり種々のアプリケーションを実行することを可能にする。もし、ワークロード平衡化又はワークロード・ルーティングが正確に行われなければ、システム内で過負荷が生じることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、当分野では、ワークロード・マネージャにおいてディスパッチャのシェアを効率的に計算する方法、並びに当該方法を実行するのに適したワークロード・マネージャ及びコンピュータ・プログラムが要請されている。
【課題を解決するための手段】
【０００５】
本発明は、ワークロード・マネージャにおいてディスパッチャのシェア（Ｄ）を計算する方法を提供する。前記ワークロード・マネージャは一のアービトレータに結合され、当該アービトレータは複数のシステムに結合され、各システムは一のディスパッチャを備え、各ディスパッチャは複数の実行ユニットに結合され、前記アービトレータはワークロード項目のフローを受け取り且つこれを前記ディスパッチャに配分するのに適合しており、前記実行ユニットは前記ワークロード項目を実行するのに適合しており、前記ワークロード項目は少なくとも第１〜第３のワークロード・タイプを有する。前記方法は、メモリから前記複数のシステムにわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を読み取るステップを有し、前記サービス単位は一の時間インターバル中のＣＰＵ消費量を測定するための値であり、前記メモリから各システム上の各ワークロード・タイプ用のキャパシティ（ｃａｐ）値を読み取るステップをさらに有し、前記キャパシティ値は一のシステムが実行することができる最大サービス単位を示す。
【０００６】
さらに、前記方法は、各システム上の各ワークロード・タイプの前記キャパシティ値を各ワークロード・タイプの前記サービス単位の合計値で除算することにより、各システムのディスパッチャの相対シェア（Ｒ）を計算するとともに、各システムの当該ディスパッチャの相対シェア（Ｒ）のうち最小値を獲得するステップと、各システム上の各ワークロード・タイプ用の前記ワークロード項目のキュー長（ｑ）を各システム上の各ワークロード・タイプの前記キャパシティ値で除算することにより、各システム用の相対キュー長（Ｖ）を計算するステップと、算術演算を使用して、前記最小値と前記相対キュー長（Ｖ）の第１の関数を組み合わせることにより、各システム用の前記ディスパッチャのシェア（Ｄ）を計算するステップとを有する。
【０００７】
前記ディスパッチャのシェアは、全てのルーティングに対するディスパッチャのシェア、すなわち全てのディスパッチャがアービトレータから受け取るワークロードのシェアを指す。前記ディスパッチャの相対シェアは、最小の相対実行キャパシティのディスパッチャの相対シェアを指す。
【０００８】
前記方法の前記相対キュー長の前記第１の関数は、前記相対キュー長の最大値の逆数値を計算することを含む。前記算術演算は乗算である。前記第１〜第３のワークロード・タイプは、general CPU （ＣＰ）、z Application Assist Processor（ｚＡＡＰ）及び z9 Integrated Information Processor （ｚＩＩＰ）ワークロード・タイプである。前記ディスパッチャのシェアは、当該ディスパッチャのシェアを全てのシステムの全てのディスパッチャの和で除算することにより正規化される。
【０００９】
前記方法の前記最小値は、当該最小値を全てのシステムの全ての最小値の和で除算することにより正規化される。前記アービトレータは、前記ワークロード項目のフローを他のシステム内の他のディスパッチャに配分する。
【００１０】
他の側面では、本発明は、前記方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムに係る。
【００１１】
他の側面では、本発明は、ワークロード・マネージャにおいてディスパッチャのシェアを計算するためのデータ処理システムに係る。
【発明の効果】
【００１２】
実施形態の利点のうちの１つは、シスプレックスの合計キャパシティが依然として全てのワークロード・タイプ用の合計ワークロード・デマンドを超過する限り、キャパシティ不足又は一の実行ユニットの停止（outage）の結果として、ディスパッチャ及び実行ユニット内のキューが無限に成長しないということである。これらの場合、各システムに対する全てのルーティングのディスパッチャのシェアは、任意のプロセッサ上のそのキャパシティに相対的なキュー長及びそのキャパシティに対する一のワークロード・タイプのサービス単位の合計値の相対値に依存する。１つのシステム上の一の実行ユニットが停止する場合は、他のシステム内にある諸資源のオーバーフロー又は輻輳に帰着することなく、ワークロードを当該他のシステムに配分することにより、当該実行ユニットを補償することが可能である。他の利点は、ディスパッチャのシェアの計算が初期のワークロード配分から独立していること及びアルゴリズムが最適のワークロード配分に集中することである。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に従った、シスプレックス１００のブロック図である。
【図２】本発明の実施形態に従った、シスプレックス２００を形成するように相互に接続された複数のシステムのブロック図である。
【図３】本発明の実施形態に従った、ディスパッチャのシェアを計算する方法のフローチャートである。
【図４】本発明の実施形態に従った、ワークロード・マネージャの計算のブロック図である。
【発明を実施するための形態】
【００１４】
図１のシスプレックス１００は、第１のシステム１１８を備え、その第１のワークロード・マネージャ１０１は、アービトレータ１０２に結合される。アービトレータ１０２は、第１〜第３のディスパッチャ１０３〜１０５に結合される。第１のワークロード・マネージャ１０１は、他の２つのワークロード・マネージャ１２０及び１２１に結合される。第１のディスパッチャ１０３は、第２のシステム１１７内に設けられ、３つの実行ユニット１０６〜１０８に結合される。第２のディスパッチャ１０４は、第１のシステム１１８内に設けられ、３つの実行ユニット１０９〜１１１に結合される。第３のディスパッチャ１０５は、第３のシステム１１９内に設けられ、他の３つの実行ユニット１１２〜１１４に結合される。メモリ１１６は、ワークロード・マネージャ１０１に結合される。
【００１５】
アービトレータ１０２は、入来する複数のワークロード項目１１５を受け取り、それらをディスパッチャ１０３〜１０５に送付する。ディスパッチャ１０３〜１０５は、当該ワークロード項目１１５のワークロード・タイプを決定し、それらを専門化された実行ユニット１０６〜１１４に送付する。前記複数のワークロード項目１１５のキュー長（queue length）は、各ディスパッチャごと及び各実行ユニットごとに測定することができる。例えば、ディスパッチャ１０３は、５ワークロード項目のキュー長（ｑＤ１）を有し、実行ユニット１０６は、３ワークロード項目のキュー長（ｑＥ１，１）を有する。全てのディスパッチャ又は全ての実行ユニットについてキュー長を測定する必要はない。キュー長は、アービトレータ１０２の背後にあるルーティングの少なくとも１つのステージにおいて測定しなければならない。これは、本発明の実施形態の唯１つの要件である。
【００１６】
各ワークロード項目は、一の時間インターバル中に一の実行ユニットの異なるＣＰＵ消費量を必要とするが、その消費量は、アービトレータ１０２には前もって知られていない。従って、ディスパッチャ１０３〜１０５に対する複数のワークロード項目１１５の割り当ては、各ワークロード項目１１５のサイズ又はそのＣＰＵ消費量に依存しない。各ワークロード項目１１５のワークロード・タイプは、ディスパッチャ１０３〜１０５によって識別され、ワークロード項目１１５のサイズは、ディスパッチャ１０３〜１０５又は実行ユニット１０６〜１１４によって識別される。前述のように、アービトレータ１０２は、ワークロード項目１１５のワークロード・タイプ及びワークロード項目１１５のサイズを前もって知らないから、間違ったアルゴリズムが一のキューを無限に成長させることがある。全てのシステム１１７〜１１９のワークロード・マネージャ１０１、１２０及び１２１は、相互に結合され且つ定期的に対話することにより、当該システムのキャパシティ及びワークロード値を通信する。メモリ１１６は、前記複数のシステムにわたる全てのワークロード・タイプのサービス単位の合計値及び各システムの全てのワークロード・タイプのキャパシティ値を格納する。
【００１７】
図２に例示するシスプレックス２００は、相互に接続された第１〜第４のシステム２０１〜２０４によって形成される。システム２０１〜２０４は、ワークロード・マネージャ２０５〜２０８を含み、これらのワークロード・マネージャ２０５〜２０８の全ては、互いに結合されている。ワークロード・マネージャ２０５及び２０６は、アービトレータ２０９及び２１０に結合される。代替的に、シスプレックス２００内に１つのアービトレータを設けることで十分である。アービトレータ２０９及び２１０は、複数のディスパッチャ２１３〜２１６に結合され、一方、ディスパッチャ２１３〜２１６は、実行ユニット２１７〜２２０にそれぞれ結合される。全てのシステム２０１〜２０４が一のアービトレータを必要とするとは限らない。というのは、アービトレータは、シスプレックス２００内の任意のシステムにワークロードを送付することができるからである。
【００１８】
ワークロード・マネージャ２０５〜２０８は、それぞれルーティング・アルゴリズムを処理する。このルーティング・アルゴリズムは、一のディスパッチャが受け取るべきワークロード項目の相対量のディスパッチャのシェアを計算する。アービトレータ２０９及び２１０は、ワークロード項目のワークロード・タイプ及びワークロード項目のサイズを知らない。このため、アービトレータ２０９及び２１０は、ワークロード・マネージャ２０５〜２０８からルーティング推奨（recommendations）を受け取り、ルーティング・アルゴリズムの結果に従ってワークロード項目を配分する。
【００１９】
キュー・マネージャとも称するディスパッチャ２１３〜２１６は、アービトレータ２０９及び２１０からワークロード項目を受け取り、サーバとも称する実行ユニット２１７〜２２０によって取り出されるまで、それらのワークロード項目を待ち行列化する。実行ユニット２１７〜２２０は、ワークロード項目を実行し、ワークロード・タイプを読み取り、どのプロセッサがワークロード項目を処理することができるかを決定する。ワークロード・タイプは、general CPU (CP)、z Application Assist Processor (zAAP) 及び z9 Integrated Information Processor(zIIP) ワークロード・タイプを含む、３つ以上のタイプとすることができる。各ワークロード・タイプごとに、異なるプロセッサが使用される。ワークロード・マネージャ２０５〜２０８は、全てのシステム２０１〜２０４にわたってディスパッチャ・ステータスに関係する情報を受け取るように、相互に結合されている。
【００２０】
図３は、ワークロード・マネージャにおいてディスパッチャのシェア（Ｄ）を計算する方法のフローチャート３００を示す。第１のステップ３０１は、進行中の時間インターバルの間に、複数のシステムにわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を獲得する。サービス単位は、一の時間インターバル中のＣＰＵ消費量を測定する値である。サービス単位の合計値（Ｗ）は、第１のワークロード・タイプ用の第１のサービス単位値と、第２のワークロード・タイプ用の第２のサービス単位値と、第３のワークロード・タイプ用の第３のサービス単位値とを含む。システム内でさらなるワークロード・タイプが使用可能である場合は、これに対応するサービス単位の合計値（Ｗ）が獲得される。
【００２１】
第２のステップ３０２は、複数のシステムの各システム上の第１〜第３のワークロード・タイプを含む、各ワークロード・タイプ用の一のキャパシティ値（ｃａｐ）を獲得する。キャパシティ値（ｃａｐ）は、一の時間インターバル中に一のシステムが実行することのできるサービス単位の最大量を測定する。各ワークロード・タイプごと及び各システムごとに、異なるキャパシティ値（ｃａｐ）が獲得される。従って、各システムは、各ワークロード・タイプ用の一のキャパシティ値（ｃａｐ）を含むであろう。
【００２２】
第３のステップ３０３は、ディスパッチャの相対シェア（Ｒ）を計算する。この相対シェア（Ｒ）は、各システム上の各ワークロード・タイプ用のキャパシティ値（ｃａｐ）を、各ワークロード・タイプ用のサービス単位の合計値（Ｗ）で除算することにより獲得される。各システム上の各ワークロード・タイプ用に獲得されたキャパシティ値（ｃａｐ）は、同じワークロード・タイプのサービス単位の合計値（Ｗ）で除算され、そしてその最小値は、各システムのディスパッチャの相対シェアに対応する。第３のステップ３０３では、各システムごとに単一の値が獲得される。
【００２３】
第４のステップ３０４は、各システムからの相対キュー長（Ｖ）を計算する。この相対キュー長（Ｖ）は、各システム上の各ワークロード・タイプ用のワークロード項目のキュー長（ｑ）を、各システム上の各ワークロード・タイプのキャパシティ値（ｃａｐ）で除算することにより獲得される。各システムは、各ワークロード・タイプ用の一の値を獲得する。
【００２４】
第５のステップ３０５は、算術演算を使用して、前記最小値及び前記相対キュー長（Ｖ）の第１の関数を組み合わせることにより、各システム用のディスパッチャのシェア（Ｄ）を計算する。
【００２５】
図４は、ワークロード項目のフローを複数のディスパッチャにわたって配分するための、ディスパッチャのシェア（Ｄ）の計算を例示する。第１のテーブル４００は、第１〜第３のシステム４０１〜４０３と、第１〜第３のワークロード・タイプ４０４〜４０６と、サービス単位の合計値（Ｗ）４０７と、各システム上の複数のキャパシティ値（ｃａｐ）、すなわち第１のシステム４０１上の複数の第１のキャパシティ値４０８、第２のシステム４０２上の複数の第２のキャパシティ値４０９及び第３のシステム４０３上の複数の第３のキャパシティ値４１０とを含む。
【００２６】
第２のテーブル４２０は、各システム上及び各ワークロード・タイプの複数のキュー長（ｑ）４２１〜４２３と、各システム上及び各ワークロード・タイプ用の計算された相対キュー長（Ｖ）４２４〜４２６と、各システム上及び各ワークロード・タイプ用の相対キュー長の関数４２７とを含む。
【００２７】
ワークロード・マネージャにおいてディスパッチャのシェア（Ｄ）を計算するための第１のステップのうちの１つは、全てのシステム４０１〜４０３にわたる各ワークロード・タイプのサービス単位の合計値（Ｗ）を獲得することを含む。この例では、第１のシステム４０１上の第１のワークロード・タイプ用のサービス単位の合計値は「３００」であり、第２のワークロード・タイプ用のサービス単位の合計値は「５００」であり、第３のワークロード・タイプ用のサービス単位の合計値は「１０」である。
【００２８】
他のステップは、各システムごと及び各ワークロード・タイプごとのキャパシティ値（ｃａｐ）を獲得することを含む。例えば、第１のシステム４０１上では、第１のワークロード・タイプ用のキャパシティ値は「９０」であり、第２のワークロード・タイプ用のキャパシティ値は「１００」であり、第３のワークロード・タイプ用のキャパシティ値は「１０」である。第２のシステム４０２上では、第１のワークロード・タイプ用のキャパシティ値は「２００」であり、第２のワークロード・タイプ用のキャパシティ値は「４００」であり、第３のワークロード・タイプ用のキャパシティ値は「１００」である。全てのシステムについてキャパシティ値が獲得された後、各システム上で各ワークロード・タイプ用のディスパッチャの相対シェア（Ｒ）を計算することができる。
【００２９】
第１のシステム４０１上では、システム４０１が処理することができる第１のワークロードは、第１のワークロード・タイプ用のキャパシティ値「９０」を、第１のワークロード・タイプのサービス単位の合計値「３００」で除算し、その結果「０.３」を導くことにより、獲得することができる。第２のワークロード・タイプの第２のキャパシティ値「１００」を、第２のワークロード・タイプのサービス単位の合計値「５００」で除算すると、システム４０１が処理することができる第２のワークロードは「０.２」となる。この値は、システム４０１が処理することができる実際のワークロードを、パーセンテージで表したものである。第３のワークロード・タイプについて同じプロセスを繰り返すと、その結果は「１」になる。また、他のシステム４０２及び４０３にわたって同じプロセスを繰り返すと、各システムごとに３つの異なる値が獲得される。
【００３０】
ディスパッチャのシェアを計算する前記方法の他のステップは、以前に獲得したディスパッチャの相対シェア（Ｒ）の最小値を計算することを含む。例えば、第１のシステム４０１上では、ディスパッチャの相対シェア（Ｒ）として、「０.３」、「０.２」及び「１」の３つの値がある。これらの３つの値の最小値は、「０.２」である。第２のシステム４０２については、ディスパッチャの相対シェア（Ｒ）の最小値は「０.６６６７」であり、第３のシステム４０３については、ディスパッチャの相対シェア（Ｒ）の最小値は「１」である。
【００３１】
第２のテーブル４２０は、ディスパッチャのシェア（Ｄ）を計算する前記方法の諸ステップを例示する。すなわち、これらのステップは、キュー長（ｑ）４２１〜４２３を特定のワークロード・タイプ用のキャパシティ値（ｃａｐ）４０８〜４１０で除算することにより、相対キュー長（Ｖ）４２４〜４２６を計算することを含む。第１のシステム４０１上では、第１のワークロード・タイプ用のキュー長４２１は「１２５」であり、第２のワークロード・タイプ用のキュー長４２１は「８９」であり、第３のワークロード・タイプ用のキュー長４２１は「６７」である。第１のシステム４０１上では、第１の相対キュー長４２４は、「１２５」を「９０」で除算することにより「１.３８８」として獲得され、第２の相対キュー長４２４は、「８９」を「１００」で除算することにより「０.８９」として獲得される。全てのシステム４０１〜４０３にわたって全てのワークロード・タイプの全てのキュー長について同じプロセスを繰り返すと、第１のシステム４０１の第３の相対キュー長４２４は「６.７」として獲得される。
【００３２】
さらに、第２のテーブル４２０は、相対キュー長（Ｖ）４２４〜４２６の第１の関数４２７を含む。この関数は、「１＋最大の相対キュー長」の逆数値を獲得するためのものである。第１のシステム４０１上では、最大の相対キュー長は「６.７」であるから、その値＋１の逆数値は「０.１２９９」である。第２のシステム４０２上では、最大の相対キュー長は「３.６５５」であるから、その値＋１の逆数値は「０.２１４８」である。第３のシステム４０３上では、最大の相対キュー長は「４.３５６４」であるから、その値＋１の逆数値は「０.１８６７」である。これらの全ての値が計算されると、ディスパッチャのシェア（Ｄ）を獲得するために、各システムのディスパッチャの相対シェア（Ｒ）の最小値と、各システムの第１の関数値とが乗算される。従って、第１のシステム４０１については、「０.２」と「０.１２９９」とを乗算することにより、「０.０２５９８」が獲得される。第２のシステム４０２については、「０.６６６７」と「０.２１４８」とを乗算することにより、「０.１４３２」が獲得される。
【００３３】
最後に、第３のシステム４０３については、「１」と「０.１８６７」とを乗算することにより、「０.１８６７」が獲得される。これらの３つの値は、各システムごとのディスパッチャのシェアを示すから、アービトレータは、各ディスパッチャごとに異なる量のワークロード単位を送付することができる。その結果、全てのディスパッチャ及び全てのシステムにわたって、ワークロード項目の最良の可能な配分を獲得することができる。予め定められた、一定の時間インターバルの後、ワークロードＷ、キャパシティ及びキュー長における任意の変化を考慮に入れて、前記計算を繰り返すことにより、ディスパッチャのシェア（Ｄ）を新しい最適値に調整することができる。
【００３４】
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態又はハードウェア及びソフトウェア要素の両方を含む実施形態の形式を取ることができる。好ましい実施形態では、本発明は、（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）ソフトウェアの形式で実装される。
【００３５】
さらに、本発明は、コンピュータ又は任意の命令実行システムによって或いはそれらに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形式を取ることができる。この点に関連して、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによってあるいはそれらに関連して使用するためのプログラムを保持し、格納し、通信し、伝播し又は搬送することができる任意の装置とすることができる。
【００３６】
かかる媒体は、電子的、磁気的、光学的、電磁的、赤外線、又は半導体システム（装置又はデバイス）或いは伝播媒体とすることができる。コンピュータ可読媒体の例は、半導体又は固体メモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定磁気ディスク及び光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク・リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤを含む。
【００３７】
プログラム・コードを格納又は実行もしくはこれらの両方を行うための適切なデータ処理システムは、システム・バスを通してメモリ要素に直接的に又は間接的に結合された少なくとも１つのプロセッサを含むであろう。かかるメモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置、及び実行中にコードが大容量記憶装置から検索されなければならない回数を減らすために、プログラム・コードの一時的記憶装置を提供するキャッシュ・メモリとを含むことができる。
【００３８】
Ｉ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイス等を含む）は、直接的に又はＩ／Ｏコントローラを介してシステムに結合することができる。また、ネットワーク・アダプタをデータ処理システムに結合すると、当該データ処理システムを、プライベート・ネットワーク又は公衆ネットワークを介して、他のデータ処理システム、リモート・プリンタ、ストレージ装置等に結合することができる。モデム、ケーブル・モデム及びイーサネット（登録商標）カードは、現時点で使用可能なタイプのネットワーク・アダプタである。
【００３９】
以上、本発明の特定の実施形態を説明したが、これらの実施形態において種々の変更及び修正を施しうることは明らかである。本発明の範囲は、各請求項の記載によって定義されるものである。
【符号の説明】
【００４０】
１０１、１２０、１２１・・・ワークロード・マネージャ
１０２・・・アービトレータ
１０３〜１０５・・・ディスパッチャ
１０６〜１１４・・・実行ユニット
１１５・・・ワークロード項目
２００・・・シスプレックス
２０１〜２０４・・・システム
２０５〜２０８・・・ワークロード・マネージャ
２０９〜２１２・・・アービトレータ
２１３〜２１６・・・ディスパッチャ
【図１】
2011513807.tif 000003
【図２】
2011513807.tif 000004
【図３】
2011513807.tif 000005
【図４】
2011513807.tif 000006
【手続補正書】
【提出日】平成22年9月14日(2010.9.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ワークロード・マネージャ（１０１）においてディスパッチャのシェア（Ｄ）を計算する方法であって、
前記ワークロード・マネージャ（１０１）はアービトレータ（１０２）に結合され、前記アービトレータ（１０２）は複数のシステム（１１７〜１１９）に結合され、各システムはディスパッチャ（１０３、１０４又は１０５）を備え、各ディスパッチャ（１０３、１０４又は１０５）は複数の実行ユニット（１０６〜１０８、１０９〜１１１又は１１２〜１１４）に結合され、前記アービトレータ（１０２）はワークロード項目（１１５）のフローを受け取り且つこれを前記ディスパッチャ（１０３〜１０５）に配分するのに適合しており、前記実行ユニット（１０６〜１１４）は前記ワークロード項目（１１５）を実行するのに適合しており、前記ワークロード項目（１１５）は少なくとも第１〜第３のワークロード・タイプを有しており、
前記方法は、
メモリ（１１６）から前記複数のシステム（１１７〜１１９）にわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を読み取るステップを有し、前記サービス単位は時間間隔でＣＰＵ消費量を測定するための値であり、
前記メモリ（１１６）から前記複数のシステム（１１７〜１１９）の各システム上の各ワークロード・タイプ用のキャパシティ値（ｃａｐ）を読み取るステップを有し、前記キャパシティ値（ｃａｐ）は前記時間間隔でシステムが実行することができる最大サービス単位を示し、
各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）を各ワークロード・タイプの前記サービス単位の合計値（Ｗ）で除算することにより、各システムのディスパッチャの相対シェア（Ｒ）を計算するとともに、各システムの当該ディスパッチャの相対シェア（Ｒ）のうち最小値を獲得するステップを有し、
各システム上の各ワークロード・タイプ用の前記ワークロード項目（１１５）のキュー長（ｑ）を各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）で除算することにより、各システム用の相対キュー長（Ｖ）を計算するステップを有し、
算術演算を使用して、前記最小値及び前記相対キュー長（Ｖ）の第１の関数（４２７）を組み合わせることにより、各システム用の前記ディスパッチャのシェア（Ｄ）を計算するステップを有する方法。
【請求項２】
前記相対キュー長（Ｖ）の前記第１の関数（４２７）は、前記相対キュー長（Ｖ）の最大値の逆数値を計算する、請求項１に記載の方法。
【請求項３】
前記算術演算は乗算である、請求項１又は請求項２に記載の方法。
【請求項４】
前記ディスパッチャのシェア（Ｄ）は、当該ディスパッチャのシェア（Ｄ）を全てのシステムの全てのディスパッチャの和で除算することにより正規化される、請求項１ないし請求項３の何れか１項に記載の方法。
【請求項５】
前記第１〜第３のワークロード・タイプは、ＣＰ、ｚＡＡＰ及びｚＩＩＰワークロード・タイプである、請求項１ないし請求項４の何れか１項に記載の方法。
【請求項６】
前記最小値は、当該最小値を全てのシステムの全ての最小値の和で除算することにより正規化される、請求項１ないし請求項５の何れか１項に記載の方法。
【請求項７】
前記アービトレータは、前記ワークロード項目（１１５）のフローを他のシステム内の他のディスパッチャに配分する、請求項１ないし請求項６の何れか１項に記載の方法。
【請求項８】
請求項１ないし請求項７の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【請求項９】
ワークロード・マネージャ（１０１）においてディスパッチャのシェア（Ｄ）を計算するためのデータ処理システムであって、
前記ワークロード・マネージャ（１０１）はアービトレータ（１０２）に結合され、前記アービトレータ（１０２）は複数のシステム（１１７〜１１９）に結合され、各システムはディスパッチャ（１０３、１０４又は１０５）を備え、各ディスパッチャ（１０３、１０４又は１０５）は複数の実行ユニット（１０６〜１０８、１０９〜１１１又は１１２〜１１４）に結合され、前記アービトレータ（１０２）はワークロード項目（１１５）のフローを受け取り且つこれを前記ディスパッチャ（１０３〜１０５）に配分するのに適合しており、前記実行ユニット（１０６〜１１４）は前記ワークロード項目（１１５）を実行するのに適合しており、前記ワークロード項目（１１５）は少なくとも第１〜第３のワークロード・タイプを有しており、
前記データ処理システムは、
メモリ（１１６）から前記複数のシステム（１１７〜１１９）にわたる各ワークロード・タイプ用のサービス単位の合計値（Ｗ）を読み取るためのコンポーネントを備え、前記サービス単位は時間間隔でＣＰＵ消費量を測定するための値であり、
前記メモリ（１１６）から前記複数のシステム（１１７〜１１９）の各システム上の各ワークロード・タイプ用のキャパシティ値（ｃａｐ）を読み取るためのコンポーネントを備え、前記キャパシティ値（ｃａｐ）は前記時間間隔でシステムが実行することができる最大サービス単位を示し、
各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）を各ワークロード・タイプの前記サービス単位の合計値（Ｗ）で除算することにより、各システムのディスパッチャの相対シェア（Ｒ）を計算するとともに、各システムの当該ディスパッチャの相対シェア（Ｒ）のうち最小値を獲得するためのコンポーネントを備え、
各システム上の各ワークロード・タイプ用の前記ワークロード項目（１１５）のキュー長（ｑ）を各システム上の各ワークロード・タイプの前記キャパシティ値（ｃａｐ）で除算することにより、各システム用の相対キュー長（Ｖ）を計算するためのコンポーネントを備え、
算術演算を使用して、前記最小値及び前記相対キュー長（Ｖ）の第１の関数（４２７）を組み合わせることにより、各システム用の前記ディスパッチャのシェア（Ｄ）を計算するためのコンポーネントを備える、データ処理システム。
【国際調査報告】
2011513807.tif 000007
2011513807.tif 000008