WO2025009152A1 - デバイス割当制御装置、デバイス割当制御方法及びプログラム - Google Patents
デバイス割当制御装置、デバイス割当制御方法及びプログラム Download PDFInfo
- Publication number
- WO2025009152A1 WO2025009152A1 PCT/JP2023/025113 JP2023025113W WO2025009152A1 WO 2025009152 A1 WO2025009152 A1 WO 2025009152A1 JP 2023025113 W JP2023025113 W JP 2023025113W WO 2025009152 A1 WO2025009152 A1 WO 2025009152A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- container
- performance
- information
- allocated
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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]
Definitions
- the present invention relates to a device allocation control device, a device allocation control method, and a program.
- Non-Patent Document 1 a container orchestration platform with Kubernetes (Non-Patent Document 1) as the de facto standard, it is possible to assign accelerators such as GPUs, FPGAs, smart NICs (e.g., RDMA-compatible NICs), and SoCs to containers in order to offload the processing of application logic in containers to hardware and speed it up.
- accelerators such as GPUs, FPGAs, smart NICs (e.g., RDMA-compatible NICs), and SoCs
- the container control unit on the container orchestration platform has a meta plugin function (Non-Patent Document 2) that enables the allocation of various devices (hardware resources) to containers. By linking the dedicated device plugin for each device with this meta plugin function, it becomes possible to register and manage devices.
- Non-Patent Document 2 Non-Patent Document 2
- the application deployment manifest from the user is received by a scheduler (Non-Patent Document 3) in the Master node via the API server in the Master node.
- the scheduler determines the destination Worker node (physical server or virtual machine) based on the device request amount in the deployment manifest.
- the container control unit in the Worker node selects an allocatable device, and the device is allocated to the container.
- one node corresponds to one physical server or one logical server.
- worker nodes and devices with sufficient allocatable resources are determined based on the simple device request volume from the user.
- the present invention was made in consideration of the above points, and aims to make it possible to assign devices to containers in a way that satisfies the performance requirements of an application.
- the device allocation control device has a required performance receiving unit configured to receive input information indicating the required performance of an application and whether it is a performance-guaranteed type; a device allocation determination unit configured to determine the device and allocation amount to be allocated to a container that runs an application so as to minimize the cost calculated by an optimization algorithm from the allocation amount for each device, based on information indicating the configuration and topology of devices in multiple container orchestration platforms, information estimating the performance of the application, and information indicating the device assigned to a container that has already started an application and information indicating whether the application is a performance-guaranteed type, with the constraint that the required performance and the device to be assigned to a performance-guaranteed application container are not assigned to two or more containers; and a device allocation instruction unit configured to instruct the container orchestration platform related to the device assigned to the container that starts the application to allocate the device.
- FIG. 13 is a diagram for explaining allocation of devices to containers.
- 1 illustrates an example of a functional configuration of a device allocation control system according to a first embodiment
- FIG. 2 is a diagram illustrating an example of a hardware configuration of a computer that functions as a heterogeneous computing design control unit 1 according to the first embodiment
- 1 is a diagram illustrating an example of a processing procedure executed in the device allocation control system according to the first embodiment
- FIG. 13 illustrates an example of a functional configuration of a device allocation control system according to a second embodiment.
- 13 is a diagram illustrating an example of a processing procedure executed in the device allocation control system according to the second embodiment.
- optimal hardware resource design and control is performed by combining the required performance for each application with device configuration and topology configuration information.
- cooperation is performed with a transport control device management unit 3 that manages a transport device resource pool 4 such as a router or switch when the offloaded data spans multiple devices and crosses physical or logical servers.
- FIG. 2 is a diagram showing an example of the functional configuration of a device allocation control system in a first embodiment.
- each of a plurality of container orchestration platforms 2 can communicate with a heterogeneous computing design control unit 1.
- the heterogeneous computing design control unit 1 can communicate with a transport control device management unit 3.
- the transport control device management unit 3 can communicate with a transport device resource pool 4.
- the container orchestration platform 2, the heterogeneous computing design control unit 1, and the transport control device management unit 3 may be realized using the same computer. Alternatively, any one of these three may be realized using a different computer. Or, each of these three may be realized using a different computer.
- the container orchestration platform 2 is, for example, a container orchestration platform such as Kubernetes. As shown in FIG. 1, the container orchestration platform 2 includes a Master node and a Worker node. The Master node includes an API server 21. The Worker node includes one or more containers. Each node is configured on a different physical server or logical server. When each node is configured on a logical server, each node may be configured on the same physical server.
- the transport device resource pool 4 is a group of transport devices and information that is composed of resources within a network that connects physical or logical servers that are candidates for container deployment (routers or switches in the forwarding system, optical transmission devices in the transmission system, and information managed by these devices (VLAN IDs, optical wavelengths, etc.)).
- the transport control device management unit 3 manages resources (routers, switches, etc.) in the transport device resource pool 4, and performs control to provide a virtual private network between physical or logical servers when connecting devices across physical or logical servers.
- the heterogeneous computing design control unit 1 includes a required performance reception unit 11, a device information acquisition unit 12, a performance estimation model acquisition unit 13, a device allocation determination unit 14, a device information monitoring unit 15, a device allocation instruction unit 16, and a transport device control cooperation unit 17. Each of these units may be realized using the same computer, or some or all of them may be realized using different computers.
- the required performance receiving unit 11 receives an application required performance profile for one or more applications (hereinafter referred to as "target applications") that the user wishes to run on a container, and transmits the application required performance profile to the device allocation determining unit 14.
- An application required performance profile is a profile in which required performance information for one or more applications is described.
- the required performance information includes, for example, internal processing delay time, throughput, and other performance indicators specific to the application.
- the internal processing delay time is an average delay or an allowable delay (tail delay, percentile delay), etc., and which indicator is used may differ depending on the application.
- the device information acquisition unit 12 acquires information (hereinafter referred to as "device information") indicating the configuration and topology (connection relationship) of devices (hardware resources) deployed and managed in each container orchestration platform 2 from the device information storage unit 121, and transmits the acquired device information to the device allocation determination unit 14.
- the device information storage unit 121 stores device information.
- the device information includes, for example, the device type and identifier, the type and identifier of the physical or logical server on which the device is deployed, the internal topology configuration, the location of the physical or logical server, and physical or logical network connection information within or between locations.
- the performance estimation model acquisition unit 13 acquires information indicating a model for estimating each performance indicator of an application (hereinafter referred to as "model information"), which is created for each application, from the performance estimation model repository 122, and transmits the acquired model information to the device allocation determination unit 14.
- model information a model for estimating each performance indicator of an application
- the performance estimation model repository 122 stores the model information created for each application.
- the device information monitoring unit 15 acquires information (hereinafter referred to as "device usage information") on the usage of devices (hardware resources such as GPUs, FPGAs, smart NICs (e.g., RDMA-compatible NICs), and SoCs that are deployed and managed in each container orchestration platform 2) from each container orchestration platform 2, and transmits the acquired device usage information to the device allocation determination unit 14.
- the device usage information includes information indicating, for each device, whether or not the device has already been assigned to a specific container, the usage rate of the device, etc.
- the device allocation determination unit 14 determines (calculates) information including the container orchestration platform 2 on which each container (hereinafter referred to as "application container") that launches each target application is to be deployed, the physical or logical server (worker node) on which the application container is to be deployed, and the allocated device type, allocated device identifier, and allocated device quantity for each physical or logical server on which the application container is to be deployed (hereinafter referred to as "device allocation information").
- the device allocation determination unit 14 notifies the device allocation instruction unit 16 of the determined (calculated) device allocation information.
- the logic for determining (calculating) the device allocation information may be a grid search or an existing optimization algorithm.
- the device allocation determination unit 14 uses device information and model information to derive estimates of each performance index of the application related to the application container to be deployed for a large number of input patterns of allocation amounts for each device (CPU, memory, other devices, etc.) (i.e., a large number of patterns of allocation device types, allocation device identifiers, and allocation device quantities for each physical or logical server to which the device is deployed).
- the device allocation determination unit 14 uses the application required performance profile and device usage status information as constraints, and uses the cost (equipment cost and power consumption) calculated by an optimization algorithm from the allocation amount for each device (CPU, memory, other devices, etc.) as an objective function, and searches for an input pattern that minimizes the objective function while satisfying the constraints. From the optimization calculation results, multiple deployment destinations (destinations to which device control is instructed) are determined when the same application container is distributed to multiple locations (when the number of container replicas is multiple) or when multiple devices are assigned to a single application container.
- cost equipment cost and power consumption
- the device allocation determination unit 14 also instructs the transport device control cooperation unit 17 to provide a virtual private network when it has determined that multiple devices are to be assigned to a single application container and that multiple devices are to be connected across physical or logical servers (when devices assigned to a single container span multiple physical or logical servers).
- the device allocation determination unit 14 transmits device information on the connection source device and the connection destination device to the transport device control cooperation unit 17.
- devices that can be assigned to a container are not limited to devices deployed on the Worker node on which the container is started, and devices on other clusters and other Worker nodes can also be assigned. Note that if the connection between multiple devices does not span physical or logical servers, the device allocation determination unit 14 instructs the transport device control cooperation unit 17 not to provide a virtual private network.
- the device allocation instruction unit 16 instructs the API server 21 of the container orchestration platform 2 at each deployment destination to reserve and allocate the device type, device identifier, and device quantity within each target physical or logical server (Worker node managed by the container orchestration platform 2 at the deployment destination).
- the device allocation instruction unit 16 gives instructions to the API server 21 of the container orchestration platform 2 at each deployment destination.
- the transport device control liaison unit 17 instructs the transport control device management unit 3 to provide a virtual private network when connecting devices across physical or logical servers, based on instructions from the device allocation determination unit 14 (device information for the source device and destination device). At this time, the transport device control liaison unit 17 also transmits device information for the source device and destination device to the transport control device management unit 3. Based on the device information, the transport control device management unit 3 searches for a "route with the smallest delay" from among multiple candidate routes for virtual private networks connecting devices, and controls the resources in the transport device resource pool 4 to generate a virtual private network on the corresponding route.
- FIG. 3 is a diagram showing an example of the hardware configuration of a computer that functions as the heterogeneous computing design control unit 1 in the first embodiment.
- the computer 10 in FIG. 3 has a drive device 100, an auxiliary storage device 102, a memory device 103, a processor 104, and an interface device 105, which are all interconnected by a bus B.
- the program that causes the computer 10 to function as the heterogeneous computing design control unit 1 is provided by a recording medium 101 such as a CD-ROM.
- a recording medium 101 such as a CD-ROM.
- the program is installed from the recording medium 101 via the drive device 100 into the auxiliary storage device 102.
- the program does not necessarily have to be installed from the recording medium 101, but may be downloaded from another computer via a network.
- the auxiliary storage device 102 stores the installed program as well as necessary files, data, etc.
- the memory device 103 When an instruction to start a program is received, the memory device 103 reads out and stores the program from the auxiliary storage device 102.
- the processor 104 is a CPU or a GPU (Graphics Processing Unit), or a CPU and a GPU, and executes functions related to the computer 10 in accordance with the program stored in the memory device 103.
- the interface device 105 is used as an interface for connecting to a network.
- the container orchestration platform 2 and the transport control device management unit 3 may also be realized by a process in which one or more programs installed on a computer similar to the computer 10 shown in FIG. 3 are executed by the computer.
- Figure 4 is a diagram for explaining an example of the processing steps executed in the device allocation control system in the first embodiment.
- step S110 the required performance receiving unit 11 receives the application required performance profile sent from the user (or the terminal used by the user).
- the required performance receiving unit 11 transmits the application required performance profile to the device allocation determination unit 14 (S120).
- the device allocation determination unit 14 requests device information, model information, and device usage status information from each of the device information acquisition unit 12, performance estimation model acquisition unit 13, and device information monitoring unit 15.
- the device information acquisition unit 12 acquires device information from the device information storage unit 121 (S130) and transmits the device information to the device allocation determination unit 14 (S140).
- the performance estimation model acquisition unit 13 acquires model information for each application from the performance estimation model repository 122 (S150) and transmits the model information to the device allocation determination unit 14 (S160).
- the device information monitoring unit 15 acquires device usage information from each container orchestration platform 2 (S170) and transmits each acquired device usage information to the device allocation determination unit 14 (S180). Note that the device information monitoring unit 15 may constantly (for example, periodically) acquire device usage information from each container orchestration platform 2. In this case, in step S180, the device information monitoring unit 15 may transmit the device usage information last acquired from each container orchestration platform 2 to the device allocation determination unit 14.
- the device allocation determination unit 14 determines (calculates) device allocation information based on the application required performance profile, the device information, the model information, and the device information (S190).
- the device allocation information is information that includes the container orchestration platform 2 on which the application container is deployed, the physical or logical server (worker node) on which the application container is deployed, and the allocated device type, allocated device identifier, and allocated device quantity for each physical or logical server on which the application container is deployed.
- the device allocation determination unit 14 notifies the device allocation instruction unit 16 of the container orchestration platform 2 on which the application container is to be deployed, the physical or logical server (worker node) on which the application container is to be deployed, and the allocated device type, allocated device identifier, and allocated device quantity for each physical or logical server (S200).
- the device allocation determination unit 14 also instructs the transport device control cooperation unit 17 to provide a virtual private network when connecting multiple devices across physical or logical servers (when devices allocated to a container span multiple physical or logical servers) (S210).
- the device allocation instruction unit 16 instructs the API server 21 of each deployment destination container orchestration platform 2 to reserve and allocate the device type, device identifier, and device quantity in each target physical or logical server (Worker node managed by the deployment destination container orchestration platform 2) (S220).
- Each deployment destination container orchestration platform 2 executes device allocation to the deployment destination container as instructed.
- the transport device control cooperation unit 17 instructs the transport control device management unit 3 to provide a virtual private network when connecting devices across physical or logical servers, and transmits device information for the source device and destination device to the transport control device management unit 3. (S230).
- the transport control device management unit 3 searches for a "route with the smallest delay" among multiple candidate routes for a virtual private network connecting devices based on information from the transport device control cooperation unit 17, and controls resources in the transport device resource pool 4 to generate a virtual private network on the corresponding route (S240). As a result, the virtual private network is provided.
- data processing offloading may occur not only on a single device but across multiple devices, so the device configuration and topology configuration within a single physical or logical server when spanning devices, and the virtual network connection configuration between multiple physical or logical servers, can have a significant impact on performance.
- this embodiment makes it possible to allocate remote devices through on-demand transport linkage, enabling flexible application deployment that is not restricted to local devices within a specific domain (cluster or server). This makes it possible to reduce equipment costs by quickly deploying applications in resource-poor environments such as edge environments.
- the actual usage cannot be grasped on the remote container orchestration platform 2.
- the information sent from the container orchestration platform 2 to the device information monitoring unit 15 contains only simple metrics related to device usage (GPU usage rate, etc.), and it is not possible to grasp the allocation destination of each metric (i.e., which application container is using the device to what extent).
- FIG. 5 is a diagram showing an example of the functional configuration of a device allocation control system in the second embodiment.
- the same parts as in FIG. 2 are given the same reference numerals, and their explanations are omitted.
- the heterogeneous computing design control unit 1 further includes a device usage information management unit 18.
- the device usage information management unit 18 records in the device usage information storage unit 123 the device allocation information determined (calculated) by the device allocation determination unit 14 (information including the container orchestration platform 2 on which the application container is deployed, the physical or logical server (worker node) on which the application container is deployed, and the allocated device type, allocated device identifier, and allocated device quantity for each physical or logical server), device usage status information that has changed due to the execution of device allocation based on the device allocation information, and device information used in determining (calculating) the device allocation information (hereinafter referred to as "device usage information"). However, the device information does not have to be included in the device usage information.
- the device allocation information and device usage status information of the device usage information are used by the device allocation determination unit 14 to determine (calculate) the device allocation information when a new application required performance profile is input.
- FIG. 6 is a diagram for explaining an example of a processing procedure executed in the device allocation control system in the second embodiment.
- the same steps as those in FIG. 4 are given the same step numbers, and their explanations will be omitted as appropriate.
- the required performance information (input information) included in the application required performance profile for each application further includes information indicating whether the application is a performance guaranteed type or a non-performance guaranteed type (best effort type) (hereinafter referred to as "performance guaranteed information").
- step S250 is executed.
- the device allocation determination unit 14 notifies the device usage information management unit 18 of the same device allocation information (information including the container orchestration platform 2 on which the application container is deployed, the physical or logical server (worker node) on which the application container is deployed, and the allocated device type, allocated device identifier, and allocated device quantity for each physical or logical server) that was notified to the device allocation instruction unit 16 in step S200, and the device information acquired in step S140.
- the device allocation information further includes performance guarantee information of the application related to the application container to which the device is allocated. The performance guarantee information can be identified by the device allocation determination unit 14 based on the application required performance profile.
- the device usage information management unit 18 requests the device information monitoring unit 15 to acquire device usage information (metrics related to the use of each device).
- the device information monitoring unit 15 acquires device usage information from each container orchestration platform 2 (S251) and transmits the acquired device usage information to the device usage information management unit 18 (S252).
- the device information monitoring unit 15 may constantly (for example, periodically) acquire device usage information from each container orchestration platform 2. In this case, the device information monitoring unit 15 may transmit the device usage information last acquired from each container orchestration platform 2 to the device usage information management unit 18 in step S252.
- the device usage information management unit 18 stores in the device usage information storage unit 123 the device usage information including the device allocation information and device information notified in step S250 in association with the device usage information received in step S252 (S253).
- the device usage information is the device usage information after the device allocation based on the device allocation information (S220) is reflected.
- the device information is the device information used to calculate the device allocation information.
- steps S110 and S120 are executed in the same manner as in FIG. 4.
- the application required performance profile also includes performance guarantee information from the second time onwards.
- the device allocation determination unit 14 When the device allocation determination unit 14 receives the application required performance profile, it requests device information, model information, and device usage information from the device information acquisition unit 12, performance estimation model acquisition unit 13, and device usage information management unit 18, respectively. That is, in the second embodiment, instead of requesting device usage status information from the device information monitoring unit 15, device usage information is requested from the device usage information management unit 18. This is because the device usage information includes device usage status information, and therefore there is no need to obtain information from the device information monitoring unit 15.
- the device information acquisition unit 12 acquires device information from the device information storage unit 121 (S130) and transmits the device information to the device allocation determination unit 14 (S140).
- the performance estimation model acquisition unit 13 transmits model information for each application to the device allocation determination unit 14, as in the first embodiment (S150, S160).
- the device utilization information management unit 18 acquires from the device utilization information storage unit 123 the device allocation information of all device utilization information that has been saved (stored) in the device utilization information storage unit 123 so far, and the device usage status information of the most recently saved device utilization information (S181), and transmits the acquired information to the device allocation determination unit 14 (S182).
- the device allocation determination unit 14 determines (calculates) device allocation information based on the application required performance profile, the device allocation information and device usage information acquired in step S182, and the model information (S190).
- the difference from the first embodiment is that the device allocation information reflected in the container orchestration platform 2, which is included in the device usage information, is added as input information for the device allocation determination unit 14.
- the logic executed by the device allocation determination unit 14 is basically the same as that of the first embodiment, but differs from the first embodiment in that the device allocation information included in the device usage information is taken into consideration.
- the device allocation information indicates to what extent each application container is using which device on which container orchestration platform 2, and includes performance guarantee information (performance guaranteed type or performance non-guaranteed type (best effort type)) of the application related to each application container. Therefore, according to the device allocation information, it is possible to know whether the application started in the application container to which the existing allocation destination to which the device has already been allocated is a performance guaranteed type application or a performance non-guaranteed type application. Therefore, the device allocation determination unit 14 determines (calculates) the device allocation information by dedicating the device to the application container related to the performance guaranteed type application and allowing the same device to be shared in a time-sharing manner between the non-performance guaranteed type application containers.
- the device allocation determination unit 14 uses device information and model information to derive estimates of each performance indicator of the application related to the application container to be deployed for a large number of input patterns of allocation amounts for each device (CPU, memory, other devices, etc.) (i.e., a large number of patterns of allocated device types, allocated device identifiers, and allocated device quantities for each physical or logical server to which the device is deployed).
- the device allocation determination unit 14 determines (calculates) device allocation information by searching for an input pattern that minimizes the objective function while satisfying the constraint conditions, using the cost (equipment cost and power consumption) calculated by an optimization algorithm from the allocation amount for each device (CPU, memory, other devices, etc.) as an objective function for each derived performance estimate, in addition to the application required performance profile and device usage status information, and with the constraint that a device to be allocated to a performance-guaranteed application container is not allocated to more than two containers (even if there is a surplus of resources).
- steps S200 to S240 are executed as in the first embodiment.
- step S250 is also executed as described above, and steps S251 to S253 are executed in accordance with step S250.
- the device usage information stored in the device usage information storage unit 123 reflects the current device allocation information.
- the second embodiment when determining which devices to assign to a new application container, it is possible to take into account the device usage status of existing application containers to which devices are already assigned. As a result, it is possible to assign devices to containers so as to meet the performance requirements of the new application with greater accuracy.
- the computer 10 functioning as the heterogeneous computing design control unit 1 is an example of a device allocation control device.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
アプリケーションの要求性能と性能保証型であるか否かとを示す入力情報を受け付け、複数のコンテナ・オーケストレーション基盤におけるデバイスの構成及びトポロジを示す情報、アプリケーションの性能を推定する情報、及び既にアプリケーションを起動しているコンテナに割り当てられているデバイスと当該アプリケーションが性能保証型であるか否かとを示す情報に基づいて、デバイスそれぞれの使用状況を示す情報、及び性能保証型のアプリケーション・コンテナに割り当てるデバイスは2以上のコンテナに割り当てないということを制約条件として、デバイスごとの割当量から最適化アルゴリズムによって算出されるコストを最小化するように、アプリケーションを起動するコンテナに割り当てるデバイス及び割当量を決定し、当該コンテナに対して割り当てられるデバイスに係るコンテナ・オーケストレーション基盤に対し、当該デバイスの割り当てを指示する。
Description
本発明は、デバイス割当制御装置、デバイス割当制御方法及びプログラムに関する。
Kubernetes(非特許文献1)をデファクト・スタンダードとするコンテナ・オーケストレーション基盤上では、コンテナ内のアプリケーションロジックの処理をハードウェア上にオフロードして高速化するため、GPU、FPGA、スマートNIC(例えば、RDMA対応NIC)、及びSoCのようなアクセラレータのコンテナへの割り当てが可能になっている。
コンテナ・オーケストレーション基盤上のコンテナ制御部は、コンテナへの様々なデバイス(ハードウェアリソース)の割り当てを可能とするメタプラグイン機能(非特許文献2)を有する。デバイス毎の専用のデバイス・プラグインをこのメタプラグイン機能と連携させることで、デバイスの登録及び管理が可能となる。
コンテナにデバイスを割り当てる際には、図1に示されるように、ユーザからのアプリケーションのデプロイマニフェストをMasterノード内のAPIサーバを経由して当該Masterノード内のスケジューラ(非特許文献3)が受信する。スケジューラは、デプロイマニフェスト中のデバイスの要求量に基づき、割り当て先のWorkerノード(物理サーバ又は仮想マシン)を決定する。当該Workerノード内のコンテナ制御部は割り当て可能なデバイスを選択し、コンテナへのデバイスの割り当てが実行される。
なお、1つのノード(Masterノード又はWorkerノード)は、1つの物理サーバ又は1つの論理サーバに相当する。
"What is Kubernetes, Kubernetes"、[online]、インターネット<URL:https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/>
"Device Plugins, Kubernetes"、[online]、インターネット<URL:https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/>
"Kubernetes Scheduler, Kubernetes"、[online]、インターネット<URL:https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/>
CUDA、"Developing a Linux Kernel Module using GPUDirect RDMA"、[online]、インターネット<URL:https://docs.nvidia.com/cuda/gpudirect-rdma/>
現行のコンテナへのデバイスのスケジューリング方式では、ユーザからの単純なデバイスの要求量に基づき、割り当て可能なリソース量に余裕のあるWorkerノード及びデバイス(ハードウェアリソース)が決定されている。
今後は、5Gの発展などにより、ハードウェアリソースが潤沢なクラウド上のみならず、エッジ上でのアプリケーションの展開が想定される。したがって、コンテナに対して、アプリケーションの要求性能を満たす適切なデバイス(ハードウェアリソース)の割り当てが課題となる。
本発明は、上記の点に鑑みてなされたものであって、アプリケーションの要求性能を満たすようにコンテナに対してデバイスを割り当てることを可能とすることを目的とする。
そこで上記課題を解決するため、デバイス割当制御装置は、アプリケーションの要求性能と性能保証型であるか否かとを示す入力情報を受け付けるように構成されている要求性能受付部と、複数のコンテナ・オーケストレーション基盤におけるデバイスの構成及びトポロジを示す情報、前記アプリケーションの性能を推定する情報、及び既にアプリケーションを起動しているコンテナに割り当てられている前記デバイスと当該アプリケーションが性能保証型であるか否かとを示す情報に基づいて、前記デバイスそれぞれの使用状況を示す情報、及び前記要求性能及び性能保証型のアプリケーション・コンテナに割り当てるデバイスは2以上のコンテナに割り当てないということを制約条件として、デバイスごとの割当量から最適化アルゴリズムによって算出されるコストを最小化するように、前記アプリケーションを起動するコンテナに割り当てる前記デバイス及び割当量を決定するように構成されているデバイス割当決定部と、前記アプリケーションを起動するコンテナに対して割り当てられる前記デバイスに係るコンテナ・オーケストレーション基盤に対し、当該デバイスの割り当てを指示するように構成されているデバイス割当指示部と、を有する。
アプリケーションの要求性能を満たすようにコンテナに対してデバイスを割り当てることを可能とすることができる。
本実施の形態では、アプリケーションごとの要求性能とデバイス構成及びトポロジ構成情報を組み合わせた最適なハードウェアリソース設計及び制御が行われる。また、トランスポート装置制御連携部17を構築することで、オフロードされたデータが複数デバイス間を跨ぎ、かつ、物理又は論理サーバ間を越える場合に、ルータ又はスイッチ等のトランスポート装置リソースプール4を管理するトランスポート制御装置管理部3との連携が行われる。
以下、図面に基づいて本発明の実施の形態を説明する。図2は、第1の実施の形態におけるデバイス割当制御システムの機能構成例を示す図である。図2において、複数のコンテナ・オーケストレーション基盤2のそれぞれは、ヘテロジニアス・コンピューティング設計制御部1と通信可能である。ヘテロジニアス・コンピューティング設計制御部1は、トランスポート制御装置管理部3と通信可能である。トランスポート制御装置管理部3は、トランスポート装置リソースプール4と通信可能である。
なお、コンテナ・オーケストレーション基盤2、ヘテロジニアス・コンピューティング設計制御部1及びトランスポート制御装置管理部3は、同じコンピュータを用いて実現されてもよい。又は、これら3つのうちのいずれか一つが異なるコンピュータを用いて実現されてもよい。又は、これら3つのそれぞれが異なるコンピュータを用いて実現されてもよい。
コンテナ・オーケストレーション基盤2は、例えば、Kubernetesを例とするようなコンテナ・オーケストレーション基盤である。コンテナ・オーケストレーション基盤2は、図1に示したように、Masterノード及びWorkerノードを含む。Masteノードは、APIサーバ21を含む。Workerノードは、1以上のコンテナを含む。各ノードのそれぞれは、異なる物理サーバ又は論理サーバ上に構成される。各ノードが論理サーバ上に構成される場合、各ノードは同じ物理サーバ上に構成されてもよい。
トランスポート装置リソースプール4は、コンテナの配備先の候補としての物理又は論理サーバ間を接続するネットワーク内のリソース(転送系のルータ又はスイッチ、伝送系の光伝送装置、及びそれら装置が管理する情報(VLAN IDや光波長等))で構成されるトランスポート装置及び情報群である。
トランスポート制御装置管理部3は、トランスポート装置リソースプール4内のリソース(ルータやスイッチ等)を管理し、物理又は論理サーバ間を跨いでデバイス間を接続する場合の、物理又は論理サーバ間の仮想専用ネットワークを提供するための制御を行う。
ヘテロジニアス・コンピューティング設計制御部1は、要求性能受付部11、デバイス情報取得部12、性能推定モデル取得部13、デバイス割当決定部14、デバイス情報監視部15、デバイス割当指示部16、トランスポート装置制御連携部17含む。これら各部は、同じコンピュータを用いて実現されてもよいし、一部又は全部が異なるコンピュータを用いて実現されてもよい。
要求性能受付部11は、ユーザがコンテナ上で実行させたい1以上のアプリケーション(以下、「対象アプリケーション」という。)に関するアプリケーション要求性能プロファイルを受け付け、当該のアプリケーション要求性能プロファイルをデバイス割当決定部14に送信する。アプリケーション要求性能プロファイルとは、1以上のアプリケーションごとの要求性能情報が記載されたプロファイルをいう。要求性能情報は、例えば、内部処理遅延時間、スループット、及びその他アプリ固有の性能指標を含む。内部処理遅延時間は、平均遅延や許容遅延(Tail遅延、パーセンタイル遅延)等であり、いずれの指標であるかについてはアプリケーションごとに異なってもよい。
デバイス情報取得部12は、デバイス割当決定部14からの要求に応じ、各コンテナ・オーケストレーション基盤2において配備及び管理されているデバイス(ハードウェアリソース)の構成やトポロジ(接続関係)を示す情報(以下、「デバイス情報」という。)をデバイス情報記憶部121から取得して、取得したデバイス情報をデバイス割当決定部14に送信する。デバイス情報記憶部121は、デバイス情報を記憶する。デバイス情報は、例えば、デバイス種別及び識別子、デバイスを配備した物理又は論理サーバの種別及び識別子、内部トポロジ構成、物理又は論理サーバの配置拠点、拠点内又は拠点間の物理又は論理ネットワーク接続情報を含む。
性能推定モデル取得部13は、デバイス割当決定部14からの要求に応じ、アプリケーションごとに作成された、アプリケーションの各性能指標を推定するモデルを示す情報(以下、「モデル情報」という。)を性能推定モデルリポジトリ122から取得して、取得したモデル情報をデバイス割当決定部14に送信する。性能推定モデルリポジトリ122は、アプリケーションごとに作成されたモデル情報を記憶する。
デバイス情報監視部15は、デバイス割当決定部14からの要求に応じ、各コンテナ・オーケストレーション基盤2において配備及び管理されているデバイス(各Workerノードにおいて配備及び管理されている、GPU、FPGA、スマートNIC(例えば、RDMA対応NIC)、及びSoC等のハードウェアリソース)の使用状況に関する情報(以下、「デバイス使用状況情報」という。)を各コンテナ・オーケストレーション基盤2から取得し、取得したデバイス使用状況情報をデバイス割当決定部14に送信する。なお、デバイス使用状況情報とは、デバイスごとに、当該デバイスが特定のコンテナに既に割り当てられているか否かを示す情報や、当該デバイスの使用率等を含む情報である。
デバイス割当決定部14は、要求性能受付部11、デバイス情報取得部12、性能推定モデル取得部13及びデバイス情報監視部15から取得した情報に基づいて、各対象アプリケーションを起動する各コンテナ(以下、「アプリケーション・コンテナ」という。)の配備先のコンテナ・オーケストレーション基盤2と、アプリケーション・コンテナの配備先の物理又は論理サーバ(Workerノード)と、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量とを含む情報(以下、「デバイス割当情報」という。)を決定(計算)する。デバイス割当決定部14は、決定(計算)したデバイス割当情報をデバイス割当指示部16へ通知する。
デバイス割当情報を決定(計算)するためのロジックについては、グリッドサーチ又は既存の最適化アルゴリズムを利用することが考えられる。一例として、デバイス割当決定部14は、デバイス情報及びモデル情報を用いて、デバイス(CPU、メモリ、その他デバイス等)ごとの割当量の大量の入力パターン(すなわち、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量の大量のパターン)について、配備対象のアプリケーション・コンテナに係るアプリケーションの各性能指標の推定値を導出する。デバイス割当決定部14は、導出した各性能推定値に対して、アプリケーション要求性能プロファイルやデバイス使用状況情報を制約条件として、デバイス(CPU、メモリ、その他デバイス等)ごとの割当量から最適化アルゴリズムによって算出されるコスト(設備コストや電力消費量)を目的関数として、当該制約条件を満たしつつ当該目的関数を最小化する入力パターンを探索する。最適化計算結果から、同一のアプリケーション・コンテナを複数拠点に分散配備する場合(コンテナのレプリカ数が複数の場合)や、単一アプリケーション・コンテナに複数のデバイスを割り当てる場合、複数の配備先(デバイス制御を指示する先)が決定される。
デバイス割当決定部14は、また、単一のアプリケーション・コンテナに複数のデバイスを割り当て、かつ、物理又は論理サーバ間を跨いで複数デバイス間を接続することを決定した場合(単一のコンテナに割り当てられるデバイスが複数の物理又は論理サーバに跨がる場合)に仮想専用ネットワークの提供をトランスポート装置制御連携部17に指示する。デバイス割当決定部14は、トランスポート装置制御連携部17への指示に際し、接続元のデバイス及び接続先のデバイスのそれぞれのデバイス情報をトランスポート装置制御連携部17へ送信する。本実施の形態では、コンテナに割り当て可能なデバイスは、当該コンテナが起動したWorkerノード上に配備されるデバイスに制限されず、他クラスタ及び他Workerノード上のデバイスも割り当て可能である。なお、複数デバイス間の接続が物理又は論理サーバ間を跨がない場合、デバイス割当決定部14は、仮想専用ネットワークを提供しないことをトランスポート装置制御連携部17に指示する。
デバイス割当指示部16は、デバイス割当決定部14にからの通知に基づき、各配備先のコンテナ・オーケストレーション基盤2のAPIサーバ21に対し、対象の各物理又は論理サーバ(配備先のコンテナ・オーケストレーション基盤2が管理するWorkerノード)内のデバイス種別、デバイス識別子及びデバイス数量についての予約及び割り当てを指示する。同一アプリケーション・コンテナを複数拠点に分散配備する場合(コンテナのレプリカ数が複数の場合)や、単一アプリケーション・コンテナに複数のデバイスを割り当てる場合、デバイス割当指示部16は、各配備先のコンテナ・オーケストレーション基盤2のAPIサーバ21に対して指示を行う。
トランスポート装置制御連携部17は、デバイス割当決定部14からの指示(接続元のデバイス及び接続先のデバイスのそれぞれのデバイス情報)に基づき、物理又は論理サーバ間を跨いでデバイス間を接続する場合の仮想専用ネットワークの提供をトランスポート制御装置管理部3に指示する。この際、トランスポート装置制御連携部17は、トランスポート制御装置管理部3に対して、接続元のデバイス及び接続先のデバイスのそれぞれのデバイス情報を併せて送信する。トランスポート制御装置管理部3は、当該デバイス情報に基づき、デバイス間を接続する複数の仮想専用ネットワークの経路候補のうち、「遅延が最小になる経路」を探索し、該当する経路で仮想専用ネットワークを生成するよう、トランスポート装置リソースプール4内のリソースを制御する。
図3は、第1の実施の形態におけるヘテロジニアス・コンピューティング設計制御部1として機能するコンピュータのハードウェア構成例を示す図である。図3のコンピュータ10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、プロセッサ104、及びインタフェース装置105等を有する。
コンピュータ10をヘテロジニアス・コンピューティング設計制御部1として機能させるプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。プロセッサ104は、CPU若しくはGPU(Graphics Processing Unit)、又はCPU及びGPUであり、メモリ装置103に格納されたプログラムに従ってコンピュータ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、コンテナ・オーケストレーション基盤2やトランスポート制御装置管理部3も、図3に示されるコンピュータ10と同様のコンピュータにインストールされた1以上のプログラムが当該コンピュータに実行させる処理によって実現されてもよい。
以下、デバイス割当制御システムにおいて実行される処理手順について説明する。図4は、第1の実施の形態におけるデバイス割当制御システムにおいて実行される処理手順の一例を説明するための図である。
ステップS110において、要求性能受付部11は、ユーザ(が利用する端末)から送信されたアプリケーション要求性能プロファイルを受信する。
続いて、要求性能受付部11は、当該アプリケーション要求性能プロファイルをデバイス割当決定部14に送信する(S120)。デバイス割当決定部14は、当該アプリケーション要求性能プロファイルを受信すると、デバイス情報取得部12、性能推定モデル取得部13、デバイス情報監視部15のそれぞれに対し、デバイス情報、モデル情報、デバイス使用状況情報を要求する。
デバイス情報取得部12は、デバイス割当決定部14からの要求に応じ、デバイス情報をデバイス情報記憶部121から取得し(S130)、当該デバイス情報をデバイス割当決定部14に送信する(S140)。
性能推定モデル取得部13は、デバイス割当決定部14からの要求に応じ、アプリケーションごとのモデル情報を性能推定モデルリポジトリ122から取得して(S150)、当該モデル情報をデバイス割当決定部14に送信する(S160)。
デバイス情報監視部15は、デバイス割当決定部14からの要求に応じ、デバイス使用状況情報を各コンテナ・オーケストレーション基盤2から取得し(S170)、取得した各デバイス使用状況情報をデバイス割当決定部14に送信する(S180)。なお、デバイス情報監視部15は、常時(例えば、定期的に)デバイス使用状況情報を各コンテナ・オーケストレーション基盤2から取得していてもよい。この場合、ステップS180において、デバイス情報監視部15は、各コンテナ・オーケストレーション基盤2から最後に取得したデバイス使用状況情報をデバイス割当決定部14に送信してもよい。
続いて、デバイス割当決定部14は、アプリケーション要求性能プロファイル、デバイス情報、モデル情報及びデバイス情報に基づいて、デバイス割当情報を決定(計算)する(S190)。デバイス割当情報とは、上記したように、アプリケーション・コンテナの配備先のコンテナ・オーケストレーション基盤2と、アプリケーション・コンテナの配備先の物理又は論理サーバ(Workerノード)と、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量とを含む情報である。
続いて、デバイス割当決定部14は、アプリケーション・コンテナの配備先のコンテナ・オーケストレーション基盤2と、アプリケーション・コンテナの配備先の物理又は論理サーバ(Workerノード)と、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量とをデバイス割当指示部16へ通知する(S200)。デバイス割当決定部14は、また、物理又は論理サーバ間を跨いで複数デバイス間を接続する場合(コンテナに割り当てられるデバイスが複数の物理又は論理サーバに跨がる場合)に、仮想専用ネットワークの提供をトランスポート装置制御連携部17に指示する(S210)。
デバイス割当指示部16は、デバイス割当決定部14からの通知に基づき、各配備先のコンテナ・オーケストレーション基盤2のAPIサーバ21に、対象の各物理又は論理サーバ(配備先のコンテナ・オーケストレーション基盤2が管理するWorkerノード)内のデバイス種別、デバイス識別子及びデバイス数量についての予約及び割り当てを指示する(S220)。各配備先のコンテナ・オーケストレーション基盤2は、指示通りに配備先のコンテナに対してデバイスの割り当てを実行する。
トランスポート装置制御連携部17は、デバイス割当決定部14からの指示(接続元のデバイス及び接続先のデバイスのそれぞれのデバイス情報)に基づき、物理又は論理サーバ間を跨いでデバイス間を接続する場合の仮想専用ネットワークの提供をトランスポート制御装置管理部3に指示すると共に、接続元のデバイス及び接続先のデバイスのそれぞれのデバイス情報をトランスポート制御装置管理部3へ送信する。(S230)。
続いて、トランスポート制御装置管理部3は、トランスポート装置制御連携部17からの情報に基づき、デバイス間を接続する複数の仮想専用ネットワークの経路候補のうち、「遅延が最小になる経路」を探索し、該当する経路で仮想専用ネットワークを生成するよう、トランスポート装置リソースプール4内のリソースを制御する(S240)。その結果、当該仮想専用ネットワークが提供される。
上述したように、第1の実施の形態によれば、デバイス構成・トポロジ構成情報等を活用することで、アプリケーションの要求性能End-to-Endの性能要件)を満たすようにコンテナに対してデバイスを割り当てることを可能とすることができる。
なお、ユースケースやアプリケーションによっては、単一のデバイスのみならず、複数のデバイスに跨ってデータ処理のオフロードが発生する場合があるため、デバイス間を跨ぐ際の単一の物理又は論理サーバ内のデバイス構成及びトポロジ構成や、複数の物理又は論理サーバ間の仮想ネットワーク接続構成が性能に大きな影響を与えるようになる。
このような問題に対し、本実施の形態によれば、オンデマンドなトランスポート連携により、リモート・デバイスが割り当て可能となることで、特定ドメイン(クラスタ又はサーバ)内のローカルデバイスに制限されることのない、柔軟なアプリケーションの展開を可能にすることができる。これにより、エッジ環境のようなリソースの乏しい環境に迅速にアプリケーションを展開することで、設備コストを削減することができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第1の実施の形態において、アプリケーション・コンテナが遠隔のコンテナ・オーケストレーション基盤2上で登録・管理されているデバイスを利用する場合(例えば、遠隔のNVIDIA社GPUに対してGPUDirect RDMA(非特許文献4)を使用してデータを直接送信し、遠隔GPU上で処理を実行する場合等)には、当該遠隔のコンテナ・オーケストレーション基盤2上でその利用の実態を把握することができない。具体的には、当該コンテナ・オーケストレーション基盤2上から、デバイス情報監視部15に対して送信される情報には、単純なデバイス使用に関するメトリクス(GPU使用率等)のみであり、各メトリクスの割当先(つまり、どのアプリケーション・コンテナによりそのデバイスがどの程度使用されているか)を把握できない。したがって。例えば、性能保証型で物理リソースの専有化を求めるアプリケーションに係るアプリケーション・コンテナに対して既に或るデバイスが割り当てられている場合、当該デバイスのリソースに余裕があったとしても、当該アプリケーションの性能を保証するために、他のアプリケーションに対して当該デバイスを割り当てないようにする、といった制御を行うのは困難である。
第2の実施の形態では、このような課題を解決した例について説明する。
図5は、第2の実施の形態におけるデバイス割当制御システムの機能構成例を示す図である。図5中、図2と同一部分には同一符号を付し、その説明は省略する。
図5において、ヘテロジニアス・コンピューティング設計制御部1は、更に、デバイス利用情報管理部18を有する。
デバイス利用情報管理部18は、デバイス割当決定部14が決定(計算)したデバイス割当情報(アプリケーション・コンテナの配備先のコンテナ・オーケストレーション基盤2と、アプリケーション・コンテナの配備先の物理又は論理サーバ(Workerノード)と、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量を含む情報)と、当該デバイス割当情報に基づくデバイスの割り当ての実行によって変化したデバイス使用状況情報と、当該デバイス割当情報の決定(計算)に利用されたデバイス情報とが関連付けられた情報(以下、「デバイス利用情報」という。)をデバイス利用情報記憶部123に記録する。但し、デバイス情報は、デバイス利用情報に含められなくてもよい。デバイス利用情報のうちのデバイス割当情報及びデバイス使用状況情報は、新たなアプリケーション要求性能プロファイルが入力された際に、デバイス割当決定部14がデバイス割当情報を決定(計算)するために利用される。
図6は、第2の実施の形態におけるデバイス割当制御システムにおいて実行される処理手順の一例を説明するための図である。図6中、図4と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
まず、デバイス割当制御システムの運用開始後の最初のアプリケーション要求性能プロファイルの入力時には、第1の実施の形態において説明したステップS110~S240が実行される。但し、第2の実施の形態において、アプリケーション要求性能プロファイルがアプリケーションごとに含む要求性能情報(入力情報)は、更に、当該アプリケーションが性能保証型であるか性能非保証型(ベストエフォート型)を示す情報(以下、「性能保証情報」という。)を含む。
また、ステップS240の実行により仮想専用ネットワークが提供された後でステップS250が実行される。ステップS250において、デバイス割当決定部14は、ステップS200においてデバイス割当指示部16へ通知したデバイス割当情報と同じデバイス割当情報(アプリケーション・コンテナの配備先のコンテナ・オーケストレーション基盤2と、アプリケーション・コンテナの配備先の物理又は論理サーバ(Workerノード)と、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量とを含む情報)と、ステップS140において取得したデバイス情報とをデバイス利用情報管理部18へ通知する。デバイス割当情報は、更に、デバイスが割り当てられたアプリケーション・コンテナに係るアプリケーションの性能保証情報をも含む。当該性能保証情報は、アプリケーション要求性能プロファイルに基づいてデバイス割当決定部14が特定可能である。
ステップS250に応じ、デバイス利用情報管理部18は、デバイス情報監視部15に対してデバイス使用状況情報(各デバイス使用に関するメトリクス)の取得を要求する。デバイス情報監視部15は、デバイス利用情報管理部18からの要求に応じ、デバイス使用状況情報を各コンテナ・オーケストレーション基盤2から取得し(S251)、取得した各デバイス使用状況情報をデバイス利用情報管理部18に送信する(S252)。第1の実施の形態のステップS170及びS180において説明したように、デバイス情報監視部15は、常時(例えば、定期的に)デバイス使用状況情報を各コンテナ・オーケストレーション基盤2から取得していてもよい。この場合、デバイス情報監視部15は、各コンテナ・オーケストレーション基盤2から最後に取得したデバイス使用状況情報をステップS252においてデバイス利用情報管理部18に送信してもよい。
続いて、デバイス利用情報管理部18は、ステップS250において通知されたデバイス割当情報及びデバイス情報と、ステップS252において受信したデバイス使用状況情報とを関連付けて含むデバイス利用情報をデバイス利用情報記憶部123に保存する(S253)。当該デバイス使用状況情報は、当該デバイス割当情報に基づくデバイス割当(S220)が反映された後のデバイス使用状況情報である。当該デバイス情報は、当該デバイス割当情報の計算に利用されたデバイス情報である。
次に、アプリケーション要求性能プロファイルの2回目以降の入力時について図6を参照しつつ説明する。この場合、ステップS110及びS120は、図4と同様に実行される。なお、アプリケーション要求性能プロファイルが性能保証情報を含むのは2回目以降においても同様である。
デバイス割当決定部14は、当該アプリケーション要求性能プロファイルを受信すると、デバイス情報取得部12、性能推定モデル取得部13、デバイス利用情報管理部18のそれぞれに対し、デバイス情報、モデル情報、デバイス利用情報を要求する。すなわち、第2の実施の形態では、デバイス情報監視部15に対してデバイス使用状況情報が要求される代わりに、デバイス利用情報管理部18に対してデバイス利用情報が要求される。デバイス利用情報は、デバイス使用状況情報をも含むため、デバイス情報監視部15からの情報の取得は不要だからである。
デバイス情報取得部12は、デバイス割当決定部14からの要求に応じ、デバイス情報をデバイス情報記憶部121から取得し(S130)、当該デバイス情報をデバイス割当決定部14に送信する(S140)。
性能推定モデル取得部13は、デバイス割当決定部14からの要求に応じ、第1の実施の形態と同様に、アプリケーションごとのモデル情報をデバイス割当決定部14に送信する(S150、S160)。
デバイス利用情報管理部18は、デバイス割当決定部14からの要求に応じ、これまでにデバイス利用情報記憶部123に保存(記憶)した全てのデバイス利用情報のデバイス割当情報と、最後に保存したデバイス利用情報のデバイス使用状況情報とをデバイス利用情報記憶部123から取得し(S181)、取得した情報をデバイス割当決定部14に送信する(S182)。
続いて、デバイス割当決定部14は、アプリケーション要求性能プロファイル、ステップS182において取得したデバイス割当情報及びデバイス使用状況情報、並びにモデル情報に基づいて、デバイス割当情報を決定(計算)する(S190)。第1の実施の形態と異なる点は、デバイス利用情報が含む、コンテナ・オーケストレーション基盤2へ反映済みのデバイス割当情報がデバイス割当決定部14に対する入力情報として追加される点である。
デバイス割当決定部14が実行するロジックは、基本的には第1の実施の形態と同様であるが、デバイス利用情報が含むデバイス割当情報が考慮される点が第1の実施の形態と異なる。デバイス割当情報は、各アプリケーション・コンテナがどのコンテナ・オーケストレーション基盤2上のどのデバイスをどの程度利用しているかを示すとともに、各アプリケーション・コンテナに係るアプリケーションの性能保証情報(性能保証型又は性能非保証型(ベストエフォート型))を含む情報である。したがって、当該デバイス割当情報によれば、既にデバイスが割り当てられた既存の割当先がアプリケーション・コンテナにおいて起動されているアプリケーションが、性能保証型及び性能非保証型のいずれのアプリケーションであるかが分かる。そこで、デバイス割当決定部14は、性能保証型のアプリケーションに係るアプリケーション・コンテナにはデバイスを専有化させ、性能非保証型のアプリケーション・コンテナ間では同一のデバイスを時分割でシェアすることを許容して、デバイス割当情報を決定(計算)する。
例えば、デバイス割当決定部14は、デバイス情報及びモデル情報を用いて、デバイス(CPU、メモリ、その他デバイス等)ごとの割当量の大量の入力パターン(すなわち、配備先の物理又は論理サーバごとの割当デバイス種別、割当デバイス識別子及び割当デバイス数量の大量のパターン)について、配備対象のアプリケーション・コンテナに係るアプリケーションの各性能指標の推定値を導出する。デバイス割当決定部14は、導出した各性能推定値に対して、アプリケーション要求性能プロファイル及びデバイス使用状況情報に加えて、性能保証型のアプリケーション・コンテナに割り当てるデバイスは(リソースに余剰が有ったとしても)2以上のコンテナに割り当てないということを制約条件として、デバイス(CPU、メモリ、その他デバイス等)ごとの割当量から最適化アルゴリズムによって算出されるコスト(設備コストや電力消費量)を目的関数として、当該制約条件を満たしつつ当該目的関数を最小化する入力パターンを探索することでデバイス割当情報を決定(計算)する。
続いて、第1の実施の形態と同様にステップS200~S240が実行される。この際、上記したようにステップS250も実行されて、ステップS250に応じてステップS251~S253が実行される。その結果、デバイス利用情報記憶部123が記憶するデバイス利用情報は、今回のデバイス割当情報が反映された内容となる。
上述したように、第2の実施の形態によれば、新たなアプリケーション・コンテナに対して割り当てるデバイスを決定する際に、既にデバイスが割り当てられている既存のアプリケーション・コンテナのデバイス利用状況を考慮することができる。その結果、新たなアプリケーションの要求性能をより高い精度で満たすようにコンテナに対してデバイスを割り当てることを可能とすることができる。
なお、ヘテロジニアス・コンピューティング設計制御部1として機能するコンピュータ10は、デバイス割当制御装置の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1 ヘテロジニアス・コンピューティング設計制御部
2 コンテナ・オーケストレーション基盤
3 トランスポート制御装置管理部
4 トランスポート装置リソースプール
11 要求性能受付部
12 デバイス情報取得部
13 性能推定モデル取得部
14 デバイス割当決定部
15 デバイス情報監視部
16 デバイス割当指示部
17 トランスポート装置制御連携部
18 デバイス利用情報管理部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 プロセッサ
105 インタフェース装置
121 デバイス情報記憶部
122 性能推定モデルリポジトリ
123 デバイス利用情報記憶部
B バス
2 コンテナ・オーケストレーション基盤
3 トランスポート制御装置管理部
4 トランスポート装置リソースプール
11 要求性能受付部
12 デバイス情報取得部
13 性能推定モデル取得部
14 デバイス割当決定部
15 デバイス情報監視部
16 デバイス割当指示部
17 トランスポート装置制御連携部
18 デバイス利用情報管理部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 プロセッサ
105 インタフェース装置
121 デバイス情報記憶部
122 性能推定モデルリポジトリ
123 デバイス利用情報記憶部
B バス
Claims (4)
- アプリケーションの要求性能と性能保証型であるか否かとを示す入力情報を受け付けるように構成されている要求性能受付部と、
複数のコンテナ・オーケストレーション基盤におけるデバイスの構成及びトポロジを示す情報、前記アプリケーションの性能を推定する情報、及び既にアプリケーションを起動しているコンテナに割り当てられている前記デバイスと当該アプリケーションが性能保証型であるか否かとを示す情報に基づいて、前記デバイスそれぞれの使用状況を示す情報、及び前記要求性能及び性能保証型のアプリケーション・コンテナに割り当てるデバイスは2以上のコンテナに割り当てないということを制約条件として、デバイスごとの割当量から最適化アルゴリズムによって算出されるコストを最小化するように、前記アプリケーションを起動するコンテナに割り当てる前記デバイス及び割当量を決定するように構成されているデバイス割当決定部と、
前記アプリケーションを起動するコンテナに対して割り当てられる前記デバイスに係るコンテナ・オーケストレーション基盤に対し、当該デバイスの割り当てを指示するように構成されているデバイス割当指示部と、
を有することを特徴とするデバイス割当制御装置。 - 前記デバイス割当決定部が決定した前記アプリケーションを起動するコンテナに割り当てる前記デバイス及び割当量と当該アプリケーションが性能保証型であるか否かを示す情報を記憶部に記憶するように構成されているデバイス利用情報管理部を有し、
前記デバイス割当決定部は、前記要求性能受付部が新たなアプリケーションについて前記入力情報を受け付けた場合に、前記記憶部が記憶する情報を前記既にアプリケーションを起動しているコンテナに関する情報として利用して、前記新たなアプリケーションを起動するコンテナに割り当てる前記デバイス及び割当量を決定するように構成されている、
ことを特徴とする請求項1記載のデバイス割当制御装置。 - アプリケーションの要求性能と性能保証型であるか否かとを示す入力情報を受け付ける要求性能受付手順と、
複数のコンテナ・オーケストレーション基盤におけるデバイスの構成及びトポロジを示す情報、前記アプリケーションの性能を推定する情報、及び既にアプリケーションを起動しているコンテナに割り当てられている前記デバイスと当該アプリケーションが性能保証型であるか否かとを示す情報に基づいて、前記デバイスそれぞれの使用状況を示す情報、及び前記要求性能及び性能保証型のアプリケーション・コンテナに割り当てるデバイスは2以上のコンテナに割り当てないということを制約条件として、デバイスごとの割当量から最適化アルゴリズムによって算出されるコストを最小化するように、前記アプリケーションを起動するコンテナに割り当てる前記デバイス及び割当量を決定するデバイス割当決定手順と、
前記アプリケーションを起動するコンテナに対して割り当てられる前記デバイスに係るコンテナ・オーケストレーション基盤に対し、当該デバイスの割り当てを指示するデバイス割当指示手順と、
をコンピュータが実行することを特徴とするデバイス割当制御方法。 - アプリケーションの要求性能と性能保証型であるか否かとを示す入力情報を受け付ける要求性能受付手順と、
複数のコンテナ・オーケストレーション基盤におけるデバイスの構成及びトポロジを示す情報、前記アプリケーションの性能を推定する情報、及び既にアプリケーションを起動しているコンテナに割り当てられている前記デバイスと当該アプリケーションが性能保証型であるか否かとを示す情報に基づいて、前記デバイスそれぞれの使用状況を示す情報、及び前記要求性能及び性能保証型のアプリケーション・コンテナに割り当てるデバイスは2以上のコンテナに割り当てないということを制約条件として、デバイスごとの割当量から最適化アルゴリズムによって算出されるコストを最小化するように、前記アプリケーションを起動するコンテナに割り当てる前記デバイス及び割当量を決定するデバイス割当決定手順と、
前記アプリケーションを起動するコンテナに対して割り当てられる前記デバイスに係るコンテナ・オーケストレーション基盤に対し、当該デバイスの割り当てを指示するデバイス割当指示手順と、
をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/025113 WO2025009152A1 (ja) | 2023-07-06 | 2023-07-06 | デバイス割当制御装置、デバイス割当制御方法及びプログラム |
| JP2025530931A JPWO2025009152A1 (ja) | 2023-07-06 | 2023-07-06 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/025113 WO2025009152A1 (ja) | 2023-07-06 | 2023-07-06 | デバイス割当制御装置、デバイス割当制御方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025009152A1 true WO2025009152A1 (ja) | 2025-01-09 |
Family
ID=94171337
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/025113 Ceased WO2025009152A1 (ja) | 2023-07-06 | 2023-07-06 | デバイス割当制御装置、デバイス割当制御方法及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2025009152A1 (ja) |
| WO (1) | WO2025009152A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017037403A (ja) * | 2015-08-07 | 2017-02-16 | 株式会社日立製作所 | 計算機システム及びコンテナ管理方法 |
| JP2022511177A (ja) * | 2018-11-08 | 2022-01-31 | インテル・コーポレーション | ファンクションアズアサービス(FaaS)システムの強化 |
| CN115169810A (zh) * | 2022-06-09 | 2022-10-11 | 国电南瑞科技股份有限公司 | 一种面向电网调控的人工智能系统构建方法及装置 |
-
2023
- 2023-07-06 WO PCT/JP2023/025113 patent/WO2025009152A1/ja not_active Ceased
- 2023-07-06 JP JP2025530931A patent/JPWO2025009152A1/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017037403A (ja) * | 2015-08-07 | 2017-02-16 | 株式会社日立製作所 | 計算機システム及びコンテナ管理方法 |
| JP2022511177A (ja) * | 2018-11-08 | 2022-01-31 | インテル・コーポレーション | ファンクションアズアサービス(FaaS)システムの強化 |
| CN115169810A (zh) * | 2022-06-09 | 2022-10-11 | 国电南瑞科技股份有限公司 | 一种面向电网调控的人工智能系统构建方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2025009152A1 (ja) | 2025-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10389800B2 (en) | Minimizing execution time of a compute workload based on adaptive complexity estimation | |
| US8612987B2 (en) | Prediction-based resource matching for grid environments | |
| US8423646B2 (en) | Network-aware virtual machine migration in datacenters | |
| CN104636204B (zh) | 一种任务调度方法与装置 | |
| WO2016090946A1 (zh) | 一种虚拟数据中心资源映射方法和设备 | |
| US20140156847A1 (en) | Service Allocation in a Distributed Computing Platform | |
| US20160203024A1 (en) | Apparatus and method for allocating resources of distributed data processing system in consideration of virtualization platform | |
| CN111182037B (zh) | 一种虚拟网络的映射方法和装置 | |
| JP6969499B2 (ja) | Vmマイグレーションシステムおよびvmマイグレーション方法 | |
| CN109565468B (zh) | 确定通信网络中的路径 | |
| Chintapalli et al. | Energy-and reliability-aware provisioning of parallelized service function chains with delay guarantees | |
| US11374820B2 (en) | Centralized controller-based dynamic network bandwidth allocation and management | |
| JP6090587B2 (ja) | 割当て資源を決定する方法および装置並びに資源提供システム | |
| CN116349216A (zh) | 边缘计算方法及系统、边缘设备和控制服务器 | |
| JP6010975B2 (ja) | ジョブ管理装置、ジョブ管理方法、及びプログラム | |
| US12360816B2 (en) | Information infrastructure management method, management server, and non-transitory computer-readable recording medium for managing a computing machine having a computational resource for executing a workflow and a storage resource communicably coupled to the computing machine | |
| CN119512827A (zh) | 分布式计算系统和用于分布式计算系统的故障处理方法 | |
| WO2025009152A1 (ja) | デバイス割当制御装置、デバイス割当制御方法及びプログラム | |
| JP7747212B2 (ja) | デバイス割当制御装置、デバイス割当制御方法及びプログラム | |
| Doan et al. | Reusing sub-chains of network functions to support MEC services | |
| He et al. | Firebird: Network-aware task scheduling for spark using sdns | |
| CN120186086A (zh) | 数据传输方法、系统、设备、存储介质及程序产品 | |
| EP3709575B1 (en) | Generating candidate links and candidate paths before selecting links for an optimized optical network plan | |
| US20140133312A1 (en) | Communication control device communication control system, communication control method and program | |
| US10877800B2 (en) | Method, apparatus and computer-readable medium for application scheduling |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23944399 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2025530931 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2025530931 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |