JP2023046248A - プログラマブルネットワークデバイスを用いたメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリング - Google Patents
プログラマブルネットワークデバイスを用いたメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリング Download PDFInfo
- Publication number
- JP2023046248A JP2023046248A JP2022107779A JP2022107779A JP2023046248A JP 2023046248 A JP2023046248 A JP 2023046248A JP 2022107779 A JP2022107779 A JP 2022107779A JP 2022107779 A JP2022107779 A JP 2022107779A JP 2023046248 A JP2023046248 A JP 2023046248A
- Authority
- JP
- Japan
- Prior art keywords
- hardware accelerator
- service
- accelerator device
- hardware
- processors
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリングを提供する。【解決手段】装置は、プロセッサであって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによってワークロードを加速できると判定し、プログラマブルネットワークデバイスにハードウェアアクセラレータデバイスをクラスタに割り当てさせ、ハードウェアアクセラレータデバイスをサービスメッシュに登録させ、ハードウェアアクセラレータデバイスへサービスのワークロードをスケジューリングする。【選択図】図5
Description
実施形態は、概して、データ処理に関し、より具体的には、プログラマブルネットワークデバイスを使用するメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングに関する。
データセンタでは分散コンピューティングが増えている。クラウドサービスプロバイダ(CSP)は、ワークロードの処理が、同じプラットフォーム上にある代わりにネットワークを介して接続され、周辺機器相互接続エクスプレス(PCIe)などの物理リンクを介して接続されたCPU、GPU、およびハードウェアアクセラレータ(フィールドプログラマブルゲートアレイ(FPGA)を含む)などの分散された計算リソースで分散される解決策を展開している。分散コンピューティングは、利用可能なリソースのより効率的な使用を可能にすることによって、リソースの利用を改善することを可能にし、所有のコストを低減する。分散コンピューティングはまた、大規模な計算のために多数のハードウェアアクセラレータをプールすることを可能にし、計算をより効率的かつより良好に実行するようにする。
分散コンピューティング環境では、計算クラスタの典型的なワーカーノードは、数百のコンテナワークロードを同時に処理することができる。これらのワーカーノードはまた、計算集約的なタスクのために最適化された、静的に取り付けられた専用のハードウェアアクセラレータを有することができる。例えば、ハードウェアアクセラレータのクラスは、それぞれトランスポート層セキュリティ(TLS)またはzlibなどの暗号化および圧縮アルゴリズムを効率的に実行するように最適化することができる。しかしながら、静的ハードウェアアクセラレータリソースは、通常、リソースの不足のために、ワーカーノードで実行されているすべてのワークロードに利用可能であるわけではない。意味のある方法で計算集約的な動作を加速するために、ハードウェアアクセラレータリソースは、サービス品質(QoS)を保証するのにあまり薄すぎる分散をさせることができない。
本実施形態の上記の特徴が詳細に理解され得るように、上記で簡潔に要約された実施形態のより具体的な説明は、実施形態を参照することによって得ることができ、そのいくつかは添付の図面に示されている。しかしながら、添付の図面は典型的な実施形態を示しており、したがってその範囲を限定するものと見なされるべきではないことに留意されたい。図面は縮尺通りではない。一般に、同じまたは同様の部分を指すために、図面および随伴の記述式説明を通して同じ参照番号が使用される。
本開示の実装形態は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを説明する。クラウドサービスプロバイダ(CSP)は、(同じプラットフォームにあり、周辺機器相互接続エクスプレス(PCIe)などの物理リンクを介して接続されるのではなく)ネットワークを介して接続される中央処理装置(CPU)、グラフィックス処理装置(GPU)、および/またはハードウェアアクセラレータ(フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むが、これらに限定されない)などの分散された計算リソースでワークロードの処理が分散されるデータセンタに、ソリューションを展開している。分散コンピューティングは、利用可能なリソースのより効率的な使用を可能にすることによって、リソースの利用を改善することを可能にし、所有のコストを低減する。分散コンピューティングはまた、大規模な計算のために多数のハードウェアアクセラレータをプールすることを可能にし、計算をより効率的かつより良好に実行するようにする。
サービスプロバイダおよび企業は、クラウドネイティブアプリケーションおよびマイクロサービスのための効率的な計算を提供するために、ハイパースケールデータセンタに大きく投資している。これらのサービスを提供するアプリケーションは、高速、低レイテンシのストレージおよび安全なネットワーキングインフラストラクチャにアクセスするべきである。分散コンピューティングのソリューションは、そのような高速かつ低レイテンシのストレージおよび安全なネットワーキングインフラストラクチャを提供することができる。しかしながら、仮想スイッチング、セキュリティ、およびストレージなどのインフラストラクチャサービスは、かなりの数のCPUサイクルを消費する可能性がある。
プログラマブルネットワークデバイスを利用してネットワークインフラストラクチャを加速し、アプリケーションのパフォーマンスを向上させるために、CPUコアを解放することができる。プログラマブルネットワークデバイスは、例えば、インフラストラクチャ処理ユニット(IPU)、データ処理ユニット(DPU)、スマートネットワークインターフェースカード(SmartNIC)を含むことができる。本明細書の説明は、特に、プログラマブルネットワークデバイスをIPUと呼ぶことがあるが、プログラマブルネットワークデバイスをそのような実装形態に限定することを意図するものではなく、プログラマブルネットワークデバイスの他の実装形態を包含することができる。IPUなどのプログラマブルネットワークデバイスは、クラウドサービスプロバイダがソフトウェアの速度でインフラストラクチャ機能展開をカスタマイズすることを可能にし、一方で柔軟なワークロードの配置を可能にすることによって、データセンタの利用を改善する。プログラマブルネットワークデバイスは、データセンタのネットワーキングおよびストレージインフラストラクチャ機能を安全に加速することによって、システムレベルリソースをインテリジェントに管理することができる。
分散コンピューティングを備えるデータセンタは、マイクロサービスアーキテクチャをさらに活用して、ネットワークインフラストラクチャサービスを加速できる。マイクロサービスアーキテクチャは、アプリケーションを緩やかに連結されたマイクロサービスの集合として配置することができ、これは、HTTPまたはgRPCなどの、技術に依存しないプロトコルを使用して目標を達成するために、ネットワークを介して通信するプロセスを指すことができる。場合によっては、マイクロサービスは、コンテナ化されたワークロードおよび/またはサービスを提供するコンテナオーケストレーションプラットフォームを使用して配備されてもよい。コンテナオーケストレーションプラットフォームは、マイクロサービス間の大量のネットワークベースのプロセス間の通信を管理するために、サービスメッシュを利用することができる。サービスメッシュは、マイクロサービス間の通信を高速、信頼性、および安全にすることを可能にする要素を含む、マイクロサービスのための専用のソフトウェアインフラストラクチャ層である。サービスメッシュは、サービス発見、負荷分散、暗号化、可観測性、トレーサビリティ、および認証および許可を含む機能を提供する。
分散コンピューティング環境では、マイクロサービスアーキテクチャの計算クラスタの典型的なワーカーノードは、数百のコンテナワークロードを同時に処理することができる。これらのワーカーノードはまた、計算集約的なタスクのために最適化された、静的に取り付けられた専用のハードウェアアクセラレータを有することができる。(本明細書で説明するように、ハードウェアアクセラレータは、ハードウェアアクセラレータデバイス、ハードウェアアクセラレータリソース、アクセラレータリソース、またはアクセラレータとも呼ばれ得る。)例えば、ハードウェアアクセラレータのクラスは、それぞれトランスポート層セキュリティ(TLS)またはzlibなどの暗号化および圧縮アルゴリズムを効率的に実行するように最適化することができる。しかしながら、静的ハードウェアアクセラレータリソースは、通常、リソースの不足のために、ワーカーノードで実行されているすべてのワークロードに利用可能であるわけではない。意味のある方法で計算集約的な動作を加速するために、ハードウェアアクセラレータリソースは、サービス品質(QoS)を保証するのにあまり薄すぎる分散をさせることができない。
関連するコンテキストでは、コンテナオーケストレーションプラットフォーム(マイクロサービスアーキテクチャを管理する)の制御プレーンスケジューラは、ハードウェアアクセラレータ仮想機能(VF)を「拡張リソース」として観測することができる。所与のアクセラレータで利用可能なVFの数は制限され得る。例えば、暗号化アクセラレータカードの場合、それぞれ16個のVFを公開する3つの物理アクセラレータエンジンがあり、ノードごとに48個の可能な拡張された割り当て可能リソースをもたらすことができる。マイクロサービスアーキテクチャのコンテナアプリケーションは、1つまたは複数のそのようなアクセラレータリソースを要求することができ、ノードのアクセラレータリソースが枯渇した後、制御プレーンスケジューラは、計算ノードが利用可能な計算リソースを有する場合であっても、そのようなアクセラレータリソースを計算ノード(例えば、サーバCPU)に要求するワークロードをスケジューリングしない。これは、計算ノードの未利用につながる可能性がある。
場合によっては、コンテナは、アクセラレータリソースの使用から恩恵を受けることができるが、パフォーマンスの低下およびCPUの利用の上昇などのトレードオフを伴うことなく実行することもでき、またはどのアクセラレータリソースを取得するかに影響されにくい場合もある(例えば、FPGA対GPU対ASICなど)。これらの場合は、従来の解決策では効率的に処理することができない。さらに、静的クラスタが特定のタイプのアクセラレータリソースを完全に使い果たした場合、リソースが再び解放されるまで、新しいワークロードは保留状態のままである。これにより、レイテンシが増加し、マイクロサービスアーキテクチャのパフォーマンスが低下する。
マイクロサービスアーキテクチャにおける拡張リソースのスケジューリングのための従来の手法は、以下のように、コンテナオーケストレーションプラットフォームの制御プレーンスケジューラによって利用される手法を含む。ワークロードが拡張リソースを要求する場合、そのようなリソースを提供する計算ノードにスケジューリングされ、ノードの利用可能なリソースカウントが減少する。各ノードの利用可能なリソースは静的であり、これは初期化中にクラスタの制御プレーンスケジューラに報告される。保留状態で動作するワークロードの制限を克服するために、1つの従来の手法は、「無限の」数の仮想アクセラレータリソースを提供し、それらのサブセットに実際のアクセラレータハードウェアバックエンドを含めることができる。しかしながら、この手法は、「実際の」アクセラレータハードウェアバックエンドリソースのすべてが完全に利用されている場合の状況に対処しない。
クラウドオーケストレータにおけるメトリックベースのスケジューリングは、従来の手法ではハードウェアアクセラレータリソースを配備するために、特に分散され得るXPUリソースを配備するためには使用されていない。XPUは、ハードウェアアクセラレータ(例えば、CPU、GPU、FPGA、ASIC、推論アクセラレータ、暗号化アクセラレータ、他の専用ハードウェアアクセラレータなど)を含む異種および/またはクロスアーキテクチャ(「X」)処理ユニットを指す。例えば、Kubernetesプロジェクトは、ワークロード「垂直オートスケーラ」で動作する。その概念は、ワークロードのパフォーマンスを監視し、ワークロードのパフォーマンスが低下した場合に、ワークロードのCPU時間および/またはメモリを動的に追加することである。しかしながら、この手法は、ネイティブ(CPUおよびメモリ)リソースの増減に焦点を当てており、特定の計算集約型タスクを専用のアクセラレータ(例えば、XPU)および/またはコプロセッサにオフロードできるかどうかを考慮していない。
他のコンテナオーケストレータサービスメッシュソリューションは、すべてのコンテナアプリケーションと共にサイドカープロキシを有することによって機能する。そのようなサイドカープロキシが、トランスポート層セキュリティ(TLS)ハンドシェイクアクセラレータまたはハイパーテキストトランスポートプロトコル(HTTP)圧縮などの一般的なタスクのためにハードウェアアクセラレータを使用する場合、48リソースの静的制限(前述の例を続ける)により、アプリケーションの制限は、アプリケーションコンテナと共にサイドカープロキシを含む48ポッドになる。したがって、このスケジューリングメカニズムは、リソース不足の問題に直接寄与し、その結果、ワークロードが、スケジューリングされ得る前にアクセラレータリソースが解放されるのを待たなければならない。
さらに、許可されたリソースの一部が(すなわち、実際のハードウェアアクセラレータアクセスを含まない)「空」であるが、48を超えるアプリケーションのスケジューリングを可能にするために許可された場合、予測可能性は失われる(例えば、サービスがパフォーマンスの目標を満たすことができるかどうかを知る方法はない)。そのような場合、完全に最適化されたマイクロサービスグラフは、フローのボトルネックを観察することができ、トラフィック量がマイクロサービスフローグラフの前の部分で既に削減されているため、他のハードウェアアクセラレータリソースを十分に利用されないようにする。
本開示の実装形態は、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを提供することによって、上記の技術的欠点に対処する。本明細書の実装形態では、計算クラスタにおける加速から恩恵を受けるワークロードへのスケーラブルでより動的な計算リソースの割り当てを達成するために、ワークロードテレメトリデータ、プログラマブルネットワークデバイス(IPUなど)、およびXPU(異種処理ユニット)ハードウェアアクセラレータ(例えば、CPU、GPU、FPGA、ASIC、推論アクセラレータ、暗号化アクセラレータ、他の専用ハードウェアアクセラレータなど)を利用するための技術が提供される。
実装形態は、2つの使用モデルを提供するXPUスケジューラエクステンダ、およびクラスタノードエージェントを提供する。本明細書の実装形態では、XPUスケジューラエクステンダは、スケジューラエクステンダまたはスケジューラエクステンダ回路とも呼ばれ得る。第1の使用モデルでは、XPUスケジューラエクステンダは、メインクラスタオーケストレータおよびクラスタノードエージェントと通信して、XPUアクセラレータ計算リソースの量のスケーリングに関する情報をクラスタに中継する。第2の使用モデルでは、XPUスケジューラは、データセンタクラスタノードエージェントと通信して、既にXPUリソースを消費しているワークロードに対してより多くの計算帯域幅を構成し、および/またはより効率的な計算のために、基礎となるXPUタイプを切り替える。
本明細書の実装形態では、XPUスケジューラエクステンダは、ワークロードからメトリックを収集および分析する。メトリックは、XPUでまた加速され得る機能にマップされ得るものである。例えば、TLSハンドシェイクの数/秒、またはCPU上で圧縮されたデータのバイトの量は、暗号化/圧縮アクセラレータにマッピングすることができる。メトリックベースのXPUスケジューリングを使用して、最適化された量のXPUリソースをクラスタに対して利用可能にし、それらを利用するワークロードに割り当てることができ、それらから利益を受けないワークロードをCPUで実行するようにスケジューリングすることができる。
本開示の実装形態は、上述の従来の手法を超える技術的利点を提供する。1つの技術的利点は、XPUアクセラレータリソースがマイクロサービスフローグラフのボトルネックを除去するために動的に使用され、最適化された量のXPUアクセラレータリソースが実装されるため、XPUアクセラレータリソースがより良好にターゲットとされることである。別の技術的利点は、XPUアクセラレータリソースが、結果として生じるオーバーヘッドがアプリケーションのパフォーマンスを低下させるほど少ない使用量ではコンテナに移動しないことである。さらなる技術的利点は、ノードで実行されているコンテナの最大数が利用可能なアクセラレータリソース(例えば、サービスメッシュのユースケースで)によって、もはや決定されないので、ノードがXPUアクセラレータリソースをそれほど容易に使い果たさないことである。
図1は、本開示の実装形態による、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを提供するためのXPUスケジューラエクステンダ110を採用するコンピューティングデバイス100を示す。コンピューティングデバイス100は、スマート音声コマンドデバイス、インテリジェントパーソナルアシスタント、ホーム/オフィスオートメーションシステム、家電機器(例えば、洗濯機、テレビセットなど)、モバイルデバイス(例えば、スマートフォン、タブレットコンピュータなど)、ゲームデバイス、ハンドヘルドデバイス、ウェアラブルデバイス(例えば、スマートウォッチ、スマートブレスレットなど)、仮想現実(VR)デバイス、ヘッドマウントディスプレイ(HMD)、モノのインターネット(IoT)デバイス、ラップトップコンピュータ、デスクトップコンピュータ、サーバコンピュータ、セットトップボックス(例えば、インターネットベースのケーブルテレビセットトップボックスなど)、全地球測位システム(GPS)ベースのデバイス、自動車インフォテインメントデバイスなどを含む、または表す(限定されない)通信およびデータ処理デバイスを表す。
いくつかの実施形態では、コンピューティングデバイス100は、機械的エージェントもしくは機械、電子エージェントもしくは機械、仮想エージェントもしくは機械、電気機械的エージェントもしくは機械などの(これらに限定されない)自律機械もしくは人工知能エージェントなどの任意の数および種類の他のスマートデバイスを含むか、それらと共に動作するか、それらに埋め込まれているか、それらを促進する。自律機械もしくは人工知能エージェントの例には、(これらに限定されないが)ロボット、自律型車両(例えば、自動運転車、自動飛行航空機、自動セーリングボートなど)、自律型機器、自律動作式建設車両、自律動作式医療機器などが含まれ得る。さらに、「自律型車両」は自動車に限定されず、ロボット、自律型機器、家庭用自律型装置などの任意の数および種類の自律型機械を含むことができ、そのような自律型機械に関連する任意の1つまたは複数のタスクまたは動作は、自律運転と互換的に参照され得る。
さらに、例えば、コンピューティングデバイス100は、コンピューティングデバイス100の様々なハードウェアおよび/またはソフトウェアコンポーネントを単一チップ上に統合するシステムオンチップ(「SOC」または「SoC」)などの集積回路(「IC」)をホストするコンピュータプラットフォームを含むことができる。
図示のように、一実施形態では、コンピューティングデバイス100は、(これらに限定されないが)グラフィックス処理装置(「GPU」または単に「グラフィックスプロセッサ」)114、グラフィックスドライバ(「GPUドライバ」、「グラフィックスドライバ論理」、「ドライバ論理」、ユーザモードドライバ(UMD)、ユーザモードドライバフレームワーク(UMDF)、または単に「ドライバ」とも呼ばれる)115、中央処理装置(「CPU」または単に「アプリケーションプロセッサ」)112、メモリ108、ネットワークデバイス、ドライバなど、ならびに入出力(I/0)ソース104、例えばタッチスクリーン、タッチパネル、タッチパッド、仮想または通常のキーボード、仮想または通常のマウス、ポート、コネクタなどの任意の数および種類のハードウェアおよび/またはソフトウェアコンポーネントを含むことができる。コンピューティングデバイス100は、コンピューティングデバイス100のハードウェアおよび/または物理リソースとユーザとの間のインターフェースとして機能するオペレーティングシステム(OS)106を含むことができる。
特定の実装形態では、上述の例よりも少ないまたはより多くの装備されたシステムを利用することができることを理解されたい。したがって、コンピューティングデバイス100の構成は、価格制約、パフォーマンス要件、技術的改善、または他の状況などの多数の要因に応じて、実装形態ごとに異なり得る。
実施形態は、親基板を使用して相互接続された1つまたは複数のマイクロチップまたは集積回路、ハードワイヤード論理、メモリデバイスによって記憶され、マイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)のいずれかまたは組み合わせとして実装されてもよい。「論理」、「モジュール」、「コンポーネント」、「エンジン」、「回路」、「要素」、および「機構」という用語は、例としてソフトウェア、ハードウェア、および/またはそれらの組み合わせ、例えばファームウェアを含むことができる。
一実施形態では、図示のように、XPUスケジューラエクステンダ110は、コンピューティングデバイス100のマイクロフォン、スピーカなどのI/Oソース104と通信するメモリ108によってホストされてもよい。別の実施形態では、XPUスケジューラエクステンダ110は、オペレーティングシステム106の一部であってもよく、またはオペレーティングシステム106によってホストされてもよい。さらに別の実施形態では、XPUスケジューラエクステンダ110は、グラフィックスドライバ115によってホストまたは促進されてもよい。さらに別の実施形態では、XPUスケジューラエクステンダ110は、ハードウェアアクセラレータ114によってホストされてもよく、またはその一部であってもよい。例えば、XPUスケジューラエクステンダ110は、XPUスケジューラエクステンダ140の形態などで、ハードウェアアクセラレータ114の処理ハードウェアに組み込まれるか、またはその一部として実装されてもよい。さらに別の実施形態では、XPUスケジューラエクステンダ110は、グラフィックス処理装置(「GPU」または単に「グラフィックスプロセッサ」)116またはグラフィックスプロセッサ116のファームウェアによってホストされてもよく、またはその一部であってもよい。例えば、XPUスケジューラエクステンダは、XPUスケジューラエクステンダ130の形態などで、グラフィックスプロセッサ116の処理ハードウェアに組み込まれるか、またはその一部として実装されてもよい。同様に、さらに別の実施形態では、XPUスケジューラエクステンダ110は、中央処理装置(「CPU」または単に「アプリケーションプロセッサ」)112によってホストされてもよく、またはその一部であってもよい。例えば、XPUスケジューラエクステンダ110は、XPUスケジューラエクステンダ120の形態などで、アプリケーションプロセッサ112の処理ハードウェアに組み込まれるか、またはその一部として実装されてもよい。いくつかの実施形態では、XPUスケジューラエクステンダ110は、グラフィックスプロセッサ、アプリケーションプロセッサ、および別のプロセッサのうちの1つまたは複数を含む1つまたは複数のプロセッサによって提供されてもよく、1つまたは複数のプロセッサは、共通の半導体パッケージにおいて同じ場所に配置される。
実施形態は、XPUスケジューラエクステンダ110の特定の実装形態またはホスティングに限定されず、XPUスケジューラエクステンダ110の1つまたは複数の部分またはコンポーネントは、ハードウェア、ソフトウェア、またはファームウェアなどのそれらの任意の組み合わせとして採用または実装され得ることが企図される。一実施形態では、例えば、XPUスケジューラエクステンダは、GPUとは異なる機械学習処理ユニットによってホストされてもよい。別の実施形態では、XPUスケジューラエクステンダは、機械学習処理ユニットとCPUとの間で分散されてもよい。別の実施形態では、XPUスケジューラエクステンダは、機械学習処理ユニット、CPU、およびGPUの間で分散されてもよい。別の実施形態では、XPUスケジューラエクステンダは、機械学習処理ユニット、CPU、GPU、およびハードウェアアクセラレータの間で分散されてもよい。
さらに、実施形態は、XPUスケジューラエクステンダ110の特定の実装形態またはホスティングに限定されず、XPUスケジューラエクステンダ110の1つまたは複数の部分またはコンポーネントは、1つより多くののコンピューティングデバイス(例えば、ホストマシン)100において採用または実装されてもよく、単一のコンピューティングデバイス100における実装形態のみに限定されないことが企図される。
コンピューティングデバイス100は、LAN、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、パーソナルエリアネットワーク(PAN)、Bluetooth(登録商標)、クラウドネットワーク、モバイルネットワーク(例えば、第3世代(3G)、第4世代(4G)など)、イントラネット、インターネットなどのネットワークへのアクセスを提供するためのネットワークインターフェースデバイスをホストすることができる。ネットワークインターフェースは、例えば、1つまたは複数のアンテナを表すことができるアンテナを有する無線ネットワークインターフェースを含むことができる。ネットワークインターフェースはまた、例えば、ネットワークケーブルを介してリモートデバイスと通信するための有線ネットワークインターフェースを含むことができ、ネットワークケーブルは、例えば、イーサネット(登録商標)ケーブル、同軸ケーブル、光ファイバケーブル、シリアルケーブル、またはパラレルケーブルであってもよい。
実施形態は、例えば、コンピュータ、コンピュータのネットワーク、または他の電子デバイスなどの1つまたは複数の機械によって実行されるときに、1つまたは複数の機械が、本明細書に記載の実施形態による動作を実行することをもたらすことができる機械実行可能命令を記憶した1つまたは複数の機械可読媒体を含むことができるコンピュータプログラム製品として、提供することができる。機械可読媒体は、限定はしないが、フロッピーディスケット、光ディスク、CD-ROM(コンパクトディスク-読み出し専用メモリ)、および光磁気ディスク、ROM、RAM、EPROM(消去可能プログラマブル読み出し専用メモリ)、EEPROM(電気的消去可能プログラマブル読み出し専用メモリ)、磁気または光カード、フラッシュメモリ、または機械実行可能命令を記憶するのに適した他のタイプの媒体/機械可読媒体を含むことができる。
さらに、実施形態は、コンピュータプログラム製品としてダウンロードされてもよく、プログラムは、通信リンク(例えば、モデムおよび/またはネットワーク接続)を介して搬送波または他の伝搬媒体で具現化および/または変調された1つまたは複数のデータ信号によって、リモートコンピュータ(例えば、サーバ)から要求側コンピュータ(例えば、クライアント)に転送されてもよい。
本文書全体を通して、「ユーザ」という用語は、「閲覧者(viewer)」、「観察者(observer)」、「話者」、「人物」、「個人」、「エンドユーザ」などと互換的に呼ばれ得る。本文書全体を通して、「グラフィックスドメイン」のような用語は、「グラフィックス処理装置」、「グラフィックスプロセッサ」、または単に「GPU」と互換的に参照されてもよく、同様に、「CPUドメイン」または「ホストドメイン」は、「コンピュータ処理装置」、「アプリケーションプロセッサ」、または単に「CPU」と互換的に参照されてもよいことに留意されたい。
「ノード」、「コンピューティングノード」、「サーバ」、「サーバデバイス」、「クラウドコンピュータ」、「クラウドサーバ」、「クラウドサーバコンピュータ」、「機械」、「ホストマシン」、「デバイス」、「コンピューティングデバイス」、「コンピュータ」、「コンピューティングシステム」などの用語は、本文書全体を通して互換的に使用され得ることに留意されたい。さらに、「アプリケーション」、「ソフトウェアアプリケーション」、「プログラム」、「ソフトウェアプログラム」、「パッケージ」、「ソフトウェアパッケージ」などの用語は、本文書全体を通して互換的に使用され得ることに留意されたい。また、「ジョブ」、「入力」、「要求」、「メッセージ」などの用語は、本文書全体を通して互換的に使用され得る。
図2は、本開示の1つの実装形態による、図1のXPUスケジューラエクステンダ110を例示する。簡潔にするために、図1を参照して既に説明した詳細の多くは、繰り返されないか、または以下で説明されない。一実施形態では、XPUスケジューラエクステンダ110は、図1に関して説明したXPUスケジューラエクステンダ110、120、130、140のいずれかと同じであってもよく、(限定することなく)メトリックコレクタ201、メトリックアナライザ203、リソース割当部205、およびセキュリティコンポーネント207などの任意の数およびタイプのコンポーネントを含んでもよい。実施形態は、メトリックコレクタ201、メトリックアナライザ203、リソース割当部205、およびセキュリティコンポーネント207の特定の実装形態またはホスティングに限定されず、メトリックコレクタ201、メトリックアナライザ203、リソース割当部205、およびセキュリティコンポーネント207の1つまたは複数の部分またはコンポーネントは、1つより多くのコンピューティングデバイス(例えば、ホストマシン)100において採用または実装されてもよく、それらは単一のコンピューティングデバイス100における実装形態のみに限定されないことが企図される。例えば、メトリックコレクタ201およびメトリックアナライザ203は、複数の別個のコンピューティングデバイス100でホストされてもよい。
コンピューティングデバイス100は、ユーザインターフェース219(例えば、グラフィカルユーザインターフェース(GUI)ベースのユーザインターフェース、ウェブブラウザ、クラウドベースのプラットフォームユーザインターフェース、ソフトウェアアプリケーションベースのユーザインターフェース、他のユーザまたはアプリケーションプログラミングインターフェース(API)など)を含むようにさらに示されている。コンピューティングデバイス100は、カメラ242(例えば、Intel(登録商標)RealSense(商標)カメラ)、センサ、マイクロフォン241などの入力コンポーネント231と、ディスプレイデバイスまたは単にディスプレイ244(例えば、一体型ディスプレイ、テンソルディスプレイ、投影スクリーン、ディスプレイスクリーンなど)、スピーカデバイスまたは単にスピーカなどの出力コンポーネント233とを有するI/Oソース104をさらに含むことができる。
コンピューティングデバイス100は、1つまたは複数の通信媒体230(例えば、近接ネットワーク、クラウドネットワーク、インターネットなどのネットワーク)を介して、1つまたは複数のデータベース225および/または他のコンピューティングデバイスのうちの1つまたは複数にアクセスし、かつ/またはそれと通信するものとしてさらに示されている。
いくつかの実施形態では、データベース225は、任意の数および種類のアプリケーションに関連するデータ、メタデータなどの任意の量および種類の情報、例えば、一人または複数人のユーザ、物理的な場所または領域、適用可能な法律、ポリシーおよび/または規制、ユーザの好みおよび/またはプロファイル、セキュリティおよび/または認証データ、履歴および/または他の詳細などに関連するデータおよび/またはメタデータを有する記憶媒体またはデバイス、リポジトリ、データソースなどのうちの1つまたは複数を含むことができる。
前述のように、コンピューティングデバイス100は、入力コンポーネント231および出力コンポーネント233を含むI/Oソース104をホストすることができる。一実施形態では、入力コンポーネント231は、マイクロフォン241(例えば、超音波マイクロフォン)、カメラ242(例えば、2次元(2D)カメラ、3次元(3D)カメラ、赤外線(IR)カメラ、深度検知カメラなど)、コンデンサ、無線コンポーネント、レーダコンポーネント、スキャナ、および/または加速度計などを含むがこれらに限定されないセンサアレイを含むことができる。同様に、出力コンポーネント233は、任意の数および種類のディスプレイデバイス244、プロジェクタ、発光ダイオード(LED)、スピーカ243、および/または振動モータなどを含むことができる。
前述のように、「論理」、「モジュール」、「コンポーネント」、「エンジン」、「回路」、「要素」、および「機構」のような用語は、例として、ソフトウェアまたはハードウェア、および/またはそれらの組み合わせ、例えばファームウェアを含むことができる。例えば、論理自体は、特定のタスクを実行するために対応する論理を促進するかまたは実行する必要がある、図1のアプリケーションプロセッサ112、グラフィックスプロセッサ116、および/またはハードウェアアクセラレータ114によってそれぞれホストされるXPUスケジューラエクステンダ120、XPUスケジューラエクステンダ130、および/またはXPUスケジューラエクステンダ140などの、1つまたは複数のデバイスの回路であるか、それを含むか、またはそれに関連付けられ得る。
例えば、図示のように、入力コンポーネント231は、任意の数および種類のマイクロフォン241を含むことができ、例えば複数のマイクロフォン、またはマイクロフォンアレイ、例えば超音波マイクロフォン、ダイナミックマイクロフォン、光ファイバマイクロフォン、レーザマイクロフォンなどが挙げられる。マイクロフォン241のうちの1つまたは複数は、コンピューティングデバイス100へのオーディオ入力(人間の声など)を受け取るかまたは受信し、このオーディオまたは音を電気信号に変換するための1つまたは複数の入力デバイスとして機能することが企図される。同様に、カメラ242の1つまたは複数は、シーン、オブジェクトなどの画像および/またはビデオを検出およびキャプチャし、キャプチャされたデータをビデオ入力としてコンピューティングデバイス100に提供するための1つまたは複数の入力デバイスとして機能することが企図される。
前述したように、マイクロサービスアーキテクチャにおける拡張リソースのスケジューリングのための手法は、従来の手法において、特に、分散され得るXPUリソースを展開するために、分散された環境にハードウェアアクセラレータリソースを展開するために使用されていない。従来の手法はまた、ハードウェアリソースが過剰に利用されることによってレイテンシおよびパフォーマンスの問題に直面している。実施形態は、プログラマブルネットワークデバイスを使用して、メトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングのための新規な技術を提供する。この新規な技術は、マイクロサービスアーキテクチャにおいて分散されたXPUハードウェアアクセラレータリソースを実装しようとするコンピューティングアーキテクチャにおける上記のレイテンシおよび/またはパフォーマンスの問題に対処するために使用される。本開示の実装形態は、XPUスケジューラエクステンダ110を利用して、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを提供する。
図2に関して、XPUスケジューラエクステンダ110は、メトリックコレクタ201、メトリックアナライザ203、リソース割当部205、およびセキュリティコンポーネント207を含み、XPUスケジューラエクステンダ110のメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを実行する。本開示の実装形態では、XPUスケジューラエクステンダ110のユニット201、203、205、207の動作は、ワークロードテレメトリデータ、プログラマブルネットワークデバイス(例えば、IPU)、およびXPU(異種処理ユニット)ハードウェアアクセラレータ(例えば、CPU、GPU、FPGA、ASIC、推論アクセラレータ、暗号化アクセラレータ、他の専用ハードウェアアクセラレータなど)を利用して、分散計算環境で実装されたマイクロサービスアーキテクチャなどの計算クラスタにおける加速から恩恵を受ける、ワークロードへのスケーラブルで動的な計算リソース割当を達成する。
実装形態は、2つの使用モデルを提供するクラスタノードエージェント(図示せず)と通信するXPUスケジューラエクステンダ110を提供する。第1の使用モデルでは、XPUスケジューラエクステンダ110は、メインクラスタオーケストレータ(図示せず)およびクラスタノードエージェントと通信して、XPUアクセラレータ計算リソースの量のスケーリングに関する情報をクラスタに中継する。第2の使用モデルでは、XPUスケジューラエクステンダ110は、既にXPUアクセラレータリソースを消費しているワークロードに対してより多くの計算帯域幅を構成するために、および/またはより効率的な計算のために基礎を成すXPUタイプを切り替えるために、クラスタノードエージェントと通信する。
本明細書の実装形態では、XPUスケジューラエクステンダ110のメトリックコレクタ201およびメトリックアナライザ203は、サービスワークロードからメトリックを収集および分析する。メトリックは、XPUアクセラレータリソース上で加速され得る機能にマッピングされ得るテレメトリデータである。例えば、TLSハンドシェイクの数/秒、またはCPU上で圧縮されたデータのバイトの量のメトリックは、リソース割当部205によって暗号化/圧縮アクセラレータにマッピングすることができる。メトリックベースのXPUスケジューリングを使用して、最適化された量のXPUリソースをクラスタに対して利用可能にし、それらを利用するワークロードに割り当てることができ、それらから利益を受けないワークロードをCPUで実行するようにスケジューリングすることができる。XPUスケジューラエクステンダ110のセキュリティコンポーネント207は、リソース割当部205によってクラスタにスケジューリングされた任意のXPUアクセラレータリソースとの認証およびセキュアな通信を提供するように動作する。
メトリックコレクタ201、メトリックアナライザ203、リソース割当部205、およびセキュリティコンポーネント207のさらなる詳細については、図3~図4を参照して後述する。
図3は、本開示の実装形態による、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを提供するデータセンタシステム300を示す。データセンタシステム300は、データセンタでタスクを処理するための様々なXPU(異種処理ユニット)を提供する例示的なデータセンタ(例えば、クラウドサービスプロバイダ(CSP)によってホストされる)を示し、XPUは、中央処理装置(CPU)315、グラフィックス処理装置(GPU)335(汎用GPU(GPGPU)を含む)、ASIC、または他の処理装置(例えば、アクセラレータ345、355、366、推論アクセラレータ345、暗号化アクセラレータ355、プログラマブルまたは固定機能FPGA364、特定用途向け集積回路(ASIC)366、圧縮アクセラレータなど)のうちの1つまたは複数を含むことができる。データセンタはまた、データストレージタスク用のストレージユニットも提供することができる。ストレージユニットは、例えば、ソリッドステートドライブ(SSD)325を含んでもよい。XPUおよび/またはストレージユニットは、同様のタイプのユニットでホストすることができる(例えば、アプリケーションサーバ310でホストされるCPU315、ストレージラック320でホストされるSSD325、GPUラック330でホストされるGPU335、推論アクセラレータサーバ340でホストされる推論アクセラレータ345、暗号化アクセラレータラック350でホストされる暗号化アクセラレータ355、およびアクセラレータラック360でホストされる汎用アクセラレータ362、364、366)。
システム300のデータセンタは、例えば、それぞれのホストされる処理コンポーネントに直接取り付けられたIPU305を使用して、そのホスト処理コンポーネント315、325、335、345、355、362、364、366に様々なオフロードを提供する。IPU305は例示目的で説明されているが、DPUまたはSmartNICなどの他のプログラマブルネットワークデバイスは、本明細書ではIPU305と交換可能に使用することができる。提供されるオフロードは、ネットワーキング、ストレージ、セキュリティなどであってもよい。これにより、処理コンポーネント315、325、335、345、355、362、364、366はハイパーバイザなしで実行することが可能になり、CSPは、データセンタのホスト全体をセキュリティ志向の顧客に貸し出す能力を提供し、またはクロストークおよびマルチテナントホストに関連する他の問題を回避する。
IPU305は、クラウドサービスプロバイダ(CSP)、セキュリティ、加速、テレメトリ、およびサービスオーケストレーションのための制御ポイントなどのデータセンタオペレータを提供することによって、データセンタにおいて重要な役割を提供することができる。IPU305アーキテクチャは、既存のスマートネットワークインターフェースカード(SmartNIC)機能に構築することができ、分散プラットフォーム内および分散プラットフォーム間のセキュリティおよびデータ加速の制御の一部である。それは、プラットフォームを管理し、テナントにサービスを提供し、データセンタネットワークへのアクセスを確保するためのCSPによって制御されるセキュアドメインである。IPU305は、分散されたランタイムのパフォーマンスおよび予測可能性を高め、ホストサービスのオフロード、信頼できるトランスポート、およびデータコピーの最適化によって、マルチテラビットスループットへのスケーリングを可能にする。
IPU305は、基礎的なNICから始まって、長年にわたって複雑さが増しており、その唯一の目的は、ホストにパケットを出し入れすることであった。ネットワーキングソフトウェアオフロードの追加により、NICは、VSwitch、VIRTIO-Net、AVFなどの機能をオフロードすることができるSmartNICになるように進化した。リモートの分散ストレージアーキテクチャは、計算およびストレージがもはや同じ場所に配置されず、大規模な計算クラスタがネットワークを介して大規模なストレージクラスタに接続されるさらなる進化を提供する。ネットワーク速度の向上、およびプロトコルの進化により、これが可能になった。リモートの分散ストレージが直接的に接続されたストレージを超えて提供する利点の1つは、計算およびメモリを異なるケイデンスで開発および更新できることである。計算ノードに接続されるメモリの量は、もはやハードドライブの物理的な追加または削除によって制限されず、PCIe SwitchへのPFとしてホットプラグすることができる。スマートエンドポイントなどの技術は、ハードウェアの実装形態によって制限されないように、PCIeスイッチ自体に沿って、IPUがファームウェア制御スイッチを有することを可能にする。
上述したように、本明細書の実施形態は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを提供する。実施形態は、アプリサーバ310上で動作する、CPU315によってホストされるスケジューラエクステンダ317(本明細書ではXPUスケジューラエクステンダとも呼ばれる)を提供する。一実装形態では、スケジューラエクステンダ317は、図1および図2に関して説明したスケジューラエクステンダ110と同じである。一実装形態では、スケジューラエクステンダ317は、データセンタシステム300に実装されたコンテナオーケストレーションプラットフォームに実装されたサービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するワークロードテレメトリデータ(すなわち、「メトリック」)を収集、および分析するよう提供する。ワークロードテレメトリデータに基づいて、スケジューラエクステンダ317は、プログラマブルネットワークデバイス(IPU305など)と連携してXPUハードウェアアクセラレータ(例えば、CPU315、GPU335および362、FPGA364、ASIC 366、推論アクセラレータ345、暗号化アクセラレータ355、および/または他の専用ハードウェアアクセラレータなど)をスケールアップまたはスケールダウンして、データセンタシステム300の計算クラスタの加速から恩恵を受けるワークロードへの、スケーラブルでより動的な計算リソースの割り当てを達成する。
スケジューラエクステンダ317および1つまたは複数のノードエージェント307(本明細書ではクラスタノードエージェント307とも呼ばれる)は、本明細書で説明されるメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングのための複数の使用モデルを提供することができる。第1の使用モデルでは、スケジューラエクステンダ317は、メインクラスタオーケストレータ(図示せず)およびノードエージェント307と通信して、XPUアクセラレータ計算リソースの量のスケーリングに関する情報をクラスタに中継する。第2の使用モデルでは、スケジューラエクステンダ317は、ノードエージェント307と通信して、既にXPUリソースを消費しているワークロードに対してより多くの計算帯域幅を構成し、および/またはより効率的な計算のために基礎となるXPUタイプを切り替える。
本明細書の実装形態では、スケジューラエクステンダ317は、ワークロードからメトリックを収集して分析する。メトリックは、XPUでまた加速され得る機能にマッピングすることができるテレメトリデータである。例えば、TLSハンドシェイクの数/秒、またはCPU上で圧縮されたデータのバイトの量は、暗号化/圧縮アクセラレータにマッピングすることができる。メトリックベースのXPUスケジューリングを使用して、最適化された量のXPUリソースをクラスタに対して利用可能にし、それらを利用するワークロードに割り当てることができ、それらから利益を受けないワークロードをCPUで実行するようにスケジューリングすることができる。
図4は、本開示の実装形態による、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを実装するデータセンタシステム400のブロック図を示す。一実施形態では、データセンタシステム400は、アプリケーションサーバ/制御プレーン410と、XPUラック420と、データセンタサーバ440とを含む。一実装形態では、アプリケーションサーバ/制御プレーン410は、図3のアプリサーバ310と同じであってもよく、XPUラック420は、例えば、図3のストレージラック320、GPUラック330、推論アクセラレータラック340、暗号化アクセラレータラック350、および/または汎用アクセラレータラック360のいずれかと同じであってもよい。データセンタサーバ440は、データセンタシステム400の管理およびオーケストレーション機能を提供するためにデータセンタシステム400内で動作するサーバコンピューティングデバイスであってもよい。
一実施形態では、アプリサーバ/制御プレーン410、XPUラック420、および/またはデータセンタサーバ440は、ハードウェア、ソフトウェア、ファームウェア要素のセット、および/またはハードウェア、ソフトウェア、および/またはファームウェア要素の任意の組み合わせを含むコンピューティングデバイスであってもよい。一例では、アプリサーバ/制御プレーン410、XPUラック420、および/またはデータセンタサーバ440は、本明細書で説明するように、アプリサーバ/制御プレーン410、XPUラック420、および/またはデータセンタサーバ440上で1つまたは複数のプロセスを実行するために、CPU、GPU、ハードウェアアクセラレータなどのうちの1つまたは複数などのハードウェア回路を含むことができる。
いくつかの実施形態では、アプリサーバ/制御プレーン410は、制御プレーンスケジューラ412、ノードエージェント414、およびXPUスケジューラエクステンダ416を含む。一実施形態では、制御プレーンスケジューラ412、ノードエージェント414、および/またはXPUスケジューラエクステンダ416は、別個のコンピューティングデバイスに実装することができ、ネットワーク(図示せず)を介して通信可能に連結される。制御プレーンスケジューラ412、ノードエージェント414、および/またはXPUスケジューラエクステンダ416は、CPU、GPU、ハードウェアアクセラレータなどのうちの1つまたは複数などのハードウェア回路を使用して実装することができる。一実施形態では、制御プレーンスケジューラ412、ノードエージェント414、および/またはXPUスケジューラエクステンダ416は、図1に関して説明したコンピューティングシステム100を使用して実装することができる。一実装形態では、XPUスケジューラエクステンダ416は、図1に関して説明したXPUスケジューラエクステンダ110および/または図3に関して説明したスケジューラエクステンダ317と同じである。
より一般的には、図4の例示的な制御プレーンスケジューラ412、ノードエージェント414、および/またはXPUスケジューラエクステンダ416は、ハードウェア、ソフトウェア、ファームウェア、および/またはハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせによって実装されてもよい。したがって、例えば、例示的な制御プレーンスケジューラ412、ノードエージェント414、および/またはXPUスケジューラエクステンダ416は、1つまたは複数のアナログまたはデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、および/またはフィールドプログラマブル論理デバイス(FPLD)によって実装することができる。
いくつかの実施形態では、XPUラック420は、IPU424上で動作するIPUクラスタノードエージェント422と、複数のXPU435を含むXPUリソース430とを含む。一実施形態では、IPUクラスタノードエージェント422、IPU424、およびXPUリソース430は、別個のコンピューティングデバイスに実装することができ、ネットワーク(図示せず)を介して通信可能に連結される。IPUクラスタノードエージェント422、IPU424、およびXPUリソース430は、CPU、GPU、ハードウェアアクセラレータなどのうちの1つまたは複数などのハードウェア回路を使用して実装することができる。一実施形態では、IPUクラスタノードエージェント422、IPU424、およびXPUリソース430は、図1に関して説明したコンピューティングシステム100を使用して実装することができる。一実装形態では、IPUクラスタノードエージェント422は、図3に関して説明したノードエージェント307と同じであり、IPU424は、図3に関して説明したIPU305と同じであり、XPUリソース430およびXPU435は、図3に関して説明したCPU315、GPU335および362、FPGA364、ASIC366、推論アクセラレータ345、暗号化アクセラレータ355のいずれかと同じである。
より一般的には、図4の例示的なIPUクラスタノードエージェント422、IPU424、およびXPUリソース430は、ハードウェア、ソフトウェア、ファームウェア、および/またはハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせによって実装されてもよい。したがって、例えば、IPUクラスタノードエージェント422、IPU424、およびXPUリソース430は、1つまたは複数のアナログまたはデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、および/またはフィールドプログラマブル論理デバイス(FPLD)によって実装することができる。
一実施形態では、データセンタサーバ440は、中央リソースオーケストレータ445を含む。中央リソースオーケストレータ445は、CPU、GPU、ハードウェアアクセラレータなどのうちの1つまたは複数などのハードウェア回路を使用して実装されてもよい。一実施形態では、中央リソースオーケストレータ445は、図1に関して説明したコンピューティングシステム100を使用して実装されてもよい。
より一般的には、図4の例示的な中央リソースオーケストレータ445は、ハードウェア、ソフトウェア、ファームウェア、および/またはハードウェア、ソフトウェアおよび/またはファームウェアの任意の組み合わせによって実装されてもよい。したがって、例えば、中央リソースオーケストレータ445は、1つまたは複数のアナログまたはデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、および/またはフィールドプログラマブル論理デバイス(FPLD)によって実装され得る。
上述したように、データセンタシステム400は、本明細書の実装形態に従って、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを実装する。図示のように、データセンタシステム400は、アプリケーションのワークロードを実行するアプリサーバ/制御プレーン410とは別に実装されたXPUハードウェアラック420(IPU424を含む)を用いて、分散された計算環境として実装されてもよい。図示されるように、制御プレーン/スケジューラ412、ノードエージェント414、およびアプリケーション(例えば、ワークロード415)は、アプリケーションサーバ(例えば、アプリサーバ/制御プレーン410)上で実行される。本明細書で説明するように、XPUスケジューラエクステンダ416によって提供されるアプリケーションリソース使用および拡張XPU認識スケジューリング機能に関するメトリックベースの知識をもたらすことによって、改善されたXPU計算バランスをデータセンタシステム400において維持することができる。
本明細書の実施形態の一例は、データセンタシステム400に実装され得るコンテナ化されたウェブアプリケーションを含む。ウェブアプリケーションは、マイクロサービスで構成され、その各々は、データセンタシステム400のハードウェアリソース(例えば、アプリサーバ/制御プレーン410および/またはXPUラック420のXPU435のCPU)を使用して独自のコンテナで実行され、HTTPまたはgRPCなどの周知のプロトコルを使用して他のマイクロサービスと通信する。一実装形態では、サービス間の通信リンクにTLSを利用することができる。
サービスメッシュなどのいくつかのツールは、マイクロサービス間の任意の所与の通信リンクの統計のきめ細かい収集を可能にする。例えば、サービスメッシュは、所与のサービスへの新しいTLS接続の数または毎秒転送されるバイト数を報告することができる。一例では、メトリックは、おそらく在庫データのクエリを繰り返した結果として、在庫サービスから店頭サービスへのトラフィックが多いことを示すことができる(例えば、動的トラフィックパターンは、最新のウェブアプリケーションでは一般的である)。
本明細書の実装形態は、収集されたメトリック(例えば、テレメトリデータ)およびデータセンタで利用可能なXPUアクセラレータデバイス(すなわち、XPU435)の既知の特性に基づいて、XPUリソース430を定期的にリバランスする。XPUスケジューラエクステンダ416は、そのようなメトリックを収集および分析するためのメトリックアナライザ417を含むことができる。XPUスケジューラエクステンダ416は、別のプラットフォーム上に配置され、ネットワークを介して接続される追加のXPUリソース430を、アプリサーバ/制御プレーン410によって提供されるサービスのワークロード415を処理する目的で動的にスケーリング(例えば、追加または削除)することができるようにするためのリソース割当部418を含む。
データセンタシステム400によって実施される例示的なフローでは、サービスの特定のマイクロサービスは、サービスの開発者によって特定のタイプのハードウェアアクセラレータを利用することができるものとして注釈が付けられる。次いで、XPUスケジューラエクステンダ416のメトリックアナライザ417は、サービスに加速度を提供する機会を識別するために、メトリックを収集し、サービスに関連する関連メトリックを分析する。
メトリックアナライザ417は、収集されて分析されたメトリックが、ワークロード処理を改善する可能性があることを示している(例えば、圧縮が加速される場合、クエリレイテンシが改善される)と判定し、XPUスケジューラエクステンダ416のリソース割当部418は、マイクロサービスが特定のタイプのXPUアクセラレータ435でスケジューリングされる候補であることを示す別の注釈(または修正された注釈)をマイクロサービスサービスに提供する。
リソース割当部418はまた、XPUアクセラレータリソース435を準備して利用可能にするためのスケーリング要求を作成する。一実装形態では、スケーリング要求は、XPU435をプロビジョニングまたは更新させるために中央リソースオーケストレータ445に送信されてもよい。一実装形態では、XPUスケジューラエクステンダ416は、マイクロサービスのワークロードを処理する目的でXPU割当部426にXPU435を割り当てまたは更新させるために、IPU424と直接通信することができる。XPUアクセラレータリソース435がアプリサーバ/制御プレーン410から離れている場合、スケーリング要求は、XPU435が接続されているIPU仮想ノードエージェント422に送信することができる。
一実装形態では、IPU424内のXPU割当部426は、XPU435を動的に割り当てることができ、IPU424は、アプリサーバ/制御プレーン410にXPU435を登録することができる。リバランスポリシーおよびスケーリング要求の結果に応じて、マイクロサービスのサービスは、サービスの次の再起動(例えば、メンテナンス中断)を待機することができ、または、例えば、動的に追加された新しいXPU435で自動的に再起動することができる。
本開示の実施形態は、リバランス/プロビジョニングポリシーがどのように作成および/または実施されるかに対するいずれかの制約を設定しなくてもよい。例えば、リバランス/プロビジョニングポリシーは、閾値に基づくことができる。そのような例では、トラフィックが所定の閾値量を超える場合、または毎秒Xを超える量のTLSハンドシェイクがある場合、サービスを加速の候補としてマークすることができる。しかしながら、リバランス/プロビジョニングポリシーはまた、複雑であり、ニューラルネットワークなどの技術に基づくことができ、リバランス/プロビジョニングポリシーは、クラスタ全体の統計として入力を提供することができる。例えば、ハードウェアアクセラレータデバイスのクラスタ利用率、予想される将来のトラフィックパターンなどを通知する。リバランス/プロビジョニングポリシーは、ワークロードプロパティに関するより多くの情報が利用可能になると更新することができる。リバランスおよび/またはスケジューリングのための動的で適応可能なポリシーは、本開示の実装形態によるシステムリソース利用の改善のために本明細書で利用することができる。
一実装形態では、ワークロード415がセキュリティ要件に関連付けられ、および/またはXPU435のセキュリティプロパティ(例えば、XPU435は、FIP準拠であるか、またはSPDMをサポートするべきである)に関連付けられている場合、XPU435とのすべての通信が保護されるべきである。一実装形態では、ワークロードのクラスタに追加された新しいXPU435が要件に準拠できることを保証するための解決策として、IPSecを利用することができる。セキュリティポリシーの実施は、IPU424、制御プレーン/スケジューラ412、またはその両方で行うことができる。
例えば、IPU424における実施に関して、XPUスケジューラエクステンダ416は、XPU435スケーリング要求を提出するときにIPU424にセキュリティ要件を伝達することができる。次いで、XPU割当部426は、セキュリティ要件に準拠するXPU435を利用可能にすることができる。
制御プレーン/スケジューラ412における実施に関して、XPUスケジューラエクステンダ416は、制御プレーン/スケジューラ412にセキュリティポリシーを提供することができる。IPU424はXPU435を利用可能にすることができるが、XPU435が登録される前に、制御プレーン/スケジューラ412は、セキュリティポリシーへの準拠を保証するためにXPU435のアテステーションを検証する必要がある。サービス(例えば、ワークロード415)は、セキュリティポリシーに準拠している場合に加速してスケジューリングすることができる。XPU435とのセキュアな通信に対する要件がある場合、制御プレーン/スケジューラ412および/またはXPUスケジューラエクステンダ416は、XPU435を介してワークロード415の加速をスケジューリングする前に、XPUとのセキュアチャネルを確立することができる。
一実装形態では、メトリックを収集して分析するXPUスケジューラエクステンダ416は、ワークロード415に対するサイドチャネル攻撃などの悪意のある意図にメトリックが使用されるべきではないという保証を提供することができる。これは、例えばIntel(登録商標)SGX(商標)、AMD(商標)SEV(商標)、またはTrustzone(商標)などのトラステッド実行環境(TEE)内でXPUスケジューラエクステンダ416を実行することによって達成することができる。ワーカーノード(例えば、アプリサーバ/制御プレーン410のCPU)とXPU435との間の通信も、IPsecなどのセキュリティ技術を使用してネットワークを介して保護される。
いくつかの実装形態では、クラスタを使用して、XPU435の加速から利益を得ることができる通常のバッチジョブを実行することもできる。これらのバッチジョブは、どのタイプのXPU435が加速に使用されるかにかかわらず完了され得る(例えば、FPGAまたは専用ASICを使用して実装される圧縮バッチジョブ)。この場合、テレメトリベースのスケジューリングおよび/またはスケーリングを利用して、例えば、過去のパフォーマンス履歴、環境条件(例えば、クラスタ電力バジェット)、または他のサービスレベル合意(SLA)に基づいてサービスをスケジューリングするためのXPU435を識別することができる。本明細書の実装形態の別の特徴は、アプリケーションの中断が制限されることを保証しながら、別のワークロードが特定のXPU435により多くの利益を得ることができる場合(例えば、ウェブアプリケーションをより高性能にするために)、XPU435を処理ワークロードから削除するためのサポートを含むことができる。
図5は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングのための方法500の実施形態を示す流れ図である。方法500は、ハードウェア(例えば、回路、専用論理、プログラマブル論理など)、ソフトウェア(処理デバイス上で実行される命令など)、またはそれらの組み合わせを含み得る処理論理によって実行され得る。より具体的には、方法500は、RAM、ROM、PROM、ファームウェア、フラッシュメモリなどの機械またはコンピュータ可読記憶媒体(本明細書では非一時的コンピュータ可読記憶媒体とも呼ばれる)、例えばPLA、FPGA、CPLDなどの構成可能論理、例えばASIC、CMOSもしくはTTL技術などの回路技術を使用する固定機能論理ハードウェア、またはそれらの任意の組み合わせに記憶された論理命令のセットとして、1つまたは複数のモジュールで実施することができる。
方法500のプロセスは、提示を簡潔かつ明瞭にするために線形シーケンスで示されている。しかしながら、それらの任意の数は、並列に、非同期に、または異なる順序で実行することができると考えられる。さらに、簡潔さ、明確さ、および理解の容易さのために、図1~図4に関して説明したコンポーネントおよびプロセスの多くは、以下では繰り返されず、または説明されない場合がある。一実装形態では、図4のデータセンタシステム400のXPUスケジューラエクステンダ416などのXPUスケジューラエクステンダを実装するデータセンタシステムは、方法500を実行することができる。
図5の方法500の例示的なプロセスは、XPUスケジューラエクステンダを実行する処理デバイスが、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集することができるブロック510で始まる。次に、ブロック520において、処理デバイスは、XPUスケジューラエクステンダによるメトリックの分析に基づいて、XPUハードウェアアクセラレータデバイス(本明細書ではハードウェアアクセラレータデバイスとも呼ばれる)へのオフロードによってサービスのワークロードを加速できると判定することができる。
続いて、ブロック530において、処理デバイスは、XPUスケジューラエクステンダによって、XPUハードウェアアクセラレータデバイスを、サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成することができる。ブロック540において、処理デバイスは、XPUスケジューラエクステンダによって、XPUハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスにスケーリング要求を送信させることができる。一実装形態では、プログラマブルネットワークデバイスは、XPUハードウェアアクセラレータデバイスをクラスタに割り当て、XPUハードウェアアクセラレータデバイスをサービスメッシュに登録する。最後に、ブロック550において、処理デバイスは、サービスのワークロードをXPUハードウェアアクセラレータデバイスにスケジューリングすることができる。
図6は、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを実施しながら、セキュリティ対策のための方法600の実施形態を示す流れ図である。方法600は、ハードウェア(例えば、回路、専用論理、プログラマブル論理など)、ソフトウェア(処理デバイス上で実行される命令など)、またはそれらの組み合わせを含み得る処理論理によって実行され得る。より具体的には、方法500は、RAM、ROM、PROM、ファームウェア、フラッシュメモリなどの機械またはコンピュータ可読記憶媒体(本明細書では非一時的コンピュータ可読記憶媒体とも呼ばれる)、例えばPLA、FPGA、CPLDなどの構成可能論理、例えばASIC、CMOSもしくはTTL技術などの回路技術を使用する固定機能論理ハードウェア、またはそれらの任意の組み合わせに記憶された論理命令のセットとして、1つまたは複数のモジュールで実施することができる。
方法600のプロセスは、提示を簡潔かつ明瞭にするために線形シーケンスで示されている。しかしながら、それらの任意の数は、並列に、非同期に、または異なる順序で実行することができると考えられる。さらに、簡潔さ、明確さ、および理解の容易さのために、図1~図5に関して説明したコンポーネントおよびプロセスの多くは、以下では繰り返されないまたは説明されない場合がある。一実装形態では、図4のデータセンタシステム400のXPUスケジューラエクステンダ416などのXPUスケジューラエクステンダを実装するデータセンタシステムは、方法600を実行することができる。
図6の方法600の例示的なプロセスは、ブロック610で始まり、処理デバイスは、サービスメッシュのサービス用に構成されたハードウェアデバイスのクラスタに含めるためのXPUハードウェアアクセラレータデバイスを識別することができる。次に、ブロック620において、処理デバイスは、アテステーションプロトコルを使用してXPUハードウェアアクセラレータデバイスの信頼性を検証することができる。
続いて、ブロック630において、処理デバイスは、XPUハードウェアアクセラレータデバイスとの共有秘密鍵を確立することができる。最後に、ブロック640において、処理デバイスは、XPUハードウェアアクセラレータデバイスへのサービスのワークロードをスケジューリングする際に利用するために、共有秘密鍵をサービスメッシュの制御プレーンスケジューラに通信することができる。
図7は、いくつかの実施形態による、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを可能にする例示的な電子コンピューティングデバイス700の概略図である。いくつかの実施形態では、コンピューティングデバイス700は、図1および図2に関して説明したXPUスケジューラエクステンダ110~140、図3に関して説明したスケジューラエクステンダ317、または図4に関して説明したXPUスケジューラエクステンダ416などのXPUスケジューラエクステンダ(XSE)715を含む1つまたは複数のプロセッサコア718を含む1つまたは複数のプロセッサ710を含む。いくつかの実施形態では、コンピューティングデバイス700は、ハードウェアアクセラレータ768を含み、ハードウェアアクセラレータは、図1および図2に関して説明したXPUスケジューラエクステンダ110~140、図3に関して説明したスケジューラエクステンダ317、または図4に関して説明したXPUスケジューラエクステンダ416などのXPUスケジューラエクステンダ782を含む。いくつかの実施形態では、コンピューティングデバイスは、図1~図6で提供されるように、プログラマブルネットワークデバイスを使用して、低メトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを提供する。
コンピューティングデバイス700は、キャッシュ762、グラフィカル処理装置(GPU)712(いくつかの実装形態ではハードウェアアクセラレータとすることができる)、無線入力/出力(I/O)インターフェース720、有線I/Oインターフェース730、システムメモリ740(例えば、メモリ回路)、電力管理回路750、非一時的ストレージデバイス760、およびネットワーク772に接続するためのネットワークインターフェース770のうちの1つまたは複数をさらに含むことができる。以下の説明は、例示的なコンピューティングデバイス700を形成するコンポーネントの簡単で一般的な説明を提供する。例として、非限定的なコンピューティングデバイス700は、デスクトップコンピューティングデバイス、ブレードサーバデバイス、ワークステーション、または同様のデバイスもしくはシステムを含むことができる。
実施形態では、プロセッサコア718は、機械可読命令セット714を実行し、1つまたは複数のストレージデバイス760からデータおよび/または命令セット714を読み取り、1つまたは複数のストレージデバイス760にデータを書き込むことができる。図示の実施形態ならびに他の実施形態は、例えばスマートフォン、ポータブルコンピュータ、ウェアラブルコンピュータ、家電、パーソナルコンピュータ(「PC」)、ネットワークPC、ミニコンピュータ、サーバブレード、メインフレームコンピュータなどのポータブル電子またはハンドヘルド電子デバイスを含む他のプロセッサベースのデバイス構成で実施することができることを当業者は理解することができる。
プロセッサコア718は、任意の数のハードワイヤードまたは構成可能な回路を含むことができ、その一部または全部は、PC、サーバ、またはプロセッサ可読命令を実行することができる他のコンピューティングシステムに部分的または全体的に配置された電子部品、半導体デバイス、および/または論理要素のプログラマブルおよび/または構成可能な組み合わせを含むことができる。
コンピューティングデバイス700は、プロセッサコア718、キャッシュ762、グラフィックスプロセッサ回路712、1つまたは複数の無線I/Oインターフェース720、1つまたは複数の有線I/Oインターフェース730、1つまたは複数のストレージデバイス760、および/または1つまたは複数のネットワークインターフェース770を含む様々なシステムコンポーネント間の情報および/またはデータの交換を通信可能に連結し促進するバスまたは同様の通信リンク716を含む。コンピューティングデバイス700は、本明細書では単数形で参照されることがあるが、これは、実施形態を単一のコンピューティングデバイス700に限定することを意図するものではなく、これはなぜならば、特定の実施形態では、任意の数の通信可能に連結された、コロケートされた、またはリモートネットワークされた回路またはデバイスを組み込む、含む、または格納する1つより多くのコンピューティングデバイス700があり得るためである。
プロセッサコア718は、機械可読命令セットを実行することができる現在利用可能なまたは将来開発されるデバイスの任意の数、種類、または組み合わせを含むことができる。
プロセッサコア718は、これらに限られるわけではないが、いずれかの現在または将来開発されるシングルコアまたはマルチコアプロセッサまたはマイクロプロセッサ、例えば1つまたは複数のシステムオンチップ(SOC)、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理装置(GPU)、特定用途向け集積回路(ASIC)、プログラマブル論理ユニット、フィールドプログラマブルゲートアレイ(FPGA)などを含む(あるいはこれらに連結される)ことができる。特に記載のない限り、図7に示す様々なブロックの構成および動作は、従来の設計のものである。したがって、そのようなブロックは、当業者によって理解されるはずであるため、本明細書ではさらに詳細に説明されない。コンピューティングデバイス700のコンポーネントの少なくともいくつかを相互接続するバス716は、任意の現在利用可能なまたは将来開発されるシリアルまたはパラレルバス構造またはアーキテクチャを採用することができる。
システムメモリ740は、読み出し専用メモリ(「ROM」)742およびランダムアクセスメモリ(「RAM」)746を含むことができる。ROM742の一部は、基本入出力システム(「BIOS」)744を記憶または保持するために使用することができる。BIOS744は、例えば、プロセッサコア718に、1つまたは複数の機械可読命令セット714をロードおよび/または実行させることによって、コンピューティングデバイス700に基本機能を提供する。実施形態では、1つまたは複数の機械可読命令セット714の少なくともいくつかは、プロセッサコア718の少なくとも一部に、専用の特殊な特定の機械、例えば、ワードプロセッシングマシン、デジタル画像取得マシン、メディアプレイングマシン、ゲームシステム、通信デバイス、スマートフォンなどを提供、作成、生成、移行、および/または機能させる。
コンピューティングデバイス700は、少なくとも1つの無線入出力(I/O)インターフェース720を含むことができる。少なくとも1つの無線I/Oインターフェース720は、1つまたは複数の物理出力デバイス722(触覚デバイス、ビデオディスプレイ、オーディオ出力デバイス、ハードコピー出力デバイスなど)と通信可能に連結されてもよい。少なくとも1つの無線I/Oインターフェース720は、1つまたは複数の物理入力デバイス724(ポインティングデバイス、タッチスクリーン、キーボード、触覚デバイスなど)に通信可能に連結してもよい。少なくとも1つの無線I/Oインターフェース720は、現在利用可能なまたは将来開発される任意の無線I/Oインターフェースを含んでもよい。例示的な無線I/Oインターフェースには、BLUETOOTH(登録商標)、近距離通信(NFC)などが含まれるが、これらに限定されない。
コンピューティングデバイス700は、1つまたは複数の有線入出力(I/O)インターフェース730を含むことができる。少なくとも1つの有線I/Oインターフェース730は、1つまたは複数の物理出力デバイス722(触覚デバイス、ビデオディスプレイ、オーディオ出力デバイス、ハードコピー出力デバイスなど)に通信可能に連結されてもよい。少なくとも1つの有線I/Oインターフェース730は、1つまたは複数の物理入力デバイス724(ポインティングデバイス、タッチスクリーン、キーボード、触覚デバイスなど)に通信可能に連結されてもよい。有線I/Oインターフェース730は、現在利用可能なまたは将来開発される任意のI/Oインターフェースを含むことができる。例示的な有線I/Oインターフェースには、ユニバーサルシリアルバス(USB)、IEEE 1394(「FireWire(登録商標)」)などが含まれるが、これらに限定されない。
コンピューティングデバイス700は、通信可能に連結された1つまたは複数の非一時的なデータストレージデバイス760を含むことができる。データストレージデバイス760は、1つまたは複数のハードディスクドライブ(HDD)および/または1つまたは複数のソリッドステートストレージデバイス(SSD)を含んでもよい。1つまたは複数のデータストレージデバイス760は、任意の現在または将来開発されるストレージ機器、ネットワークストレージデバイス、および/またはシステムを含むことができる。そのようなデータストレージデバイス760の非限定的な例は、限定はしないが、任意の現在または将来開発される非一時的ストレージ機器またはデバイス、例えば、1つまたは複数の磁気ストレージデバイス、1つまたは複数の光ストレージデバイス、1つまたは複数の電気抵抗ストレージデバイス、1つまたは複数の分子ストレージデバイス、1つまたは複数の量子ストレージデバイス、またはそれらの様々な組み合わせを含むことができる。いくつかの実装形態では、1つまたは複数のデータストレージデバイス760は、1つまたは複数のフラッシュドライブ、フラッシュメモリ、フラッシュストレージユニット、またはコンピューティングデバイス700との通信可能な連結および連結解除が可能な同様の機器もしくは装置などの、1つまたは複数の取り外し可能なストレージデバイスを含むことができる。
1つまたは複数のデータストレージデバイス760は、それぞれのストレージデバイスまたはシステムをバス716に通信可能に連結するインターフェースまたはコントローラ(図示せず)を含むことができる。1つまたは複数のデータストレージデバイス760は、機械可読命令セット、データ構造、プログラムモジュール、データストア、データベース、論理構造、および/またはプロセッサコア718および/またはグラフィックスプロセッサ回路712および/またはプロセッサコア718および/またはグラフィックスプロセッサ回路712上でまたはそれによって実行される1つまたは複数のアプリケーションに有用な他のデータを記憶、保持、または格納することができる。場合によっては、1つまたは複数のデータストレージデバイス760は、例えばバス716を介して、または1つまたは複数の有線通信インターフェース730(例えば、ユニバーサルシリアルバスまたはUSB)を介して、プロセッサコア718、1つまたは複数の無線通信インターフェース720(例えば、Bluetooth(登録商標)、近距離無線通信またはNFC)、および/または1つまたは複数のネットワークインターフェース770(IEEE 802.3またはイーサネット(登録商標)、IEEE 802.11、またはWi-Fi(登録商標)など)に通信可能に連結されてもよい。
プロセッサ可読命令セット714ならびに他のプログラム、アプリケーション、論理セット、および/またはモジュールは、システムメモリ740に全体的または部分的に記憶することができる。そのような命令セット714は、全体的または部分的に、1つまたは複数のデータストレージデバイス760から転送されてもよい。命令セット714は、プロセッサコア718および/またはグラフィックスプロセッサ回路712による実行中に、全体的または部分的に、システムメモリ740にロード、記憶、または保持されてもよい。
コンピューティングデバイス700は、エネルギー貯蔵装置752の1つまたは複数の動作態様を制御する電力管理回路750を含むことができる。実施形態では、エネルギー貯蔵装置752は、1つまたは複数の一次(すなわち、非充電式)もしくは二次(すなわち、充電式)電池または同様のエネルギー貯蔵装置を含むことができる。実施形態では、エネルギー貯蔵装置752は、1つまたは複数のスーパーキャパシタまたはウルトラキャパシタを含んでもよい。実施形態では、電力管理回路750は、外部電源754からエネルギー貯蔵装置752および/またはコンピューティングデバイス700へのエネルギーの流れを変更、調整、または制御することができる。電源754は、限定はしないが、太陽光発電システム、商用電力グリッド、携帯発電機、外部エネルギー貯蔵装置、またはそれらの任意の組み合わせを含むことができる。
便宜上、プロセッサコア718、グラフィックスプロセッサ回路712、無線I/Oインターフェース720、有線I/Oインターフェース730、ストレージデバイス760、およびネットワークインターフェース770は、バス716を介して互いに通信可能に連結されるものとして示されており、それによって上述のコンポーネント間の連結性を提供する。代替的な実施形態では、上述のコンポーネントは、図7に示されたものとは異なる方法で通信可能に連結されてもよい。例えば、上述のコンポーネントのうちの1つまたは複数は、他のコンポーネントに直接連結されてもよく、または1つまたは複数の中間コンポーネント(図示せず)を介して互いに連結されてもよい。別の例では、上記のコンポーネントのうちの1つまたは複数は、プロセッサコア718および/またはグラフィックスプロセッサ回路712に統合されてもよい。いくつかの実施形態では、バス716の全部または一部を省略することができ、コンポーネントは、適切な有線または無線連結を使用して互いに直接連結される。
以下の例は、さらなる実施形態に関する。例1は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進する装置である。例1の装置は、1つまたは複数のプロセッサであって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによってサービスのワークロードを加速できると判定し、ハードウェアアクセラレータデバイスを、サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成し、スケーリング要求を、ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、プログラマブルネットワークデバイスにハードウェアアクセラレータデバイスをクラスタに割り当てさせ、ハードウェアアクセラレータデバイスをサービスメッシュに登録させ、ハードウェアアクセラレータデバイスへサービスのワークロードをスケジューリングするための1つまたは複数のプロセッサ、を備える。
例2において、例1の主題は、任意選択的に、メトリックは、新しいトランスポート層セキュリティ(TLS)接続の数、毎秒転送されるバイト数、マイクロサービス間のトラフィックパターン、またはクラスタのハードウェアデバイスの利用率のうちの少なくとも1つを含むテレメトリデータを含むことを含む。
例3において、例1から例2のいずれか1つの主題は、任意選択的に、ワークロードを加速できることを識別する1つまたは複数のプロセッサが、サービスがハードウェアアクセラレータデバイスにおけるスケジューリングの候補であることを示すためにサービスに注釈を付ける1つまたは複数のプロセッサをさらに備え、注釈が、サービスメッシュの制御プレーンスケジューラに、サービスをハードウェアアクセラレータデバイスへスケジューリングさせることを含み得る。例4において、例1から例3のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、メトリックの分析に基づいて、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、暗号化アクセラレータデバイス、推論アクセラレータデバイス、または圧縮アクセラレータデバイスのうちの少なくとも1つを含む決定されたタイプのハードウェアアクセラレータデバイスにオフロードすることによって、ワークロードを加速できると判定することを含み得る。
例5において、例1から例4のいずれか1つの主題は、任意選択的に、スケーリング要求が、1つまたは複数のプロセッサおよびハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、中央リソースオーケストレータは、少なくとも1つまたは複数のプロセッサ、プログラマブルネットワークデバイス、およびハードウェアアクセラレータデバイスをホストするデータセンタのハードウェアリソースのセットを管理することを含み得る。
例6において、例1から例5のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、サービスメッシュの制御プレーンスケジューラの動作を拡張するためのスケジューラエクステンダ回路を備え、制御プレーンスケジューラが、データセンタ内の1つまたは複数の利用可能なハードウェアリソース上でサービスのワークロードをスケジューリングし、1つまたは複数の利用可能なハードウェアリソースが、少なくともハードウェアアクセラレータデバイスを備えることを含むことができる。例7において、例1から例6のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、ハードウェアアクセラレータデバイスをクラスタに割り当てる一部として、ハードウェアアクセラレータデバイスをさらに認証することを含み得る。
例8において、例1から例7のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサがさらに、ハードウェアアクセラレータデバイスが、ハードウェアアクセラレータデバイスと、ハードウェアアクセラレータデバイスへのワークロードをスケジューリングするサービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために利用するための共有秘密鍵を確立することを含み得る。例9において、例1から例8のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、トラステッド実行環境(TEE)内でスケジューラエクステンダを実行して、スケジューラエクステンダを分離し、スケジューラエクステンダは、収集すること、判定すること、生成すること、およびさせることを実行することを含み得る。
例10において、例1から例9のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、ハードウェアアクセラレータの過去のパフォーマンス履歴、ハードウェアアクセラレータの環境条件、またはハードウェアアクセラレータのサービスに対応するサービスレベル合意(SLA)に基づいて、ハードウェアアクセラレータを識別することを含み得る。例11において、例1から例10のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサがさらに、プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、クラスタノードエージェントは、スケーリング要求に基づいてクラスタの1つまたは複数のハードウェアリソースで帯域幅を構成することを含み得る。
例12において、例1から例11のいずれか1つの主題は、任意選択的に、プログラマブルネットワークデバイスおよびハードウェアアクセラレータデバイスが、1つまたは複数のプロセッサ、プログラマブルネットワークデバイス、およびハードウェアアクセラレータデバイスをホストするデータセンタの別個のサーバデバイスの1つまたは複数のプロセッサから分散されることを含み得る。例13において、例1から12のいずれか1つの主題が、任意選択的に、プログラマブルネットワークデバイスは、インフラストラクチャ処理ユニット(IPU)またはデータ処理ユニット(DPU)のうちの少なくとも1つを備えることを含み得る。
例14は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進するための非一時的コンピュータ可読記憶媒体である装置である。1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに動作を実行させる実行可能コンピュータプログラム命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作は、1つまたは複数のプロセッサによってサービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集することと、メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによってサービスのワークロードを加速できると判定することと、ハードウェアアクセラレータデバイスを、サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成することと、スケーリング要求を、ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、プログラマブルネットワークデバイスにハードウェアアクセラレータデバイスをクラスタに割り当てさせ、ハードウェアアクセラレータデバイスをサービスメッシュに登録させることと、ハードウェアアクセラレータデバイスへサービスのワークロードをスケジューリングすることとを含む、例14の非一時的コンピュータ可読記憶媒体。
例15において、例14の主題は、任意選択的に、スケーリング要求が、1つまたは複数のプロセッサおよびハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、中央リソースオーケストレータは、少なくとも1つまたは複数のプロセッサ、プログラマブルネットワークデバイス、およびハードウェアアクセラレータデバイスをホストするデータセンタのハードウェアリソースのセットを管理することを含み得る。例16において、例14から例15の主題は、任意選択的に、動作が、ハードウェアアクセラレータデバイスをクラスタに割り当てることの一部として、ハードウェアアクセラレータデバイスを認証することをさらに含むことを含み得る。
例17において、例14から例16の主題は、任意選択に、動作が、ハードウェアアクセラレータデバイスと、ハードウェアアクセラレータデバイスにワークロードをスケジューリングするサービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために、ハードウェアアクセラレータデバイスが利用するための共有秘密鍵を確立することをさらに含むことを含み得る。
例18は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進するための方法である。例18の方法は、1つまたは複数のプロセッサによって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集することと、1つまたは複数のプロセッサによるメトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによってサービスのワークロードを加速できると判定することと、1つまたは複数のプロセッサによって、ハードウェアアクセラレータデバイスを、サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成することと、1つまたは複数のプロセッサによって、スケーリング要求を、ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、プログラマブルネットワークデバイスにハードウェアアクセラレータデバイスをクラスタに割り当てさせ、ハードウェアアクセラレータデバイスをサービスメッシュに登録させることと、1つまたは複数のプロセッサによって、ハードウェアアクセラレータデバイスへサービスのワークロードをスケジューリングすることとを含み得る。
例19において、例18の主題は、任意選択的に、スケーリング要求が、1つまたは複数のプロセッサおよびハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、中央リソースオーケストレータは、少なくとも1つまたは複数のプロセッサ、プログラマブルネットワークデバイス、およびハードウェアアクセラレータデバイスをホストするデータセンタのハードウェアリソースのセットを管理することを含み得る。例20において、例18から例19の主題は、任意選択的に、プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信することをさらに含むことができ、クラスタノードエージェントは、スケーリング要求に基づいてクラスタの1つまたは複数のハードウェアリソースで帯域幅を構成する。
例21は、プログラマブルネットワークデバイスを使用したメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進するためのシステムである。例21のシステムは、任意選択的に、データのブロックを記憶するためのメモリと、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集するために、メモリに通信可能に連結されたプロセッサとを含むことができ、プロセッサは、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによってサービスのワークロードを加速できると判定し、ハードウェアアクセラレータデバイスを、サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成し、スケーリング要求を、ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、プログラマブルネットワークデバイスにハードウェアアクセラレータデバイスをクラスタに割り当てさせ、ハードウェアアクセラレータデバイスをサービスメッシュに登録させ、ハードウェアアクセラレータデバイスへサービスのワークロードをスケジューリングする。
例22において、例21の主題は、任意選択的に、メトリクスは、新しいトランスポート層セキュリティ(TLS)接続の数、毎秒転送されるバイト数、マイクロサービス間のトラフィックパターン、またはクラスタのハードウェアデバイスの利用率のうちの少なくとも1つを含むテレメトリデータを含むことを含む。
例23において、例21から例22のいずれか1つの主題は、任意選択的に、ワークロードを加速できることを識別する1つまたは複数のプロセッサが、サービスがハードウェアアクセラレータデバイスにおけるスケジューリングの候補であることを示すためにサービスに注釈を付ける1つまたは複数のプロセッサをさらに備え、注釈が、サービスメッシュの制御プレーンスケジューラに、サービスをハードウェアアクセラレータデバイスへスケジューリングさせることを含み得る。例24において、例21から例23のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、メトリックの分析に基づいて、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、暗号化アクセラレータデバイス、推論アクセラレータデバイス、または圧縮アクセラレータデバイスのうちの少なくとも1つを含む決定されたタイプのハードウェアアクセラレータデバイスにオフロードすることによって、ワークロードを加速できると判定することを含み得る。
例25において、例21から例24のいずれか1つの主題は、任意選択的に、スケーリング要求が、1つまたは複数のプロセッサおよびハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、中央リソースオーケストレータは、少なくとも1つまたは複数のプロセッサ、プログラマブルネットワークデバイス、およびハードウェアアクセラレータデバイスをホストするデータセンタのハードウェアリソースのセットを管理することを含み得る。
例26において、例21から例25のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、サービスメッシュの制御プレーンスケジューラの動作をさらに拡張し、制御プレーンスケジューラが、データセンタ内の1つまたは複数の利用可能なハードウェアリソース上でサービスのワークロードをスケジューリングし、1つまたは複数の利用可能なハードウェアリソースが、少なくともハードウェアアクセラレータデバイスを備えることを含むことができる。例27において、例21から例26のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、ハードウェアアクセラレータデバイスをクラスタに割り当てる一部として、ハードウェアアクセラレータデバイスをさらに認証することを含み得る。
例28において、例21から例27のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサはさらに、ハードウェアアクセラレータデバイスが、ハードウェアアクセラレータデバイスと、ハードウェアアクセラレータデバイスへのワークロードをスケジューリングするサービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために利用するための共有秘密鍵を確立することを含み得る。例29において、例21から例28のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサは、トラステッド実行環境(TEE)内でスケジューラエクステンダを実行して、スケジューラエクステンダを分離し、スケジューラエクステンダは、収集すること、判定すること、生成すること、およびさせることを実行することを含み得る。
例30において、例21から例29のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサが、ハードウェアアクセラレータの過去のパフォーマンス履歴、ハードウェアアクセラレータの環境条件、またはハードウェアアクセラレータのサービスに対応するサービスレベル合意(SLA)に基づいて、ハードウェアアクセラレータを識別することを含み得る。例31において、例21から例30のいずれか1つの主題は、任意選択的に、1つまたは複数のプロセッサがさらに、プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、クラスタノードエージェントは、スケーリング要求に基づいてクラスタの1つまたは複数のハードウェアリソースで帯域幅を構成することを含み得る。
例32において、例21から例31のいずれか1つの主題は、任意選択的に、プログラマブルネットワークデバイスおよびハードウェアアクセラレータデバイスが、1つまたは複数のプロセッサ、プログラマブルネットワークデバイス、およびハードウェアアクセラレータデバイスをホストするデータセンタ内の別個のサーバデバイスの1つまたは複数のプロセッサから分散されることを含み得る。例33において、例21から32のいずれか1つの主題が、任意選択的に、プログラマブルネットワークデバイスは、インフラストラクチャ処理ユニット(IPU)またはデータ処理ユニット(DPU)のうちの少なくとも1つを備えることを含み得る。
例34は、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進するための装置であって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集するための手段、メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによってサービスのワークロードを加速できると判定するための手段、ハードウェアアクセラレータデバイスを、サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成するための手段、スケーリング要求を、ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、プログラマブルネットワークデバイスにハードウェアアクセラレータデバイスをクラスタに割り当てさせ、ハードウェアアクセラレータデバイスをサービスメッシュに登録させるための手段、およびハードウェアアクセラレータデバイスへサービスのワークロードをスケジューリングするための手段を含む装置である。例35において、例34の主題は、例19から20のいずれか1つの方法を実行するようにさらに構成された装置を任意選択的に含むことができる。
例36は、コンピューティングデバイスで実行されたことに応答して、コンピューティングデバイスに例18から例20のいずれか1つに記載の方法を実行させる複数の命令を含む少なくとも1つの機械可読媒体である。例37は、例18から例20のいずれか1つの方法を実行するように構成された、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進するための装置である。例38は、プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリングおよび自動スケーリングを促進するための装置であって、項目18から20のいずれか一項に記載の方法を実行するための手段を備える、装置である。例における特定は、1つまたは複数の実施形態のいずれでも使用することができる。
前述の説明および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。当業者は、添付の特許請求の範囲に記載された特徴のより広い精神および範囲から逸脱することなく、本明細書に記載された実施形態に対して様々な修正および変更を行うことができることを理解することができる。
[他の可能な項目]
[項目1]
装置であって、
サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定し、
前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成し、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させ、
前記ハードウェアアクセラレータデバイスへ前記サービスの前記ワークロードをスケジューリングする
ための1つまたは複数のプロセッサ、を備える、装置。
[項目2]
前記メトリックは、新しいトランスポート層セキュリティ(TLS)接続の数、毎秒転送されるバイト数、前記マイクロサービス間のトラフィックパターン、または前記クラスタのハードウェアデバイスの利用率のうちの少なくとも1つを含むテレメトリデータを含む、項目1に記載の装置。
[項目3]
前記ワークロードを加速できることを識別する前記1つまたは複数のプロセッサが、前記サービスが前記ハードウェアアクセラレータデバイスにおけるスケジューリングの候補であることを示すために前記サービスに注釈を付ける前記1つまたは複数のプロセッサをさらに備え、前記注釈が、前記サービスメッシュの制御プレーンスケジューラに、前記サービスを前記ハードウェアアクセラレータデバイスへスケジューリングさせる、項目1に記載の装置。
[項目4]
前記1つまたは複数のプロセッサが、前記メトリックの前記分析に基づいて、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、暗号化アクセラレータデバイス、推論アクセラレータデバイス、または圧縮アクセラレータデバイスのうちの少なくとも1つを含む決定されたタイプの前記ハードウェアアクセラレータデバイスにオフロードすることによって、前記ワークロードを加速できると判定する、項目1に記載の装置。
[項目5]
前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、項目1に記載の装置。
[項目6]
前記1つまたは複数のプロセッサが、前記サービスメッシュの制御プレーンスケジューラの動作を拡張するためのスケジューラエクステンダ回路を備え、前記制御プレーンスケジューラが、データセンタの1つまたは複数の利用可能なハードウェアリソース上で前記サービスのワークロードをスケジューリングし、前記1つまたは複数の利用可能なハードウェアリソースが、少なくとも前記ハードウェアアクセラレータデバイスを備える、項目1に記載の装置。
[項目7]
前記1つまたは複数のプロセッサが、前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てる一部として、前記ハードウェアアクセラレータデバイスをさらに認証する、項目1に記載の装置。
[項目8]
前記1つまたは複数のプロセッサはさらに、前記ハードウェアアクセラレータデバイスが、前記ハードウェアアクセラレータデバイスと、前記ハードウェアアクセラレータデバイスへのワークロードをスケジューリングする前記サービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために利用するための共有秘密鍵を確立する、項目7に記載の装置。
[項目9]
前記1つまたは複数のプロセッサは、トラステッド実行環境(TEE)内でスケジューラエクステンダを実行して、前記スケジューラエクステンダを分離し、前記スケジューラエクステンダは、前記収集すること、前記判定すること、前記生成すること、および前記させることを実行する、項目1に記載の装置。
[項目10]
前記1つまたは複数のプロセッサは、前記ハードウェアアクセラレータの過去のパフォーマンス履歴、前記ハードウェアアクセラレータの環境条件、または前記ハードウェアアクセラレータの前記サービスに対応するサービスレベル合意(SLA)に基づいて、前記ハードウェアアクセラレータを識別する、項目1に記載の装置。
[項目11]
前記1つまたは複数のプロセッサはさらに、前記プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、前記クラスタノードエージェントは、前記スケーリング要求に基づいて前記クラスタの1つまたは複数のハードウェアリソースで帯域幅を構成する、項目1に記載の装置。
[項目12]
前記プログラマブルネットワークデバイスおよび前記ハードウェアアクセラレータデバイスは、前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内の別個のサーバデバイスの前記1つまたは複数のプロセッサから分散される、項目1に記載の装置。
[項目13]
前記プログラマブルネットワークデバイスは、インフラストラクチャ処理ユニット(IPU)またはデータ処理ユニット(DPU)のうちの少なくとも1つを備える、項目1に記載の装置。
[項目14]
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに動作を実行させる実行可能コンピュータプログラム命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作は、
1つまたは複数のプロセッサによってサービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集することと、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定することと、
前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成することと、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させることと、
前記ハードウェアアクセラレータデバイスへ前記サービスの前記ワークロードをスケジューリングすることとを含む、非一時的コンピュータ可読記憶媒体。
[項目15]
前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、項目14に記載の非一時的コンピュータ可読記憶媒体。
[項目16]
前記動作は、前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てることの一部として、前記ハードウェアアクセラレータデバイスを認証することをさらに含む、項目14に記載の非一時的コンピュータ可読記憶媒体。
[項目17]
前記動作は、前記ハードウェアアクセラレータデバイスと、前記ハードウェアアクセラレータデバイスにワークロードをスケジューリングする前記サービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために、前記ハードウェアアクセラレータデバイスが利用するための共有秘密鍵を確立することをさらに含む、項目16に記載の非一時的コンピュータ可読記憶媒体。
[項目18]
方法であって、
1つまたは複数のプロセッサによって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集する段階と、
前記1つまたは複数のプロセッサによる前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定する段階と、
前記1つまたは複数のプロセッサによって、前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成する段階と、
前記1つまたは複数のプロセッサによって、前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させる段階と、
前記1つまたは複数のプロセッサによって、前記ハードウェアアクセラレータデバイスへ前記サービスの前記ワークロードをスケジューリングする段階とを含む、方法。
[項目19]
前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、項目18に記載の方法。
[項目20]
前記スケジューラエクステンダは、前記プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、前記クラスタノードエージェントは、前記スケーリング要求に基づいて前記クラスタの1つまたは複数のハードウェアリソースで帯域幅を構成する、項目18に記載の方法。
[他の可能な項目]
[項目1]
装置であって、
サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定し、
前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成し、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させ、
前記ハードウェアアクセラレータデバイスへ前記サービスの前記ワークロードをスケジューリングする
ための1つまたは複数のプロセッサ、を備える、装置。
[項目2]
前記メトリックは、新しいトランスポート層セキュリティ(TLS)接続の数、毎秒転送されるバイト数、前記マイクロサービス間のトラフィックパターン、または前記クラスタのハードウェアデバイスの利用率のうちの少なくとも1つを含むテレメトリデータを含む、項目1に記載の装置。
[項目3]
前記ワークロードを加速できることを識別する前記1つまたは複数のプロセッサが、前記サービスが前記ハードウェアアクセラレータデバイスにおけるスケジューリングの候補であることを示すために前記サービスに注釈を付ける前記1つまたは複数のプロセッサをさらに備え、前記注釈が、前記サービスメッシュの制御プレーンスケジューラに、前記サービスを前記ハードウェアアクセラレータデバイスへスケジューリングさせる、項目1に記載の装置。
[項目4]
前記1つまたは複数のプロセッサが、前記メトリックの前記分析に基づいて、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、暗号化アクセラレータデバイス、推論アクセラレータデバイス、または圧縮アクセラレータデバイスのうちの少なくとも1つを含む決定されたタイプの前記ハードウェアアクセラレータデバイスにオフロードすることによって、前記ワークロードを加速できると判定する、項目1に記載の装置。
[項目5]
前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、項目1に記載の装置。
[項目6]
前記1つまたは複数のプロセッサが、前記サービスメッシュの制御プレーンスケジューラの動作を拡張するためのスケジューラエクステンダ回路を備え、前記制御プレーンスケジューラが、データセンタの1つまたは複数の利用可能なハードウェアリソース上で前記サービスのワークロードをスケジューリングし、前記1つまたは複数の利用可能なハードウェアリソースが、少なくとも前記ハードウェアアクセラレータデバイスを備える、項目1に記載の装置。
[項目7]
前記1つまたは複数のプロセッサが、前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てる一部として、前記ハードウェアアクセラレータデバイスをさらに認証する、項目1に記載の装置。
[項目8]
前記1つまたは複数のプロセッサはさらに、前記ハードウェアアクセラレータデバイスが、前記ハードウェアアクセラレータデバイスと、前記ハードウェアアクセラレータデバイスへのワークロードをスケジューリングする前記サービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために利用するための共有秘密鍵を確立する、項目7に記載の装置。
[項目9]
前記1つまたは複数のプロセッサは、トラステッド実行環境(TEE)内でスケジューラエクステンダを実行して、前記スケジューラエクステンダを分離し、前記スケジューラエクステンダは、前記収集すること、前記判定すること、前記生成すること、および前記させることを実行する、項目1に記載の装置。
[項目10]
前記1つまたは複数のプロセッサは、前記ハードウェアアクセラレータの過去のパフォーマンス履歴、前記ハードウェアアクセラレータの環境条件、または前記ハードウェアアクセラレータの前記サービスに対応するサービスレベル合意(SLA)に基づいて、前記ハードウェアアクセラレータを識別する、項目1に記載の装置。
[項目11]
前記1つまたは複数のプロセッサはさらに、前記プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、前記クラスタノードエージェントは、前記スケーリング要求に基づいて前記クラスタの1つまたは複数のハードウェアリソースで帯域幅を構成する、項目1に記載の装置。
[項目12]
前記プログラマブルネットワークデバイスおよび前記ハードウェアアクセラレータデバイスは、前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内の別個のサーバデバイスの前記1つまたは複数のプロセッサから分散される、項目1に記載の装置。
[項目13]
前記プログラマブルネットワークデバイスは、インフラストラクチャ処理ユニット(IPU)またはデータ処理ユニット(DPU)のうちの少なくとも1つを備える、項目1に記載の装置。
[項目14]
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに動作を実行させる実行可能コンピュータプログラム命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作は、
1つまたは複数のプロセッサによってサービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集することと、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定することと、
前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成することと、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させることと、
前記ハードウェアアクセラレータデバイスへ前記サービスの前記ワークロードをスケジューリングすることとを含む、非一時的コンピュータ可読記憶媒体。
[項目15]
前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、項目14に記載の非一時的コンピュータ可読記憶媒体。
[項目16]
前記動作は、前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てることの一部として、前記ハードウェアアクセラレータデバイスを認証することをさらに含む、項目14に記載の非一時的コンピュータ可読記憶媒体。
[項目17]
前記動作は、前記ハードウェアアクセラレータデバイスと、前記ハードウェアアクセラレータデバイスにワークロードをスケジューリングする前記サービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために、前記ハードウェアアクセラレータデバイスが利用するための共有秘密鍵を確立することをさらに含む、項目16に記載の非一時的コンピュータ可読記憶媒体。
[項目18]
方法であって、
1つまたは複数のプロセッサによって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集する段階と、
前記1つまたは複数のプロセッサによる前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定する段階と、
前記1つまたは複数のプロセッサによって、前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成する段階と、
前記1つまたは複数のプロセッサによって、前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させて、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させる段階と、
前記1つまたは複数のプロセッサによって、前記ハードウェアアクセラレータデバイスへ前記サービスの前記ワークロードをスケジューリングする段階とを含む、方法。
[項目19]
前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、項目18に記載の方法。
[項目20]
前記スケジューラエクステンダは、前記プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、前記クラスタノードエージェントは、前記スケーリング要求に基づいて前記クラスタの1つまたは複数のハードウェアリソースで帯域幅を構成する、項目18に記載の方法。
Claims (26)
- 装置であって、
サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定し、
前記ハードウェアアクセラレータデバイスが、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てられるようにするためのスケーリング要求を生成し、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、且つ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させることを生ぜしめ、
前記ハードウェアアクセラレータデバイスに対し前記サービスの前記ワークロードをスケジューリングする
ための1つまたは複数のプロセッサ、を備える、装置。 - 前記メトリックは、新しいトランスポート層セキュリティ(TLS)接続の数、毎秒転送されるバイト数、前記マイクロサービス間のトラフィックパターン、または前記クラスタのハードウェアデバイスの利用率のうちの少なくとも1つを含むテレメトリデータを含む、請求項1に記載の装置。
- 前記ワークロードを加速できると識別する前記1つまたは複数のプロセッサが、前記サービスが前記ハードウェアアクセラレータデバイスにおけるスケジューリングの候補であることを示すために前記サービスに注釈を付ける前記1つまたは複数のプロセッサをさらに備え、前記注釈が、前記サービスメッシュの制御プレーンスケジューラに、前記サービスを前記ハードウェアアクセラレータデバイスに対しスケジューリングさせる、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサが、前記メトリックの前記分析に基づいて、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、暗号化アクセラレータデバイス、推論アクセラレータデバイス、または圧縮アクセラレータデバイスのうちの少なくとも1つを含む決定されたタイプの前記ハードウェアアクセラレータデバイスにオフロードすることによって、前記ワークロードを加速できると判定する、請求項1に記載の装置。
- 前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサが、前記サービスメッシュの制御プレーンスケジューラの動作を拡張するためのスケジューラエクステンダ回路を有し、前記制御プレーンスケジューラが、データセンタの1つまたは複数の利用可能なハードウェアリソース上で前記サービスのワークロードをスケジューリングし、前記1つまたは複数の利用可能なハードウェアリソースが、少なくとも前記ハードウェアアクセラレータデバイスを有する、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサはさらに、前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てる一部として、前記ハードウェアアクセラレータデバイスを認証する、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサはさらに、前記ハードウェアアクセラレータデバイスが、前記ハードウェアアクセラレータデバイスと、前記ハードウェアアクセラレータデバイスに対するワークロードをスケジューリングする前記サービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために利用するための共有秘密鍵を確立する、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサは、トラステッド実行環境(TEE)内でスケジューラエクステンダを実行して前記スケジューラエクステンダを分離し、前記スケジューラエクステンダは、前記収集すること、前記判定すること、前記生成すること、および前記生ぜしめることを実行する、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサは、前記ハードウェアアクセラレータデバイスの過去のパフォーマンス履歴、前記ハードウェアアクセラレータデバイスの環境条件、または前記ハードウェアアクセラレータデバイスの前記サービスに対応するサービスレベル合意(SLA)に基づいて、前記ハードウェアアクセラレータデバイスを識別する、請求項1に記載の装置。
- 前記1つまたは複数のプロセッサはさらに、前記プログラマブルネットワークデバイス上で実行されているクラスタノードエージェントと通信し、前記クラスタノードエージェントは、前記スケーリング要求に基づいて前記クラスタの1つまたは複数のハードウェアリソース上の帯域幅を構成する、請求項1に記載の装置。
- 前記プログラマブルネットワークデバイスおよび前記ハードウェアアクセラレータデバイスは、前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内の別個のサーバデバイスの前記1つまたは複数のプロセッサから分散される、請求項1に記載の装置。
- 前記プログラマブルネットワークデバイスは、インフラストラクチャ処理ユニット(IPU)またはデータ処理ユニット(DPU)のうちの少なくとも1つを備える、請求項1から12のいずれか一項に記載の装置。
- 1つまたは複数のプロセッサに、
前記1つまたは複数のプロセッサによって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集する手順と、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定する手順と、
前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成する手順と、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、且つ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させることを生ぜしめる手順と、
前記ハードウェアアクセラレータデバイスに対し前記サービスの前記ワークロードをスケジューリングする手順とを実行させるための、コンピュータプログラム。 - 前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、請求項14に記載のコンピュータプログラム。
- 前記手順は、前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てることの一部として、前記ハードウェアアクセラレータデバイスを認証することをさらに含む、請求項14に記載のコンピュータプログラム。
- 前記手順は、前記ハードウェアアクセラレータデバイスと、前記ハードウェアアクセラレータデバイスに対しワークロードをスケジューリングする前記サービスメッシュの制御プレーンスケジューラとの間のセキュアな通信のために、前記ハードウェアアクセラレータデバイスが利用するための共有秘密鍵を確立することをさらに含む、請求項14に記載のコンピュータプログラム。
- 方法であって、
1つまたは複数のプロセッサによって、サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集する段階と、
前記1つまたは複数のプロセッサによる前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定する段階と、
前記1つまたは複数のプロセッサによって、前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成する段階と、
前記1つまたは複数のプロセッサによって、前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、且つ、プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させることを生ぜしめる段階と、
前記1つまたは複数のプロセッサによって、前記ハードウェアアクセラレータデバイスに対し前記サービスの前記ワークロードをスケジューリングする段階と
を備える、方法。 - 前記スケーリング要求は、前記1つまたは複数のプロセッサおよび前記ハードウェアアクセラレータデバイスをホストするデータセンタの中央リソースオーケストレータに通信され、前記中央リソースオーケストレータは、少なくとも前記1つまたは複数のプロセッサ、前記プログラマブルネットワークデバイス、および前記ハードウェアアクセラレータデバイスをホストするデータセンタ内のハードウェアリソースのセットを管理する、請求項18に記載の方法。
- スケジューラエクステンダは、前記プログラマブルネットワークデバイスで実行されているクラスタノードエージェントと通信し、前記クラスタノードエージェントは、前記スケーリング要求に基づいて前記クラスタの1つまたは複数のハードウェアリソースで帯域幅を構成する、請求項18に記載の方法。
- プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリングを促進するためのシステムであって、
データのブロックを記憶するためのメモリと、
前記メモリに通信可能に連結されたプロセッサと
を含み、前記プロセッサは、
サービスメッシュによって管理されるサービスのマイクロサービス間の通信リンクに対応するメトリックを収集し、
前記メトリックの分析に基づいて、ハードウェアアクセラレータデバイスへのオフロードによって前記サービスのワークロードを加速できると判定し、
前記ハードウェアアクセラレータデバイスを、前記サービス用に構成されたハードウェアデバイスのクラスタに割り当てさせるためのスケーリング要求を生成し、
前記スケーリング要求を、前記ハードウェアアクセラレータデバイスを管理するプログラマブルネットワークデバイスに送信させ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記クラスタに割り当てさせ、且つ、前記プログラマブルネットワークデバイスに前記ハードウェアアクセラレータデバイスを前記サービスメッシュに登録させることを生ぜしめ、
前記ハードウェアアクセラレータデバイスに対し前記サービスの前記ワークロードをスケジューリングする、システム。 - 前記メトリックは、新しいトランスポート層セキュリティ(TLS)接続の数、毎秒転送されるバイト数、前記マイクロサービス間のトラフィックパターン、または前記クラスタのハードウェアデバイスの利用率のうちの少なくとも1つを含むテレメトリデータを含む、請求項21に記載のシステム。
- 前記ワークロードを加速できると識別する前記1つまたは複数のプロセッサが、前記サービスが前記ハードウェアアクセラレータデバイスにおけるスケジューリングの候補であることを示すために前記サービスに注釈を付ける前記1つまたは複数のプロセッサをさらに備え、前記注釈が、前記サービスメッシュの制御プレーンスケジューラに、前記サービスを前記ハードウェアアクセラレータデバイスに対しスケジューリングさせる、請求項21に記載のシステム。
- 前記1つまたは複数のプロセッサが、前記メトリックの前記分析に基づいて、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、暗号化アクセラレータデバイス、推論アクセラレータデバイス、または圧縮アクセラレータデバイスのうちの少なくとも1つを含む決定されたタイプの前記ハードウェアアクセラレータデバイスにオフロードすることによって、前記ワークロードを加速できると判定する、請求項21から23のいずれか一項に記載のシステム。
- プログラマブルネットワークデバイスを使用してメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリングを促進するための装置であって、請求項18から20のいずれか一項に記載の方法を実行するための手段を備える、装置。
- 請求項14から17のいずれか一項に記載のコンピュータプログラムを記憶した、非一時的コンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/482,155 | 2021-09-22 | ||
US17/482,155 US20220012095A1 (en) | 2021-09-22 | 2021-09-22 | Metrics and security-based accelerator service rescheduling and auto-scaling using a programmable network device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023046248A true JP2023046248A (ja) | 2023-04-03 |
Family
ID=79173655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022107779A Pending JP2023046248A (ja) | 2021-09-22 | 2022-07-04 | プログラマブルネットワークデバイスを用いたメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリング |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220012095A1 (ja) |
EP (1) | EP4155932A1 (ja) |
JP (1) | JP2023046248A (ja) |
CN (1) | CN115934307A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11797342B2 (en) * | 2018-06-20 | 2023-10-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and supporting node for supporting process scheduling in a cloud system |
US11558265B1 (en) * | 2021-12-21 | 2023-01-17 | Intel Corporation | Telemetry targeted query injection for enhanced debugging in microservices architectures |
CN117666921A (zh) * | 2022-08-23 | 2024-03-08 | 华为技术有限公司 | 数据处理方法、加速器及计算设备 |
CN116932226B (zh) * | 2023-09-14 | 2023-12-19 | 中诚华隆计算机技术有限公司 | 一种基于Chiplet的硬件加速方法和硬件加速器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11169935B2 (en) * | 2018-06-20 | 2021-11-09 | Intel Corporation | Technologies for low-latency cryptography for processor-accelerator communication |
US11216314B2 (en) * | 2018-11-02 | 2022-01-04 | EMC IP Holding Company LLC | Dynamic reallocation of resources in accelerator-as-a-service computing environment |
US11012520B2 (en) * | 2019-03-11 | 2021-05-18 | International Business Machines Corporation | Manage a network of microservices |
GB2586640B (en) * | 2019-08-30 | 2021-12-08 | Trustonic Ltd | Trusted execution environment scheduling method |
US11513842B2 (en) * | 2019-10-03 | 2022-11-29 | International Business Machines Corporation | Performance biased resource scheduling based on runtime performance |
-
2021
- 2021-09-22 US US17/482,155 patent/US20220012095A1/en active Pending
-
2022
- 2022-07-04 JP JP2022107779A patent/JP2023046248A/ja active Pending
- 2022-07-18 CN CN202210839818.7A patent/CN115934307A/zh active Pending
- 2022-07-21 EP EP22186209.7A patent/EP4155932A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4155932A1 (en) | 2023-03-29 |
US20220012095A1 (en) | 2022-01-13 |
CN115934307A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sriraman et al. | Accelerometer: Understanding acceleration opportunities for data center overheads at hyperscale | |
JP2023046248A (ja) | プログラマブルネットワークデバイスを用いたメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリング | |
CN112579193A (zh) | 在边缘环境中卸载和加载工作负载的方法和装置 | |
JP6200497B2 (ja) | 仮想マシンのフローの物理的なキューへのオフロード | |
US20120284408A1 (en) | Workload-aware placement in private heterogeneous clouds | |
US11558265B1 (en) | Telemetry targeted query injection for enhanced debugging in microservices architectures | |
US11570264B1 (en) | Provenance audit trails for microservices architectures | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
US11861406B2 (en) | Dynamic microservices allocation mechanism | |
US20220100566A1 (en) | Metrics-based scheduling for hardware accelerator resources in a service mesh environment | |
US11870669B2 (en) | At-scale telemetry using interactive matrix for deterministic microservices performance | |
EP4198739A1 (en) | Matchmaking-based enhanced debugging for microservices architectures | |
US20230136612A1 (en) | Optimizing concurrent execution using networked processing units | |
US20230195601A1 (en) | Synthetic data generation for enhanced microservice debugging in microservices architectures | |
Zhao et al. | Minimize the make-span of batched requests for FPGA pooling in cloud computing | |
US20220405104A1 (en) | Cross platform and platform agnostic accelerator remoting service | |
Kaiser et al. | Benchmarking container technologies on arm-based edge devices | |
Wu et al. | Dynamic kernel/device mapping strategies for gpu-assisted hpc systems | |
US20240232336A9 (en) | Method for definition, consumption, and controlled access of dpu resources and services | |
US20240134970A1 (en) | Method for definition, consumption, and controlled access of dpu resources and services | |
Sareen et al. | Simulation of cloud computing environment using CloudSim | |
Prahalad et al. | Phoenix: System for implementing private and hybrid cloud for OMIC sciences applications | |
Bama et al. | Heuristics aware advance reservation and scheduling (HAARS) mechanism in hybrid (Grid/Cloud) environment | |
KR20230022819A (ko) | 고장 식별을 위한 이동 데이터 | |
CN117215762A (zh) | 修改处理器性能的技术 |