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

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

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

<>
  • 特許-計算資源の動的割り当て 図1
  • 特許-計算資源の動的割り当て 図2
  • 特許-計算資源の動的割り当て 図3
  • 特許-計算資源の動的割り当て 図4
  • 特許-計算資源の動的割り当て 図5
  • 特許-計算資源の動的割り当て 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】計算資源の動的割り当て
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240618BHJP
【FI】
G06F9/50 120Z
G06F9/50 120B
【請求項の数】 15
(21)【出願番号】P 2021568246
(86)(22)【出願日】2020-05-04
(65)【公表番号】
(43)【公表日】2022-09-08
(86)【国際出願番号】 US2020031250
(87)【国際公開番号】W WO2020263414
(87)【国際公開日】2020-12-30
【審査請求日】2023-04-05
(31)【優先権主張番号】201910578411.1
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】ジャン,クァンル
(72)【発明者】
【氏名】ヤン,ファン
(72)【発明者】
【氏名】チョウ,リドン
(72)【発明者】
【氏名】ヤン,マオ
(72)【発明者】
【氏名】チャオ,ハニュ
(72)【発明者】
【氏名】ハン,ジェンファ
【審査官】坂東 博司
(56)【参考文献】
【文献】特表2002-513256(JP,A)
【文献】米国特許第06333936(US,B1)
【文献】特開2018-120551(JP,A)
【文献】特開2015-141459(JP,A)
【文献】国際公開第2014/173263(WO,A1)
【文献】中国特許出願公開第108123980(CN,A)
【文献】米国特許出願公開第2017/0272331(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
計算資源を管理する方法であって、
1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、前記1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信することと、
前記目標数の計算資源を有する一致空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することと、
前記一致空き資源グループが前記少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、前記冗長空き資源グループ内の資源数は前記目標数を上回る、判定することと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあることに応答し、前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることと
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にないと判定することに応答し、前記第1の要求の優先度が優先度閾値を上回るかどうかを判定することと、
前記優先度が前記優先度閾値を上回ることに応答し、前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることであって、前記利用可能計算資源は空き計算資源及び前記優先度閾値以下の優先度を有する第2の要求に割り当てられる候補計算資源を含み、前記少なくとも1つの利用可能計算資源は少なくとも1つの利用可能資源グループへと編成される、割り当てることと、
を含
前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることが、
前記目標数の計算資源を有する利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にあるかどうかを判定することと、
前記利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にあることに応答し、前記利用可能一致資源グループ内で割り当てられている計算資源の返還を要求することと、
前記第1の要求に対して前記利用可能一致資源グループから計算資源を割り当てることと
を含む、方法。
【請求項2】
各空き資源グループがマルチレベルトポロジ内の同じノードに関連する計算資源を含むように前記1組の計算資源に対応する前記マルチレベルトポロジに基づいて前記少なくとも1つの空き計算資源を前記少なくとも1つの空き資源グループへと編成することであって、前記マルチレベルトポロジ内のノードは前記1組の計算資源又は前記1組の計算資源内の複数の計算資源のための接続構成要素の1つに対応する、編成すること
を更に含む、請求項1に記載の方法。
【請求項3】
前記計算資源がグラフィックス処理ユニットを含み、前記マルチレベルトポロジが、
個々のグラフィックス処理ユニットに対応するノードを含む第1のレベル、
複数のグラフィックス処理ユニットを接続するためのPCIeスイッチに対応するノードを含む第2のレベル、
複数のPCIeスイッチを接続するためのCPUソケットに対応するノードを含む第3のレベル、及び
複数のCPUソケットを接続するための計算装置に対応するノードを含む第4のレベル
のうちの少なくとも2つを含む、請求項2に記載の方法。
【請求項4】
前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることが、
前記冗長空き資源グループを第1の資源グループ及び少なくとも1つの第2の資源グループに分割することであって、前記第1の資源グループは前記目標数の計算資源を含む、分割することと、
前記第1の要求に対して、前記第1の資源グループから計算資源を割り当てることと
を含む、請求項1に記載の方法。
【請求項5】
前記第1の要求を完了することに応答し、前記第1の資源グループを空いているものとして印付けすることと、
前記少なくとも1つの第2の資源グループ内の計算資源の全てが空いていると判定することに応答し、前記第1の資源グループと前記少なくとも1つの第2の資源グループとを新たな空き資源グループへと併合することと
を更に含む、請求項4に記載の方法。
【請求項6】
前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることが、
前記利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にないことに応答し、利用可能冗長資源グループが前記少なくとも1つの利用可能資源グループ内にあるかどうかを判定することであって、前記利用可能冗長資源グループ内の資源数は前記目標数を上回る、判定することと、
前記利用可能冗長資源グループが前記少なくとも1つの利用可能資源グループ内にあると判定することに応答し、前記利用可能冗長資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることと
を含む、請求項に記載の方法。
【請求項7】
計算資源を管理する方法であって、
1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、前記1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信することと、
前記第1の要求に関連する第1のテナントが使用した資源グループ内の第1の計算資源数を判定することと、
前記目標数と前記第1の計算資源数との和が前記第1のテナントに対応する計算資源数の上限を上回ると判定することに応答し、前記第1の要求の優先度を優先度閾値未満に設定することと
前記目標数の計算資源を有する一致空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することと、
前記一致空き資源グループが前記少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、前記冗長空き資源グループ内の資源数は前記目標数を上回る、判定することと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあることに応答し、前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることと
を含、方法。
【請求項8】
前記第1のテナントに対応する前記計算資源数の前記上限が、前記第1のテナントに関して予め割り当てられる第2の計算資源数と第2のテナントとの交換によって得られる第3の計算資源数との和に等しい、請求項に記載の方法。
【請求項9】
処理ユニットと、
前記処理ユニットに結合され、前記処理ユニットによって実行されるとき、
1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、前記1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信することと、
前記目標数の計算資源を有する一致空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することと、
前記一致空き資源グループが前記少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、前記冗長空き資源グループ内の資源数は前記目標数を上回る、判定することと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあることに応答し、前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にないと判定することに応答し、前記第1の要求の優先度が優先度閾値を上回るかどうかを判定することと、
前記優先度が前記優先度閾値を上回ることに応答し、前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることであって、前記利用可能計算資源は空き計算資源及び前記優先度閾値以下の優先度を有する第2の要求に割り当てられる候補計算資源を含み、前記少なくとも1つの利用可能計算資源は少なくとも1つの利用可能資源グループへと編成される、割り当てることと、
の動作を装置に実行させる記憶済み命令を含むメモリと
を含
前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることが、
前記目標数の計算資源を有する利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にあるかどうかを判定することと、
前記利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にあることに応答し、前記利用可能一致資源グループ内で割り当てられている計算資源の返還を要求することと、
前記第1の要求に対して前記利用可能一致資源グループから計算資源を割り当てることと
を含む、装置。
【請求項10】
前記動作は、
各空き資源グループがマルチレベルトポロジ内の同じノードに関連する計算資源を含むように前記1組の計算資源に対応する前記マルチレベルトポロジに基づいて前記少なくとも1つの空き計算資源を前記少なくとも1つの空き資源グループへと編成することであって、前記マルチレベルトポロジ内のノードは前記1組の計算資源又は前記1組の計算資源内の複数の計算資源のための接続構成要素の1つに対応する、編成すること
を更に含む、請求項に記載の装置。
【請求項11】
前記計算資源がグラフィックス処理ユニットを含み、前記マルチレベルトポロジが、
個々のグラフィックス処理ユニットに対応するノードを含む第1のレベル、
複数のグラフィックス処理ユニットを接続するためのPCIeスイッチに対応するノードを含む第2のレベル、
複数のPCIeスイッチを接続するためのCPUソケットに対応するノードを含む第3のレベル、及び
複数のCPUソケットを接続するための計算装置に対応するノードを含む第4のレベル
のうちの少なくとも2つを含む、請求項10に記載の装置。
【請求項12】
前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることが、
前記冗長空き資源グループを第1の資源グループ及び少なくとも1つの第2の資源グループに分割することであって、前記第1の資源グループは前記目標数の計算資源を含む、分割することと、
前記第1の要求に対して前記第1の資源グループから計算資源を割り当てること
を含む、請求項に記載の装置。
【請求項13】
処理ユニットと、
前記処理ユニットに結合され、前記処理ユニットによって実行されるとき、
1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、前記1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信することと、
前記第1の要求に関連する第1のテナントが使用した資源グループ内の第1の計算資源数を判定することと、
前記目標数と前記第1の計算資源数との和が前記第1のテナントに対応する計算資源数の上限を上回ると判定することに応答し、前記第1の要求の優先度を優先度閾値未満に設定することと、
前記目標数の計算資源を有する一致空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することと、
前記一致空き資源グループが前記少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、前記冗長空き資源グループ内の資源数は前記目標数を上回る、判定することと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあることに応答し、前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることと
の動作を装置に実行させる記憶済み命令を含むメモリと
を含む、装置。
【請求項14】
コンピュータ記憶媒体内に有形に記憶され、機械実行可能命令を含むコンピュータプログラムであって、前記機械実行可能命令は装置によって実行されるとき、
目標数の計算資源を有する一致空き資源グループが1組の計算資源内の少なくとも1つの空き資源グループ内にあるかどうかを判定することと、
前記一致空き資源グループが前記少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、前記冗長空き資源グループ内の資源数は前記目標数を上回る、判定することと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあることに応答し、前記冗長空き資源グループを分割することによって第1の要求に前記目標数の計算資源を割り当てることと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にないと判定することに応答し、前記第1の要求の優先度が優先度閾値を上回るかどうかを判定することと、
前記優先度が前記優先度閾値を上回ることに応答し、前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることであって、前記利用可能計算資源は空き計算資源及び前記優先度閾値以下の優先度を有する第2の要求に割り当てられる候補計算資源を含み、前記少なくとも1つの利用可能計算資源は少なくとも1つの利用可能資源グループへと編成される、割り当てることと、
を前記装置に実行させ、
前記1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む前記目標数の計算資源を前記第1の要求に割り当てることが、
前記目標数の計算資源を有する利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にあるかどうかを判定することと、
前記利用可能一致資源グループが前記少なくとも1つの利用可能資源グループ内にあることに応答し、前記利用可能一致資源グループ内で割り当てられている計算資源の返還を要求することと、
前記第1の要求に対して前記利用可能一致資源グループから計算資源を割り当てることと
を含む、コンピュータプログラム。
【請求項15】
コンピュータ記憶媒体内に有形に記憶され、機械実行可能命令を含むコンピュータプログラムであって、前記機械実行可能命令は装置によって実行されるとき、
第1の要求に関連する第1のテナントが使用した資源グループ内の第1の計算資源数を判定することと、
目標数と前記第1の計算資源数との和が前記第1のテナントに対応する計算資源数の上限を上回ると判定することに応答し、前記第1の要求の優先度を優先度閾値未満に設定することと、
前記目標数の計算資源を有する一致空き資源グループが少なくとも1つの空き資源グループ内にあるかどうかを判定することと、
前記一致空き資源グループが前記少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、前記冗長空き資源グループ内の資源数は前記目標数を上回る、判定することと、
前記冗長空き資源グループが前記少なくとも1つの空き資源グループ内にあることに応答し、前記冗長空き資源グループを分割することによって前記第1の要求に前記目標数の計算資源を割り当てることと、
を前記装置に実行させる、コンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
[0001] コンピュータ技術、とりわけ分散計算技術が発展するにつれ、クラウドコンピューティングが近年人気のある計算モデルになっている。クラウドコンピューティングは、構成可能な1組の計算資源(ウェブサーバ、記憶域、グラフィックス処理ユニット等を含む)にネットワーク上で便利に且つ要求に応じたやり方でアクセスするモデルである。1組の計算資源の管理者は資源を少ない管理オーバヘッドで素早く構成し、提供し、又はリリースすることができる。クラウドコンピューティングの焦点は計算資源の管理である。クラウドコンピューティングのための資源の動的割り当てが研究の焦点になっている。
【発明の概要】
【0002】
概要
[0002] 主題の一実装形態によれば、計算資源を動的管理する解決策が提供される。この解決策では、1組の計算資源内の目標数の計算資源を使用するための第1の要求が受信され、1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される。一致空き資源グループが第1の資源グループ内になく、冗長空き資源グループが少なくとも1つの空き資源グループ内にあると判定される場合、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源が割り当てられ、冗長空き資源グループ内の資源数は目標数を上回る。従って計算資源の動的割り当てが使用可能にされる。
【0003】
[0003] この概要は、以下の詳細な説明の中で更に説明する一連の概念を単純化した形で紹介するために提供する。この概要は主題の重要な特徴又は本質的な特徴を識別することも、主題の範囲を限定するために使用されることも意図しない。
【図面の簡単な説明】
【0004】
図面の簡単な説明
図1】[0004]主題の複数の実装形態を実装することができる計算環境のブロック図を示す。
図2】[0005]流れ図を示す、主題の一部の実装形態による計算資源の動的割り当てプロセス。
図3】[0006]主題の一部の実装形態による、1組の計算資源のトポロジの一例を示す。
図4】[0007]主題の一部の実装形態による、利用可能計算資源による割り当てプロセスの流れ図を示す。
図5】[0008]主題の他の実装形態による、計算資源の動的割り当てプロセスの流れ図を示す。
図6】[0009]主題の一部の実装形態による、計算装置の一例のブロック図を示す。
【発明を実施するための形態】
【0005】
[0010] 図中、同じ又は同様の参照符号は同じ又は同様の要素を指す。
【0006】
詳細な説明
[0011] 次に、本明細書に記載する主題を幾つかの実装例に関して解説する。それらの実装形態は本明細書に記載する主題の範囲に対する如何なる制限も提案せず、当業者が主題をよりよく理解し、その結果本明細書に記載する主題を実装できるようにするために論じるに過ぎないことを理解すべきである。
【0007】
[0012] 本明細書で使用するとき、「含む(comprises)」という用語及びその変形は、「~を含むがそれだけに限定されない」という意味の非限定的な用語として解釈されるべきである。「~に基づく(based on)」という用語は「~に少なくとも部分的に基づく」として解釈されるべきである。「一実装形態(one implementation)」及び「或る実装形態(an implementation)」という用語は「少なくとも1つの実装形態」として解釈されるべきである。「別の実装形態(another implementation)」という用語は「少なくとも1つの他の実装形態」として解釈されるべきである。「第1の」、「第2の」等の用語は、異なるか又は同じ対象を指すことができる。以下では、明示的及び暗示的な他の定義が含まれ得る。
【0008】
[0013] 上記で論じたように、クラウドコンピューティングの核心問題は計算資源の管理である。従来の一部の解決策は、クレジットを管理することによって1組の計算資源を共用する複数のテナントに計算資源を割り当てる。例えば複数のテナントがクラウドコンピューティングにおいてマルチグラフィックス処理ユニット(GPU)クラスタを共用するシナリオでは、テナントのクレジットとして一定数のトークンをテナントに割り当てることができ、テナントはトークンを消費することによって提出されたジョブを処理するためのGPUを得ることができる。但し、計算資源を割り当てるプロセスにおいて、従来の解決策は、割り当てられる計算資源の位置を考慮に入れることなしに、資源を申請するテナントについて残りのクレジットがあるかどうかだけを検討する。従って、サイズが小さい(例えば単一のGPU)膨大な量の資源要求のための割り当ては計算資源の断片化された割り当てを招く。そのため、大量の連続した計算資源を必要とし得るテナントにサービス提供することが困難である。
【0009】
[0014] 主題の一実装形態によれば、計算資源を動的管理する解決策が提供される。この解決策では、1組の計算資源内の目標数の計算資源を使用するための第1の要求が受信され、1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される。一致空き資源グループが第1の資源グループ内になく、冗長空き資源グループが少なくとも1つの空き資源グループ内にあると判定される場合、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源が割り当てられ、冗長空き資源グループ内の資源数は目標数を上回る。従って計算資源の動的割り当てが使用可能にされる。
【0010】
[0015] 主題の基本原理及び幾つかの実装形態を、図面に関して以下で説明する。
【0011】
[0016] 図1は、主題の複数の実装形態を実装することができる計算環境100を示す図である。図1に示す計算環境100は例示に過ぎず、本明細書に記載する実装形態の機能及び範囲を限定するものとして解釈すべきでないことを理解すべきである。図1に示すように、計算環境100は計算資源スケジューリング装置115及び1組の計算資源120を含み、1組の計算資源120は複数の計算資源125-1~125-N(計算資源125として個別に又はまとめて呼ぶ)を含み得る。一部の実装形態では、計算資源125はグラフィックス処理ユニットGPUを含み得る。
【0012】
[0017] 一部の実装形態では、計算資源スケジューリング装置115は様々なユーザ端末又はサーバ端末として実装することができる。サーバ端末は、様々なサービスプロバイダによって提供されるサーバ、大規模計算装置等とすることができる。ユーザ端末は、例えば携帯電話、マルチメディアコンピュータ、マルチメディアタブレット、インターネットノード、発信機、デスクトップコンピュータ、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、個人通信システム(PCS)装置、パーソナルナビゲーション装置、携帯情報端末(PDA)、音声/ビデオプレーヤ、デジタルカメラ/カムコーダ、位置決め装置、テレビ受信機、ラジオ放送受信機、電子書籍装置、ゲーム機、又はそれらの装置のアクセサリ及び周辺装置を含むそれらのものの任意の組み合わせを含む、任意の種類のモバイル端末、固定端末、若しくは携帯型端末、又はそれらのものの任意の組み合わせであり得る。
【0013】
[0018] 計算資源スケジューリング装置115は、1組の計算資源120内の計算資源125をスケジューリングするために使用することができる。計算資源スケジューリング装置115は、目標数の計算資源を使用するための要求110を1つ又は複数のアプリケーション又はテナント105から受信する。計算資源スケジューリング装置115は、以下で詳細に説明する計算資源の動的スケジューリングプロセスに基づいて1組の計算資源125から要求110に関する目標数の計算資源を割り当てることができる。例えば計算資源スケジューリング装置115は、要求110のために計算資源125-1及び計算資源125-2を割り当てることができる。
【0014】
[0019] 計算資源スケジューリング装置115による計算資源の動的割り当ての実装例を以下で詳細に論じる。
【0015】
プロセスの例
[0020] 図2は、主題の一部の実装形態による計算資源の動的割り当てプロセス200の流れ図を示す。プロセス200は計算資源スケジューリング装置115によって実装され得る。
【0016】
[0021] 202で、計算資源スケジューリング装置115が1組の計算資源120内の目標数の計算資源を使用するための第1の要求110を受信し、1組の計算資源120のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される。一部の実装形態では、計算資源スケジューリング装置115が、1組の計算資源120内の計算資源を申請するアプリケーション又はテナント105から要求110を受信することができる。例えばテナント105は、2つのGPU装置を使用して機械学習アルゴリズムを展開するための要求を計算資源スケジューリング装置115に出すことができる。
【0017】
[0022] 一部の実装形態では、計算資源スケジューリング装置115が、所定の規則に基づいて1組の計算資源120内の空き計算資源を1つ又は複数の空き資源グループへと編成することができる。例えば過去の要求を分析することに基づき、テナントの殆どが2つの計算資源を要求することを判定することができ、計算資源スケジューリング装置115は連続した2つの計算資源を含む空き資源グループの形式へと空き計算資源を優先的に編成することができる。
【0018】
[0023] 計算資源上で展開されるアプリケーションが計算資源の近接度に一層の関心をもつことを考慮し、例えば同じPCIeスイッチ上の2つのGPUは2つの異なる計算ノード内に位置するものよりも優れた性能を発揮する。一部の実装形態では、計算スケジューリング資源装置115が1組の計算資源110に対応するマルチレベルトポロジを決定し、そのマルチレベルトポロジに基づいて空き資源グループを編成することができる。次に空き資源グループを編成するプロセスを図3に関して説明し、計算資源の一例としてGPUを例に取る。図3は、主題の一部の実装形態による1組の計算資源のトポロジ300の一例を示す図である。
【0019】
[0024] 図3に示すトポロジ300の例では複数のGPUが次のように編成される:複数のGPUは複数の計算ノードへと編成され、各計算ノードは2つの中央処理装置(CPU)スロットを含み、各CPUソケットが2つのバス及びインタフェース規格(PCIe)スイッチに更に接続され、各PCIeスイッチは2つのGPUに接続される。図3に示すように、トポロジ300は複数の異なるレベルに関連する複数のノードを含む。
【0020】
[0025] 具体的には、トポロジ300は個々のGPUに対応する複数のGPUノード345-1~345-8(GPUノード345として個別に又はまとめて呼ぶ)を含む第1のレベル340を含むことができる。例えばGPUノード345-1~345-8は、図1の計算資源125-1~125-N(N=8である)にそれぞれ対応する。トポロジ300は、複数のGPUを接続するPCIeスイッチに対応するノード335-1~335-4(PCIeノード335として個別に又はまとめて呼ぶ)を含む第2のレベル330も含む。
【0021】
[0026] トポロジ300は、複数のPCIeスイッチを接続するCPUソケットに対応するノード325-1~325-2(CPUノード325として個別に又はまとめて呼ぶ)を含む第3のレベル320を更に含む。更にトポロジ300は、複数のCPUソケットを接続する計算装置に対応するノード315-1~315-N(計算装置ノード315として個別に又はまとめて呼ぶ)を含む第4のレベル310も含む。
【0022】
[0027] 図3に示すトポロジ300内の具体的なノードの構成及び具体的なレベルの数は例示に過ぎず、主題の解決策を限定することは意図していない。実際のトポロジに依存する更に多くのレベル又は更に少ないレベルがあり得ることを理解すべきである。例えば1つのCPUソケットが1つのPCIeスイッチに接続される場合、第2のレベル330を省くことができる。一部の実装形態では、マルチレベルトポロジが第1のレベル340、第2のレベル330、第3のレベル320、及び第4のレベル310の少なくとも2つを含むことができる。
【0023】
[0028] 一部の実装形態では、計算資源スケジューリング装置115は、各空き資源グループがマルチレベルトポロジ内の同じノードに関連する計算資源を含むように1組の計算資源110に対応するマルチレベルトポロジに基づいて少なくとも1つの空き計算資源を少なくとも1つの空き資源グループへと編成することができ、マルチレベルトポロジ内のノードは1組の計算資源内の計算資源又は1組の計算資源内の複数の計算資源のための接続構成要素に対応する。
【0024】
[0029] 一部の実装形態では、計算資源スケジューリング装置115は、空き計算資源が最高レベルのノードに関連するように空き計算資源を編成することができる。例えば図3の例を続け、マルチレベルトポロジ300に基づき、計算資源125-1~125-Nが空いている場合、計算スケジューリング資源装置115は空き計算資源125を同じ空き資源グループへと編成することができる。このグループ内で、空き計算資源125の全てがマルチレベルトポロジ300の第4のレベル内の計算装置ノード315-2に関連する。
【0025】
[0030] 別の例として、ノード345-1及び345-2に対応する計算資源125-1及び125-2が使用される。マルチレベルトポロジ300に基づき、計算資源スケジューリング装置115はノード345-3及び345-4に対応する計算資源125-3及び125-4を空き資源グループ370へと編成することを決定し得る。空き資源グループ370内の計算資源のそれぞれはPCIeノード335-2に対応する。同様に計算資源スケジューリング装置115は、ノード345-5~345-8に対応する計算資源125-5~125-N(N=8)を1つの空き資源グループ380へと編成することができる。空き資源グループ380内の計算資源のそれぞれはCPUノード380に関連する。図3に示すように、ノード345-1及び345-2に対応する計算資源125-1及び125-2が使用されるので、計算資源125-1及び125-2は計算資源125-5~125-8と共に同じ空き資源グループへと編成されない。このような空き資源の編成方式に基づき、計算資源スケジューリング装置115は割り当てられる計算資源の近接度を保証し、それにより実行時中の計算資源の効率を改善することができる。
【0026】
[0031] 引き続き図2を参照し、204で、目標数の計算資源を有する一致空き資源グループが空き資源グループの少なくとも1つの中にあるかどうかを計算資源スケジューリング装置115が判定する。一部の実装形態では、計算資源スケジューリング装置115が空き資源グループのリストを保持することができる。図3の例を続け、8つの計算資源125の全てが空いている場合、計算資源スケジューリング装置115は8つの計算資源を有する空き資源グループが1つだけあると判定することができる。少なくとも1つの空き資源グループが一致空き資源グループを含むと204で判定することに応答し、方法200は210に進むこともでき、210で、計算資源スケジューリング装置115は第1の要求110に関して一致空き資源グループ内の計算資源を割り当てる。
【0027】
[0032] 一致空き資源グループが少なくとも1つの空き資源グループ内にないと204で判定することに応答し、方法200は206に進み、206で計算資源スケジューリング装置115は少なくとも1つの空き資源グループが冗長空き資源グループを含むかどうかを判定する。ここで、冗長空き資源グループ内の資源数は目標数を上回る。図3の例を続け、例えば第1の要求110が2つの計算資源の使用を要求する場合、計算資源スケジューリング装置115は「2」の目標数に対応する一致空き資源グループはないと判定することができる。
【0028】
[0033] 計算資源スケジューリング装置115は冗長空き資源グループがあるかどうかを更に判定することができる。一部の実装形態では、計算資源スケジューリング装置115が冗長空き資源グループをより高いレベル内で昇順に検索することができる。例えば2のサイズを有する空き資源グループがないと計算資源スケジューリング装置115が判定する場合、計算資源スケジューリング装置115は第3のレベル320に対応する空き資源グループ(4のサイズを有する資源グループ)があるかどうかを更に判定することができ、ない場合は第4のレベル310に対応する空き資源グループ(8のサイズを有する資源グループ)があるかどうかを更に判定することができる。
【0029】
[0034] 少なくとも1つの空き資源グループが冗長空き資源グループを含むと206で判定することに応答し、方法200は208に進み、208で計算資源スケジューリング装置115は冗長空き資源グループを分割することによって第1の要求に目標数の計算資源を割り当てる。一部の実装形態では、計算資源スケジューリング装置115は冗長空き資源グループを第1の資源グループ及び少なくとも1つの第2の資源グループに分割することができ、第1の資源グループは目標数の計算資源を有する。次いで計算資源スケジューリング装置114は、第1の要求に対して第1の資源グループ内の計算資源を割り当てることができる。例えば図3の例を続け、8つの計算資源125が全て空いており、第1の要求110によって要求される計算資源の数が2である場合、計算資源スケジューリング装置115は冗長空き資源グループを第1の資源グループ360(計算資源125-1及び125-2を含む)、空き資源グループ370(計算資源125-3及び125-4を含む)、及び空き資源グループ380(計算資源125-5~125-8を含む)へと分割することができる。計算資源スケジューリング装置115は、第1の要求110のために、計算資源125-1及び125-2を第1の資源360に更に割り当てることができる。
【0030】
[0035] 一部の実装形態では、計算資源スケジューリング装置115が冗長空き資源グループをトポロジに従って分割することができる。例えば計算資源スケジューリング装置115は、第4のレベル310内のノード315-2に対応する冗長空き資源グループを第3のレベル320内の2つのノード325-1及び325-2に分割することができる。ノード325-1に対応する空き資源グループは、第4のレベル330内のノード335-1及び335-2に対応する2つの空き資源グループに更に分割される。このやり方に基づき、計算資源スケジューリング装置115は割り当て資源の近接度を保証しながらより大きい連続した計算資源グループをできるだけ保つことを更に保証することができる。従って、計算資源は様々なサイズを有する使用要求の要件を満たすことができる。
【0031】
[0036] 一部の実装形態では、第1の要求110を完了することに応答し、計算資源スケジューリング装置115は第1の資源グループを空いているものとして印付けすることができる。計算資源スケジューリング装置115は、少なくとも1つの第2の資源グループ内の計算資源の全てが空いていると更に判定し、第1の資源グループと少なくとも1つの第2の資源グループとを新たな空き資源グループへと併合することができる。例えば図3の例を続け、ノード345-1及び345-2に対応する計算資源125-1及び125-2が空いているものとして印付けされていると判定する場合、計算資源スケジューリング装置115は上位層内のノード325-1に対応する残りの計算資源125-3及び125-4が空いているかどうかをまず判定することができ、空いている場合、4つの計算資源125-1~125-2を新たな空き資源グループへと併合することができる。更に計算資源スケジューリング装置115は、ノード325-1の上のノード315-2に対応する残りの計算資源125-5~125-N(N=8)が空いているかどうかも判定することができ、空いている場合、資源スケジューリング装置115はその後の要求を処理するために計算資源125-1~125-N(N=8)を新たな空き資源グループへと更に併合することができる。このようにして、計算資源スケジューリング装置115は1組のより大きい連続した計算資源グループを常に確保することができ、それにより計算資源が様々なサイズを有する使用要求の要件を満たすことを可能にする。
【0032】
[0037] 一部の実装形態では、少なくとも1つの空き資源グループ内に冗長空き資源グループがないと206で判定することに応答し、方法200は212に進むこともでき、212で計算資源スケジューリング装置115は第1の要求110の優先度が優先度閾値を上回るかどうかを判定する。一部の実装形態では、第1の要求110を開始するとき優先度を示す情報をアプリケーション及び/又はテナント105が付加することができる。例えばアプリケーション及び/又はテナント105は、展開されるタスクの種類に基づいて特定の優先度を指定することができる。例えば、より重要度が高いタスクにより高い優先度を与えることができる。
【0033】
[0038] 一部の実装形態では、計算資源スケジューリング装置115は受信済み要求の優先度制御を実装することもできる。図4は、主題の更なる実装形態による優先度を制御するためのプロセスの流れ図を示す。図4に示すように、ブロック402で、計算資源スケジューリング装置115は、第1の要求に関連する第1のテナント105が使用した資源グループ内の第1の計算資源数を判定することができる。ブロック404で、計算資源スケジューリング装置115は目標数と第1の数との和が第1のテナント105に対応する計算資源数の上限を上回るかどうかを判定することができる。一部の実装形態では、第1のテナントに対応する計算資源数の上限が、第1のテナントに関して予め割り当てられる第2の計算資源数と第2のテナントとの交換によってテナントが得る第3の計算資源数との和に等しい。
【0034】
[0039] 例えばテナント105が購入するサービスに基づき、計算資源スケジューリング装置115は、第1の要求110を出す第1のテナントに関して第2の事前割当資源数(テナントクレジットとも呼ばれる)、例えば4を設定することができる。一部の実装形態では、計算資源スケジューリング装置115はテナント105の第2の事前割当資源数の動的調節をサポートすることができる。例えばテナント105は、第1の期間内のテナントクレジットを減らすために及び第2の期間内のテナントクレジットを増やすために計算資源スケジューリング装置115に申請することができる。このようにして例えばテナント105は、より多くのジョブを処理する必要がある一定期間内に更に多くの計算資源を得ることと引き換えに通常空いている計算資源を譲ることができる。
【0035】
[0040] 一部の実装形態では、仮想プライベート計算資源セットを各テナントに予め割り当てることができ、仮想プライベート計算資源セット内の資源はより高い優先度を有するテナントによって常に占有され得る。一部の実装形態では、テナントに割り当てられる計算資源が常に連続的であるように、仮想プライベート計算資源セットが上述のマルチレベルトポロジ内の層内のノードに対応し得る。
【0036】
[0041] 一部の実装形態では、計算資源スケジューリング装置115がテナント間の資源の交換をサポートすることもできる。例えば計算資源スケジューリング装置115は資源を交換するための所定の規則を構成し、テナントが出す資源交換要求を集めることができる。計算資源スケジューリング装置は、出された資源交換要求が資源の交換を行うための所定の規則に準拠するかどうかを判定することができる。一部の実装形態では、所定の規則は様々なテナントのポイントに基づいて計算資源を交換することを含み得る。例えば様々なテナントは計算資源を提供することによって対応するポイントを得ることができる。例えばテナントAは1計算資源を2ポイントと交換することを申請することができ、テナントBは1計算資源を3ポイントと交換することを申請することができ、テナントCは計算資源の提供を申請することができる。この場合、所定の規則に従い、計算資源スケジューリング装置115はテナントBがテナントCによって提供される計算資源を3ポイント費やして得ることができ、テナントCが対応するポイントを得ることができると決定することができる。このようなやり方に基づき、計算資源スケジューリング装置115は様々なテナントが保有する資源の交換をサポートし、それにより計算資源の使用効率を更に改善することができる。例えば第1のテナント105は、資源の交換によって2つの追加の利用可能計算資源を得ることができる。
【0037】
[0042] 和が計算資源数の上限を上回るとブロック404で判定することに応答し、この方法はブロック406に進み、ブロック406で計算資源スケジューリング装置115は第1の要求の優先度を優先度閾値未満に設定することができる。このようなやり方に基づき、計算資源スケジューリング装置115は一時的に空いている他のテナントの計算資源の一部をテナント105が低優先度で占有できるようにし、それにより計算資源の使用率を上げることができる。
【0038】
[0043] 或いは、和が計算資源数の上限を上回るとブロック404で判定することに応答し、計算資源スケジューリング装置115は和が計算資源数の上限以下になるまで第1の要求を中断することができる。
【0039】
[0044] 或いは、和が計算資源数の上限を上回るとブロック404で判定することに応答し、計算資源スケジューリング装置115は、低優先度で資源を割り当てるかどうかをテナント105にアラートし、低優先度で割り当てられる資源は何時でも返還を要求され得ることをテナント105に注意喚起することもできる。低優先度で資源を割り当てることをテナント105が決める場合、計算資源スケジューリング装置115は第1の要求110の優先度を閾値未満に設定することができる。
【0040】
[0045] 図2を引き続き参照し、優先度が優先度閾値を上回ると212で判定することに応答し、方法200は214に進むこともでき、214で計算資源スケジューリング装置115は1組の計算資源内の少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てる。利用可能計算資源は空き計算資源及び候補計算資源の両方を含むことができ、候補計算資源は優先度閾値以下の優先度を有する第2の要求に割り当てられている資源である。例えばブロック202からブロック206までのプロセスにおいて、テナントが空き計算資源を有さず、テナントによって出される第1の要求110の優先度が優先度閾値を上回ると判定される場合、優先度が低い一部の要求が、テナントに割り当てられている仮想プライベート資源セット内の資源を占有している可能性がある。
【0041】
[0046] 一部の実装形態では、計算資源スケジューリング装置115は、優先度閾値を上回る優先度を有する要求が、候補計算資源とも呼ばれる優先度閾値以下の優先度を有する要求に割り当てられている計算資源を占有することを可能にする。計算資源スケジューリング装置115は、空き資源グループを編成するのと同じやり方で、利用可能計算資源を少なくとも1つの利用可能計算資源グループへと編成することもできる。ブロック214のプロセスは図5に関して以下で詳細に説明し、図5は、主題の一部の実装形態による利用可能計算資源を用いた割り当てのためのプロセス500の流れ図を示す。
【0042】
[0047] 図5に示すように、ブロック502で、計算資源スケジューリング装置115は、目標数の計算資源を有する利用可能一致資源グループが利用可能資源グループの少なくとも1つの中にあるかどうかを判定することができる。図3の例を続け、例えばノード345-1及び345-2に対応する計算資源125-1及び125-2が優先度閾値未満の第2の要求に割り当てられ、この場合の利用可能資源は計算資源125-1~125-N(N=8)を含むが、資源125-1及び125-2は空いていない。従って上述のやり方により、計算資源スケジューリング装置115は利用可能計算資源125-1~125-8を1つの利用可能計算資源グループへと編成することができる。
【0043】
[0048] 利用可能一致資源グループが利用可能資源グループの少なくとも1つの中にあるとブロック502で判定することに応答し、この方法はブロック504に進み、ブロック504で計算資源スケジューリング装置115は利用可能一致資源グループ内で割り当てられている計算資源の返還を要求することができる。例えば第1の要求110が8つの計算資源を使用することを要求する場合、計算資源スケジューリング装置115は計算資源125-1及び125-2上で行われるジョブを直接終了し、第2の要求に割り当てられている計算資源125-1及び125-2の返還を要求することができる。ブロック506で、計算資源スケジューリング装置115が第1の要求110に関して利用可能一致資源グループ内の計算資源を割り当てる。例えば計算資源スケジューリング装置115は、第1の要求110に関して利用可能計算資源125-1~125-N(N=8)を割り当てることができる。
【0044】
[0049] このようなやり方に基づき、計算資源スケジューリング装置115は、他のテナントに過去に割り当てられていた計算資源を一部の要求が一時的に占有することをサポートしながら、他のテナントが自らの対応するクレジットの範囲内で計算資源を常に得ることができることを保証することもできる。
【0045】
[0050] 利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にないとブロック502で判定することに応答し、この方法はブロック508に進み、ブロック508で計算資源スケジューリング装置115は少なくとも1つの利用可能資源グループが利用可能冗長資源グループを含むかどうかを判定することができ、利用可能冗長資源グループ内の資源数は目標数を上回る。
【0046】
[0051] 利用可能冗長資源グループが少なくとも1つの利用可能資源グループ内にあるとブロック508で判定することに応答し、この方法はブロック510に進み、ブロック510で計算資源スケジューリング装置115は利用可能冗長資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることができる。ブロック508及び510のプロセスはブロック206及び208に関して上記で説明したプロセスと同様であり、計算資源スケジューリング装置115はより大きい連続した利用可能計算資源グループを分割することによって目標数の計算資源を得ることができることを理解すべきである。
【0047】
[0052] 上記のやり方に基づき、計算資源スケジューリング装置115は様々な優先度の要求について異なる個別の割り当て論理を実行することができる。空き計算資源を優先的に割り当てる前提を所与とし、優先度の高い要求は優先度の低い要求によって占有される計算資源を更に使用することができ、それにより計算資源を割り当てる柔軟性を高める。
【0048】
環境の例
[0053] 図6は、主題の実施形態を実装可能な装置600を示すブロック図である。装置600は、図1の計算資源スケジューリング装置115を実装するために使用することができる。図6に示す装置600は例示に過ぎず、本明細書に記載の実装形態の機能及び範囲を限定するものとして解釈すべきでないことを理解すべきである。図1に示すように、装置600の構成要素は、これだけに限定されないが1つ又は複数のプロセッサ又は処理ユニット110、メモリ120、記憶装置130、1つ又は複数の通信ユニット140、1つ又は複数の入力装置150、及び1つ又は複数の出力装置160を含み得る。
【0049】
[0054] 一部の実装形態では、装置600は様々なユーザ端末又はサービス提供端末として実装することができる。サービス提供端末は、それぞれのサービスプロバイダによって提供されるサーバ、大規模計算装置等とすることができる。ユーザ端末は、携帯電話、基地局、ユニット、装置、マルチメディアコンピュータ、マルチメディアタブレット、インターネットノード、発信機、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、個人通信システム(PCS)装置、パーソナルナビゲーション装置、携帯情報端末(PDA)、音声/ビデオプレーヤ、デジタルカメラ/ビデオカメラ、位置決め装置、TV受信機、ラジオ放送受信機、電子書籍装置、ゲーム機、又はそれらの装置のアクセサリ及び周辺装置を含むそれらのものの任意の組み合わせ等の、任意の種類のモバイル端末、固定端末、若しくは携帯型端末、又はそれらのものの任意の組み合わせであり得る。計算装置100は任意の種類のユーザ用インタフェース(「装着可能」回路等)をサポートできることが理解されよう。
【0050】
[0055] 処理ユニット610は物理プロセッサ又は仮想プロセッサとすることができ、メモリ620内に記憶されるプログラムに基づいて様々なプロセスを実装することができる。マルチプロセッサシステムでは、複数の処理ユニットがコンピュータ実行可能命令を並列に実行し、それにより計算装置600の並列処理能力を改善する。処理ユニット610は、中央処理装置(CPU)、マイクロプロセッサ、コントローラ、又はマイクロコントローラとも呼ばれ得る。
【0051】
[0056] 装置600は様々なコンピュータ記憶媒体を概して含む。コンピュータ記憶媒体は、これだけに限定されないが揮発性媒体及び不揮発性媒体、並びに脱着可能媒体及び固定型媒体を含む装置600によってアクセス可能な任意の媒体であり得る。メモリ620は揮発性メモリ(例えばレジスタ、キャッシュ、ランダムアクセスメモリ(RAM))、不揮発性メモリ(例えば読取専用メモリ(ROM)、電気的消去プログラム可能読取専用メモリ(EEPROM)、フラッシュメモリ)、又はそれらのものの任意の組み合わせとすることができる。メモリ620は1つ又は複数のプログラムモジュール、例えば計算資源スケジューリングモジュール622を含むことができ、それらのプログラムモジュールは本明細書に記載の様々な実装形態の機能を実行するように構成される。計算資源スケジューリングモジュール622は対応する機能を実装するために処理ユニット610によってアクセスされ、実行され得る。記憶装置630は任意の脱着可能媒体及び固定型媒体とすることができ、情報及び/又はデータを記憶するために使用可能な機械可読媒体を含むことができ、装置600内でアクセスされ得る。
【0052】
[0057] 装置600の構成要素の機能は単一の計算クラスタ又は複数のコンピュータによって実装することができ、それらのコンピュータは通信接続によって通信することができる。従って装置600は、1つ又は複数の他のサーバ、パーソナルコンピュータ(PC)、又は更なる一般ネットワークノードとの論理接続を使用してネットワーキング環境内で動作することができる。通信ユニット640により、装置600は必要に応じて1つ又は複数の外部装置(不図示)と更に通信することができ、外部装置は例えばユーザが装置600と対話できるようにする1つ又は複数の装置、又は装置600が1つ又は複数の他の計算装置と通信できるようにする任意の装置(ネットワークカード、モデム等)を有するデータベース670、他の記憶装置、サーバ、及びディスプレイ装置である。かかる通信は入出力(I/O)インタフェース(不図示)によって行われ得る。
【0053】
[0058] 入力装置650は、マウス、キーボード、トラックボール、音声入力装置等の様々な入力装置の1つ又は複数を含むことができる。出力装置660はディスプレイ、スピーカ、プリンタ等の様々な出力装置の1つ又は複数を含むことができる。
【0054】
[0059] 装置600は、1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信すること、目標数の計算資源を有する一致空き資源グループが少なくとも1つの空き資源グループ内にあるかどうかを判定すること、一致空き資源グループが少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが少なくとも1つの空き資源グループ内に含まれるかどうかを判定することであって、冗長空き資源グループ内に含まれる資源数は目標数を上回る、判定すること、及び冗長空き資源グループが少なくとも1つの空き資源グループ内にあることに応答し、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることを行うように構成される計算資源スケジューリングモジュール622を含む。
【0055】
実施形態の実装
[0060] 主題の一部の実装例を以下に記載する。
【0056】
[0061] 第1の態様によれば、計算資源を管理する方法が提供される。この方法は、1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信すること、目標数の計算資源を有する一致空き資源グループが少なくとも1つの空き資源グループ内にあるかどうかを判定すること、一致空き資源グループが少なくとも1つの空き資源グループ内にないことに応答し、冗長空き資源グループが少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、冗長空き資源グループ内の資源数は目標数を上回る、判定すること、及び冗長空き資源グループが少なくとも1つの空き資源グループ内にあることに応答し、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることを含む。
【0057】
[0062] 一部の実装形態では、この方法は、各空き資源グループがマルチレベルトポロジ内の同じノードに関連する計算資源を含むように1組の計算資源に対応するマルチレベルトポロジに基づいて少なくとも1つの空き計算資源を少なくとも1つの空き資源グループへと編成することであって、マルチレベルトポロジ内のノードは1組の計算資源又は1組の計算資源内の複数の計算資源のための接続構成要素の1つに対応する、編成することを更に含む。
【0058】
[0063] 一部の実装形態では、計算資源がグラフィックス処理ユニットを含み、マルチレベルトポロジが、個々のグラフィックス処理ユニットに対応するノードを含む第1のレベル、複数のグラフィックス処理ユニットを接続するためのPCIeスイッチに対応するノードを含む第2のレベル、複数のPCIeスイッチを接続するためのCPUソケットに対応するノードを含む第3のレベル、及び複数のCPUソケットを接続するための計算装置に対応するノードを含む第4のレベルのうちの少なくとも2つを含む。
【0059】
[0064] 一部の実装形態では、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることが、冗長空き資源グループを第1の資源グループ及び少なくとも1つの第2の資源グループに分割することであって、第1の資源グループは目標数の計算資源を含む、分割すること、及び第1の要求に対して第1の資源グループから計算資源を割り当てることを含む。
【0060】
[0065] 一部の実装形態では、この方法は、第1の要求を完了することに応答し、第1の資源グループを空いているものとして印付けすること、及び少なくとも1つの第2の資源グループ内の計算資源の全てが空いていると判定することに応答し、第1の資源グループと少なくとも1つの第2の資源グループとを新たな空き資源グループへと併合することを更に含む。
【0061】
[0066] 一部の実装形態では、この方法は、冗長空き資源グループが少なくとも1つの空き資源グループ内にないと判定することに応答し、第1の要求の優先度が優先度閾値を上回るかどうかを判定すること、及び優先度が優先度閾値を上回ることに応答し、1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てることであって、利用可能計算資源は空き計算資源及び優先度閾値以下の優先度を有する第2の要求に割り当てられる候補計算資源を含む、割り当てることを更に含む。
【0062】
[0067] 一部の実装形態では、少なくとも1つの利用可能計算資源が少なくとも1つの利用可能資源グループへと編成され、1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てることが、目標数の計算資源を有する利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にあるかどうかを判定すること、利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にあることに応答し、利用可能一致資源グループ内で割り当てられている計算資源の返還を要求すること、及び第1の要求に対して利用可能一致資源グループから計算資源を割り当てることを含む。
【0063】
[0068] 一部の実装形態では、1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てることが、利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にないことに応答し、利用可能冗長資源グループが少なくとも1つの利用可能資源グループ内にあるかどうかを判定することであって、利用可能冗長資源グループ内の資源数は目標数を上回る、判定すること、及び利用可能冗長資源グループが少なくとも1つの利用可能資源グループ内にあると判定することに応答し、利用可能冗長資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることを含む。
【0064】
[0069] 一部の実装形態では、この方法は、第1の要求に関連する第1のテナントが使用した資源グループ内の第1の計算資源数を判定すること、及び目標数と第1の数との和が第1のテナントに対応する計算資源数の上限を上回ると判定することに応答し、第1の要求の優先度を優先度閾値未満に設定することを含む。
【0065】
[0070] 一部の実装形態では、第1のテナントに対応する計算資源数の上限が、第1のテナントに関して予め割り当てられる第2の計算資源数と第2のテナントとの交換によって得られる第3の計算資源数との和に等しい。
【0066】
[0071] 第2の態様によれば装置が提供される。この装置は、処理ユニットと、処理ユニットに結合され、処理ユニットによって実行されるとき、1組の計算資源内の目標数の計算資源を使用するための第1の要求を受信することであって、1組の計算資源のうちの少なくとも1つの空き計算資源が少なくとも1つの空き資源グループへと編成される、受信すること、目標数の計算資源を有する一致空き資源グループが少なくとも1つの空き資源グループ内にあるかどうかを判定すること、一致空き資源グループが少なくとも1つの空き資源グループ内にない、冗長空き資源グループが少なくとも1つの空き資源グループ内にあるかどうかを判定することであって、冗長空き資源グループ内の資源数は目標数を上回る、判定すること、及び冗長空き資源グループが少なくとも1つの空き資源グループ内にあることに応答し、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることの動作を装置に実行させる記憶済み命令を含むメモリとを含む。
【0067】
[0072] 一部の実装形態では、この動作は、各空き資源グループがマルチレベルトポロジ内の同じノードに関連する計算資源を含むように1組の計算資源に対応するマルチレベルトポロジに基づいて少なくとも1つの空き計算資源を少なくとも1つの空き資源グループへと編成することであって、マルチレベルトポロジ内のノードは1組の計算資源又は1組の計算資源内の複数の計算資源のための接続構成要素の1つに対応する、編成することを更に含む。
【0068】
[0073] 一部の実装形態では、計算資源がグラフィックス処理ユニットを含み、マルチレベルトポロジが、個々のグラフィックス処理ユニットに対応するノードを含む第1のレベル、複数のグラフィックス処理ユニットを接続するためのPCIeスイッチに対応するノードを含む第2のレベル、複数のPCIeスイッチを接続するためのCPUソケットに対応するノードを含む第3のレベル、及び複数のCPUソケットを接続するための計算装置に対応するノードを含む第4のレベルのうちの少なくとも2つを含む。
【0069】
[0074] 一部の実装形態では、冗長空き資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることが、冗長空き資源グループを第1の資源グループ及び少なくとも1つの第2の資源グループに分割することであって、第1の資源グループは目標数の計算資源を含む、分割すること、及び第1の要求に対して第1の資源グループから計算資源を割り当てることを含む。
【0070】
[0075] 一部の実装形態では、この動作は、第1の要求を完了することに応答し、第1の資源グループを空いているものとして印付けすること、及び少なくとも1つの第2の資源グループ内の計算資源の全てが空いていると判定することに応答し、第1の資源グループと少なくとも1つの第2の資源グループとを新たな空き資源グループへと併合することを更に含む。
【0071】
[0076] 一部の実装形態では、この動作は、冗長空き資源グループが少なくとも1つの空き資源グループ内にないと判定することに応答し、第1の要求の優先度が優先度閾値を上回るかどうかを判定すること、及び優先度が優先度閾値を上回ることに応答し、1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てることであって、利用可能計算資源は空き計算資源及び優先度閾値以下の優先度を有する第2の要求に割り当てられる候補計算資源を含む、割り当てることを更に含む。
【0072】
[0077] 一部の実装形態では、少なくとも1つの利用可能計算資源が少なくとも1つの利用可能資源グループへと編成され、1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てることが、目標数の計算資源を有する利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にあるかどうかを判定すること、利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にあることに応答し、利用可能一致資源グループ内で割り当てられている計算資源の返還を要求すること、及び第1の要求に対して利用可能一致資源グループから計算資源を割り当てることを含む。
【0073】
[0078] 一部の実装形態では、1組の計算資源のうちの少なくとも1つの利用可能計算資源を含む目標数の計算資源を第1の要求に割り当てることが、利用可能一致資源グループが少なくとも1つの利用可能資源グループ内にないことに応答し、利用可能冗長資源グループが少なくとも1つの利用可能資源グループ内にあるかどうかを判定することであって、利用可能冗長資源グループ内の資源数は目標数を上回る、判定すること、及び利用可能冗長資源グループが少なくとも1つの利用可能資源グループ内にあると判定することに応答し、利用可能冗長資源グループを分割することによって第1の要求に目標数の計算資源を割り当てることを含む。
【0074】
[0079] 一部の実装形態では、この動作は、第1の要求に関連する第1のテナントが使用した資源グループ内の第1の計算資源数を判定すること、及び目標数と第1の数との和が第1のテナントに対応する計算資源数の上限を上回ると判定することに応答し、第1の要求の優先度を優先度閾値未満に設定することを更に含む。
【0075】
[0080] 一部の実装形態では、第1のテナントに対応する計算資源数の上限が、第1のテナントに関して予め割り当てられる第2の計算資源数と第2のテナントとの交換によって得られる第3の計算資源数との和に等しい。
【0076】
[0081] 第3の態様によれば、非一時的コンピュータ記憶媒体内に有形に記憶され、機械実行可能命令を含むコンピュータプログラム製品が提供され、機械実行可能命令は装置によって実行されるとき第1の態様による任意の方法を装置に実行させる。
【0077】
[0082] 第4の態様によれば、機械実行可能命令が記憶されているコンピュータ可読媒体が提供され、機械実行可能命令は装置によって実行されるとき第1の態様による方法を装置に実行させる。
【0078】
[0083] 本明細書に記載した機能は1つ又は複数のハードウェア論理構成要素によって少なくとも部分的に実行され得る。例えば及び限定なしに、使用可能なハードウェア論理構成要素の例示的な種類は書換可能ゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、結合プログラム可能論理装置(CPLD)等を含む。
【0079】
[0084] 本明細書に記載した主題の方法を実行するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせによって書くことができる。それらのプログラムコードは汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理機器のプロセッサ又はコントローラに与えることができ、それによりプログラムコードはプロセッサ又はコントローラによって実行されるとき、流れ図及び/又はブロック図の中で指定された機能/操作を実装させる。プログラムコードは機械上で完全に、機械上で部分的に、独立型ソフトウェアパッケージとして、機械上で部分的且つ遠隔機械上で部分的に、又は遠隔機械若しくはサーバ上で完全に実行され得る。
【0080】
[0085] 本開示に関して、機械可読媒体は命令実行システム、機器、又は装置によって又はそれらに関連して使用するためのプログラムを含む又は記憶することができる任意の有形媒体であり得る。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であり得る。機械可読媒体は、これだけに限定されないが電子、磁気、光学、電磁、赤外線、又は半導体システム、機器、若しくは装置、又は上記のものの任意の適切な組み合わせを含み得る。機械可読記憶媒体のより具体的な例は、1つ又は複数の配線を有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去プログラム可能読取専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は上記のものの任意の適切な組み合わせを含む。
【0081】
[0086] 更に特定の順序で操作を示したが、それは、所望の結果を実現するために図示の特定の順序若しくは逐次的な順序でそれらの操作を実行する必要があること、又は図示の全ての操作を実行する必要があることとして理解されるべきではない。特定の状況では、マルチタスク及び並列処理が有利な場合がある。同様に、幾つかの具体的な実装形態の詳細が上記の解説に含まれるが、それらは本明細書に記載した主題の範囲に対する限定として解釈されるべきではなく、むしろ特定の実装形態に固有であり得る特徴の説明として解釈されるべきである。別々の実装形態の脈絡で記載した特定の特徴を単一の実装形態の中で組み合わせて実装してもよい。逆に、単一の実装形態の脈絡で記載した様々な特徴を複数の実装形態によって別々に又は任意の適切なサブコンビネーションによって実装してもよい。
【0082】
[0087] 構造上の特徴及び/又は方法論的な動作に固有の言語で主題を記載したが、添付の特許請求の範囲の中で定める主題は、必ずしも上記の特定の特徴又は動作に限定されないことを理解すべきである。むしろ上記の特定の特徴及び動作は特許請求の範囲を実装する形式の例として開示した。
図1
図2
図3
図4
図5
図6