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

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

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特許7423681アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム
<>
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図1
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図2
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図3
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図4
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図5A
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図5B
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図6A
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図6B
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図7
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図8
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図9
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図10
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図11
  • 特許-アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240122BHJP
   G06F 9/455 20180101ALI20240122BHJP
【FI】
G06F9/50 120Z
G06F9/455 150
【請求項の数】 18
【外国語出願】
(21)【出願番号】P 2022075909
(22)【出願日】2022-05-02
(62)【分割の表示】P 2020524091の分割
【原出願日】2017-11-15
(65)【公開番号】P2022105146
(43)【公開日】2022-07-12
【審査請求日】2022-05-02
【前置審査】
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ジア、シャオリン
(72)【発明者】
【氏名】ワン、ジュンジエ
【審査官】三坂 敏夫
(56)【参考文献】
【文献】中国特許出願公開第105159753(CN,A)
【文献】国際公開第2016/149892(WO,A1)
【文献】特表2013-516021(JP,A)
【文献】特表2014-504409(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
仮想マシンを形成するよう構成されるハイパーバイザを有する計算ノードであって、前記仮想マシンは、前記仮想マシンで実行するアプリケーションのデータを生成するように構成され、前記計算ノードはスケジューリング装置を含む、計算ノードと、
複数の物理アクセラレータを有するアクセラレーションリソースクラスターであって、前記複数の物理アクセラレータは、物理アクセラレーションリソースを形成し、前記物理アクセラレーションリソースは、第1の物理アクセラレーションリソースを含む、アクセラレーションリソースクラスターと、
前記計算ノードに接続し、前記仮想マシンが形成された後に、必要に応じて、前記物理アクセラレーションリソースからの前記第1の物理アクセラレーションリソースを前記仮想マシンに割り当てるためのコマンドを、前記スケジューリング装置に送信するように構成される管理ノードと
を備え、
前記スケジューリング装置は、前記データを前記第1の物理アクセラレーションリソースに伝送するように構成され、
前記第1の物理アクセラレーションリソースは、
前記スケジューリング装置から前記データを受信し、
前記データを処理して結果を取得する
ように構成される、システム。
【請求項2】
前記アクセラレーションリソースクラスターは、前記仮想マシンから離れており、前記スケジューリング装置は、ネットワークを介して、前記アクセラレーションリソースクラスターにアクセスする、請求項1に記載のシステム。
【請求項3】
前記第1の物理アクセラレーションリソースは、前記結果を前記仮想マシンに送信するようにさらに構成される、請求項1又は2に記載のシステム。
【請求項4】
前記第1の物理アクセラレーションリソースは、前記複数の物理アクセラレータのうちの1つ又は複数の物理アクセラレータからのものである、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記第1の物理アクセラレーションリソースは、前記複数の物理アクセラレータのうちの1つの物理アクセラレータの一部からのものである、請求項1から3のいずれか一項に記載のシステム。
【請求項6】
前記スケジューリング装置は、前記第1の物理アクセラレーションリソースを記録するようにさらに構成される、請求項1に記載のシステム。
【請求項7】
前記スケジューリング装置は、命令に応答して、前記第1の物理アクセラレーションリソースを解放するようにさらに構成される、請求項6に記載のシステム。
【請求項8】
前記複数の物理アクセラレータは、ヘテロジニアスであり、グラフィック処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、又は、特定用途向け集積回路(ASIC)である、請求項1から7のいずれか一項に記載のシステム。
【請求項9】
前記スケジューリング装置は、前記仮想マシン、他の仮想マシン、又はコンテナに配置される、請求項1から8のいずれか一項に記載のシステム。
【請求項10】
前記複数の物理アクセラレータは、分散サーバに位置している、請求項1から9のいずれか一項に記載のシステム。
【請求項11】
前記アクセラレーションリソースクラスターを共有するように構成される追加の仮想マシンを備える、請求項1から10のいずれか一項に記載のシステム。
【請求項12】
前記追加の仮想マシンは、アプリケーションを実行するようにさらに構成され、前記アプリケーションは、前記アクセラレーションリソースクラスターを共有するように構成される、請求項11に記載のシステム。
【請求項13】
ハイパーバイザを有する計算ノードが、仮想マシンを形成する段階であって、前記仮想マシンは、前記仮想マシンで実行するアプリケーションのデータを生成するように構成される、形成する段階と、
前記計算ノードに接続している管理ノードが、前記仮想マシンが形成された後に、必要に応じて、アクセラレーションリソースクラスターに含まれる複数の物理アクセラレータによって形成される物理アクセラレーションリソースからの第1の物理アクセラレーションリソースを前記仮想マシンに割り当てるためのコマンドを、前記計算ノードに含まれるスケジューリング装置に送信する段階と、
前記スケジューリング装置が、前記データを前記第1の物理アクセラレーションリソースに伝送する段階と、
前記第1の物理アクセラレーションリソースが、前記データを受信する段階と、
前記第1の物理アクセラレーションリソースが、前記データを処理して結果を取得する段階と
を備える、方法。
【請求項14】
前記第1の物理アクセラレーションリソースが、前記結果を前記仮想マシンに送信する段階をさらに備える、請求項13に記載の方法。
【請求項15】
前記スケジューリング装置が、前記第1の物理アクセラレーションリソースを記録する段階をさらに備える、請求項13又は14に記載の方法。
【請求項16】
前記スケジューリング装置が、命令に応答して、前記第1の物理アクセラレーションリソースを解放する段階をさらに備える、請求項15に記載の方法。
【請求項17】
追加の仮想マシンが、前記アクセラレーションリソースクラスターを共有する段階をさらに備える、請求項14から16のいずれか一項に記載の方法。
【請求項18】
ハイパーバイザを有する計算ノードのプロセッサに、
仮想マシンを形成する手順であって、前記仮想マシンは、前記仮想マシンで実行するアプリケーションのデータを生成するように構成される、形成する手順と、
前記仮想マシンが形成された後に、必要に応じて、前記計算ノードに接続している管理ノードから、アクセラレーションリソースクラスターに含まれる複数の物理アクセラレータによって形成される物理アクセラレーションリソースからの第1の物理アクセラレーションリソースを前記仮想マシンに割り当てるためのコマンドを受信する手順と、
前記データを、前記第1の物理アクセラレーションリソースに伝送する手順と、
前記第1の物理アクセラレーションリソースから、前記第1の物理アクセラレーションリソースが前記データを処理した結果を受信する手順と
を実行させるための、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ技術の分野に関し、具体的には、アクセラレーションリソーススケジューリング方法及び装置、並びにアクセラレーションシステムに関する。
【背景技術】
【0002】
クライアントアプリケーションおよびクライアントデータの爆発的な増加に伴って、コンピューティングノードのコンピューティング能力に対する要件が、ますます高くなっている。汎用の中央演算処理装置(Central Processing Unit、CPU)のコンピューティング能力では、急速な発展を見せる現在のサービスの高性能コンピューティングに対する要求を満たすことができない。したがって、経済的且つ効果的に高性能コンピューティング能力を獲得することができ、高い拡張性、高いコンピューティングリソース利用率、及び極めて大きい発展可能性を有するヘテロジニアスコンピューティングが、能力を発揮する。しかしながら、異なる企業のサービスには、通常、異なるヘテロジニアスコンピューティングの機能が必要になる。例えば、異なる企業が、ヘテロジニアスアクセラレーション機能の種類及び粒度の側面において異なる選択を行う。
【0003】
先行技術では、グラフィック処理装置(Graphics Processing Unit、GPU)に特化したヘテロジニアスアクセラレーションの解決手段が提供されている。コンピューティングノードが、クライアントサーバ(client-server)方式のサーバ上にあるGPUリソースにアクセスし、そのGPUリソースを用いる。しかしながら、コンピューティングノードの仮想マシン(Virtual Machine、VM)では、サーバ上のGPUリソースにアクセスすることも、そのGPUリソースを用いることもできず、サーバ上にある全てのGPUリソースの仮想化を実現することもできない。
【発明の概要】
【0004】
本願の実施形態の目的とは、ヘテロジニアスアクセラレーションリソース仮想化のシナリオにおいて仮想マシンのヘテロジニアスコンピューティングを実現し、仮想マシンのコンピューティング性能を向上させることを期待して、アクセラレーションリソーススケジューリング方法及び装置並びにアクセラレーションシステムを提供することである。
【0005】
第1の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法を提供する。アクセラレーションシステムは、コンピューティングノードと少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。本方法は、スケジューリング装置によって実行され、以下のことを含む。すなわち、スケジューリング装置は、仮想マシンから送信されるアクセラレーション命令を受信し、アクセラレーション命令はアクセラレーション対象のデータを含む。次いでスケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータの少なくとも1つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む。スケジューリング装置は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令を当該ネットワークアクセラレータに送信するので、ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信することができる。物理アクセラレータがアクセラレーション命令を処理した後に、スケジューリング装置は、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを実行した後に返されるコンピューティング結果を受信し、このコンピューティング結果を仮想マシンに送信する。
【0006】
前述のアクセラレーションリソーススケジューリング方法に基づいて、クラウド内の少なくとも1つのネットワークアクセラレータにより提供されるアクセラレーションリソースが仮想化された後に、仮想マシンは、仮想アクセラレータに対応し、仮想アクセラレータに提供されるアクセラレーションリソースを仮想マシンに与える。VMは、対応する仮想アクセラレータに直接アクセスして、クラウド内の物理アクセラレーションリソースへの仮想マシンのアクセスを実現するので、ヘテロジニアスアクセラレーションリソース仮想化のシナリオにおいて、仮想マシンヘテロジニアスコンピューティングが実現される。仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータの少なくとも1つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含み、クラウドにおいて提供される物理アクセラレーションリソースが、必要に応じて、仮想マシンに割り当てられる。
【0007】
実現可能な実装例において、スケジューリング装置が、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階は、スケジューリング装置が仮想アクセラレータに対応するオブジェクトアクセラレータを決定する段階であって、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである、段階を含む。本方法はさらに、スケジューリング装置が、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階の後に、スケジューリング装置がオブジェクトアクセラレータの識別子をネットワークアクセラレータに送信する段階を含むので、ネットワークアクセラレータは、オブジェクトアクセラレータの識別子に基づいて、オブジェクトアクセラレータに対応する物理アクセラレータを決定して、アクセラレーション命令を物理アクセラレータに送信する。スケジューリング装置に対する物理アクセラレーションリソースのマッピングの階層管理が、仮想アクセラレータとオブジェクトアクセラレータとの間のマッピング、及びオブジェクトアクセラレータと物理アクセラレータとの間のマッピングによって実現される。これは、スケジューリング装置に対する物理アクセラレーションリソースのマッピングのメンテナンスを簡略化するのに役立つ。
【0008】
実現可能な実装例において、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階は、仮想アクセラレータに対応する物理アクセラレータを決定する段階であって、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである、段階を含む。本方法はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階の後に、物理アクセラレータの識別子をネットワークアクセラレータに送信する段階を含むので、ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【0009】
実現可能な実装例において、本方法はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当てる段階と、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する段階とを含む。仮想マシンの物理アクセラレーションリソースの使用中実装が、オブジェクトアクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【0010】
実現可能な実装例において、本方法はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する段階の前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当てる段階と、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納する段階とを含む。仮想マシンの物理アクセラレーションリソースの使用中実装が、物理アクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【0011】
実現可能な実装例において、本方法はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、その仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納する段階とを含む。仮想マシンの物理アクセラレーションリソースの使用中更新が、オブジェクトアクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【0012】
実現可能な実装例において、本方法はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応する物理アクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納する段階とを含む。物理アクセラレーションリソースの使用中更新が、物理アクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【0013】
実現可能な実装例において、本方法はさらに、管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信する段階であって、オブジェクトアクセラレータ削除コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、スケジューリング装置がオブジェクトアクセラレータの識別子に基づいて、仮想アクセラレータに対応する全てのオブジェクトアクセラレータがオブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応する全てのオブジェクトアクセラレータがオブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除する段階とを含む。物理アクセラレーションリソースの使用中実装解除が、オブジェクトアクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【0014】
実現可能な実装例において、本方法はさらに、管理ノードにより送信される物理アクセラレータ削除コマンドを受信する段階であって、物理アクセラレータ削除コマンドは仮想マシンの識別子と物理アクセラレータの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、スケジューリング装置が物理アクセラレータの識別子に基づいて、仮想アクセラレータに対応する全ての物理アクセラレータが物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応する全ての物理アクセラレータが物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、物理アクセラレータの識別子を削除する段階とを含む。物理アクセラレーションリソースの使用中実装解除が、物理アクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【0015】
実現可能な実装例において、アクセラレーション命令はさらに、仮想マシンの識別子を含み、スケジューリング装置は仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【0016】
実現可能な実装例において、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【0017】
第2の態様によれば、本願の一実施形態がアクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法を提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。本方法は、管理ノードにより実行され、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、物理アクセラレーションリソース形成コマンドを生成する段階であって、物理アクセラレーションリソース形成コマンドは、オブジェクトアクセラレータを形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するよう、ネットワークアクセラレータに命令するのに用いられる、段階と、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信する段階と、ネットワークアクセラレータにより送信されるオブジェクトアクセラレータの識別子を受信する段階と、仮想アクセラレータ利用コマンドを生成する段階であって、仮想アクセラレータ利用コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、段階と、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する段階であって、これにより、スケジューリング装置は、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を仮想アクセラレータ利用コマンドに基づいて格納する、段階とを含む。
【0018】
第3の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法を提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。本方法は、管理ノードにより実行され、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、仮想アクセラレータ利用コマンドを生成する段階であって、仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、段階と、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する段階であって、これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納する、段階とを含む。
【0019】
第4の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるスケジューリング装置を提供する。アクセラレーションシステムはコンピューティングノードと少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。スケジューリング装置は、仮想マシンにより送信されるアクセラレーション命令を受信するように構成された送受信機ユニットであって、アクセラレーション命令はアクセラレーション対象のデータを含む、送受信機ユニットと、処理ユニットとを含む。処理ユニットは、仮想マシンに割り当てられる仮想アクセラレータを決定することであって、仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータの少なくとも1つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む、決定することと、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令をネットワークアクセラレータに送信することであって、これによりネットワークアクセラレータはアクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する、送信することとを行うように構成される。送受信機ユニットはさらに、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信し、このコンピューティング結果を仮想マシンに送信するように構成される。
【0020】
実現可能な実装例において、処理ユニットは具体的には、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、仮想アクセラレータに対応するオブジェクトアクセラレータを決定するように構成され、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。処理ユニットはさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、オブジェクトアクセラレータの識別子をネットワークアクセラレータに送信するように構成され、これにより、ネットワークアクセラレータはオブジェクトアクセラレータに対応する物理アクセラレータをオブジェクトアクセラレータの識別子に基づいて決定し、アクセラレーション命令を物理アクセラレータに送信する。
【0021】
実現可能な実装例において、処理ユニットは具体的には、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、仮想アクセラレータに対応する物理アクセラレータを決定するように構成され、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。処理ユニットはさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、物理アクセラレータの識別子をネットワークアクセラレータに送信するように構成され、これにより、ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【0022】
実現可能な実装例において、送受信機ユニットはさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成して、その仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納するように構成される。
【0023】
実現可能な実装例において、送受信機ユニットはさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成して、その仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納するように構成される。
【0024】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納するように構成される。
【0025】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する物理アクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納するように構成される。
【0026】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信するように構成され、オブジェクトアクセラレータ削除コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかをオブジェクトアクセラレータの識別子に基づいて判定し、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除するように構成される。
【0027】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信される物理アクセラレータ削除コマンドを受信するように構成され、物理アクセラレータ削除コマンドは仮想マシンの識別子と物理アクセラレータの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを物理アクセラレータの識別子に基づいて判定し、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、物理アクセラレータの識別子を削除するように構成される。
【0028】
実現可能な実装例において、アクセラレーション命令はさらに、仮想マシンの識別子を含み、処理ユニットはさらに、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納するように構成される。処理ユニットは具体的には、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定するように構成される。
【0029】
実現可能な実装例において、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納する。処理ユニットは具体的には、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、仮想マシンに対応する仮想アクセラレータを仮想アクセラレータの識別子に基づいて決定するように構成される。
【0030】
第5の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるスケジューリング装置を提供する。アクセラレーションシステムはコンピューティングノードと少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。スケジューリング装置は、プロセッサと、メモリと、バスとを含み、プロセッサとメモリとはバスを用いて接続され、メモリはアプリケーションコードのセットを格納するように構成され、プロセッサは、メモリに格納されたアプリケーションコードを呼び出して、本願の実施形態の第1の態様又は第1の態様の任意の実装例の段階を実行するように構成される。
【0031】
第6の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定して、物理アクセラレーションリソース形成コマンドを生成するように構成された処理ユニットであって、物理アクセラレーションリソース形成コマンドは、オブジェクトアクセラレータを形成するようネットワークアクセラレータに命令し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、処理ユニットとを含む。送受信機ユニットはさらに、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信し、ネットワークアクセラレータにより送信されるオブジェクトアクセラレータの識別子を受信するように構成される。処理ユニットはさらに、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する、送信することとを行うように構成される。
【0032】
スケジューリング装置は、仮想アクセラレータ利用コマンドを受信した後に、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を仮想アクセラレータ利用コマンドに基づいて格納し得ることが、理解されるであろう。
【0033】
第7の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。管理ノードは、プロセッサと、メモリと、バスとを含み、プロセッサとメモリとはバスを用いて接続され、メモリは、アプリケーションコードのセットを格納するように構成され、プロセッサは、メモリに格納されたアプリケーションコードを呼び出して、本願の実施形態の第6の態様における段階を実行するように構成される。
【0034】
第8の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定することと、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を仮想アクセラレータ利用コマンドに基づいて格納する、送信することとを行うように構成された処理ユニットとを含む。
【0035】
第9の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。管理ノードは、プロセッサと、メモリと、バスとを含み、プロセッサとメモリとはバスを用いて接続され、メモリは、アプリケーションコードのセットを格納するように構成され、プロセッサは、メモリに格納されたアプリケーションコードを呼び出して、本願の実施形態における第8の態様の段階を実行するように構成される。
【0036】
第10の態様によれば、本願の一実施形態がアクセラレーションシステムを提供する。アクセラレーションシステムは、本願の第6の態様又は第8の態様の任意の実装例における管理ノードを含んでよく、さらに、コンピューティングノードと少なくとも1つのネットワークアクセラレータとを含んでよい。コンピューティングノードは、仮想マシンと、本願の第4の態様又は第4の態様の任意の実装例におけるスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。
【0037】
第11の態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令は、コンピュータで実行されると、第1の態様又は第1の態様の任意の実現可能な実装例における方法を実現する。
【0038】
第12の態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令は、コンピュータで実行されると、第2の態様における方法を実現する。
【0039】
第13の態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令は、コンピュータで実行されると、第3の態様における方法を実現する。
【図面の簡単な説明】
【0040】
本願の実施形態又は背景技術における技術的解決手段をより明確に説明するために、以下では、本願の実施形態又は背景技術を説明するのに必要な添付図面を説明する。
【0041】
図1】本願の一実施形態によるアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。
【0042】
図2】本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。
【0043】
図3】本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。
【0044】
図4】本願の一実施形態によるアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【0045】
図5A】本願の一実施形態による別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
図5B図5Aから続く、本願の一実施形態による別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【0046】
図6A】本願の一実施形態による、さらに別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
図6B図6Aから続く、本願の一実施形態による、さらに別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【0047】
図7】本願の一実施形態によるスケジューリング装置の概略構造図である。
【0048】
図8】本願の一実施形態による別のスケジューリング装置の概略構造図である。
【0049】
図9】本願の一実施形態による管理ノードの概略構造図である。
【0050】
図10】本願の一実施形態による別の管理ノードの概略構造図である。
【0051】
図11】本願の一実施形態による、さらに別の管理ノードの概略構造図である。
【0052】
図12】本願の一実施形態による、さらに別の管理ノードの概略構造図である。
【発明を実施するための形態】
【0053】
以下では、本願の実施形態の添付図面を参照して、本願の実施形態を説明する。本明細書、特許請求の範囲、及び本願の添付図面において言及される用語「含む(including)」、「有する(having)」、及びこれらのあらゆる他の変化形は、非排他的包含に適用されることが意図されている。例えば、一連の段階又はユニットを含むプロセス、方法、システム、製品、又はデバイスが、列挙された段階又はユニットに限定されることはなく、必要であればさらに、列挙されていない段階若しくはユニットを含むか、又は必要であればさらに、上記プロセス、方法、製品、若しくはデバイスに固有の別の段階若しくはユニットを含む。
【0054】
図1を参照すると、図1は、本願の一実施形態によるアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図1に示すように、アクセラレーションリソーススケジューリングシステムは、コンピューティングノードと、管理ノードと、物理アクセラレーションリソースとを含む。コンピューティングノードは、ネットワークスイッチを用いて物理アクセラレーションリソースに接続されてよく、管理ノードは、ネットワークスイッチを用いてコンピューティングノードに接続され、管理ノードはさらに、ネットワークスイッチを用いて物理アクセラレーションリソースに接続される。管理ノードと物理アクセラレーションリソースとは、クラウドに配置されてよく、管理ノードは、クラウド内の物理アクセラレーションリソースに対して集中管理を実行するように構成されたサーバであってよい。物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータを含む。コンピューティングノードは、1つ又は複数の仮想マシンを形成してよい。コンピューティングノードにより形成される仮想マシンが、クラウド内の物理アクセラレーションリソースをスケジューリングして、アクセラレーション対象のデータに対してアクセラレーション処理を行う必要がある場合、仮想マシンは、管理ノードに対するアクセラレーションリソースの利用を事前に開始してよい。管理ノードは、物理アクセラレーションリソースを仮想化した後に、クラウドに配置された少なくともいくつかの物理アクセラレーションリソースを仮想マシンが用いるために構成し、次いで、仮想マシンは、クラウド内の構成された少なくともいくつかの物理アクセラレーションリソースをアクセラレーション処理のためにスケジューリングしてよい。
【0055】
コンピューティングノードは、サーバ、コンピュータ、又は通信端末などのコンピューティングデバイスであってよい。
【0056】
図2を参照すると、図2は、本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図1に示すシステムアーキテクチャに基づいて、図2に示すシステムアーキテクチャは、物理アクセラレーションリソースが1つのネットワークアクセラレータ30を含み且つコンピューティングノード10が1つの仮想マシン102を含む一例を用いて説明される。図2に示すように、コンピューティングノード10は、仮想マシン102とスケジューリング装置104とを含む。ネットワークアクセラレータ30は少なくとも1つの物理アクセラレータを含み、図2では、2つの物理アクセラレータ302及び303が一例として説明に用いられている。ネットワークアクセラレータ30の中にある物理アクセラレータは、限定されることはないが、グラフィック処理装置(英語表記:Graphics Processing Unit、略してGPU)又はフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、又は特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)チップなどの装置を用いて実装されてよい。それぞれのネットワークアクセラレータ30の中にある少なくとも1つの物理アクセラレータが、限定されることはないが、GPU、FPGA、又はASICなどの装置を用いて実装されてよい。
【0057】
具体的には、コンピューティングノード10の仮想マシン102により用いられるプロセッサ101が、ペリフェラルコンポーネントインターコネクトエクスプレス(Peripheral Component Interconnect express、PCIe)バス103を用いてスケジューリング装置104に接続される。
【0058】
管理ノード20は、ネットワークアクセラレータ30と、仮想マシン102と、スケジューリング装置104とに、ネットワークを用いて個別に接続され、管理ノード20は、ユーザのアクセラレーション要件に基づいて、複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースを使用のために仮想マシン102に割り当てるように構成される。特定の実装例において、管理ノード20は、仮想アクセラレータ利用コマンドをスケジューリング装置104に送信して、仮想アクセラレータ105の形成と、仮想アクセラレータ105とオブジェクトアクセラレータ301との間のマッピング論理又は仮想アクセラレータ105と物理アクセラレータ302との間のマッピング論理の処理とを担うようスケジューリング装置104に命令する。仮想アクセラレータ105とオブジェクトアクセラレータ301とのマッピング論理関係が、図2に示す破線で示されている。仮想アクセラレータ105は、仮想マシン102に割り当てられる物理アクセラレーションリソースをスケジューリング装置104上でマッピングしており、物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータ30の少なくとも1つの物理アクセラレータ302の中に少なくともいくつかの物理アクセラレーションリソースを含み、クラウドにおいて提供される物理アクセラレーションリソースが、必要に応じて、仮想マシン102に割り当てられる。
【0059】
ネットワークアクセラレータ30は、ネットワークを用いてスケジューリング装置104と管理ノード20とに接続され、管理ノード20により送信される物理アクセラレーションリソース形成コマンドに基づいてオブジェクトアクセラレータ301を形成し、オブジェクトアクセラレータ301の識別子を形成し、オブジェクトアクセラレータ301の識別子と、ネットワークアクセラレータ30に存在し且つ物理アクセラレーションリソースを仮想マシン102に提供するよう構成された物理アクセラレータの識別子との対応関係を格納するように構成される。オブジェクトアクセラレータ301の識別子と、ネットワークアクセラレータ30に存在し且つ物理アクセラレーションリソースを仮想マシン102に提供するように構成された物理アクセラレータの識別子との対応関係は、図2に破線で示されている。
【0060】
スケジューリング装置104は、管理ノード20により送信される仮想アクセラレータ利用コマンドに基づく仮想アクセラレータ105の形成、及び仮想アクセラレータ105とオブジェクトアクセラレータ301との間のマッピング論理の処理、並びに管理ノード20により送信されるオブジェクトアクセラレータ削除コマンドに基づく、仮想アクセラレータ105とオブジェクトアクセラレータ301との間のマッピング論理の削除を担うように構成される。
【0061】
管理ノード20はさらに、ユーザのリソース削除要件に基づいて、物理アクセラレーションリソースに存在し且つ仮想マシン102に使用のために割り当てられた少なくともいくつかの物理アクセラレーションリソースから、ユーザが削除する必要がある物理アクセラレーションリソースの一部又は全てを削除するように構成される。任意選択で、ある実装例では、管理ノード20は、クライアントにより送信されるアクセラレーションリソース削除要求を受信し、ユーザが削除する必要がある、仮想マシン102の物理アクセラレーションリソースを削除する。クライアントは、仮想マシン102又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシン102に対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシン102に割り当てられた、仮想アクセラレータ105の識別子又はオブジェクトアクセラレータ301の識別子を含む。
【0062】
図3を参照すると、図3は、本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図3に示すシステムアーキテクチャと図2に示すシステムアーキテクチャとは、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理が異なることを除いて、ハードウェア実装に何も差がない。図2に示す、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理は、仮想アクセラレータとオブジェクトアクセラレータとの間のマッピング論理と、オブジェクトアクセラレータと物理アクセラレータとの間のマッピング論理とを用いて実装される。図3に示す、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理は、仮想アクセラレータと物理アクセラレータとの間のマッピング論理を用いて実装される。図3に示すシステムアーキテクチャでは、管理ノード20が、ネットワークアクセラレータ30と、仮想マシン102と、スケジューリング装置104とにネットワークを用いて接続され、管理ノード20は、ユーザのアクセラレーション要件に基づいて、複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースを使用のために仮想マシン102に割り当てるように構成される。特定の実装例において、管理ノード20は、仮想アクセラレータ利用コマンドをスケジューリング装置104に送信して、仮想アクセラレータ105の形成と、仮想アクセラレータ105と物理アクセラレータ302との間のマッピング論理の処理とを担うようスケジューリング装置104に命令する。仮想アクセラレータ105と物理アクセラレータ302との間のマッピング論理は、図3に破線を用いて示されている。
【0063】
さらに、図3に示すシステムアーキテクチャは、スケジューリング装置104が、管理ノード20により送信される仮想アクセラレータ利用コマンドに基づく仮想アクセラレータ105の形成、及び仮想アクセラレータ105と物理アクセラレータ302との間のマッピング論理の処理、並びに管理ノード20により送信される物理アクセラレータ削除コマンドに基づく、仮想アクセラレータ105と物理アクセラレータ302との間のマッピング論理の削除を担うように構成されるという点で、図2に示すシステムアーキテクチャと異なる。
【0064】
さらに、図3に示すシステムアーキテクチャは、管理ノード20がさらに、ユーザのリソース削除要件に基づいて、物理アクセラレーションリソースに存在し且つ仮想マシン102に使用のために割り当てられた少なくともいくつかの物理アクセラレーションリソースから、ユーザが削除する必要がある物理アクセラレーションリソースの一部又は全てを削除するように構成されるという点で、図2に示すシステムアーキテクチャと異なる。任意選択で、ある実装例では、管理ノード20は、クライアントにより送信される物理アクセラレータ削除コマンドを受信し、ユーザが削除する必要がある、仮想マシン102の物理アクセラレーションリソースを削除する。物理アクセラレータ削除コマンドは、削除対象の物理アクセラレータ302の識別子と仮想マシン102の識別子とを含む。クライアントは、仮想マシン102又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシン102に対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシン102に割り当てられた、仮想アクセラレータ105の識別子又は物理アクセラレータ302の識別子を含む。前述のシステムアーキテクチャの実施形態において、クラウド内の少なくとも1つのネットワークアクセラレータにより提供される物理アクセラレーションリソースが仮想化された後に、仮想マシンは、仮想アクセラレータに対応し、仮想アクセラレータに提供されるアクセラレーションリソースを仮想マシンに与える。VMは、対応する仮想アクセラレータに直接アクセスして、クラウド内の物理アクセラレーションリソースへの仮想マシンのアクセスを実現するので、ヘテロジニアスアクセラレーションリソース仮想化のシナリオにおいて、仮想マシンヘテロジニアスコンピューティングが実現される。
【0065】
図2及び図3に示すアクセラレーションリソーススケジューリングシステムのアーキテクチャを参照して、以下では、本願の一実施形態におけるアクセラレーションリソーススケジューリング方法を詳細に説明する。図2又は図3に示すシステムアーキテクチャによる仮想マシンのアクセラレーション要件の実装例が、コンピューティングノードのスケジューリング装置を用いて仮想マシンのアクセラレーション要件を処理することである。特定の実装例において、図4を参照すると、図4は、本願の一実施形態によるアクセラレーションリソーススケジューリング方法の概略フローチャートである。本方法は、アクセラレーションシステムに適用され、アクセラレーションシステムはコンピューティングノードと少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。図4における本方法の段階S401が、図1図2、又は図3の仮想マシンによって実行されてよく、図4における本方法の段階S402、S403、及びS406が、図1図2、若しくは図3のスケジューリング装置、又は図7若しくは図8のスケジューリング装置、又は図7に示すスケジューリング装置の処理ユニット、又は図8に示すスケジューリング装置のプロセッサ110によって実行されてよい。本方法は、以下に挙げる段階を含む。
【0066】
S401:VMがアクセラレーション命令をスケジューリング装置に送信する。アクセラレーション命令はアクセラレーション対象のデータを含む。
【0067】
アクセラレーション命令はさらに、仮想マシンの識別子又は仮想アクセラレータの識別子を含む。
【0068】
仮想マシンの識別子は、アクセラレーション命令を送信する仮想マシンを示すのに用いられる。
【0069】
仮想アクセラレータの識別子は、アクセラレーション命令を処理する仮想アクセラレータを示すのに用いられる。図2又は図3に示すシステムアーキテクチャに基づいて、1つの対応する仮想アクセラレータが、それぞれのコンピューティングノードのそれぞれの仮想マシンに割り当てられる。それぞれの仮想マシンは、その仮想マシンに対応する仮想アクセラレータの識別子を事前に格納する。
【0070】
S402:スケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。
【0071】
任意選択で、段階S401のアクセラレーション命令がさらに仮想マシンの識別子を含む場合、スケジューリング装置は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【0072】
任意選択で、段階S401のアクセラレーション命令がさらに仮想マシンの識別子を含む場合、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【0073】
仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータの少なくとも1つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む。
【0074】
S403:スケジューリング装置は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令をネットワークアクセラレータに送信する。
【0075】
S404:ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する。
【0076】
S405:物理アクセラレータは、物理アクセラレーションリソースを用いて、アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行い、次いで、コンピューティング結果をスケジューリング装置に返す。
【0077】
S406:スケジューリング装置は、コンピューティング結果を仮想マシンに送信する。
【0078】
VMがネットワークアクセラレータの物理アクセラレーションリソースにアクセスするスケジューリング処理全体が、コンピューティングノードの仮想化中間層(ハイパーバイザ)の関与を必要とせず、仮想マシンに対応する仮想アクセラレータに直接アクセスすることによって、スケジューリング装置により実施され得るので、ネットワークアクセラレータにアクセスする場合の仮想マシンの遅延を低減することができる。さらに、仮想アクセラレータがVMに対して可視であり、VMは複数のネットワークアクセラレータを直接管理する必要がないので、VMのテナントによるアクセラレーションリソースの使用及び管理を簡略化することができる。さらに、仮想アクセラレータと物理アクセラレーションリソースとのマッピング関係が、仮想マシンに割り当てられる物理アクセラレーションリソースの、スケジューリング装置に対するマッピングを実施することにより実装される。このように、異なる仮想マシンにそれぞれ対応する仮想アクセラレータがマッピングされる物理アクセラレーションリソースを迅速に決定することができ、仮想マシンのアクセラレーション命令の直接転送が実施され得るので、仮想マシンのデータフロー全体のアクセラレーションを完了することができる。さらに、クラウド内の異なるタイプの物理アクセラレーションリソース(GPU、FPGA、又はASICアクセラレーションリソースなど)が、一元的に管理され且つ仮想化され得る。クラウド内の物理アクセラレーションリソースは、異なる仮想マシンの異なるアクセラレーション要件に基づいて柔軟に仮想化されるので、互換性が高い。
【0079】
仮想アクセラレータと、クラウド内の複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースとの間のマッピングを実現するために、仮想アクセラレータはオブジェクトアクセラレータにマッピングされてよく、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション対象のデータを処理する仮想マシンに割り当てられるネットワークアクセラレータである。具体的には、マッピングは、図2に示すシステムアーキテクチャに基づいて、図5A及び図5Bに例示する方法を参照して実施されてよい。あるいは、仮想アクセラレータは、クラウド内の少なくともいくつかの物理アクセラレーションリソースの物理アクセラレータに直接マッピングされてよく、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション対象のデータを処理する仮想マシンに割り当てられるネットワークアクセラレータである。具体的には、マッピングは、図3に示すシステムアーキテクチャに基づいて、図6A及び図6Bに例示する方法を参照して実施されてよい。
【0080】
図5A及び図5Bを参照すると、図5A及び図5Bは、本願の一実施形態による別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。VMがアクセラレーションリソースに適用されることを意図している場合、VMは、クライアントを用いて、管理ノードに対するアクセラレーションリソース利用要求を開始してよく、管理ノードは、VMのアクセラレーションリソース要件とネットワークアクセラレータのリソース使用率とに基づいて、仮想アクセラレータ利用コマンドを生成し、このコマンドをスケジューリング装置に送信して、スケジューリング装置にアクセラレーションリソーススケジューリングを実行するよう命令してよい。図5A及び図5Bに示す方法の段階S501及びS510は、図1図2、又は図3の仮想マシンにより実行されてよい。図5A及び図5Bに示す方法の段階S502、S503、S504、S506、及びS507は、図1図2、若しくは図3の管理ノード、又は図9若しくは図10の管理ノード、又は図9に示す管理ノードの処理ユニット、又は図10に示す管理ノードのプロセッサ210により実行されてよい。図5A及び図5Bに示す方法の段階S508、S509、S511、S512、S513、及びS516は、図1図2、若しくは図3のスケジューリング装置、又は図7若しくは図8のスケジューリング装置、又は図7に示すスケジューリング装置の処理ユニット、又は図8に示すスケジューリング装置のプロセッサ110により実行されてよい。本方法は、以下に挙げる段階を含んでよい。
【0081】
S501:仮想マシンが、アクセラレーションリソース利用要求を管理ノードに送信する。
【0082】
アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む。
【0083】
S502:管理ノードは、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する。
【0084】
S503:管理ノードは物理アクセラレーションリソース形成コマンドを生成する。物理アクセラレーションリソース形成コマンドは、オブジェクトアクセラレータを形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するよう、ネットワークアクセラレータに命令するのに用いられる。
【0085】
S504:管理ノードは、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信する。
【0086】
S505:ネットワークアクセラレータは、オブジェクトアクセラレータの識別子を管理ノードに送信する。
【0087】
ネットワークアクセラレータは、物理アクセラレーションリソース形成コマンドを受信し、オブジェクトアクセラレータの識別子を形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成されたそれぞれの物理アクセラレータの識別子との対応関係を格納する。
【0088】
S506:管理ノードは、仮想アクセラレータ利用コマンドを生成する。仮想アクセラレータ利用コマンドは、仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。
【0089】
S507:管理ノードは、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する。これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する。
【0090】
アクセラレーションリソースは、段階S501~S507を用いて、仮想マシンの仮想アクセラレータに割り当てられる。ユーザが、その後、アクセラレーションリソースを削除する必要がある場合、特定の実装例が、クライアントにより送信されるアクセラレーションリソース削除要求を管理ノードが受信し、ユーザが削除する必要がある、仮想マシンの物理アクセラレーションリソースを削除する段階である。クライアントは、仮想マシン又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシンに対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシンに割り当てられた、仮想アクセラレータの識別子、物理アクセラレータの識別子、又はオブジェクトアクセラレータの識別子を含む。
【0091】
仮想アクセラレータに対応するオブジェクトアクセラレータに対応するいくつかの物理アクセラレータにより提供される物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントは、アクセラレーションリソース削除要求を管理ノードに送信する。アクセラレーションリソース削除要求は、削除対象の物理アクセラレータの識別子と、削除対象の物理アクセラレータに対応するオブジェクトアクセラレータの識別子とを含む。管理ノードは、クライアントにより送信されるアクセラレーションリソース削除要求を受信した後に、物理アクセラレーションリソース削除コマンドを生成し、この物理アクセラレーションリソース削除コマンドを、削除対象の物理アクセラレータが位置しているネットワークアクセラレータに送信する。物理アクセラレーションリソース削除コマンドは、削除対象の物理アクセラレータが位置しているネットワークアクセラレータに命令して、削除対象の物理アクセラレータの識別子と削除対象の物理アクセラレータに対応するオブジェクトアクセラレータの識別子との対応関係を削除するのに用いられる。
【0092】
仮想アクセラレータに対応するオブジェクトアクセラレータに対応する全ての物理アクセラレータにより提供される物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントを用いてユーザにより送信されるアクセラレーションリソース削除要求はさらに、仮想マシンの識別子を含む。特定の実装例において、クライアントにより送信されるアクセラレーションリソース削除要求を管理ノードが受信した後に、さらに、管理ノードがオブジェクトアクセラレータ削除コマンドをスケジューリング装置に送信する段階が含まれ、オブジェクトアクセラレータ削除コマンドは、仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。オブジェクトアクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータがあると、仮想マシンの識別子に基づいて判定された後に、仮想アクセラレータに対応する全てのオブジェクトアクセラレータがオブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除するのに用いられる。
【0093】
仮想アクセラレータにより提供される全ての物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントを用いてユーザにより送信されるアクセラレーションリソース削除要求はさらに、仮想マシンの識別子と仮想アクセラレータの識別子とを含む。特定の実装例において、管理ノードがクライアントにより送信されるアクセラレーションリソース削除要求を受信した後に、さらに、管理ノードが仮想アクセラレータ削除コマンドをスケジューリング装置に送信する段階が含まれる。仮想アクセラレータ削除コマンドは、仮想マシンの識別子と仮想アクセラレータの識別子とを含み、仮想アクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータの識別子により示される仮想アクセラレータがあると、仮想マシンの識別子に基づいて判定された後に、仮想アクセラレータの識別子と全てのオブジェクトアクセラレータの識別子との対応関係を削除するのに用いられる。
【0094】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータが1つもないと判定した後に、仮想アクセラレータを形成するプロセスを説明する。具体的な実装については、段階S508を参照されたい。
【0095】
S508:仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、スケジューリング装置は、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する。
【0096】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータがあると判定した後に、仮想アクセラレータを更新するプロセスを説明する。具体的な実装については、段階S509を参照されたい。
【0097】
S509:仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納する。
【0098】
以下では、スケジューリング装置が、仮想アクセラレータを形成した後に、アクセラレーション対象のデータに対してアクセラレーション処理を行うための物理アクセラレーションリソースを提供する方法を説明する。具体的には、以下に挙げる段階S510~S516が含まれる。
【0099】
S510:VMはアクセラレーション命令をスケジューリング装置に送信する。アクセラレーション命令はアクセラレーション対象のデータを含む。具体的な実装については、図4に示す段階S401を参照されたい。
【0100】
S511:スケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。具体的な実装詳細については、図4に示す段階S402を参照されたい。
【0101】
任意選択で、アクセラレーション命令はさらに、仮想マシンの識別子を含む。スケジューリング装置は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定してよい。
【0102】
あるいは、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納する。スケジューリング装置は、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定してよい。
【0103】
S512:スケジューリング装置は、仮想アクセラレータに対応するオブジェクトアクセラレータを決定する。
【0104】
オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【0105】
S513:スケジューリング装置は、オブジェクトアクセラレータの識別子をネットワークアクセラレータに送信する。
【0106】
S514:ネットワークアクセラレータは、オブジェクトアクセラレータの識別子に基づいて、オブジェクトアクセラレータに対応する物理アクセラレータを決定し、アクセラレーション命令を物理アクセラレータに送信する。
【0107】
S515:物理アクセラレータは、物理アクセラレーションリソースを用いて、アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行い、次いで、コンピューティング結果をスケジューリング装置に返す。
【0108】
S516:スケジューリング装置は、コンピューティング結果を仮想マシンに送信する。
【0109】
当然ながら、仮想アクセラレータと、クラウド内の複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースとの間でマッピングを実施するために、別の任意選択の実装例では、仮想アクセラレータは、クラウド内の少なくともいくつかの物理アクセラレーションリソースの物理アクセラレータに直接マッピングされてよく、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション対象のデータを処理する仮想マシンに割り当てられるネットワークアクセラレータである。具体的には、マッピングは、図3に示すシステムアーキテクチャに基づいて、図6A及び図6Bに例示する方法を参照して実施されてよい。
【0110】
図6A及び図6Bを参照すると、図6A及び図6Bは、本願の一実施形態による、さらに別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。VMがアクセラレーションリソースに適用されることを意図している場合、VMは、クライアントを用いて、管理ノードに対するアクセラレーションリソース利用要求を開始してよい。管理ノードは、VMのアクセラレーションリソース要件とネットワークアクセラレータのリソース使用率とに基づいて、仮想アクセラレータ利用コマンドを生成し、このコマンドをスケジューリング装置に送信して、スケジューリング装置にアクセラレーションリソーススケジューリングを実行するよう命令してよい。図6A及び図6Bに示す方法の段階S601及びS607は、図1図2、又は図3の仮想マシンにより実行されてよい。図6Aに示す方法の段階S602、S603、及びS604は、図1図2、若しくは図3の管理ノード、又は図11若しくは図12の管理ノード、又は図11に示す管理ノードの処理ユニット、又は図12に示す管理ノードのプロセッサ310により実行されてよい。図6A及び図6Bに示す方法の段階S605、S606、S608、S609、S610、及びS613は、図1図2、若しくは図3のスケジューリング装置、又は図7若しくは図8のスケジューリング装置、又は図7に示すスケジューリング装置の処理ユニット、又は図8に示すスケジューリング装置のプロセッサ110により実行されてよい。本方法は、以下に挙げる段階を含んでよい。
【0111】
S601:仮想マシンがアクセラレーションリソース利用要求を管理ノードに送信する。
【0112】
アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む。
【0113】
S602:管理ノードは、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する。
【0114】
S603:管理ノードは、仮想アクセラレータ利用コマンドを生成する。
【0115】
仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む。
【0116】
S604:管理ノードは、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する。これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納する。
【0117】
アクセラレーションリソースは、段階S601~S604を用いて、仮想マシンの仮想アクセラレータに割り当てられる。ユーザが、その後、アクセラレーションリソースを削除する必要がある場合、特定の実装例が、クライアントにより送信される物理アクセラレータ削除コマンドを管理ノードが受信し、ユーザが削除する必要がある、仮想マシンの物理アクセラレーションリソースを削除する段階である。物理アクセラレータ削除コマンドは、削除対象の物理アクセラレータの識別子と仮想マシンの識別子とを含む。クライアントは、仮想マシン又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシンに対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシンに割り当てられた、仮想アクセラレータの識別子又は物理アクセラレータの識別子を含む。管理ノードは、クライアントを用いてユーザにより送信される物理アクセラレータ削除コマンドを受信した後に、物理アクセラレータ削除コマンドをスケジューリング装置に送信する。物理アクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータがあると判定された後に、物理アクセラレータの識別子に基づいて、仮想アクセラレータに対応する全ての物理アクセラレータが、削除対象の物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、削除対象の物理アクセラレータの識別子を削除するのに用いられる。
【0118】
仮想アクセラレータにより提供される全ての物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントを用いてユーザにより送信される物理アクセラレータ削除コマンドはさらに、仮想アクセラレータの識別子を含む。特定の実装例において、クライアントにより送信される物理アクセラレータ削除コマンドを管理ノードが受信した後に、さらに、管理ノードが仮想アクセラレータ削除コマンドをスケジューリング装置に送信する段階が含まれ、仮想アクセラレータ削除コマンドは仮想マシンの識別子と仮想アクセラレータの識別子とを含む。仮想アクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータの識別子により示される仮想アクセラレータがあると、仮想マシンの識別子に基づいて判定された後に、仮想アクセラレータの識別子と全ての物理アクセラレータの識別子との対応関係を削除するのに用いられる。
【0119】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータが1つもないと判定した後に、仮想アクセラレータを形成するプロセスを説明する。具体的な実装については、段階S605を参照されたい。
【0120】
S605:仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、スケジューリング装置は、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納する。
【0121】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータがあると判定した後に、仮想アクセラレータを形成するプロセスを説明する。具体的な実装については、段階S606を参照されたい。
【0122】
S606:仮想マシンに対応する仮想アクセラレータがあると判定された場合、スケジューリング装置は、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する物理アクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納する。
【0123】
以下では、スケジューリング装置が、仮想アクセラレータを形成した後に、仮想マシンがアクセラレーション対象のデータに対してアクセラレーション処理を行うための、物理アクセラレーションリソースを提供する方法を説明する。具体的には、以下に挙げる段階S607~S613が含まれる。
【0124】
S607:VMはアクセラレーション命令をスケジューリング装置に送信する。アクセラレーション命令はアクセラレーション対象のデータを含む。具体的な実装詳細については、図4に示す段階S401を参照されたい。
【0125】
S608:スケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。具体的な実装詳細については、図4に示す段階S402を参照されたい。
【0126】
S609:スケジューリング装置は、仮想アクセラレータに対応する物理アクセラレータを決定する。
【0127】
物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【0128】
S610:スケジューリング装置は、物理アクセラレータの識別子をネットワークアクセラレータに送信する。
【0129】
S611:ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【0130】
S612:物理アクセラレータは、物理アクセラレーションリソースを用いて、アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行い、次いで、コンピューティング結果をスケジューリング装置に返す。
【0131】
S613:スケジューリング装置は、コンピューティング結果を仮想マシンに送信する。
【0132】
本願の一実施形態がさらに、管理ノードにより実行されるリソーススケジューリング方法を開示する。本方法の主な段階については、図5A図6Bの実施形態での説明を参照されたい。詳細は、ここで再度説明しない。
【0133】
図7を参照すると、本図は、本願の一実施形態によるスケジューリング装置の概略構造図である。スケジューリング装置はアクセラレーションシステムに適用され、アクセラレーションシステムはコンピューティングノードと少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。スケジューリング装置は、送受信機ユニット100と処理ユニット200とを含む。
【0134】
送受信機ユニット100は、仮想マシンにより送信されるアクセラレーション命令を受信するように構成され、アクセラレーション命令はアクセラレーション対象のデータを含む。
【0135】
処理ユニット200は、仮想マシンに割り当てられる仮想アクセラレータを決定するように構成され、仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも1つのネットワークアクセラレータの少なくとも1つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む。処理ユニット200はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令を当該ネットワークアクセラレータに送信するように構成されるので、ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する。
【0136】
送受信機ユニット100はさらに、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信し、このコンピューティング結果を仮想マシンに送信するように構成される。
【0137】
任意選択で、処理ユニット200は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、具体的には、仮想アクセラレータに対応するオブジェクトアクセラレータを決定するように構成され、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【0138】
処理ユニット200はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、オブジェクトアクセラレータの識別子をネットワークアクセラレータに送信するように構成されるので、ネットワークアクセラレータは、オブジェクトアクセラレータに対応する物理アクセラレータをオブジェクトアクセラレータの識別子に基づいて決定し、アクセラレーション命令を物理アクセラレータに送信する。
【0139】
任意選択で、処理ユニット200は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、具体的には、仮想アクセラレータに対応する物理アクセラレータを決定するように構成され、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【0140】
処理ユニット200はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、物理アクセラレータの識別子をネットワークアクセラレータに送信するように構成されるので、ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【0141】
任意選択で、送受信機ユニット100はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、オブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。
【0142】
処理ユニット200はさらに、仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納するように構成される。
【0143】
任意選択で、送受信機ユニット100はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、物理アクセラレータの識別子と仮想マシンの識別子とを含む。
【0144】
処理ユニット200はさらに、仮想マシンに対応する仮想アクセラレータが1つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納するように構成される。
【0145】
任意選択で、送受信機ユニット100はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、オブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。
【0146】
処理ユニット200はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納するように構成される。
【0147】
任意選択で、送受信機ユニット100はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、物理アクセラレータの識別子と仮想マシンの識別子とを含む。
【0148】
処理ユニット200はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納するように構成される。
【0149】
任意選択で、送受信機ユニット100はさらに、管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信するように構成され、オブジェクトアクセラレータ削除コマンドは、仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。
【0150】
処理ユニット200はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、オブジェクトアクセラレータの識別子に基づいて、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除するように構成される。
【0151】
任意選択で、送受信機ユニット100はさらに、管理ノードにより送信される物理アクセラレータ削除コマンドを受信するように構成され、物理アクセラレータ削除コマンドは、仮想マシンの識別子と物理アクセラレータの識別子とを含む。
【0152】
処理ユニット200はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、物理アクセラレータの識別子に基づいて、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、物理アクセラレータの識別子を削除するように構成される。
【0153】
任意選択で、アクセラレーション命令はさらに、仮想マシンの識別子を含み、処理ユニット200はさらに、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納するように構成される。処理ユニット200は、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、具体的には、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定するように構成される。
【0154】
任意選択で、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納する。処理ユニット200は、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、具体的には、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定するように構成される。
【0155】
図7に示すスケジューリング装置の送受信機ユニット100の諸機能が、図4の段階S401、S405、及びS406、又は図5A及び図5Bの段階S507、S510、S513、S515、及びS516、又は図6A及び図6Bの段階S604、S607、S610、S612、及びS613に対応する。送受信機ユニット100は、図4の段階S401、S405、及びS406、又は図5A及び図5Bの段階S507、S510、S513、S515、及びS516、又は図6A及び図6Bの段階S604、S607、S610、S612、及びS613の動作を行うことができる。図7に示すスケジューリング装置の処理ユニット200の諸機能が、図4の段階S402及びS403、又は図5A及び図5Bの段階S508、S509、S511、S512、及びS516、又は図6A及び図6Bの段階S605、S606、S608、及びS609に対応する。処理ユニット200は、図4の段階S402及びS403、又は図5A及び図5Bの段階S508、S509、S511、S512、及びS516、又は図6A及び図6Bの段階S605、S606、S608、及びS609の動作を行うことができる。
【0156】
さらに、図7に示すスケジューリング装置は具体的には、制御機能を有し且つコンピューティングノードに配置される装置であってよい。
【0157】
さらに、図7に示すスケジューリング装置は、コンピューティングノードの外側に配置される独立したデバイスであってもよく、コンピューティングノードに直接統合されるモジュールであってもよく、コンピューティングノードの仮想マシンのアクセラレーション要件に基づいて、アクセラレーションリソースをスケジューリングするように構成される。
【0158】
図8を参照すると、図8は、本願の一実施形態による別のスケジューリング装置の概略構造図である。図8に示すように、本装置は、プロセッサ110と、メモリ120と、バス130とを含んでよく、プロセッサ110とメモリ120とはバス130を用いて接続される。メモリ120は、命令を格納するように構成され、プロセッサ110は、メモリ120により格納された命令を実行して、図4図6Bに示す方法のスケジューリング装置により実行される対応する各段階を実施するように構成される。
【0159】
また、本装置はさらに、入力インタフェース140と出力インタフェース150とを含んでよく、プロセッサ110と、メモリ120と、入力インタフェース140と、出力インタフェース150とは、バス130を用いて接続されてよい。
【0160】
プロセッサ110は、メモリ120により格納された命令を実行して、信号を受信するよう入力インタフェース140を制御し、信号を送信するよう出力インタフェース150を制御するように構成されることにより、前述の方法のコントローラにより実行される各段階を完了する。入力インタフェース140及び出力インタフェース150は、同じ物理エンティティでも異なる物理エンティティでもよく、同じ物理エンティティの場合には、まとめて入出力インタフェースと呼ばれることがある。メモリ120は、プロセッサ110に統合されてもよく、プロセッサ110から分離していてもよい。
【0161】
ある実装例では、入力インタフェース140及び出力インタフェース150の諸機能が、送受信機回路又は専用の送受信機チップを用いて実装されてよい。プロセッサ110は、専用の処理チップ、処理回路若しくはプロセッサ、又は汎用チップを用いて実装されてよい。
【0162】
別の実装例において、本願の本実施形態において提供される装置は、汎用コンピュータを用いて実装されてもよい。具体的には、プロセッサ110、入力インタフェース140、及び出力インタフェース150の諸機能を実装するプログラムコードがメモリに格納され、汎用プロセッサが、メモリ内のコードを実行することにより、プロセッサ110、入力インタフェース140、及び出力インタフェース150の諸機能を実現する。
【0163】
本願の本実施形態において提供される技術的解決手段及び他の段階に関連した、装置に関する概念、解釈、及び詳細な説明については、前述の方法又は他の実施形態における内容の説明を参照されたい。詳細は、ここで再度説明しない。
【0164】
当業者であれば、図7では、説明しやすくするために、1つのメモリ及びプロセッサしか示していないことを理解するであろう。実際のコントローラでは、複数のプロセッサ及びメモリがあってもよい。メモリは、記憶媒体又は記憶装置などとも呼ばれることがある。これについては、本願の本実施形態では限定されない。
【0165】
スケジューリング装置はコンピューティングノードに統合されてもよく、スケジューリング装置は独立して存在してもよく、コンピューティングノードに接続されるインタフェースが、コンピューティングノードを用いてデータ伝送を実施するように構成されることに留意されたい。例えば、スケジューリング装置は、組み込みカードとして構成されてよく、スケジューリング装置がコンピューティングノードのPCIeインタフェースに接続されるように、PCIeインタフェースが構成される。また、スケジューリング装置がネットワーク又はクラウドの管理ノード及びネットワークアクセラレータに接続され、両者の間でデータのやり取りが実施されるように、ネットワークインタフェースが構成される。さらに、独立して配置されるプロセッサ及びメモリなどが、プログラムコードの格納及び実行を実現することにより、本願の方法の実施形態のスケジューリング装置により実行される方法の各段階が実装される。
【0166】
図9を参照すると、図9は、本願の一実施形態による管理ノードの概略構造図である。管理ノードはアクセラレーションシステムに適用され、アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニット300であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニット300と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定し、物理アクセラレーションリソース形成コマンドを生成するように構成された処理ユニット400であって、物理アクセラレーションリソース形成コマンドは、ネットワークアクセラレータに命令して、オブジェクトアクセラレータを形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、処理ユニット400とを含む。
【0167】
送受信機ユニット300はさらに、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信し、ネットワークアクセラレータにより送信される、オブジェクトアクセラレータの識別子を受信するように構成される。
【0168】
処理ユニット400はさらに、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する、送信することとを行うように構成される。
【0169】
図9に示す管理ノードの送受信機ユニット300の諸機能が、図5A及び図5Bの段階S501、S504、S505、及びS507に対応する。送受信機ユニット300は、図5A及び図5Bの段階S501、S504、S505、及びS507の動作を行うことができる。図9に示す管理ノードの処理ユニット400の諸機能が、図5A及び図5Bの段階S502、S503、及びS506に対応する。処理ユニット400は、図5A及び図5Bの段階S502、S503、及びS506の動作を行うことができる。
【0170】
図10を参照すると、図10は、本願の一実施形態による別の管理ノードの概略構造図である。図10に示すように、本装置は、プロセッサ210と、メモリ220と、バス230とを含んでよく、プロセッサ210とメモリ220とはバス230を用いて接続される。メモリ220は、命令を格納するように構成され、プロセッサ210は、メモリ220により格納された命令を実行して、図4又は図5A及び図5Bに対応する方法の各段階を実施するように構成される。
【0171】
また、管理ノードはさらに、入力インタフェース240と出力インタフェース250とを含んでよく、プロセッサ210と、メモリ220と、入力インタフェース240と、出力インタフェース250とは、バス230を用いて接続されてよい。
【0172】
プロセッサ210は、メモリ220により格納された命令を実行して、信号を受信するよう入力インタフェース240を制御し、信号を送信するよう出力インタフェース250を制御するように構成されることにより、前述の方法の管理ノードにより実行される各段階を完了する。入力インタフェース240と出力インタフェース250とは、同じ物理エンティティでも異なる物理エンティティでもよく、同じ物理エンティティの場合には、まとめて入出力インタフェースと呼ばれることがある。メモリ220は、プロセッサ210に統合されてもよく、プロセッサ210から分離していてもよい。
【0173】
ある実装例では、入力インタフェース240及び出力インタフェース250の諸機能が、送受信機回路又は専用の送受信機チップを用いて実装されてよい。プロセッサ210は、専用の処理チップ、処理回路若しくはプロセッサ、又は汎用チップを用いて実装されてよい。
【0174】
別の実装例において、本願の本実施形態において提供される装置は、汎用コンピュータを用いて実装されてもよい。具体的には、プロセッサ210、入力インタフェース240、及び出力インタフェース250の諸機能を実装するプログラムコードがメモリに格納され、汎用プロセッサが、メモリ内のコードを実行することにより、プロセッサ210、入力インタフェース240、及び出力インタフェース250の諸機能を実現する。
【0175】
図11を参照すると、図11は、本願の一実施形態による管理ノードの概略構造図である。管理ノードはアクセラレーションシステムに適用され、アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニット500であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニット500と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも1つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定することと、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納する、送信することとを行うように構成された処理ユニット600とを含む。
【0176】
図11に示す管理ノードの送受信機ユニット500の機能が、図6Aの段階S601に対応する。送受信機ユニット500は、図6Aの段階S601の動作を行うことができる。図11に示す管理ノードの処理ユニット600の諸機能が、図6Aの段階S602、S603、及びS604に対応する。処理ユニット600は、図6Aの段階S602、S603、及びS604の動作を行うことができる。
【0177】
図12を参照すると、図12は、本願の一実施形態による別の管理ノードの概略構造図である。図12に示すように、本装置は、プロセッサ310と、メモリ320と、バス330とを含んでよく、プロセッサ310とメモリ320とはバス330を用いて接続される。メモリ320は、命令を格納するように構成され、プロセッサ310は、メモリ320により格納された命令を実行して、図4又は図6A及び図6Bに対応する方法の各段階を実施するように構成される。
【0178】
また、管理ノードはさらに、入力インタフェース340と出力インタフェース350とを含んでよく、プロセッサ310と、メモリ320と、入力インタフェース340と、出力インタフェース350とは、バス330を用いて接続されてよい。
【0179】
プロセッサ310は、メモリ320により格納された命令を実行して、信号を受信するよう入力インタフェース340を制御し、信号を送信するよう出力インタフェース350を制御するように構成されることにより、前述の方法の管理ノードにより実行される各段階を完了する。入力インタフェース340と出力インタフェース350とは、同じ物理エンティティでも異なる物理エンティティでもよく、同じ物理エンティティの場合には、まとめて入出力インタフェースと呼ばれることがある。メモリ320は、プロセッサ310に統合されてもよく、プロセッサ310から分離していてもよい。
【0180】
ある実装例では、入力インタフェース340及び出力インタフェース350の諸機能が、送受信機回路又は専用の送受信機チップを用いて実装されてよい。プロセッサ310は、専用の処理チップ、処理回路若しくはプロセッサ、又は汎用チップを用いて実装されてよい。
【0181】
別の実装例において、本願の本実施形態において提供される装置は、汎用コンピュータを用いて実装されてもよい。具体的には、プロセッサ310、入力インタフェース340、及び出力インタフェース350の諸機能を実装するプログラムコードがメモリに格納され、汎用プロセッサが、メモリ内のコードを実行することにより、プロセッサ310、入力インタフェース340、及び出力インタフェース350の諸機能を実現する。
【0182】
本願の本実施形態において提供される技術的解決手段及び他の段階に関連した、管理ノードに関する概念、解釈、及び詳細な説明については、前述の方法又は他の実施形態における内容の説明を参照されたい。詳細は、ここで再度説明しない。
【0183】
当業者であれば、図10及び図12では、説明しやすくするために、1つのメモリ及びプロセッサしか示していないことを理解するであろう。実際のコントローラでは、複数のプロセッサ及びメモリがあってもよい。メモリは、記憶媒体又は記憶装置などとも呼ばれることがある。これについては、本願の本実施形態では限定されない。
【0184】
本願の本実施形態において、プロセッサは中央演算処理装置(Central Processing Unit、略して「CPU」)であってもよく、プロセッサは、別の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは別のプログラム可能型論理デバイス、ディスクリートゲート若しくはトランジスタ論理デバイス、又はディスクリートハードウェアアセンブリなどであってもよいことを理解されたい。汎用プロセッサはマイクロプロセッサであってよく、又はプロセッサは任意の従来のプロセッサなどであってよい。
【0185】
メモリは、リードオンリメモリとランダムアクセスメモリとを含んでよく、命令及びデータをプロセッサに提供する。メモリの一部がさらに、不揮発性ランダムアクセスメモリを含んでよい。
【0186】
バスはさらに、データバスに加えて、電力バス、制御バス、及びステータス信号バスなどを含んでよい。しかしながら、分かりやすく説明するために、図の中では、様々なバスが全てバスと示されている。
【0187】
実装プロセスでは、前述の方法の各段階が、プロセッサ内のハードウェア集積論理回路を用いて、又はソフトウェアの形態の命令を用いて、実装されてよい。本願の実施形態を参照して開示された方法の各段階は、ハードウェアプロセッサにより直接実行されてもよく、プロセッサ内のハードウェアとソフトウェアモジュールとの組み合わせを用いて実行されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、リードオンリメモリ、プログラム可能型リードオンリメモリ、若しくは電気的消去可能プログラム可能型メモリ、又はレジスタなどの、当技術分野の成熟した記憶媒体内に位置してよい。記憶媒体はメモリ内に位置しており、プロセッサはメモリ内の情報を読み出し、プロセッサのハードウェアと組み合わせて、前述の方法の各段階を完了する。繰り返しを避けるために、詳細はここで再度説明しない。
【0188】
本願の本実施形態において提供される方法によれば、本願の一実施形態がさらに、システムを提供する。本システムは、前述の管理ノードと、コンピューティングノードと、少なくとも1つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンと前述のスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも1つの物理アクセラレータを含む。これらのデバイスの機能とインタラクションプロセスとについては、前述の実施形態の説明を参照されたい。詳細は、ここで再度説明しない。
【0189】
前述のプロセスの連続番号は、本願の様々な実施形態において、実行順序を意味するものではないことを理解されたい。各プロセスの実行順序は、各プロセスの機能及び内部論理に従って決定されるべきであり、本願の実施形態の実装プロセスに対する、いかなる限定とも解釈されるべきではない。
【0190】
当業者であれば、本明細書に開示された実施形態の説明を参照して、様々な例示的論理ブロック(illustrative logical block)及び段階(step)が、電子的ハードウェア又はコンピュータソフトウェアと電子的ハードウェアとの組み合わせにより実装されてよいことを認識するであろう。これらの機能が、ハードウェアで実行されるのか、又はソフトウェアで実行されるのかは、技術的解決手段の特定の用途及び設計上の制約条件によって決まる。当業者であれば、異なる方法を用いて、説明した機能を特定の用途ごとに実装するかもしれない。しかし、そのような実装例が本願の範囲を超えるものとみなされるべきではない。
【0191】
本願において提供された実施形態において、開示されたシステム、装置、及び方法は、他の方式で実装されてもよいことを理解されたい。例えば、説明された装置の実施形態は、単なる一例に過ぎない。例えば、ユニットの分割は、単なる論理的機能の分割に過ぎず、実際の実装では、他の分割であってもよい。例えば、複数のユニット又はコンポーネントが組み合わされても、別のシステムに統合されてもよく、又は、一部の特徴が無視されても、実行されなくてもよい。さらに、本明細書で示されたか又は論じられた相互結合、直接結合、又は通信接続が、間接結合であっても、いくつかのインタフェース、装置、又はユニットにより実装される通信接続であってもよく、電気的形態、機械的形態、又は他の形態であってもよい。
【0192】
前述の実施形態の全て又は一部が、ソフトウェア、ハードウェア、ファームウェア、又はこれらの任意の組み合わせによって、実装されてよい。これらの実施形態を実装するのにソフトウェアが用いられる場合、これらの実施形態は、コンピュータプログラム製品の形態で完全に又は部分的に実装されてよい。コンピュータプログラム製品は、1つ又は複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータに読み込まれて実行されると、本願の実施形態による手順又は機能が、全て又は部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は別のプログラム可能型装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてもよく、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバ、又はデータセンタから、別のウェブサイト、コンピュータ、サーバ、又はデータセンタに、有線(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者線(DSL))方式又は無線(例えば、赤外線、電波、又はマイクロ波)方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の利用可能な媒体であっても、又は1つ若しくは複数の利用可能な媒体を統合した、サーバ若しくはデータセンタなどのデータ記憶装置であってもよい。利用可能な媒体は、磁気媒体(例えば、フロッピディスク、ハードディスク、又は磁気テープ)、光媒体(例えば、DVD)、又は半導体媒体(例えば、ソリッドステートディスク(Solid State Disk、SSD))などであってよい。
【0193】
前述の説明は、本願の単なる特定の実装例に過ぎず、本願の保護範囲を限定する意図はない。本願に開示された技術的範囲内で当業者が容易に考え出す、あらゆる変形又は置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7
図8
図9
図10
図11
図12