JP5853624B2 - ワークロード・メタデータの生成、分析、及び利用のための方法、プログラム、及びシステム - Google Patents

ワークロード・メタデータの生成、分析、及び利用のための方法、プログラム、及びシステム Download PDF

Info

Publication number
JP5853624B2
JP5853624B2 JP2011250635A JP2011250635A JP5853624B2 JP 5853624 B2 JP5853624 B2 JP 5853624B2 JP 2011250635 A JP2011250635 A JP 2011250635A JP 2011250635 A JP2011250635 A JP 2011250635A JP 5853624 B2 JP5853624 B2 JP 5853624B2
Authority
JP
Japan
Prior art keywords
workload
metadata
resource
resources
computational resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011250635A
Other languages
English (en)
Other versions
JP2012108917A (ja
Inventor
ジェイムス デペトロ・マシュー
ジェイムス デペトロ・マシュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2012108917A publication Critical patent/JP2012108917A/ja
Application granted granted Critical
Publication of JP5853624B2 publication Critical patent/JP5853624B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、一般的に計算リソースの管理に関する。より詳細には、計算ワークロード・メタデータの生成、分析、及び利用のためのシステム及び方法に関する。
コンピュータのパフォーマンスを向上させるために、今日では、コンピュータのようなシステム及び電子デバイスは、巨大な計算電子デバイス、中央処理装置(CPU)、及びCPUコア等を利用している。
このようなリソースの管理をすることは、複雑であり、難しい作業である。ワークロード・リクエストの実行のために、このようなリソースの割り当て及び優先付けを行うよう構成されたソフトウェアは、現時点における要求に基づいて、計算デバイスを分散させる受け身的なアプローチが取られる。
計算リソースを管理する方法は、第1のワークロードのための第1のワークロード・メタデータを生成するステップと、第2のワークロードのための第2のワークロード・メタデータを生成するステップと、リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップとを有する。本方法は、リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップと、前記処理エンティティのうちの1つによる実行のための前記第2のワークロードを割り当てるステップとを有する。前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードによって必要な計算リソースを特徴づける。最初に、前記第1のワークロードのメタデータが、前記第2のワークロード・メタデータより優先される。前記第1のワークロード及び前記第2のワークロードは、一つ以上の処理エンティティによって実行される。前記計算リソースを特徴づけている前記リソース・メタデータは、前記処理エンティティが利用できる。リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない。
本発明及びその特徴及び効果の更なる詳細な理解のために、図面を参照しながら以下に説明する。
計算ワークロード・メタデータの生成の分析及び利用のためのシステムの実施例を示す図である。 ワークロード・キャラクタライザによって特徴付けられ、システムの処理エンティティによりワークロードの優先付けを行うためのワークロード・マネジャによって利用される例示のシステムのリースを示す図である。 システムから発生したワークロードがどのように、非効率的にシステムの様々な処理ユニットに割り当てられるかを示す図である。 ワークロード・マネジャが、待ちのワークロードをジョブキューに割り当てる実施例の効率的な割り当て方式を示す図である。 ワークロード・マネジャが実行を優先付けするために、定性的又は相対的な手法によりワークロード・メタデータ及びリソース・ステータスを生成する実施例を示す図である。 ワークロード・キャラクタライザ及びワークロード・マネジャによる、定量的なカテゴリ分け及び優先付けの実施例を示す図である。 計算ワークロード・メタデータの生成、分析、及び利用のための方法の実施例を示す図である。
更なる実施例においては、製造製品は、計算機可読媒体及び計算機実行可能な命令を含む。計算機実行可能な命令は、計算機可読媒体に格納される。この命令は、プロセッサによって読み取ることができる。この命令は、読み込まれ実行されると、プロセッサが、第1のワークロードのための第1のワークロード・メタデータを生成するステップと、第2のワークロードのための第2のワークロード・メタデータを生成するステップと、リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップと、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップと、前記処理エンティティのうちの1つによる実行のための前記第2のワークロードを割り当てるステップとを実行する。前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードによって必要な計算リソースを特徴づける。最初に、前記第1のワークロードのメタデータが、前記第2のワークロード・メタデータより優先される。前記第1のワークロード及び前記第2のワークロードは、一つ以上の処理エンティティによって実行される。前記計算リソースを特徴づけている前記リソース・メタデータは、前記処理エンティティが利用できる。リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない。
更にほかの実施例において、計算ワークロードを管理するシステムは、プロセッサと、前記プロセッサに結合された計算機可読媒体と、前記計算機可読媒体に格納された計算機実行可能な命令とを有する。この命令は、前記プロセッサによって読み取ることができる。この命令は、読み込まれ実行されると、プロセッサが、第1のワークロードのための第1のワークロード・メタデータを生成するステップと、第2のワークロードのための第2のワークロード・メタデータを生成するステップと、リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップと、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップと、前記処理エンティティのうちの1つによる実行のための前記第2のワークロードを割り当てるステップとを実行する。前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードによって必要な計算リソースを特徴づける。前記第1のワークロード及び前記第2のワークロードは、一つ以上の処理エンティティによって実行される。前記計算リソースを特徴づけている前記リソース・メタデータは、前記処理エンティティが利用できる。リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない。
図1は、計算ワークロード・メタデータの生成、分析、及び利用のためのシステム100の実施例を示している。システム100は、ワークロード・キャラクタライザ101及びワークロード・マネジャ102を含んでもよい。システム100は、一つ以上の計算ノード110を含んでもよい。計算ノード110はプロセッサを含んでもよい。そして、例えば、電子デバイス、コンピュータ、サーバ、又はマザーボードにインプリメントされてもよい。このようなデバイスは複数の計算ノード110(例えばラックマウント・サーバ構成)を含んでもよい。そして、複数のブレード・サーバ・ボードを含む。そして、各々のボードが計算ノードを含む。マルチプロセッサ環境において、各々のプロセッサは、計算ノード110であってもよい。システム110は、一つ以上のコア114を含んでもよい。コア114は、命令を読込かつ実行するよう構成されたプロセッサの一部にインプリメントされてもよい。プロセッサ、又は、計算ノード110は、一つ以上のコア114を含んでもよい。システム110は、一つ以上のスレッド118を含んでもよい。スレッド118は、一連の命令でインプリメントされてもよい。この一連の命令は、例えば、コア114又は計算ノード118で実行されるオペレーティングシステムによってスケジュールされ得る。コア114は、一つ以上のスレッド118を含んでもよい。
ワークロード・キャラクタライザ101は、例えば計算ノード110、コア114、又は、スレッド118等の、1つ以上の計算又は処理エンティティのオペレーションを評価するように構成されてもよい。処理エンティティによって処理される一組の計算、又は、処理タスクは、ワークロードとして束ねられてもよい。計算、又は、処理エンティティは、並行に一つ以上のワークロードを実行するように構成されてもよい。このような構成によると、並行的に処理されるワークロードが共有しなければならない計算リソースの不足を生じさせる場合がある。ワークロード・キャラクタライザ101は、処理エンティティによって処理されるワークロードのために必要なリソースを決定するように構成されてもよい。ワークロード・キャラクタライザ101は、所定の利用限度で全ての処理エンティティに利用可能な全てのリソースを評価するよう構成されてもよい。ワークロード・キャラクタライザは、システム100の処理エンティティの各種レベルのワークロードに対して必要とされる必要な計算リソースを測定してもよい。ワークロード・キャラクタライザ101は、このような測定の結果を記録し、かつ特徴メタデータの形でそれらをワークロードにアタッチするよう構成されてもよい。ワークロード・マネジャ102は、処理エンティティによる実行のためのワークロードを割り当て、優先付けするために、このような記録されたメタデータ情報を利用するよう構成されてもよい。一つの実施例において、ワークロード・マネジャ102は、処理エンティティによって同時実行するための、ワークロードを割り当て、かつ、優先付けしてもよい。
ワークロード・キャラクタライザ101は、システム100のワークロードのリソース要求を特徴付けるための、いかなるスクリプト、実行形式、モジュール、ライブラリ、あるいはその他実行可能な適切なディジタルエンティティによってインプリメントされてもよい。ワークロード・マネジャ102は、ワークロードを割り当て、かつ優先付けするための、いかなるスクリプト、実行形式、モジュール、ライブラリ、あるいはその他実行可能なディジタルエンティティによってインプリメントされてもよい。ワークロード・キャラクタライザ101は、ワークロード・キャラクタライザ101をホスティングすることに適したシステム100のいかなる電子デバイスに存在してもよい。ワークロード・マネジャ102は、ワークロード・マネジャ102をホスティングすることに適したシステム100のいかなる電子デバイスに存在してもよい。実施例において、ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、同じ電子デバイスに存在してもよい。別の実施例においては、ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、異なる電子デバイスに存在してもよい。ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、一つ以上のサーバ105に存在してもよい。サーバ105は、システム100の電子デバイスによってインプリメントされてもよい。サーバ105、又はワークロード・キャラクタライザ101又はワークロード・マネジャ102が存在している電子デバイスは、メモリ108に接続されたプロセッサ106を含んでもよい。ワークロード・キャラクタライザ101は、プロセッサ106によって実行され、かつ、メモリ108に記憶されるよう構成されてもよい。ワークロード・マネジャ102は、プロセッサ106によって実行され、かつメモリ108に記憶されるよう構成されてもよい。実施例において、ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、同じ実行形式、スクリプト、ファイル、モジュール又はライブラリにインプリメントされてもよい。別の実施例において、ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、異なる実行形式、スクリプト、ファイル、モジュール又はライブラリにインプリメントされてもよい。
プロセッサ106は、例えばマイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、又は、プログラム命令及び/又はプロセス・データを解釈し、及び/又は実行するように構成された他のいかなるデジタル、又はアナログ回路をも含んでもよい。いくつかの実施例では、プロセッサ106は、メモリ108に記憶されたプログラム命令及び/又はプロセス・データを解釈してもよく、及び/又は実行してもよい。メモリ106は一部又は全てがアプリケーション・メモリ、又はシステムメモリ、又はその両方で構成されてもよい。メモリ106には、一つ以上のメモリーモジュールを持つよう構成された、いかなるシステム、デバイス、又は、装置を含んでもよい。各々のメモリーモジュールは、一定期間プログラム命令及び/又はデータ(例えばコンピュータ可読のメディア)を保持するように構成される、いかなるシステム、デバイス、又は、装置を含んでもよい。
ワークロード・キャラクタライザ101は、ワークロード・メタデータ103を生成するように構成されてもよい。ワークロード・キャラクタライザ101は、システム100のリソースの状態を分析し、かつリソース・ステータス104において特徴づけるように構成されてもよい。ワークロード・マネジャ102は、ワークロード・メタデータ103及び/又はリソース・ステータス104にアクセスするように構成されてもよい。ワークロード・マネジャは、システム100の処理エンティティ上のワークロードの実行を優先させ、かつ割り当てるために、ワークロード・メタデータ103及びリソース・ステータス104を使用するように構成されてもよい。
ワークロード・キャラクタライザ101は、システム100の各種レベルから処理エンティティのワークロード及びリソースを特徴づけるように構成されてもよい。例えば、ワークロード・キャラクタライザ101は、ワークロード、及び一つ以上の計算ノード110のリソース特徴を分析するように構成されてもよい。計算ノード110は、ネットワーク112を介して通信するように構成されてもよい。ネットワーク112は、通信のためのいかなる適切なネットワークで実行されてもよい。例えば、インターネット、イントラネット、広域ネットワーク、ローカル・エリア・ネットワーク、バックホールネットワーク(back−haul−networks)、ピアツーピア−ネットワーク、又は、これらのいかなる組合せであってもよい
別の実施例において、ワークロード・キャラクタライザ101は、与えられた処理ユニット(例えば計算ノード110)の一つ以上のコア114のワークロード及びリソースを分析するように構成されてもよい。このようなコアは単一の計算ノード110の各々で動作するものであってもよい、又は、複数のコアが単一の計算ノードで動作してもよい。さらに別の実施例では、ワークロード・キャラクタライザ101は、一つ以上のスレッド118のワークロード及びリソースを分析するように構成されてもよい。このようなスレッドは単一のコア114の各々で動作してもよい。あるいは、複数のスレッドは単一CPUで動作してもよい。このようなスレッドは、コア114、CPU、又は、他の処理エンティティによって並行的な実行として同時に動作していてもよい。
各々のこれらの実施例において、処理エンティティは、システム・リソースとして有限値を有している。このようなリソースは、リソースの共有を試みる処理エンティティによって異なってもよい。例えば、コア114は、CPU 116及び他の計算ノード110のリソースへのアクセスを共有しようとしてもよい。他の例では、スレッド118は、コア・リソース120、又は、コア114の他の部分を共有するように構成されてもよい。ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、コンピュータ計算ノード110、コア114、スレッド118、各々のレベル、例えばCPU 116、又は、コア・リソース120のリソースに通信接続されてもよい。ワークロード・キャラクタライザ101は、所定のレベルの利用可能リソースを分析するように構成されてもよい。例えば、ワークロード・キャラクタライザ101は、計算ノード110が利用できるリソースを分析するように構成されてもよい。他の例では、ワークロード・キャラクタライザ101は、コア114(例えばCPU 116)が利用できるリソースを分析するように構成されてもよい。他の例では、ワークロード・キャラクタライザ101は、スレッド118(例えばコア・リソース120)が利用できるリソースを分析するように構成されてもよい。ワークロード・キャラクタライザは、リソース・ステータス104にこの分析の結果を蓄積するように構成されてもよい。
ワークロード・マネジャ102は、所定のレベルの処理エンティティの実行の優先順位を決定するために、ワークロード・メタデータ103及びリソース・ステータス104にアクセスするように構成されてもよい。
図2は、ワークロード・キャラクタライザ101によって特徴づけられ、かつシステム100の処理エンティティによってワークロードの実行を優先させるためにワークロード・マネジャ102によって利用され得るシステム・リソースの具体例である。このようなリソースは、処理エンティティの性質に従って、異なるレベルに分けられてもよい。例えば、計算ノードのリソース202は、計算ノード110が利用できるシステム・リソースを示してもよい。他の例では、CPUリソース212は、コア114が利用できるリソースを示してもよい。さらに別の例では、コア・リソース222は、スレッド118によって実行できるリソースを示してもよい。
計算ノードのリソース202は、実行するために、計算ノード110に役立ついかなるリソースを含んでもよい。このような計算ノードのリソースは、例えば、利用できるシステムメモリ204、ノード間バンド幅205、与えられた計算ノード206のCPU使用(cpu usage)、パワー使用限度207及び/又はI/O接続208を含んでもよい。
CPUリソース212は、実行するために、コア114に適するいかなるリソースを含んでもよい。このようなリソースは、以下を含むが、これに限定されるものではない。すなわち、RAMとCPUとのバンド幅214、CPU間バンド幅215、共用キャッシュ216、メモリ使用状況217、パワー使用限度218及び/又はアドレス変換バッファ(「TLB」)219が挙げられる。CPUリソース212は、与えられた計算ノード110のCPU使用状況206を示してもよい。
コア・リソース222は、実行するために、スレッド118に適したいかなるシステム・リソースを含んでもよい。このようなリソースには、浮動小数点ユニット224、整数ユニット225、コア間バンド幅226、パワー使用限度227、さまざまなレジスタ228、及びコア占有キャッシュ229が含まれ得る。なお、これらに制限されない。コア・リソース222は、CPUリソース212の与えられたコアのメモリ使用状況217を形成してもよい。
図3は、システムから発生したワークロードがどのように、非効率的にシステムの様々な処理ユニットに割り当てられるかを示す図である。ジョブスケジューラキュー302は、一つ以上のジョブ310、又は、システム100で実行される予定のワークロードを含んでもよい。ジョブスケジューラキュー302は、ワークロード・マネジャ102によって維持されてもよい。図3の実施例において、ジョブスケジューラキュー302は、一つ以上の利用できるCPU 116上での実行のためのさまざまなワーク・ジョブを含んでもよい。CPU、CPU及びCPUの3台のCPUが実行に利用できる。各々のCPUは、関連づけられたジョブキュー304−308を有してもよい。例えば、CPUはCPUジョブキュー#1 304に対応してもよい。CPUはCPUジョブキュー#2 306に対応してもよい。そして、CPUはCPUジョブキュー#3 308に対応してもよい。各々のジョブキュー304−308は、一つ以上のワークロードを有し、指定されたCPUで実行される。ワークロード・マネジャ102は、ジョブスケジューラキュー302から、一つ以上のワークロード312を利用できるジョブキュー304−308に割り当てるように構成されてもよい。ワークロード・マネジャがワークロード・メタデータ103、又はリソース・ステータス104にアクセスしない場合、ワークロード・マネジャ102は、特定のジョブが処理エンティティの、相当量のリソース、プールされた利用可能な特定のリソースにストレスを与え、これを要求している情報を持たないこととなる。例えば、いくつかのワークロード310は特にCPUとRAMとの間のバンド幅にストレスを与えてもよい。他のものは共用キャッシュにストレスを与えてもよい。そして、他のものはCPU間接続にストレスを与えてもよい。更に、各々のCPUジョブキュー302−308には、異なるタイプのワークロードがロードされてもよい。CPUジョブキュー304−308においてすでにロードされるワークロードの性質、及びジョブスケジューラキュー310から割り当てられるワークロード312の性質に関する情報なしでは、ワークロード・マネジャ102は、ジョブスケジューラキュー310から、所定のCPUジョブキューに、ワークロード312の効果的な割当てをすることができない。例えば、CPUジョブキュー304−308の中で、CPUジョブキュー#2は、実行に指定された2つのワークロードしか持っていない。CPUジョブキュー#2は、待機中ワークロードが最少の数であるため、次のワークロードの割り当てが受信されるであろう。しかしながら、この両者のワークロードは、CPUとRAMとの間のバンド幅をかなり消費するワークロードである。ワークロード・スケジューラ302は、CPUとRAMとの間のバンド幅をかなり消費するワークロード310にどのCPUジョブキューを割り当てるべきかについて決めるが、ワークロード・マネジャ102は、CPUジョブキュー#1、又は、CPUジョブキュー#3の代わりにこのようなワークロードをCPUジョブキュー#2に送信する。これは、非効率的な割り当てである。そのようなワークロードがCPUジョブキュー#2よりも大きなワークロードであり、CPUジョブキュー#1及び#3は、ワークロード312を効率的に処理できるにもかかわらず、ワークロード・マネジャ102は、CPUジョブキュー#1及び#3が実行のための3つの待機中ワークロードを有することしか判断できない。
図4は、ワークロード・マネジャ102が待機中ワークロードをジョブキューに割り当る効果的な割り当て方式についての実施例を示している。この実施例において、ワークロード・マネジャ102は、例えばワークロード・メタデータ103及びワークロード・マネジャ102がワークロード310をジョブキュー304−308に効率的に割り当るリソース・ステータス104の情報にアクセスする。例えば、CPUジョブキュー#2は、CPUジョブキュー#1又はCPUジョブキュー#3よりも多い3つの待機中のワークロードを持っているとする。ワークロード・マネジャ102は所定のワークロード310を、いずれのジョブキューに割り当てるべきかについて決定するように構成され、割当の際、リソースの競合を回避する。例えば、ワークロード310は、重要なCPUとRAMとの間のバンド幅リソースを消費する。ワークロード・メタデータ103及びリソース・ステータス104の情報を使用することにより、ワークロード・マネジャ102は、ワークロード310のメタデータの性質、これに加えて各々のジョブキュー304−308に待機中のワークロードの性質を確認し得る。その結果として、ワークロード・マネジャ102は、CPUジョブキュー#2には、CPUジョブキュー#1、又は、CPUジョブキュー#3より多くのジョブが待機しているにもかかわらず、待機中ワークロード310をCPUジョブキュー#2に割り当てるように構成されてもよい。CPUジョブキュー#1及び#2の両方が既に、実行においてCPUとRAMとの間のバンド幅にストレスを与えるような待機中ワークロードを有しているため、ワークロード・マネジャ102は上述のような割り当てを与える構成としてもよい。実施例において、ワークロード310は、並行して処理エンティティによって実行されてもよい。
図1に戻る。ワークロード・キャラクタライザ101は、システム100の処理エンティティのワークロードを特徴づけるよう、いかなる適切な方法によって構成されてもよい。図2で示すリソースだけでなく、ワークロード・キャラクタライザは、いかなる適切なリソースを特徴づけてもよい。一つの実施例において、ワークロード・キャラクタライザ101は、システム100の処理エンティティから、待機中ワークロードを、ワークロードのリソースの利用のプロファイルを作り特徴づけるための適切な電子デバイス上にロードするように構成されてもよい。ワークロード・キャラクタライザ101は、ワークロードのリソースの消費レベルを平均するために異なるサンプルデータを使用して、特徴づけられる各々のワークロードを複数回実行するように構成されてもよい。ワークロード・キャラクタライザ101は、システム100の仕様に基づいてこのような特徴づけを実行するように構成されてもよい。例えば、ワークロード・キャラクタライザ101が80%のCPUメモリ帯域幅を使用する所定のワークロードを分析した場合、ワークロード・キャラクタライザ101は、このように判断をするように構成されてもよい。すなわち、利用できるCPUメモリ帯域幅が1秒につき20ギガビット(「Gbps」)であり、ワークロードは16GB/sのCPUメモリ帯域幅を使用していた場合が挙げられる。このような技術を用いて、ワークロード・キャラクタライザ101は、所定のワークロードの必要性に基づいて、ワークロードを特徴づけるように構成されてもよい。ワークロード・キャラクタライザ101は、ボトルネックの原因となるリソースを特定するように構成されてもよい。
実施例において、ワークロード・キャラクタライザ101は、さまざまなワークロードの要求、及び定性的又は相対的な観点から処理エンティティが利用できるリソースを分析するように構成されてもよい。このような実施例では、ワークロード・マネジャ102は、ワークロード・メタデータ103及びリソース・ステータス104からこのような相対的情報に基づいてワークロードの実行を優先させるように構成されてもよい。別の実施例において、ワークロード・キャラクタライザ101は、さまざまなワークロードの要求及び処理エンティティが利用できるリソースを定量的方法で分析するように構成されてもよい。このような実施例では、ワークロード・マネジャ102は、ワークロード・メタデータ103及びリソース・ステータス104から定量的情報に基づいてワークロードの実行を優先させるように構成されてもよい。
図5は、ワークロード・キャラクタライザ101による、定性的又は相対的な手法によるワークロード・メタデータ103及びリソース・ステータス104の生成の例を示す。その結果、ワークロード・マネジャ102は実行を優先させてもよい。コア・オペレーション・ステータス502は、システム100の所定のレベルで利用できるリソースの状態を示してもよい。コア・オペレーション・ステータス502は、処理エンティティによってすでに実行に割り当てられたワークロードのリソース要求を含んでもよい。ワークロードキュー504は、システム100の所定のレベルのさまざまな処理エンティティによって実行のために要求されるワークロードを含んでもよい。ワークロードキュー504は、一つ以上のワークロード506を含んでもよい。所定のワークロード506の、又は、コア・オペレーション・ステータス502のリソース情報は、ワークロード・キャラクタライザ101によって設定されるように構成されてもよい。このようなリソース情報は、ワークロード・メタデータ103及びリソース・ステータス104に対応してもよい。ワークロード・キャラクタライザ101は、定性的に所定のワークロード506の情報を特徴づけるように構成されてもよい。ワークロード・キャラクタライザ101は、例えば、ベンチマーク、他のワークロードの情報、又は、利用可能なシステム・リソースに関連して所定のワークロードの情報を特徴づけるように構成されてもよい。ワークロード・キャラクタライザ101は、所定のワークロードのリソース要求をいかなる適切な分割(segmentation)によって特徴づけるように構成されてもよい。
例えば、ワークロード・キャラクタライザ101は、所定のワークロード506により必要とされるリソースを、1つ以上の可能な利用のカテゴリ(例えば、重い利用(heavily usage)、軽い利用(light usage))に特徴付けるよう構成されてもよい。同様に、ワークロード・キャラクタライザ101は、利用に関する一つ以上の可能なカテゴリに、一つ以上の処理エンティティのオペレーションの状態を特徴づけるように構成されてもよい。ワークロード・キャラクタライザ101は、例えば、コア・オペレーション・ステータス502のコアにおいて利用できるリソースを、軽い利用、又は重い利用に特徴づけるように構成されてもよい。ワークロード・キャラクタライザ101は、ワークロードキュー504の各々のワークロード506のために、このような特徴を決定するように構成されてもよい。例えば、図5で、ワークロード・キャラクタライザ101は、コア・オペレーション・ステータス502によって示される所定のコアが、浮動小数点ユニット224、整数ユニット225、パワー利用限度227に関連づけられたそのリソースに関して、軽く利用されていると決定するように構成されてもよい。ワークロード・キャラクタライザ101は、そのコア間バンド幅226、さまざまなレジスタ228、及びコア占有キャッシュ229に関して、コアのリソースが重く利用されていると決定するように構成されてもよい。同様に、この例において、ワークロード・キャラクタライザ101は、ワークロードAは不動小数点ユニット224,コア間バンド幅226,及びコア占有キャッシュ229を重く利用すると決定するよう構成されてもよく、その他のリソースに関しては軽く利用していると決定してもよい。ワークロード・キャラクタライザ101は、ワークロードB、C及びDに対して、同様の決定を行うよう構成されてもよい。
ワークロード・マネジャ102は、例えばコア・オペレーション・ステータス502,及び例えばワークロードキュー404のようなワークロードキューから、最適化された、又は向上した所定のコアにおいて実行されるワークロードの割り当てを決定するよう構成されてもよい。ワークロード・マネジャ102は、所定の処理エンティティにおいてワークロードの実行を最適化するためのいかなる適切な方式を採用するよう構成されてもよい。一つの実施例において、ワークロード・マネジャ102は、重いリソースの利用特徴を有する複数のワークロード506を、所定の処理エンティティによる実行に割り当てることを回避するように構成されてもよい。別の実施例において、ワークロード・マネジャ102は、所定のリソース・カテゴリの重いリソースの利用特徴を持つワークロード506を、その特徴に対するリソースがすでに重く圧迫されているコアによる実行に割り当てることを回避するように構成されてもよい。別の実施例において、ワークロード・マネジャ102は、処理エンティティの実行のためのボトルネックを発生させることを回避するためにワークロードキュー504の一つ以上のワークロード506を評価するように構成されてもよい。例えば、コア・オペレーション・ステータス502により示されるリソース・ステータス、及びワークロード506により示されるリソース要求が与えられた場合、システム100のより効率的な実行を提供するために、ワークロード・マネジャ102は、ワークロードA、又はワークロードBを送る前にワークロードC、又はワークロードDを送るように構成されてもよい。ワークロード・マネジャ102は、ワークロードBをワークロードCと比較するように構成されてもよい。ワークロードB及びワークロードCは両方とも数値演算プロセッサの重い利用を必要とする。しかし、ワークロードBはまた、コア占有キャッシュ229の重い利用を要求する。
ワークロードBが、初期の優先順位に関してワークロードキュー504においてワークロードCより前に位置するが、コア占有キャッシュの重い利用を行うワークロードBの要求がコア・オペレーション・ステータス502に示す利用可能リソースと競合を起こすため、ワークロード・マネジャ102は、ワークロードCの実行を優先させるように構成されてもよい。特に、コアのコア占有キャッシュ229は、すでに重く利用される。
図6は、定量的分類の例、及びワークロード・キャラクタライザ101及びワークロード・マネジャ102による優先順位である。所定の処理エンティティのリソースの利用ステータス、又はシステム100のレベルは、ノードのオペレーション・ステータス602によって反映されてもよい。
ノードのオペレーション・ステータス602は、処理エンティティによってすでに実行に割り当てられるワークロードのリソース要求を含んでもよい。ノード・オペレーション・ステータス602は、リソース(例えばノード間バンド幅205、CPU利用206、パワー利用限度207、利用できるシステムメモリ204及びI/O接続208)を反映した領域を含んでもよい。ノード・オペレーション・ステータス602は、このようなリソースの各々の利用の現在のレベルの表示、及びこのようなリソースの各々の最大能力の表示を含んでもよい。例えば、CPUの現在の利用は85%、CPUは0%、ノード間バンド幅2GB/s、パワー利用300ワット、利用できるシステムメモリ384ギガバイト、及びI/O接続5GB/sである。ワークロード・キャラクタライザ101は、例えば、一つ以上の計算ノード110のオペレーションに基づいて、ノード・オペレーション・ステータス602を決定するように構成されてもよい。システム100の他の処理エンティティのためのオペレーション・ステータスを作成するように構成されてもよい。
ワークロード・キャラクタライザ101は、ワークロードキュー604に存在する1つ以上のワークロード606を特徴付けるよう構成されてもよい。ワークロードキュー604は、システム100のさまざまな処理エンティティによる実行のために待機中の、システム100のさまざまなワークロードを優先させるように構成されるデータ構造であってもよい。所定のワークロード606に対応するワークロードキュー604の各々のエントリは、システム・リソースを指定する領域を含んでもよい。これは、ノード・オペレーション・ステータス602における指定に類似している。このような指定は、所定のワークロードのリソース要求を反映している。例えば、ワークロードAは、70%CPUのリソース、10GB/sのノード間バンド幅、最小のパワー利用、256ギガバイトのシステムメモリ及び1.5GB/sのI/O接続を必要としている。
ワークロード・マネジャ102は、実行可能な利用できるそれらのリソース要求及びリソースと比較して、ワークロードキュー604の要素の優先順位を評価するように構成されてもよい。ワークロード・マネジャ102は、さまざまなワークロード606を実行するためのシステム・リソースの最も効率的な利用を決定するために、いかなる適切な優先順位メカニズムを利用するように構成されてもよい。一つの実施例において、ワークロード・マネジャ102は、ワークロード606を、ワークロードを適切に実行するための容量が存在するかどうかに基づいて、所定の処理エンティティによる実行に割り当てるように構成されてもよい。例えば、ワークロード・マネジャ102は、ノード・オペレーション・ステータス602において示されるように、利用可能リソースと比較してワークロードAを評価してもよい。このような実施例において、ワークロード・マネジャ102は、ノードが、CPUリソース、I/O接続及びパワー利用に関してワークロードAを実行する能力を有するが、リソースは、ノード間バンド幅及びシステムメモリに関しては、ワークロードAを実行するために十分にないと決定するように構成されてもよい。これに対して、ワークロード・マネジャ102は、ノード・オペレーション・ステータス602において示されるように、充分なリソースが利用できるので、ワークロードB及びワークロードCをワークロードAの前に送るよう決定するように構成されてもよい。このような実施例において、ワークロードBはCPUによって実行に割り当てられ、かつワークロードCはCPUによって実行が割り当てられてもよい。ワークロード・マネジャ102はワークロードDがCPU上での実行のために送信されてもよいと決定するように構成されてもよい。しかしながら、ワークロードB、又はワークロードCのどちらとも一緒には、実行されないようにしてもよい。
ワークロード・マネジャ102は、定性的、相対的、又は定量的評価のいずれの場合であっても、所定のワークロードキューのワークロードの当初の割り当てを考慮するように構成されてもよい。例えば、ワークロードB及びCが当初からワークロードDより高い優先順位でワークロードキュー504において配置されたために、ワークロードB及びワークロードCはワークロードDの前にコアによって実行されるよう割り当てられてもよい。
例えば図2に示すような所定のリソースを特徴づけるために利用される容量及び容量の単位は、システム100の特定の特徴に従って異なってもよい。容量の単位、最大容量、最大容量に影響を与えるファクタ及び利用に関して、表1ないし表3に示す。
Figure 0005853624
表1は、システムを形成している複数ノードで共有される多ノード・システムのサンプル・リソースを示す。このようなリソースに対するメタデータは、ワークロード・マネジャ102によって決定されてもよい。そして、その結果として、このようなメタデータは、オペレーション、又はノードに対するワークロードの、又はこのようなノードによる共用リソースへのアクセスの割当てを優先させるために利用されてもよい。
表1において、CPU当たりのCPU利用は、最大の利用を100%として、パーセントでの利用として測定されてもよい。利用に影響を与えるファクタ及び最大値は、クロックレート、特定のプロセッサデザイン、及びCPUアイドリングにかかる時間を含んでもよい。ノード間バンド幅は、GB/sで測定されてもよい。例えば、最大10GB/sである。ノード間バンド幅に影響を与えるファクタとして、接続に用いられる技術のタイプ(例えば、インフィニバンド(Infiniband)、又は10ギガバイトのイーサネット(登録商標))、及び利用できるチャネル数が含まれてもよい。利用できるシステムメモリは、ギガバイトで計測されてもよい。例えば512ギガバイトである。利用できるシステムメモリは、システム100の特定の設計、インストールされているメモリ数に影響される。パワー利用制限は、ワットで計測できる。例えば最大600ワットが挙げられる。パワー利用制限は、リソースのアイドリング、リソース利用、及びシステム100の特定の設計に影響される。I/O接続リソースは、GB/sによって計測されてもよい。例えば、最大I/O接続としては、5GB/sが挙げられる。I/O接続リソースは、入出力チャネル数、及び入出力接続に用いられる技術により制限される。
Figure 0005853624
表2は、処理ユニットのサンプル・リソースを示し、マルチコア処理ユニットにおいて、複数のコアによって共有される。このようなリソースに対するメタデータは、ワークロード・マネジャ102によって決定されてもよい。そして、このようなメタデータは、オペレーション、コアに割り当てるワークロード、又はコアに共有されるリソースへのアクセスの割り当ての優先順位を決めるために利用されてもよい。
表2において、コア当たりで決定されるコア利用は、100%を最大とするパーセント利用率で評価されてもよい。リソースの利用に影響するファクタは、いかなるプロセッサのクロックレート、このようなプロセッサの特定の設計、及びコアがアイドリングに要した時間を含んでもよい。CPU間バンド幅は、GB/sとして測定されてもよい。例えば、30GB/sである。クロックレート及び特定のコア又はプロセッサの設計は、CPU間バンド幅に影響する。CPUとRAMとの間のバンド幅は、GB/sにより測定されてもよい。例えば最大値20GB/sが例として挙げられる。クロックレート、メモリチャネル数、及びプロセッサ又はコアの特定の設計は、CPUとRAMとの間のバンド幅に影響する。共用キャッシュは、メガバイトで測定されてもよい。例としては12メガバイトが挙げられる。共用キャッシュは、システム100のプロセッサ又はコアの特定の設計に影響を受ける。パワー利用制限は、ワットで測定できる。例えば125ワットが挙げられる。クロックレート、電源電圧、システム100のプロセッサの特定の設計、所定のコアのアイドリングにかかる時間は、利用及び最大パワー利用に影響する。TLBは、エントリの総数で測定され得る。最大1,000が例として挙げられる。このようなバッファの最大は、システム100の特定の設計によって決定されてもよい。
Figure 0005853624
表3は、マルチスレッドのコアの複数のスレッドで共有し得るコアのサンプル・リソースを示す。このようなリソースに対するメタデータは、ワークロード・マネジャ102によって決定されてもよい。この結果、このようなメタデータは、スレッドのオペレーションの優先順位付け、又は、スレッドによる共有リソースへのアクセスのオペレーションの優先順位付けに用いられる。
表3において、数値演算プロセッサの利用は、1命令当たりのサイクル数(クロック数)によって測定されてもよい。浮動小数点ユニットのオペレーションの最大は、例えば1命令当たり2.0サイクルである。クロックレート及びシステム100の特定の設計が不動小数点ユニットの利用及び最大値に影響する。整数ユニットは、1命令当たりのサイクル数で計測されてもよい。例えば、1命令当たり1.5サイクルが例としてあげられる。コア間バンド幅は、GB/sで測定されてもよい。最大値としては、1,000GB/sが挙げられる。
コア間バンド幅と同様に、クロックレート及びシステム100の特定の設計は、整数ユニットの最大及び利用に影響を及ぼす。
コア占有キャッシュは、キロバイトで測定されてもよい。例えば、最大128キロバイトを有する。システム100の特定の設計は、コア占有キャッシュの利用及び最大値に影響を及ぼす。パワー利用制限は、ワットで測定されてもよい。例えば、最大25ワットが例として挙げられる。クロックレート、電源電圧、システム100の特定の設計は、利用及び最大パワー利用制限、システム100のリソースによるアイドリングに費やされる時間に影響を与える。その他の、最大値は、システム100の特定の設計に依存する。そして、このような利用、及びその最大は、システム100の処理エンティティのオペレーションを評価するために用いられる特定のレジスタの性質に従って変化する。
動作において、ワークロード・キャラクタライザ101は、システム100の一つ以上の処理エンティティによって実行される2つ以上のワークロードのオペレーションの要求、及び計算リソースの要求を特徴づけてもよい。ワークロード・キャラクタライザ101は、このようなワークロードの実行のための利用できる計算リソースを特徴づけてもよい。したがって、ワークロード・キャラクタライザ101は、ワークロード・メタデータ101及びリソース・ステータス104を生成してもよい。これらは、利用可能なリソースの効率的利用のために、ワークロードを処理エンティティに割り当てるためにワークロード・マネジャ102によって利用されてもよい。ワークロード・キャラクタライザ101及びワークロード・マネジャ102はサーバ105、異なる電子デバイス、又は同じ電子デバイス上で動作してもよい。そして、この同じ電子デバイスは、サーバ105とは異なる電子デバイスであってもよい。
ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、ワークロード・リクエスト、システム・リソースを評価してもよく、かつ、所定のレベルのシステム100のワークロード及び処理エンティティのために、ワークロードの実行を割り当ててもよい。例えば、ワークロード・キャラクタライザ101及びワークロード・マネジャ102は、一つ以上の計算ノード110、一つ以上のコア114、又は一つ以上のスレッド118の、ワークロード・リクエスト及びシステム・リソースを評価してもよい
計算ノード110は、ネットワーク化された構成、又は方式(例えばクラウド計算方式)において実行されてもよい。計算ノード110は、一部の共有リソースを共有しながら、効率的に一つ以上のこのようなワークロードを実行するために、ワークロード・マネジャ102によってワークロードを割り当てられてもよい。計算ノード110は、リソース、例えば利用できるシステムメモリ204、ノード間バンド幅205、所定の計算ノードのCPU利用206、パワー利用限度207、及び/又はI/O接続バンド幅208、を共有してもよい。計算ノード110の全体(プール)に利用できるこのようなリソースの量は、ワークロード・キャラクタライザ101によって特徴づけられてもよい。所定のワークロードによって必要なこのようなリソースの量は、ワークロード・キャラクタライザ101によって特徴づけられてもよい。
コア114は、単一の計算ノード114において動作する。各々のコア114は、一部の計算リソース(例えばCPU116)を共有してもよい。ワークロード・マネジャ102は、一部の共有リソースを共有しながら、効率的に一つ以上のこのようなワークロードを実行するために、ワークロードをコア114に割り当ててもよい。このようなリソースは、CPUとRAMとの間のバンド幅214、CPU間バンド幅215、共用キャッシュ216、メモリ利用217、パワー利用限度218及び/又はアドレス変換バッファ219を含んでもよい。コア114の全体(プール)で利用できるこのようなリソースの量は、ワークロード・キャラクタライザ101によって特徴づけられてもよい。所定のワークロードによって必要なこのようなリソースの量は、ワークロード・キャラクタライザ101によって特徴づけられてもよい。
スレッド118は、単一のコア114で動作してもよい。各々のスレッド118は、一部の計算リソース(例えばコア・リソース120)を共有してもよい。ワークロード・マネジャ102は、一部の計算リソースを共有しながら、効率的に一つ以上のこのようなワークロードを実行するために、ワークロードをスレッド114に割り当ててもよい。このようなリソースは、浮動小数点ユニット224、整数ユニット225、コア間バンド幅226、パワー利用限度227、様様なレジスタ228及び/又はコア占有キャッシュ229を含んでもよい。スレッド118の全体(プール)に利用できるこのようなリソースの量は、ワークロード・キャラクタライザ101によって特徴づけられてもよい。所定のスレッド118によって必要なこのようなリソースの量は、ワークロード・キャラクタライザ101によって特徴づけられてもよい。
ワークロード・マネジャ102は、例えば、ワークロード・メタデータ103、ワークロード506、又はワークロード606に、ワークロードリソース要求を特徴づける結果を記憶してもよい。ワークロード・マネジャ102は、処理エンティティのプールのための利用できる計算リソースを特徴づける結果を記憶してもよい。例えば、リソース・ステータス104、コア・オペレーション・ステータス502、又はノード・オペレーション・ステータス602が挙げられる。
ワークロード・マネジャ102は、所定のワークロードを電子デバイスにロードして実行することによって、そのワークロードの要求を分析してもよい。ワークロード・マネジャ102は、特定のリソースのワークロードの利用を測定してもよい。ワークロード・マネジャ102は、リソースの利用を記録してもよい。一実施例において、サンプルデータが、ワークロードを実行するために利用されてもよい。ワークロード・マネジャ102は、異なるデータでワークロードを複数回実行し、かつ、その後リソース要求を平均化してもよい。
一実施例において、ワークロード・マネジャ102は、ワークロードリソース要求及び利用できる計算リソースを定性的に特徴づけてもよい。別の実施例において、ワークロード・マネジャ102は、他のワークロードリソース要求に対して、ベンチマークに対して、又は利用できる計算リソースに対して相対的に、ワークロードリソース要求を特徴づけてもよい。ワークロード・マネジャ102は、所定のワークロード506のニーズを、一つ以上の閾値を用いて、リソース要求をセグメントに分けることによって、別個のセグメント又は利用のカテゴリに特徴付けてもよい。例えば、50%を超えるCPU利用は「重い」利用として分類され、50%未満のCPU利用が「低い」利用として分類されてもよい。同様に、ワークロード・マネジャ102は、リソースの利用可能性を、一つ以上の閾値を用いて、リソース要求をセグメントに分けることによって、たとえば、コア・オペレーション・ステータス502のように、別個のセグメント又は利用のカテゴリに特徴付けてもよい。例えば、CPUリソースが50%の容量より大きいレートで利用されている場合、リソースの負荷は「重い」と分類されてもよい。そして、CPUリソースが50%の容量より低いレートで利用されている場合、リソースの負荷は「低い」と分類されてもよい。
別の実施例において、ワークロード・マネジャ102は、定量的にワークロードリソース要求及び利用できる計算リソースを特徴づけてもよい。ワークロード・マネジャ102は、所定のワークロード606のニーズを、ワークロードを実行するために必要とする容量を単位とする量に特徴づけてもよい。所定のワークロード606のための計算リソースの必要とされる量を示す方法は、必要とするリソースの性質に依存する。この点は、表1ないし3に示されている。例えば、計算リソースの必要な量は、利用できる計算リソースのパーセンテージ又は標準単位によって与えられていてもよい。
1つ以上の処理エンティティの全体(プール)に利用できる、必要とされる計算リソースの量を特徴付けるために、例えば、ノード・オペレーション・ステータス602に見られるように、これらのリソースの容量を単位とする量にワークロードを特徴付けてもよい。上記表1ないし3に記載されているように、処理エンティティ又は処理エンティティのプールのために利用できる計算リソースの量、例えばノード・オペレーション・ステータス602は、特定のリソースに依存する。例えば、利用できる計算リソースの量は、利用できる計算リソースのパーセンテージ、又は標準単位によって与えられていてもよい。
ワークロード・マネジャ102は、一つ以上の特定の処理エンティティによって実行される一つ以上のワークロードを割り当てるために、システム100の利用可能なリソース及び待機中ワークロードによって要求されるリソースに関する情報を利用してもよい。待機中ワークロードは、キュー(例えばワークロードキュー504及び604、又はジョブスケジューラキュー310)に存在してもよい。処理エンティティはキュー(例えばCPUジョブキュー304−308)を含んでもよい。そして、このキューに、ワークロード・マネジャ102は実行のための待機中ワークロードを挿入してもよい。このような挿入は、処理エンティティに対するワークロードの割当てであってもよい。
ワークロード・マネジャ102は、利用可能なあらゆる形態のリソースが、潜在的な制限因子、又はボトルネックを形成するか否かを判断するために、処理エンティティのプールに利用可能なリソースに関する情報(例えばコア・オペレーション・ステータス502、ノード・オペレーション・ステータス602、又はリソース・ステータス102)を利用してもよい。
例えば図5で、ワークロード・マネジャ102は、コア・オペレーション・ステータス502において示されるように、ワークロードAによって重い利用がなされるリソースのいずれかが、利用できるコアによってすでに重い利用がなされているかどうか判断するために、ワークロードキュー504(例えばワークロードA)の最上位のワークロード506で必要とするリソースに関する情報を利用してもよい。ワークロードAは、数値演算プロセッサ234のリソースの重い利用と、コア間バンド幅226のリソースの重い利用との両方を必要とする。
コア・オペレーション・ステータス502は、現在の数値演算プロセッサ224の利用は軽く、コア間バンド幅226の利用が重いことを示している。したがって、ワークロード・マネジャ102は、コア間バンド幅226が潜在的なボトルネックであると判定してもよい。ワークロード・マネジャ102は、重い利用を呈するいかなるリソースも潜在的なボトルネックであると判断してもよい。例えば、ワークロード・マネジャ102は、様々なレジスタ228の現在の利用、及びコア占有キャッシュ229が、同様に潜在的なボトルネックであると判断してもよい。
他の例では、図6において、ワークロード・マネジャ102は、ノード・オペレーション・ステータス602によって示されるように、ワークロード606によって必要ないずれかのリソースが、利用可能なリソースを上回るか否かを判断するために、ワークロードキュー604の一つ以上のワークロード606によって必要とされるリソースに関する情報を利用してもよい。ワークロードAは、256ギガバイトのシステムメモリ204及び10GB/sのノード間バンド幅205を必要とし、これに対して、ノード・オペレーション・ステータス602に示されるように、ノードのプールのための利用可能リソースは、128メガバイトの利用できるシステムメモリ204(512メガバイトの最大容量、384メガバイトが現在使用中であり減少している)及び8GB/sの利用できるノード間バンド幅205となっている。ワークロード・マネジャ102は、したがって、ワークロードAのアプリケーションが利用できるシステムメモリ204及びノード間バンド幅205に対して、リソースのボトルネックが発生すると判断してもよい。
ワークロード・マネジャ102は、一つ以上の処理エンティティ上での実行のための一つ以上のワークロードを選択するために、潜在的なボトルネックに関する情報、処理エンティティのプールが利用できる計算リソース、及び一つ以上のワークロードによって必要とされる計算リソースを利用してもよい。
一つの実施例において、ワークロード・マネジャ102は、利用できる処理エンティティ・リソースに対する潜在的な競合に基づいて、ワークロードを優先させてもよい。様々な実施例において、ワークロード・マネジャ102は、ワークロード要求と、利用可能システム・リソースとの、定性的な又は相対的評価を比較して判断し、競合を最小化することによって、このようなワークロードを優先させてもよい。例えば、図5において、ワークロード・マネジャ102は、所定のコア・オペレーション・ステータス502及びワークロードキュー504を与えられ、ワークロードBの実行がワークロードAよりも優先されることを決定してもよい。なぜなら、ワークロードBは単に「軽い」コア間バンド幅を要求しているため、コア間バンド幅226の潜在的ボトルネックにより、ワークロードAよりもワークロードBは、不利に影響されないからである。なお、ワークロードAは、処理エンティティに対して、コア間バンド幅で「重い」要求を行っており、かつ、このようなリソースの利用において既に「重い」要求をしている。しかしながら、ワークロードA及びBは両者とも、利用可能なコア占有キャッシュ229で潜在的な競合を呈しており、ワークロードA及びBは、両者ともそのリソースに「重い」利用を要求している。そして、処理エンティティにおいてそのリソースは既に「重い」状態となっている。このため、ワークロード・マネジャ102は、ワークロードA及びBよりも、ワークロードC及びDを優先させてもよい。ワークロードC及びDは、コア占有キャッシュ229について、潜在的な競合を持っていない。なぜなら、これらは、コア占有キャッシュ(core specific cache)229への要求が「軽い」からである。ワークロード・マネジャ102は、ワークロードDよりもワークロードCを選択してもよい。なぜなら、ワークロードCはワークロードDより、当初から上位の優先順位であり、ワークロードC及びDの要求を見る限り、潜在的なボトルネックを持っていないからである。
一実施例において、ワークロード・マネジャ102は、ワークロードの測定されたリソース要求、及び利用できる処理リソースに基づいて、ワークロードを優先させてもよく、又は所定のワークロードを所定の処理エンティティに割り当ててもよい。このような実施例において、ワークロード・マネジャは、さまざまな処理エンティティの容量を上回らないように、ワークロード及びターゲット処理エンティティを優先させてもよく、又は選択してもよい。例えば、ワークロード・マネジャ102は、図6で、ワークロードAが、256GBのシステムメモリ204及び10GB/sのノード間バンド幅205を必要とし、それぞれ128GB及び8GB/sだけが利用できる状態になっているため、ワークロードAがノード・オペレーション・ステータス602によって示されるノードのプールのCPUによる実行のために送信されいよう決定してもよい。ワークロード・マネジャ102は、ワークロードB及びワークロードCが、処理エンティティのプールによる実行のために送信されるよう決定してもよい。なぜなら、これらのワークロードの要求のいずれも処理エンティティのプールで利用可能リソースを越えないからである。このような場合、ワークロードBはCPU上での実行のために送信されてもよい。なぜなら、それは85%のCPUリソース206を必要とし、かつCPUは100%の利用できるリソースを有するからである。ワークロードCはCPU、又はCPUのいずれに送信されてもよい。なぜなら、その追加によって、いずれのCPUの容量を超えることもないからである。
図7は、計算ワークロード・メタデータの生成、分析及び利用のための方法700に関する実施例を示している。
ステップ705において、システムの利用できる計算リソースが測定される。このようなリソースは、例えば、計算ノードの間で、コアの間で、又はスレッドの間で共有されるリソースを反映してもよい。ステップ710において、利用できる計算リソースが、特徴づけられる。一実施例において、利用できる計算リソースは、定量的方法で特徴づけられてもよい。別の実施例において、このような計算リソースは、定性的、又は、例えばベンチマークに対して、計算リソースの経時的な量(historical amounts)に対して、又は様々なワークロードに要求される計算リソースに対して相対的に特徴付けられてもよい。
ワークロードの実行に影響を及ぼすことがあり得る、いかなる適切な利用できる計算リソースが、測定され、かつ特徴づけられてもよい。このようなリソースは、所定のワークロードを実行している処理エンティティに従って変化してもよい。
一実施例において、このような利用できる計算リソースは、定性的、又は、例えばベンチマークに対して、計算リソースの経時的量に対して、又は様々なワークロードに要求される計算リソースに対して相対的に特徴付けられてもよい。このような実施例では、一つ以上の閾値が、一つ以上のカテゴリにリソースの部分利用可能性に適用されてもよい。例えば、処理エンティティの現在のCPU利用のための50%の閾値が適用される。この閾値よりも大きければ、そのような現在の利用は「重い」と分類され、この閾値よりも小さければ、そのような現在の利用は「軽い」と分類される。別の実施例において、利用できる計算リソースは、定量的に特徴づけられてもよい。このような実施例では、利用できる計算リソースは、比較及び分析のために、単位当たりの量(quantity of unit)、パーセンテージ、又は他の適切なメカニズムの量として評価されてもよい。
一つ以上の待機中ワークロード(処理エンティティによる実行のために待機中のワークロード)に対して、ワークロードによって必要な計算リソースは、測定され、かつ特徴づけられる。ステップ715において、ワークロードは、評価のためにロードされてもよい。ステップ720において、ワークロードは、サンプルデータを利用して実行されてもよい。ステップ725において、ワークロードをロードするために必要なリソース、及び実行のための必要なリソースが測定されてもよい。ステップ730において、ステップ715−725は、一つ以上のサンプル・データ・セットに対して繰り返されてもよい。
ステップ735において、ワークロードによって必要な計算リソースは、平均値が取られ、かつ特徴づけられてもよい。一実施例において、必要な計算リソースは、定性的に特徴づけられてもよく、又は例えば、他のワークロード、ベンチマーク、又は利用可能システム・リソースに対して相対的に特徴付けられてもよい。このような実施例では、リソースの利用を一つ以上の利用のカテゴリに分類するために、一つ以上の閾値が適用されてもよい。例えば、CPU利用に対して50%の閾値が適用され、その閾値より高ければ、「重い」と分類され、低ければ、そのような利用は、「軽い」と分類される。別の実施例において、必要な計算リソースは、定量的に特徴づけられてもよい。このような実施例では、必要な計算リソースは、比較及び分析のための単位当たりの量、割合、又は他の適切なメカニズムの量として評価されてもよい。
ステップ740において、ワークロード要求は、他のワークロード要求に対して比較されてもよい。一実施例において、リソースの利用要求に従って、ワークロード要求は、ランクを付けられてもよい。
ステップ745において、ワークロード要求は、利用できる計算リソースに対して比較されてもよい。ワークロード要求及び利用できる計算リソースが定性的又は相対的な手法で決定された場合、要求の各々の一組はこのような要求がシステム・リソースの重い利用を必要とするかどうか判定するために分析されてもよい。ここで、システム・リソースは、すでに重く利用されている。ワークロード要求及び利用できる計算リソースが定量的方法で決定された場合、要求の各々の一組はこのような要求が利用できるリソースを上回るかどうか判定するために分析されてもよい。
ステップ750において、ワークロード要求と利用できる計算リソースとの比較に基づいて、ワークロードは効率的な実行のために優先されてもよい。一実施例において、ワークロードは、また、前の指定された又は決定されたいかなる順番又は優先順位に基づいて優先されてもよい。例えば、優先する第1のワークロードが、利用可能なリソースを上回る場合、当初は優先順位の低かった第2のワークロードを、第1のワークロードよりも更に優先させてもよい。この場合、第2のワークロードの実行は、利用可能リソースを上回らないと評価されるとする。他の例では、低い利用可能性を持つ利用可能な計算リソースに対応する一つ以上のボトルネックが特定されてもよい。このような実施例において、ワークロードは、ボトルネックを形成している計算リソースのそれらの要求に基づいて、実行のために優先されてもよい。
さらに別の例では、第1のワークロードが、利用できる計算リソースの大量消費をするリソースであると特定された場合、第2のワークロードが第1のものよりも優先されてもよい。ここにおいて、第2のワークロードは、計算リソースのより低い消費要求をもつものとする。ステップ755において、前のステップの優先順位に基づいて、ワークロードは実行のための処理エンティティに割り当てられてもよい。
方法700は図1ないし図3のシステム、又は方法700を実行するために利用できるいかなる他のシステムを利用して実行されてもよい。このように、方法700のための好適なイニシャライズの位置、及びそのステップの順番は、選択されるインプリメンテーションに依存してもよい。いくつかの実施例では、一部のステップは、任意に省略されてもよく、繰り返され、又は組み合わされてもよい。例えば、方法700のオペレーションの最中に、新たに要求されたワークロードが受信されてもよい。そして、新たに要求されたワークロードのメタデータを計測しかつ分析するために、幾つかのステップ715−750は適切に繰り返されてもよい。いくつかの実施例では、方法700の一部のステップは、方法700の他のステップと並列に実行されてもよい。例えば、ステップ705−710は、ステップ710−740と並列に実行されてもよい。ある種の実施例では、方法700は、コンピュータ可読のメディアに格納されたソフトウェアによって、部分的に、又は完全に実行されてもよい。
この開示された実施例のために、コンピュータ可読の媒体は、一定期間、データ及び/又は命令を保持する、いかなる手段、又は手段の集合をも含み得る。コンピュータ可読のメディアとしては、格納媒体、例えば、ダイレクトアクセス記憶媒体(例えば、ハードディスクドライブ、フロッピー(登録商標)ディスク)、シーケンシャルアクセス記憶デバイス(例えば、テープディスクドライブ)、コンパクトディスク、CD−ROM、DVD、RAM、ROM、EEPROM、及び/又は、フラッシュメモリを含む。加えて、通信媒体、例えば、電線、光ファイバ、及びその他の電磁気学的及び/又は光媒体、及び/又はこれらのいかなる組合せも含まれる。なお上記は、限定を目的とするものではない。本実施例が詳細に説明されたが、添付の請求項に定義された開示の精神及び技術的範囲を逸脱しない限り、これらに対して、様々な変更、置換、変形を行うことが可能である。
以上の実施例に関し、更に以下の付記を開示する。
(付記1)計算リソースを管理する方法であって、
第1のワークロードのための第1のワークロード・メタデータを生成するステップと;
第2のワークロードのための第2のワークロード・メタデータを生成するステップであって:
前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードによって必要な計算リソースを特徴づけ;
最初に、前記第1のワークロードのメタデータが、前記第2のワークロード・メタデータより優先され;かつ
前記第1のワークロード及び前記第2のワークロードは、一つ以上の処理エンティティによって実行される;
ステップと;
リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップであって、前記計算リソースを特徴づけている前記リソース・メタデータは、一つ以上の前記処理エンティティにより利用可能である、ステップと、
リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップと;
前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップであって、リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない、ステップと、
を有する方法。
(付記2)前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される計算リソースの相対的特徴を含む、付記1記載の方法。
(付記3)前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される前記計算リソースの定量的特徴を含む、付記1記載の方法。
(付記4)前記一つ以上の処理エンティティは、計算ノードのプールを有する、付記1記載の方法。
(付記5)前記一つ以上の処理エンティティは、プロセッサ・コアのプールを有する、付記1記載の方法。
(付記6)前記一つ以上の処理エンティティは、プロセッサ・スレッドのプールを有する、付記1記載の方法。
(付記7)ワークロードのためのワークロード・メタデータを生成するステップは、
実行のために前記ワークロードをシステムにロードするステップと;
データの第1のサンプルによって前記ワークロードを実行するステップと;
前記ワークロードによって利用される前記計算リソースを測定するステップと;
を有する付記1記載の方法。
(付記8)ワークロードのためのワークロード・メタデータを生成するステップは、
データの第2のサンプルによって前記ワークロードを実行するステップと;
前記ワークロードによって利用される前記計算リソースを測定するステップと;
前記ワークロードによって使用された計算リソースを平均化するステップと;
を更に有する付記7記載の方法。
(付記9)
第1の処理エンティティ及び第2の処理エンティティに利用可能な計算リソースを特徴付けることによって、リソース・メタデータが生成され;
リソース・メタデータに対して前記第1のワークロード・メタデータ及び第2のワークロード・メタデータを比較するステップは、第1のワークロード・メタデータ及び第2のワークロード・メタデータを、前記第1の計算エンティティ及び前記第2の計算エンティティに利用可能な前記リソースに対して比較するステップを含み、
前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップは、
前記第1の処理エンティティが、前記第2のワークロードを実行するために、十分なリソースを持っているか否かを判断するステップと;
前記第1の処理エンティティが、不十分なリソースしか持たない場合、前記第2のワークロードを実行するために、前記第2の処理エンティティが十分なリソースを持つか否かを判断するステップと;
前記第2の処理エンティティが十分なリソースを持つ場合、前記第2の処理エンティティによる実行のために前記第2のワークロードを割り当てるステップと;

を含む、付記1記載の方法。
(付記10)第1の処理エンティティによる前記第1のワークロードの実行が、前記処理エンティティに対して、利用可能な計算リソースの所定のカテゴリの100パーセントを超えさせる場合、潜在的な競合が特定される、付記3記載の方法。
(付記11)
コンピュータに、
第1のワークロードのための第1のワークロード・メタデータを生成するステップと;
第2のワークロードのための第2のワークロード・メタデータを生成するステップであって:
前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードによって必要な計算リソースを特徴づけ;
最初に、前記第1のワークロードのメタデータが、前記第2のワークロード・メタデータより優先され;かつ
前記第1のワークロード及び前記第2のワークロードは、一つ以上の処理エンティティによって実行される;
ステップと;
リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップであって、前記計算リソースを特徴づけている前記リソース・メタデータは、一つ以上の前記処理エンティティにより利用可能である、ステップと、
リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップと;
前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップであって、リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない、ステップと、
を実行させるプログラム。
(付記12)前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される計算リソースの相対的特徴を含む、付記11記載のプログラム。
(付記13)前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される前記計算リソースの定量的特徴を含む、付記11記載のプログラム。
(付記14)前記一つ以上の処理エンティティは、計算ノードのプールを有する、付記11記載のプログラム。
(付記15)前記一つ以上の処理エンティティは、プロセッサ・コアのプールを有する、付記11記載のプログラム。
(付記16)前記一つ以上の処理エンティティは、プロセッサ・スレッドのプールを有する、付記11記載のプログラム。
(付記17)ワークロードのためのワークロード・メタデータを生成するステップは、
実行のために前記ワークロードをシステムにロードするステップと;
データの第1のサンプルによって前記ワークロードを実行するステップと;
前記ワークロードによって利用される前記計算リソースを測定するステップと;
を有する付記11記載のプログラム。
(付記18)ワークロードのためのワークロード・メタデータを生成するステップは、
データの第2のサンプルによって前記ワークロードを実行するステップと;
前記ワークロードによって利用される前記計算リソースを測定するステップと;
前記ワークロードによって使用された計算リソースを平均化するステップと;
を更に有する付記17記載のプログラム。
(付記19)
第1の処理エンティティ及び第2の処理エンティティに利用可能な計算リソースを特徴付けることによって、リソース・メタデータが生成され;
リソース・メタデータに対して前記第1のワークロード・メタデータ及び第2のワークロード・メタデータを比較するステップは、第1のワークロード・メタデータ及び第2のワークロード・メタデータを、前記第1の計算エンティティ及び前記第2の計算エンティティに利用可能な前記リソースに対して比較するステップを含み、
前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップは、
前記第1の処理エンティティが、前記第2のワークロードを実行するために、十分なリソースを持っているか否かを判断するステップと;
前記第1の処理エンティティが、不十分なリソースしか持たない場合、前記第2のワークロードを実行するために、前記第2の処理エンティティが十分なリソースを持つか否かを判断するステップと;
前記第2の処理エンティティが十分なリソースを持つ場合、前記第2の処理エンティティによる実行のために前記第2のワークロードを割り当てるステップと;
を含む、付記11記載のプログラム。
(付記20)第1の処理エンティティによる前記第1のワークロードの実行が、前記処理エンティティに対して、利用可能な計算リソースの所定のカテゴリの100パーセントを超えさせる場合、潜在的な競合が特定される、付記13記載のプログラム。
(付記21)計算ワークロードを管理するシステムであって、
プロセッサと;
前記プロセッサに接続される計算機可読の媒体であって、コンピュータに、
第1のワークロードのための第1のワークロード・メタデータを生成するステップと;
第2のワークロードのための第2のワークロード・メタデータを生成するステップであって:
前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードによって必要な計算リソースを特徴づけ;
前記第1のワークロード及び前記第2のワークロードは、一つ以上の処理エンティティによって実行される;
ステップと;
リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップであって、前記計算リソースを特徴づけている前記リソース・メタデータは、一つ以上の前記処理エンティティにより利用可能である、ステップと、
リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップと;
前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップであって、リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない、ステップと、
を実行させるプログラムを格納した媒体と;
を有するシステム。
(付記22)前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される計算リソースの相対的特徴を含む、付記21記載のシステム。
(付記23)前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される前記計算リソースの定量的特徴を含む、付記21記載のシステム。
(付記24)前記一つ以上の処理エンティティは、計算ノードのプールを有する、付記21記載のシステム。
(付記25)前記一つ以上の処理エンティティは、プロセッサ・コアのプールを有する、付記21記載のシステム。
(付記26)前記一つ以上の処理エンティティは、プロセッサ・スレッドのプールを有する、付記21記載のシステム。
(付記27)ワークロードのためのワークロード・メタデータを生成するステップは、
実行のために前記ワークロードをシステムにロードするステップと;
データの第1のサンプルによって前記ワークロードを実行するステップと;
前記ワークロードによって利用される前記計算リソースを測定するステップと;
を有する付記21記載のシステム。
(付記28)ワークロードのためのワークロード・メタデータを生成するステップは、
データの第2のサンプルによって前記ワークロードを実行するステップと;
前記ワークロードによって利用される前記計算リソースを測定するステップと;
前記ワークロードによって使用された計算リソースを平均化するステップと;
を更に有する付記27記載のシステム。
(付記29)
第1の処理エンティティ及び第2の処理エンティティに利用可能な計算リソースを特徴付けることによって、リソース・メタデータが生成され;
リソース・メタデータに対して前記第1のワークロード・メタデータ及び第2のワークロード・メタデータを比較するステップは、第1のワークロード・メタデータ及び第2のワークロード・メタデータを、前記第1の計算エンティティ及び前記第2の計算エンティティに利用可能な前記リソースに対して比較するステップを含み、
前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップは、
前記第1の処理エンティティが、前記第2のワークロードを実行するために、十分なリソースを持っているか否かを判断するステップと;
前記第1の処理エンティティが、不十分なリソースしか持たない場合、前記第2のワークロードを実行するために、前記第2の処理エンティティが十分なリソースを持つか否かを判断するステップと;
前記第2の処理エンティティが十分なリソースを持つ場合、前記第2の処理エンティティによる実行のために前記第2のワークロードを割り当てるステップと;
を含む、付記21記載のプログラム。
(付記30)第1の処理エンティティによる前記第1のワークロードの実行が、前記処理エンティティに対して、利用可能な計算リソースの所定のカテゴリの100パーセントを超えさせる場合、潜在的な競合が特定される、付記23記載のシステム。
100 システム
105 サーバ
110 計算ノード
112 ネットワーク
114 コア
118 スレッド

Claims (11)

  1. 計算リソースを管理する方法であって、
    第1のワークロードのための第1のワークロード・メタデータを生成するステップと;
    第2のワークロードのための第2のワークロード・メタデータを生成するステップであって:
    前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードに必要な計算リソースを指定し、必要な計算リソースは、各計算リソースを、別個のセグメント又は利用のカテゴリに分けることによって指定され;
    最初に、前記第1のワークロードが、前記第2のワークロードより優先され;かつ
    前記第1のワークロード及び前記第2のワークロードは、コンピュータシステムの複数の処理エンティティのうちの一つ以上の処理エンティティによってアサインされかつ実行されるようにスケジューリングされる;
    ステップと;
    リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップと;
    コンピュータシステムのリソース・メタデータを生成するステップであって、前記リソース・メタデータは、前記複数の処理エンティティの各々において利用できる計算リソースを指定する、ステップと;
    前記リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップであって、前記潜在的な競合は、前記第1のワークロードに要求される前記計算リソースのいずれかが、前記処理エンティティに利用できる前記計算リソースのいずれかの容量を超えると判断することによって特定される、ステップと;
    前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップであって、リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない、ステップと、
    を有する方法。
  2. 一つ以上の閾値を用いて、必要な計算リソースを、別個のセグメント又は利用のカテゴリに分けるように、一つ以上の閾値を用いるステップをさらに有する、請求項1記載の方法。
  3. 前記第1のワークロード・メタデータ及び第2のワークロード・メタデータは、各々のワークロードに要求される前記計算リソースの定量的特徴を含む、請求項1記載の方法。
  4. 前記一つ以上の処理エンティティは、計算ノードの集合を有する、請求項1記載の方法。
  5. 前記一つ以上の処理エンティティは、プロセッサ・コアの集合を有する、請求項1記載の方法。
  6. 前記一つ以上の処理エンティティは、プロセッサ・スレッドの集合を有する、請求項1記載の方法。
  7. ワークロードのためのワークロード・メタデータを生成するステップは、
    実行のために前記ワークロードをシステムにロードするステップと;
    データの第1のサンプルによって前記ワークロードを実行するステップと;
    前記ワークロードの実行によって利用される前記計算リソースを測定するステップと;
    を有する請求項1記載の方法。
  8. ワークロードのためのワークロード・メタデータを生成するステップは、
    データの第2のサンプルによって前記ワークロードを実行するステップと;
    前記ワークロードによって利用される前記計算リソースを測定するステップと;
    前記ワークロードの実行によって使用された計算リソースの最大消費レベルに対するパーセンテージの平均値を算出するステップと;
    を更に有する請求項7記載の方法。
  9. 第1の処理エンティティによる前記第1のワークロードの実行を行えば、前記第1の処理エンティティに対して、いずれかの利用可能な計算リソースの要求が100パーセントを超えることとなると判断される場合、潜在的な競合が特定される、請求項3記載の方法。
  10. コンピュータに、
    第1のワークロードのための第1のワークロード・メタデータを生成するステップと;
    第2のワークロードのための第2のワークロード・メタデータを生成するステップであって:
    前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードに必要な計算リソースを指定し、必要な計算リソースは、各計算リソースを、別個のセグメント又は利用のカテゴリに分けることによって指定され;
    最初に、前記第1のワークロードが、前記第2のワークロードより優先され;かつ
    前記第1のワークロード及び前記第2のワークロードは、コンピュータシステムの複数の処理エンティティのうちの一つ以上の処理エンティティによってアサインされかつ実行されるようにスケジューリングされる;
    ステップと;
    リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップと;
    コンピュータシステムのリソース・メタデータを生成するステップであって、前記リソース・メタデータは、前記複数の処理エンティティの各々において利用できる計算リソースを指定する、ステップと;
    前記リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップであって、前記潜在的な競合は、前記第1のワークロードに要求される前記計算リソースのいずれかが、前記処理エンティティに利用できる前記計算リソースのいずれかの容量を超えると判断することによって特定される、ステップと;
    前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップであって、リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない、ステップと、
    を実行させるプログラム。
  11. 計算ワークロードを管理するシステムであって、
    プロセッサと;
    前記プロセッサに接続される計算機可読の媒体であって、コンピュータに、
    第1のワークロードのための第1のワークロード・メタデータを生成するステップと;
    第2のワークロードのための第2のワークロード・メタデータを生成するステップであって:
    前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータの各々は、関連づけられたワークロードに必要な計算リソースを指定し、必要な計算リソースは、各計算リソースを、別個のセグメント又は利用のカテゴリに分けることによって指定され;
    最初に、前記第1のワークロードのメタデータが、前記第2のワークロード・メタデータより優先され;かつ
    前記第1のワークロード及び前記第2のワークロードは、コンピュータシステムの複数の処理エンティティのうちの一つ以上の処理エンティティによってアサインされかつ実行されるようにスケジューリングされる;
    ステップと;
    リソース・メタデータに対して前記第1のワークロード・メタデータ及び前記第2のワークロード・メタデータを比較するステップと;
    コンピュータシステムのリソース・メタデータを生成するステップであって、前記リソース・メタデータは、前記複数の処理エンティティの各々において利用できる計算リソースを指定する、ステップと;
    前記リソース・メタデータに対するワークロード・メタデータの前記比較に基づいて、前記第1のワークロードと前記処理エンティティが利用できる前記計算リソースとの間でのリソース要求の潜在的な競合を特定するステップであって、前記潜在的な競合は、前記第1のワークロードに要求される前記計算リソースのいずれかが、前記処理エンティティに利用できる前記計算リソースのいずれかの容量を超えると判断することによって特定される、ステップと;
    前記処理エンティティのうちの1つによる実行のために前記第2のワークロードを割り当てるステップであって、リソース要求の前記潜在的な競合は、前記第2のワークロードの前記リソース要求と前記処理エンティティが利用できる前記計算リソースとの間に存在しない、ステップと、
    を実行させるプログラムを格納した媒体と;
    を有するシステム。
JP2011250635A 2010-11-18 2011-11-16 ワークロード・メタデータの生成、分析、及び利用のための方法、プログラム、及びシステム Active JP5853624B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/949,494 2010-11-18
US12/949,494 US8869161B2 (en) 2010-11-18 2010-11-18 Characterization and assignment of workload requirements to resources based on predefined categories of resource utilization and resource availability

Publications (2)

Publication Number Publication Date
JP2012108917A JP2012108917A (ja) 2012-06-07
JP5853624B2 true JP5853624B2 (ja) 2016-02-09

Family

ID=46065659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011250635A Active JP5853624B2 (ja) 2010-11-18 2011-11-16 ワークロード・メタデータの生成、分析、及び利用のための方法、プログラム、及びシステム

Country Status (2)

Country Link
US (1) US8869161B2 (ja)
JP (1) JP5853624B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914515B2 (en) * 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
US20140188986A1 (en) * 2013-01-02 2014-07-03 Sourcefire, Inc. Method and Apparatus for Identifying Computing Resource Trajectory
US9811573B1 (en) * 2013-09-27 2017-11-07 EMC IP Holding Company LLC Lineage information management in data analytics
CN104182279A (zh) * 2014-02-26 2014-12-03 无锡天脉聚源传媒科技有限公司 一种任务调度方法、装置及系统
US9378363B1 (en) 2014-10-08 2016-06-28 Amazon Technologies, Inc. Noise injected virtual timer
US9754103B1 (en) 2014-10-08 2017-09-05 Amazon Technologies, Inc. Micro-architecturally delayed timer
US9864636B1 (en) 2014-12-10 2018-01-09 Amazon Technologies, Inc. Allocating processor resources based on a service-level agreement
US9491112B1 (en) * 2014-12-10 2016-11-08 Amazon Technologies, Inc. Allocating processor resources based on a task identifier
US10740311B2 (en) * 2015-09-14 2020-08-11 Sap Se Asynchronous index loading for database computing system startup latency managment
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
MX2019011590A (es) * 2017-03-31 2019-11-08 Velocity Tech Solutions Inc Metodos y sistemas para realizar pruebas en aplicaciones web.
US10558499B2 (en) * 2017-10-26 2020-02-11 Advanced Micro Devices, Inc. Wave creation control with dynamic resource allocation
US11223534B2 (en) 2017-12-29 2022-01-11 Virtual Instruments Worldwide, Inc. Systems and methods for hub and spoke cross topology traversal
US10768970B2 (en) 2017-12-29 2020-09-08 Virtual Instruments Corporation System and method of flow source discovery
US10572314B2 (en) * 2018-01-11 2020-02-25 Intel Corporation Methods and apparatus to distribute a workload for execution
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
WO2020092852A1 (en) * 2018-10-31 2020-05-07 Virtual Instruments Corporation Methods and system for throttling analytics processing
KR102641520B1 (ko) * 2018-11-09 2024-02-28 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법
KR20200095103A (ko) 2019-01-31 2020-08-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11520297B2 (en) * 2019-03-29 2022-12-06 Intel Corporation Enhancing diagnostic capabilities of computing systems by combining variable patrolling API and comparison mechanism of variables
KR20200117256A (ko) * 2019-04-03 2020-10-14 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591262B1 (en) * 2000-08-01 2003-07-08 International Business Machines Corporation Collaborative workload management incorporating work unit attributes in resource allocation
JP2002073576A (ja) * 2000-08-31 2002-03-12 Toshiba Corp バッチジョブ制御システム
US7127625B2 (en) * 2003-09-04 2006-10-24 Hewlett-Packard Development Company, L.P. Application management based on power consumption
CN1297894C (zh) * 2003-09-30 2007-01-31 国际商业机器公司 用于调度作业的方法、调度器以及网络计算机系统
US7810099B2 (en) * 2004-06-17 2010-10-05 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
JP2006053654A (ja) * 2004-08-10 2006-02-23 Olympus Corp ジョブ振分装置
US20060117317A1 (en) * 2004-11-12 2006-06-01 International Business Machines Corporation On-demand utility services utilizing yield management
US7472079B2 (en) * 2005-01-12 2008-12-30 International Business Machines Corporation Computer implemented method for automatically controlling selection of a grid provider for a grid job
US8214836B1 (en) * 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
US20070150599A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Generation of resource-usage profiles for application sessions of a number of client computing devices
US8136114B1 (en) * 2006-04-21 2012-03-13 Sprint Communications Company L.P. Business process management system having dynamic task assignment
US9588809B2 (en) * 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8185422B2 (en) * 2006-07-31 2012-05-22 Accenture Global Services Limited Work allocation model
US8566803B2 (en) * 2007-09-20 2013-10-22 International Business Machines Corporation Benchmark profiling for distributed systems
US8627325B2 (en) * 2008-01-03 2014-01-07 Hewlett-Packard Development Company, L.P. Scheduling memory usage of a workload
US8180716B2 (en) * 2008-03-24 2012-05-15 At&T Intellectual Property I, L.P. Method and device for forecasting computational needs of an application
US8443370B2 (en) * 2008-08-26 2013-05-14 Microsoft Corporation Method of assigning resources to fulfill a service request by a programming model abstraction layer at a data center based at least in part on a reference of the requested resource class indicative of an abstract amount of resources
US8260603B2 (en) * 2008-09-30 2012-09-04 Hewlett-Packard Development Company, L.P. Scaling a prediction model of resource usage of an application in a virtual environment
US20100169892A1 (en) * 2008-12-29 2010-07-01 Advanced Micro Devices, Inc. Processing Acceleration on Multi-Core Processor Platforms
US8266289B2 (en) * 2009-04-23 2012-09-11 Microsoft Corporation Concurrent data processing in a distributed system
US9703609B2 (en) * 2009-05-29 2017-07-11 Red Hat, Inc. Matching resources associated with a virtual machine to offered resources
US9141433B2 (en) * 2009-12-18 2015-09-22 International Business Machines Corporation Automated cloud workload management in a map-reduce environment
US8806501B2 (en) * 2010-03-31 2014-08-12 International Business Machines Corporation Predictive dynamic system scheduling
US8438570B2 (en) * 2010-07-31 2013-05-07 International Business Machines Corporation Resource allocator with knowledge-based optimization
US9069610B2 (en) * 2010-10-13 2015-06-30 Microsoft Technology Licensing, Llc Compute cluster with balanced resources

Also Published As

Publication number Publication date
US20120131593A1 (en) 2012-05-24
JP2012108917A (ja) 2012-06-07
US8869161B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
JP5853624B2 (ja) ワークロード・メタデータの生成、分析、及び利用のための方法、プログラム、及びシステム
JP5744909B2 (ja) アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
US10191771B2 (en) System and method for resource management
US8676976B2 (en) Microprocessor with software control over allocation of shared resources among multiple virtual servers
US8972702B2 (en) Systems and methods for power management in a high performance computing (HPC) cluster
US10884779B2 (en) Systems and methods for selecting virtual machines to be migrated
US7698529B2 (en) Method for trading resources between partitions of a data processing system
US8656405B2 (en) Pulling heavy tasks and pushing light tasks across multiple processor units of differing capacity
US20060230405A1 (en) Determining and describing available resources and capabilities to match jobs to endpoints
US20140215176A1 (en) Memory allocation control method, recording medium, and information processing device
KR101140914B1 (ko) 컴퓨팅 자원들을 제어하는 기술
Zhu et al. Deadline-constrained workflow scheduling in IaaS clouds with multi-resource packing
US7752623B1 (en) System and method for allocating resources by examining a system characteristic
Gifford et al. Dna: Dynamic resource allocation for soft real-time multicore systems
CN111625339A (zh) 集群资源调度方法、装置、介质和计算设备
US10140158B2 (en) Methods and modules relating to allocation of host machines
Goglin et al. Using performance attributes for managing heterogeneous memory in HPC applications
Sharma et al. CASH: a credit aware scheduling for public cloud platforms
Modi et al. CABARRE: Request Response Arbitration for Shared Cache Management
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
WO2023226437A1 (zh) 一种资源调度方法、装置及设备
US20230401089A1 (en) Credit-based scheduling using load prediction
Yoon et al. WCET-Aware optimization of shared cache partition and bus arbitration for hard real-time multicore systems
CN118041922A (zh) 一种numa架构下cpu热点的判定方法
Wang et al. Interference-aware program scheduling for multicore processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150917

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151123

R150 Certificate of patent or registration of utility model

Ref document number: 5853624

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150