Device allocation control device, device allocation control method, and program
Patent Information
- Application Number
- JP2025530931
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2023-07-06
- Publication Date
- 2025-01-09
AI Technical Summary
Current device allocation methods in container orchestration platforms, such as Kubernetes, fail to accurately allocate hardware resources like GPUs, FPGAs, and smart NICs to meet the performance requirements of applications, especially in resource-constrained edge environments, where abundant hardware resources are not always available.
A device allocation control system that includes a required performance receiving section, device information acquisition unit, performance estimation model acquisition unit, device allocation determining unit, and device allocation instruction unit, which assesses the application's performance requirements and allocates devices optimally across multiple containers and servers using optimization algorithms to minimize costs and ensure performance guarantees.
The system effectively allocates devices to containers, ensuring they meet the required performance of applications by optimizing resource allocation and reducing costs, enabling flexible deployment even in resource-poor environments like edge computing.
Abstract
Description
Device allocation control device, device allocation control method and program
[0001] The present invention relates to a device allocation control device, a device allocation control method, and a program.
[0002] On a container orchestration platform that uses 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.
[0003] The container control unit on the container orchestration platform has a meta plugin function (Non-Patent Document 2) that enables allocation of various devices (hardware resources) to containers. By linking dedicated device plugins for each device with this meta plugin function, it becomes possible to register and manage devices.
[0004] When allocating a device to a container, as shown in Fig. 1, a scheduler (Non-Patent Document 3) in the Master node receives a deploy manifest of an application from a user via an API server in the Master node. The scheduler determines a Worker node (physical server or virtual machine) to allocate the device to based on the device request amount in the deploy manifest. The container control unit in the Worker node selects an allocatable device, and the device is allocated to the container.
[0005] It should be noted that one node (Master node or Worker node) corresponds to one physical server or one logical server.
[0006] "What is Kubernetes, Kubernetes" [online], Internet <URL: https: / / kubernetes.io / docs / concepts / overview / what-is-kubernetes / > "Device Plugins, Kubernetes" [online], Internet <URL: https: / / kubernetes.io / docs / concepts / extend-kubernetes / compute-storage-net / device-plugins / > "Kubernetes Scheduler, Kubernetes" [online], Internet <URL: https: / / kubernetes.io / docs / concepts / scheduling-eviction / kube-scheduler / > CUDA, "Developing a Linux Kernel Module using GPUDirect RDMA" [online], Internet <URL: https: / / docs.nvidia.com / cuda / gpudirect-rdma / >
[0007] In the current method of scheduling devices to containers, worker nodes and devices (hardware resources) that have a surplus of allocatable resources are determined based on a simple device request amount from a user.
[0008] In the future, with the development of 5G, it is expected that applications will be deployed not only on the cloud where hardware resources are abundant, but also on the edge. Therefore, the challenge will be to allocate appropriate devices (hardware resources) to containers that meet the performance requirements of the applications.
[0009] The present invention has been made in view of the above points, and has an object to make it possible to allocate devices to containers so as to satisfy the performance requirements of applications.
[0010] In order to solve the above problem, 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 launches an application, based on information indicating the configuration and topology of devices in a plurality of container orchestration platforms, information estimating the performance of the application, and information indicating the device assigned to a container that is already running an application and information indicating whether the application is a performance-guaranteed type, so as to minimize the cost calculated by an optimization algorithm from the allocation amount for each device, with the constraint that the required performance and the device to be allocated to a performance-guaranteed application container are not allocated to more than two containers; and a device allocation instruction unit configured to instruct the container orchestration platform related to the device to be assigned to the container that launches the application to allocate the device.
[0011] It is possible to allocate devices to containers so as to meet the performance requirements of the applications.
[0012] FIG. 1 is a diagram for explaining allocation of devices to containers. FIG. 2 is a diagram for explaining an example of a functional configuration of a device allocation control system in a first embodiment. FIG. 3 is a diagram for explaining an example of a hardware configuration of a computer that functions as a heterogeneous computing design control unit 1 in the first embodiment. FIG. 4 is a diagram for explaining an example of a processing procedure executed in the device allocation control system in the first embodiment. FIG. 5 is a diagram for explaining an example of a functional configuration of a device allocation control system in a second embodiment. FIG. 6 is a diagram for explaining an example of a processing procedure executed in the device allocation control system in the second embodiment.
[0013] In this embodiment, optimal hardware resource design and control are performed by combining the required performance for each application with device configuration and topology configuration information. Also, by constructing a transport device control collaborator 17, when offloaded data spans multiple devices and also crosses physical or logical servers, collaboration with a transport control device manager 3 that manages a transport device resource pool 4 such as a router or switch is performed.
[0014] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Fig. 2 is a diagram showing an example of the functional configuration of a device allocation control system according to a first embodiment. In Fig. 2, 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.
[0015] The container orchestration platform 2, the heterogeneous computing design control unit 1, and the transport control device management unit 3 may be implemented using the same computer, or any one of these three may be implemented using a different computer, or each of these three may be implemented using a different computer.
[0016] 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.
[0017] The transport device resource pool 4 is a group of transport devices and information that is composed of resources within a network that connect 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.)).
[0018] The transport control device management unit 3 manages resources (routers, switches, etc.) within the transport device resource pool 4, and performs control to provide a virtual dedicated network between physical or logical servers when connecting devices across physical or logical servers.
[0019] The heterogeneous computing design control unit 1 includes a required performance receiving unit 11, a device information acquiring unit 12, a performance estimation model acquiring unit 13, a device allocation determining unit 14, a device information monitoring unit 15, a device allocation instruction unit 16, and a transport device control coordinating 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.
[0020] The required performance receiving unit 11 receives an application required performance profile for one or more applications (hereinafter referred to as "target applications") that a user wants 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 the indicator may differ depending on the application.
[0021] In response to a request from the device allocation determination unit 14, 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, a device type and identifier, a type and identifier of a physical or logical server on which the device is deployed, an internal topology configuration, a location where the physical or logical server is located, and physical or logical network connection information within or between locations.
[0022] In response to a request from the device allocation determination unit 14, 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. The performance estimation model repository 122 stores the model information created for each application.
[0023] In response to a request from the device allocation determination unit 14, the device information monitoring unit 15 acquires information (hereinafter referred to as "device usage information") regarding the usage of devices deployed and managed in each container orchestration platform 2 (hardware resources such as GPUs, FPGAs, smart NICs (e.g., RDMA-compatible NICs), and SoCs deployed and managed in each worker node) from each container orchestration platform 2, and transmits the acquired device usage information to the device allocation determination unit 14. The device usage information is information including, for each device, information indicating whether the device has already been assigned to a specific container, the usage rate of the device, etc.
[0024] The device allocation determination unit 14 determines (calculates) information (hereinafter referred to as "device allocation information") including the container orchestration platform 2 on which each container (hereinafter referred to as an "application container") that launches each target application 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, based on information acquired from the required performance reception unit 11, the device information acquisition unit 12, the performance estimation model acquisition unit 13, and the device information monitoring unit 15. The device allocation determination unit 14 notifies the device allocation instruction unit 16 of the determined (calculated) device allocation information.
[0025] The logic for determining (calculating) the device allocation information may be a grid search or an existing optimization algorithm. As an example, the device allocation determination unit 14 uses device information and model information to derive estimates of each performance indicator of the application associated with the application container to be deployed for a large number of input patterns of allocation amounts for each device (e.g., 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 application is deployed). For each derived performance estimate, the device allocation determination unit 14 uses the application required performance profile and device usage information as constraints, and the cost (equipment cost and power consumption) calculated by an optimization algorithm from the allocation amount for each device (e.g., CPU, memory, other devices, etc.) as an objective function. The device allocation determination unit 14 searches for an input pattern that minimizes the objective function while satisfying the constraints. Based on the optimization calculation results, multiple deployment destinations (destinations to which device control instructions are sent) are determined when the same application container is deployed across multiple locations (when there are multiple replicas of the container) or when multiple devices are assigned to a single application container.
[0026] 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 the multiple devices are to be connected across physical or logical servers (when the devices assigned to a single container are connected across multiple physical or logical servers). When instructing the transport device control cooperation unit 17, the device allocation determination unit 14 transmits device information for each of the connection source device and the connection destination device to the transport device control cooperation unit 17. In this embodiment, devices that can be assigned to a container are not limited to devices deployed on the worker node on which the container is started, but devices on other clusters and other worker nodes can also be assigned. Note that if the connection between the 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.
[0027] 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) based on the notification from the device allocation determination unit 14. When the same application container is distributed and deployed to multiple bases (when there are multiple replicas of the container) or when multiple devices are assigned to a single application container, the device allocation instruction unit 16 instructs the API server 21 of each deployment destination container orchestration platform 2.
[0028] Based on an instruction from the device allocation determination unit 14 (respective device information of the connection source device and the connection destination device), the transport device control collaboration unit 17 instructs the transport control device management unit 3 to provide a virtual private network when connecting devices across physical or logical servers. At this time, the transport device control collaboration unit 17 also transmits respective device information of the connection source device and the connection 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 minimum delay" from among multiple candidate routes for virtual private networks connecting devices, and controls resources in the transport device resource pool 4 to generate a virtual private network on the corresponding route.
[0029] 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 includes 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.
[0030] A 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. When the recording medium 101 storing the program is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100. However, 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.
[0031] When an instruction to start a program is received, the memory device 103 reads the program from the auxiliary storage device 102 and stores it. 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.
[0032] In addition, the container orchestration platform 2 and the transport control device management unit 3 may also be realized by processing that causes one or more programs installed on a computer similar to the computer 10 shown in Figure 3 to be executed by the computer.
[0033] The process steps executed in the device allocation control system will be described below. Fig. 4 is a diagram for explaining an example of the process steps executed in the device allocation control system according to the first embodiment.
[0034] In step S110, the required performance receiving unit 11 receives the application required performance profile transmitted from the user (or the terminal used by the user).
[0035] Next, the required performance receiving unit 11 transmits the application required performance profile to the device allocation determination unit 14 (S120). Upon receiving the application required performance profile, the device allocation determination unit 14 requests device information, model information, and device usage status information from the device information acquisition unit 12, performance estimation model acquisition unit 13, and device information monitoring unit 15, respectively.
[0036] In response to a request from the device allocation determination unit 14, 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).
[0037] In response to a request from the device allocation determination unit 14, 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).
[0038] In response to a request from the device allocation determination unit 14, the device information monitoring unit 15 acquires device usage status information from each container orchestration platform 2 (S170) and transmits the acquired device usage status 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 status information from each container orchestration platform 2. In this case, in step S180, the device information monitoring unit 15 may transmit the device usage status information last acquired from each container orchestration platform 2 to the device allocation determination unit 14.
[0039] Next, 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). As described above, the device allocation information is 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 on which the application container is deployed.
[0040] Next, 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).
[0041] Based on the notification from the device allocation determination unit 14, 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.
[0042] Based on the instruction from the device allocation determination unit 14 (device information for the source device and the destination device), 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 the device information for the source device and the destination device to the transport control device management unit 3 (S230).
[0043] Next, the transport control device management unit 3 searches for a "route with the minimum delay" among route candidates for a plurality of 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 along the selected route (S240). As a result, the virtual private network is provided.
[0044] As described above, according to the first embodiment, by utilizing device configuration, topology configuration information, etc., it is possible to allocate devices to containers so as to satisfy the required performance of the application (end-to-end performance requirements).
[0045] Depending on the use case or application, data processing offloading may occur not only on a single device but across multiple devices. Therefore, 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, will have a significant impact on performance.
[0046] To address this issue, this embodiment uses on-demand transport linkage to enable remote device allocation, enabling flexible application deployment that is not limited to local devices within a specific domain (cluster or server). This allows rapid deployment of applications in resource-poor environments such as edge environments, reducing equipment costs.
[0047] Next, a second embodiment will be described. In the second embodiment, differences from the first embodiment will be described. Points not specifically mentioned in the second embodiment may be the same as those in the first embodiment.
[0048] In the first embodiment, when an application container uses a device registered and managed on a remote container orchestration platform 2 (e.g., when data is sent directly to a remote NVIDIA GPU using GPUDirect RDMA (Non-Patent Document 4) and processing is executed on the remote GPU), the actual usage status cannot be grasped on the remote container orchestration platform 2. Specifically, the information sent from the container orchestration platform 2 to the device information monitoring unit 15 contains only simple metrics related to device usage (e.g., GPU usage rate), 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). Therefore, for example, if a device is already allocated to an application container related to an application that requires exclusive use of physical resources in a performance-guaranteed manner, it is difficult to perform control such as not allocating the device to other applications in order to guarantee the performance of the application, even if the device has available resources.
[0049] In the second embodiment, an example in which such a problem is solved will be described.
[0050] Fig. 5 is a diagram showing an example of the functional configuration of a device allocation control system according to the second embodiment. In Fig. 5, the same components as those in Fig. 2 are given the same reference numerals, and their description will be omitted.
[0051] In FIG. 5, the heterogeneous computing design control unit 1 further includes a device utilization information management unit 18 .
[0052] The device usage information management unit 18 records, in the device usage information storage unit 123, information that associates 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 need to be included in the device usage information. The device allocation information and device usage status information among 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.
[0053] 6 is a diagram illustrating an example of a processing procedure executed in the device allocation control system according to the second embodiment. In FIG. 6, the same steps as those in FIG. 4 are assigned the same step numbers, and their explanations will be omitted as appropriate.
[0054] First, when the first application required performance profile is input after the device allocation control system starts operating, steps S110 to S240 described in the first embodiment are executed. However, in the second embodiment, 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 guarantee information").
[0055] Furthermore, step S250 is executed after the virtual private network is provided by executing step S240. In step S250, 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) as the device allocation information notified to the device allocation instruction unit 16 in step S200, as well as 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.
[0056] In response to step S250, 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). In response to the request from the device usage information management unit 18, 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). As described in steps S170 and S180 of the first embodiment, 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.
[0057] Next, the device usage information management unit 18 stores device usage information including the device allocation information and device information notified in step S250 and the device usage information received in step S252 in association with each other in the device usage information storage unit 123 (S253). The device usage information is device usage information after the device allocation based on the device allocation information (S220) is reflected. The device information is device information used to calculate the device allocation information.
[0058] Next, the second and subsequent inputs of the application required performance profile will be described with reference to Fig. 6. In this case, steps S110 and S120 are executed in the same manner as in Fig. 4. Note that the application required performance profile also includes performance guarantee information from the second time onwards.
[0059] 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, the performance estimation model acquisition unit 13, and the device usage information management unit 18. 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 acquire information from the device information monitoring unit 15.
[0060] In response to a request from the device allocation determination unit 14, 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).
[0061] In response to a request from the device allocation determination unit 14, 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).
[0062] In response to a request from the device allocation determination unit 14, the device usage information management unit 18 acquires, from the device usage information storage unit 123, the device allocation information of all device usage information that has been saved (stored) in the device usage information storage unit 123 so far, and the device usage status information of the device usage information that was last saved (S181), and transmits the acquired information to the device allocation determination unit 14 (S182).
[0063] Next, 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 status information acquired in step S182, and the model information (S190). The second embodiment differs from the first embodiment in that the device allocation information that has been reflected in the container orchestration infrastructure 2 and that is included in the device usage information is added as input information to the device allocation determination unit 14.
[0064] 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 device allocation information included in 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 also includes performance guarantee information (performance-guaranteed or non-performance-guaranteed (best-effort)) of the application associated with each application container. Therefore, the device allocation information indicates whether an application running in an application container that has already been assigned a device is a performance-guaranteed or non-performance-guaranteed application. Therefore, the device allocation determination unit 14 determines (calculates) the device allocation information by dedicating a device to an application container associated with a performance-guaranteed application and allowing non-performance-guaranteed application containers to share the same device in a time-sharing manner.
[0065] For example, the device allocation determination unit 14 uses device information and model information to derive estimated values of each performance indicator of an application related to an 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 constraints, 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 under 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 are surplus resources).
[0066] Next, steps S200 to S240 are executed in the same manner as in the first embodiment. At this time, step S250 is also executed as described above, and steps S251 to S253 are executed in accordance with step S250. As a result, the device usage information stored in the device usage information storage unit 123 reflects the current device allocation information.
[0067] As described above, according to the second embodiment, when determining devices to be assigned to a new application container, the device usage status of existing application containers to which devices are already assigned can be taken into consideration, making it possible to assign devices to containers so as to more accurately satisfy the performance requirements of the new application.
[0068] The computer 10 functioning as the heterogeneous computing design control unit 1 is an example of a device allocation control device.
[0069] Although the embodiments of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications and changes are possible within the scope of the gist of the present invention described in the claims.
[0070] 1 Heterogeneous computing design control unit 2 Container orchestration platform 3 Transport control device management unit 4 Transport device resource pool 11 Required performance reception unit 12 Device information acquisition unit 13 Performance estimation model acquisition unit 14 Device allocation determination unit 15 Device information monitoring unit 16 Device allocation instruction unit 17 Transport device control cooperation unit 18 Device usage information management unit 100 Drive device 101 Recording medium 102 Auxiliary storage device 103 Memory device 104 Processor 105 Interface device 121 Device information storage unit 122 Performance estimation model repository 123 Device usage information storage unit B Bus
Claims
1. A device allocation control device comprising: a required performance receiving unit configured to receive input information indicating the required performance of an application and whether or not 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, based on information indicating the configuration and topology of devices in a plurality of 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, so as to minimize a cost calculated by an optimization algorithm from the allocation amount for each device, 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 a container orchestration platform related to the device to be assigned to the container that runs the application to allocate the device.
2. A device allocation control device as described in claim 1, characterized in that it has a device utilization information management unit configured to store in a memory unit the device and allocation amount to be allocated to a container that launches the application determined by the device allocation determination unit, and information indicating whether the application is a performance guaranteed type, and when the required performance receiving unit receives the input information for a new application, the device allocation determination unit is configured to use the information stored in the memory unit as information regarding the container that is already running an application, and determine the device and allocation amount to be allocated to the container that launches the new application.
3. A device allocation control method, characterized in that a computer executes the following steps: a required performance receiving step for receiving input information indicating the required performance of an application and whether or not it is a performance-guaranteed type; a device allocation determination step for determining the device and allocation amount to be allocated to a container that runs an application, based on information indicating the configuration and topology of devices in a plurality of 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, so as to minimize a cost calculated by an optimization algorithm from the allocation amount for each device, with the constraint that the device to be assigned to a performance-guaranteed application container is not assigned to two or more containers; and a device allocation instruction step for instructing a container orchestration platform related to the device assigned to the container that runs the application to allocate the device.
4. A program for causing a computer to execute the following steps: a required performance receiving procedure for receiving input information indicating the required performance of an application and whether or not it is a performance-guaranteed type; a device allocation determination procedure for determining the device and allocation amount to be allocated to a container running an application so as to minimize a 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 the device assigned to a container that is already running an application and information indicating whether the application is a performance-guaranteed type, with the constraint that the device to be assigned to a performance-guaranteed application container is not assigned to two or more containers; and a device allocation instruction procedure for instructing a container orchestration platform related to the device to be assigned to the container running the application to allocate the device.