(57)【要約】      （修正有）【課題】データセンターなどのＩＴインフラストラクチャ設備においてエネルギー効率を向上させる。【解決手段】各計算装置が指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を有し、個々に、ｎ次元のうちの１つの次元における一連の指定位置の中の指定位置ごとの１つ又は複数の計算装置においてプロセスを実行するステップであって、１つの次元において１つの方向が負荷転送方向として割り当てられるステップを含み、プロセスは、複数の計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける追加の負荷のための、現在の能力の指標を取得するステップと、実行中の計算装置から追加の負荷のための能力があることが示された上記グループのメンバに負荷を転送するステップと、を含み、グループのメンバーシップは、１つの次元における実行中の計算装置の負荷転送方向の側の１つ又は複数の計算装置に制限される。【選択図】図１
2015069640.tif 000002
【特許請求の範囲】
【請求項１】
相互接続された複数の計算装置の間で負荷を分配する方法であって、各計算装置は指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を有し、当該方法は、個々に、前記ｎ次元のうちの１つの次元における一連の指定位置の中の指定位置ごとの１つ又は複数の計算装置において、プロセスを実行するステップであって、前記１つの次元において１つの方向が負荷転送方向として割り当てられる、ステップ、を含み、前記プロセスは、
前記複数の計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける、追加の負荷のための、現在の能力の指標を取得するステップと、
実行中の計算装置から、追加の負荷のための能力があることが示された前記グループのメンバに、負荷を転送するステップと、を含み、
前記グループのメンバーシップは、前記１つの次元における前記実行中の計算装置の前記負荷転送方向の側の１つ又は複数の計算装置に制限される、
方法。
【請求項２】
ｎは、２以上であり、前記グループのメンバーシップは、前記１つの次元、及び／又は前記１つの次元以外のｎ次元の各々における個々の計算装置のうち、所定数の指定位置の範囲内の１つ又は複数の計算装置に制限される、請求項１に記載の方法。
【請求項３】
ｎは、２に等しく、ある指定位置に対する後続の隣接した指定位置における各計算装置は、前記ある指定位置における計算装置のうち少なくとも１つについてのグループのメンバである、請求項２に記載の方法。
【請求項４】
前記プロセスを実行する１つの次元における指定位置ごとの前記１つ又は複数の計算装置は、前記指定位置における各計算装置である、請求項１に記載の方法。
【請求項５】
前記の個々の計算装置により実行される前記プロセスはさらに、
前記グループのどのメンバに負荷を転送すべきかを選択するステップであり、前記グループの１のメンバ又は各メンバにおける追加の負荷のための現在の能力の前記の取得された指標に基づいて、非ゼロの現在の能力を有すると示された前記グループ内の計算装置の中から最大又は最小の能力を有する計算装置を選択するステップを含む、ステップ
を含む、請求項１に記載の方法。
【請求項６】
前記実行中の計算装置から前記グループのメンバに負荷を転送するステップは、前記グループの前記メンバが追加の負荷のための残りの能力を有しなくなるまで、又は前記実行中の計算装置が残りの負荷を有しなくなるまで、負荷を転送するステップを含む、請求項１に記載の方法。
【請求項７】
前記実行中の計算装置が残りの負荷を有しない場合、前記プロセスはさらに、スリープ、休止若しくはスタンバイモードに入るステップ、又はスイッチを切るステップを含む、請求項６に記載の方法。
【請求項８】
前記グループのメンバにおける追加の負荷のための現在の能力の指標を取得するステップは、前記グループの前記メンバから前記指標を受信するステップを含む、請求項１に記載の方法。
【請求項９】
当該方法は、１つより多くの反復の連続として実行され、各反復について、前記一連の指定位置は、前記１つの次元の前記負荷転送方向における１番目の指定位置から最後から２番目の指定位置までであり、かつ、前記一連の指定位置の各々における各計算装置は、前記計算装置が前記プロセスを実行すべきである所定順序において位置を有し、かつ、前記計算装置は、該計算装置の順番において、ゼロの現在の負荷を有する計算装置を除外する前記所定順序に従って順に前記プロセスを実行するように構成される、請求項１に記載の方法。
【請求項１０】
ｎは、２又は３に等しく、前記ｎ次元の各々は、空間的な次元に対応し、前記ｎ次元における各計算装置の指定位置は、前記計算装置の、前記計算装置以外の計算装置に対する空間的な位置を表す、請求項２に記載の方法。
【請求項１１】
前記負荷の空間的な分布を表す情報を冷却システムに送信するステップと、前記冷却システムにおいて、前記負荷の前記空間的な分布に依存して前記冷却システムの動作を制御するステップと、をさらに含む請求項１に記載の方法。
【請求項１２】
複数の相互接続された計算装置の中の計算装置であって、各計算装置は指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を有し、前記ｎ次元のうちの１つの次元の１つの方向が負荷転送方向として割り当てられ、当該計算装置はプロセスを実行するように構成され、前記プロセスは、
能力指標取得モジュールにおいて、前記複数の相互接続された計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける追加の負荷のための現在の能力の指標を取得するステップと、
負荷転送モジュールにおいて、実行中の計算装置から、追加の負荷のための能力があることが示された前記グループのメンバに、負荷を転送するステップと、を含み、
前記グループのメンバーシップは、前記１つの次元における前記実行中の計算装置の前記負荷転送方向の側の、前記複数の相互接続された計算装置の中の別の計算装置又は他の計算装置に制限される、
計算装置。
【請求項１３】
相互接続された計算装置のシステムであって、相互接続された計算装置の当該システムは指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を各々有し、前記ｎ次元のうちの１つの次元の１つの方向が負荷転送方向として割り当てられ、前記計算装置はプロセスを実行するように構成され、前記プロセスは、
能力指標取得モジュールにおいて、前記の複数の相互接続された計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける追加の負荷のための現在の能力の指標を取得するステップと、
負荷転送モジュールにおいて、実行中の計算装置から、追加の負荷のための能力があることが示された前記グループのメンバに、負荷を転送するステップと、を含み、
前記グループのメンバーシップは、前記１つの次元における前記実行中の計算装置の前記負荷転送方向の側の、前記の複数の相互接続された計算装置の中の別の計算装置又は他の計算装置に制限される、
システム。
【請求項１４】
請求項１３に記載の相互接続された計算装置のシステムと冷却システムとを含む装置であって、相互接続された計算装置の前記システムは、前記負荷の空間的な分布を表す情報を前記冷却システムに送信するように構成され、前記冷却システムは、前記の送信された情報に依存して前記冷却システムの動作を制御するように構成される、装置。
【請求項１５】
コンピュータプログラムであって、相互接続された複数の計算装置によって実行されると、相互接続された前記複数の計算装置に方法を実行させ、各計算装置は指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を有し、前記方法は、前記ｎ次元のうちの１つの次元において１つの方向が負荷転送方向として割り当てられ、前記１つの次元における一連の指定位置の中の指定位置ごとの１つ又は複数の計算装置において、個々に、
前記複数の計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける、追加の負荷のための、現在の能力の指標を取得するステップと、
実行中の計算装置から、追加の負荷のための能力があることが示された前記グループのメンバに、負荷を転送するステップと、を含み、
前記グループのメンバーシップは、前記１つの次元における前記実行中の計算装置の前記負荷転送方向の側の１つ又は複数の計算装置に制限される、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク化された計算環境における計算負荷分配の技術領域にある。具体的には、本発明は、グリーンデータセンターテクノロジー、及びエネルギー効率の優れたデータセンター負荷分配の領域にある。
【背景技術】
【０００２】
莫大な電力消費と関連するカーボン・フットプリントとを前提として、データセンターなどの計算環境は、そのエネルギー効率を改善し、かつ環境への影響を削減することを目的とする技術に関して当然の対象となる。これは、データセンターの数の爆発的な増大と、我々社会の、情報技術及び情報技術により提供される計算サービスへの依存度の増加とを踏まえると、特に当てはまる。加えて、エネルギーコストがデータセンターの運用コストの主要な部分であり、施設及び機器のコストとほぼ同程度重要となってきている。
【０００３】
データセンターはいくらかのエネルギーを用いてＩＴ機器；コンピュータ、記憶装置及びネットワーク機器に電力を供給する。この機器の動作が熱を生み出し（使用されたエネルギーを放散する他の方法がないため、ＩＴ機器に提供された電力の量におおよそ等しい）、ゆえに、データセンター電力の別の主な使途は、この熱をデータセンター機器及びホールから除去し、かつ上記熱を外部に放出することである（例えば、エアコンを用いることによる）。
【０００４】
既存のデータセンターは、全体的な／集中型の制御部を備え、上記制御部は、データセンター内の装置からの情報を集め、個々の装置の間でタスクを割り当て及び再分配してエネルギー効率の優れた運用などの特定の指針目標を追求する。複雑なアルゴリズムが、装置間で計算負荷の最適な分配を算出及び実現するために存在し、冷却装置の動作設定を補正する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データセンターの大きさが増大し、かつＩＴインフラストラクチャ設備においてデータセンターの重要度の高まりが増加するにつれて、エネルギー効率目標を達成するために全体的な／集中型の制御部により実行されるアルゴリズムの複雑さもまた、増加する。
【課題を解決するための手段】
【０００６】
発明実施形態は、相互接続された複数の計算装置の間で負荷を分配する方法であって、各計算装置は指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を有し、当該方法は、個々に、上記ｎ次元のうちの１つの次元における一連の指定位置の中の指定位置ごとの１つ又は複数の計算装置において、プロセスを実行するステップであって、上記１つの次元において１つの方向が負荷転送方向として割り当てられる、ステップ、を含み、上記プロセスは、上記複数の計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける、追加の負荷のための、現在の能力の指標を取得するステップと、実行中の計算装置から、追加の負荷のための能力があることが示された上記グループのメンバに、負荷を転送するステップと、を含み、上記グループのメンバーシップは、上記１つの次元における上記実行中の計算装置の上記負荷転送方向の側の１つ又は複数の計算装置に制限される、方法、を含む。
【０００７】
負荷を転送するステップは、取得された指標を条件とすることができ、したがって個々の計算装置により実行されるプロセスには、上記複数の計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおいて追加の負荷のための現在の能力の指標を取得するステップと、上記グループの上記１のメンバ又は各メンバにおいて追加の負荷のための現在の能力の取得された指標に基づいて、追加の負荷のための能力を有するグループのメンバが存在する場合、実行中の計算装置から、追加の負荷のための能力があることが示された上記グループのメンバに、負荷を送信するステップと、を含む。もちろん、ある計算装置によってすでにホストされた又は扱われた負荷が転送されるため、上記方法は、複数の相互接続された計算装置の間で負荷を再分配する方法であると見なすことができる。
【０００８】
上記グループのメンバーシップは、１つの次元における実行中の計算装置の特定の側の計算装置に制限され、上記特定の側は、プロセスの各実行について（実行中の計算装置にかかわらず）一貫性があり、負荷転送方向の側として定義される。例えば、負荷転送方向がｘ次元における低から高までであり、指定される配列位置が、１≦Ｘ≦Ｘｍａｘかつ１≦Ｙ≦Ｙｍａｘについて、（Ｘ，Ｙ）で与えられる場合、実行中の計算装置の指定位置（Ｘ，Ｙ）について、グループのメンバーシップは、Ｘ＋１以上から最大値のＸｍａｘまでのＸ座標に指定された計算装置に制限される。もちろん、グループのメンバーシップをより制限することが、あり得る。例えば、グループのメンバーシップは、１つの次元の負荷転送方向における実行中の装置に対して、後続の隣接した指定位置にある１つ又は複数の計算装置に制限することができ、あるいは、グループのメンバーシップは、１つの次元の負荷転送方向における実行中の装置の、所定最大数の指定位置の範囲内の１つ又は複数の計算装置に制限することができる。さらに、ｎ次元配列において１つより多くの次元が存在するとき、メンバーシップは、他の次元のうち１つ又は複数の中の指定位置の観点から制限することができる。
【０００９】
ｎ次元配列は、例えば、１次元、２次元、３次元、又は任意の正の整数の次元とすることができる。例えば、いくつかのデータセンターアーキテクチャは、６次元配列に従って位置を指定することができる。上記次元は、計算装置に対する座標の割り当て（指定位置）によってのみ定義される概念的な次元とすることができ、あるいは上記の複数の相互接続された計算装置の中で計算装置の物理的配置を表すことができる。
【００１０】
ｎ次元のうちの１つの次元の中の一連の指定位置は、包括的な、１番目の位置から最後から２番目の位置までのあらゆる位置とすることができる。すなわち、負荷転送方向における最後の位置以外のあらゆる位置である。上記プロセスを実行する指定位置ごとの１つ又は複数の計算装置は、指定位置が指定されている各計算装置とすることができる。さらに、上記プロセスを実行する指定位置ごとの１つ又は複数の計算装置は、現在負荷を有する計算装置に制限することができる。換言すると、計算装置がプロセスを実行すべき順序が、規定され、上記順序において順番がまわってきたときに負荷を有していない計算装置は、プロセスを実行しない。この順序は、ランダムとすることができ、あるいは何らかの論理的順序に従うことができる。例えば、論理的順序は、計算装置の指定位置に従って決定することができ、負荷転送方向を割り当てられている１つの次元の中の計算装置自体の位置に依存して計算装置がプロセスを実行すべき順序を決定することを含み得るいくつかの論理的順序で機能することができる（例えば、負荷転送方向における位置の増加又は減少を伴う）。しかしながら、ある計算装置が、プロセスを実行する番になったときに負荷を何もホストしてしない場合、上記計算装置は、プロセスを実行せず、プロセスは、転送するための負荷を有する、順序において次の計算装置によって実行される。プロセスは、一度に１つの計算装置によって、順に（上記順序に従う。上記を参照）実行され、上記プロセスは、負荷転送の完了の後、順序において次の計算装置にプロセスを実行させるために、要求する、通知する、又は指示するステップを含むことができる。
【００１１】
実施形態において、計算装置は、負荷を処理する／扱うことが可能な、稼働している計算装置であることを想定するものとすることができ、非稼働の計算装置は、上記の複数の相互接続された計算装置の部分ではないと見なすことができる。別法として、非稼働の計算装置は、上記の複数の相互接続された計算装置内に含まれると見なされ、しかしながら、プロセスを実行することはできず、グループメンバとして動作するときに追加の負荷のための能力がまったくない／ゼロであると解される。
【００１２】
発明実施形態において、グループのメンバーシップへの方向の偏りが、配列の片側から別の側への負荷の全体の移行を引き起こすという効果を有する。したがって、プロセスが実行されるべきである指定位置にある計算装置は、いかなる順序でもプロセスを実行することができ、かつ（負荷転送方向における）片側から別の側への正味の移行をなお達成する。
【００１３】
指定位置は、ｎ次元の各々の中の計算装置の順序付けを示し、さらに、計算装置間の距離が指定位置の配列という背景において定められることを可能にする。
【００１４】
有利なことに、本発明を具体化する方法は、計算負荷が、効果的な負荷の取り扱いを促し、かつ、集中型の制御又は報告メカニズムの必要性なくピアツーピア・トランザクションを活用する方式で、計算装置間で転送されることをもたらす。計算装置は、逐次的方法でグループに自己体系化し（self-organise）、すべてのグループにわたって一貫性のある方向に負荷を転送する（あるいは、すべてのグループにわたって一貫性のある方向に実際的な構成要素を有する）。全体の効果は、指定位置の配列の観点からの、特定方向における負荷の協調的な転送である。上記効果は繰り返しによってより強調され（exaggerated）、したがって複数の繰り返しの過程にわたって、より多くの負荷が指定位置の配列内の特定方向にさらに転送され、最終的な結果が、特定方向の一方の端に向かってノードをいっぱいにし、他方のノードを空にすることになる。このようにして、ノードは、負荷の観点において最大能力であるときに高効率で動作する傾向があり、かつ空きがあるときに停止することができるため、上記複数の計算装置の複合の効果は増大する。
【００１５】
さらに、本発明を具体化する方法は、指定位置のｎ次元配列のうち１つの次元の中の（負荷転送方向の方向において）特定の端にあるノードを指定することによって、ノードのうちどれが高負荷になるかを制御するメカニズムを提供する。最も効率よく動作するノードは、例えば、上記ノードがより多くの量の負荷を扱い、かつ／あるいは冷却メカニズムにとって便利に配置されるため、負荷を転送する方向の配列の１つの次元の端に指定されることが、あり得る。
【００１６】
上記方法は、集中型の報告若しくは制御機能による介入又は該機能との相互作用がない中で実施され、ノードは、指定位置により定義された役割を有するグループに自己体系化する。いくつかの管理上の又は集中型の制御が、位置の指定された配列の初期化と、計算ノードが上記方法を実行することを可能にする命令（例えば、コンピュータプログラム）をロードすることとにおいて必要とされる場合があるが、さらなる介入は上記方法を実行することにおいてまったく必要とされない。
【００１７】
上記方法は、ソフトウェア機能として、例えば、計算装置のオペレーティングシステムの機能として実行することができる。例えば、オペレーティングシステムは、上記プロセスを実行するときにある命令一式に従い、かつ別の計算装置のグループのメンバのときに別の命令一式に従って、処理を実行することができる。本発明を具体化するソフトウェアは、計算装置により実行されると、計算装置に、上記取得するステップを実行するための能力指標取得モジュールと上記負荷転送ステップのための（かつ、負荷転送を実行すべきかどうか及びどの負荷転送を実行すべきかを決定するための）負荷転送モジュールとを含む、機能的モジュールを実現させる。
【００１８】
したがって、上記で説明された方式などの方式で選択されたある量の計算負荷を、プロセスを実行している計算装置から、指定位置の配列内の上記実行中の計算装置の特定の側に配置された受信者計算装置に再分配する実施形態は、負荷移行について、エネルギー効率の優れた、容易に拡大縮小可能なアルゴリズムを定義する。実施形態は局所的な情報だけを使用し、ゆえに、負荷分配について集中型の制御メカニズムの必要性が回避される。さらに、アルゴリズムの単純さと必要とされる帯域の小ささとが実行時間の短さを可能にし、したがって、必要なＶＭ（仮想マシン（Virtual  Machine））移行（負荷転送）は、入ってくるサービス要求（新しい計算負荷）が到着する速さよりもかなり短い時間スケールで実施することができる。
【００１９】
計算装置は、グループに自己体系化するように構成することができる。例えば、上記グループは、各実行において実行中の計算装置によって選択することができ、グループメンバに対して現在の能力の指標について要求を発行することによって定義することができる。別法として、特定の計算装置に対するグループのメンバーシップは、より長期間にわたるものとすることができ、いったん別の計算装置がある特定計算装置のグループに入っていることを通知されると、上記別の計算装置は、その負荷情報を、例えば周期的に又は要求などのトリガに応じて、上記特定計算装置に報告するように構成される。特定の実行中の計算装置に対するグループは、方向の制限を念頭に置き、例えば、配列内の１つ又は複数の次元の中の上記実行中の装置への近接によって、決定することができる。
【００２０】
ｎが２以上である実施形態において、上記グループのメンバーシップは、１つの次元、及び／又は上記１つの次元以外のｎ次元の各々における個々の計算装置のうちの、所定数の指定位置の範囲内の１つ又は複数の計算装置に制限することができる。
【００２１】
例えば、上記所定数は、１、２、又は任意の正の整数とすることができる。有利なことに、所定数を例えば１に設定することによりグループのメンバーシップを制限することは、上記方法の報告オーバヘッドを低く維持し、しかしなお、指定位置の配列の一端に向かうことになる負荷転送がフルの能力まで負荷をかけられることを容易にする。さらに、グループのメンバを３つ以上有することは、ノード（ノードは本明細書において計算装置と区別せずに用いられる）欠陥に対していくらかの抵抗を提供する。グループの１つ又は複数のメンバが故障した場合、グループのうち１つのメンバが稼働している限り、計算負荷を負荷転送方向に転送する経路がなお存在するからである。特定の実施形態において、他の制限に加えて、グループのメンバーシップは、稼働しているノード（すなわち、機能しており、この時点において故障又は何らかの他の形の欠陥に見舞われていないノード）に制限することができる。
【００２２】
ｎが２に等しい実施形態において、ある指定位置に対して後続の隣接した指定位置にある各計算装置は、上記指定位置の計算装置のうち少なくとも１つに対するグループのメンバとすることができる。
【００２３】
負荷は、負荷転送方向において、上記プロセスを実行している計算装置から離れて転送される。グループのメンバは、上記プロセスを実行している計算装置から負荷を受信する候補である。（１つの方向における）位置ごとの各計算装置が（上記１つの方向における）前の隣接した位置にある少なくとも１つの計算装置に対するグループのメンバである構成は、各計算装置が負荷を受信する機会を有することを確かにし、したがって配列の一端の負荷による飽和をより完全とすることができ、負荷の移行は方法繰り返しの観点からより速くなる。
【００２４】
随意的に、プロセスを実行している１つの方向における指定位置ごとの１つ又は複数の計算装置は、上記指定位置にある各計算装置である。
【００２５】
特定の実施形態が、すべての負荷が転送可能であること、及びすべての計算装置が負荷転送方向に負荷を転送することを、必要とする場合がある。こうした実装において、負荷の移行はより速くなることになり、配列の一端の計算負荷による飽和をより完全な方式で達成することができる。
【００２６】
個々の計算装置により実行されるプロセスはさらに、上記グループの１のメンバ又は各メンバにおける追加の負荷のための現在の能力の取得された指標に基づいて、現在の能力が非ゼロであると示されたグループ内の計算装置の中から最大又は最小の能力を有する計算装置を選択することを含め、グループのどのメンバに負荷を転送すべきかを選択することを含むことができる。
【００２７】
有利なことに、最小の非ゼロの能力を有するグループメンバに負荷を転送することは、負荷転送により受信者が最大能力に達せられることになることを意味する。有利なことに、こうした方法が、最少の繰り返しにおいてほとんどの負荷を転送しない一方、上記方法は、受信者ノードが最大能力となり、したがって最適な効率に又はほぼ最適な効率において動作することをもたらす。上記方法のより多くの繰り返しの過程にわたって、最大能力にあるノードは、１つの次元の負荷転送方向端におけるノードであるという傾向になる。
【００２８】
有利なことに、最大の能力を有するグループメンバに負荷を転送することは、高い割合の負荷転送が達成されることを確かにすることになり、したがって、負荷についての所望の分配（配列の一端におけるノードがフルに負荷をかけられる）が上記方法のより少ない繰り返しで達成されることになる。
【００２９】
実施形態は、実行中の計算装置からグループのメンバに負荷を転送することが、グループのメンバが追加の負荷のための残りの能力をまったく有さなくなるまで、又は実行中の計算装置が残りの負荷をまったく有さなくなるまで、負荷を転送することを含むことを、含むことができる。
【００３０】
こうした方法は、プロセスの各実行を、提供者（プロセスを実行しているノード）とグループの中から選択された受信者との間の１つ１つの転送に制限するという観点で、単純である。転送すべき負荷の量はしたがって、提供者の負荷の量又は受信者の能力の、どちらがより小さいのかを定めることによって決定される。提供者の負荷の量がより小さい場合、その量の負荷が受信者に転送される。受信者の能力がより小さい場合、受信者が最大能力に達することになる量の負荷が転送される。負荷を転送すべき先のグループのメンバは、互いに対して追加の負荷のためのグループメンバの能力に依存して、グループメンバの中から選択される。
【００３１】
特定の装置の計算負荷を転送するための受信者計算装置を選択することに加えて、プロセスを実行している計算装置はさらに、転送すべき計算負荷の量を決定することができる。制限が、２つの要因、すなわち、実行中の計算装置の現在の負荷、及び受信者（群）として選択された１つ又は複数のノードの現在の能力によって、課される。転送することができるタスクの大きさ／負荷の量においていくらかの粒度が存在することがあり得、いくつかの実装において上記量は粒度の許容度に起因して近似となることが負荷の量を議論する際に潜在することがあり得る。粒度の許容度は、負荷転送の種類に依存してよい。例えば、実行中の計算装置が、受信者計算装置の現在の能力によって決定されたある量の計算負荷を転送して受信者計算装置の負荷をその最大能力まで増加させるものである場合、転送される負荷の量が（受信者計算装置の過負荷を回避するために）現在の能力を超えることはできないということがあり得る。こうした状況において、ある量の計算負荷を転送することは、「上記量を超えることなく可能な限り近い量」を転送することであると見なすことができる。転送すべき計算負荷の量を選択する例示的なアルゴリズム又は論理的なプロセスとして、実行中の計算装置は、転送すべき計算負荷の量を選択するように構成され、上記選択される量は、受信者計算装置の現在の能力が実行中の計算装置の現在の計算負荷よりも少ない場合を除いて、実行中の計算装置の現在の計算負荷に（ほぼ）等しくなり、上記の場合は、選択される量は、受信者計算装置の現在の能力に（ほぼ）等しくなる。すなわち、選択される量は、実行中の計算装置の現在の計算負荷と受信者計算装置の現在の能力とのうちより小さい方にほぼ等しくなり、上記２つの量が等しい場合、選択される量は、実行中の計算装置の現在の計算負荷となる。
【００３２】
実行中の計算装置からグループのメンバに負荷を転送することが、グループのメンバが追加の負荷のための残りの能力をまったく有さなくなるまで、又は実行中の計算装置が残りの負荷をまったく有さなくなるまで、負荷を転送することを含む、実施形態において、実行中の計算装置が残りの負荷をまったく有さなくなった場合、上記プロセスはさらに、スリープ、休止若しくはスタンバイモードに入ること、又はスイッチを切ることを含む。
【００３３】
実装に依存して、計算装置をスリープ、休止若しくはスタンバイモード（集合的に低電力設定と呼ぶ）のうち１つに入らせること、又はスイッチを切ることは、計算装置によって消費される電力を削減することになり、したがって上記複数の計算装置の複合のエネルギー効率が向上することになる。本発明を具体化する方法は、ノードのうち大部分が２つの状態、すなわち、フルの能力で動作している状態、又は空いている状態となるような方法で、負荷が分配されることをもたらす。ノードは、フルに負荷をかけられたとき、消費される単位エネルギーにつきより多くの処理を実行することができる傾向にある。さらに、負荷をまったく有していないノードは、低電力設定に入ることができ、又はスイッチを切ることができる。したがって、相互接続された計算装置の全体の効率が、本発明を具体化する方法を実行することによって高められる。低電力設定にある、又はスイッチを切られたノードは、転送すべき負荷をまったく有していないため、プロセスを実行しない。上記ノードは飛ばして進められ、上記プロセスは、定められた順序における、転送すべき負荷を有する後続のノードにより実行される。随意的に、低電力設定にあるノードは、他の計算装置に対するグループメンバとして動作するように構成される。すなわち、低電力設定にあるノードはなお、プロセスを実行している計算装置に現在の能力の指標を送信するように、かつ、実行中の計算装置によって受信者として選択された場合に負荷を受信するように（それに応じて、負荷を受信して負荷を処理するとき又は前に、（スイッチを入れることによって）低電力設定を出るように）動作可能である。
【００３４】
随意的に、グループのメンバにおける追加の負荷のための現在の能力の指標を取得することには、グループのメンバから上記指標を受信することを含む。
【００３５】
すなわち、グループのメンバにおける追加の負荷のための現在の能力の指標を取得することには、グループのメンバ自体から指標を受信することを含む。換言すると、グループの各メンバは、メンバ自体の現在の能力を実行中の装置に報告するように構成される。指標は、実行中の装置からの要求又は何らかの他の形式のトリガに応じて、生成すること、及び実行中の装置に転送することができる。別法として、実行中の装置に負荷を報告することは、周期的とすることができる。あるグループメンバから指標がまったく受信されない場合、上記グループメンバは追加の負荷のための能力をまったく有していないものと想定することができる。
【００３６】
発明実施形態の実装において、計算装置は、計算装置自体の負荷を、プロセスを実行している装置に報告するように構成される。したがって、プロセスは、全体として、処理負荷を実行する計算装置自体によって実行されることができる。集中型の報告及び制御メカニズムに関連するボトルネックが回避され、上記方法はスケーラブルである。
【００３７】
方法は、１回より多くの反復の連続として実行することができ、ここで、各反復について、一連の指定位置は、１つの次元の負荷転送方向における１番目の指定位置から最後から２番目の指定位置であり、一連の指定位置の各々における各計算装置が反復ごとに一回プロセスを実行する。
【００３８】
各反復は、繰り返し又はサイクルと呼ぶこともできる。最適な負荷構成に近づくために必要とされる反復の回数は、配列の大きさと最初の反復に先行する負荷の分布とに依存する。反復の連続は、最初に立て続けに、例えば、連続的に実行することができ、したがって、いったん１つの反復の最後のプロセスが実行されると、次の反復の第１のプロセスがその後即座に開始される。反復が、反復の間に構成可能な長さの休息期間を有して周期的に実行されるとすぐ、こうした立て続けは、所定回数の反復について、又は何らかの他の基準が満たされるまで、続けることができる。別法として、反復の連続的な実行は、無制限に続けることができる。基準は、例えば、最大能力で（又は、上記方法の目的に対して最大能力で動作していると見なされるに近いほど十分な能力で）動作しているノード上に配置されており、かつ、負荷転送方向に向かって配列の端の算出された距離の範囲内にある、全体の負荷についての割合とすることができる。上記距離は、例えば、全体の負荷を、１つの次元の中の各指定位置におけるノードによって扱うことができる負荷の量で除算すること（及び、随意的に、切り上げること、又は切り上げて１若しくは２などの所定バッファ値を加算すること）によって、算出することができる。
【００３９】
上記で述べたとおり、プロセスを実施する又は実行する計算装置は、稼働している、及び／又は転送すべき負荷を有している計算装置に制限することができる。
【００４０】
ｎが２又は３に等しい実施形態において、ｎ次元の各々は、空間的な次元に対応することができ、ｎ次元の中の各計算装置の指定位置は、上記計算装置の、他の計算装置に対する空間的な位置を表す。
【００４１】
有利なことに、指定位置の配列と計算装置の物理的配置との対応は、負荷の物理的配置を上記方法によって操作することを可能にする。さらなるエネルギー節約を得ることができる。例えば、１つの次元と負荷転送方向とは、複数の相互接続された計算装置を収納する収納装置の特定の端に向かって負荷が転送される傾向となるように、選択することができる。収納装置の反対側における冷却システムと他の補助装置とはしたがって、電源を落とすこと又は低電力設定に切り替えることができ、計算負荷と関連する支援メカニズムとを扱うことによってもたらされる全体のエネルギー消費が、削減される。
【００４２】
本発明の実施形態は、複数の計算装置がプロセスを順に実行するように構成される構成において特に効果的である。複数の相互接続された計算装置の中の単一の計算装置上で上記機能を実行することの有益な影響は、上記の複数の相互接続された計算装置（又はその中の少なくとも１つより多くの計算装置）が順番に上記機能を実行する場合、急激に増加させることができる。本発明の実施形態は、本明細書において上記又は他所で定義されるとおりの（及び、特許請求の範囲によって具体的に定義されるとおりの）複数の計算装置を含み、上記複数の計算装置は、上記の複数の相互接続された計算装置であり、ここで、上記の複数の相互接続された計算装置は、順に、プロセスを実行するように各々構成される。こうした実施形態は、ＩＴインフラストラクチャと冷却源との簡素な使用を強いるアルゴリズムを実装することによって、エネルギー効率の優れた方式で動作及び冷却することができるネットワーク化された計算環境を提供する。
【００４３】
さらに、こうした実施形態において、上記の複数の相互接続された計算装置がプロセスを実行する順序は、計算装置の物理的な配置によって決定することができる。別法として、上記順序はランダム化することができ、配列の一方の端から別の方への負荷の正味の移行はなお結果として生じ得る。装置の物理的配置により決定される順序は、特定方向において特定の空間的な又は指定された次元に沿って連続的に進めることを含むことができ、上記特定の空間的な又は指定された次元において同一場所に配置されている計算装置の順序は、別の空間的な又は指定された次元における計算装置などに沿って進めることによって決定することができる。有利なことに、実施形態は計算負荷を動かすという効果を有し、したがって計算負荷は、位置の指定された配列のうち１つの次元の一端における位置に指定されたノードに向かって配置される傾向にあり、上記一端は、空間的な意味における収納装置の一端に対応させることができる。結果として、収納装置内の計算装置により生成される熱は局所化することができ、より効率よく冷却システムによって除去することができる。換言すると、計算負荷は、収納装置又はデータセンターの特定の１つ又は複数の区画に集中させることができる。
【００４４】
実施形態はさらに、負荷の空間的な分布を表す情報を冷却システムに送信することを含むことができ、冷却システムにおいて、冷却システムの動作を制御することは負荷の空間的な分布に依存する。
【００４５】
計算装置、及び／又は計算装置を収納している収納装置から、熱を除去するように動作可能な冷却システムの制御システムは、上記複数の計算装置から計算負荷の空間的な分布を表す情報を取得するように構成することができる。こうした情報は、例えば、各計算装置からの、計算負荷と、冷却システムが収納装置内部の計算装置の配置を決定することが可能となる情報（例えば、冷却システムがマップを有する場合は計算装置のＩＤ、又は、冷却システムがマップを記憶していない場合は配置座標）との、報告とすることができる。具体的には、冷却システムは、１つ又は複数のＣＲＡＣ又はエアコンユニット、ダクト、方向板（louvers）、及びバルブを含むことができ、空気冷却に加えて水冷却を可能にする装置を含むことができる。有利なことに、計算負荷の空間的な分布（及び、結果として、冷却装置によって分配される電力の空間的な分布）を説明する情報を用いて、今度は、冷却源（例えば、冷気の量）が効率的に割り当てられるように、冷却システムの動作を制御することができ、したがってさらなる電力の節約を生み出すことができる。
【００４６】
別の態様の実施形態には、複数の相互接続された計算装置の中の計算装置であって、各計算装置は指定位置のｎ次元配列のうちの１の次元又は各次元に指定位置を有し、上記ｎ次元のうちの１つの次元の１つの方向が負荷転送方向として割り当てられ、当該計算装置はプロセスを実行するように構成され、上記プロセスは、能力指標取得モジュールにおいて、上記複数の相互接続された計算装置の中の１つ又は複数の計算装置のグループの１のメンバ又は各メンバにおける追加の負荷のための現在の能力の指標を取得するステップと、負荷転送モジュールにおいて、実行中の計算装置から、追加の負荷のための能力があることが示された上記グループのメンバに、負荷を転送するステップと、を含み、上記グループのメンバーシップは、上記１つの次元における上記実行中の計算装置の上記負荷転送方向の側の、上記複数の相互接続された計算装置の中の別の計算装置又は他の計算装置に制限される、計算装置、を含む。例えば、上記グループのメンバーシップは、上記１つの次元の負荷転送方向において実行中の計算装置に対して後続の隣接した指定位置における別の計算装置又は他の計算装置に制限することができる。
【００４７】
こうした計算装置は、サーバ若しくは記憶装置ユニット又は他のコンピュータであってよく、上記プロセスは、コンピュータプログラムとして記憶された命令一式をメモリにロードすること、及び上記命令一式をプロセッサを用いて実行することによって、実行することができる。したがって、上記モジュールは、ソフトウェアを実行しているハードウェア構成要素によって実現される機能的なモジュールであり、上記ソフトウェア自体が、本発明の一実施形態であり得る。本発明を具体化する計算装置には、メモリ、記憶装置、プロセッサ及びＩ／Ｏ装置のうち、１つ又は複数を含むことができる。
【００４８】
本発明の別の態様の実施形態には、相互接続された計算装置のシステムを含み、相互接続された計算装置の上記システムは、本発明を具体化する方法を実行するように構成される。
【００４９】
相互接続された計算装置のこうしたシステムは、負荷の空間的な分布を表す情報を冷却システムに送信するように構成することができ、上記冷却システムは、上記の送信された情報に依存して上記冷却システムの動作を制御するように構成される。
【００５０】
本発明の別の態様の実施形態には、相互接続された計算装置のシステムによって実行されると、相互接続された計算装置の上記システムに、本発明を具体化する方法を実行させ、又は本発明を具体化するシステムとして機能させる、ソフトウェアを含む。
【００５１】
さらに、発明実施形態は、計算装置の分散型ネットワークによって実行されると、計算装置の上記分散型ネットワークに、本発明を具体化するシステムとして機能させる、コンピュータプログラム一式を含むことができる。
【００５２】
さらに、本発明の実施形態には、記憶装置の分散型ネットワークを含む計算装置のシステムによって実行されると、上記システムに本発明を具体化する方法を実行させる、コンピュータプログラム又はコンピュータプログラム一式を含む。
【００５３】
上記態様（ソフトウェア／方法／装置）が別個に論じられたが、１つの態様に関して論じられた態様の特徴及び結果は他の態様に対して等しく適用可能であることを、理解されたい。したがって、方法の特徴が論じられる場合、装置の実施形態が上記特徴を実行するように又は適切な機能性を提供するように構成されたユニット又は装置を含むこと、及び、上記プログラムを実行している計算装置に上記プログラムが上記の方法の特徴を実行させることは、当然のことと解される。
【００５４】
上記の態様のいずれにおいても、種々の特徴を、ハードウェアにおいて、又は１つ若しくは複数のプロセッサ上で実行されるソフトウェアモジュールとして、実装することができる。１つの態様の特徴は、他の態様のいずれにも適用することができる。
【００５５】
本発明はさらに、本明細書において説明される方法のいずれかを実行するためのコンピュータプログラム又はコンピュータプログラム製品と、本明細書において説明される方法のいずれかを実行するためのプログラムを記憶したコンピュータ読取可能媒体とを提供する。本発明を具体化するコンピュータプログラムは、コンピュータ読取可能媒体上に記憶することができ、あるいは、例えば、インターネットウェブサイトから提供されるダウンロード可能なデータ信号などの信号の形式とすることができ、あるいは、任意の他の形式とすることができる。
【図面の簡単な説明】
【００５６】
本発明の好適な特徴を、単に例として、添付図面を参照しながら説明していく。
【図１】本発明を具体化する方法を実行する相互接続された計算装置の指定位置の配列の略図表現である。
【図２】本発明を具体化する方法の一部としてプロセスを実行する計算装置と上記プロセスを実行するために必要とされる計算装置のグループとの略図表現である。
【図３】本発明を具体化する方法のフローチャートである。
【図４】相互接続された計算装置のグリッドにおいて本発明を具体化する方法を実行しているシミュレーションの結果を図示する。
【図５】相互接続された計算装置のグリッドにおいて本発明を具体化する方法を実行しているシミュレーションの結果を図示する。
【図６】相互接続された計算装置のグリッドにおいて本発明を具体化する方法を実行しているシミュレーションの結果を図示する。
【図７】特定の計算装置が非稼働であるシミュレーションの結果を図示する。
【図８】冷却システムを含む随意的な実施形態を図示する。
【発明を実施するための形態】
【００５７】
図１は、本発明を具体化する方法が実行される複数の相互接続された計算装置の指定位置（designated  positions）の配列１００の略図表現である。方法ステップＳ１０１−Ｓ１０２が、複数の相互接続された計算装置の概略図に重なっている。複数の相互接続された計算装置の中の各計算装置１１０は、指定位置の２次元配列１００の各次元に、指定位置を有する。
【００５８】
上記方法ステップは、計算装置の略図表現の上に重ねられ、ステップをつなぐ矢印は、ステップが順番に実行されることを示す。取得するステップＳ１０１と転送するステップＳ１０２とのプロセスは、ｎ次元のうちの１つの次元における一連の指定位置の中の指定位置ごとの１つ又は複数の計算装置によって、個々にかつ順に実行される。図１の具体的な例において、ｎ次元のうちの１つの次元における一連の指定位置は、２次元のうちのｉ次元における位置ｉ＝２及びｉ＝３であり（ここで、指定位置はＳ（ｉ，ｊ）により与えられる）、指定位置ごとの１つ又は複数の計算装置は、指定位置ごとの各計算装置である。
【００５９】
複数の計算装置は、指定位置の配列１００により定義された構造で図示され、指定された配列位置は、形式Ｓ（ｉ，ｊ）で各計算装置内に図示され、ｉはｉ次元における位置を表し、かつｊはｊ次元における位置を表す。負荷転送方向が、ｉ次元における高から低へとなる。
【００６０】
配列トポロジは、データセンターネットワーク内のサーバの実際の物理的トポロジとは独立していてよい。すなわち、図１内の配列１００は、データセンター収納装置（enclosure）内のサーバの物理的配置により定義してもよく、そうでなくてもよい。具体的な例として、必要とされる情報交換機能は、グリッド内の近隣のサーバ間で低帯域通信リンクにより提供することができ、あるいは既存のデータセンター・ネットワーク・インフラストラクチャを通じて提供することができる。この例において、ＨＰＣデータセンターが、発明実施形態を実装するのに特に有益な環境である。近隣のノード間の通信リンクがデータセンターのアーキテクチャにすでに組み込まれているからであり、すなわち、発明実施形態のアルゴリズムが消費する帯域が非常に少なくなり、データセンターの性能への影響が最小限となるであろうからである。
【００６１】
図１の実施形態とその議論との目的のため、図１に示される配列内のサーバの位置は、データセンター収納装置内の物理的配置を反映するように解されるものとする。したがって、図１に図示される配列１００上の互いに近いサーバは、互いに物理的に近くもある。具体的な例として、図１の各列内のサーバは同一ラックに設置することができ、すなわち、これらのサーバは１組の関連する冷却源を有することになる。図１の２次元配列は発明実施形態において具体化され得る多くのトポロジのうちのほんの１つであり、すなわち、図示されたトポロジは単純であり、したがって実装が容易である。
【００６２】
計算装置１１０は、ノード又は計算ノードと呼ぶこともでき、計算装置１１０は、サーバ、又は、計算処理、Ｉ／Ｏ機能を実行し、かつ本発明を具体化するプロセスを実行するように構成された何らかの他の形態の装置であってよい。複数の計算装置は、データが配列１００内の任意の計算装置１１０から配列１００内の任意の他の計算装置１１０へと転送可能であるように、通信リンクを介して相互接続される。こうした転送は、１つの計算装置１１０から別の計算装置１１０へ直接とすることができ、あるいは中間の計算装置を介することができる。相互接続は、有線又は無線とすることができる。計算装置１１０は、例えば、有線接続を介して配列内の近隣の装置に接続することができる。各計算装置１１０は、計算装置１１０がプロセスを実行するとき、グループ２００を構成する計算装置に対して直接的な有線接続を有し得る。
【００６３】
プロセスを実行することには、複数の計算装置の中の１つ又は複数の計算装置のグループ２００の１のメンバ又は各メンバにおける、追加の負荷のための、現在の能力の指標を取得する、取得するステップと、追加の負荷のための能力があると示された上記グループのメンバに負荷を転送する、転送するステップとを含む。グループ２００のメンバーシップは、１つの次元において、実行中の（executing）計算装置１１０の負荷転送方向の側の１つ又は複数の計算装置に制限される。図１の例において、グループのメンバーシップは、ｉ次元の負荷転送方向において、実行中の計算装置から後続の隣接した位置にある計算装置に、かつｊ次元において、実行中の計算装置についての１カ所の最大限の範囲内の計算装置に、制限される。図１において、実行中の計算装置のグループメンバーシップは、実行中の計算装置１１０の負荷転送方向（左）側に接続している線により表される。計算装置１１０の実行は、計算装置内部に図示されているプロセスステップにより示される。ｉ次元の負荷転送方向において最後の位置にある計算装置は、上記プロセスを実行しない。
【００６４】
計算装置間の線は、各計算装置Ｓ（ｉ，ｊ）が、その左手の近隣のＳ（ｉ−１，ｊ−１）、Ｓ（ｉ−１，ｊ）及びＳ（ｉ−１，ｊ＋１）の計算作業負荷に関する情報を有するという事実を表す。したがって、この特定の実施形態において、計算装置Ｓ（２，１）はサーバＳ（１，１）及びＳ（１，２）内の作業負荷に関する情報を利用することができ、この情報交換を可能にする通信リンクが破線により表されている。同様にして、計算装置Ｓ（２，２）は、計算装置Ｓ（１，１）、Ｓ（１，２）及びＳ（１，３）内の作業負荷に関する情報を利用することができ、この場合、必要な通信リンクは点線により表されている。
【００６５】
一連の指定位置は、始点から終点まで負荷転送方向に沿って命令されるという意味の一連である。指定位置は、計算装置１１０がプロセスを実行する時間的順序に、必ずしも対応又は相関しない。しかしながら、いくつかの実施形態において、指定位置は、計算装置１１０がプロセスを実行する時間的順序に対応又は相関することとすることができ、したがって各繰り返し又はサイクルにおいて、プロセスは、最初に、負荷転送方向において（順に）１番目の位置に指定された計算装置１１０により実行され、次いで、最後から２番目の位置まで順に各々の後続の位置にある計算装置１１０により実行される。時間的順序は負荷転送方向に従ってよく、上記時間的順序において一連の指定位置がアクセスされ（visited）、上記一連の指定位置において計算装置１１０がプロセスを実行し、したがって、１番目の位置は、負荷転送方向における１つの次元の始まりにあり、プロセスを実行する計算装置１１０の位置は、最後から２番目の指定位置まで負荷転送方向に沿って進む。２次元配列において、負荷転送方向において同一場所に配置された（co-located）計算装置１１０は、残りの次元における上記計算装置の位置によって決定される順序でプロセスを実行することができ、例えば、残りの次元の始まりから終わりまで所定方向において進めることができる。各々の追加の次元について、追加の次元以外においては同一場所に配置された計算装置１１０は、追加の次元における上記計算装置の位置によって決定される順序でプロセスを実行することができ、例えば、追加の次元の始まりから終わりまで所定方向において進めることができる。上記の時間的順列のいずれも、逆順に活用することもできる。
【００６６】
図１内の矢印は、計算装置１１０がプロセスを実行する順序を示す。上記順序はｉ次元の負荷転送方向において１番目の位置から最後から２番目の位置まで順番に進み、ここで計算装置はｉ次元において同一場所に配置されｊ次元において高から低まであることが、分かるであろう。方法についての１回の繰り返しを、図１に図示する。随意的に、計算装置１１０は１回より多くの繰り返しを行うことができる。
【００６７】
プロセスを実行することは、トランザクションを仲介し、起動し、連係させ、又は推進しているものと見なすことができる。上記プロセスには、負荷を転送する計算装置１１０により実行されるステップを含み、上記計算装置１１０は、転送者（transferer）、提供者（donor）、発信元計算装置、又は実行中の計算装置と呼ぶこともできる。提供者により実行されるプロセスに加えて、上記方法はさらに、潜在的負荷受信者又は負荷受信者候補である１つ又は複数のグループメンバにより実行されるステップを含む。例えば、グループメンバにより実行されるステップには、グループメンバにおける追加の負荷のための現在の能力の指標を提供者に送信することと、グループメンバが負荷の受信者として提供者により選択された場合、提供者から負荷を受信することと、を含むことができる。例えば、提供者は、負荷転送に先行して、負荷受信者として選択されたグループメンバ２００に通知することができる。
【００６８】
上記取得するステップは、グループメンバから現在の能力の指標を受信することを単に含む。随意に、上記取得するステップはさらに、グループメンバ２００に対して要求又は何らかの他の形式のトリガを発行して指標を要求することを含むことができる。
【００６９】
いくつかの計算装置において、計算負荷は電力消費に比例することが想定され、したがって現在の計算負荷は電力消費率の指標から導出可能である。ゆえに、現在の能力の指標は、電力消費率の指標を含むことができ、あるいは電力消費率の指標の形式で提供することができる。ＳＰＥＣｐｏｗｅｒ_ｓｓｊ２００８ベンチマークが、電力消費率の指標から計算負荷を導出するために、発明実施形態においてプロセスを実行する計算装置（実行中の計算装置）により活用することができる、負荷‐電力特性を提供する。別法として、現在の能力の指標を取得される計算装置２００は、計算装置２００自体が、ＳＰＥＣｐｏｗｅｒ_ｓｓｊ２００８ベンチマークなどの負荷‐電力特性を活用して計算装置２００自体の現在の計算負荷を決定して、特定の計算装置にレポートすることができる。ＳＰＥＣｐｏｗｅｒ_ｓｓｊ２００８ベンチマークは、現在の能力（又は現在の負荷）を電力消費の関数として算出するための関係又は関数の例示である。実施形態は、上記特定のベンチマークに限定されない。
【００７０】
言葉使いの一貫性のため、本明細書において、計算装置が一回で扱うことができる最大計算負荷を上記装置の「最大能力」であると解し、ある時点で扱われている計算負荷を「現在の計算負荷」であると解するものとする。ここで、上記時点は、現在の能力の指標を生成する時点である。計算装置の「現在の能力」は、最大能力と現在の計算負荷との差分である。現在の能力はさらに、「現在の計算負荷に対して追加の計算負荷を実行するための現在の能力」と呼ぶことができる。
【００７１】
現在の能力は、指標を取得された計算装置の最大能力の一部分として定量化することができ、あるいは計算負荷の絶対値として定量化することができる（上記絶対値は、電力消費の指標であるか、又は任意の他の形式の指標である）。実行中の計算装置自体は、グループ内の１の計算装置又は各計算装置の最大能力を知ることができ、したがって現在の能力又は現在の計算負荷のうち一方の指標は、他方が算出／取得されることを可能にする。別法として、現在の能力の指標は、以下の、最大能力、現在の能力、現在の計算負荷のうち、２つを含むことができ、３つ目が算出されることを可能にすることができる。
【００７２】
プロセスを実行している計算装置１１０は、計算装置のグループ２００の中の受信者計算装置に対して（計算装置１１０自体から）計算負荷の複数の転送を行うことが、あり得る。別法として、プロセスを実行している計算装置１１０は、受信者計算装置に対して計算負荷の単数の転送を行うことが、あり得る。転送は、グループ２００のメンバが現在の能力を有する場合に限り実行することができ、ゆえに、グループメンバのいずれも能力を有していない（すべてのグループメンバが、ゼロの能力を有する又は非稼働であることを示す）場合、転送は行われない。
【００７３】
負荷転送を指示すべきか否か、及びどの負荷転送を指示すべきかを決定する際に負荷転送決定ユニットにより実行される正確なアルゴリズムは、実施形態の実装の詳細に依存することになる。有利なことに、アルゴリズムを選択することができ、上記アルゴリズムは、複数の相互接続された計算装置のより効率の優れた動作につながり、又は一定品質のサービス要件を満たす。配列１００の終わりからその他への負荷の移行に関連する技術的利点は、どのグループメンバ２００が負荷を受信することになるのかとグループメンバ２００が受信することになる負荷の量とを選択するための、具体的な原理に依存しない。しかしながら、特定の技術的効果が、負荷受信者の選択と負荷転送の大きさとに特定のアルゴリズムを適用することによって強調されることになるということが、あり得る。例えば、プロセスを実行している計算装置１１０は、追加の負荷のための能力を有する計算装置のうち、計算装置のグループ２００内に１つ又は複数の計算装置が存在する場合に、負荷転送を行うということがあり得、負荷受信者は、追加の負荷のための能力を有する上記１つ又は複数の中から、追加の負荷のための最小又は最大の能力を有する計算装置として選択することができる。
【００７４】
いったん能力指標を取得すること及び負荷を転送すること（又は負荷を転送すべきか否かを少なくとも決定すること）のプロセスが計算装置１１０により実行されたら、上記プロセスは、別の計算装置１１０により実行される。上記プロセスの実行をちょうど終えた計算装置１１０は、（図１内で矢印により表された）所定順序で次の計算装置１１０に通知を送信して上記プロセスの実行を開始させることができる。グループ２００のメンバーシップは、各々の実行中の計算装置１１０について定義され、しかしながら、もちろん、１つより多くの実行中の計算装置１１０について定義されたグループ２００間で部分的な又は全面的な重複が存在し得る。図１の例において、上記方法の全面的な繰り返しが表され、ｉ次元の負荷転送方向において１番目の位置から最後から２番目の位置までにある各計算装置１１０が、プロセスを一度実行する。上記方法は、プロセスについての１つより多くの繰り返しを含むことができる。繰り返しの間に、所定の中断があってよい。繰り返しは、前の繰り返しの完了、前の繰り返しの開始若しくは終了からの所定時間の経過、及び／又は上記の複数の相互接続された計算装置における所定量の新しい負荷の到達によって、引き起こすことができる。
【００７５】
プロセスが単一の繰り返し内で計算装置により実行される順序は、順序を複数の計算装置１１０の間で規定することが可能となる方式で、計算装置１１０による座標又はアドレスに従うものとすることができる。具体的な実施形態において、上記順序は、計算装置の物理的配置に基づき、したがって上記順序は、第１の方向において収納装置の一端から別端へと実行され、そして、第１の方向において同一場所に配置された計算装置について、別の順序が規定され、例えば、第２の（直交する）方向において収納装置の片側から別の側へと実行され、同様にして、第１及び第２の方向の双方において同一場所に配置された計算装置について、さらなる順序が規定され、例えば、第３の（互いに直交する）方向において収納装置の片側から別の側へと実行される。
【００７６】
図１の例において、各計算装置１１０についてのグループ２００は、２つの次元のうち、一方の次元の負荷転送方向への配列内の近隣の位置にあり、かつ、他方の次元において計算装置の１つの位置の最大の範囲内にある、計算装置からなる。プロセスを実行している計算装置により能力指標を取得されたグループのメンバは、上記計算装置に関連するグループと呼ぶことができる。グループと近隣区域とは、区別せずに用いることができる。プロセスを実行することは、アルゴリズムを実行することであると見なすことができ、上記アルゴリズムは、取得すること及び転送することに加えて、意思決定命令を含むことができる。アルゴリズムはさらに、全体的に配列について、全体と見なすことができ、各々の実行中の計算装置を順にアクセスするように見なされることができる。
【００７７】
図１の例における例示的なトポロジを参照すると、配列１００内の各計算装置Ｓ（ｉ，ｊ）１１０は、最大でサーバＳ（ｉ−１,ｊ−１）、Ｓ（ｉ−１,ｊ）及びＳ（ｉ−１,ｊ＋１）から成る、関連するグループ２００又は近隣区域を有し、こうしたグループ２００の図が図２に示される。これは、図１の例のグループ２００に含まれるものについての原理を用いた最大グループサイズである。なぜならば、ｊ次元の端部において、グループ２００ごとに１つ少ない計算装置が存在することになるためである。上記アルゴリズムは、情報交換という点で効率が良い。なぜならば、その最大限においてさえ、３つのグループメンバからの現在の能力の指標しか必要とされないからである。
【００７８】
図２はさらに、各計算装置１１０における負荷の表現を含む。グループメンバ２００における負荷をＬ１〜Ｌ３により表し、実行中の計算装置における負荷をＬ０により表す。負荷を転送すべきかどうか、どれほどの負荷を転送すべきか、及びどの受信者に転送すべきかを決定する例示的なアルゴリズムを、図２を参照しながら以下に提示していく。
【００７９】
ｉ次元におけるＭ個の位置とｊ次元におけるＮ個の位置とを有する２次元配列において、ｉ＞１ごとについて（すなわち、ｉ次元の負荷転送方向において１番目の位置から最後から２番目の位置まで）、１＜ｉ≦Ｍかつ１≦ｊ≦Ｎであるような各計算装置Ｓ（ｉ，ｊ）は、配列１００内の各列に沿って順にアクセスされる。計算装置Ｓ（ｉ，ｊ）は、グループ２００内の作業負荷値Ｌ１、Ｌ２及びＬ３を利用でき、計算装置Ｓ（ｉ，ｊ）がアクセスされるたびに、上記アルゴリズムは、Ｌｍｉｎ＝Ｌ（Ｓｍｉｎ）が近隣区域２００の中で最小の負荷であり、かつ、Ｌｍｉｎ＜１００％であるように、計算装置Ｓ（ｉ−１,ｊ−１）、Ｓ（ｉ−１,ｊ）及びＳ（ｉ−１,ｊ＋１）の中から計算装置Ｓｍｉｎを識別する。換言すると、
Ｓｍｉｎ＝Ｓ｜Ｌｍｉｎ＝Ｌ（Ｓ）≦｛Ｌ１，Ｌ２，Ｌ３｝
である。
【００８０】
別法として、上記アルゴリズムはさらに、Ｌｍａｘ＝Ｌ（Ｓｍａｘ）がグループ２００の中で最大の負荷であり、かつ、Ｌｍａｘ＜１００％であるように、サーバＳ（ｉ−１,ｊ−１）、Ｓ（ｉ−１,ｊ）及びＳ（ｉ−１,ｊ＋１）の中から計算装置Ｓｍａｘを識別することによって動作することができ、
Ｓｍａｘ＝Ｓ｜Ｌｍａｘ＝Ｌ（Ｓ）≧｛Ｌ１，Ｌ２，Ｌ３｝かつＬｍａｘ＜１００
である。
【００８１】
来たる段落において、アルゴリズムは、実行中の計算装置Ｓ（ｉ，ｊ）のグループ２００の中で最小負荷を有する計算装置Ｓｍｉｎを識別することによって動作することが、想定されるものとする。実行中の計算装置１１０（あるいは、より詳細には、上記計算装置により実行されているアルゴリズム又は命令）は次いで、上記実行中の計算装置１１０自体の負荷を計算装置Ｓｍｉｎへ移行することによって、計算装置Ｓｍｉｎを１００％の活用に持ち込むことを試み、すなわち、計算装置Ｓ（ｉ，ｊ）内の負荷Ｌ０が、計算装置Ｓｍｉｎ内の利用可能な能力Ｃ＝１００−Ｌｍｉｎより小さい場合、負荷Ｌ０は、計算装置Ｓ（ｉ，ｊ）内の負荷がゼロになるまで、Ｓ（ｉ，ｊ）からＳｍｉｎへ移行される。したがって、実行中の計算装置１１０は、停止若しくは休止され、又は何らかの他の低電力設定へ入ることができる。計算装置Ｓ（ｉ，ｊ）内の負荷Ｌ０がＳｍｉｎ内の利用可能な性能Ｃより大きい場合、負荷は、計算装置Ｓｍｉｎ内の負荷が１００％になるまで、Ｓ（ｉ，ｊ）からＳｍｉｎへ移行される。
【００８２】
図３は、図２の計算装置Ｓ（ｉ，ｊ）により実行される例示的なプロセス又はアルゴリズムを用いたフロー図を示す。ステップＳ３０１において、計算装置Ｓ（ｉ，ｊ）は、プロセスの実行を開始すべきであることを通知される。点で描いたボックス内のステップＳ３０２からＳ３０６までの目的は、グループメンバ２００から現在の能力の指標を取得すること、及び上記グループメンバのうちどれが追加の負荷のための最大の能力を有するのかを定めることである。この例において、現在の能力及び負荷の指標は、全体の能力のパーセンテージにより表され、ここで、１００という負荷は、フルの能力で実行されている計算装置の指標である。フルの能力のパーセンテージとして最大の現在の能力を有する、グループ内の計算装置が、負荷転送受信者として選択される。特定の実装において、すべての計算装置が同一の絶対的な能力を有することが想定される場合があり、ゆえに、追加の負荷のための最大の能力を有する、グループ２００内の計算装置は、最小の現在の負荷Ｌｍｉｎを有する計算装置Ｓｍｉｎでもある。
【００８３】
ステップＳ３０２において、指定位置Ｓ（ｉ−１，ｊ−１）内の計算装置（利便性のため、計算装置はその指定位置により参照することができることに、留意されたい）が計算装置Ｓｍｉｎとして識別され、変数Ｌｍｉｎが値Ｌ１を割り当てられ、値Ｌ１は現在の能力の指標としてＳ（ｉ−１，ｊ−１）から取得される。ステップＳ３０３において、計算装置Ｓ（ｉ−１，ｊ）から現在の能力の指標が取得され、計算装置Ｓ（ｉ−１，ｊ）の負荷は変数Ｌ２を割り当てられる。Ｌ２は、変数Ｌｍｉｎとして記憶された値と比較される。Ｌ２がＬｍｉｎより小さい場合、ステップＳ３０４において、上記フローがステップＳ３０５へと続く前に、Ｌｍｉｎの値がＬ２に更新され、計算装置Ｓ（ｉ−１，ｊ）がＳｍｉｎとして識別される。Ｌ２がＬｍｉｎより大きい場合、フローはＳ３０５へと続く。
【００８４】
ステップＳ３０５において、ステップＳ３０３の取得及び比較プロセスが、計算装置Ｓ（ｉ−１，ｊ＋１）について繰り返され、Ｌ３がＬｍｉｎより少ない場合、ステップＳ３０６において、Ｌｍｉｎが値Ｌ３を割り当てられ、かつ、計算装置Ｓ（ｉ−１，ｊ＋１）がＳｍｉｎとして識別されるように、更新が実行される。取得、比較及び更新は、必要に応じて、稼働している各グループメンバについて続く。
【００８５】
ステップＳ３０７において、計算装置Ｓｍｉｎ内の利用可能な能力Ｃが、Ｃ＝１００−Ｌｍｉｎとして算出される。随意的なステップとして、ステップＳ３０７ｂにおいて、計算装置Ｓｍｉｎ内の利用可能な能力Ｃが０より大きいかどうかが確認される。そうである場合、フローはステップＳ３０８へ進む。そうでない場合、負荷はまったく転送されず、所定順序における次の計算装置が通知を受け、プロセスの実行を開始する。
【００８６】
ステップＳ３０８において、能力Ｃは計算装置Ｓ（ｉ，ｊ）内の負荷Ｌ０と比較され、計算装置Ｓｍｉｎ内の利用可能な能力Ｃが負荷Ｌ０より大きい場合、ステップＳ３０９において、負荷Ｌ０は計算装置Ｓｍｉｎに移行される。したがって、ステップＳ３１０において、計算装置Ｓ０内で実行されている負荷はゼロとなり、一方、計算装置ＳｍｉｎはここでＬｍｉｎ＋Ｌ０に等しい負荷を有する。計算装置Ｓ（ｉ，ｊ）において実行される負荷がまったくなくなるため、ステップＳ３１１において、計算装置Ｓ（ｉ，ｊ）は停止され、休止され、又は何らかの他の低電力設定に入る。エネルギー消費が、削減された電力／性能状態へとＳ（ｉ，ｊ）を入らせてエネルギー消費を削減することによって、削減される。
【００８７】
能力Ｃが負荷Ｌ０より小さい場合、フローはステップＳ３１２へと進み、ステップＳ３１２において、利用可能な能力Ｃに等しい負荷が計算装置Ｓ（ｉ，ｊ）から計算装置Ｓｍｉｎへと移動され、計算装置Ｓｍｉｎは今度は１００％の能力において活用されることになり、計算装置Ｓ（ｉ，ｊ）は負荷Ｓ'０＝Ｌ０−Ｃを有することになる。フローはステップＳ３１４へと続き、ここで、アルゴリズムは、所定順序で（例えば、図１の矢印を参照）次の計算装置へと続き、あるいは次の計算装置によって実行される。
【００８８】
図４乃至図６は、２次元配列のうち１つの次元の中の負荷転送方向における、１番目の位置から最後から２番目の位置までの各計算装置において（これらの計算装置を「実行中のサーバ」と呼ぶ）、繰り返しベースで図３の例示的なプロセスを実行するシミュレーションの結果を図示する。シミュレーションにおいて、負荷転送方向はｉ次元における高から低まで（すなわち、図の右から左まで）である。最初に、図４は、データセンター内の負荷分布のスナップショットを示す。２０００台のサーバの配列がサイズ４０×５０の配列又はグリッド内に配置され、図内の四角形要素の各々がランダムな負荷を有するサーバを表しながら、各サーバにより消費された電力が、図の右側の目盛りにより指定されるとおりに各要素の濃淡によって表される。負荷はランダムに分配され、したがって配列の任意の２つの区画は、区画配置に関わりなく、高負荷のサーバと低負荷のサーバとの比率が類似しやすいようになることが、分かるであろう。さらに、任意のサーバは、最小値から最大値までに及ぶいかなる値の負荷をも有する可能性が等しくあり、すなわち、負荷の一様な分布が存在する。この具体的な例において、個々のサーバにより消費される電力は、１００％の負荷における２６０Ｗから負荷ゼロにおける７６Ｗまでに及び、一方、２０００台のサーバにより消費される合計電力は、シミュレーションにおいて使用された特定の負荷分配について３２１．７ｋＷである。この配列におけるサーバの分布は、実際のデータセンター内の物理的な分布に関連してよく、例えば、配列の左手側にあるサーバは、データフロアの特定領域内に集中させられているラックのグループの中に配置されてよい。
【００８９】
図５は、各々の実行中のサーバが順に１０回プロセスを実行した後、すなわち、１０回の繰り返し又はサイクルの後の、サーバにおける電力分布のスナップショットを示す。負荷が、多孔質媒体における透過によく似たように、配列の左手側に向かって移行されていることが、観察されるであろう。この段階において、電力消費における１０％の削減を、使用されていないサーバを停止することによって達成することができる。
【００９０】
図６は、２５回の繰り返し又はサイクルの後の、別の電力分布スナップショットを示す。グリッドの左手側にフルの負荷で動作しているサーバが集中しており、一方、残りのサーバはまったく負荷を有していない。まったく負荷を有していないサーバを停止することによって、２５％の電力消費における削減を達成することができる。
【００９１】
さらに、冷却装置などの支援機器によるエネルギー消費における削減を、達成することができる。データセンターの特定領域内にフルに負荷をかけられたサーバが集中していることは、冷却源をこの領域に割り当てることを可能にすると同時に、別の領域において停止又は大きく削減することを可能とし、それによりさらなる電力節約が可能となることを、意味する。この意味において、このアルゴリズムにより達成される空間的な負荷分配は（計算装置の空間的配置と指定位置との間に相関がある場合）、負荷の全体が所望の物理的領域内に集中されるため、最適である。
【００９２】
アルゴリズムの単純さと必要とされる帯域の小ささとが、実行時間の短さを可能にし、したがって必要な負荷移行は、入ってくるサービス要求が到着する速さよりもかなり短い時間スケールで実施することができる。さらに、図３において提示された上記アルゴリズムなどの、本発明を具体化する方法は、故障したサーバの存在下で非常に堅牢である。図７は、（ランダムに分散された）１０％のサーバが故障しているときの２５回の繰り返しの後の結果的に生じる空間的負荷分布を示す。欠陥のあるサーバは、図７において黒い四角形により表される。負荷についての最適に近い分布が、高い割合での故障サーバの存在下でもなお達成されることが、分かるであろう。
【００９３】
図８は、サーバグリッド１００が負荷の空間的分布に関する情報をエアコン制御システム４００に送信することによって冷却システムと相互作用する、別の最適な実施形態を示す。この制御システムは、データフロアでの負荷の分布に応じて、冷却源の分布（例えば、ＣＲＡＣユニット４０１により供給されるエアフロー）を調節する。こうした実施形態は、欧州特許出願公開第２６１５８９７号に提示されているものなどの、負荷の空間的分布に応じた冷却源割り当てメカニズムを用いるデータセンターにおいて特に有効であろう。
【符号の説明】
【００９４】
１００  配列／グリッド
１１０  計算装置
２００  グループ
４００  エアコン制御システム
４０１  ＣＲＡＣユニット
【図１】
2015069640.tif 000003
【図２】
2015069640.tif 000004
【図３】
2015069640.tif 000005
【図８】
2015069640.tif 000006
【図４】
2015069640.tif 000007
【図５】
2015069640.tif 000008
【図６】
2015069640.tif 000009
【図７】
2015069640.tif 000010