"動的な作業負荷調整によってデータセンタの電力消費を最適化する方法であって、前記方法は、コンピュータシステムのプロセッサが、前記データセンタからのインプットを受信するステップであって、前記データセンタは少なくとも一つのデバイスを包含し、前記インプットは物理デバイスマップおよび現行アプリケーションマップを含み、前記物理デバイスマップは、前記データセンタ内の前記少なくとも一つのデバイスの三次元位置を特定し、前記現行アプリケーションマップは、前記データセンタのアプリケーションプログラムが、前記少なくとも一つのデバイスにどのようにバーチャルにマップされているか、現在の作業負荷が前記アプリケーションプログラムの間にどのように割り振られているかを明示している、前記受信するステップと、前記プロセッサが前記データセンタに対する少なくとも一つの作業負荷ソリューション候補を生成するステップであって、前記少なくとも一つの作業負荷ソリューション候補の各作業負荷ソリューション候補は、前記少なくとも一つのデバイスへの前記アプリケーションプログラムのそれぞれのバーチャルマッピングおよび前記アプリケーションプログラムの間へのそれぞれの作業負荷配分を規定する、それぞれのアプリケーションマップを表している、前記生成するステップと、前記プロセッサが温度モデルを用いて前記各作業負荷ソリューション候補に対するそれぞれの温度プロフィールを計算するステップであって、前記それぞれの温度プロフィールに関連付けられた前記データセンタのそれぞれの最高温度に基づいて、前記各作業負荷ソリューション候補それぞれの電力コストが算定される、前記計算するステップと、前記プロセッサが前記データセンタのパフォーマンス要求事項に対するそれぞれのパフォーマンスプロフィールを評価するため、前記各作業負荷ソリューション候補に対する前記それぞれのパフォーマンスプロフィールを計算するステップであって、前記それぞれのパフォーマンスプロフィールに基づいて、前記各作業負荷ソリューション候補それぞれの移行コストが算定される、前記計算するステップと、前記プロセッサが前記データセンタの作業負荷を、前記現在の作業負荷配分から最適作業負荷ソリューションに動的に調整するステップであって、前記最適作業負荷ソリューションは、前記それぞれの電力コストと前記それぞれの移行コストとの最低合計値を有する作業負荷ソリューション候補である、前記調整するステップと、を含む方法。前記動的に調整するステップは、前記各作業負荷ソリューション候補それぞれの全体的コストを見積もるステップであって、前記それぞれの全体的コストは、前記それぞれの電力コストおよび前記それぞれの移行コストの和であり、前記それぞれの電力コストは、前記各作業負荷ソリューション候補を用いて前記データセンタの動作温度以内のサービス行う際に前記データセンタによって費消される電力量から計算され、前記それぞれの移行コストは、前記データセンタの前記作業負荷を前記現在の作業負荷配分から前記各作業負荷ソリューション候補に調整する間のパフォーマンス劣化から計算される、前記見積もるステップと、前記少なくとも一つの作業負荷ソリューション候補から最適作業負荷ソリューションを選定するステップであって、前記最適作業負荷ソリューションは、前記見積もりステップにおいて最低の全体的コストを有する、前記選定するステップと、前記最適作業負荷ソリューションを、展開のため前記コンピュータシステムに転送するステップと、を含む、請求項1に記載の方法。前記それぞれの温度プロフィールを前記計算するステップは、前記データセンタの前記温度モデルが利用可能でないことを判定するステップであって、前記温度モデルが、前記受信されたインプットから前記データセンタの現在の温度プロフィールを計算することを可能にする、前記判定するステップと、前記データセンタの前記物理デバイスマップ、デバイス温度プロフィールおよびデバイス設定から、前記データセンタの前記温度モデルを生成するステップであって、前記デバイス温度プロフィールは、前記データセンタの前記少なくとも一つのデバイスの各デバイスそれぞれの吸気口で測定されたそれぞれの温度を表し、前記デバイス温度プロフィールの各デバイス温度プロフィールは、前記デバイス設定の各デバイス設定に関連付けられており、前記各デバイス設定は前記各デバイスそれぞれの識別子、およびidleおよびbusyから成る群から選定された、前記各デバイスそれぞれの動作ステータスを含む、前記生成するステップと、前記温度モデルを前記各作業負荷ソリューション候補に適用して前記それぞれの温度プロフィールを生成するステップと、を含む、請求項1に記載の方法。前記それぞれのパフォーマンスプロフィールを前記計算するステップは、秒あたり命令数で、作業負荷Wの実行速度を算定するパフォーマンス予測モデルを生成するステップであって、前記速度はIPSInstructionsPerSecondWとして表記され、前記速度は、として計算され、式中frequencyは前記少なくとも一つのデバイスの動作周波数を示し、CPICyclesPerInstructionWは前記作業負荷Wの命令当たりのサイクル数を表しており、CPIcoreは前記デバイスのコア内で命令の実行に費やされる命令当たりのサイクル数を表し、CPIcoreは、CPIcoref1MPI×Mlatency×BFf1として計算され、式中CPImemoryは前記命令を実行するため前記デバイスのメモリにアクセスする際に費やされる命令当たりのサイクル数を表し、CPImemoryは、CPIcoref1MPI×Mlatency×f2/f1×BFf1として計算され、f1は前記コアの第一動作周波数であり、f2は前記メモリの第二周波数であり、MPIは命令当たりのメモリアクセスの回数であり、Mlatencyはメモリの待ち時間であり、BFはブロック因子である、前記生成するステップと、前記パフォーマンス予測モデルを前記各作業負荷ソリューション候補に適用して前記それぞれのパフォーマンスプロフィールを生成するステップと、を含む、請求項1に記載の方法。前記それぞれのパフォーマンスプロフィールを前記計算するステップは、サーバ設定sおよび第i記憶デバイス設定diを有するプラットフォーム上で、作業負荷Wの実行速度を秒あたりの命令数で算定するパフォーマンス予測モデルを生成するステップであって、前記速度はIPSWs,diとして表記され、前記速度は、として計算され、式中sfrequencyは前記サーバ設定s中に表されるサーバの動作周波数を示し、CPIWは前記プラットフォーム中の前記作業負荷Wに対する命令当たりのサイクル数を表しており、ΣiCPIWs,di=ΣiCPIservers,diCPIstorages,diであり、CPIservers,diは、前記作業負荷Wが、ディスクへの一切のアクセスなくして全てメモリから実行されたとき、前記プラットフォームにおいてサーバによって費消されたサイクルの第一数を表し、CPIservers,diはCPIserversとして計算され、CPIstorages,diは,前記プラットフォームにおいて前記作業負荷Wが実行される際に、前記プラットフォーム中の記憶デバイスによって費消されるサイクルの第二数を表し、CPIstorages,diは,DIOPI×AvgLUNlatencydiW×DBFとして計算され、DIOPIは、命令当たりのディスク入力/出力の回数を示し、AvgLUNlatencydiWは、前記作業負荷Wに対する前記第i記憶デバイス設定di中のそれぞれの論理ボリュームユニットの待ち時間の平均を示し、DBFはディスクブロック因子である、前記生成するステップと、前記パフォーマンス予測モデルを前記各作業負荷ソリューション候補に適用して前記それぞれのパフォーマンスプロフィールを生成するステップと、を含む、請求項1に記載の方法。内部に具現されたコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読プログラムコードは、コンピュータに実行されたとき、請求項1~5のいずれかに記載の、動的な作業負荷調整によってデータセンタの電力消費を最適化する前記方法を遂行する命令を包含する、コンピュータプログラム製品。プロセッサと前記プロセッサに連結されたコンピュータ可読のメモリユニットとを含むコンピュータシステムであって、前記コンピュータ可読メモリユニットは、前記プロセッサに実行されたとき、請求項1~5のいずれかに記載の、動的な作業負荷調整によってデータセンタの電力消費を最適化する前記方法を実施する命令を包含する、コンピュータシステム。コンピュータインフラストラクチャをサポートするプロセスであって、前記プロセスは、コンピューティングシステム中に、コンピュータ可読コードを生成、統合、ホスティング、維持、および展開することの少なくとも一つを行うための少なくとも一つのサポートサービスを提供するステップを含み、前記コードは、前記コンピューティングシステムと相まって、請求項1~5のいずれかに記載の、動的な作業負荷調整によってデータセンタの電力消費を最適化する前記方法を遂行する能力を有する、プロセス。従来型の電力消費最適化法は、デバイスの最大または銘板電力仕様を前提として、デバイスの物理的配置およびピーク温度だけに焦点を当てているが、デバイスの稼働率を考慮していないので、従来型の最適化法では、データセンタの作業負荷に沿って動的且つ継続的に電力消費を最適化することができない。本発明の一つの実施形態によれば、動的に作業負荷を調整することによってデータセンタの電力消費を最適化する方法は:データセンタからのインプットを受信するステップであって、データセンタは少なくとも一つのデバイスを包含し、上記インプットは物理デバイスマップおよび現行アプリケーションマップを含み、物理デバイスマップは、データセンタ内の上記少なくとも一つのデバイスの三次元位置を特定し、現行アプリケーションマップは、データセンタのアプリケーションプログラムが、上記少なくとも一つのデバイスにどのようにバーチャルにマップされているか、現在の作業負荷がアプリケーションプログラムの間にどのように割り振られているかを明示している、上記受信するステップと;データセンタに対する少なくとも一つの作業負荷ソリューション候補を生成するステップであって、上記少なくとも一つの作業負荷ソリューション候補の各作業負荷ソリューション候補は、上記少なくとも一つのデバイスへのアプリケーションプログラムのそれぞれのバーチャルマッピングおよびアプリケーションプログラムの間へのそれぞれの作業負荷配分を規定する、それぞれのアプリケーションマップを表している、上記生成するステップと;温度モデルを用いて上記各作業負荷ソリューション候補に対するそれぞれの温度プロフィールを計算するステップであって、それぞれの温度プロフィールに関連付けられたデータセンタのそれぞれの最高温度に基づいて、上記各作業負荷ソリューション候補それぞれの電力コストが算定される、上記計算するステップと;データセンタのパフォーマンス要求事項に対するそれぞれのパフォーマンスプロフィールを評価するため、上記各作業負荷ソリューション候補に対するそれぞれのパフォーマンスプロフィールを計算するステップであって、それぞれのパフォーマンスプロフィールに基づいて、上記各作業負荷ソリューション候補それぞれの移行コストが算定される、上記計算するステップと;データセンタの作業負荷を、現在の作業負荷配分から最適作業負荷ソリューションに動的に調整するステップであって、最適作業負荷ソリューションは、それぞれの電力コストとそれぞれの移行コストとの最低合計値を有する作業負荷ソリューション候補である、上記調整するステップと;を含む。本発明の一つの実施形態によれば、コンピュータプログラム製品は、コンピュータ可読プログラムコードを具現するコンピュータ可読メモリユニットを含む。このコンピュータ可読プログラムコードは、コンピュータシステムのプロセッサによって実行されたとき、動的な作業負荷調整によってデータセンタの電力消費を最適化する方法を実施する命令を包含する。本発明の一つの実施形態によれば、コンピュータシステムは、プロセッサとプロセッサに連結されたコンピュータ可読メモリユニットとを含み、コンピュータ可読メモリユニットは、プロセッサによって実行されたとき動的な作業負荷調整によってデータセンタの電力消費を最適化する方法を実施する命令を包含する。本発明の一つの実施形態によれば、コンピュータインフラストラクチャをサポートするプロセスが提供され、上記プロセスは、コンピューティングシステム中に、コンピュータ可読コードを生成、統合、ホスティング、維持、および展開することの少なくとも一つを行うための少なくとも一つのサポートサービスを提供するステップを含み、該コードは、コンピューティングシステムと相まって、動的な作業負荷調整によってデータセンタの電力消費を最適化する方法を実施する能力を有する。単なる例示として、添付の図面を参照しながら本発明の実施形態を以下に説明する。図1は、本発明の実施形態による、動的な作業負荷調整によってデータセンタの電力消費を最適化するためのシステム10を示す。システム10は、データセンタ11、インプット20、電力オプチマイザ30、およびアウトプット80を含む。インプット20およびアウトプット80はコンピュータ可読記憶媒体に格納される。コンピュータ可読記憶媒体の詳細につては、後記の図9のメモリデバイス94、95の説明を参照されたい。本明細書において、用語電力は、電気もしくは電気エネルギまたはその両方と互換的に用いられる。データセンタ11は、物理的な部屋と、その物理的な部屋に所在し作動するハードウェアおよびソフトウェアとの集合として定義される。本明細書において、用語ハードウェア、デバイス、設備機械装置、リソースは互換的に用いられ、サーバ、記憶デバイス、通信デバイス、およびこれらの組み合わせなど、データセンタ11中の物理的機械装置の少なくとも一つを表す。データセンタは、一般に、ウェブのホスティング、データウェアハウスなどのシステムサービスを提供するために用いられる。コンピュータ室空調装置CRAC:ComputerRoomAirConditioningunitとは、データセンタ11を冷房する一つ以上の冷房装置をいう。CRACは相当量の電力を費消し、その結果的データセンタ11に対する合計電力コストのかなりのパーセントを占める。データセンタ11内の室温は、いくつかのファクタにより場所によって異なる。データセンタ11は、データセンタ11のさまざまなモニタリング/管理アプリケーションからのインプット20を含む情報を集めるデータ収集インフラストラクチャ12を含む。また、データ収集インフラストラクチャ12は、データセンタ11がサービスレベル目標SLO:ServiceLevelObjectivesを果たしているかどうかをユーザに通知するために、データセンタ11の使用状況情報を追跡する。SLOは、サービスレベル契約SLA:servicelevelagreementの下にデータセンタ11によって提供されるそれぞれのサービスに対するサービスパフォーマンスの要求レベルを定める。データ収集インフラストラクチャ12の例には、とりわけて、IBMIBM社の登録商標のMaximoIBM社の登録商標AssetManagementなどの従来型アセットマネジメントソフトウェア、温度センサネットワーク、IBMIBM社の登録商標のTotalStorageIBM社の登録商標ProductivityCenterTPCデータ収集インフラストラクチャ、およびこれらの組み合わせがあろう。IBMIBM社の登録商標のMaximoおよびTotalStorageは、米国のインターナショナルビジネスマシンコーポレーションの登録商標である。インプット20は、電力オプチマイザ30がアウトプット80を生成するため用いる諸ファクタを表している。インプット20は、物理デバイスマップ21、デバイス温度プロフィール22、デバイス設定23、およびアプリケーションマップ24を含む。物理デバイスマップ21は、データセンタ11の全デバイスの物理的レイアウト/配置を三次元3D座標x,y,z形式で表現する。この3D座標は、データセンタ11内のラックに垂直にスタックされた各デバイスを正確に位置確認するために必要である。物理デバイスマップ21によって表現されたデータセンタ11中のデバイスの物理的レイアウトは、データセンタ11の熱力学および作動温度に影響与え、結果的に、データセンタ11の温度制御のために費消される電力の量に影響する。デバイス温度プロフィール22は、データセンタ11の各デバイスそれぞれの吸気口で測定された温度の集合を表す。デバイス温度プロフィール22は、それぞれ3DマトリックスTx,y,z=tで表現され、tはデバイスx,y,zの吸気口の温度を表す。デバイス設定23は、データセンタ11の各デバイスの設定を表す。本発明の一つの実施形態において、デバイス設定23は、{ID,TEMP}を含み、このIDは、各デバイスがサーバまたは記憶デバイスかどうかを示す識別子であり、TEMPは、各デバイスの、idle遊休中,busy稼働中から成るディスクリート表現の利用レベルに対するデバイスのそれぞれの温度である。デバイスが第一利用レベルidleにある場合、そのデバイスは基準温度にある。デバイスが第二利用レベルbusyにある場合、そのデバイスはピーク温度にある。アプリケーションマップ24は、アプリケーションがどのようにサーバおよび記憶デバイスにバーチャルにマップされているか、アプリケーションの作業負荷がどのようにデータセンタ11のデバイスの間に配分されているかに関する情報を表す。アプリケーションマップ24は、バーチャルマシンVM:virtualmachineマップともいわれる。アプリケーションマップ24は、デバイスの使用状況を、合計アプリケーション作業負荷の関数として表現する。アプリケーション設定もしくは配置またはその両方の変更にともなって、マッピングの値が修正される。電力オプチマイザ30は、データセンタ11からインプット20を取得し、最適化アプリケーションマップ81および予測電力節減量82を含むアウトプット80を生成する。電力オプチマイザ30は、作業負荷ソリューション候補ジェネレータ35、モデルジェネレータ40および作業負荷アジャスタ70を含む。電力オプチマイザ30によって遂行されるステップについては、後記の図3の説明を参照されたい。作業負荷ソリューション候補ジェネレータ35は、少なくとも一つの作業負荷ソリューション候補、Xcandidateを生成し、これは、ある作業負荷のセットの、サーバおよび記憶装置のある組み合わせへのマッピングを示している。全ての作業負荷ソリューション候補に対し、この作業負荷のセットが当てはめられ、サーバおよび記憶装置を含むリソースの個別的な組み合わせに対してそれぞれのマッピングが作成される。電力オプチマイザ30は、これらの作業負荷ソリューション候補を評価し、アウトプット80の作業負荷配分を生成する。モデルジェネレータ40は、データセンタ11からインプット20を取得し、予測モデルを生成する。これら予測モデルは、温度モデル、デバイス電力モデル、およびデバイスパフォーマンスモデルを含む。各予測モデルは、電力オプチマイザ30が、各予測モデルに対する所定のパラメータのセットからそれぞれの予測結果を計算するため用いるコンピュータ実行可能算式のセットとして保管される。モデルジェネレータ40は、インプット20のデバイス設定23およびアプリケーションマップ24を使って、デバイス電力モデルおよびデバイスパフォーマンスモデルを生成する。モデルジェネレータ40は、温度プレディクタ50およびパフォーマンスプレディクタ60を含む。温度プレディクタ50は、データセンタ11の温度を動的に予測する数学モデルである温度モデルを生成する。温度モデル中に取り入れられる温度ファクタの例には、とりわけ、それぞれのデバイスの吸気口温度などがあり得る。デバイス温度プロフィール22中の最高のデバイス吸気口温度に基づいて、データセンタ11中の冷房ユニットの動作設定、冷房ユニットの作動効率、および結果として、データセンタ11を冷房するために費消される冷房コストおよび電力が算定される。各デバイスの吸気口温度は、とりわけ、物理デバイスマップ21に表されるデータセンタ11中のデバイスの物理的レイアウト、デバイス設定23、アプリケーションマップ24に表される作業負荷配分に影響される。温度プレディクタ50のコンポーネントについては後記の図2の説明を、温度プレディクタ50によって遂行されるステップについては後記の図4の説明を参照されたい。パフォーマンスプレディクタ60は、インプットとして、モデルジェネレータ40によって生成されたデバイスパフォーマンスモデル、および作業負荷ソリューション候補ジェネレータ35によって生成された作業負荷ソリューション候補群を取得する。パフォーマンスプレディクタ60は、各作業負荷ソリューション候補それぞれの予期されるパフォーマンスを含むアウトプットを生成する。パフォーマンスプレディクタ60によって遂行されるステップについては、後記の図7の説明を参照されたい。作業負荷アジャスタ70は、予測モデルおよび移行コストモデルを用いて、各作業負荷ソリューション候補それぞれのパフォーマンス、電力消費、および温度を評価し、最適化アプリケーションマップ81および予測電力節減量82を含むアウトプット80を生成する。最適化アプリケーションマップ81は、データセンタ11の電力消費を最適化する少なくとも一つの作業負荷配分を表現する。予測電力節減量82は、最適化アプリケーションマップ81の各々のインスタンスにそれぞれ関連付けられた低減される電力消費の複数の量である。作業負荷アジャスタ70において、移行コストモデルは、パフォーマンス/電力/稼働率のトレードオフを捕捉し、現在の作業負荷配分から選定された作業負荷ソリューション候補への移行におけるパフォーマンスの低下を定量化し、データセンタ11のパフォーマンス要求事項を満たし、且つ最小の電力量を費消する作業負荷配分を見出す。本明細書において、用語最適化とは、データセンタ11のバーチャル化された設備の間で作業負荷を動的に調整し、同じレベルのサービスを提供しながら熱の生成をより少なくし、結果としてデータセンタ11における温度制御に必要な電力量を低減することを意味する。作業負荷アジャスタ70によって遂行されるステップについては、後記の図8の説明を参照されたい。図2は、本発明の実施形態による、上記の図1の温度プレディクタ50を示す。温度プレディクタは、データセンタからの物理デバイスマップ、デバイス設定、およびアプリケーションマップから、少なくとも一つのサンプルデータを生成する。上記少なくとも一つのサンプルデータの第一ペアサンプルデータP1,F1は、第一サンプル電力プロフィールP1および第一サンプルフロープロフィールF1を含む。第一サンプル電力プロフィールP1は、データセンタの個別デバイス群による電力消費量を含む、データセンタの電力消費のサンプルインスタンスを表す。第一サンプルフロープロフィールF1は、データセンタのデバイスの使用状況に基づく、データセンタ内のサンプル熱フローを表す。第一ペアサンプルデータP1,F1は、熱力学をシミュレートする目的のためそれぞれ現実的な値の範囲で、ランダムに生成される。計算流体力学CFD:computationalfluiddynamicsシミュレータ51は、インプットとして複数のサンプルデータペアPn,Fnを取り、サンプルデータPn,Fnの各ペアに対応する、複数のサンプル温度プロフィールTnを生成する。第一サンプル温度プロフィールT1は、データセンタの電力消費および熱フローが第一サンプルデータペアP1,F1によって与えられる場合の、データセンタにおける個別デバイスのシミュレートされた吸気口温度のセットを表す。各サンプル温度プロフィールは、データセンタからのインプットのデバイス温度プロフィールと同じ様式で表現され、その温度は、デバイス温度プロフィールにあるようなデータセンタからの実際に測定された温度の代わりに、CFDシミュレータ51によってシミュレートされている。CFDシミュレータ51は、複数のサンプルデータペアを用い、サンプルデータの各ペアにそれぞれ対応する複数の温度プロフィールをシミュレートし、熱力学モデル設定に十分な大きさのデータセットを生成する。サポートベクトルマシンSVM:supportvectormachineラーナー52は、生成済みのサンプルデータPn,Fnと生成済みのサンプルデータTnに対応するシミュレートサンプル温度プロフィールとから、温度モデル53を生成する。サンプルデータの全ペアおよび対応するサンプル温度プロフィールは、包括的にSVMラーナー52に対するトレーニングデータといわれる。温度モデル53は、SVMラーナー52によるトレーニングデータからの学習に沿って、データセンタの電力消費および全体的な熱フローが、データセンタ中の個別デバイスの吸気口温度にどのように影響するかを公式化する。実際データのペアP,Fは、電力プロフィールPおよび対応するフロープロフィールFを含む。電力プロフィールPは、データセンタの個別デバイスから測定された電力消費量を含む、データセンタの電力消費の実際のインスタンスを表す。フロープロフィールFは、電力プロフィールPに対応する、データセンタのデバイス群の使用状況によって定まる、データセンタ内で測定される熱フローの実際のインスタンスを表す。サポートベクトルマシンSVMプレディクタ54は、温度モデル53を実際のデータP,Fペアに適用し、データセンタの電力消費および熱フローが実際のデータP,Fペアで表されるとき、温度モデル53から予測されるデータセンタの個別デバイスのそれぞれの吸入口温度を表現する温度プロフィールTを生成する。図3は、本発明の実施形態による、動的な作業負荷調整によってデータセンタの電力消費を最適化する方法を示すフローチャートであって、本方法は上記の図1のシステムの電力オプチマイザによって遂行される。ステップ300において、電力オプチマイザは、データセンタからインプットを受信し、モデルジェネレータを使って少なくとも一つのデバイス電力モデルおよび少なくとも一つのデバイスパフォーマンスモデルを生成する。データセンタから収集されたインプットは、上記の図1で説明したように、物理デバイスマップ、デバイス温度プロフィール、デバイス設定、およびアプリケーションマップを含む。モデルジェネレータは、インプットのデバイス設定およびアプリケーションマップを使い、電力モデリングに対する従来型の方法を用いて、上記少なくとも一つのデバイス電力モデルを生成する。また、モデルジェネレータは、パフォーマンスモデリングに対する従来型の方法に基づいて、各デバイス種類に対し上記少なくとも一つのデバイスパフォーマンスモデルを生成する。インプットのデバイス設定およびアプリケーションマップによって表される特定のプラットフォーム中のデバイスパフォーマンスモデルの使用については、後記の図7のパフォーマンスプレディクタの説明を参照されたい。次いで、電力オプチマイザはステップ310に進む。本発明の一つの実施形態において、モデルジェネレータは、コンピューティングデバイスの電力モデルおよび記憶デバイスの電力モデルを含む2つのデバイス電力モデルを生成する。本明細書において、用語利用率はデバイスが取り扱える最高作業負荷に対する現在の作業負荷の比率をいう。デバイスの利用率には、その率の範囲に応じて{idle,busy}から選定された値を持たせることができる。コンピューティングデバイスの電力モデルは、主として計算を遂行するコンピューティングデバイスの利用率に応じたコンピューティングデバイスの電力消費を表現する。コンピューティングデバイスの例には、とりわけて、サーバなどが挙げられる。コンピューティングデバイスの利用率がidleのときのコンピューティングデバイスの電力消費が100であれば、コンピューティングデバイス電力モデルは、コンピューティングデバイスがbusyのときのコンピューティングデバイスの電力消費を130~140の範囲の数値によって定量化する。記憶デバイスの電力モデルは、主としてデータオペレーションを遂行する記憶デバイスの利用率に応じた記憶デバイスの電力消費を表現する。記憶デバイスの例には、とりわけて、ディスクアレイなどが挙げられる。記憶デバイスがidleのときの記憶デバイスの電力消費が100であれば、記憶デバイス電力モデルは、記憶デバイスがbusyのときの記憶デバイスの電力消費を110~130の範囲の数値によって定量化する。同じ実施形態において、各デバイス電力モデルは、それぞれのデバイスがidleのときの電力消費を表す静的な値と、それぞれのデバイスがオペレーションを遂行しているとき、すなわち、それぞれのデバイスがbusyであり、それぞれのデバイスの利用率によってリニアに変化しているときの電力消費を表す第二の変数とを含む、少なくとも2つのコンポーネントを有する。ステップ310で、電力オプチマイザは、作業負荷ソリューション候補ジェネレータを使って、現在の作業負荷の配分に対する作業負荷のセットを複数の異なったデバイス設定にマップする、作業負荷ソリューション候補群を生成する。プラットフォームで利用可能な、異なった数のサーバ/記憶装置ペアの可能な全ての組み合わせが、作業負荷ソリューション候補のデバイス設定として採用される。また、作業負荷ソリューション候補ジェネレータは、領域知識に基づいて、ヒューリスティック/ベストプラクティスなデバイス設定を用いて、作業負荷ソリューション候補を生成する。これら作業負荷ソリューション候補は、温度プレディクタおよびパフォーマンスプレディクタが利用可能な状態にされる。次いで、電力オプチマイザはステップ320および330に進み、これらスのテップは同時に実行される。ステップ320において、電力オプチマイザは温度プレディクタを実行する。温度プレディクタは、物理デバイスマップ、デバイス温度ファイル、およびデバイス電力モデルのインプットを得て、各作業負荷ソリューション候補に対し、それぞれのデータセンタ温度プロフィールを生成する。温度プレディクタの詳細については後記の図4の説明を参照されたい。次いで電力オプチマイザはステップ340に進む。ステップ330で、電力オプチマイザはパフォーマンスプレディクタを実行する。パフォーマンスプレディクタは、デバイスパフォーマンスモデルを生成し、パフォーマンス予測算式、および各作業負荷ソリューション候補に対するそれぞれの予測パフォーマンスを生成する。パフォーマンスプレディクタの詳細については後記の図7の説明を参照されたい。次いで電力オプチマイザはステップ340に進む。ステップ340において、電力オプチマイザは、作業負荷アジャスタを実行する。作業負荷アジャスタは、各作業負荷ソリューション候補に対する、それぞれのデータセンタ温度プロフィールおよびそれぞれの予測パフォーマンスを得て、少なくとも一つの最適化作業負荷配分およびそれぞれの最適化作業負荷配分に対応する電力節減量を含むアウトプットを生成する。作業負荷アジャスタの詳細については後記の図8の説明を参照されたい。次いで電力オプチマイザはステップ350に進む。ステップ350で、電力オプチマイザは、作業負荷アジャスタによって生成されたアウトプットを格納し、ユーザに送信する。このユーザは、とりわけて、データセンタの管理者などであり得る。ユーザは、続いて、このアウトプットを用いて、とりわけて、作業負荷配分を調整し、データセンタの現在ステータスを反映したインプットを含めてデータセンタの情報を更新する。次いで、電力オプチマイザが終了する。図4は、本発明の実施形態による、データセンタのデバイスの温度特性を予測する方法を表すフローチャートであり、これは電力オプチマイザの温度プレディクタによって遂行される。温度プレディクタは2つのフェーズで動作する。ステップ500において、温度プレディクタは、電力オプチマイザのための温度モデルが既に生成されているかどうかを判定する。温度プレディクタがまだ温度モデルが存在しないと判定した場合、温度プレディクタは、ステップ510に進み、トレーニングサンプルから温度モデルを生成する第一フェーズから開始する。温度プレディクタが既に温度モデルは存在すると判定した場合、温度プレディクタは、ステップ550に進み、上記のステップ310からの作業負荷ソリューション候補に対する温度を予測する第二フェーズから開始する。ステップ510で、温度プレディクタは、温度モデリングフェーズといわれる第一フェーズのオペレーションを遂行する。温度モデリングフェーズの詳細については後記の図5の説明を参照されたい。ステップ550において、温度プレディクタは、温度予測フェーズといわれる第二フェーズのオペレーションを遂行する。温度予測フェーズの詳細については後記の図6の説明を参照されたい。図5は、本発明の実施形態による、電力オプチマイザの温度プレディクタの温度モデリングフェーズを表すフローチャートである。ステップ520において、温度プレディクタは、インプットからの物理デバイスマップ、デバイス温度プロフィール、およびモデルジェネレータからのデータセンタの電力モデルを読み取る。物理デバイスマップおよびデバイス温度プロフィールは、インプットから電力オプチマイザが利用できるようになっている。データセンタの電力モデルは、電力プロフィールと組み合わせたそれぞれのデバイスの使用状況を考慮に入れた、シミュレーションまたは解析的アプローチに基づいている。電力モデルは、データセンタのさまざまなデバイスによってそれぞれのデバイスの電力モデルに従って費消される電力を表す、データセンタに対する三次元マトリックスとして定義される。ステップ520の後、温度プレディクタはステップ530に進む。ステップ530において、温度プレディクタは、それぞれサンプルデータのペアに対応する、サンプル電力プロフィール、およびサンプルフロープロフィール、およびサンプル吸気口温度プロフィールを包含するサンプルペアのデータを含む、トレーニングサンプルを生成する。温度プレディクタは、サンプリングによって複数のサンプルデータペア電力プロフィールPn,フロープロフィールFnを最初に生成し、次いで、従来型の計算流体力学CFDシミュレータを使い、サンプル電力プロフィールおよびサンプルフロープロフィールをシミュレートすることによって、対応するサンプル吸気口温度プロフィールを生成する。各サンプル電力プロフィールは、データセンタのそれぞれの電力消費を表現する。このそれぞれの電力消費は、データセンタの各デバイスにより生成される熱の量として表すことができる。各サンプルフロープロフィールは、データセンタの各デバイス中のファンそれぞれの流量を表す。これらトレーニングサンプルはステップ540で利用できるようにされる。次いで、温度プレディクタはステップ540に進む。本発明の一つの実施形態において、温度プレディクタは、FloVENTR計算流体力学CFDシミュレータを用いて、サンプル電力プロフィールおよびサンプルフロープロフィールから、サンプル吸気口温度プロフィールを生成する。FloVENTは、米国のMentorGraphicsCorporationの登録商標である。ステップ540において、温度プレディクタは、ステップ530で生成されたトレーニングサンプルに対しマシン学習プロセスを適用して、温度モデルを生成する。この温度モデルは、データセンタ中の全デバイスのシミュレートされた総体的な温度挙動を示す。この温度モデルは、電力プロフィールおよびフロープロフィール中のパラメータを吸気口温度プロフィール中の各吸気口温度にマップする、関数のセットとして表される。次いで、温度プレディクタは、温度プレディクタの第二フェーズに対する上記の図4のステップ550に進む。本発明の一つの実施形態において、ステップ530のマシン学習プロセスは、前述のFloVENTRシミュレーションを使って導出された、大きなデータセットからの温度モデルの数学関数を展開するサポートベクトルマシンSVM:SupportVectorMachineラーナーである。図6は、本発明の実施形態による、電力オプチマイザの温度プレディクタの温度予測フェーズを表すフローチャートである。ステップ560で、温度プレディクタは、上記の図3ステップ310で生成された作業負荷ソリューション候補を受信する。次いで、温度プレディクタはステップ570に進む。ステップ570において、温度プレディクタは、上記のステップ510で生成された温度モデルに従い、サポートベクトルマシンSVMプレディクタを使って、作業負荷ソリューション候補に対するデータセンタの温度プロフィールを計算する。サポートベクトルマシンは、分類および回帰のため使われる、関連する管理方式の従来型学習方法のセットであり、これは、入力データをn次元空間のベクトルの2つのデータセットと見なし、このn次元空間に、分離超平面が2つのデータセットの間のマージンを最大化するように該分離超平面を構築する。温度プレディクタは、データセンタの温度プロフィールを、物理リソースのマッピングへのアプリケーションもしくはバーチャルマシンまたはその両方の関数として公式化し、温度プレディクタは、作業負荷ソリューション候補のデータセンタのデバイスに対する作業負荷値および物理デバイスマップから、データセンタの温度プロフィールを計算する。次いで、温度プレディクタは終了し、電力オプチマイザは上記の図3のステップ340の作業負荷アジャスタに進む。図7は、本発明の実施形態による、データセンタのデバイスのパフォーマンスを予測する方法を表すフローチャートであり、これは電力オプチマイザのパフォーマンスプレディクタによって遂行される。ステップ610において、パフォーマンスプレディクタは、ステップ300で生成されたデバイスパフォーマンスモデル、並びにデータセンタのデバイス設定およびアプリケーションマップを含む、パフォーマンス特性に関するインプットを読み取る。デバイス設定およびアプリケーションマップは、プラットフォーム上のアプリケーションのパフォーマンスに影響するものであり、プラットフォーム上のアプリケーションのパフォーマンス予測モデルを生成するために用いられる。プラットフォームは、少なくとも一つのサーバおよび少なくとも一つの記憶デバイスを包含する。本明細書では、用語サーバは、用語コンピュータデバイスと互換的に使われる。デバイス設定は、プラットフォーム中の諸デバイスがどのように設定されているかを表し、アプリケーションマップは、アプリケーションの作業負荷がプラットフォーム上にどのように配分されているかを表す。プラットフォームの各コンポーネントデバイスは、上記の図3のステップ300で生成されたそれぞれのデバイスパフォーマンスモデルに対応する。次いで、パフォーマンスプレディクタはステップ620に進む。ステップ620において、パフォーマンスプレディクタは、パフォーマンス予測モデルを構築し、これは、プラットフォームのパフォーマンス特性のインプットおよびデバイスパフォーマンスモデルから導出される。パフォーマンス予測モデルは、プラットフォームのパフォーマンス特性インプットの変動値に適用が可能である。例えば、プラットフォームのデバイス設定が2サーバ,2記憶装置である場合、このデバイス設定からのパフォーマンス予測モデルを利用して、このプラットフォームの全ての可能なデバイス設定、とりわけて、1サーバ,1記憶装置、1サーバ,2記憶装置、2サーバ,1記憶装置、および2サーバ,2記憶装置のパフォーマンスが予測される。電力オプチマイザは、上記の図3のステップ310で生成された各作業負荷ソリューション候補の評価にこのパフォーマンス予測モデルを用いる。各電力最適化ソリューション候補の評価の詳細については、後記の図8の説明を参照されたい。次いで、パフォーマンスプレディクタはステップ630に進む。後記の式1~式4の本発明のパフォーマンス予測モデルは、データセンタのパフォーマンスを予測するに際して、作業負荷の実行速度ともいわれる作業負荷特性を以下のように考慮に入れている。上式のIPSWは作業負荷Wの秒あたりの命令数InstructionsPerSecondを表し、frequencyはデバイスの動作周波数を示し、CPIWは作業負荷Wの命令当たりのサイクル数CyclesPerInstructionを表し、CPIcoreは、キャッシュを含めプロセッサのコアで費やされる命令当たりのサイクル数を表し、CPImemoryはメモリアクセスに費やされる命令当たりのサイクル数を表す。IPSWで計測されるパフォーマンスは、サービスレベル契約SLAで定められる測定指標である。プラットフォームが設定され、それぞれのデバイスに対するデバイス動作周波数が定まれば、CPIWによってIPSWが算定される。CPIcoreは、プロセッサの動作周波数からは独立しているが、CPImemoryは以下のようにメモリデバイス動作周波数の影響を受ける。CPIcore=CPIf1W=CPIcoref1MPI×Mlatency×BFf1[式3]CPImemory=CPIf2W=CPIcoref1MPI×Mlatency×f2/f1×BFf1[式4]上式のf1はサーバの第一動作周波数であり、f2は記憶デバイスの第二動作周波数であり、MPIは命令当たりのメモリアクセスの回数を示し、Mlatencyは、メモリアクセスのためのメモリアドレスの発行からメモリアドレスのデータが利用可能になるまでの経過時間であるメモリ待ち時間であり、BFは、メモリアクセスおよびコア処理における並列処理を定量化したブロック因子であり、メモリの単一ブロック内の固定サイズのレコードの数を表す。パフォーマンスプレディクタは、上記の式1~式4のパフォーマンス予測モデルを用い、いろいろなメモリの種類、キャッシュサイズなどで構成されるさまざまなプラットフォームに対する作業負荷の挙動を予測する。従来型のパフォーマンスモデルは、同じような均質に計算バウンドされた作業負荷を、異なるクロック速度、異なるメモリサイズおよびキャッシュサイズの個別的なプロセッサを含むさまざまなシステム設定上でどのように実行するかに焦点が置かれている。また、パフォーマンスプレディクタは、デバイスの作業負荷および動作周波数に加えて、インプットのデバイス設定によって提供される、それぞれのサーバシステムに対して異なる種類の記憶デバイスが組み合わされた、それぞれのアーキテクチャ上の細部が異なる複数の個別的サーバシステムにも対応する。パフォーマンスプレディクタは、限定された数のサーバアーキテクチャを選択し、それぞれのサーバアーキテクチャを上記の式1~式4のパフォーマンス予測モデルに適用する。選択されたそれぞれのサーバアーキテクチャは、複数のサーバを有し得る。異種のサーバおよび記憶デバイスの組み合わせに対するパフォーマンス予測モデルは次の式で表される。上式のIPSWs,diは、固定サーバ設定sおよび第iの記憶デバイス設定diを備えるプラットフォームにおける、作業負荷Wに対する秒当たりの命令数を示し、CPIWs,diは、固定サーバ設定sおよび第iの記憶デバイス設定diを備えるプラットフォームにおける、作業負荷Wに対する命令当たりのサイクル数を示し、sfrequencyは、固定サーバ設定s中に表されているサーバの第三動作周波数を示す。式2Aにおいて、CPIWは、作業負荷Wに対する命令当たりのサイクル数を表し、これは、プラットフォーム中の全記憶デバイス設定に対し、固定サーバ設定sおよび第i記憶デバイス設定diを用いて設定されたプラットフォームにおけるCPIserverおよびCPIstorageの和として算定される。CPIserverは、ディスクへのアクセスなくして、作業負荷Wをメモリから全て実行できた場合の、プラットフォーム中のサーバによって費やされるサイクル数を表す。CPIserverは、システム周波数および記憶装置設定から独立した一切の作業負荷に対する命令当たりのサイクル数CPIserverを示す。CPIstorageは、プラットフォーム中の記憶デバイスによって費やされたサイクル数を表す。CPIstorageは、作業負荷を処理するためのサイクル数、CPIWへの記憶装置の特性の影響を表す。CPIstorageとして挙げられる記憶装置の特性には、とりわけ、待ち時間、処理容量、ディスクのブロック因子において測定される並列処理などがあろう。パフォーマンスプレディクタは、最初に各種の作業負荷に対するCPIstorageを特性設定し、異なる記憶装置設定を有する同じサーバ上の、同じ作業負荷Wのパフォーマンスを予測する。本発明の一つの実施形態において、サーバによって費消されるサイクル数および記憶デバイスに費消されるサイクル数は以下のように公式化される。CPIservers,di=CPIservers[式3A]CPIstorages,di=DIOPI×AvgLUNlatencydiW×DBF[式4A]上式のDIOPIは、命令当たりのディスク入力/出力の回数を示し、AvgLUNlatencydiWは、作業負荷Wに対する第i記憶デバイス設定di中のそれぞれの論理ボリュームユニットの待ち時間の平均を示す。それぞれの論理ボリュームユニットの待ち時間LUNlatencyは、記憶装置設定パラメータおよび作業負荷の特性の関数である。記憶装置設定パラメータの例には、とりわけて、構成ディスクの待ち時間、構成ディスクの数、構成ディスクのランダム/シーケンシャルな処理容量、キャッシュサイズなどがあろう。作業負荷の特性の例には、とりわけて、ランダム性、連続性、キャッシュヒット率などがあり得る。LUNlatencyは、プラットフォームのパフォーマンスに影響する主要設定パラメータであり、パフォーマンスプレディクタによってLUNlatencyの回帰モデルが用いられる。本発明の別の実施形態において、ステップ610および620を、モデルジェネレータによって遂行することができる。同じ実施形態において、パフォーマンスプレディクタは、インプットとして、モデルジェネレータによって生成された少なくとも一つのパフォーマンス予測モデルを取得し、以下のステップ630で説明するように、データセンタの予期されるパフォーマンス値を生成する。ステップ630において、パフォーマンスプレディクタは、それぞれのプラットフォーム設定に関連する各作業負荷ソリューション候補それぞれのパフォーマンスを予測する。パフォーマンスプレディクタは、パフォーマンス予測モデルを、インプットのパフォーマンス特性、作業負荷ソリューション候補、および各作業負荷ソリューション候補それぞれのプラットフォーム設定に適用する。予測されたパフォーマンスは、秒当たりの命令数IPSなどに定量化される。次いでパフォーマンスプレディクタはステップ640に進む。ステップ640で、パフォーマンスプレディクタは、全ての作業負荷ソリューション候補に対し予測されたパフォーマンスをメモリデバイスに格納し、作業負荷アジャスタが利用できるようにする。次いで、パフォーマンスプレディクタは終了し、電力オプチマイザは、上記の図3のステップ340へと続く。図8は、本発明の実施形態による、データセンタのデバイスの間で作業負荷を動的に調整する方法を表すフローチャートであり、これは電力オプチマイザの作業負荷アジャスタによって遂行される。ステップ710において、作業負荷アジャスタは、パフォーマンスプレディクタからの、全ての作業負荷ソリューション候補に対する予測パフォーマンスを読み取る。作業負荷アジャスタはステップ720に進む。ステップ720で、作業負荷アジャスタは上記の図3のステップ310で生成された各作業負荷ソリューション候補の電力コスト、および各作業負荷ソリューション候補に対する、現在の作業負荷配分Xcurrentからの移行コストを見積もる。次いで作業負荷アジャスタはアテープ730に進む。作業負荷ソリューション候補Xcandidateの電力コストは、作業負荷ソリューション候補Xcandidate中の全コンポーネントデバイスのコンポーネントレベルでの電力使用量の累積、および作業負荷ソリューション候補Xcandidateに対し予測される冷房コストの和として計算される。すなわち、PowerCost電力コストXcandidate=TotalComponentPowerUsage合計コンポーネント電力使用量XcandidateCoolingCost冷房コストXcandidate上式のTotalComponentPowerUsageXcandidateは、それぞれのデバイス電力モデルに従って作業負荷ソリューション候補Xcandidate中に採用されたデバイスの利用率レベルに基づいた、作業負荷ソリューション候補Xcandidateの全コンポーネントの電力使用量の合計であり、CoolingCostXcandidateは、上記の図4の温度プレディクタによる作業負荷ソリューション候補Xcandidateに対するデータセンタの予測最高温度から計算される。作業負荷ソリューション候補Xcandidateの、現在の作業負荷配分Xcurrentからの移行コストは、作業負荷ソリューション候補Xcandidateの作業負荷の特性にそれぞれの移行コストモデル、および作業負荷ソリューション候補Xcandidate中に用いられるデバイスに対するデバイス電力モデルから計算される。移行コストは、デバイス電力モデルおよびデバイスパフォーマンスモデルに基づいて、現在の作業負荷配分Xcurrentから作業負荷ソリューション候補Xcandidateへの移行の間のサービスのパフォーマンス劣化もしくは喪失またはその両方を定量化する。作業負荷特性は、とりわけて、移行の間のパフォーマンス劣化の許容レベルを定めるサービスレベル目標SLO要求事項、稼働率、および作業負荷のパフォーマンス要求事項などとすることができる。作業負荷特性は、関与するさまざまな種類の作業負荷およびアプリケーションに対する個別的パフォーマンス要求事項が反映して決められる。本発明の一つの実施形態において、データセンタのプロダクションシステムにおけるより高いパフォーマンス要求事項によって、作業負荷移行はさらに厳しく制限される。完全に近い稼働率要求事項に起因して、プロダクションシステムのあるアプリケーションが、移行中のパフォーマンス劣化を許容しないことがある。ステップ730において、作業負荷アジャスタは、各作業負荷ソリューション候補に対する全体的コストを計算する。次いで、作業負荷アジャスタはステップ740に進む。作業負荷ソリューション候補Xcandidateの全体的コストは、作業負荷ソリューション候補Xcandidateの電力コストと、作業負荷ソリューション候補Xcandidateの移行コストとの和である。すなわち、OverallCost全体的コストXcandidate=PowerCost電力コストXcandidateMigrationCost移行コストXcandidate。ステップ740において、作業負荷アジャスタは、全作業負荷ソリューション候補の中で最小の全体的コストを有する、最適作業負荷ソリューションXoptimalを選定する。別の実施形態において、最適作業負荷ソリューションXoptimalは、サービスレベル目標SLO要求事項の詳細事項に基づいて、移行の間のパフォーマンス劣化を最小化するために、最小の移行コストに基づいて選定される。次いで、作業負荷アジャスタはステップ750に進む。ステップ750で、作業負荷アジャスタは、最適作業負荷ソリューションから最適化アプリケーションマップを、さらに最適化アプリケーションマップに対する予測電力節減量生成する。次いで、作業負荷アジャスタは終了し、電力オプチマイザは、上記の図3のステップ350に続く。図9は、本発明の実施形態による、動的な作業負荷調整によってデータセンタの電力消費を最適化するために用いられるコンピュータシステムを示す。コンピュータシステム90は、プロセッサ91と、プロセッサ91に連結された入力デバイス92と、プロセッサ91に連結された出力デバイス93と、各々がプロセッサ91に連結されたメモリデバイス94および95を包含するコンピュータ可読メモリユニットとを含む。入力デバイス92は、とりわけて、キーボード、マウス、キーパッド、タッチスクリーン、音声認識デバイス、センサ、ネットワークインタフェースカードNIC:networkinterfacecard、ボイス/ビデオオーバーインターネットプロトコルVOIP:Voice/videooverInternetProtocolアダプタ、無線アダプタ、電話アダプタ、専用回線アダプタなどにすることができる。出力デバイス93には、とりわけて、プリンタ、プロッタ、コンピュータスクリーン、磁気テープ、着脱式ハードディスク、フレキシブルディスク、NIC、VOIPアダプタ、無線アダプタ、電話アダプタ、専用回線アダプタ、音声もしくは映像またはその両方の信号ジェネレータ、発光ダイオードLED:lightemittingdiodeなどがあろう。メモリデバイス94および95は、とりわけて、キャッシュ、ダイナミックランダムアクセスメモリDRAM:dynamicrandomaccessmemory、読み取り専用メモリROM:read-onlymemory、ハードディスク、フレキシブルディスク、磁気テープ、コンパクトディスクCD:compactdiskまたはディジタルビデオディスクDVD:digitalvideodiskなどの光学式記憶装置にすることができる。メモリデバイス95は、コンピュータ実行可能命令を含むコンピュータプログラムコードである、コンピュータコード97を包含する。コンピュータコード97は、とりわけて、本発明による、動的な作業負荷調整によってデータセンタの電力消費を最適化するため用いられるアルゴリズムを含む。プロセッサ91は、コンピュータコード97を実行する。メモリデバイス94は、入力データ96を包含する。入力データ96は、コンピュータコード97が必要とするインプットを含む。出力デバイス93は、コンピュータコード97からのアウトプットを表示する。メモリデバイス94および95のいずれかまたは両方あるいは、図9に示されていない一つ以上の追加のメモリデバイスは、中に具現されたコンピュータ可読プログラムコードを有する、もしくは中に格納された他のデータを有する、またはその両方を有するコンピュータ可読記憶媒体またはコンピュータ可用記憶媒体、またはプログラム記憶デバイスとして用いることができ、このコンピュータ可読プログラムコードはコンピュータコード97を含む。一般に、コンピュータシステム90のコンピュータプログラム製品あるいは製造品には、上記のコンピュータ可読記憶媒体または上記のプログラム記憶デバイスを含めることができる。サービスプロバイダは、本発明の任意のコンポーネントの展開、管理、サービスなどを実施し、本発明の、動的な作業負荷調整によってデータセンタの電力消費を最適化するためのプロセスに関するコンピューティングインフラストラクチャの展開または統合を提供することができる。しかして、本発明は、コンピューティングシステム例コンピューティングシステム90中にコンピュータ可読コードを統合し、ホスティングし、維持し、展開するステップを含む、コンピュータインフラストラクチャをサポートするためのプロセスを開示し、上記コードは、コンピューティングシステムと相まって、動的な作業負荷調整によってデータセンタの電力消費を最適化する方法を遂行する能力を有する。別の実施形態において、本発明は、本発明のプロセスステップを、予約申し込み、広告、もしくは料金ベースまたはこれらの組み合わせで実施する方法を提供する。すなわち、ソリューションインテグレータなどのサービスプロバイダは、本発明の動的な作業負荷調整によってデータセンタの電力消費を最適化するためのプロセスの生成、維持、サポートなどを売り出すことができる。この場合、サービスプロバイダは、一人以上の顧客に対し、本発明のプロセスステップを遂行する、コンピュータインフラストラクチャの生成、維持、サポートなどを行うことができる。サービスプロバイダは、見返りとして、予約申し込みもしくは自由契約またはその両方の下で顧客群から支払いを受けることができ、もしくはサービスプロバイダは、一人以上の第三者に対するコンテント広告の販売に対する支払いを受けることができ、またはこれらの両方の支払いを受けることができる。図9は、コンピュータシステム90を、ハードウェアおよびソフトウェアの特定の構成として示しているが、当業者なら承知しているであろうように、上記の目的のために、図9の特定のコンピュータシステム90に加え、ハードウェアおよびソフトウェアの任意の構成を用いることができる。例えば、メモリデバイス94および95は、別個のメモリデバイスでなく、単一のメモリデバイスの部分とすることができる。当業者ならよく理解するであろうように、本発明は、システム、方法、またはコンピュータプログラム製品として具現することができる。従って、本発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態ファームウエア、常駐ソフトウェア、マイクロコードなどを含む、あるいは、一般に本明細書では全て回路、モジュール、またはシステムといわれる、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明は、媒体中に具現されたコンピュータ可用プログラムコードを有する任意の有形表現媒体中に具体化されたコンピュータプログラム製品の形を取ることもできる。一つ以上のコンピュータ可用またはコンピュータ可読媒体群94、95の任意の組み合わせを用いることができる。コンピュータ可用媒体またはコンピュータ可読媒体という用語は、コンピュータ可用/可読記憶媒体94、95を総称する。コンピュータ可用またはコンピュータ可読媒体94、95は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的な、または半導体の、システム、装置、デバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読媒体94、95のさらに具体的な例非包括的リストには、一つ以上の配線を有する電気接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM:randomaccessmemory、読み取り専用メモリROM、消去可能プログラム可能読み取り専用メモリEPROMerasableprogrammableread-onlymemoryまたはフラッシュメモリ、光ファイバ、携帯型コンパクトディスク読み取り専用メモリCD-ROM:compactdiskread-onlymemory、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれよう。なお、コンピュータ可用またはコンピュータ可読媒体94、95を、紙または他の適切な媒体としてその上にプログラムを印刷することさえできよう。その紙または他の媒体を例えば光学スキャンしてプログラムを電子的に捕捉し、次いで、必要に応じ、適切な仕方でコンパイル、解釈、または別途に処理し、その後でコンピュータメモリに格納することができる。本文書の文脈において、コンピュータ可用またはコンピュータ可読媒体94、95は、命令を実行するシステム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の媒体とすることができる。本発明のオペレーションを実行するためのコンピュータコード97は、JavaR、SmalltalkR、Cなどのオブジェクト指向プログラミング言語、および、Cプログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合せで記述することができる。コンピュータコード97は、全体をユーザのコンピュータで、一部をユーザのコンピュータで、スタンドアロンソフトウェアパッケージとして実行することができ、一部をユーザのコンピュータで他の部分を遠隔コンピュータで、または全体を遠隔のコンピュータまたはサーバで実行することができる。後者のシナリオでは、ローカルエリアネットワークLAN:localareanetworkまたは広域ネットワークWAN:wideareanetworkを含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは例えばインターネットサービスプロバイダを使いインターネットを介し外部のコンピュータへの接続を行うことができる。本発明の実施形態による方法、装置システムおよびコンピュータプログラム製品のフローチャート説明図もしくはブロック図またはその両方を参照しながら本発明を説明してきた。フローチャート説明図もしくはブロック図またはその両方の各ブロック、および、フローチャート説明図もしくはブロック図またはその両方中のブロックの組み合せは、コンピュータプログラム命令によって実行可能であることが理解されよう。本明細書において、用語コンピュータプログラム命令は、用語コンピュータコード97と置き換えが可能である。これらのコンピュータプログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するための手段を生成するようにすることができる。また、これらのコンピュータプログラム命令を、コンピュータ、または他のプログラム可能データ処理装置に対し特定の仕方で機能するよう命令できるコンピュータ可読媒体94、95に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/処理を実施する命令手段を包含する製造品を形成するようにすることができる。同様に、コンピュータプログラム命令を、コンピュータ、または他のプログラム可能データ処理装置にロードして、これらコンピュータ、または他のプログラム可能装置上で一連のオペレーションステップを実行させてコンピュータ実行のプロセスを生成し、これらコンピュータまたは他のプログラム可能装置で実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するためのプロセスを提供するようにすることもできる。図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、所定の論理機能群を実行するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われることがあり得ることに留意すべきである。例えば、連続して示された2つのブロックが、実際にはほぼ同時に実行されることがあり、関与する機能によっては、時には、これらブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート説明図またはその両方の各ブロック、およびブロック図もしくはフローチャート説明図またはその両方中のブロックの組み合わせは、特定の機能または処理を実施する、特殊用途のハードウェアベースのシステム、または特殊用途のハードウェアとコンピュータ命令との組み合わせによって実施可能なことにも留意すべきである。請求項中の全ての手段プラス機能またはステッププラス機能のエレメントの、対応する構造、材料、処置および均等物は、具体的に請求された他の請求エレメントと組み合わせて機能を遂行するための、一切の構造、材料または処置を包含することが意図されている。本発明の記述は、例示および説明目的で提示されたもので、網羅的であること、または本発明を開示した形態に限定することは意図されていない。当業者には、本発明の範囲および精神から逸脱することのない多くの修改および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えたさまざまな実施形態のため、本発明を理解できるようにするため、選択し説明されたものである。"