IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7614703コンピューティング・システムのパフォーマンス調整
<>
  • 特許-コンピューティング・システムのパフォーマンス調整 図1
  • 特許-コンピューティング・システムのパフォーマンス調整 図2
  • 特許-コンピューティング・システムのパフォーマンス調整 図3
  • 特許-コンピューティング・システムのパフォーマンス調整 図4
  • 特許-コンピューティング・システムのパフォーマンス調整 図5
  • 特許-コンピューティング・システムのパフォーマンス調整 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-07
(45)【発行日】2025-01-16
(54)【発明の名称】コンピューティング・システムのパフォーマンス調整
(51)【国際特許分類】
   G06F 9/50 20060101AFI20250108BHJP
   G06N 20/00 20190101ALN20250108BHJP
【FI】
G06F9/50 120A
G06N20/00
【請求項の数】 19
(21)【出願番号】P 2022554227
(86)(22)【出願日】2021-01-19
(65)【公表番号】
(43)【公表日】2023-05-08
(86)【国際出願番号】 IB2021050368
(87)【国際公開番号】W WO2021186253
(87)【国際公開日】2021-09-23
【審査請求日】2023-06-22
(31)【優先権主張番号】16/821,171
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】トミック、サーサ
(72)【発明者】
【氏名】ナジー、ゾルタン
(72)【発明者】
【氏名】パルドン、ニールス
【審査官】田中 幸雄
(56)【参考文献】
【文献】米国特許第9531607(US,B1)
【文献】国際公開第2015/145664(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること、
前記コンピューティング・システムにより前記クライアントから前記計算機ワークロードのサブタスクを実行するための第1のコマンドを受信すること、及び
前記コンピューティング・システムにより前記サブタスクを実行しながら、前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整を実行すること
を含む、方法。
【請求項2】
前記システム・リソースが中央処理ユニット(CPU)リソース、グラフィック・プロセッシング・ユニット(GPU)リソース、フィールド・プログラマブル・ゲート・アレイ(FPGA)リソース、特定目的のアクセラレータ・リソース、ネットワーク・リソース、ランダム・アクセス・メモリ・リソース、不揮発性データ・ストレージ・リソース、及びデータベース・リソースを含む群から選択される
請求項1に記載の方法。
【請求項3】
前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整および前記永続的調整の一方または両方が、前記クライアントに割り当てられた前記第1のシステム・リソースの部分を増加又は減少することを含む、請求項1に記載の方法。
【請求項4】
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価することは、
前記一時的調整の前に前記計算機ワークロードの第1の実行パフォーマンスを定量化すること、
前記一時的調整の間に前記計算機ワークロードの第2の実行パフォーマンスを定量化すること、及び
もしも第2の実行パフォーマンスが第1の実行パフォーマンスを上回るのであれば前記一時的調整が、計算機ワークロードの実行特性を改善したと判断すること
を含む、請求項1に記載の方法。
【請求項5】
さらに、
前記コンピューティング・システムにより前記クライアントへの前記メッセージ中に、前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整の実行によって得られることができるパフォーマンス向上に関する予測を前記クライアントに提供するために、第1の実行パフォーマンス及び第2の実行パフォーマンスの定量化によって得られたデータを含ませること
を含む、請求項1に記載の方法。
【請求項6】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものであり、前記識別方法が、ヒューリスティック・アルゴリズム、機械学習アルゴリズム、及び多変量解析のためのアルゴリズムを含む群から選択される少なくとも1つのアルゴリズムの実行を含む、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含む、方法。
【請求項7】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含み、前記方法は、さらに、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善しないのであれば、前記識別方法を調整すること、
前記コンピューティング・システムにより前記調整された識別方法を適用することであって、前記調整された識別方法が、複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第2のシステム・リソースを識別すること、
前記クライアントへの前記第2のシステム・リソースの前記割り当ての一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第2のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善したか否かを評価すること、
もしも前記クライアントへの前記第2のシステム・リソースの割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第2のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第2のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第2のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含む、方法。
【請求項8】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含み、前記第1のシステム・リソースを識別することは、
前記計算機ワークロードの実行の間に前記コンピューティング・システムにより実行される計算のタイプ、又は動作されるソフトウェアのタイプをクラス化すること、及び
前記コンピューティング・システムにより前記計算のタイプ又は前記ソフトウェアのタイプに関連するリソース使用プロファイルであって、前記実行パフォーマンスを制限しそうな前記第1のシステム・リソースを特定する前記リソース使用プロファイルをコンサルティングすることを含む、方法。
【請求項9】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含み、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価することは、
前記一時的調整の前に前記計算機ワークロードの第1の実行パフォーマンスを定量化すること、
前記一時的調整の間に前記計算機ワークロードの第2の実行パフォーマンスを定量化すること、
前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整の後の前記計算機ワークロードの第3の実行パフォーマンスを定量化すること、及び
もしも前記第2の実行パフォーマンスが前記第1の実行パフォーマンスを上回ることに加え、前記第3の実行パフォーマンスを上回るのであれば前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善すると判断すること
を含む、方法。
【請求項10】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記メッセージ中に、前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整の実行によって得られることができるパフォーマンス向上に関する予測を前記クライアントに提供するために、第1の実行パフォーマンス及び第2の実行パフォーマンスの定量化によって得られたデータを含ませること、
前記コンピューティング・システムにより前記第1の実行パフォーマンス及び前記第2の実行パフォーマンスの間のパフォーマンス差を計算すること、及び前記クライアントへの前記メッセージ中に前記パフォーマンス差を含ませるこ
含む方法。
【請求項11】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること、
前記コンピューティング・システムにより前記クライアントから前記計算機ワークロードのサブタスクを実行するためのコマンドを受信すること、及び完了するまで前記サブタスクを実行すること
前記サブタスクが完了した後、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整を実行すること、及び
前記一時的調整が有効なうちに前記計算機ワークロードの前記サブタスクを再実行すること
を含む方法。
【請求項12】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること、
前記コンピューティング・システムにより前記クライアントから前記計算機ワークロードの第1のサブタスクを実行するための第1のコマンドを受信し、完了するまで前記第1のサブタスクを実行すること、
前記第1のサブタスクが完了した後、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整を実行すること、及び
前記コンピューティング・システムにより前記クライアントから第2のサブタスクを実行するための第2のコマンドを受信すること、及び前記計算機ワークロードの前記第2のサブタスクを実行すること
を含む方法。
【請求項13】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含み、さらに、
前記コンピューティング・システムにより前記クライアントへの前記メッセージに前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行するための価格を挿入すること、及び
前記クライアントからの前記命令の受信に応答して、もしも前記命令が、クライアントが前記価格に合意することを特定する情報を含むのであれば、前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含む方法。
【請求項14】
コンピューティング・システムのパフォーマンスを調整するため、コンピュータが実行する方法であって、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記コンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものである、前記識別方法を適用すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含み、前記クライアントからの前記命令が入札を含み、前記方法は、さらに、
前記コンピューティング・システムにより追加のクライアントへの前記第1のシステム・リソースの割り当ての一時的調整が前記追加のクライアントにおける追加の計算機ワークロードの実行パフォーマンスを改善することを判断すること、
前記コンピューティング・システムにより前記追加のクライアントへと、前記追加のクライアントへの前記第1のシステム・リソースの前記割り当てが永続的に調整できることを示すメッセージを送信すること、
それに応答して前記コンピューティング・システムにより前記追加のクライアントから、前記追加のクライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行するための追加の命令を受信することであって、前記追加の命令が追加の入札を含むものであること、及び
前記命令及び前記追加の命令の受信に応答して、もしも前記入札が前記追加の入札よりも高いのであれば、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行すること
を含む方法。
【請求項15】
前記計算機ワークロードが、前記コンピューティング・システムの仮想マシン上で実行される
請求項1に記載の方法。
【請求項16】
前記コンピューティング・システムの前記システム・リソースがネットワークされた複数のコンピューティング・デバイス越しに分散される
請求項1に記載の方法。
【請求項17】
前記コンピューティング・システムは、前記計算機ワークロードを実行することにより、クラウド・コンピューティング環境におけるインフラストラクチャ・アズ・ア・サービスを提供する
請求項1に記載の方法。
【請求項18】
コンピューティング・システムであって、前記コンピューティング・システムが、
クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信し、
前記クライアントへの前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記計算機ワークロードを実行し、
識別方法を適用し、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別し、
前記クライアントへの前記第1のシステム・リソースの一時的調整を実行し、
前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価し、
もしも前記クライアントへの前記第1のシステム・リソースの割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信し、
前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行し、
前記クライアントから前記計算機ワークロードのサブタスクを実行するための第1のコマンドを受信し、
前記サブタスクを実行しながら、前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整を実行する
ように構成された、コンピュータ・システム。
【請求項19】
コンピューティング・システムに対してパフォーマンスを調整させるためのコンピュータ・システム実行可能なコンピュータ・プログラムであって、前記コンピュータ・プログラムは、前記コンピュータ・システムに、
クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信させ、
前記クライアントへの前記コンピューティング・システムのシステム・リソースを割り当て、かつ前記計算機ワークロードを実行させ、
識別方法を適用し、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別させ、
前記クライアントへの前記第1のシステム・リソースの一時的調整を実行させ、
前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価させ、
もしも前記クライアントへの前記第1のシステム・リソースの割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信させ、
前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行させ
前記クライアントから前記計算機ワークロードのサブタスクを実行するための第1のコマンドを受信させ、
前記サブタスクを実行しながら、前記クライアントへの前記第1のシステム・リソース前記の割り当ての前記一時的調整を実行させる
コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の分野は、一般にコンピューティング・システムのパフォーマンスを調整することに関し、より詳細には、クラウド・ベースのサービス・システムに割り当てられた未使用リソースの量を最小化することに関する。
【背景技術】
【0002】
コンピューティング・システムは、サービスとしての計算を実行することができる。例えば、ワールド・ワイド・ウェブに接続されたコンピューティング・システムは、計算機ワークロードを実行するためのオーダーを受信し、かつその後、計算機ワークロードを実行することができる。コンピューティング・システムは、多数のネットワーク化されたコンピューティング・デバイスから構成することができる。いくつかの例においては、そのようなコンピューティング・システムは、クラウド・コンピューティング・システムとして参照されることができる。
【0003】
コンピューティング・システムのパフォーマンスは、それが利用するリソースのタイプに依存する。例えば、コンピューティング・システムのパフォーマンスは、そのCPUにより、そのGPUにより、又は他のアクセラレータ・リソースにより、そのメモリ・リソースにより、及びそのネットワーク・リソースにより影響を受ける。いくつかのコンピューティング・システムは、一定のタスクの実行に指定されるシステム・リソースを動的にスワッピングすることを許容する。
【0004】
クラウド・サービスは、見積もられたピークのリソース要求に基づいて、ある時にはサイズされ、かつ対応して販売される。ほとんどの計算機環境においては、ピークのリソース要求は必要なく、クラウド・サービス・プロバイダによる非効率なリソース使用となり、かつクラウド・サービスのコンシューマに対してはコストの上昇となる。もしも割り当てられたクラウド・サービスのリソースがクラウド・サービス・カスタマの計算機要求へと、より密接にマップされるのであれば、クラウド・サービス・プロバイダ及びカスタマの両方による、計算機リソースの改善された使用がなされるであろう。
【発明の概要】
【0005】
種々の実施形態は、コンピューティング・システムのパフォーマンスを調整するための方法を提供する。さらなる実施形態は、コンピューティング・システムを提供し、このコンピューティング・システムは、上述の方法を実装するように構成される。追加的に、コンピュータ・プログラム製品の実施形態が提供され、これは、上述の方法にしたがってコンピューティング・システムを機能させる。有利な実施形態が、従属請求項に記載される。本発明の実施形態は、もしもそれらが相互に排他的でない場合には互いに自由に組み合わせることができる。
【0006】
種々の実施形態は、コンピューティング・システムのパフォーマンスを調整するための方法を提供し、
前記コンピューティング・システムによりクライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、
前記コンピューティング・システムにより前記クライアントへと前記コンピューティング・システムのシステム・リソースを割り当て、かつコンピューティング・システムにより前記計算機ワークロードを実行すること、
前記コンピューティング・システムにより識別方法を適用することであって、前記識別方法が複数の前記システム・リソースのうち、前記計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものであること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの一時的調整を実行すること、
前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記一時的調整が前記計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、
もしも前記クライアントへの前記第1のシステム・リソースの割り当ての前記一時的調整が前記計算機ワークロードの前記実行パフォーマンスを改善するのであれば、前記コンピューティング・システムにより前記クライアントへと前記クライアントへの前記第1のシステム・リソースの前記割り当てを永続的に調整できることを示すメッセージを送信すること、
前記コンピューティング・システムにより前記クライアントから前記クライアントへの前記第1のシステム・リソースの前記割り当ての永続的調整を実行するための命令を受信した場合に、前記コンピューティング・システムにより前記クライアントへの前記第1のシステム・リソースの前記割り当ての前記永続的調整を実行することを含む。
【0007】
もう1つの側面においては、本発明は、コンピュータ・システムに関し、コンピュータ・システムは上述した方法を実装するように構成される。もう1つの側面においては、本発明は、コンピューティング・システムを動作するため、その中に実体化されたプログラム命令を有するコンピュータ可読なストレージ媒体を含むコンピュータ・プログラム製品に関し、このプログラム命令は、プロセッサにより実行可能であり、物理的コンピューティング・システムをして、上述の方法にしたがって機能させる。
【0008】
以下において、図面を参照しつつ、実施例のみの目的により、実施形態がより詳細に説明される。
【図面の簡単な説明】
【0009】
図1図1は、クラウド・コンピューティング環境を示す。
図2図2は、クラウド・コンピューティング環境により提供される機能的な抽象レイヤのセットを示す。
図3図3は、コンピューティング・システムのブロック図を示す。
図4図4は、コンピューティング・システムがどのようにしてそのパフォーマンスを調整するかを詳述するフォローチャートを示す。
図5図5は、第1のシステム・リソースのクライアントへの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善することを、コンピューティング・システムがどのようにして判断することができるのかの実施例を詳述するフローチャートを示す。
図6図6は、コンピューティング・システムのシステム・リソースについてのオークションを完了するクライアント及びさらなるクライアントのブロック図を示す。
【発明を実施するための形態】
【0010】
本発明の種々の実施形態の説明は、例示の目的のために提示されるが、開示された実施形態に尽きるとか、限定されることを意図しない。多くの修正例又は変形例は、説明された実施形態の範囲及び精神から逸脱することなく、当業者において自明である。本明細書で使用する用語は、本実施形態の原理、実用的用途、又は市場において見出される技術を超える技術的改善を最良に説明するため、又は本明細書において開示された実施形態を当業者の他の者が理解できるようにするために選択したものである。
【0011】
クラウド・インフラストラクチャは、企業のIT部門から多数の負担を取り去る。彼らはもはやデータ・センターを構築すること、冷却及び電気のようなサポート・インフラストラクチャに加え、サーバ、ネットワーク、ストレージを保守することを必要とせず、これをクラウド・サービス・プロバイダに委ねることができる。しかしながら、いくつかの企業は、もしもそれらがより小さく安価な構成を使用する場合にはそれらのビジネス・ゴールが達成できないので、大規模で高価なインスタンス及びパッケージに頼る。したがって、いくつかの企業は、クラウド・サービスに関して顕著な出費を有する。典型的には、貸与されたクラウド・サービスの大部分は、ほとんどの時間未使用であるが、これは、企業が実際のデータ又は実際の計算機ワークロードに基づいてクラウド・サービスをめったに借用せず、典型的には見積もられたピーク・リソース要求に基づいてクラウド・サービスを借用するためである。
【0012】
このコンテキストが与えられると、ますます多くのクラウド・インフラストラクチャのプロバイダは、彼らがそれらのアプリケーションを動作させることができるインフラストラクチャ・リソースについての要求を、ユーザがサブミットするためにもはや必要ではないサーバレス、ラムダ、又はファンクション・アズ・ア・サービスと言われるものを提供することを提案する。その代わりに、彼らは、単に彼らのアプリケーションを構成するための個別的機能をサブミットすることができ、かつかくしてそれらの機能を実行するために必要とされるインフラストラクチャのスケーリング及びスケジューリングをクラウド・サービス・プロバイダに委ねることができる。そのようなサーバレスの提案について、エンド・ユーザは、リソース要求に関するいくつかの情報と共に実行される機能を典型的に提供する。もしも、未使用リソースの量が最小化され、かつ一定の計算機ワークロードを動作させることにより実現することができるビジネス上の利益に密接に関連づけることができるならば、これは、ユーザ及びクラウド・サービス・プロバイダの両方に好ましいであろう。
【0013】
1つの側面においては、本発明は、コンピューティング・システムのパフォーマンスを調整するための方法に関する。実施例によれば、コンピューティング・システムは、PC、PCsのグループ、ワールド・ワイド・ウェブに接続されたサーバ・システム、サーバのグループ又はクラウド・コンピューティング・システムとすることができる。本方法は、コンピューティング・システムにより、クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信することを含む。ワークロードは、コンピューティング・システムによって実行される計算機タスク又は多数の計算機サブタスクを含むことができる。例えば、計算機タスク又はサブタスクは、計算を実行すること、データを分析し、かつ格納すること、ウェブ・ページを提供すること、又はデータベース機能を提供することを含むことができる。計算機ワークロードのサブタスクは、連続的な期間又は時間の別々の期間内に完了する可能性がある。実施形態によれば、計算機ワークロードは、コンピューティング・システムへのクライアントによる個別的な機能としてサブミットされる。
【0014】
実施形態によれば、コンピューティング・システムは、計算機ワークロードを実行するためのコマンドを受信することに先立って、クライアントからシステム・リソースのための要求を受信することができる。システム・リソースについての要求手段により、クライアントは、どのシステム・リソースが、コンピューティング・システムがワークロードを実行するために利用可能となるべきかを特定することができる。どのシステム・リソースがクライアントによって選択されるかに応答して、タスクは、より迅速に、又はより迅速にではなく実行することができる。
【0015】
本方法はさらに、コンピューティング・システムのシステム・リソースを、コンピューティング・システムによってクライアントに割り当てること及びコンピューティング・システムにより計算機ワークロードを実行することを含む。実施形態によれば、システム・リソースは、クライアントによってサブミットされた仕様、又はコンピューティング・システムそれ自体によって、クライアントに割り当てられる。クライアントに割り当てられたシステム・リソースは、コンピューティング・システムによって実行され、クライアントによって依頼された計算機ワークロードを実行することができる。
コンピューティング・システムは、続けて、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別する識別方法を適用することができる。かくしてコンピューティング・システムは、計算機ワークロードがより迅速に、より効率的に、又はより経済的に実行されることを阻害するボトルネックを識別することができる。コンピューティング・システムはその後、クライアントへの第1のシステムの割り当ての一時的調整を実行する。実施形態によれば、これは第1のシステム・リソースを提供するシステム・コンポーネントを、もう1つのシステム・コンポーネントで交換することを含む。例えば、異なるCPUをクライアントに割り当てることができる。
他の実施形態によれば、調整は、例えばメモリの量について、第1のシステム・リソースの量を調節することを含むことができる。いくつかの実施形態によれば、一時的調整は、事前定義された時間の量の後に戻されるか、又はもしもコンピューティング・システム・リソースが他のタスクのために要求されるのであれば、一定の状況のもとで戻されるかのセンスにおいて、一時的とすることができる。
【0016】
本方法は、さらにコンピューティング・システムにより、クライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するか否かを評価することを含む。実施形態によれば、このことは計算機ワークロード又は計算機ワークロードの部分が、第1のシステム・リソースが調整された場合に、より迅速に実行されるか否かをモニタすることにより達成することができる。もしもクライアントへの第1のシステム・リソースの割り当ての一時的調整が、計算機ワークロードの実行パフォーマンスを改善するのであれば、ピューティング・システムは、クライアントに対して、クライアントへの第1のシステム・リソースの割り当てを永続的に調整することができることを示すメッセージを送信する。実施形態によれば、このメッセージは、システム・コール、ネットワーク・メッセージ、電子メール、コンピューティング・システムの管理インタフェース内に表示されるテキスト・メッセージ、又は如何なる他のタイプのメッセージとすることができる。
【0017】
クライアントから、コンピューティング・システムによってクライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するという指令が受信される場合、コンピューティング・システムは、クライアントへの第1のシステム・リソースの割り当ての永続的調整を実行する。実施形態によれば、この指令は、コンピューティング・システムの管理インタフェースを介してコンピューティング・システムにより受信される。いくつかの実施形態によれば、クライアントへの少なくとも1つの追加的システム・リソースの割り当ては、第1のシステム・リソースの割り当てが変更された場合に変更される。提示される方法は、ボトルネックを識別し、かつ除去することを可能とするので、計算機ワークロードをより迅速に実行することができるという効果を有することができる。
【0018】
1つの実施形態によれば、コンピューティング・システムは、クライアントと通信するように構成される、少なくとも1つのサービス・ゲートウェイを特徴づける。実施形態によれば、サービス・ゲートウェイは、ウェブ・サーバである。実施形態によれば、コンピューティング・システムは、クライアントに対してリソースを割り当てることを許容するリソース・アロケータを特徴づける。いくつかの実施形態によれば、リソース・アロケータは、計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するように構成される。他の実施形態によれば、このタスクは、コンピューティング・システムのもう1つのエンティティにより実行されることができる。実施形態によれば、コンピューティング・システムは、コンピューティング・システムの1つのリソース・アロケータの制御の下で、それぞれのパーティションが多数のリソースを含む多数のパーティションを特徴づけることができる。
【0019】
実施形態によれば、システム・リソースは、中央処理ユニット(CPU)リソース、グラフィック・プロセッシング・ユニット(GPU)リソース、量子プロセッシング・ユニット(QPU)リソース、フィールド・プログラマブル・ゲート・アレイ(FPGA)リソース、特定目的のアクセラレータ・リソース、ネットワーク・リソース、ランダム・アクセス・メモリ・リソース、不揮発性データ・ストレージ・リソース、及びデータベース・リソースを含む群から選択される。これは、計算機ワークロードの必要性に応じて、広い範囲のシステム・リソースの割り当てを調整可能とする効果を有することができる。システム・リソースの他のタイプもまた使用することができる。CPU及びGPUリソースは、科学計算、暗号化及び暗号通貨計算、及び種々のタイプのデータ分析及び処理のために主として必要とされるコンピュータ・リソースである。QPUsは、計算を実行するために量子効果を使用する。フィールド・プログラマブル・ゲート・アレイは、機能的にカスタム化可能な論理ブロックである。これらは、したがって高い程度の効率で特定のタスクを実行するためにプログラムされることができる。特定目的のアクセラレータの他のタイプも同様に使用することができる。オンライン・サービスを提供するといったネットワーク的に重いタスク、又はもしもネットワーク接続が輻輳する場合に、ネットワーク・リソースを増加させることは有益であろう。計算機ワークロードの多くのタイプは、利用可能なランダム・アクセス・メモリの量の増加からの利益を受ける。大量のデータを取扱うタスクは、しばしば不揮発性データ・ストレージ・リソースの増加又はアップデートからの利益を受ける。不揮発性のデータ・ストレージ・リソースは、それが、電力供給が失われた場合にその状態を失わない、ハードディスク・ドライブ(HDD)、ソリッド-ステート・デバイス(SSD)、又は不揮発性メモリ(NVMe)ドライブといったデータ・ストレージ・デバイスである。最後に、データベース的に重いタスクは、データベース・リソースの十分な量で動作されるべきである。実施形態によれば、上述したリソースの割り当てを調整することは、コンピューティング・システムの底流をなすコンポーネントの割り当てを交換することによって達成される。例えば、異なるハードディスク・ドライブを、クライアントに割り当てることができる。さらなる実施形態によれば、リソースの割り当てを調整することは、クライアントに提供されるリソースの量を増加又は減少させることによって達成される。例えば、1000GBの量のストレージがクライアントに割り当てられることができ、かつ調整は、クライアントに対してよりストレージ空間を割り当てることを含むことができる。さらなる実施形態によれば、調整は、ディスク・アクセス速度の制限、ネットワーク優先度などといった、他のパラメータを変更することを含む。
【0020】
実施形態によれば、識別方法は、ヒューリスティック・アルゴリズム、機械学習アルゴリズム、及び多変量解析のためのアルゴリズムを含む群から選択される、少なくとも1つのアルゴリズムの実行を含む。そのようなアルゴリズムは、どのリソースが計算機ワークロードの実行パフォーマンスを改善するために変更されるべきかを識別することを許容することができる。ヒューリスティック・アルゴリズムは、所与の問題に対して最適に近い(close-to-optimal)解を提供するアルゴリズムである。ヒューリスティック・アルゴリズムは、典型的には正確なアルゴリズムよりもより容易に実装され、かつ最も最適ではないが、むしろ迅速な仕方で適切な解を見出すという効果を有する。機械学習アルゴリズムは、種々の機械学習アプローチの使用を可能とする。これらは、典型的には、学習又はトレーニング・フェーズ、及び適用又は推定フェーズに分離される。
学習フェーズでは、機械学習アルゴリズムは、実世界データを使用して情報を取得することができる。適用フェーズでは、機械学習アルゴリズムは、この知識を、計算機ワークロードの実行パフォーマンスを改善するように調整を可能とするシステム・リソースを識別するために適用する。機械学習アルゴリズムの適用は、極めて低い誤り率でボトルネックを識別する効果を有する可能性がある。多変量解析のためのアルゴリズムは、同時に多数のパラメータを変更する効果を見積もることを許容する。そのようなアルゴリズムを適用することは、同時に多数のシステム・リソースの割り当てを調整する効果を判断するために有利であろう。
【0021】
いくつかの実施形態によれば、方法はさらに、もしもクライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善しないのであれば、識別方法を調整し、コンピューティング・システムにより調整された識別方法を適用することであって、調整された識別方法が、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限する第2のシステム・リソースを識別すること、クライアントに対する第2のシステム・リソースの割り当ての一時的調整を実行すること、コンピューティング・システムにより、クライアントに対する第2のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善したか否かを評価すること、コンピューティング・システムにより、クライアントに対して、クライアントへの第2のシステム・リソースの一時的調整が計算機ワークロードの実行パフォーマンスを改善するのであれば、クライアントへの第2のシステム・リソースの割り当てを永続的に調整できることを示すメッセージを送信すること、及びクライアントから、コンピューティング・システムがクライアントへの第2のシステム・リソースの割り当ての永続的調整を実行するとの命令を受信した場合に、コンピューティング・システムにより、クライアントへの第2のシステム・リソースの割り当てを永続的に調整することを含む。もしもクライアントへの第1のシステム・リソースの一時的調整が成功しないのならば、これは、識別方法が手近な状況について失敗又は不適正であることを示す可能性がある。提示されるアプローチは、識別方法が計算機ワークロードを実行するためのボトルネックを真に表すシステム・リソースを首尾よく識別するために変更されることができるという効果を有する可能性がある。
【0022】
実施形態によれば、もしもクライアントへの第2のシステム・リソースの一時的調整が計算機ワークロードの実行を改善するのであれば、コンピューティング・システムは、さらなる識別方法を導入しないであろう。もう1つの実施形態によれば、コンピューティング・システムは、識別方法を、処理を反復するように再度変更することができる。いくつかの実施形態によれば、この処理は、ボトルネックを表すシステム・リソースを首尾よく識別することができる識別方法が選択されるまで多数回反復される。実施形態によれば、この処理は、固定された回数について反復されることができる。もう1つの実施形態によれば、この処理は、固定された回数を過ぎるまで反復されることができる。
【0023】
さらなる実施形態によれば、第1のシステム・リソースを識別することは、さらにコンピューティング・システムによって計算機ワークロードの実行の間に実行される計算のタイプ又は動作されるソフトウェアのタイプを分類すること、及びコンピューティング・システムによって計算のタイプ又はソフトウェアのタイプに関連するリソース使用プロファイルであって、実行パフォーマンスを制限しそうな第1のシステム・リソースを特定するリソース使用プロファイルを調べることを含む。これは、実行されるか又は動作されるソフトウェアのタイプを考慮することにより、迅速かつ正確にボトルネックを識別することを可能とする効果を有する可能性がある。あるタイプの計算は、通常、リソース使用の特有のパターンを有する。コンピューティング・システムは、あるタイプの計算が実行されるか、又はあるタイプのソフトウェアが使用される場合に大量に使用されるシステム・リソースのタイプを識別する、データベースを含むことができるか、又はデータベースへのアクセスを有することができる。この情報は、第1のシステム・リソースが調整されるべきであることを確立するため、識別方法によって使用することができる。例えば、計算機ワークロードは、科学ソフトウェアを動作させることを含むことができる。識別方法は、その後データベースにアクセスして、この特定の科学ソフトウェアが大量のRAMを必要とするという情報を取得することができる。コンピューティング・システムは、その後、クライアントに対して割り当てられたRAMの量を一時的に調整し、かつこれが計算機ワークロードの実行パフォーマンスを変えたか否かを評価することができる。
【0024】
もう1つの実施形態によれば、クライアントへの第1のシステム・リソースの割り当ての一時的、又は永続的、又はそれら両方の調整は、クライアントに対して割り当てられた第1のシステム・リソースの部分を増加又は減少することを含む。例えば、クライアントに割り当てられたRAMの量を増加することができる。また、クライアントに割り当てられたリソースの量を減少することも有益であることについて指摘するべきである。これは、例えば、パフォーマンスを低下させずにクライアントが動作費用又はコストを削減するために役に立つ可能性がある。このことは、ユーザ満足度を改善し、カスタマ維持を改善し、これによってクラウド・サービス・プロバイダのための収入を増加させるという利益を有する可能性がある。
【0025】
さらなる実施形態によれば、コンピューティング・システムにより、クライアントへの第1のシステム・リソースの一時的調整が計算機ワークロードの実行パフォーマンスを改善するか否かを評価することは、一時的調整の前の計算機ワークロードの第1の実行パフォーマンスを定量化すること、一時的調整の間の計算機ワークロードの第2実行パフォーマンスを定量化すること、及びもしも第2の実行パフォーマンスが第1の実行パフォーマンスを上回るのであれば一時的調整が、計算機ワークロードの実行パフォーマンスを改善したと判断することを含む。コンピューティング・システムは、割り当ての一時的調整の前の実行パフォーマンスを、割り当ての一時的調整が有効である間の実行パフォーマンスと比較する。このことは、調整の有り無しでの実行パフォーマンスの間の迅速な比較を取得することを可能とするという効果を有する可能性がある。
【0026】
もう1つの実施形態によれば、本方法は、さらにクライアントへの第1のシステム・リソースの割り当ての一時的調整の後の計算機ワークロードの第3の実行パフォーマンスを定量化すること、及びもしも第2の実行パフォーマンスが第1の実行パフォーマンスを上回ることに加え、第3の実行パフォーマンスを上回るのであれば一時的調整が計算機ワークロードの実行パフォーマンスを改善すると判断することを含む。したがって、一時的調整が戻された後、第3の実行パフォーマンスが定量化される。もしも一時的調整が有益ならば、第3の実行パフォーマンスは、第2の実行パフォーマンスに対して劣るであろう。いくつかの場合には、第1の実行パフォーマンスを第2の実行パフォーマンスだけの比較は不正確さを生成する可能性がある。例えば、一時的調整が有効な間の改善された実行パフォーマンスは、一時的調整に関連しない外部的要因による場合がある。また、第1のシステム・リソースの一時的調整が、クライアントへの第1のシステム・リソースの割り当ての一時的調整が戻された後にでさえ存続する計算機システム内の変化をもたらす可能性がある。この場合、クライアントへの第1のシステム・リソースの割り当ての永続的調整は、必要ではない。したがって、本実施形態は、クライアントへの第1のシステム・リソースの割り当ての永続的調整が有益であるか否かを、より正確な仕方で判断することを許容する効果を有する可能性がある。
【0027】
もう1つの実施形態によれば、本方法は、さらに、コンピューティング・システムによるクライアントへのメッセージ中に、クライアントへの第1のシステム・リソースの割り当ての永続的調整の実行によって得られることができるパフォーマンス向上に関する予測をクライアントに対して提供するために、第1の実行パフォーマンス及び第2の実行パフォーマンスの定量化によって得られたデータを含ませることができる。これは、それによってクライアントがクライアントへの第1のシステム・リソースの割り当ての調整の効果を示す情報が提供されるという効果を有する可能性がある。実施形態によれば、メッセージはまた、さらに、どの程度第1のシステム・リソースの程度を調整するか(例えばRAM追加の量など)、又はいつ、又はどれだけ長く、又はそれらの両方で調整が有効となるであろうことを詳述する時間的スケジュールによって、例えば第1のシステム・リソースのリソース・タイプ(CPU、RAMなど)の調整についての提案に関する情報を含むことができる。
【0028】
他の実施形態によれば、本方法は、さらにコンピューティング・システムにより、第1の実行パフォーマンス及び第2の実行パフォーマンスの間の差を計算すること、及びクライアントへのメッセージ中にパフォーマンス差を含ませることを含むことができる。実施形態によれば、計算機ワークロードの実行時間の差をクライアントに提供することができる。クライアントは、その後、実行時間を比較することができ、かつ第1のシステム・リソースのクライアントに対する割り当てが永続的に調整されるべきか否かを決定することができる。この実施形態は、クライアントへの第1のシステム・リソースの割り当ての調整の効果を定量化し、かつクライアントに対して通信することを許容する。
【0029】
もう1つの実施形態によれば、本方法はさらにコンピューティング・システムによりクライアントから計算機ワークロードのサブタスクを実行するための第1のコマンドを受信すること、及びコンピューティング・システムにより、サブタスクを実行させながら第1のシステム・リソースの割り当ての一時的調整を実行することを含む。実施形態によれば、サブタスクは、サブタスクを実行させるためのクライアントからのコマンドによりトリガされることができる。この実施形態によれば、コンピューティング・システムは、サブタスクを実行させながらクライアントへの第1のシステム・リソースの割り当てを一時的に調節する。このことは、このことが特定のサブタスクに関して一時的調整の有無での実行パフォーマンスの間の即時的、かつ迅速な比較を許容する効果を有する可能性がある。
【0030】
他の実施形態によれば、本方法は、さらにコンピューティング・システムによりクライアントから計算機ワークロードのサブタスクを実行するためのコマンドを受信すること、及び完了するまでサブタスクを実行すること、サブタスクが完了した後、コンピューティング・システムによりクライアントへの第1のシステム・リソースの割り当ての一時的調整を実行すること、及び一時的調整が有効なうちに計算機ワークロードのサブタスクを再実行することを含む。この実施形態によれば、一時的調整は、サブタスクが再実行されている間だけ有効である。このことは、それが最初に実行される間にはサブタスクが如何なる調整によっても妨害されないという効果を有する可能性がある。実施形態によれば、クライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善したか否かを評価することは、サブタスクの実行中の実行パフォーマンスを、サブタスクの再実行の間の実行パフォーマンスと比較することを含むことができる。いくつかの実施形態によれば、サブタスクは、それが最初に実行される場合、又はそれが再実行される場合のいずれかで中止される。例えば、サブタスクの再実行は、調整の有り無しでサブタスクの実行パフォーマンスの比較のため十分なデータが収集された場合に中止することができる。
【0031】
もう1つの実施形態によれば、本方法はさらに、コンピューティング・システムによりクライアントから計算機ワークロードの第1のサブタスクを実行するための第1のコマンドを受信すること、及び完了するまで第1のサブタスクを実行すること、第1のサブタスクが完了した後、コンピューティング・システムによりクライアントへの第1のシステム・リソースの割り当ての一時的調整を実行すること、及びコンピューティング・システムによりクライアントから計算機ワークロードの第2のサブタスクを実行するための第2のコマンドを受信すること、及び計算機ワークロードの第2のサブタスクを実行することを含む。実施形態によれば、クライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善したか否かを評価することは、第1のサブタスクの実行中の実行パフォーマンスを、第2のサブタスクの実行の間の実行パフォーマンスと比較することを含むことができる。この実施形態によれば、一時的調整は、第1のサブタスクが実行されている間には実行されない。その代り、コンピューティング・システムは、第1のサブタスクが完了するのを待機する。第2のサブタスクのみが一時的調整の有効下で実行される。このことは、サブタスクの実行中にリソースの再割り当てを実行する必要がないと共に、比較データを取得するためにサブタスクを再実行する必要がないという効果を有する可能性がある。
【0032】
さらなる実施形態によれば、本方法は、さらにコンピューティング・システムによりクライアントへのメッセージにクライアントへの第1のコンピュータ・リソースの割り当ての永続的調整を実行するための価格を挿入すること、及びクライアントからの命令の受信に応答して、もしも命令が、クライアントが価格に合意することを特定する情報を含むのであれば、クライアントへの第1のコンピュータ・リソースの割り当ての永続的調整を実行することを含む。コンピューティング・システムからクライアントへのメッセージは、したがって、第1のリソースの調整についての提案とすることができる。このことは、第1のシステム・リソースの割り当てを永続的に調整するための価格をクライアントに提示することを可能とするという効果を有する可能性がある。クライアントは、その後、第1のシステム・リソースの割り当ての調整を購入することを決定することができる。実施形態によれば、クライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するための命令は、購入オーダーである。いくつかの実施形態によれば、購入オーダーは、財務的トランザクションにリンクされるか、又は財務的トランザクションの確認を含む。
【0033】
いくつかの実施形態によれば、クライアントからの命令は、入札を含み、本方法はさらに、コンピューティング・システムによりさらなるクライアントへの第1のシステム・リソースの割り当ての一時的調整がさらなるクライアントにおけるさらなる計算機ワークロードの実行パフォーマンスを改善することを判断すること、コンピューティング・システムにより、さらなるクライアントへとさらなるクライアントへの第1のシステム・リソースの割り当てが永続的に調整できることを示すメッセージを送信すること、それに応答してコンピューティング・システムによりさらなるクライアントから、さらなるクライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するための命令を受信することであって、さらなる命令がさらなる入札を含み;及び命令及びさらなる命令の受信に応答して、もしも入札がさらなる入札よりも高いのであればクライアントへの第1のシステム・リソースの割り当ての永続的調整を実行することを含む。したがって、一定のシステム・リソースについての入札を提出する多数のクライアントを許容する方法が提供される。このことは、システム・リソースの提供のために適切な市場価格が決定できるという効果を提供する可能性がある。例えば、RAMリソースの制限された量でのクラウド・コンピューティング・システムのパーティションにおいては、コンピューティング・システムは、第1のクライアント及び多数のさらなるクライアントへとメッセージを送付することができ、このメッセージは、1ギガバイトのRAMリソースの増加がクライアントのそれぞれのワークロードの実行パフォーマンスを改善するであろうことを示す。クライアントのそれぞれは、その後入札を提出することができる。もしも第1のクライアントが最高の入札を提出するであれば、第1のクライアントに割り当てられるRAMの量は、1ギガバイトだけ増加される。もしもさらなるクライアントの1つが第1のクライアントよりもより高い入札を提出する場合、このRAMの量は、そのさらなるクライアントに割り当てられる。
【0034】
実施形態によれば、計算機ワークロードは、コンピューティング・システムの仮想マシン上で実行される。仮想マシンは、コンピューティング・システムがオペレーティング・システムをカプセル化された仕方で動作することを許容する。コンピューティング・システムは多数の仮想マシンを特徴付けることができ、多数の仮想マシンは、まさしく1つのプロセッサ上で動作することができる。このことは、仮想マシンがハードウェア・リソースをより効率的に使用すること、及び異なるクライアントのアプリケーション、ユーザ空間及びオペレーティング・システムを分離することを許容する。リソース使用及び分散は、より容易に調整することができる。実施形態によれば、コンピューティング・システムは、クライアントに対してリソースの割り当てを調整することを許容する仮想マシンを特徴づける。例えば、仮想マシンは、クライアントの計算機ワークロードを実行する際に、仮想マシンがどれだけのRAMの使用を許容するかの調整を許容することができる。
【0035】
実施形態によれば、計算機ワークロードは、コンピューティング・システムのコンピューティング・デバイス上のLinux(登録商標)コンテナ内で実行することができる。Linux(登録商標)コンテナは、コンピューティング・システムがカプセル化された仕方で処理を動作することを許容する。コンピューティング・システムは、多数のLinux(登録商標)コンテナを特徴づけることができ、かつ多数のLinux(登録商標)コンテナは、まさしく1つのプロセッサ上で動作することができる。このことは、Linux(登録商標)コンテナがより効率的にハードウェア・リソースを使用すること、及び異なるクライアントのアプリケーション、ユーザ空間及びオペレーティング・システムを分離することを許容する効果を有する可能性がある。リソース使用及び分散は、より容易に調整することができる。実施形態によれば、コンピューティング・システムは、クライアントへのリソースの割り当ての調整を許容するLinux(登録商標)コンテナを特徴づける。例えば、Linux(登録商標)コンテナは、クライアントの計算機ワークロードを実行する際に、どれだけのRAMをLinux(登録商標)コンテナに使用させるかを許容する。
【0036】
実施形態によれば、コンピューティング・システムのシステム・リソースは、多数のネットワーク化されたコンピューティング・デバイス越しに分散される。このことは、リソースがコンピューティング・システム内で容易に共有されることを可能とする。コンピューティング・システムのシステム・リソースは、ローカル・ネットワーク内のネットワーク化されたコンピューティング・デバイス越しに分散することができる。もう1つの実施形態によれば、システム・リソースは、ワールド・ワイド・ウェブに接続されたコンピューティング・デバイス越しに分散されることができる。コンピューティング・デバイスは、通常のコンピュータ、ウェブ・サーバ、データベース・サーバ、又は他のタイプのコンピューティング・デバイスとすることができる。実施形態によれば、コンピューティング・デバイスは、コンピューティング・システムのシステム・リソースへと、ネットワーク越しに接続される。いくつかの実施形態においては、コンピューティング・システムのコンピューティング・デバイスは、一定のタイプのリソースを提供するように専用化することができる。例えば、コンピューティング・デバイスは、GPUs、QPUs、又はFPGAsといったアクセラレータを介して追加的な計算機能力を提供するように専用化することができ、したがって、多数のアクセラレータ又は異なるパフォーマンスのアクセラレータを搭載することができる。もう1つのコンピューティング・デバイスは、ストレージ・デバイス上のHDDs、SSDs、NVMes、又は他のストレージ・デバイスといった持続性ストレージを提供するように専用化することができ、かつ個別的なストレージ・デバイスのアレイを特徴づけることができる。
コンピューティング・デバイスは、コンピューティング・システム内でネットワークすることができるので、リソースは、これらのリソースを要求する計算機ワークロードに迅速に割当てられる。
【0037】
もう1つの実施形態によれば、コンピューティング・システムは、計算機ワークロードを実行することによってクラウド・コンピューティング環境内のインフラストラクチャ・アズ・ア・サービスを提供する。このことは、インフラストラクチャを便利な仕方でオンデマンドに提供することを可能とする効果を有する可能性がある。用語「クラウド・コンピューティング」は、オンデマンドに計算機リソースを提供することを許容する、コンピューティング・インフラストラクチャのタイプを参照する。実施形態によれば、コンピューティング・システムは、クラウド環境内でオンデマンドにワークロードを実行することができる。実施形態によれば、コンピューティング・システムは、コンピューティング・システムによって提供されるクラウド・サービスにアクセスすることを許容する、サービス・ゲートウェイを含むことができる。実施形態によれば、サービス・ゲートウェイは、ウェブ・サーバである。実施形態によれば、コンピューティング・システムは、リソース・アロケータを特徴づける。リソース・アロケータは、コンピューティング・システム内のリソースを割り当てることを許容するコンピューティング・デバイスとすることができる。実施形態によれば、リソース・アロケータはまた、クラウド内のリソースをスケジューリングするためのスケジューリング能力を提供する。もう1つの実施形態によれば、リソース・アロケータは、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別する機構を含む。
【0038】
本発明はまた、コンピューティング・システムに関し、コンピューティング・システムは、クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信し、コンピューティング・システムのシステム・リソースをクライアントに割り当て、及び計算機ワークロードを実行し、識別方法を適用するようにし、ここで、識別方法は、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限するシステム・リソースの第1のシステム・リソースを識別するものであり、クライアントへの第1のシステム・リソースの割り当ての一時的調整を実行し、第1のシステム・リソースのクライアントへの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するか否かを評価し、もしもクライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するのであれば、クライアントへの第1のシステム・リソースの割り当てが永続的に調整できることを示すメッセージをクライアントに送信し、かつクライアントからのクライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するとの命令を受信した場合に、クライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するように構成される。コンピューティング・システムの実施形態は、任意の組み合わせにおいて、上述した方法のバリエーションを実行することができる。
【0039】
本発明は、また、コンピューティング・システムを動作するため、その中に実体化されたプログラム命令を有するコンピュータ可読なストレージ媒体を含むコンピュータ・プログラム製品に関し、このプログラム命令は、プロセッサにより実行可能であり、物理的コンピューティング・システムをして、クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信させ、コンピューティング・システムのシステム・リソースをクライアントに割り当て、かつ計算機ワークロードを実行させ、識別方法を適用するようにし、ここで、識別方法は、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものであり、クライアントへと第1のシステム・リソースの割り当ての一時的調整を実行させ、第1のシステム・リソースのクライアントへの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するか否かを評価させ、もしもクライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するのであれば、クライアントへの第1のシステム・リソースの割り当てが永続的に調整できることを示すメッセージをクライアントに送信させ、かつクライアントからクライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するとの命令を受信した場合に、クライアントへの第1のシステム・リソースの割り当ての永続的調整を実行させるように構成される。コンピュータ・プログラム製品の実施形態は、コンピューティング・システムをして任意の組み合わせにおいて、上述した方法のバリエーションを実行することができる。
【0040】
本開示は、クラウド・コンピューティングの詳細な説明を含むが、本明細書において列挙される教示の実装は、クラウド・コンピューティング環境、に限定されることは無いことについて理解されるであろう。そうではなく、本発明の実施形態は、現在知られ、また後に開発される如何なる他のタイプのコンピューティング環境との組み合わせにおいても実装することができる。
【0041】
クラウド・コンピューティングは、最小限の管理労力又はサービス提供者との交流をもって、迅速に提供及び開放構成可能なコンピューティング資源(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン及びサービス)の共用されるプールにアクセスするための利便性のある、オンデマンドのネットワーク・アクセスのためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つの配置モデルを含むことができる。
【0042】
特徴は以下のとおりである:
【0043】
オンデマンド・セルフサービス:クラウドのコンシューマは、サーバ時間、及びネットワーク・ストレージといったコンピューティング能力を、サービスの提供者との人間的交流を必要とすることなく必要なだけ自動的に一方向的に提供される。
【0044】
広範なネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、かつ異なったシン又はシッククライアント・プラットフォーム(例えば、モバイルホン、ラップトップ及びPDA)による利用を促す標準的な機構を通してアクセスされる。
【0045】
リソースの共用:提供者のコンピューティング資源は、マルチテナント・モデルを使用し、動的に割当てられる必要に応じて再割り当てられる異なった物理的及び仮想化資源と共に多数の消費者に提供するべく共用される。コンシューマは概ね提供される資源の正確な位置(例えば、国、州、又はデータセンタ)に関する制御又は知識を有さず、抽象化の高度の階層において位置を特定することができるというように、位置非依存の感覚が存在する。
【0046】
迅速な弾力性:機能は、迅速かつ弾力的に、場合によっては自動的に供給され素早くスケールアウトし、迅速に解放して素早くスケールインすることが可能である。コンシューマにとっては、供給のために利用可能な機能は、多くの場合、制限がないように見え、いつでも任意の量で購入することができる。
【0047】
計測されるサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、及びアクティブ・ユーザ・アカウント)に適したいくつかの抽象化レベルで計量機能を活用することによって、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視し、制御し、報告することで、使用されているサービスのプロバイダ及びコンシューマの両方に対して透明性を提供することができる。
【0048】
サービスモデルは、以下のとおりである:
【0049】
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)のようなシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーションの機能も含む、基盤となるクラウド・インフラストラクチャを管理又は制御することはない。
【0050】
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される能力は、プロバイダがサポートするプログラミング言語及びツールを用いて作成された、コンシューマが作成又は獲得したアプリケーションを、クラウド・インフラストラクチャ上に配置することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む、基盤となるクラウド・インフラストラクチャを管理又は制御することはないが、配置されたアプリケーションを制御し、可能であればアプリケーション・ホスティング環境の構成を制御する。
【0051】
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される機能は、処理、ストレージ、ネットワーク、及びその他の基本的なコンピューティング・リソースの提供であり、コンシューマは、オペレーティング・システム及びアプリケーションを含むことができる任意のソフトウェアを配置し、実行させることが可能である。コンシューマは、基盤となるクラウド・インフラストラクチャを管理又は制御することはないが、オペレーティング・システム、ストレージ、配置されたアプリケーションの制御を有し、可能であれば選択ネットワーキング・コンポーネント(例えば、ホストのファイアウォール)の限定的な制御を有する。
【0052】
配置モデルは、以下の通りである:
【0053】
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織のためだけに動作する。これは、その組織又は第三者によって管理することができオン・プレミス又はオフ・プレミスで存在することができる。
【0054】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の利害関係(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。これは、それらの組織又は第三者によって管理することができ、オン・プレミス又はオフ・プレミスに存在することができる。
【0055】
パブリック・クラウド:クラウド・インフラストラクチャは、公衆又は大きな産業グループが利用可能できるようにされており、クラウド・サービスを販売する組織によって所有される。
【0056】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)を組み合わせたものであり、これらのクラウドは、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専有技術によって互いに結合される(例えば、クラウド間の負荷バランスのためのクラウド・バースティング)。
【0057】
クラウド・コンピューティング環境は、無国籍性、粗結合性、モジュール性、及び意味的相互運用性に焦点を合わせたサービス指向のものである。クラウド・コンピューティングの心臓部において、相互接続された複数のノードを含むものがインフラストラクチャである。
【0058】
本発明は、一体化の如何なる可能な技術的な詳細レベルでのシステム、方法、又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、それ上に、プロセッサに対して本開示の特徴を遂行させるためのコンピュータ可読なプログラム命令を有する、コンピュータ可読な記録媒体(又は複数の媒体)を含む。
【0059】
コンピュータ可読な記録媒体は、命令実行デバイスが使用するための複数の命令を保持し格納することができる有形のデバイスとすることができる。コンピュータ可読な媒体は、例えば、これらに限定されないが、電気的記録デバイス、磁気的記録デバイス、光学的記録デバイス、電気磁気的記録デバイス、半導体記録デバイス又はこれらのいかなる好ましい組み合わせとすることができる。コンピュータ可読な記録媒体のより特定的な実施例の非消尽的リストは、次のものを含む:ポータブル・コンピュータ・ディスク、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM又はフラッシュ・メモリ(登録商標))、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・イオンリー・メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリ・スティック、フロッピー・ディスク(登録商標)、パンチ・カード又は命令を記録した溝内に突出する構造を有する機械的にエンコードされたデバイス、及びこれらの好ましい如何なる組合せを含む。本明細書で使用するように、コンピュータ可読な記録媒体は、ラジオ波又は他の自由に伝搬する電磁波、導波路又は他の通信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)といった電磁波、又はワイヤを通して送信される電気信号といったそれ自体が一時的な信号として解釈されることはない。
【0060】
本明細書において説明されるコンピュータ・プログラムは、コンピュータ可読な記録媒体からそれぞれのコンピューティング/プロセッシング・デバイスにダウンロードでき、又は例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク又はワイヤレス・ネットワーク及びそれからの組み合わせといったネットワークを介して外部コンピュータ又は外部記録デバイスにダウンロードすることができる。ネットワークは、銅通信ケーブル、光通信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及びエッジ・サーバ又はこれらの組み合わせを含むことができる。それぞれのコンピューティング/プロセッシング・デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読なプログラム命令を受信し、このコンピュータ可読なプログラム命令を格納するためにそれぞれのコンピューティング/プロセッシング・デバイス内のコンピュータ可読な記録媒体内に転送する。
【0061】
本発明の操作を遂行するためのコンピュータ可読なプログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロ・コード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は1つ又はそれ以上の、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、“C”プログラミング言語又は類似のプログラム言語といった手続き型プログラミング言語を含むプログラミング言語のいかなる組合せにおいて記述されたソース・コード又はオブジェクト・コードのいずれかとすることができる。コンピュータ可読なプログラム命令は、全体がユーザ・コンピュータ上で、部分的にユーザ・コンピュータ上でスタンドアローン・ソフトウェア・パッケージとして、部分的にユーザ・コンピュータ上で、かつ部分的にリモート・コンピュータ上で、又は全体がリモート・コンピュータ又はサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)を含むいかなるタイプのネットワークを通してユーザ・コンピュータに接続することができ、又は接続は、外部コンピュータ(例えばインターネット・サービス・プロバイダを通じて)へと行うことができる。いくつかの実施形態では、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電気回路がコンピュータ可読なプログラム命令を、コンピュータ可読なプログラム命令の状態情報を使用して、本発明の特徴を実行するために電気回路をパーソナライズして実行することができる。
【0062】
本明細書で説明した本発明の側面を、本発明の実施形態にしたがい、フローチャート命令及び方法のブロック図、又はそれらの両方、装置(システム)、及びコンピュータ可読な記録媒体及びコンピュータ・プログラム製品を参照して説明した。フローチャートの図示及びブロック図又はそれら両方及びフローチャートの図示におけるブロック及びブロック図、又はそれらの両方のいかなる組合せでもコンピュータ可読なプログラム命令により実装することができることを理解されたい。
【0063】
これらのコンピュータ可読なプログラム命令は、汎用目的のコンピュータ、特定目的のコンピュータ、または他のプロセッサ又は機械を生成するための他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサ又は他のプログラマブル・データ・プロセッシング装置による実行がフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。これらのコンピュータ、プログラマブル・データ・プロセッシング装置及び他の装置又はこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作の特徴を実装する命令を含む製造品を構成する。
【0064】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、又は他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置又は他のデバイス上でフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装させる。
【0065】
図のフローチャート及びブロック図は、本発明の種々の実施形態にしたがったシステム、方法及びコンピュータ・プログラム製品のアーキテクチャ、機能、及び可能な実装操作を示す。この観点において、フローチャート又はブロック図は、モジュール、セグメント又は命令の部分を表すことかでき、これらは、特定の論理的機能(又は複数の機能)を実装するための1つ又はそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロックにおいて記述された機能は、図示した以外で実行することができる。例えば、連続して示された2つのブロックは、含まれる機能に応じて、1つのステップとして、実際上、実質的に同時的に、部分的又は完全に一時的に重ね合わされた仕方で実行することができ、又は複数のブロックは、時として逆の順番で実行することができる。またブロック図及びフローチャートの図示、又はこれらの両方及びブロック図中のブロック及びフローチャートの図示又はこれらの組み合わせは、特定の機能又は動作を実行するか又は特定の目的のハードウェア及びコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることを指摘する。
【0066】
図1は、例示的なクラウド・コンピューティング環境50を示す。図示するように、クラウド・コンピューティング環境50は、1つ又はそれ以上のクラウド・コンピューティング・ノード10を含み、それらと共にクラウド・コンシューマにより使用される例えばパーソナル・デジタル・アシスタント(PDA)、又はセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、又は自動車コンピュータ・システム54N又はこれらの組合せといったローカル・コンピューティング・デバイスが通信する。ノード10は、互いに通信することができる。これらは、1つ又はそれ以上の、上述したようなプライベート、コミュニティ、パブリック、又はハイブリッド・クラウド又はそれらの組み合わせといったネットワーク内で物理的又は仮想的にグループ化することができる(図示せず)。これは、クラウド・コンピューティング環境50がインフラストラクチャ、プラットホーム、又はクソフトウェア・アズ・ア・サービス又はこれらの組み合わせを提案することと許容し、そのためにコンシューマがローカルなコンピューティング環境上のリソースを維持する必要はない。図1に示されるコンピューティング・デバイス54A~Nは、例示的のみであり、かつコンピューティング・ノード10及びコンピューティング環境50は、如何なるタイプのネットワーク、又はネットワークにアドレス可能な接続(例えばウェブ・ブラウザ)、又はそれらの両方越しにかなるタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0067】
ここで図2を参照すると、クラウド・コンピューティング環境50(図1)により提供される機能の抽象レイヤのセットが示される。予め、図2に示したコンポーネント、レイヤ、及び機能は、例示することのみを意図したものであり、本発明の実施形態は、これらに限定されることは無いことは理解されるべきである。図示したように、後述するレイヤ及び対応する機能が提供される。
【0068】
ハードウェア及びソフトウェアレイヤ60は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61;RISC(縮小命令セットコンピュータ)アーキテクチャに基づく複数のサーバ62;複数のサーバ63;複数のブレード・サーバ64;複数のストレージ・デバイス65;及びネットワーク及びネットワーキング・コンポーネント66を含むことができる。いくつかの実施形態ではソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を含む。
【0069】
可視化レイヤ70は、それから後述する仮想エンティティの実施例が提供される抽象レイヤ;仮想サーバ71;仮想ストレージ72;仮想プライベート・ネットワークを含む仮想ネットワーク73;仮想アプリケーション及びオペレーティング・システム74;及び仮想クライアント75を提供する。
【0070】
1つの実施例では、マネージメント・レイヤ80は、下記の機能を提供することができる。リソース提供部81は、コンピューティング資源及びクラウド・コンピューティング環境内でタスクを遂行するために用いられる他の資源の動的獲得を提供する。計測及び価格設定部82は、クラウド・コンピューティング環境内で資源が使用されるとコストの追跡を提供すると共に、これらの資源の消費に対する課金又は請求を提供する。1つの実施例では、これら資源としてはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティ部は、クラウド・コンシューマ及びタスクの同定及び認証と共にデータ及び他の資源の保護を提供する。ユーザ・ポータル部83は、コンシューマに対するクラウド・コンピューティング環境及びシステム・アドミニストレータへのアクセス性を提供する。サービスレベル・マネージメント部84は、クラウド・コンピューティング資源の割り当て及び管理を提供し、必要なサービス・レベルに適合させる。本発明によれば、このことは、クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信すること、クライアントにシステム・リソースを割り当て、かつ計算機ワークロードを実行すること、識別方法を適用することであって、識別方法は、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別するものであり、クライアントへの第1のシステム・リソースの割り当ての一時的調整を実行すること、第1のシステム・リソースのクライアントへの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するか否かを評価すること、もしもクライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するのであれば、クライアントへの第1のシステム・リソースの割り当てが永続的に調整できることを示すメッセージをクライアントに送信すること、及びクライアントからのクライアントへの第1のシステム・リソースの割り当ての永続的調整を実行するとの命令を受信した場合に、クライアントへの第1のシステム・リソースの割り当ての永続的調整を実行することを含む。サービス・レベル・アグリーメント(SLA)プランニング・フルフィルメント部85は、SLAにしたがって将来的な要求が要求されるクラウド・コンピューティング資源の事前準備を行うと共にその獲得を行う。
【0071】
ワークロード・レイヤ90は、クラウド・コンピューティング環境を利用するための機能の例示を提供する。このレイヤによって提供されるワークロード及び機能の例としては:マッピング及びナビゲーション91;ソフトウェア開発及びライフタイム・マネージメント92;仮想教室教育伝達93;データ分析処理94;トランザクション・プロセッシング95;及びモバイル・デスクトップ96を含む。
【0072】
図3は、コンピューティング・システム301のブロック図を示す。
コンピューティング・システム301は、いくつかの実施例によるクラウド・コンピューティング・システムとすることができる。コンピューティング・システム301は、多数のネットワーク化されたコンピューティング・デバイスを特徴づける。本実施例によれば、コンピューティング・システム301の1つのコンピューティング・デバイスは、サービス・ゲートウェイ302である。サービス・ゲートウェイ302は、ウェブ・サーバ又はコンピューティング・システム301が外部エンティティと通信することを許容するもう1つのコンピューティング・デバイスとすることができる。サービス・ゲートウェイ302は、クライアント303によりアクセスすることができる。クライアント303は、計算機ワークロードを実行するためにコンピューティング・システム301を使用することができる。例えば、クライアント303は、サービス・ゲートウェイ302にシステム・リソースについての要求を送付することができる。サービス・ゲートウェイ302は、その後、コンピューティング・システム301のパーティション305内に含まれるリソース・アロケータ304と通信することができる。パーティション305は、コンピューティング・システム301内の計算機ワークロードを実行するために使用されることができるリソースのグループを含む。システム・リソースのための要求を受信するやいなや、リソース・ロケータ304は、要求されたようにクライアント303にシステム・リソースを割り当てる。計算機ワークロードの実行中、リソース・アロケータ304は、クライアント303へとシステム・リソースの割り当ての一時的又は永続的な変更のために使用することができる。いくつかの実施例によれば、リソース・アロケータ304は、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限するシステム・リソースを識別するように構成することができる。本実施例によるパーティション305は、3つのCPUs306、及び例えばGPUs、FPGAs又はQPUsとすることができる3つのアクセラレータ307、3つのRAMユニット308、及び例えばHDDs又はSDDsとすることができる3つのデータ・ストレージ・デバイス309を含む。コンピューティング・システム301の他のパーティション305は、他の組み合わせにおけるリソースを含むことができる。多数のクライアント303は、計算機ワークロードを実行するためにコンピューティング・システム301を使用することができる。
【0073】
図4は、どのようにしてコンピューティング・システムが機能することができるかを詳述するフローチャートである。コンピューティング・システムは、クライアントから計算機ワークロードを実行するための少なくとも1つのコマンドを受信する(401)。コンピューティング・システムはその後、コンピューティング・システムのシステム・リソースをクライアントに割り当て、かつ計算機ワークロードを実行する(402)。本実施例によれば、コンピューティング・システムは、複数のシステム・リソースのうち、計算機ワークロードの実行パフォーマンスを制限する第1のシステム・リソースを識別する識別方法を適用する(403)。このことは、種々の手段、例えばヒューリスティック・アルゴリズム手段によって、機械学習アルゴリズム手段によって、又は多変量解析のためのアルゴリズム手段によって達成されることができる。いくつかの実施例によれば、計算機ワークロードの実行パフォーマンスを制限する1つ以上のシステム・リソースを識別することができる。
【0074】
コンピューティング・システムはその後、クライアントへの第1のシステム・リソースの割り当ての一時的調整を実行することができる(404)。このことは、クライアントに割り当てられたCPUがもう1つのCPUに交換されること、又はクライアントの割り当てられたストレージ・デバイスがもう1つのストレージ・デバイスに交換されることを意味することができる。他の例によれば、このことは、より多くの又はより少ないRAMがクライアントに割り当てられること、又は計算機ワークロードを実行するために利用可能なネットワーク帯域幅を増加、又は減少することを意味することができる。このことにしたがって、コンピューティング・システムは、クライアントへの第1のシステム・リソースの割り当ての一時的調整が計算機ワークロードの実行パフォーマンスを改善するか否かを評価する(405)。評価の結果は、引き続く決定の基礎である(406)。もしも実行パフォーマンスが改善されないならば、その後、クライアントへの第1のシステム・リソースの割り当ては、永続的とはされない(407)。もしも実行パフォーマンスが改善されるのであれば、その後、コンピューティング・システムは、クライアントに対しクライアントへの第1のシステム・リソースの割り当てが永続的に調整できるとのメッセージを送信することができる(408)。メッセージは、永続的調整のための価格の表示及び第1のシステム・リソースの割り当ての提案された調整に関して期待されるパフォーマンス改善を詳述する提案を含むことができる。
【0075】
もしも、コンピューティング・システムが第1のシステム・リソースの永続的調整を実行するとの命令を受信するのであれば(409)、その後、コンピューティング・システムは、クライアントへの第1のシステム・リソースの永続的調整を実行する(410)。もしも、コンピューティング・システムがそのようなメッセージを全く受信しないのであれば、クライアントへの第1のシステム・リソースの割り当ては、永続的には調整されない(407)。
【0076】
図5は、どのようにしてコンピューティング・システムがクライアントへの第1のシステム・リソースの割り当ての一時的調整が計算器ワークロードを改善することを判断できるかの実施例を詳述するフローチャートである。コンピューティング・システムは、一時的調整の前に計算機ワークロードの第1の実行パフォーマンスを定量化する(501)。コンピューティング・システムはまた、一時的調整中の計算機ワークロードの第2の実行パフォーマンスを定量化することができる(502)。この実施例によれば、コンピューティング・システムは、追加的に一時的調整後の第3の計算機ワークロードの実行パフォーマンスを定量化することができる(503)。コンピューティング・システムは、その後、第1の実行パフォーマンスを上回ることに加えて、第2の実行パフォーマンスが第3の実行パフォーマンスを上回るか否かを評価する(504)。
もしもそうであれば、その後、コンピューティング・システムは、クライアントに対してクライアントへの第1のシステム・リソースの割り当てが永続的に調整できることを示すメッセージを送信することができる(505)。もしも、第2の実行パフォーマンスが第1及び第3の実行パフォーマンスを上回らないのであれば、その後、このことは実行パフォーマンスがクライアントへの第1のシステム・リソースの割り当ての一時的調整の前後で第1のシステム・リソースの割り当てが一時的に調整される間の実行パフォーマンスよりもより良いことを意味する。この場合、コンピューティング・システムは、クライアントに対しクライアントへの第1のシステム・リソースの割り当てが永続的に調整できるというメッセージを送信しない(506)。
【0077】
図6は、コンピューティング・システムのシステム・リソースについてのオークションにおいて競合する、クライアント601及びさらなるクライアント604のブロック図を示す。コンピューティング・システムからのクライアント601へのシステム・リソースの割り当てが調整可能であるとのメッセージを受信した後、クライアント601は、コンピューティング・システムのサービス・ゲートウェイ603に入札602を送付することができる。さらなるクライアント604は、コンピューティング・システムにより、クライアント604へのシステム・リソースの割り当てがさらなるクライアントのそれぞれの計算機ワークロードの実行パフォーマンスを改善することができることを通知される。さらなるクライアントは、さらに入札605を提出することができる。このシナリオにおいて、クライアント601及びさらなるクライアント604は、コンピューティング・システムの制限されたリソースについてのオークションに参加する。例えば、クライアント601及びさらなるクライアント604は、すべてコンピューティング・システムの一定のCPUを使用することを希望することができる。コンピューティング・システムのサービス・ゲートウェイ603はクライアント601からの入札602及びさらなるクライアント604からのさらなる入札605を受信する。この実施例によれば、最高の入札を提出したクライアント601又はさらなるクライアント604がオークションに勝ち、かつコンピューティング・システムの上記のCPUを使用することができる。
図1
図2
図3
図4
図5
図6