(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続される複数の計算機を有する計算機システムであって、
前記複数の計算機の各々は、プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるネットワークインタフェースを有し、
前記プロセッサは、
計算機が実行する処理を制御するための制御値を算出する契機を検知し、
前記制御値を算出するために用いる評価値を取得する対象の計算機を特定し、
自計算機の評価値を算出し、前記自計算機の評価値を前記記憶装置に格納し、
前記対象の計算機から評価値を取得し、前記対象の計算機の評価値を前記記憶装置に格納し、
前記自計算機の評価値及び前記対象の計算機の評価値の少なくともいずれかを用いて、前記計算機システムにおける前記自計算機の相対的な性能を示す第１ポイントを算出し、前記第１ポイントを前記記憶装置に格納し、
前記自計算機の評価値及び前記対象の計算機の評価値を用いた比較処理に基づいて、前記計算機システムにおける前記対象の計算機の相対的な性能を示す第２ポイントを算出し、前記第２ポイントを前記対象の計算機に送信し、
前記対象の計算機から前記第２ポイントを取得し、前記対象の計算機から取得した前記第２ポイントを前記記憶装置に格納し、
前記記憶装置に格納される前記第１ポイント及び前記第２ポイントを用いて前記制御値を算出し、前記記憶装置に前記算出された制御値を格納し、
前記制御値に基づいて前記計算機が実行する処理を制御することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記記憶装置は、前記制御値の種別と、前記第１ポイント及び前記第２ポイントを算出するための定義式とが対応付けられたエントリを含む定義式情報を格納し、
前記プロセッサは、
算出する前記制御値の種別を特定し、
前記自計算機の評価値を取得した後に、前記制御値の種別を含む評価値の取得要求を前記対象の計算機に送信することによって、前記対象の計算機の評価値を取得し、
前記定義式情報に基づいて前記第１ポイントを算出する第１定義式を特定し、前記第１定義式に基づいて前記第１ポイントを算出することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記プロセッサは、
前記評価値の取得要求を受信した場合、前記自計算機の評価値を算出し、
前記評価値の取得要求の送信元の前記計算機に前記算出された評価値を送信し、
前記制御値の種別を含む前記第２ポイントの取得要求を前記対象の計算機に送信することによって、前記対象の計算機から前記第２ポイントを取得し、
前記第２ポイントの取得要求を受信した場合、前記第２ポイントの取得要求に含まれる前記制御値の種別に基づいて前記定義式情報を参照して、前記第２ポイントを算出する第２定義式を特定し、
前記自計算機の評価値、前記対象の計算機の評価値、及び前記第２定義式に基づいて前記第２ポイントを算出し、
前記第２ポイントの取得要求の送信元の前記計算機に前記算出された第２ポイントを送信することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記第２定義式は、前記自計算機の評価値及び前記対象の計算機の評価値から算出された平均値と、前記対象の計算機のうちの前記第２ポイントの算出対象となる前記対象の計算機の評価値との比較結果に基づいて、前記第２ポイントの算出対象となる対象の計算機の前記第２ポイントを算出する式であることを特徴とする計算機システム。
【請求項５】
請求項４に記載の計算機システムであって、
前記記憶装置は、前記複数の計算機の接続関係を管理する接続情報を格納し、
前記プロセッサは、前記接続情報を参照して、前記ネットワーク上の所定の範囲に含まれる前記計算機を前記対象の計算機として選択することを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記プロセッサは、前記所定の範囲に含まれない前記複数の計算機の中から、少なくとも一つの補正用計算機を選択し、
前記補正用計算機から評価値に関連する補正値を取得し、前記補正用計算機から取得した前記補正値を前記記憶装置に格納し、
前記対象の計算機の評価値及び前記補正値に基づいて第３ポイントを算出し、前記第３ポイントを前記対象の計算機に送信し、
前記対象の計算機から前記第３ポイントを取得し、前記対象の計算機から取得した前記第３ポイントを前記記憶装置に格納し、
前記自計算機の評価値及び前記補正値に基づいて第４ポイントを算出し、前記第４ポイントを前記記憶装置に格納し、
前記記憶装置に格納される前記第１ポイント、前記第２ポイント、前記第３ポイント、及び前記第４ポイントに基づいて前記制御値を算出することを特徴とする計算機システム。
【請求項７】
ネットワークを介して接続される複数の計算機を有する計算機システムの制御方法であって、
前記複数の計算機の各々は、プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるネットワークインタフェースを有し、
前記計算機システムの制御方法は、
前記プロセッサが、計算機が実行する処理を制御するための制御値を算出する契機を検知する第１のステップと、
前記プロセッサが、前記制御値を算出するために用いる評価値を取得する対象の計算機を特定する第２のステップと、
前記プロセッサが、自計算機の評価値を算出し、前記自計算機の評価値を前記記憶装置に格納する第３のステップと、
前記プロセッサが、前記対象の計算機から評価値を取得し、前記対象の計算機の評価値を前記記憶装置に格納する第４のステップと、
前記プロセッサが、前記自計算機の評価値及び前記対象の計算機の評価値の少なくともいずれかを用いて、前記計算機システムにおける前記自計算機の相対的な性能を示す第１ポイントを算出し、前記第１ポイントを前記記憶装置に格納する第５のステップと、
前記プロセッサが、前記自計算機の評価値及び前記対象の計算機の評価値を用いた比較処理に基づいて、前記計算機システムにおける前記対象の計算機の相対的な性能を示す第２ポイントを算出し、前記第２ポイントを前記対象の計算機に送信する第６のステップと、
前記プロセッサが、前記対象の計算機から前記第２ポイントを取得し、前記対象の計算機から取得した前記第２ポイントを前記記憶装置に格納する第７のステップと、
前記プロセッサが、前記記憶装置に格納される前記第１ポイント及び前記第２ポイントを用いて前記制御値を算出し、前記記憶装置に前記算出された制御値を格納する第８のステップと、
前記プロセッサが、前記制御値に基づいて前記計算機が実行する処理を制御する第９のステップと、を含むことを特徴とする計算機システムの制御方法。
【請求項８】
請求項７に記載の計算機システムの制御方法であって、
前記記憶装置は、前記制御値の種別と、前記第１ポイント及び前記第２ポイントを算出するための定義式とが対応付けられたエントリを含む定義式情報を格納し、
前記第３のステップは、前記プロセッサが、算出する前記制御値の種別を特定するステップを含み、
前記第４のステップは、前記プロセッサが、前記制御値の種別を含む評価値の取得要求を前記対象の計算機に送信することによって、前記対象の計算機の評価値を取得するステップを含み、
前記第５のステップは、前記プロセッサが、前記定義式情報に基づいて前記第１ポイントを算出する第１定義式を特定し、前記第１定義式に基づいて前記第１ポイントを算出するステップを含むことを特徴とする計算機システムの制御方法。
【請求項９】
請求項８に記載の計算機システムの制御方法であって、
前記第７のステップは、前記プロセッサが、前記制御値の種別を含む前記第２ポイントの取得要求を前記対象の計算機に送信することによって、前記対象の計算機から前記第２ポイントを取得するステップを含み、
前記計算機システムの制御方法は、
前記プロセッサが、前記評価値の取得要求を受信した場合、前記自計算機の評価値を算出するステップと、
前記プロセッサが、前記評価値の取得要求の送信元の前記計算機に前記算出された評価値を送信するステップと、
前記プロセッサが、前記第２ポイントの取得要求を受信した場合、前記第２ポイントの取得要求に含まれる前記制御値の種別に基づいて前記定義式情報を参照して、前記第２ポイントを算出する第２定義式を特定するステップと、
前記プロセッサが、前記自計算機の評価値、前記対象の計算機の評価値、及び前記第２定義式に基づいて前記第２ポイントを算出するステップと、
前記プロセッサが、前記第２ポイントの取得要求の送信元の前記計算機に前記算出された第２ポイントを送信するステップと、を含むことを特徴とする計算機システムの制御方法。
【請求項１０】
請求項９に記載の計算機システムの制御方法であって、
前記第２定義式は、前記自計算機の評価値及び前記対象の計算機の評価値から算出された平均値と、前記対象の計算機のうちの前記第２ポイントの算出対象となる前記対象の計算機の評価値との比較結果に基づいて、前記第２ポイントの算出対象となる前記対象の計算機の前記第２ポイントを算出する式であることを特徴とする計算機システムの制御方法。
【請求項１１】
請求項１０に記載の計算機システムの制御方法であって、
前記記憶装置は、前記複数の計算機の接続関係を管理する接続情報を格納し、
前記第２のステップは、前記プロセッサが、前記接続情報を参照して、前記ネットワーク上の所定の範囲に含まれる前記計算機を前記対象の計算機として選択するステップを含むことを特徴とする計算機システムの制御方法。
【請求項１２】
請求項１１に記載の計算機システムの制御方法であって、
前記第２のステップは、前記プロセッサが、前記所定の範囲に含まれない前記複数の計算機の中から、少なくとも一つの補正用計算機を選択するステップを含み、
前記計算機システムの制御方法は、
前記プロセッサが、前記補正用計算機から評価値に関連する補正値を取得し、前記補正用計算機から取得した前記補正値を前記記憶装置に格納するステップと、
前記プロセッサが、前記対象の計算機の評価値及び前記補正値に基づいて第３ポイントを算出し、前記第３ポイントを前記対象の計算機に送信するステップと、
前記プロセッサが、前記対象の計算機から前記第３ポイントを取得し、前記対象の計算機から取得した前記第３ポイントを前記記憶装置に格納するステップと、
前記プロセッサが、前記自計算機の評価値及び前記補正値に基づいて第４ポイントを算出し、前記第４ポイントを前記記憶装置に格納するステップを含み、
前記第８のステップは、前記プロセッサが、前記記憶装置に格納される前記第１ポイント、前記第２ポイント、前記第３ポイント、及び前記第４ポイントに基づいて前記制御値を算出するステップを含むことを特徴とする計算機システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードから構成される計算機システムの制御方法に関する。
【背景技術】
【０００２】
近年、メール、ＳＮＳ、Ｗｅｂ、及びセンサ等から取得した大量のデータを収集し、当該データを解析し、有用な知見を得るビッグデータ解析が注目されている。ビッグデータ解析において、有用な知見を得るためには、大量のデータを高速に解析する必要がある。
【０００３】
ビッグデータ解析を実行するデータセンタは、大量のデータを格納するストレージ装置、及び多数のサーバから構築される。多数のサーバを含むことによって、大量のデータを高速に解析できる。また、高速なデータへのアクセスを実現するために、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を搭載したストレージ装置が用いられる。
【０００４】
データ量の増加に伴い、データ解析の速度の向上、及びサービスの継続するためのストレージ装置の信頼性の向上が求められる。また、データセンタの消費電力を抑えながら、データ解析の速度を向上させる必要がある。また、ＳＳＤ等の不揮発性の記憶装置の書込寿命を考慮する必要がある。すなわち、各種目的を達成できるように、データセンタ（システム）を制御する必要がある。
【０００５】
多数の計算機を含む計算機システムにおいて、処理性能の最適化及び負荷分散等を実現する技術として、特許文献１及び特許文献２に記載されている技術が知られている。
【０００６】
特許文献１には、「任意の３階層（ｎ〜ｎ＋２階層）において、第ｎ＋１階層の一つのノードは、第ｎ＋２階層の一つ以上のノードからそれぞれの負荷情報を取得し、取得した負荷情報と自ノードの負荷情報とに基づき、自ノードの空きリソース量を算出し、算出した自ノードの空きリソース量を、第ｎ階層のノードへ送信し、第ｎ階層のノードは、第ｎ＋１階層の各ノードから取得した空きリソース量に基づき、重み値を算出し、算出した重み値に基づき、受信した処理要求を、第ｎ＋１階層のいずれかのノードへ分配する。」ことが記載されている。
【０００７】
また、特許文献２には、「不揮発性メモリを含むメモリモジュールを複数備えた記憶装置システムにおいて、信頼性の向上や長寿命化等を実現する。このため、複数のメモリモジュール（ＳＴＧ）は、実際にその内部の不揮発性メモリに書き込んだライトデータ量（Ｗｓｔｇ）を制御回路ＤＫＣＴＬ０へ通達する。制御回路ＤＫＣＴＬ０は、当該ライトデータ量（Ｗｓｔｇ）と、複数のメモリモジュールに向けて既に発行済みの書き込み命令に伴うライトデータ量（Ｗｈ２ｄ）と、次の書き込み命令に伴うライトデータ量（ｎｔＷ）とから、各メモリモジュール毎の予測ライトデータ量（ｅＷｄ）を求める。そして、この予測ライトデータ量が最小のメモリモジュールへ次の書き込み命令を発行する。」ことが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−３５７１７号公報
【特許文献２】国際公開番号第２０１４/０３８０７３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＩｏＴの時代では、データセンタが処理するデータ量が飛躍的に増加する。処理能力の飛躍的な向上させるためは、データセンタ内のサーバの数及びＳＳＤの数を大幅に増やす必要がある。
【００１０】
特許文献１及び特許文献２に記載の方法は、空きリソース情報及びライトデータ量等、システムの制御に必要な情報を全ての要素（サーバ、ＳＳＤ）から収集し、一カ所に集約する必要がある。そのため、サーバの数及びＳＳＤの数が増加すると、以下のような問題がある。
【００１１】
一つの問題は、データを収集するための時間が長くなるため、リアルタイムな対応が困難であることである。もう一つの問題は、データの収集に伴う通信負荷、及び演算処理の負荷が増大することである。
【００１２】
本願発明は、上記のような課題に鑑みてなされたものである。本発明は、収集するデータ量が増加した場合でも、低コストで、リアルタイムに、処理性能等の向上等を目的としてシステムの制御を実現する方法、システムを提供する。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して接続される複数の計算機を有する計算機システムであって、前記複数の計算機の各々は、プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるネットワークインタフェースを有し、前記プロセッサは、計算機が実行する処理を制御するための制御値を算出する契機を検知し、前記制御値を算出するために用いる評価値を取得する対象の計算機を特定し、自計算機の評価値を算出し、前記自計算機の評価値を前記記憶装置に格納し、前記対象の計算機から評価値を取得し、前記対象の計算機の評価値を前記記憶装置に格納し、前記自計算機の評価値及び前記対象の計算機の評価値の少なくともいずれかを用いて、前記計算機システムにおける前記自計算機の相対的な性能を示す第１ポイントを算出し、前記第１ポイントを前記記憶装置に格納し、前記自計算機の評価値及び前記対象の計算機の評価値を用いた比較処理に基づいて、前記計算機システムにおける前記対象の計算機の相対的な性能を示す第２ポイントを算出し、前記第２ポイントを前記対象の計算機に送信し、前記対象の計算機から前記第２ポイントを取得し、前記対象の計算機から取得した前記第２ポイントを前記記憶装置に格納し、前記記憶装置に格納される前記第１ポイント及び前記第２ポイントを用いて前記制御値を算出し、前記記憶装置に前記算出された制御値を格納し、前記制御値に基づいて前記計算機が実行する処理を制御することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、低コストで、かつ、リアルタイムに、処理性能等の向上等を目的として計算機システムの制御を実現できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２Ａ】実施例１の計算機システムに含まれるノードの具体的な構成例を示す図である。
【図２Ｂ】実施例１の計算機システムに含まれるノードの具体的な構成例を示す図である。
【図３Ａ】実施例１の接続情報の一例を示す図である。
【図３Ｂ】実施例１の接続情報の一例を示す図である。
【図３Ｃ】実施例１の接続情報の一例を示す図である。
【図３Ｄ】実施例１の接続情報の一例を示す図である。
【図４】実施例１の指標情報の一例を示す図である。
【図５】実施例１の定義式情報の一例を示す図である。
【図６】実施例１の制御部が実行する制御内容決定処理を説明するフローチャートである。
【図７】実施例５の制御部が実行する制御内容決定処理を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例にすぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については、同一の参照符号が付されている。
【実施例１】
【００１７】
実施例１では、本発明の基本となる構成及び処理について説明する。具体的な制御方法については、他の実施例にて説明する。
【００１８】
図１は、実施例１の計算機システムの構成例を示す図である。図２Ａ及び図２Ｂは、実施例１の計算機システムに含まれるノードの具体的な構成例を示す図である。
【００１９】
計算機システム１００は、複数のノード１０１を含む。複数のノード１０１の各々は、ネットワークを介して互いに接続される。ネットワークは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等が考えられる。なお、本実施例は、ネットワークの種別に限定されない。また、ネットワークの接続方式は、無線及び有線のいずれであってもよい。
【００２０】
図１では、各ノード１０１は、格子状に接続されている。なお、本実施例はノード１０１の接続状態に限定されない。例えば、トーラス構造の接続でもよい。
【００２１】
本実施例の処理の概要について説明する。計算機システム１００に含まれる各ノード１０１は、所定の評価範囲１１０に含まれるノード１０１から評価値を取得する。各ノード１０１は、評価値に基づいて、制御値を決定するためのポイントを算出し、ポイントに基づいて処理を制御するための制御値を決定する。
【００２２】
ここで、制御値は、ノード１０１が実行する処理を制御するための値である。また、ポイントは、各ノード１０１の相対的な性能等を表す値である。
【００２３】
ノード１０１は、所定の処理を実行する装置である。ここで、図２Ａ及び図２Ｂを用いてノード１０１の具体例について説明する。図２Ａは、ビッグデータ解析等に使用されるシステムに含まれるサーバ装置２００の構成を示す。図２Ｂは、ストレージシステムに含まれるストレージ装置２５０の構成を示す。
【００２４】
まず、図２Ａを用いてサーバ装置２００の構成を説明する。サーバ装置２００は、ＣＰＵ２０１、主記憶装置２０２、及び送受信装置２０３を有する。各構成は内部バス等を介して互いに接続される。
【００２５】
ＣＰＵ２０１は、主記憶装置２０２に格納されるプログラムを実行する。ＣＰＵ２０１がプログラムを実行することによって、サーバ装置２００が有する機能を実現できる。以下の説明では、モジュールを主語に説明する場合、ＣＰＵ２０１が当該モジュールを実現するプログラムを実行していることを示す。
【００２６】
主記憶装置２０２は、ＣＰＵ２０１が実行するプログラム及びプログラムによって使用される情報を格納する。本実施例の主記憶装置２０２は、制御部２１０を実現するプログラムを格納する。主記憶装置２０２は、制御部２１０によって算出された各種値を格納する記憶領域である記憶部２１１を含む。また、主記憶装置２０２は、接続情報２２０、指標情報２２１、及び定義式情報２２２を格納する。
【００２７】
制御部２１０は、ノード１０１の制御値を決定し、当該制御値に基づいてノード１０１を制御する。制御部２１０は、図示しないＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に含まれるモジュールでもよいし、ＯＳ上で稼働するアプリケーションでもよい。
【００２８】
接続情報２２０は、ノード１０１の接続関係を管理するための情報である。接続情報２２０の詳細は、図３を用いて説明する。指標情報２２１は、制御値を算出するために使用する指標を管理する情報である。指標情報２２１の詳細は、図４を用いて説明する。定義式情報２２２は、制御値を算出するための定義式を管理する情報である。定義式情報２２２の詳細は、図５を用いて説明する。
【００２９】
記憶部２１１は、自己ポイント２３０及び隣接ポイント２３１を格納する。自己ポイント２３０及び隣接ポイント２３１は、制御値を決定するために使用するポイントである。
また、隣接ポイントには、ノード１０１が送受信装置２０３を介して他のノード１０１へ送信する送信隣接ポイントと、ノード１０１が送受信装置２０３を介して他のノード１０１から受信する受信隣接ポイントが含まれる。
【００３０】
なお、記憶部２１１には、自己ポイント２３０及び隣接ポイント２３１以外のデータが格納されてもよい。例えば、記憶部２１１は、評価範囲１１０に含まれるノード１０１を検索するためのホップ数を格納する。以下の説明では、評価範囲１１０に含まれるノード１０１を隣接ノード１０１とも記載する。
【００３１】
送受信装置２０３は、ノード１０１又は外部装置からリクエスト及びデータを受信し、また、ノード１０１又は外部装置にリクエスト及びデータを送信する。なお、サーバ装置２００は、複数の送受信装置２０３を有してもよい。例えば、サーバ装置２００は、一つの送受信装置２０３を用いて自己評価値及び隣接ポイント等を送受信し、一つの送受信装置２０３を用いてリクエスト等を送受信する。これによって、処理の性能等を向上できる。
【００３２】
また、本実施例では送受信装置２０３により、各ノード１０１が接続されネットワークを構成する。また、ネットワークの接続方式は、無線及び有線のいずれであってもよい。
【００３３】
次に、図２Ｂを用いてストレージ装置２５０の構成を説明する。ストレージ装置２５０は、ＣＰＵ２５１、主記憶装置２５２、送受信装置２５３、及び副記憶装置２５４を有する。各構成は内部バス等を介して互いに接続される。
【００３４】
ＣＰＵ２５１、主記憶装置２５２、及び送受信装置２５３は、ＣＰＵ２０１、主記憶装置２０２、及び送受信装置２０３と同様のハードウェアである。副記憶装置２５４は、書込み可能なデータ量が有限である不揮発性の記憶媒体である。例えば、副記憶装置２５４は、不揮発性メモリ利用した記憶装置であるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスクを利用した記憶装置であるＯＤＤ（Ｏｐｔｉｃａｌ  Ｄｉｓｃ  Ｄｒｉｖｅ）、及びアーカイブ装置等が考えられる。
【００３５】
主記憶装置２５２に格納されるプログラム及び情報は、サーバ装置２００に格納されるプログラム及び情報と同一である。なお、プログラムコード及びデータ形式等は異なっていてもよい。
【００３６】
なお、計算機システム１００は、図示しない外部システムに接続されてもよい。
【００３７】
図３Ａ、図３Ｂ、図３Ｃ、及び図３Ｄは、実施例１の接続情報２２０の一例を示す図である。
【００３８】
図３Ａは、識別情報がＶ１であるノード１０１が保持する接続情報２２０である。図３Ｂは、識別情報がＶ２であるノード１０１が保持する接続情報２２０である。図３Ｃは、識別情報がＶ３であるノード１０１が保持する接続情報２２０である。図３Ａ、図３Ｂ及び図３Ｃでは、各ノード１０１は、接続情報２２０を用いて、ホップ数が１であるノード１０１との接続関係を管理する。
【００３９】
図３Ｄは、識別情報がＶ１であるノードが保持する接続情報２２０である。図３Ｄでは、ノード１０１は、接続情報２２０を用いて、ホップ数が２であるノード１０１との接続関係を管理する。
【００４０】
なお、図示しないが、他のノード１０１も同様の接続情報２２０を保持する。各ノード１０１は、接続情報２２０を参照することによって評価範囲１１０に含まれるノード１０１を検索できる。
【００４１】
接続情報２２０は、ノードＩＤ３０１、接続ノードＩＤ３０２、及び状態３０３から構成される複数のエントリを含む。
【００４２】
ノードＩＤ３０１は、ノード１０１の識別情報である。接続ノードＩＤ３０２は、ノードＩＤ３０１に対応するノード１０１が接続関係を管理するノード１０１の識別情報である。接続ノードＩＤ３０２には、ノードＩＤ３０１に対応するノード１０１が管理するノード１０１の数だけ行が存在する。
【００４３】
状態３０３は、接続ノードＩＤ３０２に対応するノード１０１の稼働状態である。状態３０３には、ノード１０１が正常に稼働することを示す「正常」又はノード１０１が正常に稼働していないことを示す「異常」のいずれかが格納される。
【００４４】
本実施例では、制御部２１０が、ハートビート等を用いて、周期的に接続ノードＩＤ３０２に対応するノード１０１の稼働状態を監視し、又は、ノードＩＤ３０１に対応するノード１０１から接続ノードＩＤ３０２に対応するノード１０１に送信した要求に対する応答時間を監視するものとする。制御部２１０は、監視結果に基づいて、状態３０３の値を更新する。
【００４５】
なお、ノード１０１間の接続関係が変化した場合、接続情報２２０も更新される。例えば、あるノード１０１に接続されるノード１０１が追加される場合、追加されたノード１０１は、隣接するノード１０１に自ノード１０１の識別情報の登録要求を送信する。隣接するノード１０１は、接続情報２２０に新たに追加されたノード１０１に対応するエントリを追加する。隣接するノード１０１は、必要に応じて、他のノード１０１に更新された接続情報２２０を送信する。
【００４６】
例えば、ノード１０１が削除される場合、削除対象のノード１０１は、隣接するノード１０１に自ノード１０１の識別情報の削除要求を送信する。隣接するノード１０１は、接続情報２２０から削除対象のノード１０１に対応するエントリを削除する。隣接するノード１０１は、他のノード１０１に更新された接続情報２２０を送信する。これによって、計算機システム１００に含まれる全てのノード１０１が保持する接続情報２２０が更新される。
【００４７】
図４は、実施例１の指標情報２２１の一例を示す図である。
【００４８】
指標情報２２１は、制御ＩＤ４０１、制御値種別４０２、取得指標４０３、及びタイミング４０４から構成される複数のエントリを含む。
【００４９】
制御ＩＤ４０１は、指標情報２２１のエントリの識別情報である。制御値種別４０２は、算出される制御値の種別である。取得指標４０３は、評価値を算出するために取得する指標の種別である。タイミング４０４は、エントリに対応する制御内容決定処理の実行契機である。
【００５０】
図４の一番目のエントリの制御値種別４０２は、処理性能を向上させるための（負荷分散するための）リクエストの処理数が制御値として算出されることを示す。図４の二番目のエントリの制御値種別４０２は、消費電力当たりの処理性能を向上させるためのリクエストの処理数が制御値として算出されることを示す。図４の三番目のエントリの制御値種別４０２は、副記憶装置２５４へのデータの書込量を平準化させるためのデータ書込量が制御値として算出されることを示す。図４の四番目のエントリの制御値種別４０２は、処理負荷の低減させるための他ノード１０１へのリクエストの転送数が制御値として算出されることを示す。
【００５１】
図５は、実施例１の定義式情報２２２の一例を示す図である。
【００５２】
定義式情報２２２は、制御ＩＤ５０１、値種別５０２、定義式５０３、及び算出値５０４から構成される複数のエントリを含む。
【００５３】
制御ＩＤ５０１は、制御ＩＤ４０１と同一のものである。値種別５０２は、算出する値の種別である。定義式５０３は、値種別５０２に対応する値を算出するための定義式である。算出値５０４は、定義式５０３に設定された定義式を用いて算出された値である。値が算出されていない場合、算出値５０４は空欄である。また、算出値５０４には、値が算出された時刻等を格納してもよい。
【００５４】
本実施例では、一つの制御ＩＤに対して、自己評価値、送信隣接ポイント、受信隣接ポイント、自己ポイント、及び制御値の五つの値と、これら五つの値を算出するための定義式が設定される。なお、一つの制御値を算出するための定義式の数に限定されない。
【００５５】
図６は、実施例１の制御部２１０が実行する制御内容決定処理を説明するフローチャートである。
【００５６】
制御部２１０は、タイミング４０４に格納される実行契機を検知した場合、以下で説明する制御内容決定処理を実行する。このとき、制御部２１０は、検知した実行契機に対応するエントリの制御ＩＤ４０１を参照ＩＤとして記憶部２１１に一時的に格納する。
【００５７】
制御部２１０は、接続情報２２０を参照して、隣接ノード１０１を特定する（ステップＳ６０１）。次に、制御部２１０は、自ノード１０１の評価値を算出する（ステップＳ６０２）。具体的には、以下のような処理を実行する。
【００５８】
制御部２１０は、制御ＩＤ４０１が参照ＩＤに一致するエントリの取得指標４０３を参照し、取得する指標を特定する。制御部２１０は、自ノード１０１から特定された指標の値を取得する。
【００５９】
制御部２１０は、制御ＩＤ５０１が参照ＩＤに一致し、かつ、値種別５０２が自己評価値であるエントリを検索する。制御部２１０は、検索されたエントリの定義式５０３から自ノード１０１の評価値（自己評価値）を算出するための定義式を取得する。
【００６０】
制御部２１０は、指標の値及び自己評価値の定義式に基づいて自ノード１０１の評価値を算出する。制御部２１０は、検索されたエントリの算出値５０４に、算出された自己評価値を格納する。以上がステップＳ６０２の処理の説明である。
【００６１】
次に、制御部２１０は、隣接ノード１０１から評価値を取得する（ステップＳ６０３）。具体的には、以下のような処理が実行される。
【００６２】
制御部２１０は、接続情報２２０の各エントリの状態３０３を参照し、隣接ノード１０１が正常に稼働しているか否かを判定する。制御部２１０は、正常に稼働していない隣接ノード１０１を評価値の取得対象から除外する。
【００６３】
制御部２１０は、取得対象の隣接ノード１０１に対する評価値の取得リクエストの送信を送受信装置２０３、２５３に指示する。送受信装置２０３、２５３は、当該指示にしたがって、隣接ノード１０１に評価値の取得リクエストを送信する。なお、当該取得リクエストには参照ＩＤが含まれる。
【００６４】
隣接ノード１０１の制御部２１０は、評価値の取得リクエストを受信した場合、制御ＩＤ５０１が当該取得リクエストに含まれる参照ＩＤに一致し、かつ、値種別５０２が自己評価値であるエントリを検索する。隣接ノード１０１の制御部２１０は、検索されたエントリの算出値５０４に値が格納されているか否かを判定する。
【００６５】
検索されたエントリの算出値５０４に値が格納されている場合、隣接ノード１０１の制御部２１０は、当該値を取得する。検索されたエントリの算出値５０４に値が格納されていない場合、隣接ノード１０１の制御部２１０は、ステップＳ６０２と同様の処理を実行することによって自己評価値を算出する。
【００６６】
なお、隣接ノード１０１の制御部２１０は、検索されたエントリの算出値５０４に値が格納されている場合に、再度、自己評価値を算出する必要があるか否かを判定してもよい。例えば、隣接ノード１０１の制御部２１０は、自己評価値が算出されてから一定期間経過している場合、自己評価値を算出する必要があると判定する。
【００６７】
隣接ノード１０１の制御部２１０は、取得リクエストの送信元であるノード１０１へ自己評価値を含むレスポンスを送信する。
【００６８】
取得リクエストを送信した制御部２１０は、隣接ノード１０１から受信したレスポンスに含まれる評価値を隣接評価値として記憶部２１１に一時的に格納する。なお、隣接評価値は隣接ノード１０１の識別情報と対応付けられている。以上がステップＳ６０３の処理の説明である。
【００６９】
次に、制御部２１０は、評価値に基づいて送信隣接ポイントを算出し、当該送信隣接ポイントを隣接ノード１０１に送信する（ステップＳ６０４）。具体的には、以下のような処理が実行される。
【００７０】
制御部２１０は、制御ＩＤ５０１が参照ＩＤに一致し、かつ、値種別５０２が送信隣接ポイントであるエントリを検索する。送信隣接ポイントを算出するための定義式は、ステップＳ６０２で算出した自己評価値と、ステップＳ６０３で取得した隣接評価値を用いた比較演算を含む。制御部２１０は、検索されたエントリの定義式５０３から送信隣接ポイントを算出するための定義式を取得する。制御部２１０は、自己評価値及び隣接評価値を用いた送信隣接ポイントの定義式に基づいて、送信隣接ポイントを算出する。制御部２１０は、検索されたエントリの算出値５０４に算出された送信隣接ポイントを格納する。
【００７１】
制御部２１０は、算出された送信隣接ポイントの送信を送受信装置２０３、２５３に指示する。送受信装置２０３、２５３は、当該指示にしたがって、隣接ノード１０１に送信隣接ポイントを送信する。
【００７２】
制御部２１０は、各隣接ノード１０１から送信隣接ポイントを取得し、受信隣接ポイントを算出する（ステップＳ６０５）。具体的には、以下のような処理が実行される。
【００７３】
制御部２１０は、接続情報２２０の各エントリの状態３０３を参照し、隣接ノード１０１が正常に稼働しているか否かを判定する。制御部２１０は、正常に稼働していない隣接ノード１０１を送信隣接ポイントの取得対象から除外する。なお、当該判定処理は、ステップＳ６０３の判定結果を流用してもよい。
【００７４】
制御部２１０は、正常に稼働していない隣接ノード１０１の隣接ポイントを「０」に設定し、当該隣接ポイントと隣接ノード１０１の識別情報とを対応付けて記憶部２１１に一時的に格納する。
【００７５】
制御部２１０は、取得対象の隣接ノード１０１に対する送信隣接ポイントの取得リクエストの送信を送受信装置２０３、２５３に指示する。送受信装置２０３、２５３は、当該指示にしたがって、隣接ノード１０１に送信隣接ポイントの取得リクエストを送信する。なお、当該取得リクエストには参照ＩＤが含まれる。
【００７６】
隣接ノード１０１の制御部２１０は、送信隣接ポイントの取得リクエストを受信した場合、制御ＩＤ５０１が取得リクエストに含まれる参照ＩＤに一致し、かつ、値種別５０２が送信隣接ポイントであるエントリを検索する。隣接ノード１０１の制御部２１０は、検索されたエントリの算出値５０４に値が格納されているか否かを判定する。
【００７７】
検索されたエントリの算出値５０４に値が格納されている場合、隣接ノード１０１の制御部２１０は、当該値を取得する。検索されたエントリの算出値５０４に値が格納されていない場合、隣接ノード１０１の制御部２１０は、ステップＳ６０４と同様の処理を実行することによって送信隣接ポイントを算出する。
【００７８】
なお、隣接ノード１０１の制御部２１０は、検索されたエントリの算出値５０４に値が格納されている場合に、再度、送信隣接ポイントを算出する必要があるか否かを判定してもよい。例えば、隣接ノード１０１の制御部２１０は、送信隣接ポイントが算出されてから一定期間経過している場合、送信隣接ポイントを算出する必要があると判定する。
【００７９】
隣接ノード１０１の制御部２１０は、取得リクエストの送信元であるノード１０１へ送信隣接ポイントを含むレスポンスを送信する。
【００８０】
なお、隣接ノード１０１の制御部２１０は、評価値の取得リクエストの受信を契機として、送信隣接ポイントを算出してもよい。
【００８１】
取得リクエストを送信した制御部２１０は、隣接ノード１０１から受信したレスポンスに含まれる送信隣接ポイントを記憶部２１１に一時的に格納する。なお、送信隣接ポイントは隣接ノード１０１の識別情報と対応付けられている。
【００８２】
制御部２１０は、全ての隣接ノード１０１から送信隣接ポイントを取得した場合、制御ＩＤ５０１が参照ＩＤに一致し、かつ、値種別５０２が受信隣接ポイントであるエントリを検索する。制御部２１０は、検索されたエントリの定義式５０３から受信隣接ポイントを算出するための定義式を取得する。制御部２１０は、隣接ノード１０１の送信隣接ポイント及び受信隣接ポイントの定義式に基づいて、受信隣接ポイントを算出する。制御部２１０は、検索されたエントリの算出値５０４に算出された受信隣接ポイントを格納する。以上が、ステップＳ６０５の処理の説明である。
【００８３】
次に、制御部２１０は、自己ポイントを算出する（ステップＳ６０６）。
【００８４】
具体的には、制御部２１０は、定義式情報２２２を参照し、制御ＩＤ５０１が参照ＩＤに一致し、かつ、値種別５０２が自己ポイントであるエントリを検索する。制御部２１０は、検索されたエントリの定義式５０３から自己ポイントを算出するための定義式を取得する。制御部２１０は、自己ポイントの定義式に基づいて自己ポイントを算出し、検索されたエントリの算出値５０４に算出された自己ポイントを格納する。
【００８５】
次に、制御部２１０は、自己ポイント及び受信隣接ポイントに基づいて制御値を算出する（ステップＳ６０７）。
【００８６】
具体的には、制御部２１０は、定義式情報２２２を参照し、制御ＩＤ５０１が参照ＩＤに一致し、かつ、値種別５０２が制御値であるエントリを検索する。制御部２１０は、検索されたエントリの定義式５０３から制御値を算出するための定義式を取得する。制御部２１０は、自己ポイント及び受信隣接ポイントを用いた制御値の定義式に基づいて制御値を算出し、検索されたエントリの算出値５０４に算出された制御値を格納する。制御部２１０は、当該制御値に基づいて、ノード１０１が実行する処理を制御する。
【００８７】
なお、図６に示す処理の順番は整合性を保つことができれば、どのような順番でもよい。例えば、制御部２１０は、自己ポイントを算出した後に、送信隣接ポイントを算出してもよい。処理の順番は定義式に応じて変更することもできる。
【００８８】
以上で説明したように、計算機システム１００に含まれる各ノード１０１は、自ノード１０１及び隣接ノード１０１から、ノード１０１の相対的な性能を示すポイントを取得し、当該ポイントに基づいてノード１０１が実行する処理を制御するための制御値を決定する。ノード１０１は、隣接ノード１０１からのみ必要なデータを取得するため、通信負荷及び演算処理の負荷が低い。また、全てのノード１０１が自律的に制御値を決定できるため、リアルタイムに、大規模な計算機システムの処理性能等を向上させることができる。
【実施例２】
【００８９】
実施例２では、複数のサーバ装置２００を含む計算機システム１００の処理性能を向上させるための制御を例に本発明の適応例を説明する。実施例２では、ノード１０１が処理可能なリクエストの数が制御値として算出される。ここで、実施例２で使用される定義式について説明する。なお、以下に示す定義式は一例であってこれに限定されない。
【００９０】
自己評価値は、式（１）を用いて算出される。Ｙｉは、識別情報が「ｉ」であるノード１０１の自己評価値を表す。本実施例の自己評価値は、規格化された処理可能能力を表す値である。Ｂｒａｔｅは、識別情報が「ｉ」であるノード１０１の処理稼働率を表し、式（２）で与えられる。Ｙｍａｘｉは、識別情報が「ｉ」であるノード１０１の規格化された最大処理能力を表し、式（３）で与えられる。
【００９１】
【数１】
0006709689.tif 000002
【００９２】
【数２】
0006709689.tif 000003
【００９３】
【数３】
0006709689.tif 000004
【００９４】
（実効ＣＰＵコア数）ｉは、識別情報が「ｉ」であるノード１０１が実際に使用しているＣＰＵコアの数を表し、（実効動作周波数）ｉは、識別情報が「ｉ」であるノード１０１が使用しているＣＰＵコアの実効的な動作周波数を表す。（最大ＣＰＵコア数）ｉは、識別情報が「ｉ」であるノード１０１が有するＣＰＵ２０１に含まれるＣＰＵコアの合計値を表し、（最大動作周波数）ｉは、識別情報が「ｉ」であるノード１０１が有するＣＰＵ２０１の最大動作周波数を表す。また、標準ＣＰＵコア数及び標準動作周波数は、各値を規格化するための基準となるＣＰＵのコア数及び動作周波数である。
【００９５】
送信隣接ポイントは、式（４）を用いて算出される。ＰＮｊｉは、識別情報が「ｉ」である自ノード１０１から識別情報が「ｊ」である隣接ノード１０１へ送信される送信隣接ポイントを表す。ＹＮｊは、識別情報が「ｊ」であるノード１０１の隣接評価値を表す。Ｐ１及びＰ２はポイントを表す。Ｐ１及びＰ２は、式（５）に示すように０より大きい任意の定数Ｐ０で与えられる。Ａｖｇ＿Ｙｉは、識別情報が「ｉ」であるノード１０１によって算出された評価値の平均値を表す。Ａｖｇ＿Ｙｉは、自己評価値Ｙｉ及び隣接評価値ＹＮｊから算出される。
【００９６】
【数４】
0006709689.tif 000005
【００９７】
【数５】
0006709689.tif 000006
【００９８】
式（４）に示すように、隣接評価値ＹＮｊが評価値の平均値Ａｖｇ＿Ｙｉより大きい場合、正のポイント「＋Ｐ１」が隣接ノード１０１に送信される。隣接評価値ＹＮｊが評価値の平均値Ａｖｇ＿Ｙｉより小さい場合、負のポイント「−Ｐ２」が隣接ノード１０１に送信される。また、隣接評価値ＹＮｊが評価値の平均値Ａｖｇ＿Ｙｉと同一である場合、ポイント「０」が隣接ノード１０１に送信される。
【００９９】
自己ポイントは、式（６）を用いて算出される。ＰＯｉは、識別情報が「ｉ」であるノード１０１の自己ポイントを表す。ＰＭ０は任意の定数である。
【０１００】
【数６】
0006709689.tif 000007
【０１０１】
リクエストの処理数は、式（７）を用いて算出される。Ｘｉは、識別情報が「ｉ」であるノード１０１に設定されるリクエストの処理数を表す。Ｘｍａｘｉは、識別情報が「ｉ」であるノード１０１が処理可能なリクエストの処理数の最大値を表し、式（８）で与えられる。Ｘ０は任意の定数である。Ｔｏｔａｌ＿Ｐｉは、識別情報が「ｉ」であるノード１０１が算出した集計ポイントを表し、式（９）で与えられる。ＰＧｉは、識別情報が「ｉ」であるノード１０１が算出した受信隣接ポイントを表し、式（１０）で与えられる。なお、ＰＮｉｊは、識別情報が「ｊ」である隣接ノード１０１から識別情報が「ｉ」である自ノード１０１へ送信される送信隣接ポイントを表す。
【０１０２】
【数７】
0006709689.tif 000008
【０１０３】
【数８】
0006709689.tif 000009
【０１０４】
【数９】
0006709689.tif 000010
【０１０５】
【数１０】
0006709689.tif 000011
【０１０６】
ＰＳｍａｘは、ポイントの合計値の最大値を表し、式（１１）を用いて算出される。式（１１）の隣接ノード数は、ステップＳ６０１において特定された隣接ノード１０１の数を表す。
【０１０７】
【数１１】
0006709689.tif 000012
【０１０８】
集計ポイントは、計算機システム１００に含まれるサーバ装置２００のＣＰＵ２０１の相対的な処理性能を示す。したがって、集計ポイントが大きい場合、サーバ装置２００の処理性能が高いことを示す。
【０１０９】
制御部２１０は、式（７）に基づいて算出されたリクエストの処理数を送受信装置２０３に設定する。送受信装置２０３は、当該値に基づいて処理するリクエストの数を制御する。
【０１１０】
なお、隣接ポイント、自己ポイント、及びポイントの合計値の最大値は、式（１２）、式（１３）、及び（１４）を用いて算出されてもよい。
【０１１１】
【数１２】
0006709689.tif 000013
【０１１２】
【数１３】
0006709689.tif 000014
【０１１３】
【数１４】
0006709689.tif 000015
【０１１４】
また、自己ポイントは式（１５）を用いて算出されてもよい。ＰＭ１は、式（１６）で与えられ、また、ＰＭ２は、式（１７）で与えられる。ＰＭ３は、０より大きい任意の定数である。
【０１１５】
【数１５】
0006709689.tif 000016
【０１１６】
【数１６】
0006709689.tif 000017
【０１１７】
【数１７】
0006709689.tif 000018
【０１１８】
また、識別情報が「ｉ」であるノード１０１に設定されるリクエストの処理数は、式（１８）を用いて算出されてもよい。Ｘｉ（Ｎ）は、識別情報が「ｉ」であるノード１０１が現時刻において算出したリクエストの処理数を表し、Ｘｉ（Ｎ−１）は、識別情報が「ｉ」であるノード１０１が前回算出したリクエストの処理数を表す。Ｘ１は任意の定数である。
【０１１９】
【数１８】
0006709689.tif 000019
【０１２０】
なお、評価値の平均値を算出する場合、隣接ポイントが「０」である隣接ノード１０１の隣接評価値は除外してもよい。隣接ポイントが「０」である隣接ノード１０１には影響を与えないようにするためである。
【０１２１】
（変形例）
あるノード１０１が受け付けたリクエストの数が、式（７）に基づいて算出された制御値より大きい場合、制御部２１０は、自ノード１０１の空きリソース量及び隣接ノード１０１の空きリソース量を評価値として取得し、各ノード１０１の空きリソース量からポイントを算出する。制御部２１０は、当ポイントに基づいて、リクエストを転送するノード１０１及び転送するリクエストの数を制御値として算出する。例えば、制御部２１０は、ポイントが所定の閾値以上の隣接ノード１０１を特定し、特定された隣接ノード１０１のポイントの比率に基づいて、転送するリクエスト数を算出する。
【０１２２】
なお、識別情報が「ｊ」である隣接ノード１０１の空きリソース量は、例えば、式（１９）で与えられる。Ｒｊは、識別情報が「ｊ」である隣接ノード１０１の空きリソース量を表す。Ｘｊは、識別情報が「ｊ」である隣接ノード１０１に設定された制御値を表す。（受信リクエスト数）ｊは、識別情報が「ｊ」である隣接ノード１０１が既に受信したリクエストの数を表す。
【０１２３】
【数１９】
0006709689.tif 000020
【０１２４】
なお、数式に含まれる定数は目的、システム構成等に応じて適宜変更することができる。
【０１２５】
実施例２によれば、各ノード１０１は、自ノード１０１のポイント及び隣接ノード１０１から取得したポイントに基づいて、システム内の相対的な処理性能を把握し、システムの処理性能を向上させるための制御値を設定することができる。
【実施例３】
【０１２６】
実施例３では、電力効率を考慮して、複数のサーバ装置２００を含む計算機システム１００の処理性能を向上させるための制御を例に本発明の適応例を説明する。実施例３では、ノード１０１が処理可能なリクエストの数が制御値として算出される。ここで、実施例３で使用される定義式について説明する。なお、以下に示す定義式は一例であってこれに限定されない。
【０１２７】
自己評価値は、式（２０）を用いて算出される。Ｚｉは、識別情報が「ｉ」であるノード１０１の自己評価値を表す。本実施例の自己評価値は、規格化された単位消費電力当たりの処理能力を表す値である。ＣＰＥｉは識別情報が「ｉ」であるノード１０１のＣＰＵ２０１の実効的な電力効率を表し、式（２１）で与えられる。また、ＳＰＥは、標準ＣＰＵの標準電力効率を表し、式（２２）で与えられる。ＳＰＥは、各値を規格化するための基準となるＣＰＵの電力効率である。（実ＣＰＵ消費電力）ｉは、識別情報が「ｉ」であるノード１０１が実際に使用しているＣＰＵの消費電力を表す。（最大ＣＰＵ消費電力）ｉは、識別情報が「ｉ」であるノード１０１が有するＣＰＵ２０１が、全てのＣＰＵコアを最大動作周波数で動作させた時のＣＰＵの消費電力を表す。
【０１２８】
【数２０】
0006709689.tif 000021
【０１２９】
【数２１】
0006709689.tif 000022
【０１３０】
【数２２】
0006709689.tif 000023
【０１３１】
実施例３では、規格化された最大単位消費電力当たりの処理能力に基づいて、送信隣接ポイントが算出される。当該値は式（２３）を用いて算出される。Ｚｍａｘｉは、識別情報が「ｉ」であるノード１０１の規格化された最大単位消費電力当たりの処理能力を表す。ＣＰＭｉは、識別情報が「ｉ」であるノード１０１のＣＰＵ２０１の電力効率の最大値を表し、式（２４）で与えられる。
【０１３２】
【数２３】
0006709689.tif 000024
【０１３３】
【数２４】
0006709689.tif 000025
【０１３４】
以下で説明する実施例３のＰＮｊｉ、ＰＯｉ、Ｘｉ、ＰＳｍａｘは、実施例２のＰＮｊｉ、ＰＯｉ、Ｘｉ、ＰＳｍａｘと同様の数式として与えられる。
【０１３５】
送信隣接ポイントは、式（２５）を用いて算出される。ＺＮｊは、識別情報が「ｊ」であるノード１０１の隣接評価値を表す。Ｐ１及びＰ２は、式（２６）に示すように０より大きい任意の定数ＰＰ０で与えられる。Ａｖｇ＿Ｚｉは、識別情報が「ｉ」であるノード１０１によって算出された評価値の平均値を表す。Ａｖｇ＿Ｚｉは、自己評価値Ｚｉ及び隣接評価値ＺＮｊから算出される。
【０１３６】
【数２５】
0006709689.tif 000026
【０１３７】
【数２６】
0006709689.tif 000027
【０１３８】
自己ポイントは式（２７）を用いて算出される。ＰＰＭ０は任意の定数である。リクエストの処理数は式（２９）から式（３１）を用いて算出される。また、ポイントの合計値は、式（３２）を用いて算出される。式（２７）から式（３２）までの数式は、式（６）から式（１１）に対応する。
【０１３９】
【数２７】
0006709689.tif 000028
【０１４０】
【数２８】
0006709689.tif 000029
【０１４１】
【数２９】
0006709689.tif 000030
【０１４２】
【数３０】
0006709689.tif 000031
【０１４３】
【数３１】
0006709689.tif 000032
【０１４４】
【数３２】
0006709689.tif 000033
【０１４５】
式（３０）に示すように、集計ポイントは、計算機システム１００に含まれるサーバ装置２００のＣＰＵ２０１の相対的な単位消費電力当たりの処理性能を示す。したがって、集計ポイントが大きい場合、サーバ装置２００の単位消費電力当たりの処理性能が高いことを示す。
【０１４６】
実施例３の制御部２１０は、実施例２の制御部２１０と同様に、式（２８）に基づいて算出されたリクエストの処理数Ｘｉを送受信装置２０３に設定する。送受信装置２０３は、当該値に基づいて処理するリクエストの数を制御する。
【０１４７】
なお、数式に含まれる定数は目的、システム構成等に応じて適宜変更することができる。
【０１４８】
実施例３によれば、各ノード１０１は、自ノード１０１のポイント及び隣接ノード１０１から取得したポイントに基づいて、システム内の相対的な単位消費電力あたりの処理性能を把握し、単位消費電力当たりの処理性能を向上させるための制御値を設定することができる。
【実施例４】
【０１４９】
実施例４では、複数のストレージ装置２５０を含む計算機システム１００におけるデータ書込量の平準化を例に本発明の適応例を説明する。実施例４では、ノード１０１の副記憶装置２５４へ書込み可能なデータ量（データ書込可能量）が制御値として算出される。ここで、実施例４で使用される定義式について説明する。なお、以下に示す定義式は一例であってこれに限定されない。
【０１５０】
実施例４では、各ストレージ装置２５０の実効最大データ書込量が評価値として算出される。
【０１５１】
自己評価値は、式（３３）を用いて算出される。ＬＥｉは、識別情報が「ｉ」であるノード１０１の自己評価値を表す。本実施例の自己評価値は、規格化された実効最大データ書込量を表す値であり、当該値はストレージ装置２５０の寿命を示す。Ｌｍａｘｉは、識別情報が「ｉ」であるノード１０１の規格化された最大データ書込量を表し、式（３４）で与えられる。（最大データ書込量）ｉは、識別情報が「ｉ」であるノード１０１が有する副記憶装置２５４に書込み可能なデータ量の最大値を表す。基準データ書込量は、規格化するための基準となるデータ書込量である。ＬＡｉは、識別情報が「ｉ」であるノード１０１の規格化された実データ書込量を表し、式（３５）で与えられる。（実データ書込量）ｉは、識別情報が「ｉ」であるノード１０１が有する副記憶装置２５４に書き込まれたデータ量を表す。
【０１５２】
【数３３】
0006709689.tif 000034
【０１５３】
【数３４】
0006709689.tif 000035
【０１５４】
【数３５】
0006709689.tif 000036
【０１５５】
送信隣接ポイントは、式（３６）を用いて算出される。ＬＥＮｊは、識別情報が「ｊ」であるノード１０１の隣接評価値を表す。Ｐ１及びＰ２は、式（３７）に示すように０より大きい任意の定数ＰＬ０で与えられる。Ａｖｇ＿ＬＥｉは、識別情報が「ｉ」であるノード１０１によって算出された評価値の平均値を表す。Ａｖｇ＿ＬＥｉは、自己評価値ＬＥｉ及び隣接評価値ＬＥＮｊから算出される。
【０１５６】
【数３６】
0006709689.tif 000037
【０１５７】
【数３７】
0006709689.tif 000038
【０１５８】
自己ポイントは、式（３８）を用いて算出される。ＰＬＭ０は任意の定数である。データ書込可能量は式（３９）から式（４２）を用いて算出される。また、ポイントの合計値は、式（４３）を用いて算出される。式（３８）から式（４３）までの数式は、式（６）から式（１１）に対応する。ＷＥｉは、識別情報が「ｉ」であるノード１０１のデータ書込可能量を表す。ＬＢｍａｘｉは、識別情報が「ｉ」であるノード１０１のブロックサイズを表す。なお、ブロックサイズは、副記憶装置２５４の物理ブロックサイズでもよいし、複数の物理ブロックサイズをまとめたブロックサイズでもよい。ＰＢｍａｘｉは、識別情報が「ｉ」であるノード１０１の物理ブロックサイズを表す。ブロックサイズは、副記憶装置２５４の物理ブロックサイズでもよいし、複数の物理ブロックサイズをまとめたブロックサイズでもよい。ＬＮＰ０は任意の定数である。
【０１５９】
【数３８】
0006709689.tif 000039
【０１６０】
【数３９】
0006709689.tif 000040
【０１６１】
【数４０】
0006709689.tif 000041
【０１６２】
【数４１】
0006709689.tif 000042
【０１６３】
【数４２】
0006709689.tif 000043
【０１６４】
【数４３】
0006709689.tif 000044
【０１６５】
制御部２１０は、式（３９）に基づいて算出されたデータ書込可能量ＷＥｉを送受信装置２５３に設定する。送受信装置２５３は、当該値に基づいてデータ書込量を制御する。
【０１６６】
なお、送信隣接ポイントは、式（１２）のＹｉ及びＹＮｊをＬＥｉ及びＬＥＮｊに置き換えた式を用いて算出することもできる。
【０１６７】
この場合、式（１３）のＰＭ０、Ｙｉ、及びＡｖｇ＿Ｙｉは、ＰＬＭ０、ＬＥｉ、及びＡｖｇ＿ＬＥｉに置き換えられる。また、式（１４）のＰＭ０、Ｙｍａｘｉ、Ａｖｇ＿Ｙｉ、及びＰ０は、ＰＬＭ０、Ｌｍａｘｉ、Ａｖｇ＿ＬＥｉ、及びＰＬ０に置き換えられる。
【０１６８】
なお、自己ポイントは、式（１５）のＹｉ及びＡｖｇ＿ＹｉをＬＥｉ及びＡｖｇ＿ＬＥｉに置き換えた式を用いて算出することもできる。
【０１６９】
この場合、式（１６）及び式（１７）のＰＭ３、Ｙｉ、及びＡｖｇ＿Ｙｉは、ＰＬＭ３、ＬＥｉ、及びＡｖｇ＿ＬＥｉに置き換えられる。ＰＬＭ３は任意の定数である。
【０１７０】
なお、データ書込可能量は、式（１８）のＸｉ及びＸ１を、ＷＥｉ及びＷＥ１に置き換えた式を用いて算出することもできる。ＷＥｉ（Ｎ）は、識別情報が「ｉ」であるノード１０１が現時刻において算出したデータ書込可能量を表し、ＷＥｉ（Ｎ−１）は、識別情報が「ｉ」であるノード１０１が前回算出したデータ書込可能量を表す。ＷＥ１は、任意の定数である。なお、Ｔｏｔａｌ＿Ｐｉは、式（４１）で与えられる。
【０１７１】
なお、数式に含まれる定数は目的、システム構成等に応じて適宜変更することができる。
【０１７２】
実施例４によれば、各ノード１０１は、自ノード１０１のポイント及び隣接ノード１０１から取得したポイントに基づいて、計算機システム１００内の各ストレージ装置２５０の相対的な実効最大データ書込量、つまり、寿命を把握する。各ストレージ装置２５０は、寿命に応じてデータ書込量（制御値）を制御することによって、計算機システム１００内の各ストレージ装置２５０間のデータ書込量を平準化できる。これによって、システムの寿命を延ばすことができる。
【実施例５】
【０１７３】
実施例５では、制御部２１０は、隣接ノード１０１以外のノード１０１をランダムに選択し、選択されたノード１０１と間でポイントを送受信する点が実施例１と異なる。以下、実施例１との差異を中心に実施例５について説明する。
【０１７４】
実施例５の計算機システム１００の構成は、実施例１と同一である。また、実施例５のノード１０１のハードウェア構成及びソフトウェア構成は実施例１と同一である。なお、実施例５の定義式情報２２２には、補正送信隣接ポイント及び補正自己ポイントのエントリが新たに追加される。
【０１７５】
図７は、実施例５の制御部２１０が実行する制御内容決定処理を説明するフローチャートである。
【０１７６】
制御部２１０は、所定のエントリのタイミング４０４に格納される実行契機を検知した場合、以下で説明する制御内容決定処理を実行する。このとき、制御部２１０は、検知された実行契機に対応するエントリの制御ＩＤ４０１を参照ＩＤとして記憶部２１１に一時的に格納する。
【０１７７】
制御部２１０は、ステップＳ６０１の処理を実行した後、ノード１０１を選択する（ステップＳ７０１）。
【０１７８】
具体的には、制御部２１０は、接続情報２２０を参照し、隣接ノード１０１を除くノード１０１の中から一つ以上のノード１０１を選択する。例えば、制御部２１０は、乱数を発生させることによってノード１０１を選択する。なお、選択するノード１０１の数は、あらかじめ設定されているものとする。
【０１７９】
以下の説明では、ステップＳ７０１において選択されたノード１０１をランダムノード１０１と記載する。
【０１８０】
ステップＳ６０２からステップＳ６０４の処理は実施例１の処理と同一である。制御部２１０は、ランダムノード１０１から評価値の平均値を取得する（ステップＳ７０２）。なお、制御部２１０は、ランダムノード１０１から評価値を取得してもよい。
【０１８１】
次に、制御部２１０は、ランダムノード１０１から取得した評価値の平均値、自己評価値、隣接評価値、及び定義式を用いて、補正送信隣接ポイントを算出し、隣接ノード１０１に補正送信隣接ポイントを送信する（ステップＳ７０３）。
【０１８２】
実施例５の場合、例えば、式（４４）を用いて補正送信隣接ポイントが算出される。ＰＲＮｊｉは、識別情報が「ｉ」である自ノード１０１から識別情報が「ｊ」であるランダムノード１０１へ送信される補正送信隣接ポイントを表す。ＹＮｊは、識別情報が「ｊ」であるノード１０１の隣接評価値を表す。ＰＲ１及びＰＲ２は、ポイントを表す。ＰＲ１及びＰＲ２は、式（４５）に示すように０より大きい任意の定数ＰＲ０で与えられる。Ａｖｇ＿ＹＲｋは、識別情報が「ｋ」であるランダムノード１０１から取得した評価値の平均値を表す。
【０１８３】
【数４４】
0006709689.tif 000045
【０１８４】
【数４５】
0006709689.tif 000046
【０１８５】
式（４４）に示すように、隣接評価値ＹＮｊが評価値の平均値Ａｖｇ＿ＹＲｋより大きい場合、正のポイント「＋ＰＲ１」が隣接ノード１０１に送信される。隣接評価値ＹＮｊが評価値の平均値Ａｖｇ＿ＹＲｋより小さい場合、負のポイント「−ＰＲ２」が隣接ノード１０１に送信される。また、隣接評価値ＹＮｊが評価値の平均値Ａｖｇ＿ＹＲｋと同一である場合、ポイント「０」が隣接ノード１０１に送信される。
【０１８６】
なお、算出された補正送信隣接ポイントは、ステップＳ６０４の処理と同様に、定義式情報２２２の所定のエントリの算出値５０４に格納される。
【０１８７】
次に、制御部２１０は、隣接ノード１０１から送信隣接ポイント及び補正送信隣接ポイントを取得し、受信隣接ポイントを算出する（ステップＳ７０４）。
【０１８８】
隣接ノード１０１からポイントを取得する方法は、ステップＳ６０５と同様の方法であるため説明を省略する。制御部２１０は、例えば、式（４６）を用いて補正受信隣接ポイントを算出する。
【０１８９】
【数４６】
0006709689.tif 000047
【０１９０】
次に、制御部２１０は、ステップＳ６０６の処理を実行する。ステップＳ６０６の処理は実施例１と同一の処理である。次に、制御部２１０は、自己評価値、隣接ノード１０１から取得した評価値、ランダムノード１０１から取得した評価値の平均値、及び定義式を用いて、補正自己ポイントを算出する（ステップＳ７０５）。
【０１９１】
実施例５の場合、例えば、以下のような式（４７）に基づいて補正自己ポイントが算出される。ＰＯＲｉは、識別情報が「ｉ」であるノード１０１の補正自己ポイントを表す。ＰＭＲ１及びＰＭＲ２は、ポイントを表す。ＰＭＲ１は式（４８）で与えられ、ＰＭＲ２は式（４９）で与えられる。ＰＭＲ０は任意の定数である。
【０１９２】
【数４７】
0006709689.tif 000048
【０１９３】
【数４８】
0006709689.tif 000049
【０１９４】
【数４９】
0006709689.tif 000050
【０１９５】
式（４７）に示すように、自己評価値Ｙｉが評価値の平均値Ａｖｇ＿ＹＲｋより大きい場合、正のポイント「＋ＰＭＲ１」が自己補整ポイントとして算出される。自己評価値Ｙｉが評価値の平均値Ａｖｇ＿ＹＲｋより小さい場合、負のポイント「−ＰＭＲ２」が自己補整ポイントとして算出される。また、自己評価値Ｙｉが評価値の平均値Ａｖｇ＿ＹＲｋと同一である場合、ポイント「０」が自己補整ポイントとして算出される。なお、算出された補正自己ポイントは、ステップＳ６０５の処理と同様に、定義式情報２２２の所定のエントリの算出値５０４に格納される。
【０１９６】
ステップＳ６０７では、制御部２１０は、自己ポイントＰＯ、補正自己ポイントＰＯＲ、及び受信隣接ポイントＰＧに基づいて、制御値を算出する。例えば、制御部２１０は、式（５０）を用いて制御値を算出する。Ｘｍａｘｉは、式（５１）で与えられる。Ｘ０は任意の定数である。Ｔｏｔａｌ＿Ｐｉは、式（５２）で与えられる。また、ＰＳｍａｘは、式（５３）で与えられる。ランダムノード数は、ステップＳ７０１において特定されたランダムノード１０１の数を表す。
【０１９７】
【数５０】
0006709689.tif 000051
【０１９８】
【数５１】
0006709689.tif 000052
【０１９９】
【数５２】
0006709689.tif 000053
【０２００】
【数５３】
0006709689.tif 000054
【０２０１】
実施例５によれば、隣接ノード１０１以外のノード１０１から取得された補助的な情報（補正値）を用いることによって、より計算機システム１００全体の状態を反映された制御値を算出することができる。これによって、より正確に計算機システム１００を制御することが可能となる。
【０２０２】
本発明によれば、一つのノード１０１は、計算機システム１００に含まれる全てのノード１０１からデータを取得することなく、最適な処理を実現するための設定が可能となる。
【０２０３】
例えば、負荷分散、消費電力当たりの処理性能の最適化、及びデータ書込量の平準化等が可能となる。また、システム構成の変更に柔軟に対応でき、また、さまざまな種類の制御値を調整することができる。
【０２０４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０２０５】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるＣＰＵが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０２０６】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０２０７】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるＣＰＵが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０２０８】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０２０９】
１００  計算機システム
１０１  ノード
１１０  評価範囲
２００  サーバ装置
２０１  ＣＰＵ
２０２  主記憶装置
２０３  送受信装置
２１０  制御部
２１１  記憶部
２２０  接続情報
２２１  指標情報
２２２  定義式情報
２５０  ストレージ装置
２５１  ＣＰＵ
２５２  主記憶装置
２５３  送受信装置
２５４  副記憶装置
【図１】
0006709689.tif 000055
【図２Ａ】
0006709689.tif 000056
【図２Ｂ】
0006709689.tif 000057
【図３Ａ】
0006709689.tif 000058
【図３Ｂ】
0006709689.tif 000059
【図３Ｃ】
0006709689.tif 000060
【図３Ｄ】
0006709689.tif 000061
【図４】
0006709689.tif 000062
【図５】
0006709689.tif 000063
【図６】
0006709689.tif 000064
【図７】
0006709689.tif 000065