(57)【要約】  ホストサーバの性能および電力要件を予測するために使用可能であるハイブリッドシステムオンチップのためのシステムおよび方法は、中央処理装置を含むビッグコアモジュールであって、ホストサーバの性能および電力メトリックデータを受信および前処理するための、およびコンピューティングリソースを割り当てるためのビッグコアモジュールと、超並列処理装置を含むスモールコアモジュールであって、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、性能および電力メトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理装置にマッピングするためのスモールコアモジュールと、スモールコアモジュールからの瞬時ごとの計算に基づいて、性能および電力予測結果を計算するための人工知能（ＡＩ）アクセラレータと、を含む。
2021518936.tif 000002
【特許請求の範囲】
【請求項１】
ホストサーバの性能および電力（ＰｎＰ）要件を予測するためのデバイスであって、
複数の汎用中央処理装置（ＣＰＵ）を含むビッグコアモジュールであって、前記ビッグコアモジュールは、前記ホストサーバのＰｎＰメトリックデータを受信および前処理することと、前記ＰｎＰ要件を計算するためのコンピューティングリソースを割り当てることと、を行うように構成されている、ビッグコアモジュールと、
複数の超並列処理（ＭＰＰ）装置を含むスモールコアモジュールであって、前記スモールコアモジュールは、前記ビッグコアモジュールに結合されており、前記スモールコアモジュールは、インスタンスごとのメトリック計算のための前記割り当てられたコンピューティングリソースに基づいて、前記ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するＭＰＰ装置にマッピングするように構成されている、スモールコアモジュールと、
前記ビッグコアモジュールおよび前記スモールコアモジュールに結合された人工知能（ＡＩ）アクセラレータであって、前記ＡＩアクセラレータは、前記スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、前記ＰｎＰ予測結果を前記ビッグコアモジュールに送信することと、を行うように構成されている、ＡＩアクセラレータと、を含む、デバイス。
【請求項２】
前記スモールコアモジュールは、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、前記ルールベースの予測結果をビッグコアモジュールに送信することと、を行うようにさらに構成されている、請求項１に記載のデバイス。
【請求項３】
前記ビッグコアモジュールは、ホストインターフェースを介して、前記ホストサーバに結合されており、前記ビッグコアモジュールは、前記ホストインターフェースを介して、前記ＰｎＰ予測結果を前記ホストサーバに送信するようにさらに構成されている、請求項１に記載のデバイス。
【請求項４】
前記ホストサーバ上で実行されているソフトウェアエージェントは、前記ビッグコアモジュールに送信される前記ＰｎＰメトリックデータを収集することと、前記ＰｎＰ予測結果を前記ビッグコアモジュールから受信することと、を行うように構成されている、請求項３に記載のデバイス。
【請求項５】
前記ソフトウェアエージェントは、所定の収集頻度で、前記ＰｎＰメトリックデータを収集することと、所定の受信頻度で、前記ホストインターフェースを介して、前記ＰｎＰ予測結果を前記ビッグコアモジュールから受信することと、を行うようにさらに構成されている、請求項４に記載のデバイス。
【請求項６】
前記ソフトウェアエージェントは、前記ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、および前記ハードウェアＰｎＰ制御オプションのためのパラメータを生成するようにさらに構成されている、請求項４に記載のデバイス。
【請求項７】
前記ソフトウェアエージェントは、前記ハードウェアＰｎＰ制御オプションを前記ホストサーバのハードウェアコンポーネントに適用するようにさらに構成されている、請求項６に記載のデバイス。
【請求項８】
前記ソフトウェアエージェントは、前記ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正するようにさらに構成されている、請求項４に記載のデバイス。
【請求項９】
前記ソフトウェアエージェントは、前記修正されたスケジューラアルゴリズムを前記ホストサーバのソフトウェアコンポーネントに適用するようにさらに構成されている、請求項８に記載のデバイス。
【請求項１０】
前記デバイスは、ハイブリッドシステムオンチップ（ＳｏＣ）である、請求項１に記載のデバイス。
【請求項１１】
ホストサーバの性能および電力（ＰｎＰ）要件を予測するための方法であって、
デバイスのビッグコアモジュールによって、前記ホストサーバのＰｎＰメトリックデータを受信および前処理することであって、前記ビッグコアモジュールは、複数の汎用中央処理装置（ＣＰＵ）を含む、受信および前処理することと、
前記ビッグコアモジュールによって、前記ＰｎＰ要件を計算するためのコンピューティングリソースを割り当てることと、
前記デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための前記割り当てられたコンピューティングリソースに基づいて、前記ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理（ＭＰＰ）装置にマッピングすることであって、前記スモールコアモジュールは、複数のＭＰＰ装置を含む、マッピングすることと、
前記デバイスの人工知能（ＡＩ）アクセラレータによって、前記スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、
前記ＡＩアクセラレータによって、前記ＰｎＰ予測結果を前記ビッグコアモジュールに送信することと、を含む、方法。
【請求項１２】
前記スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、
前記スモールコアモジュールによって、前記ルールベースの予測結果を前記ビッグコアモジュールに送信することと、をさらに含む、請求項１１に記載の方法。
【請求項１３】
前記ビッグコアモジュールによって、ホストインターフェースを介して、前記ＰｎＰ予測結果を前記ホストサーバに送信することをさらに含む、請求項１１に記載の方法。
【請求項１４】
前記ホストサーバ上で実行されているソフトウェアエージェントによって、前記ビッグコアモジュールに送信される前記ＰｎＰメトリックデータを収集することと、
前記ソフトウェアエージェントによって、前記ホストインターフェースを介して、前記ＰｎＰ予測結果を前記ビッグコアモジュールから受信することと、をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記ホストサーバ上で実行されているソフトウェアエージェントによって、前記ビッグコアモジュールに送信される前記ＰｎＰメトリックデータを収集することは、所定の収集頻度で、前記ＰｎＰメトリックデータを収集することを含み、
前記ソフトウェアエージェントによって、前記ＰｎＰ予測結果を前記ビッグコアモジュールから受信することは、所定の受信頻度で、前記ＰｎＰ予測結果を前記ビッグコアモジュールから受信することを含む、請求項１４に記載の方法。
【請求項１６】
前記ソフトウェアエージェントによって、前記ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、および前記ハードウェアＰｎＰ制御オプションのためのパラメータを生成することをさらに含む、請求項１４に記載の方法。
【請求項１７】
前記ソフトウェアエージェントによって、前記ハードウェアＰｎＰ制御オプションを前記ホストサーバのハードウェアコンポーネントに適用することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記ソフトウェアエージェントによって、前記ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正することをさらに含む、請求項１４に記載の方法。
【請求項１９】
前記ソフトウェアエージェントによって、前記修正されたスケジューラアルゴリズムを前記ホストサーバのソフトウェアコンポーネントに適用することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記デバイスは、ハイブリッドシステムオンチップ（ＳｏＣ）である、請求項１１に記載の方法。
【請求項２１】
１つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、前記１つ以上のプロセッサによって実行されるとき、前記１つ以上のプロセッサに、
ホストサーバの性能および電力（ＰｎＰ）メトリックデータを収集することと、
ホストインターフェースを介して、前記ＰｎＰメトリックデータをデバイスのビッグコアモジュールに送信することであって、前記ビッグコアモジュールは、複数の汎用中央処理装置（ＣＰＵ）を含む、送信することと、
前記ビッグコアモジュールによって、前記ＰｎＰメトリックデータを前処理することと、
前記ビッグコアモジュールによって、ＰｎＰ要件を計算するためのコンピューティングリソースを割り当てることと、
前記デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための前記割り当てられたコンピューティングリソースに基づいて、前記ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理（ＭＰＰ）装置にマッピングすることであって、前記スモールコアモジュールは、複数のＭＰＰ装置を含む、マッピングすることと、
前記デバイスの人工知能（ＡＩ）アクセラレータによって、前記スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、
前記ＡＩアクセラレータによって、前記ＰｎＰ予測結果を前記ビッグコアモジュールに送信することと、
前記ビッグコアモジュールによって、前記ＰｎＰ予測結果を前記ＡＩアクセラレータから受信することと、
前記ビッグコアモジュールによって、前記ホストインターフェースを介して、前記ＰｎＰ予測を前記ホストサーバに送信することと、
前記ＰｎＰ予測結果を前記ビッグコアモジュールから受信することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記動作は、
前記ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、および前記ハードウェアＰｎＰ制御オプションのためのパラメータを生成することをさらに含む、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記動作は、
前記ハードウェアＰｎＰ制御オプションを前記ホストサーバのハードウェアコンポーネントに適用することをさらに含む、請求項２２に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記動作は、
前記ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正することと、
前記修正されたスケジューラアルゴリズムを前記ホストサーバのソフトウェアコンポーネントに適用することと、をさらに含む、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
前記動作は、
前記スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、
前記スモールコアモジュールによって、前記ルールベースの予測結果を前記ビッグコアモジュールに送信することと、をさらに含む、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２６】
前記デバイスは、ハイブリッドシステムオンチップ（ＳｏＣ）である、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２７】
システムであって、
複数のサーバであって、前記複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、複数のサーバと、
前記複数のサーバに結合されたワークロード監視モジュールであって、前記ワークロード監視モジュールは、
前記複数のサーバ間のワークロードの増加を監視することと、
前記増加したワークロードのタイプ、および前記複数のサーバが配置されている環境の周囲温度を判定することと、
前記周囲温度で前記増加したワークロードの前記タイプに利用可能なターボモードにある前記ＣＰＵのターボ周波数に基づいて、前記複数のサーバのうちの特定のサーバのＣＰＵを選択することと、
前記選択されたＣＰＵの前記ターボモードを有効化することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
【請求項２８】
前記ワークロード監視モジュールは、前記ＣＰＵの前記ターボ周波数が、前記周囲温度で前記増加したワークロードの前記タイプに利用可能である持続期間に基づいて、前記ＣＰＵを選択するようにさらに構成されている、請求項２７に記載のシステム。
【請求項２９】
前記ワークロード監視モジュールは、前記ＣＰＵを特性データベースから選択するようにさらに構成されており、前記特性データベースは、
前記複数のサーバの複数のＣＰＵに対応する複数のＣＰＵアイデンティティ（ＩＤ）と、
各ＣＰＵ  ＩＤについて、
事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、
前記ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数と、
前記対応するＣＰＵが前記それぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、請求項２８に記載のシステム。
【請求項３０】
前記特性データベースは、所定の時間間隔で更新され、前記更新は、前記所定の時間間隔で、
前記事前選択された一連のワークロードタイプの各ワークロードタイプに対する前記事前選択された一連の周囲温度の各周囲温度において、
前記ＣＰＵ  ＩＤに対応する前記ＣＰＵの前記それぞれのターボ周波数を測定することと、
前記対応するＣＰＵが前記それぞれのターボ周波数を維持することができる前記それぞれの期間を測定することと、
前記対応するＣＰＵ  ＩＤにおけるそれぞれのＣＰＵに対する、前記測定されたターボ周波数、および前記測定された持続期間に基づいて、前記特性データベースを更新することと、を含む、請求項２９に記載のシステム。
【請求項３１】
前記特性データベースは、オンラインデータベースに記憶されており、前記オンラインデータベースは、前記ワークロード監視モジュールによってアクセス可能である、請求項３０に記載のシステム。
【請求項３２】
前記ワークロード監視モジュールは、前記ＣＰＵを選択する前に、前記増加したワークロードが所定の閾値よりも大きいと判定するようにさらに構成されている、請求項２７に記載のシステム。
【請求項３３】
前記ワークロード監視モジュールは、前記増加したワークロードが、前記判定された前記増加したワークロードのタイプに固有の所定の閾値よりも大きいと判定するようにさらに構成されている、請求項３２に記載のシステム。
【請求項３４】
複数のサーバに結合されたワークロード監視モジュールにおける方法であって、前記複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含み、前記方法は、
前記複数のサーバ間のワークロードの増加を監視することと、
前記増加したワークロードのタイプ、および前記複数のサーバが配置されている環境の周囲温度を判定することと、
前記周囲温度で前記増加したワークロードの前記タイプに対してターボモードで利用可能な前記ＣＰＵのターボ周波数に基づいて、前記複数のサーバのうちの特定のサーバのＣＰＵを選択することと、
前記選択されたＣＰＵの前記ターボモードを有効化することと、を含む、方法。
【請求項３５】
前記周囲温度で前記増加したワークロードの前記タイプに対して前記ターボモードで利用可能な前記ＣＰＵの前記ターボ周波数に基づいて、前記ＣＰＵを選択することは、前記ＣＰＵの前記ターボ周波数が、前記周囲温度で前記増加したワークロードの前記タイプに利用可能である持続期間に基づいて、前記ＣＰＵを選択することを含む、請求項３４に記載の方法。
【請求項３６】
前記ＣＰＵを選択することは、前記ＣＰＵを特性データベースから選択することを含み、
前記特性データベースは、
前記複数のサーバの複数のＣＰＵに対応する複数のＣＰＵアイデンティティ（ＩＤ）と、
各ＣＰＵ  ＩＤについて、
事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、
前記ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数と、
前記対応するＣＰＵが前記それぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、請求項３５に記載の方法。
【請求項３７】
所定の時間間隔で、
前記事前選択された一連のワークロードタイプの各ワークロードタイプに対する前記事前選択された一連の周囲温度の各周囲温度において、
前記ＣＰＵ  ＩＤに対応する前記ＣＰＵの前記それぞれのターボ周波数を測定することと、
前記対応するＣＰＵが前記それぞれのターボ周波数を維持することができる前記それぞれの期間を測定することと、
前記対応するＣＰＵ  ＩＤにおけるそれぞれのＣＰＵに対する、前記測定されたターボ周波数、および前記測定された持続期間に基づいて、前記特性データベースを更新することと、をさらに含む、請求項３６に記載の方法。
【請求項３８】
前記特性データベースをオンラインデータベースに記憶することをさらに含み、前記オンラインデータベースは、前記ワークロード監視モジュールによってアクセス可能である、請求項３７に記載の方法。
【請求項３９】
前記ＣＰＵを選択する前に、前記増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、請求項３４に記載の方法。
【請求項４０】
前記増加したワークロードが前記所定の閾値よりも大きいと判定することは、
前記増加したワークロードが、前記判定された前記増加したワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、請求項３９に記載の方法。
【請求項４１】
１つ以上のコンピューティングデバイスによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、前記１つ以上のコンピューティングデバイスによって実行されるとき、前記１つ以上のコンピューティングデバイスに、
複数のサーバ間のワークロードの増加を監視することであって、前記複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、監視することと、
前記増加したワークロードのタイプ、および前記複数のサーバが配置されている環境の周囲温度を判定することと、
前記周囲温度で前記増加したワークロードの前記タイプに対して、ターボモードで利用可能な前記ＣＰＵのターボ周波数に基づいて、前記複数のサーバのうちの特定のサーバのＣＰＵを選択することと、
前記選択されたＣＰＵの前記ターボモードを有効化することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項４２】
前記周囲温度で前記増加したワークロードの前記タイプに対して前記ターボモードで利用可能な前記ＣＰＵの前記ターボ周波数に基づいて、前記ＣＰＵを選択することは、前記ＣＰＵの前記ターボ周波数が、前記周囲温度で前記増加したワークロードの前記タイプに利用可能である持続期間に基づいて、前記ＣＰＵを選択することを含む、請求項４１に記載の非一時的コンピュータ可読記憶媒体。
【請求項４３】
前記ＣＰＵを選択することは、前記ＣＰＵを特性データベースから選択することを含み、前記特性データベースは、
前記複数のサーバの複数のＣＰＵに対応する複数のＣＰＵアイデンティティ（ＩＤ）と、
各ＣＰＵ  ＩＤについて、
事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、
前記ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数と、
前記対応するＣＰＵが前記それぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、請求項４２に記載の非一時的コンピュータ可読記憶媒体。
【請求項４４】
前記動作は、
所定の時間間隔で、
前記事前選択された一連のワークロードタイプの各ワークロードタイプに対する前記事前選択された一連の周囲温度の各周囲温度において、
前記ＣＰＵ  ＩＤに対応する前記ＣＰＵの前記それぞれのターボ周波数を測定することと、
前記対応するＣＰＵが前記それぞれのターボ周波数を維持することができる前記それぞれの期間を測定することと、
前記対応するＣＰＵ  ＩＤにおけるそれぞれのＣＰＵに対する、前記測定されたターボ周波数、および前記測定された持続期間に基づいて、前記特性データベースを更新することと、をさらに含む、請求項４３に記載の非一時的コンピュータ可読記憶媒体。
【請求項４５】
前記動作は、
前記特性データベースをオンラインデータベースに記憶することをさらに含み、前記オンラインデータベースは、前記１つ以上のコンピューティングデバイスによってアクセス可能である、請求項４４に記載の非一時的コンピュータ可読記憶媒体。
【請求項４６】
前記動作は、
前記ＣＰＵを選択する前に、前記増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、請求項４１に記載の非一時的コンピュータ可読記憶媒体。
【請求項４７】
前記増加したワークロードが前記所定の閾値よりも大きいと判定することは、
前記増加したワークロードが、前記判定された前記増加したワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、請求項４６に記載の非一時的コンピュータ可読記憶媒体。
【請求項４８】
システムであって、
互いに結合され、サーバラックに収容された複数のサーバであって、前記複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、複数のサーバと、
前記複数のサーバに結合された配電装置（ＰＤＵ）であって、前記ＰＤＵは、前記複数のサーバに電力を供給するように構成されており、前記ＰＤＵは、最大ラック電流で最大ラック電力まで電力を供給することができる、ＰＤＵと、
前記複数のサーバおよび前記ＰＤＵに結合されたバッテリパックであって、前記ＰＤＵなしで一定期間、前記複数のサーバに電力を供給することができる、バッテリパックと、
前記複数のサーバ、前記ＰＤＵ、および前記バッテリパックに結合されたワークロード監視モジュールであって、前記ワークロード監視モジュールは、
前記複数のサーバの各々のワークロードを監視および予測することと、
前記予測されたワークロードに基づいて、前記複数のサーバに必要な総電力を判定することと、
前記総電力が前記最大ラック電力を超過しているかどうかを判定することと、
前記総電力に基づいて、バッテリパックの動作を制御することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
【請求項４９】
前記ワークロード監視モジュールは、前記総電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックの前記動作を制御して、前記複数のサーバへの電力を補うようにさらに構成されている、請求項４８に記載のシステム。
【請求項５０】
前記ワークロード監視モジュールは、
前記最大ラック電力に加えて十分な電力を補うために前記バッテリパックから必要な放電電流を判定して、前記総電力を満たすことと、
前記バッテリパックからの前記放電電流を、前記必要な放電電流に設定することと、を行うようにさらに構成されている、請求項４９に記載のシステム。
【請求項５１】
前記複数のサーバに対する前記総電力は、前記予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている前記複数のサーバの前記１つ以上のＣＰＵの予想される増加した電力消費に基づいて、計算される、請求項４９に記載のシステム。
【請求項５２】
前記ワークロード監視モジュールは、前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定するようにさらに構成されている、請求項４９に記載のシステム。
【請求項５３】
前記ワークロード監視モジュールは、前記総電力が前記最大ラック電力を超過していないと判定すると、
前記ＰＤＵから前記複数のサーバへのラック電流を、前記最大ラック電流未満の値に制限するようにさらに構成されている、請求項４８に記載のシステム。
【請求項５４】
前記ワークロード監視モジュールは、
前記ＰＤＵで停電を検出することと、
前記停電を検出すると、
それぞれの予測されたワークロードに基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することと、
前記それぞれの電流に基づいて、前記バッテリパックからの総放電電流を計算することと、
前記バッテリパックからの最大放電電流を前記総放電電流に設定することと、を行うようにさらに構成されている、請求項４８に記載のシステム。
【請求項５５】
前記ワークロード監視モジュールは、
前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、前記複数のサーバの各々に対するそれぞれの電流上限を設定するようにさらに構成されている、請求項５４に記載のシステム。
【請求項５６】
前記ＰＤＵは、前記最大ラック電力を超過する電力を、所定の超過電力まで、前記複数のサーバに所定の期間にわたって供給することができ、
前記ワークロード監視モジュールは、
前記ＰＤＵの出力電力を監視することと、
前記出力電力が前記最大ラック電力を超過しているかどうかを判定することと、
前記出力電力に基づいて、前記バッテリパックの前記動作を制御することと、を行うようにさらに構成されている、請求項４８に記載のシステム。
【請求項５７】
前記ワークロード監視モジュールは、
前記出力電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックを放電モードで動作させて、前記最大ラック電力を超えて必要とされる超過電力を満たすことと、
前記出力電力が前記最大ラック電力を超過していないと判定すると、前記出力電力を前記最大ラック電力未満の値に制限することと、を行うようにさらに構成されている、請求項５６に記載のシステム。
【請求項５８】
前記ワークロード監視モジュールは、前記監視されたワークロードが低く、前記予測されたワークロードが高い場合、前記バッテリパックを高速で充電するようにさらに構成されている、請求項４８に記載のシステム。
【請求項５９】
方法であって、
サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、前記複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、監視および予測することと、
前記予測されたワークロードに基づいて、前記複数のサーバに必要な総電力を判定することと、
前記複数のサーバに電力を供給するように構成された配電装置（ＰＤＵ）から利用可能な最大ラック電流で、前記総電力が最大ラック電力を超過しているかどうかを判定することと、
前記総電力に基づいて、バッテリパックの動作を制御して、前記予測されたワークロードを満たすことと、を含む、方法。
【請求項６０】
前記総電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックの前記動作を制御して、前記複数のサーバへの電力を補うことをさらに含む、請求項５９に記載の方法。
【請求項６１】
前記最大ラック電力に加えて十分な電力を補うために前記バッテリパックから必要な放電電流を判定して、前記総電力を満たすことと、
前記バッテリパックからの前記放電電流を、前記必要な放電電流に設定することと、をさらに含む、請求項６０に記載の方法。
【請求項６２】
前記複数のサーバに対する前記総電力は、前記予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている前記複数のサーバの前記１つ以上のＣＰＵの予想される増加した電力消費に基づいて、計算される、請求項６０に記載の方法。
【請求項６３】
前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、請求項６０に記載の方法。
【請求項６４】
前記総電力が前記最大ラック電力を超過していないと判定することと、
前記ＰＤＵから前記複数のサーバへのラック電流を前記最大ラック電流未満の値に制限することと、をさらに含む、請求項５９に記載の方法。
【請求項６５】
前記ＰＤＵで停電を検出することと、
前記停電を検出すると、
それぞれの予測されたワークロードに基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することと、
前記それぞれの電流に基づいて、前記バッテリパックからの総放電電流を計算することと、
前記バッテリパックからの最大放電電流を前記総放電電流に設定することと、をさらに含む、請求項５９に記載の方法。
【請求項６６】
前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、前記複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、請求項６５に記載の方法。
【請求項６７】
前記ＰＤＵの出力電力を監視することと、
前記出力電力が前記最大ラック電力を超過しているかどうかを判定することと、
前記出力電力に基づいて、前記バッテリパックの動作を制御することと、をさらに含み、
前記ＰＤＵは、前記最大ラック電力を超過する電力を、所定の超過電力まで、前記複数のサーバに所定の期間にわたって供給することができる、請求項５９に記載の方法。
【請求項６８】
前記出力電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックを放電モードで動作させて、前記最大ラック電力を超えて必要とされる超過電力を満たすことと、
前記出力電力が前記最大ラック電力を超過していないと判定すると、前記出力電力を前記最大ラック電力未満の値に制限することと、をさらに含む、請求項６７に記載の方法。
【請求項６９】
１つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、前記１つ以上のプロセッサによって実行されるとき、前記１つ以上のプロセッサに、
サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、前記複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、監視および予測することと、
前記予測されたワークロードに基づいて、前記複数のサーバに必要な総電力を判定することと、
前記複数のサーバに電力を供給するように構成された配電装置（ＰＤＵ）から利用可能な最大ラック電流で、前記総電力が最大ラック電力を超過しているかどうかを判定することと、
前記総電力に基づいて、バッテリパックの動作を制御することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項７０】
前記動作は、
前記総電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックの前記動作を制御して、前記複数のサーバへの電力を補うことをさらに含む、請求項６９に記載の非一時的コンピュータ可読記憶媒体。
【請求項７１】
前記動作は、
前記最大ラック電力に加えて十分な電力を補うために前記バッテリパックから必要な放電電流を判定して、前記総電力を満たすことと、
前記バッテリパックからの前記放電電流を、前記必要な放電電流に設定することと、をさらに含む、請求項７０に記載の非一時的コンピュータ可読記憶媒体。
【請求項７２】
前記複数のサーバに対する前記総電力は、前記予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている前記複数のサーバの前記１つ以上のＣＰＵの予想される増加した電力消費に基づいて、計算される、請求項７０に記載の非一時的コンピュータ可読記憶媒体。
【請求項７３】
前記動作は、
前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、請求項７０に記載の非一時的コンピュータ可読記憶媒体。
【請求項７４】
前記動作は、
前記総電力が前記最大ラック電力を超過していないと判定することと、
前記ＰＤＵから前記複数のサーバへのラック電流を前記最大ラック電流未満の値に制限することと、をさらに含む、請求項６９に記載の非一時的コンピュータ可読記憶媒体。
【請求項７５】
前記動作は、
前記ＰＤＵで停電を検出することと、
前記停電を検出すると、
それぞれの予測されたワークロードに基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することと、
前記それぞれの電流に基づいて、前記バッテリパックからの総放電電流を計算することと、
前記バッテリパックからの最大放電電流を前記総放電電流に設定することと、をさらに含む、請求項６９に記載の非一時的コンピュータ可読記憶媒体。
【請求項７６】
前記動作は、
前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、前記複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、請求項７５に記載の非一時的コンピュータ可読記憶媒体。
【請求項７７】
前記動作は、
前記ＰＤＵの出力電力を監視することと、
前記出力電力が前記最大ラック電力を超過しているかどうかを判定することと、
前記出力電力に基づいて、前記バッテリパック動作を制御することと、をさらに含み、
前記ＰＤＵは、前記最大ラック電力を超過する電力を、所定の超過電力まで、前記複数のサーバに所定の期間にわたって供給することができる、請求項６９に記載の非一時的コンピュータ可読記憶媒体。
【請求項７８】
前記動作は、
前記出力電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックを放電モードで動作させて、前記最大ラック電力を超えて必要とされる超過電力を満たすことと、
前記出力電力が前記最大ラック電力を超過していないと判定すると、前記出力電力を前記最大ラック電力未満の値に制限することと、をさらに含む、請求項７７に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
クラウドコンピューティングのワークロードは、一般的に予測不可能である。サーバは、クラウドサービスプロバイダがそれらの顧客に提供する基本的なコンピューティングユニットである。サーバ使用率が高い場合、その応答時間は、ワークロード急増の影響を受けやすくなり、クラウドサービスプロバイダは、サービスレベル契約（ＳＬＡ）を満たすことができなくなり得る。ワークロード急増に関連する問題を軽減するために、例えば、中央処理装置（ＣＰＵ）周波数を急速に増加させ得る。ＣＰＵを常に非常に高い周波数で実行させるなどの静的設定も、ワークロード急増に対処するために利用され得る。実際のワークロード急増があらゆるコアを飽和させることはめったにないため、ＣＰＵのあらゆるコアを通常の周波数よりも高い同じ周波数で実行する必要があることにより、過剰なエネルギーおよびシステム安定性が無駄になり得る。しかしながら、ワークロード急増の発生を正確かつタイムリーに予測することは、困難であり得る。
【０００２】
通常の周波数よりも高い周波数でＣＰＵを実行するためには、「ターボ」周波数でＣＰＵを実行し得るＣＰＵターボモードを使用し得る。「ターボ」周波数は、熱設計電力（ＴＤＰ）周波数であることが保証され得るが、ＴＤＰ周波数を超えるいかなる周波数も保証され得ない。ＣＰＵ、またはシステム管理メニュー、例えば、基本入出力システム（ＢＩＯＳ）において、便宜的なターボスイッチをオンにしても、性能の問題を解決するには十分であり得ない。さらに、ターボモード、つまりは、ターボ周波数でＣＰＵを実行することができることは、常に利用可能であり得ない。しかしながら、サービスとしてのクラウドインフラストラクチャ（ＩａａＳ）スケジューラは、決定的な性能の向上を事前に知る必要があり得る。例えば、２つのハイパースレッドが共有パイプラインを求めて競合し始めた場合、スケジューラは、ＣＰＵ周波数がどれだけ増加するかを知る必要があり得る。
【０００３】
ＤＣまたはＡＣのいずれかの電力は、一般に、同じ電源を共有するサーバを収容するラックに供給される。サーバ使用率の範囲は、動的で幅広くなり得るため、例えば、ワークロード需要を満たすためにターボモードで増加したＣＰＵ周波数が原因で、その電力消費も変化し得る。特定の状況下では、同じラック内のすべてのサーバの総電力消費は、ラックの許容最大電力消費（Ｐｍａｘ＿ｒａｃｋ）よりも高くなり得る。かかる高電力使用の期間がラック回路の許容期間（Ｔｍａｘ＿ｐｏｗｅｒ）よりも長い場合、過熱、電源の整合性の問題、または停電などの破壊的または壊滅的な結果につながり得る。かかる望ましくない結果を回避するために、システムは、関連するプロセスを別のサーバに一時的に移行させ得るが、仮想マシン（ＶＭ）またはコンテナベースの仮想化サービスは、移行によって悪影響を受け得る。これらの結果はいずれも、クラウドコンピューティングサービスの品質を大幅に低下させ得る。しかしながら、コストを考慮すると、同じ数のサーバに高電力ラックを使用するか、または同じ利用可能な最大電力を維持しながらラック内のサーバ数を減らすことは、クラウドサービスプロバイダに受け入れられ得ない。
【図面の簡単な説明】
【０００４】
詳細な説明は、添付の図面を参照して述べられる。図面では、参照番号の左端の数字（複数可）は、参照番号が最初に現れる図面を示す。異なる図面における同じ参照番号の使用は、類似または同一の物品または特徴を示す。
【０００５】
【図１】ホストサーバの性能および電力（ＰｎＰ）要件を予測するために使用され得るハイブリッドシステムオンチップ（ＳｏＣ）デバイスの例示的なブロック図を示す。
【図２】ホストサーバのＰｎＰ要件を予測するプロセスを説明する例示的なフローチャートを示す。
【図３】ホストサーバにおけるＰｎＰ予測結果を利用するための例示的なフローチャート例を示す。
【図４】サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムまたは技術を提供するためのハイブリッドＳｏＣデバイスを含むシステムについての例示的なブロック図を示す。
【図５Ａ】サーバ内のＣＰＵの特性を一覧表示する例示的な特性データベースを示す。
【図５Ｂ】サーバ内のＣＰＵの特性を一覧表示する例示的な特性データベースを示す。
【図６】サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムを提供するためのワークロード監視モジュールについての例示的なフローチャートを示す。
【図７】図６のブロックのうちの１つに記載のＣＰＵを選択するプロセスを詳述する例示的なフローチャートを示す。
【図８】サーバへの供給電力を制御して、サーバのワークロードの予測された変化または監視された変化を満たすためのシステムの例示的なブロック図を示す。
【図９】サーバへの供給電力を制御して、サーバのワークロードの予測された変化または監視された変化を満たすための例示的なフローチャートを示す。
【図１０】図９のブロックのうちの１つに記載のバッテリパックを制御するプロセスを詳述する例示的なフローチャートを示す。
【発明を実施するための形態】
【０００６】
本明細書で論じられるシステムおよび方法は、サーバ内の中央処理装置（ＣＰＵ）を対象とし、より具体的には、サーバのワークロードを予測すること、ＣＰＵの性能特性に基づいて、予測されたワークロードを満たすこと、および予測されたワークロードを満たすための性能をサポートすることを対象とする。
【０００７】
本明細書で論じられるシステムおよび方法は、サーバ内のコンポーネントであり得るハイブリッドシステムオンチップ（ＳｏＣ）デバイスを使用して、ホストサーバの性能および電力（ＰｎＰ）要件を予測するために使用可能である。ハイブリッドＳｏＣデバイスは、ビッグコアモジュール、ビッグコアモジュールに結合されたスモールコアモジュール、ならびにビッグコアモジュールおよびスモールコアモジュールに結合された人工知能（ＡＩ）アルゴリズムアクセラレータを含み得、人工知能（ＡＩ）アルゴリズムアクセラレータは、ＡＩアクセラレータとも呼ばれる。ビッグコアモジュールは、例えば、ホストサーバの仮想マシン、コンテナ、プロセス、ジョブ、タスクなどのインスタンスのＰｎＰメトリックデータを受信および前処理するための複数の汎用中央処理装置（ＣＰＵ）などを含み得、ＰｎＰ要件を計算するためのコンピューティングリソースを割り当て得る。スモールコアモジュールは、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するＭＰＰ装置にマッピングするための複数の超並列処理（ＭＰＰ）装置を含み得る。例えば、大規模なダブル入力行列の計算は、反転計算を実行する各スモールコアによって処理され得る。スモールコアモジュールはまた、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュールに送信することと、を行い得る。ルールベースの予測は、監視されたパラメータの状態変化を判定することと、監視されたパラメータにおいて閾値が満たされているかどうかを判定することと、判定に基づいて、予測を生成することと、などを含み得る。ＡＩアクセラレータは、スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、ＰｎＰ予測結果をビッグコアモジュールに送信することと、を行い得る。ハイブリッドＳｏＣデバイスは、ホストＳｏＣインターフェースであり得るインターフェースを介して、ホストサーバに結合され得、したがって、ビッグコアモジュールおよびホストサーバが互いに通信することができ得、例えば、ビッグコアモジュールは、ホストＳｏＣインターフェースを介して、ＰｎＰ予測結果をホストサーバに送信し得る。
【０００８】
ホストサーバ上で実行されているソフトウェアエージェントは、ＰｎＰメトリックデータを収集することと、ビッグコアモジュールに送信することと、を行い得る。ソフトウェアエージェントは、所定の収集時間間隔で、ＰｎＰメトリックデータを収集することと、所定の受信時間間隔で、ビッグコアモジュールからＰｎＰ予測結果を受信することと、を行い得る。ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、およびハードウェアＰｎＰ制御オプションのためのパラメータを生成することと、ハードウェアＰｎＰ制御オプションを、ホストサーバのＣＰＵ、メモリ、グラフィックプロセッシングユニット（ＧＰＵ）、入力／出力（Ｉ／Ｏ）インターフェース、記憶デバイス、ネットワークデバイス、周辺機器などのハードウェアコンポーネントに適用することと、を行い得る。ハードウェアＰｎＰ制御オプションおよびパラメータは、特定のコンポーネントをオン／オフすることと、ＣＰＵ周波数を調整することと、メモリの読み取り／書き込み速度を調整することと、などを含み得る。ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正することと、修正されたスケジューラアルゴリズムを、例えば、ホストサーバの仮想マシン（ＶＭ）、コンテナ、プロセス、ジョブ、タスク、オペレーティングシステム（ＯＳ）スケジューラ、ジョブスケジューラなどのソフトウェアコンポーネントに適用することと、を行い得る。例えば、特定のジョブ、タスク、およびプロセスは、実行シーケンスで遅延または並べ替えられ得る。
【０００９】
上記に記載のＰｎＰ要件を予測するためのハイブリッドＳｏＣデバイスをシステムで使用して、サーバのワークロードの増加を予測または監視することと、増加したワークロードを満たすためのメカニズムまたは技術を提供することと、を行い得る。例えば、システムは、監視されたワークロードまたは予測されたワークロードに基づいて、ＣＰＵ使用率が閾値よりも高いと判定し、次いで、１つ以上のＣＰＵのターボモードを有効化して、処理速度を一時的に向上させ得る。
【００１０】
システムは、複数のサーバであって、互いに結合されており、各サーバが１つ以上のＣＰＵを有する複数のサーバと、複数のサーバに結合されたワークロード監視モジュールと、を含み得る。ワークロード監視モジュールは、複数のサーバ間のワークロードの増加を監視することと、増加したワークロードのタイプを判定することと、を行い得る。増加したワークロードは、検出されたワークロードの実際の増加、またはワークロードの予測された増加であり得る。ワークロード監視モジュールは、複数のサーバが配置されている環境、例えばラック内の環境の周囲温度を判定または測定することと、周囲温度で増加したワークロードのタイプに利用可能なターボモードにあるＣＰＵのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのＣＰＵを選択することと、選択されたＣＰＵのターボモードを有効化して、増加したワークロードを満たすことと、を行い得る。ワークロード監視モジュールは、ＣＰＵを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定し得る。所定の閾値は、判定された増加ワークロードのタイプに固有であり得る。ワークロード監視モジュールは、所与の周囲温度で増加したワークロードの所与のタイプに利用可能であるＣＰＵのターボ周波数レジデンシーに基づいて、ＣＰＵを特性データベースから選択し得る。ターボ周波数レジデンシーは、ＣＰＵが特定のターボ周波数で実行することができる時間の割合として定義され得る。例えば、２０秒の測定ウィンドウで、２５°Ｃの特定のワークロードタイプの場合、ＣＰＵ＃１は、２．６ＧＨｚで７７％の時間、２．７ＧＨｚで２２％の時間、および２．８ＧＨｚで１％の時間実行することが可能であり得る。
【００１１】
特性データベースは、複数のサーバ内のＣＰＵのうちの各々を識別し得るＣＰＵアイデンティティ（ＩＤ）、ワークロードタイプ、および周囲温度によって整理され得る。特性データベースは、ＣＰＵ  ＩＤによって識別可能な各ＣＰＵについて、ＣＰＵのターボ周波数、ならびにＣＰＵが、事前定義された周囲温度、例えば、１０℃、２５℃、および４０℃で、事前定義されたワークロードタイプに対して、ターボ周波数（ターボ周波数レジデンシー）を維持することができる期間を提供し得る。可能なエージングおよび不正確さを考慮に入れるために、ＣＰＵのターボ周波数と、ＣＰＵが、事前定義された周囲温度で、事前定義されたワークロードタイプに対して、ターボ周波数を維持することができる期間と、を再測定することにより、特性データベースは、定期的に、例えば３か月に１回、更新され得る。特性データベースは、オンラインデータベースに記憶され得、したがって、ワークロード監視モジュールは、複数のサーバと同じ場所に配置され得、または配置され得ず、インターネットなどのオンライン通信を介して、オンラインデータベースにアクセスし得る。
【００１２】
ワークロード監視モジュールが、選択されたＣＰＵ、または選択された複数のＣＰＵのターボモードを有効化することを判定して、増加したワークロードを満たすと、現在利用可能な最大電力が、ターボモードで動作しているＣＰＵにより、サーバの増加した電力消費を満たすのに十分であるかどうかを判定するために、複数のサーバに供給された電力は、評価される必要があり得る。
【００１３】
上述したように、ワークロード監視モジュールは、サーバラックに収容され得る複数のサーバの各々のワークロードを監視および予測し得る。ワークロード監視モジュールは、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、総電力が、複数のサーバに電力を供給する配電装置（ＰＤＵ）から利用可能な最大ラック電流で最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、サーバラックに収容され得るバッテリパックの動作を制御して、予測されたワークロードを満たすことと、を行い得る。ワークロード監視モジュールは、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている１つ以上のＣＰＵの予想される増加した電力消費に基づいて、複数のサーバに対する総電力を計算し得る。ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定し得る。
【００１４】
ワークロード監視モジュールは、総電力が最大ラック電力を超過している場合、バッテリパックの動作を制御して、複数のサーバへの電力を補うことと、最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、を行い得る。総電力が最大ラック電力を超過していない場合、ワークロード監視モジュールは、ＰＤＵから複数のサーバへのラック電流を最大ラック電流未満の値に制限し得る。
【００１５】
ワークロード監視モジュールは、さらに、ＰＤＵで停電を検出することと、停電を検出すると、それぞれの監視されたワークロードまたは予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの放電電流を総放電電流に設定することと、を行い得る。ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定し得る。
【００１６】
ワークロード監視モジュールはまた、ＰＤＵの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック動作を制御することと、を行い得る。ＰＤＵは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができ得る。ＰＤＵの出力電力が最大ラック電力を超過している場合、ワークロード監視モジュールは、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たし得る。ＰＤＵの出力電力が最大ラック電力を超過していない場合、ワークロード監視モジュールは、出力電力を最大ラック電力未満の値に制限し得る。
【００１７】
図１は、ホストサーバ１０２の性能および電力（ＰｎＰ）要件を予測するために使用され得るハイブリッドシステムオンチップ（ＳｏＣ）デバイス１００の例示的なブロック図を示す。
【００１８】
ハイブリッドＳｏＣデバイス１００は、ビッグコアモジュール１０４、ビッグコアモジュール１０４に結合されたスモールコアモジュール１０６、ならびにビッグコアモジュール１０４およびスモールコアモジュール１０６に結合された人工知能（ＡＩ）アルゴリズムアクセラレータ１０８を含み得る。
【００１９】
ビッグコアモジュール１０４は、複数の汎用中央処理装置（ＣＰＵ）を含み得、そのうちの５つ、１１０、１１２、１１４、１１６、および１１８が示されている。各汎用ＣＰＵ１１０、１１２、１１４、１１６、および１１８は、縮小命令セットコンピュータ（ＲＩＳＣ）Ｖロケットコアとして示されているコアと、メモリからデータとしてレジスタにフェッチされたキャッシュラインをロードするためのデータキャッシュ（Ｄ−キャッシュ）と、より高速に命令にアクセスするための命令キャッシュ（Ｉ−キャッシュ）とを含み得る。各汎用ＣＰＵ１１０、１１２、１１４、１１６、および１１８は、それぞれ、ロケットカスタムコア（ＲｏＣＣ）インターフェース１２０、１２２、１２４、１２６、および１２８に結合されており、ＡＩアルゴリズムアクセラレータ１０８などのアクセラレータを各ＲＩＳＣ−Ｖロケットコアに取り付けることを手助けし、スモールコアモジュール１０６と通信し得る。各汎用ＣＰＵ１１０、１１２、１１４、１１６、および１１８は、それぞれ、ＡＸＩインターコネクトまたはＮＡＳＴＩインターコネクト１３０、１３２、１３４、１３６、および１３８に結合されており、ホストＳｏＣインターフェース１４０などの出力（Ｉ／Ｏ）インターフェースに接続され得る。ホストＳｏＣインターフェース１４０は、ホストサーバ１０２のコンポーネントとして示されているが、ホストＳｏＣインターフェース１４０は、ホストサーバ１０２の外部の独立したモジュールであり得、複数のホストサーバと通信し得る。ビッグコアモジュール１０４は、ホストサーバ１０２の、例えば、仮想マシン、コンテナ、プロセス、ジョブ、タスクなどのインスタンスのＰｎＰメトリックデータを受信および前処理することと、ＰｎＰ要件を計算するための、スモールコアモジュール１０６およびＡＩアルゴリズムアクセラレータ１０８のコンピューティングリソースを割り当てることと、を行い得る。
【００２０】
スモールコアモジュール１０６は、複数の超並列処理（ＭＰＰ）装置を含み得、インスタンスごとのメトリック計算のための、ビッグコアモジュール１０４によって割り当てられたコンピューティングリソースに基づいて、ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するＭＰＰ装置にマッピングし得る。例えば、大規模なダブル入力行列の計算は、反転計算を実行する各スモールコアによって処理され得る。スモールコアモジュール１０６はまた、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュール１０４に送信することと、を行い得る。ルールベースの予測は、監視されたパラメータの状態変化を判定することと、監視されたパラメータにおいて閾値が満たされているかどうかを判定することと、その判定に基づいて、予測を生成することと、を含み得る。
【００２１】
ＡＩアルゴリズムアクセラレータ１０８は、スモールコアモジュール１０６からの瞬時ごとの計算に基づいて、ワークロードおよび電力予測などのＰｎＰ予測結果を計算することと、ＰｎＰ予測結果をビッグコアモジュール１０４に送信することと、を行い得る。上述したように、ビッグコアモジュール１０４は、ホストＳｏＣインターフェース１４０を介して、ホストサーバ１０２に結合され得、ホストＳｏＣインターフェース１４０を介して、ＰｎＰ予測結果をホストサーバ１０２に送信し得る。
【００２２】
ホストサーバ１０２上で実行されているソフトウェアエージェントは、最終的にＰｎＰ予測結果を計算するために使用されるホストサーバ１０２のＰｎＰメトリックデータを収集することと、ホストＳｏＣインターフェース１４０を介して、ＰｎＰメトリックデータをビッグコアモジュール１０４に送信することと、ホストＳｏＣインターフェース１４０を介して、ＰｎＰ予測結果をビッグコアモジュール１０４から受信することと、を行い得る。ソフトウェアエージェントは、所定の収集時間間隔で、ホストサーバ１０２のＰｎＰメトリックデータを収集することと、所定の受信時間間隔で、ビッグコアモジュール１０４からＰｎＰ予測結果を受信することと、を行い得る。
【００２３】
ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、およびハードウェアＰｎＰ制御オプションのためのパラメータを生成することと、ハードウェアＰｎＰ制御オプションを、ホストサーバ１０２のＣＰＵ、メモリ、グラフィックプロセッシングユニット（ＧＰＵ）、入力／出力（Ｉ／Ｏ）インターフェース、記憶デバイス、ネットワークデバイス、周辺機器などのハードウェアコンポーネントに適用することと、を行い得る。ハードウェアＰｎＰ制御オプションおよびパラメータは、特定のコンポーネントをオン／オフすることと、ＣＰＵ周波数を調整することと、メモリの読み取り／書き込み速度を調整することと、などを含み得る。ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正することと、修正されたスケジューラアルゴリズムを、例えば、ホストサーバ１０２の仮想マシン（ＶＭ）、コンテナ、プロセス、ジョブ、タスク、オペレーティングシステム（ＯＳ）スケジューラ、ジョブスケジューラなどのソフトウェアコンポーネントに適用することと、を行い得る。例えば、特定のジョブ、タスク、およびプロセスは、実行シーケンスで遅延または並べ替えられ得る。
【００２４】
図２は、ホストサーバ１０２の性能および電力（ＰｎＰ）要件を予測するプロセスを説明する例示的なフローチャート２００を示す。
【００２５】
ブロック２０２で、ホストサーバ１０２上で実行されているソフトウェアエージェントは、ビッグコアモジュール１０４に送信されるＰｎＰメトリックデータを収集し得る。ソフトウェアエージェントは、所定の収集頻度で、ＰｎＰメトリックデータを収集し得る。
【００２６】
ブロック２０４で、ビッグコアモジュール１０４は、ホストサーバ１０２のＰｎＰメトリックデータを受信することと、図１を参照して上述したように、ブロック２０６でＰｎＰメトリックデータを前処理することと、を行い得る。次いで、ビッグコアモジュール１０４は、ブロック２０８で、ＰｎＰ要件を計算するための、スモールコアモジュール１０６およびＡＩアルゴリズムアクセラレータ１０８のコンピューティングリソースを割り当て得る。
【００２７】
ブロック２１０で、スモールコアモジュール１０６は、割り当てられたコンピューティングリソースに基づいて、ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理（ＭＰＰ）装置にマッピングすることと、ブロック２１２で、スモールコアモジュール１０６は、マッピングされたＭＰＰ装置でインスタンスごとのメトリック計算を実行することと、を行い得る。例えば、大規模なダブル入力行列の計算は、反転計算を実行する各スモールコアによって処理され得る。さらに、ブロック２１２で、スモールコアモジュール１０６は、ルールベースの予測を実行してルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュール１０４に送信することと、を行い得る。
【００２８】
ブロック２１４で、ＡＩアルゴリズムアクセラレータ１０８は、スモールコアモジュール１０６からの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算し得、ブロック２１６で、ＰｎＰ予測結果をビッグコアモジュール１０４に送信し得る。次いで、ビッグコアモジュール１０４は、ブロック２１８で、ホストＳｏＣインターフェース１４０を介して、ＰｎＰ予測結果をホストサーバ１０２に送信し得る。
【００２９】
図３は、ホストサーバ１０２におけるＰｎＰ予測結果を使用するための例示的なフローチャート３００を示す。
【００３０】
ブロック３０２で、ソフトウェアエージェントは、ビッグコアモジュール１０４からＰｎＰ予測結果を受信し得る。ソフトウェアエージェントは、所定の受信頻度で、ＰｎＰ予測結果を受信し得る。
【００３１】
ブロック３０４で、ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、およびハードウェアＰｎＰ制御オプションのためのパラメータを生成し得、ブロック３０６で、ハードウェアＰｎＰ制御オプションを、ホストサーバ１０２のＣＰＵ、メモリ、ＧＰＵ、Ｉ／Ｏインターフェース、記憶デバイス、ネットワークデバイス、周辺機器などのハードウェアコンポーネントに適用し得る。ハードウェアＰｎＰ制御オプションおよびパラメータは、特定のコンポーネントをオン／オフすることと、ＣＰＵ周波数を調整することと、メモリの読み取り／書き込み速度を調整することと、などを含み得る。
【００３２】
代替的に、または加えて、ソフトウェアエージェントは、ブロック３０８で、ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正し得、ブロック３１０で、修正されたスケジューラアルゴリズムを、例えば、ホストサーバ１０２のＶＭ、コンテナ、プロセス、ジョブ、タスク、ＯＳスケジューラ、ジョブスケジューラなどのソフトウェアコンポーネントに適用し得る。例えば、特定のジョブ、タスク、およびプロセスは、実行シーケンスで遅延または並べ替えられ得る。
【００３３】
図４は、サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムまたは技術を提供するための上述のハイブリッドＳｏＣデバイス１００を含むシステム４００についての例示的なブロック図を示す。例えば、システム４００は、監視されたワークロードまたは予測されたワークロードに基づいて、ＣＰＵ使用率が閾値よりも高いと判定し得、次いで、システムは、１つ以上のＣＰＵのターボモードを有効化して、一時的に処理速度を向上させ得る。
【００３４】
システム４００は、複数のサーバを含み得、そのうちの３つ、４０２、４０４、および４０６が示されており、ワークロード監視モジュール４０８は、図１を参照して上述されたハイブリッドＳｏＣ１００を含み得、ホストＳｏＣインターフェース１４０を介して、複数のサーバ４０２、４０４、および４０６に結合され得る。ラック４１０は、複数のサーバ４０２、４０４、および４０６であって、その各々は、１つ以上のＣＰＵ（各サーバに対してそれぞれ１つのＣＰＵ４１２、４１４、および４１６が示されている）を含み得る複数のサーバ４０２、４０４、および４０６と、複数のサーバ４０２、４０４、および４０６がラック４１０内に存在する環境の周囲温度を測定するための周囲温度センサ４１８と、を含み得る。
【００３５】
図１のハイブリッドＳｏＣ１００を参照して上述したように、ワークロード監視モジュール４０８は、複数のサーバ４０２、４０４、および４０６の間のワークロードの増加を監視することと、増加したワークロードのタイプ、ならびに周囲温度センサ４１８を使用して、サーバ１０２、４０４、および４０６が配置されている環境、すなわち、ラック４１０内の環境の周囲温度を判定することと、を行い得る。ワークロードの増加に応答して、ワークロード監視モジュール４０８は、増加したワークロードが所定の閾値よりも大きいと判定し得、次いで、周囲温度で増加したワークロードのタイプに利用可能なターボモードにあるＣＰＵのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのＣＰＵを選択し得る。所定の閾値は、判定された増加ワークロードのタイプに固有の閾値であり得る。測定された周囲温度で増加したワークロードのタイプ、例えばタイプＡに基づいて、ワークロード監視モジュール４０８は、ＣＰＵがもはや２．７ＧＨｚで実行する必要があると判定し得る。周囲温度で利用可能なターボ周波数が、ＣＰＵ４１２については２．６  ＧＨｚ、ＣＰＵ４１４については２．７  ＧＨｚ、およびＣＰＵ４１６については２．８  ＧＨｚである場合、ワークロード監視モジュール４０８は、サーバ４０４のＣＰＵ４１４を選択することと、ＣＰＵ４１４のターボモードを有効化して、増加したワークロードを満たすことと、を行い得る。ワークロード監視モジュール４０８は、さらに、ＣＰＵのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、ＣＰＵを選択し得る。例えば、ワークロード監視モジュール４０８が、増加したワークロードを満たすために、ＣＰＵが２．７ＧＨｚで５秒間実行する必要があると判定したが、ＣＰＵ  ４１４は、２．７ＧＨｚのターボ周波数で３秒間対応することができ、ＣＰＵ４１６は、２．８ＧＨｚのターボ周波数で５秒間対応することができる場合、ワークロード監視モジュール４０８は、２．８ＧＨｚで実行するＣＰＵ４１６を選択し得る。
【００３６】
ワークロード監視モジュール４０８は、増加したワークロードを満たすことが望まれるＣＰＵの特性に基づいて、特性データベース４２０からＣＰＵを選択し得る。特性データベース４２０は、例えばインターネット４２２によって、ワークロード監視モジュール４０８によってリモートでアクセス可能なオンラインデータベースに記憶され得る。
【００３７】
図５Ａおよび５Ｂは、サーバ内のＣＰＵの特性を一覧表示する例示的な特性データベース４２０を示す。
【００３８】
特性データベース４２０は、所与の入力電力５０６におけるサンプルウィンドウ５０２およびワークロードタイプ５０４に対して、周囲温度５０８と、ＣＰＵ識別（ＩＤ）５１０と、ターボ周波数５１２と、利用可能なターボ周波数の期間５１４、すなわち、ＣＰＵがターボ周波数を維持することができる期間と、サンプルウィンドウサイズに対する、利用可能なターボ周波数の期間の比として計算されたターボ周波数レジデンシー５１６によって整理および索引付けされ得る。図５Ａは、２０秒のサンプルウィンドウ５０２、ワークロードタイプＡ、１０５ワットの入力電力５０６、ならびに２０℃、３０℃、および温度＿最大の周囲温度５０８についての例示的な特性データベース４２０を示した。図５Ｂは、図５Ａの１０５ワットの代わりに１２０ワットの入力電力５０６、ならびに２０℃、３０℃、および温度＿最大の周囲温度５０８を備えた、同じサンプルウィンドウ５０２およびワークロードタイプＡについての例示的な特性データベース４２０を示した。特性データベース４２０は、さらに、異なる入力電力５０６および周囲温度５０８に対する様々なサンプルウィンドウ５０２およびワークロードタイプ５０４について、ＣＰＵ  ＩＤ５１０で識別されたＣＰＵの特性データ、つまり、ターボ周波数５１２、利用可能なターボ周波数の期間５１４、およびターボ周波数レジデンシー５１６を含み得る。
【００３９】
可能なおよび不正確さを考慮に入れるために、所与の入力電力についての各サンプルウィンドウおよびワークロードタイプに対して、各ＣＰＵのターボ周波数およびターボ周波数の期間を再測定し、ターボ周波数レジデンシーを再計算することにより、特性データベース４２０は、定期的に、例えば３か月に１回更新され得る。
【００４０】
図６は、サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムまたは技術を提供するためのワークロード監視モジュール４０８についての例示的なフローチャート６００を示す。
【００４１】
ブロック６０２で、ワークロード監視モジュール４０８は、サーバ４０２、４０４、および４０６などの複数のサーバ間のワークロードの増加を監視し得、ブロック６０４で、増加したワークロードのタイプ、ならびに周囲温度センサ４１８を使用して、サーバ１０２、４０４、および４０６が配置されている環境、すなわち、ラック４１０内の環境の周囲温度を判定し得る。ブロック６０６で、ワークロード監視モジュール４０８は、図４を参照して上述したように、周囲温度で増加したワークロードのタイプに対してターボモードで利用可能なＣＰＵのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのＣＰＵを選択し得る。次いで、ワークロード監視モジュール４０８は、ブロック６０８において、選択されたＣＰＵのターボモードを有効化し得る。
【００４２】
図７は、ブロック６０６のＣＰＵを選択するプロセスを詳述する例示的なフローチャート７００を示す。
【００４３】
ワークロード監視モジュール４０８は、ブロック７０２でＣＰＵを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定し得る。閾値は、ブロック６０４において、判定された増加ワークロードのタイプに固有であり得る。ブロック７０４で、ワークロード監視モジュール４０８はまた、周囲温度で増加したワークロードのタイプに利用可能な各ＣＰＵのターボ周波数の持続期間を考慮し得る。次いで、ワークロード監視モジュール４０８は、ブロック７０６で、ターボモードで利用可能なＣＰＵのターボ周波数、周囲温度で増加したワークロードのタイプに利用可能なターボ周波数の期間に基づいて、ＣＰＵを選択し得る。ワークロード監視モジュール４０８は、図５Ａおよび５Ｂを参照して上述したように、特性データベース４２０からＣＰＵを選択し得、特性データベース４２０は、ワークロード監視モジュール４０８によってリモートでアクセス可能なオンラインデータベースに記憶され得る。
【００４４】
上述したように、ワークロード監視モジュール４０８は、サーバラック４１０に収容され得る複数のサーバ４０２、４０４、および４０６の各々のワークロードを監視および予測し得る。ワークロード監視モジュール４０８は、監視されたワークロードまたは予測されたワークロードの変化を満たすように動作するためのサーバ４０２、４０４、および４０８に必要な電力をさらに制御し得る。
【００４５】
図８は、複数のサーバ４０２、４０４、および４０６への供給電力を制御して、サーバ４０２、４０４、および４０６のワークロードの予測された変化または監視された変化を満たすためのシステム８００の例示的なブロック図を示す。
【００４６】
システム８００は、図４に記載のすべてのコンポーネントを含み得、さらに、配電装置（ＰＤＵ）８０２およびバッテリパック８０４を含み得る。ＰＤＵ８０２は、複数のサーバ４０２、４０４、および４０６に結合され得、最大ラック電流で最大ラック電力までについて、複数のサーバ４０２、４０４、および４０６に電力を供給することができ得る。バッテリパック８０４は、複数のサーバおよび４０２、４０４、および４０６、ならびにＰＤＵ８０２に結合され得、サーバラック４１０に収容され得る。バッテリパック８０４は、ＰＤＵ８０２なしで、特定の期間、複数のサーバ４０２、４０４、および４０６に電力を供給することができ得る。バッテリパック８０４は、特定の充電レベルを維持するために通常の充電率で充電され得、したがって、必要に応じて、バッテリパック８０４は、複数のサーバ４０２、４０４、および４０６に電力を供給することができ得る。
【００４７】
ワークロード監視モジュール４０８は、サーバ４０２、４０４、および４０６、ＰＤＵ８０２、ならびにバッテリパック８０４に結合され得る。ワークロード監視モジュール４０８は、サーバ４０２、４０４、および４０６の各々のワークロードを監視および予測し得、予測されたワークロードに基づいて、サーバに必要な総電力を判定し得る。ワークロード監視モジュール４０８は、総電力が最大ラック電力を超過しているかどうかを判定し得、総電力に基づいて、バッテリパック８０４のバッテリパック動作を制御し得る。
【００４８】
ワークロード監視モジュール４０８は、総電力が最大ラック電力を超過していると判定すると、バッテリパック８０４の動作を制御して、複数のサーバ４０２、４０４、および４０６への電力を補い得る。例えば、予測されたワークロード増加に基づいて、ワークロード監視モジュール４０８は、ＣＰＵ４１２、４１４、および４１６のうちの１つ以上のターボモードを有効化することを判定し得、予測されたワークロード増加を満たすためにターボモードにあるＣＰＵ  ４１２、４１４、および４１６のうちの１つ以上のＣＰＵを実行するために必要な総電力が、ＰＤＵ８０２から利用可能な最大ラック電力を超過していると判定し得る。総電力とラック電力との間の差は、バッテリパック８０４によって補われ得る。ワークロード監視モジュール４０８はまた、ＰＤＵ８０２からの最大ラック電力に加えて十分な電力を補うためにバッテリパック８０４から必要な放電電流を判定して、総電力を満たし得、バッテリパック８０４からの放電電流を、必要な放電電流に設定し得る。
【００４９】
ワークロード監視モジュール４０８はまた、各サーバに対して予測されたワークロード、および関連付けられたＣＰＵ周波数に基づいて、複数のサーバ４０２、４０４、および４０６の各々に必要な電流を判定し得、総電力が最大ラック電力を超過していないと判定し得る。例えば、予測されたワークロードは、通常予想されるレベルよりも低くなり得、ＣＰＵ  ４１２、４１４、および４１６のうちの１つ以上がそれらの通常の速度よりも遅く実行されることを可能にし、それによって複数のサーバ４０２、４０４、および４０６に必要な電力を減らし得る。次いで、ワークロード監視モジュール４０８は、ＰＤＵ８０２から複数のサーバ４０２、４０４、および４０６へのラック電流を、最大ラック電流未満の値に制限し得る。
【００５０】
ワークロード監視モジュール４０８は、ＰＤＵ８０２での停電を検出することと、それぞれの予測されたワークロードに基づいて、複数のサーバ４０２、４０４、および４０６の各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパック８０４からの総放電電流を計算することと、を行い得る。停電前の速度で、またはバッテリパック８０４から利用可能な最大電流で利用可能な速度でＣＰＵを実行する代わりに、ワークロード監視モジュール４０８は、バッテリパック８０４からの最大放電電流を、予測された総放電電流に設定し得、それは、バッテリパック８０４から利用可能な最大放電電流よりも低くなり得る。放電電流をより低く設定することにより、停電の間、バッテリパック８０４をより長く持続させることが可能であり得る。ワークロード監視モジュール４０８は、予測されたワークロード、ならびに各ＣＰＵ４１２、４１４、および４１６の関連付けられたＣＰＵ周波数に基づいて、複数のサーバ４０２、４０４、および４０６の各々に対する電流上限を設定し得る。
【００５１】
ワークロード監視モジュール４０８は、供給されている電気のコストを監視し得、電気のコストが低閾値よりも低い場合にバッテリパック８０４を高速で充電し、電気のコストが低閾値よりも高い場合にバッテリパック８０４を低速で充電することを判定し得る。ワークロード監視モジュール４０８はまた、現在のワークロードは低いが、ワークロードが予測されたワークロードの増加を満たすように増加すると予測される場合、バッテリパック８０４を高速、すなわち通常の充電速度よりも高い速度で充電することを判定し得る。
【００５２】
ＰＤＵ８０２は、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバ４０２、４０、および４０６に、所定の期間にわたって、例えば最大ラック電力を超える１００ワットの電力を１０秒間供給することができ得る。ワークロード監視モジュール４０８は、ＰＤＵ８０２の出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック８０の動作を制御することと、を行い得る。例えば、出力電力が最大ラック電力を超過していると判定すると、ワークロード監視モジュール４０８は、バッテリパック８０４を放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たし得る。出力電力が最大ラック電力を超過していないと判定すると、ワークロード監視モジュール４０８は、ＰＤＵ８０２の出力電力を最大ラック電力未満の値に制限し得る。
【００５３】
図９は、複数のサーバ４０２、４０４、および４０６への供給電力を制御して、サーバ４０２、４０４、および４０６のワークロードの予測された変化または監視された変化を満たすための例示的なフローチャート９００を示す。
【００５４】
ブロック９０２で、ワークロード監視モジュール４０８は、サーバラック４１０に収容された複数のサーバ４０２、４０４、および４０６の各々のワークロードを監視および予測し得る。図４および図８を参照して上述したように、複数のサーバ４０２、４０４、および４０６の各々は、それぞれ、１つ以上の中央処理装置（ＣＰＵ）４１２、４１４、および４１６を含み得る。ブロック９０４で、ワークロード監視モジュール４０８は、最大ラック電力、最大ラック電流、供給されている瞬時電力および瞬時電流などの、ＰＤＵ８０２のステータスを監視し得る。ワークロード監視モジュール４０８が、ブロック９０６で、ＰＤＵ８０２における停電を検出する場合、ワークロード監視モジュール４０８は、各サーバに対して予測されたワークロードに基づいて、複数のサーバ４０２、４０４、および４０６の各々に必要な電流を判定することと、ブロック９０８で、各電流に基づいて、必要な総放電電流を計算することと、を行い得る。９１０で、ワークロード監視モジュール４０８は、バッテリパック８０４からの最大放電電流を総放電電流に設定し得る。ワークロード監視モジュール４０８はまた、各サーバに対して予測されたワークロード、および各サーバの関連付けられたＣＰＵ周波数に基づいて、複数のサーバ４０２、４０４、および４０６の各々に対する電流上限を設定する。
【００５５】
ブロック９０６で、ワークロード監視モジュール４０８が、ＰＤＵ８０２における停電を検出しない場合、ワークロード監視モジュール４０８は、ブロック９１２で、監視されたワークロードまたは予測されたワークロードに基づいて、複数のサーバ４０２、４０４、および４０６に必要な総電力を判定し得る。例えば、ワークロード監視モジュール４０８は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバ４０２、４０４、および４０６の１つ以上のＣＰＵ４１２、４１４、および４１６の予想される増加した電力消費に基づいて、複数のサーバ４０２、４０４、および４０６の総電力を計算し得る。ワークロード監視モジュール４０８はまた、複数のサーバ４０２、４０４、および４０６の監視された電力消費、または実際の電力消費に基づいて、複数のサーバ４０２、４０４、および４０６に対する総電力を計算し得る。ワークロード監視モジュール４０８はまた、予測されたワークロード、および各ＣＰＵの関連付けられたＣＰＵ周波数に基づいて、複数のサーバ４０２、４０４、および４０６の各々に必要な電流を判定し得る。総電力に基づいて、ワークロード監視モジュール４０８は、ブロック９１４で、バッテリパック８０４の動作を制御して、サーバ４０２、４０４、および４０６の予測されたワークロードを満たし得る。
【００５６】
図１０は、図９のブロック９１４に記載のバッテリパック８０４を制御するプロセスを詳述する例示的なフローチャート１０００を示す。
【００５７】
１００２で、ワークロード監視モジュール４０８は、複数のサーバ４０２、４０４、および４０６に電力を供給するＰＤＵ８０２から利用可能な最大ラック電流で、総電力が最大ラック電力を超過しているかどうかを判定し得る。ワークロード監視モジュール４０８が、総電力が最大ラック電力を超過したと判定する場合、ワークロード監視モジュール４０８は、ブロック１００４において、バッテリパック８０４を制御して複数のサーバ４０２、４０４、および４０６への電力を補って、総電力を満たし得る。例えば、増加であり得る予測されたワークロードに基づいて、ワークロード監視モジュール４０８は、ＣＰＵ４１２、４１４、および４１６のうちの１つ以上のターボモードを有効化することを判定することと、予測されたワークロードの増加を満たすために、ターボモードにあるＣＰＵ  ４１２、４１４、および４１６のうちの１つ以上のＣＰＵを実行するために必要な総電力が、ＰＤＵ８０２から利用可能な最大ラック電力を超過していると判定することと、を行い得る。
【００５８】
ワークロード監視モジュール４０８は、ブロック１００６で、ＰＤＵ８０２の最大ラック電力に加えて十分な電力を補うためにバッテリパック８０４から必要な放電電流をさらに判定して、総電力を満たし得、バッテリパック８０４からの放電電流を必要な放電電流に適用設定し得る。
【００５９】
ワークロード監視モジュール４０８が、ブロック１００２で、総電力が最大ラック電力を超過しなかったと判定する場合、ワークロード監視モジュール４０８は、ブロック１００８で、ＰＤＵ８０２から複数のサーバ４０２、４０４、および４０６へのラック電流を最大ラック電流未満の値に制限し得る。
【００６０】
上述の方法のいくつかの動作またはすべての動作は、以下に定義するように、コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令の実行によって実行され得る。明細書および請求項で使用される「コンピュータ可読命令」という用語は、ルーチン、アプリケーション、アプリケーションモジュール、プログラムモジュール、プログラム、コンポーネント、データ構造、アルゴリズムなどを含む。コンピュータ可読命令は、シングルプロセッサシステムまたはマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのプログラム可能な家電製品、それらの組み合わせなど、さまざまなシステム構成で実装され得る。
【００６１】
コンピュータ可読記憶媒体は、揮発性メモリ（ランダムアクセスメモリ（ＲＡＭ）など）および／または不揮発性メモリ（読み出し専用メモリ（ＲＯＭ）、フラッシュメモリなど）を含み得る。コンピュータ可読記憶媒体はまた、コンピュータ可読命令、データ構造、プログラムモジュールなどの不揮発性記憶装置を提供し得る、フラッシュメモリ、磁気記憶装置、光学記憶装置および／またはテープ記憶装置を含むが、これらに限定されない、追加の取り外し可能な記憶装置および／または非取り外し可能記憶装置を含み得る。
【００６２】
非一時的コンピュータ可読記憶媒体は、コンピュータ可読媒体の一例である。コンピュータ可読媒体は、少なくとも２つのタイプのコンピュータ可読媒体、すなわちコンピュータ可読記憶媒体およびコンピュータ可読通信媒体を含む。コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意のプロセスまたは技術で実装される、揮発性および不揮発性、取り外し可能媒体および非取り外し可能媒体を含む。コンピュータ可読記憶媒体は、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他のタイプのランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたはその他のメモリ技術、コンパクトディスクの読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいはコンピューティングデバイスによるアクセスのための情報を記憶するために使用され得る他の任意の非伝送媒体を含むが、これらに限定されない。対照的に、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波などの変調されたデータ信号または他の伝達機構で具体化し得る。本明細書で定義されるように、コンピュータ可読記憶媒体は、通信媒体を含まない。
【００６３】
１つ以上のプロセッサによって実行されたときに、図２、３、６、７、９、および１０を参照して上述した動作を実行し得る、１つ以上の非一時的コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令。一般に、コンピュータ可読命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、制限として解釈されることを意図するものではなく、説明される動作の任意の数は、プロセスを実装するために任意の順序で、および／または並列に組み合わせられ得る。
【００６４】
例示の節
Ａ．ホストサーバの性能および電力（ＰｎＰ）要件を予測するためのデバイスであって、複数の汎用中央処理装置（ＣＰＵ）を含むビッグコアモジュールであって、ビッグコアモジュールは、ホストサーバのＰｎＰメトリックデータを受信および前処理することと、ＰｎＰ要件を計算するためのコンピューティングリソースを割り当てることと、を行うように構成されている、ビッグコアモジュールと、複数の超並列処理（ＭＰＰ）装置を含むスモールコアモジュールであって、スモールコアモジュールは、ビッグコアモジュールに結合されており、ビッグコアモジュールは、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するＭＰＰ装置にマッピングするように構成されている、スモールコアモジュールと、ビッグコアモジュールおよびスモールコアモジュールに結合された人工知能（ＡＩ）アクセラレータであって、ＡＩアクセラレータは、スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、ＰｎＰ予測結果をビッグコアモジュールに送信することと、を行うように構成されている、ＡＩアクセラレータと、を含む、デバイス。
【００６５】
Ｂ．スモールコアモジュールは、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュールに送信することと、を行うようにさらに構成されている、段落Ａに記載のデバイス。
【００６６】
Ｃ．ビッグコアモジュールは、ホストインターフェースを介して、ホストサーバに結合されており、ビッグコアモジュールは、ホストインターフェースを介して、ＰｎＰ予測結果をホストサーバに送信するようにさらに構成されている、段落Ａに記載のデバイス。
【００６７】
Ｄ．ホストサーバ上で実行されているソフトウェアエージェントは、ビッグコアモジュールに送信されるＰｎＰメトリックデータを収集することと、ＰｎＰ予測結果をビッグコアモジュールから受信することと、を行うように構成されている、段落Ｃに記載のデバイス。
【００６８】
Ｅ．ソフトウェアエージェントは、所定の収集頻度で、ＰｎＰメトリックデータを収集することと、所定の受信頻度で、ホストインターフェースを介して、ＰｎＰ予測結果をビッグコアモジュールから受信することと、を行うようにさらに構成されている、段落Ｄに記載のデバイス。
【００６９】
Ｆ．ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、およびハードウェアＰｎＰ制御オプションのためのパラメータを生成するようにさらに構成されている、段落Ｄに記載のデバイス。
【００７０】
Ｇ．ソフトウェアエージェントは、ハードウェアＰｎＰ制御オプションをホストサーバのハードウェアコンポーネントに適用するようにさらに構成される、段落Ｆに記載のデバイス。
【００７１】
Ｈ．ソフトウェアエージェントは、ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正するようにさらに構成されている、段落Ｄに記載のデバイス。
【００７２】
Ｉ．ソフトウェアエージェントは、修正されたスケジューラアルゴリズムをホストサーバのソフトウェアコンポーネントに適用するようにさらに構成されている、段落Ｈに記載のデバイス。
【００７３】
Ｊ．デバイスは、ハイブリッドシステムオンチップ（ＳｏＣ）である、段落Ａに記載のデバイス。
【００７４】
Ｋ．ホストサーバの性能および電力（ＰｎＰ）要件を予測するための方法であって、デバイスのビッグコアモジュールによって、ホストサーバのＰｎＰメトリックデータを受信および前処理することであって、ビッグコアモジュールは、複数の汎用中央処理装置（ＣＰＵ）を含む、受信および前処理することと、ビッグコアモジュールによって、ＰｎＰ要件を計算するためのコンピューティングリソースを割り当てることと、デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理（ＭＰＰ）装置にマッピングすることであって、スモールコアモジュールは、複数のＭＰＰ装置を含む、マッピングすることと、デバイスの人工知能（ＡＩ）アクセラレータによって、スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、ＡＩアクセラレータによって、ＰｎＰ予測結果をビッグコアモジュールに送信することと、を含む、方法。
【００７５】
Ｌ．スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、スモールコアモジュールによって、ルールベースの予測結果をビッグコアモジュールに送信すること、をさらに含む、段落Ｋに記載の方法。
【００７６】
Ｍ．ビッグコアモジュールによって、ホストインターフェースを介して、ＰｎＰ予測結果をホストサーバに送信することをさらに含む、段落Ｋに記載の方法。
【００７７】
Ｎ．ホストサーバ上で実行されているソフトウェアエージェントによって、ビッグコアモジュールに送信されるＰｎＰメトリックデータを収集することと、ソフトウェアエージェントによって、ホストインターフェースを介して、ＰｎＰ予測結果をビッグコアモジュールから受信することと、をさらに含む、段落Ｍに記載の方法。
【００７８】
Ｏ．ホストサーバ上で実行されているソフトウェアエージェントによって、ビッグコアモジュールに送信されるＰｎＰメトリックデータを収集することは、所定の収集頻度で、ＰｎＰメトリックデータを収集することを含み、ソフトウェアエージェントによって、ＰｎＰ予測結果をビッグコアモジュールから受信することは、所定の受信頻度で、ＰｎＰ予測結果をビッグコアモジュールから受信することを含む、段落Ｎに記載の方法。
【００７９】
Ｐ．ソフトウェアエージェントによって、ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、およびハードウェアＰｎＰ制御オプションのためのパラメータを生成することをさらに含む、段落Ｎに記載の方法。
【００８０】
Ｑ．ソフトウェアエージェントによって、ハードウェアＰｎＰ制御オプションをホストサーバのハードウェアコンポーネントに適用することをさらに含む、段落Ｐに記載の方法。
【００８１】
Ｒ．ソフトウェアエージェントによって、ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正することをさらに含む、段落Ｎに記載の方法。
【００８２】
Ｓ．ソフトウェアエージェントによって、修正されたスケジューラアルゴリズムをホストサーバのソフトウェアコンポーネントに適用することをさらに含む、段落Ｒに記載の方法。
【００８３】
Ｔ．デバイスは、ハイブリッドシステムオンチップ（ＳｏＣ）である、段落Ｋに記載の方法。
【００８４】
Ｕ．１つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、１つ以上のプロセッサによって実行されるとき、１つ以上のプロセッサに、ホストサーバの性能および電力（ＰｎＰ）メトリックデータを収集することと、ホストインターフェースを介して、ＰｎＰメトリックデータをデバイスのビッグコアモジュールに送信することであって、ビッグコアモジュールは、複数の汎用中央処理装置（ＣＰＵ）を含む、送信することと、ビッグコアモジュールによって、ＰｎＰメトリックデータを前処理することと、ビッグコアモジュールによって、ＰｎＰ要件を計算するためのコンピューティングリソースを割り当てることと、デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、ＰｎＰメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理（ＭＰＰ）装置にマッピングすることであって、スモールコアモジュールは、複数のＭＰＰ装置を含む、マッピングすることと、デバイスの人工知能（ＡＩ）アクセラレータによって、スモールコアモジュールからの瞬時ごとの計算に基づいて、ＰｎＰ予測結果を計算することと、ＡＩアクセラレータによって、ＰｎＰ予測結果をビッグコアモジュールに送信することと、ビッグコアモジュールによって、ＰｎＰ予測結果をＡＩアクセラレータから受信することと、ビッグコアモジュールによって、ホストインターフェースを介して、ＰｎＰ予測をホストサーバに送信することと、ＰｎＰ予測結果をビッグコアモジュールから受信することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【００８５】
Ｖ．動作は、ＰｎＰ予測結果に基づいて、ハードウェアＰｎＰ制御オプション、およびハードウェアＰｎＰ制御オプションのためのパラメータを生成することをさらに含む、段落Ｕに記載の非一時的コンピュータ可読記憶媒体。
【００８６】
Ｗ．動作は、ハードウェアＰｎＰ制御オプションをホストサーバのハードウェアコンポーネントに適用することをさらに含む、段落Ｖ項に記載の非一時的コンピュータ可読記憶媒体。
【００８７】
Ｘ．動作は、ＰｎＰ予測結果に基づいて、スケジューラアルゴリズムを修正することと、修正されたスケジューラアルゴリズムをホストサーバのソフトウェアコンポーネントに適用することと、をさらに含む、段落Ｕに記載の非一時的コンピュータ可読記憶媒体。
【００８８】
Ｙ．動作は、スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、スモールコアモジュールによって、ルールベースの予測結果をビッグコアモジュールに送信することと、をさらに含む、段落Ｕに記載の非一時的コンピュータ可読記憶媒体。
【００８９】
Ｚ．デバイスは、ハイブリッドシステムオンチップ（ＳｏＣ）である、段落Ｕに記載の非一時的コンピュータ可読記憶媒体。
【００９０】
ＡＡ．システムであって、複数のサーバであって、複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、複数のサーバと、複数のサーバに結合されたワークロード監視モジュールであって、ワークロード監視モジュールは、複数のサーバ間のワークロードの増加を監視することと、増加したワークロードのタイプ、および複数のサーバが配置されている環境の周囲温度を判定することと、周囲温度で増加したワークロードのタイプに利用可能なターボモードにあるＣＰＵのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのＣＰＵを選択することと、選択されたＣＰＵのターボモードを有効化することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
【００９１】
ＡＢ．ワークロード監視モジュールは、ＣＰＵのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、ＣＰＵを選択するようにさらに構成されている、段落ＡＡに記載のシステム。
【００９２】
ＡＣ．ワークロード監視モジュールは、ＣＰＵを特性データベースから選択するようにさらに構成されており、特性データベースは、複数のサーバの複数のＣＰＵに対応する複数のＣＰＵアイデンティティ（ＩＤ）と、各ＣＰＵ  ＩＤについて、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数と、対応するＣＰＵがそれぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、段落ＡＢに記載のシステム。
【００９３】
ＡＤ．特性データベースは、所定の時間間隔で更新され、更新は、所定の時間間隔で、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度において、ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数を測定することと、対応するＣＰＵがそれぞれのターボ周波数を維持することができるそれぞれの期間を測定することと、対応するＣＰＵ  ＩＤにおけるそれぞれのＣＰＵに対する、測定されたターボ周波数、および測定された持続期間に基づいて、特性データベースを更新することと、を含む、段落ＡＣに記載のシステム。
【００９４】
ＡＥ．特性データベースは、オンラインデータベースに記憶されており、オンラインデータベースは、ワークロード監視モジュールによってアクセス可能である、段落ＡＤに記載のシステム。ＡＦ．ワークロード監視モジュールは、ＣＰＵを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定するようにさらに構成されている、段落ＡＡに記載のシステム。
【００９５】
ＡＧ．ワークロード監視モジュールは、増加したワークロードが、判定された増加ワークロードのタイプに固有の所定の閾値よりも大きいと判定するようにさらに構成されている、段落ＡＦに記載のシステム。
【００９６】
ＡＨ．複数のサーバに結合されたワークロード監視モジュールにおける方法であって、複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含み、方法は、複数のサーバ間のワークロードの増加を監視することと、増加したワークロードのタイプ、および複数のサーバが配置されている環境の周囲温度を判定することと、周囲温度で増加したワークロードのタイプに対してターボモードで利用可能なＣＰＵのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのＣＰＵを選択することと、選択されたＣＰＵのターボモードを有効化することと、を含む、方法。
【００９７】
ＡＩ．周囲温度で増加したワークロードのタイプに対してターボモードで使用可能なＣＰＵのターボ周波数に基づいて、ＣＰＵを選択することは、ＣＰＵのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、ＣＰＵを選択することを含む、段落ＡＨに記載の方法。
【００９８】
ＡＪ．ＣＰＵを選択することは、ＣＰＵを特性データベースから選択することを含み、特性データベースは、複数のサーバの複数のＣＰＵに対応する複数のＣＰＵアイデンティティ（ＩＤ）と、各ＣＰＵ  ＩＤについて、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数と、対応するＣＰＵがそれぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、段落ＡＩに記載の方法。
【００９９】
ＡＫ．所定の時間間隔で、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度において、ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数を測定することと、対応するＣＰＵがそれぞれのターボ周波数を維持できるそれぞれの期間を測定することと、対応するＣＰＵ  ＩＤにおけるそれぞれのＣＰＵに対する、測定されたターボ周波数、および測定された持続期間に基づいて、特性データベースを更新することと、を含む、段落ＡＪに記載の方法。
【０１００】
ＡＬ．特性データベースをオンラインデータベースに記憶することをさらに含み、オンラインデータベースは、ワークロード監視モジュールによってアクセス可能である、段落ＡＫに記載の方法。
【０１０１】
ＡＭ．ＣＰＵを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、段落ＡＨに記載の方法。
【０１０２】
ＡＮ．増加したワークロードが所定の閾値よりも大きいと判定することは、増加したワークロードが、判定された増加ワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、段落ＡＭに記載の方法。
【０１０３】
ＡＯ．１つ以上のコンピューティングデバイスによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、１つ以上のコンピューティングデバイスによって実行されるとき、１つ以上のコンピューティングデバイスに、複数のサーバ間のワークロードの増加を監視することであって、複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、監視することと、増加したワークロードのタイプ、および複数のサーバが配置されている環境の周囲温度を判定することと、周囲温度で増加したワークロードのタイプに対して、ターボモードで利用可能なＣＰＵのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのＣＰＵを選択することと、選択されたＣＰＵのターボモードを有効化することと、を含む、非一時的コンピュータ可読記憶媒体。
【０１０４】
ＡＰ．周囲温度で増加したワークロードのタイプに対してターボモードで利用可能なＣＰＵのターボ周波数に基づいて、ＣＰＵを選択することは、ＣＰＵのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、ＣＰＵを選択することを含む、段落ＡＯに記載の非一時的コンピュータ可読記憶媒体。
【０１０５】
ＡＱ．ＣＰＵを選択することは、ＣＰＵを特性データベースから選択することを含み、特性データベースは、複数のサーバの複数のＣＰＵに対応する複数のＣＰＵアイデンティティ（ＩＤ）と、各ＣＰＵ  ＩＤについて、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数と、対応するＣＰＵがそれぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、段落ＡＰに記載の非一時的コンピュータ可読記憶媒体。
【０１０６】
ＡＲ．動作は、所定の時間間隔で、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度において、ＣＰＵ  ＩＤに対応するＣＰＵのそれぞれのターボ周波数を測定することと、対応するＣＰＵがそれぞれのターボ周波数を維持することができるそれぞれの期間を測定することと、対応するＣＰＵ  ＩＤにおけるそれぞれのＣＰＵに対する、測定されたターボ周波数、および測定された持続期間に基づいて、特性データベースを更新することと、をさらに含む、段落ＡＱに記載の非一時的コンピュータ可読記憶媒体。
【０１０７】
ＡＳ．動作は、特性データベースをオンラインデータベースに記憶することをさらに含み、オンラインデータベースは、１つ以上のコンピューティングデバイスによってアクセス可能である、段落ＡＲに記載の非一時的コンピュータ可読記憶媒体。
【０１０８】
ＡＴ．動作は、ＣＰＵを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、段落ＡＯに記載の非一時的コンピュータ可読記憶媒体。
【０１０９】
ＡＵ．増加したワークロードが所定の閾値よりも大きいと判定することは、増加したワークロードが、判定された増加ワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、段落ＡＴに記載の非一時的コンピュータ可読記憶媒体。
【０１１０】
ＡＶ．システムであって、互いに結合され、サーバラック内に収容された複数のサーバであって、複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、複数のサーバと、複数のサーバに結合された配電装置（ＰＤＵ）であって、ＰＤＵは、複数のサーバに電力を供給するように構成されており、ＰＤＵは、最大ラック電流で最大ラック電力まで電力を供給することができる、ＰＤＵと、複数のサーバおよびＰＤＵに結合されたバッテリパックであって、ＰＤＵなしで一定期間、複数のサーバに電力を供給することができるバッテリパックと、複数のサーバ、ＰＤＵ、およびバッテリパックに結合されたワークロード監視モジュールであって、ワークロード監視モジュールは、複数のサーバの各々のワークロードを監視および予測することと、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、総電力が最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、バッテリパックの動作を制御することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
【０１１１】
ＡＷ．ワークロード監視モジュールは、総電力が最大ラック電力を超過していると判定すると、バッテリパックの動作を制御して、複数のサーバへの電力を補うようにさらに構成されている、段落ＡＶに記載のシステム。
【０１１２】
ＡＸ．ワークロード監視モジュールは、最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、バッテリパックからの放電電流を、必要な放電電流に設定することと、を行うようにさらに構成されている、段落ＡＷに記載のシステム。
【０１１３】
ＡＹ．複数のサーバに対する総電力は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバの１つ以上のＣＰＵの予想される増加した電力消費に基づいて、計算される、段落ＡＷに記載のシステム。
【０１１４】
ＡＺ．ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定するようにさらに構成されている、段落ＡＷに記載のシステム。
【０１１５】
ＢＡ．ワークロード監視モジュールは、総電力が最大ラック電力を超過していないと判定すると、ＰＤＵから複数のサーバへのラック電流を、最大ラック電流未満の値に制限するようにさらに構成されている、段落ＡＶに記載のシステム。
【０１１６】
ＢＢ．ワークロード監視モジュールは、ＰＤＵで停電を検出することと、停電を検出すると、それぞれの予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの最大放電電流を総放電電流に設定することと、を行うようにさらに構成されている、段落ＡＶに記載のシステム。
【０１１７】
ＢＣ．ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定するようにさらに構成されている、段落ＢＢに記載のシステム。
【０１１８】
ＢＤ．ＰＤＵは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができ、ワークロード監視モジュールは、ＰＤＵの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパックの動作を制御することと、を行うようにさらに構成されている、段落ＡＶに記載のシステム。
【０１１９】
ＢＥ．ワークロード監視モジュールは、出力電力が最大ラック電力を超過していると判定すると、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たすことと、出力電力が最大ラック電力を超過していないと判定すると、出力電力を最大ラック電力未満の値に制限することと、を行うようにさらに構成されている、段落ＢＤに記載のシステム。
【０１２０】
ＢＦ．ワークロード監視モジュールは、監視されたワークロードが低く、予測されたワークロードが高い場合、バッテリパックを高速で充電するようにさらに構成されている、段落ＡＶに記載のシステム。
【０１２１】
ＢＧ．方法であって、サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、監視および予測することと、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、複数のサーバに電力を供給するように構成された配電装置（ＰＤＵ）から利用可能な最大ラック電流で、総電力が最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、バッテリパックの動作を制御して、予測されたワークロードを満たすことと、を含む、方法。
【０１２２】
ＢＨ．総電力が最大ラック電力を超過していると判定すると、バッテリパックの動作を制御して、複数のサーバへの電力を補うことをさらに含む、段落ＢＧに記載の方法。
【０１２３】
ＢＩ．最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、バッテリパックからの放電電流を、必要な放電電流に設定することと、をさらに含む、段落ＢＨに記載の方法。
【０１２４】
ＢＪ．複数のサーバに対する総電力は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバの１つ以上のＣＰＵの予想される増加した電力消費に基づいて、計算される、段落ＢＨに記載の方法。
【０１２５】
ＢＫ．予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、段落ＢＨに記載の方法。
【０１２６】
ＢＬ．総電力が最大ラック電力を超過していないと判定することと、ＰＤＵから複数のサーバへのラック電流を最大ラック電流未満の値に制限することと、をさらに含む、段落ＢＧに記載の方法。
【０１２７】
ＢＭ．ＰＤＵで停電を検出することと、停電を検出すると、それぞれの予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの最大放電電流を総放電電流に設定することと、をさらに含む、段落ＢＧに記載の方法。
【０１２８】
ＢＮ．予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、段落ＢＭに記載の方法。
【０１２９】
ＢＯ．ＰＤＵの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック動作を制御することと、をさらに含み、ＰＤＵは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができる、段落ＢＧに記載の方法。
【０１３０】
ＢＰ．出力電力が最大ラック電力を超過していると判定すると、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たすことと、出力電力が最大ラック電力を超過していないと判定すると、出力電力を最大ラック電力未満の値に制限することと、をさらに含む、段落ＢＯに記載の方法。
【０１３１】
ＢＱ．１つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、１つ以上のプロセッサによって実行されるとき、１つ以上のプロセッサに、サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、複数のサーバの各々は、１つ以上の中央処理装置（ＣＰＵ）を含む、監視および予測することと、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、複数のサーバに電力を供給するように構成された配電装置（ＰＤＵ）から利用可能な最大ラック電流で、総電力が最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、バッテリパックの動作を制御することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
【０１３２】
ＢＲ．動作は、総電力が最大ラック電力を超過していると判定すると、バッテリパックの動作を制御して、複数のサーバへの電力を補うことをさらに含む、段落ＢＱに記載の非一時的コンピュータ可読記憶媒体。
【０１３３】
ＢＳ．動作は、最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、バッテリパックからの放電電流を、必要な放電電流に設定することと、をさらに含む、段落ＢＲに記載の非一時的コンピュータ可読記憶媒体。
【０１３４】
ＢＴ．複数のサーバに対する総電力は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバの１つ以上のＣＰＵの予想される増加した電力消費に基づいて、計算される、段落ＢＲに記載の非一時的コンピュータ可読記憶媒体。
【０１３５】
ＢＵ．動作は、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、段落ＢＲに記載の非一時的コンピュータ可読記憶媒体。
【０１３６】
ＢＶ．動作は、総電力が最大ラック電力を超過していないと判定することと、ＰＤＵから複数のサーバへのラック電流を最大ラック電流未満の値に制限することと、をさらに含む、段落ＢＱに記載の非一時的コンピュータ可読記憶媒体。
【０１３７】
ＢＷ．動作は、ＰＤＵで停電を検出することと、停電を検出すると、それぞれの予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの最大放電電流を総放電電流に設定することと、をさらに含む、段落ＢＱに記載の非一時的コンピュータ可読記憶媒体。
【０１３８】
ＢＸ．動作は、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたＣＰＵ周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、段落ＢＷに記載の非一時的コンピュータ可読記憶媒体。
【０１３９】
ＢＹ．動作は、ＰＤＵの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック動作を制御することと、をさらに含み、ＰＤＵは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができる、段落ＢＱに記載の非一時的コンピュータ可読記憶媒体。
【０１４０】
ＢＺ．動作は、出力電力が最大ラック電力を超過していると判定すると、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たすことと、出力電力が最大ラック電力を超過していないと判定すると、出力電力を最大ラック電力未満の値に制限することと、をさらに含む、段落ＢＹに記載の非一時的コンピュータ可読記憶媒体。
【０１４１】
結論
主題について、構造的特徴および／または方法論的動作に特有の言語で説明したが、添付の特許請求の範囲に定義された主題は、必ずしも説明された特定の特徴または動作に限定されない。むしろ、特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示されている。
【図１】
2021518936.tif 000003
【図２】
2021518936.tif 000004
【図３】
2021518936.tif 000005
【図４】
2021518936.tif 000006
【図５Ａ】
2021518936.tif 000007
【図５Ｂ】
2021518936.tif 000008
【図６】
2021518936.tif 000009
【図７】
2021518936.tif 000010
【図８】
2021518936.tif 000011
【図９】
2021518936.tif 000012
【図１０】
2021518936.tif 000013
【国際調査報告】
2021518936.tif 000014
2021518936.tif 000015