Resource allocation apparatus, resource allocation method, and resource allocation program
By strategically allocating resources based on communication performance requirements and minimizing communication path lengths, the resource allocation device addresses the issue of increased delays in processing data flows, enhancing the efficiency of multi-function processing in distributed systems.
Patent Information
- Application Number
- JP2023170484
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-29
- Publication Date
- 2025-04-10
AI Technical Summary
When deploying a new Logical Service Node (LSN) to a system according to a data flow (DF), simply assigning free devices to each function can lead to increased communication delay and processing delays, hindering the smooth processing of DFs due to suboptimal device allocation and communication path lengths.
A resource allocation device that selects functions based on communication performance requirements and determines device allocation by minimizing communication path lengths through the bus, prioritizing devices with shorter communication paths and appropriate communication protocols (bus or network) to ensure optimal performance.
This approach facilitates efficient processing by reducing communication delays and overlapping communication paths, thereby improving the overall performance of processing that utilizes multiple functions across distributed devices.
Smart Images

Figure 2025060013000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a resource allocation device, a resource allocation method, and a resource allocation program. [Background technology]
[0002] Due to the diversification and irregular load fluctuations of application software executed on computer systems (hereafter simply referred to as "systems"), it is becoming difficult to estimate what type of resources in the system will be used, when, and to what extent. Since predictions of resource usage are inaccurate, resource usage efficiency tends to be low. On the other hand, there is an increasing demand for low-energy, highly efficient systems.
[0003] One approach to the above background is a technology called disaggregation. Unlike server-centric resource isolation (VM (Virtual Machine), containers, etc.), disaggregation separates resources on a compute (CPU (Central Processing Unit) and device (accelerator) basis. In disaggregation, resources are assembled according to requirements to build a virtual computer.
[0004] Requirements are expressed, for example, as a data flow (DF). In the DF, for example, the functions used to realize a service are defined. A computer constructed by disaggregation is called an LSN (Logical Service Node). By using disaggregation technology, it is expected that the utilization rate of each resource will be improved, and the associated power consumption will be reduced.
[0005] As a technology for building such a system, for example, a computer system has been proposed that can place virtual computers and volumes in a cluster without degrading the I / O performance of the virtual computers. A method for determining containers to be moved that suppresses the increase in communication delay time that accompanies container movement has also been proposed. Furthermore, a method for realizing a non-aggregated computing system has also been proposed. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Patent Publication No. 2021-149299 [Patent Document 2] JP 2021-150876 A [Patent Document 3] Special Publication No. 2019-511051 Summary of the Invention [Problem to be solved by the invention]
[0007] When deploying a new LSN to a system according to a DF, simply assigning available devices to each function can seriously impede the performance of DF execution. For example, devices that are physically far apart (e.g. devices that pass through many switches) may be assigned to each of two functions that communicate with each other. In this case, the communication delay between the devices increases, increasing the processing delay of services executed by the LSN and hindering smooth processing of the DF. In addition, when processing multiple DFs, if the devices assigned to the functions of each DF are far apart, duplication of communication paths is likely to occur, and an increase in the amount of communication in the processing of one DF becomes a factor that hinders smooth processing of the other DF.
[0008] In one aspect, the present invention aims to facilitate a series of processes that utilize a plurality of functions. [Means for solving the problem]
[0009] In one proposal, a resource allocation device is provided, comprising a processing unit as follows. The processing unit selects each of the multiple functions in order of performance required for communication based on processing information indicating multiple functions used in processing to be executed by a computer system having multiple devices connected to other devices via a bus and performance required for communication between the multiple functions.The processing unit then determines a first device that realizes the selected first function based on the distance of a communication path via the bus between each device capable of realizing the selected first function and a second device that realizes a second function of the communication partner of the first function. Effect of the Invention
[0010] According to one aspect, a series of processes using a plurality of functions can be smoothly carried out. [Brief description of the drawings]
[0011] [Figure 1] FIG. 2 is a diagram illustrating an example of a resource allocation method according to the first embodiment. [Diagram 2] FIG. 1 illustrates an example of a system configuration according to a second embodiment; [Diagram 3] FIG. 2 illustrates an example of hardware of a management computer. [Figure 4] FIG. 2 is a diagram illustrating an example of a hardware configuration of an infrastructure system. [Diagram 5] FIG. 1 is a diagram illustrating an example of a server operated in an LSN. [Figure 6] FIG. 1 illustrates an example of inter-device communication. [Figure 7] FIG. 1 is a diagram illustrating an example of communication between devices using Ethernet. [Figure 8] FIG. 2 illustrates an example of communication between different devices of a server. [Figure 9] FIG. 13 is a diagram illustrating an example of a method for managing an LSN configuration. [Figure 10] FIG. 11 illustrates an example of device allocation to functions. [Figure 11]FIG. 1 is a diagram illustrating an example of an increase in communication delay due to a long communication path. [Figure 12] FIG. 13 is a diagram illustrating an example of an increase in communication delay due to the influence of communication of other servers. [Figure 13] 2 is a block diagram showing an example of functions of a management computer. FIG. [Figure 14] FIG. 2 illustrates an example of physical configuration information. [Figure 15] FIG. 11 is a diagram illustrating an example of device information. [Figure 16] FIG. 4 is a diagram illustrating an example of network status information. [Figure 17] FIG. 13 is a diagram illustrating an example of LSN configuration information. [Figure 18] FIG. 11 illustrates an example of device allocation information. [Figure 19] FIG. 4 is a diagram illustrating an example of route information. [Figure 20] FIG. 4 is a diagram illustrating an example of server configuration information. [Figure 21] FIG. 13 is a diagram illustrating an example of input / output data of a resource allocation scheduler. [Figure 22] FIG. 2 is a diagram showing the flow of data in a management computer. [Figure 23] 13 is a flowchart illustrating an example of a procedure for a resource deployment process by a resource deployment scheduler. [Figure 24] FIG. 11 illustrates an example of device selection. [Diagram 25] FIG. 13 is a diagram showing an example of device selection completed in a first stage. [Figure 26] FIG. 13 illustrates an example of device selection completed in a second stage. [Figure 27] FIG. 13 illustrates an example of device selection completed in a third stage. [Figure 28] FIG. 13 is a diagram (1 / 4) showing an example of a procedure for device selection processing. [Figure 29] FIG. 2 is a diagram (2 / 4) showing an example of a procedure for device selection processing. [Diagram 30] FIG. 3 is a diagram (3 / 4) showing an example of a procedure for device selection processing. [Diagram 31] FIG. 4 is a diagram (4 / 4) showing an example of a procedure for device selection processing. [Diagram 32] FIG. 13 is a diagram illustrating an example of route selection. [Diagram 33] 13 is a flowchart illustrating an example of a procedure for a route selection process. [Diagram 34] FIG. 13 illustrates an example of server configuration selection. [Diagram 35] 13 is a flowchart illustrating an example of a procedure for a server configuration determination process. [Diagram 36] FIG. 1 / 4 shows a first example of resource deployment. [Figure 37] FIG. 2 / 4 shows a first example of resource deployment. [Figure 38] FIG. 3 / 4 shows a first example of resource deployment. [Figure 39] FIG. 4 / 4 shows a first example of resource deployment. [Diagram 40] FIG. 1 / 7 shows a second example of resource deployment. [Diagram 41] FIG. 2 / 7 shows a second example of resource deployment. [Diagram 42] FIG. 3 / 7 shows a second example of resource deployment. [Diagram 43] FIG. 4 / 7 shows a second example of resource deployment. [Diagram 44] FIG. 5 / 7 shows a second example of resource deployment. [Diagram 45] FIG. 6 / 7 shows a second example of resource deployment. [Diagram 46] FIG. 7 / 7 shows a second example of resource deployment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Hereinafter, the present embodiment will be described with reference to the drawings. Note that each embodiment can be implemented in combination with a plurality of other embodiments as long as no contradiction occurs. First Embodiment The first embodiment is a resource allocation method that can perform resource allocation while preventing degradation of processing performance when allocating resources to a server that executes processing that utilizes a plurality of functions.
[0013] Fig. 1 is a diagram showing an example of a resource allocation method according to a first embodiment. Fig. 1 shows a resource allocation device 10 that implements the resource allocation method. The resource allocation device 10 can implement the resource allocation method by, for example, executing a resource allocation program.
[0014] A resource allocation device 10 allocates resources in a computer system 2 to servers 9a, 9b to be used for executing a process indicated by processing information 1. The resources to be allocated include a plurality of devices such as a CPU, memory, and accelerator. The CPU and memory are included in compute units 3a, 3b, and 3c. For example, compute unit 3a includes a CPU 4a and memory 4c. Furthermore, compute unit 3c includes a CPU 4b and memory 4d. The devices are included in BOXes 5a, 5b, and 5c for mounting devices. For example, BOX 5a includes devices 6a and 6b. BOX 5b includes device 6c. BOX 5c includes device 6d.
[0015] The resources are bus-connected via bus switches 7a to 7e. For example, the CPU 4a in the compute unit 3a is connected to the switch 7a. The switch 7a is further connected to a switch 7c in the BOX 5a and a switch 7d in the BOX 5b. The devices 6a and 6b in the BOX 5a are connected to the switch 7c. The device 6c in the BOX 5b is connected to the switch 7d. The CPU 4b in the compute unit 3c is connected to the switch 7b. The switch 7b is further connected to the switch 7e in the BOX 5c. The device 6d in the BOX 5c is connected to the switch 7e. In this manner, each of the multiple devices is bus-connected to at least some of the other devices.
[0016] The devices are also connected to each other via a network. For example, devices 6a and 6b in BOX 5a, device 6c in BOX 5b, and device 6d in BOX 5c are connected to a network switch 8 and can communicate with each other via the network switch 8.
[0017] The resource allocation device 10 includes a storage unit 11 and a processing unit 12. The storage unit 11 is, for example, a memory or a storage device included in the resource allocation device 10. The processing unit 12 is, for example, a processor or an arithmetic circuit included in the resource allocation device 10.
[0018] The resource allocation device 10 performs resource allocation based on processing information 1. The processing information 1 indicates a plurality of functions to be executed by the computer system 2 and the performance required for communication between the plurality of functions. For example, the processing information 1 includes function information 1a to 1d indicating each of a plurality of functions to be used in executing the process.
[0019] The resource allocation apparatus 10 determines, for each of a plurality of functions indicated in the processing information 1, a device that realizes that function. The storage unit 11 stores system information 11a indicating the hardware configuration of the computer system 2. The system information 11a indicates resources included in the computer system 2 and the connections between the resources.
[0020] The processing unit 12 grasps the system configuration based on the system information 11a and allocates resources to prevent a decrease in processing performance. Specifically, the processing unit 12 executes the following processes.
[0021] The processing unit 12 selects each of the multiple functions in the order of performance required for communication based on the processing information 1. For example, the processing unit 12 selects each function in the order of performance required for communication.
[0022] For example, the function indicated in function information 1a is "f1", the function indicated in function information 1b is "f2", the function indicated in function information 1c is "f3", and the function indicated in function information 1d is "f4". The communication between function "f1" and function "f2" is "c1". The communication between function "f2" and function "f3" is "c2". The communication between function "f3" and function "f4" is "c3".
[0023] In the example of FIG. 1, the performance required for each communication is shown by the allowable delay time. The allowable delay time for communication "c1" is less than "100 μs", the allowable delay time for communication "c2" is less than "300 μs", and the allowable delay time for communication "c3" is less than "500 μs". When the performance is expressed by the allowable delay time, the shorter the delay time, the higher the required performance. Therefore, the processing unit 12 selects, for example, the function that performs the communication with the shortest allowable delay time. In the example of FIG. 1, the selection order is "f1" and "f2" first, "f3" second, and "f4" third.
[0024] Next, the processing unit 12 determines a first device to execute the selected first function from among the devices 6a to 6d (free devices for which the function to be realized has not been determined) capable of realizing the selected function (first function). For example, the processing unit 12 determines the first device to realize the first function based on the distance of the communication path via the bus between each of the devices 6a to 6d capable of realizing the first function and a second device that realizes the function (second function) of the communication partner of the first function.
[0025] The distance of the communication path via the bus is, for example, the number of switches 7a to 7e on the communication path via the bus. When the number of switches on the communication path is taken as the distance, for example, the processing unit 12 determines a device having a smaller number of switches 7a to 7e on the communication path via the bus to the second device as the first device.
[0026] Furthermore, if there is no device bus-connected to the second device among the devices 6a to 6d capable of executing the first function, the processing unit 12 determines a device network-connected to the second device as the first device.
[0027] Note that determining a device that will realize a function can also be said to be allocating a device that will realize a function to that function. For example, each function indicated in the function information 1a to 1d can be executed by any of the devices 6a to 6d. In this case, the processing unit 12 first selects the function "f1" and the function "f2" and determines the device that will execute these functions. In the example of FIG. 1, the distance of the communication path via the bus between the devices 6a and 6b in the BOX 5a is the shortest. Therefore, the processing unit 12 assigns, for example, the device 6a to the function "f1" and the device 6b to the function "f2."
[0028] In addition, when the processing unit 12 selects the functions "f1" and "f2" in order, for example, when the processing unit 12 selects the function "f1", the processing unit 12 assigns the device 6a in the BOX 5a having the most free devices to the function "f1". Next, the processing unit 12 selects the function "f2", and assigns the device 6b, which has the shortest communication path distance between the device 6a and the function "f2" via the bus, to the function "f2".
[0029] Next, the processing unit 12 selects function "f3." Device 6b is assigned to function "f2," which communicates with function "f3." The currently available devices are device 6c and device 6d. Device 6c is connected to device 6b assigned to function "f2" via the bus through three switches 7d, 7a, and 7c. Device 6d is not connected to device 6b assigned to function "f2" via the bus, but is only network-connected via network switch 8. In this case, the processing unit 12 assigns bus-connected device 6c to function "f3."
[0030] Finally, the processing unit 12 selects function "f4." Device 6c is assigned to function "f3," which communicates with function "f4." There is no free device that can communicate with device 6c via the bus. Therefore, the processing unit 12 assigns device 6d, which is connected to device 6c via the network, to function "f4."
[0031] In this way, the processing unit 12 assigns devices that are closer to the device assigned to the function of the communication partner in the order of the function required highest communication performance via the bus. As a result, the distance between the device and the communication partner becomes shorter as the function at both ends of the communication requires higher communication performance, and an increase in communication delay is suppressed. Furthermore, since the distance between the devices assigned to the functions at both ends of the communication requiring higher communication performance is short, it is possible to reduce overlap of communication paths with communication between devices executing other processes. In other words, for communication requiring high communication performance, the communication path is separated from other processes, and communication delays due to the influence of communication of other processes are suppressed. As a result, processing that uses multiple functions realized in a distributed manner by multiple devices is facilitated.
[0032] Furthermore, the processing unit 12 can also appropriately select whether communication between functions should be performed via a bus or via a network. For example, the processing unit 12 compares the performance required for communication between a plurality of functions with the number of switches on a communication path of a bus connecting devices that realize each of the plurality of functions, or the communication performance of each of communication via a bus and communication via a network. Based on the comparison result, the processing unit 12 selects, as a communication path to be used for communication, either a communication path via a bus (a first communication path) or a communication path via a network (a second communication path) for each pair of functions that communicate. For example, the processing unit 12 selects a communication path that satisfies the required performance as a path to be used for communication. This prevents communication between functions from failing to satisfy the required performance.
[0033] For example, when communication via the bus is communication via only one switch, the processing unit 12 selects a first communication path via the bus as the communication path to be used for communication. For example, when devices in the same BOX are assigned to two functions that communicate, those devices are connected to the bus via only one switch. If communication between switches does not occur, there is no effect of congestion on the path connecting the switches, and therefore the communication path via the bus is not affected by other processes. This enables efficient communication via the bus.
[0034] Furthermore, if the performance required for communication between multiple functions is satisfied by both communication via the bus and communication via the network, the processing unit 12 may select the second communication path via the network as the communication path to be used for communication. If the required performance is satisfied, communication via the network can be used to reduce the amount of data in communication via the bus. As a result, the influence of communication generated by the execution of the process indicated in the processing information 1 on other processes can be reduced.
[0035] Furthermore, when the performance required for communication between multiple functions is not satisfied, for example, in both communication via the bus and communication via the network, the processing unit 12 selects a second communication path via the network as the communication path to be used for communication. When there is no difference in the performance of the communication paths, communication is performed via the network, thereby reducing the amount of communication via the bus. As a result, overlapping of communications of multiple DFs on the communication path via the bus and the occurrence of congestion are prevented.
[0036] Second Embodiment The second embodiment is a system in which a server for analyzing data collected via a network is constructed within an infrastructure system (hereinafter referred to as "infrastructure system").
[0037] Fig. 2 is a diagram showing an example of a system configuration of the second embodiment. In the system shown in Fig. 2, an infrastructure system 200, a management computer 100, a terminal 30, and a plurality of cameras 31, 32, ... are connected to a network 20. The infrastructure system 200 and the management computer 100 are directly connected by a cable.
[0038] The infrastructure system 200 is a computer system in a disaggregated environment that can construct a server that analyzes data collected from edge devices such as cameras 31, 32, etc. For example, in the infrastructure system 200, a plurality of compute units and devices are connected by PCI (Peripheral Component Interconnect) Express. Hereinafter, PCI Express will be referred to as PCIe. The compute unit includes a CPU and a memory. The device is, for example, an accelerator such as an FPGA (Field Programmable Gate Array).
[0039] The management computer 100 is a computer that constructs a server in the infrastructure system 200 according to the DF definition information. The terminal 30 is a computer that transmits the DF definition information to the management computer 100 according to an instruction from a user.
[0040] 3 is a diagram showing an example of the hardware of a management computer. The management computer 100 is entirely controlled by a processor 101. A memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 100a. The bus 100a is, for example, a PCIe.
[0041] The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU, a micro processing unit (MPU), or a digital signal processor (DSP). At least a part of the functions realized by the processor 101 executing a program may be realized by an electronic circuit such as an application specific integrated circuit (ASIC) or a programmable logic device (PLD).
[0042] The memory 102 is used as a main storage device of the management computer 100. The memory 102 temporarily stores at least a part of the OS (Operating System) program and application programs to be executed by the processor 101. The memory 102 also stores various data used for processing by the processor 101. As the memory 102, for example, a volatile semiconductor storage device such as a RAM (Random Access Memory) is used.
[0043] The peripheral devices connected to the bus 100 a include a storage device 103 , a GPU (Graphics Processing Unit) 104 , an input interface 105 , an optical drive device 106 , a device connection interface 107 , a network interface 108 , and a cable adapter 109 .
[0044] The storage device 103 electrically or magnetically writes and reads data to and from a built-in recording medium. The storage device 103 is used as an auxiliary storage device for the management computer 100. The storage device 103 stores an OS program, application programs, and various data. Note that, for example, a hard disk drive (HDD) or a solid state drive (SSD) can be used as the storage device 103.
[0045] The GPU 104 is an arithmetic device that performs image processing, and is also called a graphics controller. The GPU 104 is connected to a monitor 21. The GPU 104 displays an image on the screen of the monitor 21 in accordance with an instruction from the processor 101. The monitor 21 may be a display device using an organic EL (Electro Luminescence) display device, a liquid crystal display device, or the like.
[0046] The input interface 105 is connected to the keyboard 22 and the mouse 23. The input interface 105 transmits signals sent from the keyboard 22 and the mouse 23 to the processor 101. Note that the mouse 23 is an example of a pointing device, and other pointing devices can also be used. Examples of other pointing devices include a touch panel, a tablet, a touch pad, and a trackball.
[0047] The optical drive device 106 uses a laser beam or the like to read data recorded on the optical disc 24 or write data to the optical disc 24. The optical disc 24 is a portable recording medium on which data is recorded so that it can be read by reflection of light. The optical disc 24 includes a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), a CD-R (Recordable) / RW (ReWritable), etc.
[0048] The device connection interface 107 is a communication interface for connecting peripheral devices to the management computer 100. For example, a memory device 25 or a memory reader / writer 26 can be connected to the device connection interface 107. The memory device 25 is a recording medium equipped with a function for communicating with the device connection interface 107. The memory reader / writer 26 is a device for writing data to the memory card 27 or reading data from the memory card 27. The memory card 27 is a card-type recording medium.
[0049] The network interface 108 is connected to the network 20. The network interface 108 transmits and receives data to and from other computers or communication devices via the network 20. The network interface 108 is a wired communication interface connected by a cable to a wired communication device such as a switch or a router. The network interface 108 may also be a wireless communication interface that is communicatively connected to a wireless communication device such as a base station or an access point by radio waves.
[0050] The cable adapter 109 is an adapter card for connecting to an external device via a cable using PCIe. Such an adapter card is also called a host interface board. The cable adapter 109 is connected to the infrastructure system 200 via a PCIe cable.
[0051] The management computer 100 can realize the processing functions of the second embodiment by the above-mentioned hardware. The device shown in the first embodiment can also be realized by the same hardware as the management computer 100 shown in FIG.
[0052] The management computer 100 realizes the processing function of the second embodiment by executing a program recorded in, for example, a computer-readable recording medium. The program describing the processing contents to be executed by the management computer 100 can be recorded in various recording media. For example, the program to be executed by the management computer 100 can be stored in the storage device 103. The processor 101 loads at least a part of the program in the storage device 103 into the memory 102 and executes the program. The program to be executed by the management computer 100 can also be recorded in a portable recording medium such as the optical disk 24, the memory device 25, or the memory card 27. The program stored in the portable recording medium becomes executable after being installed in the storage device 103 under the control of, for example, the processor 101. The processor 101 can also read and execute the program directly from the portable recording medium.
[0053] Next, the hardware configuration of the infrastructure system will be described. 4 is a diagram illustrating an example of a hardware configuration of an infrastructure system 200. The infrastructure system 200 includes compute units 211, 212, . . . , a PCIe switch 220, PCIe BOXes 230, 240, . . . , and an Ethernet switch 250.
[0054] The compute unit 211 has CPUs 211a and 211b, memories 211c and 211d, and cable adapters 211e and 211f. The memory 211c is connected to the CPU 211a. The memory 211d is connected to the CPU 211b. When the CPUs 211a and 211b are incorporated into an LSN, they manage other resources included in the LSN. The cable adapters 211e and 211f are adapters for connecting external devices to PCIe via cables.
[0055] The compute unit 212 has CPUs 212a and 212b, memories 212c and 212d, and cable adapters 212e and 212f. The memory 212c is connected to the CPU 212a. The memory 212d is connected to the CPU 212b. When incorporated into an LSN, the CPUs 212a and 212b manage other resources included in the LSN. The cable adapters 212e and 212f are adapter cards that can be inserted into a PCIe slot to connect an external device to the PCIe via a cable.
[0056] The PCIe switch 220 has a plurality of ports to which PCIe cables can be connected. The compute units 211, 212,..., PCIe BOXes 230, 240,..., the management computer 100, etc. are connected to the ports of the PCIe switch. The PCIe switch 220 outputs data input via PCIe cables connected to each port to a port to which a device that is the destination of the data is connected.
[0057] The PCIe switch 220 and each of the compute units 211, 212,... are connected by PCIe cables corresponding to the number of lanes to be used. Similarly, the PCIe switch 220 and each of the PCIe BOXes 230, 240,... are connected by PCIe cables corresponding to the number of lanes to be used.
[0058] The PCIeBOX 230 has a PCIe switch 231 and FPGAs 232 to 235. The FPGAs 232 to 235 are connected to the PCIe switch 231 and an Ethernet switch 250. For example, the FPGAs 232 to 235 are card-type modules, and are inserted into slots of the PCIe switch 231. The FPGAs 232 to 235 also have connection ports for Ethernet, and cables connected to the Ethernet switch 250 are connected to the connection ports.
[0059] The PCIeBOX 240 has a PCIe switch 241 and FPGAs 242 to 245. The FPGAs 242 to 245 are connected to the PCIe switch 241 and an Ethernet switch 250. For example, the FPGAs 242 to 245 are card-type modules, and are inserted into slots of the PCIe switch 241. The FPGAs 242 to 245 also have connection ports for Ethernet, and cables connected to the Ethernet switch 250 are connected to the connection ports.
[0060] The Ethernet switch 250 is connected to the FPGAs 232-235, 242-245 in the PCIeBOXes 230, 240, and the network 20. The Ethernet switch 250 relays data communication between the FPGAs 232-235, 242-245, and transmits data sent from the cameras 31, 32, ... connected via the network 20 to the FPGAs 232-235, 242-245.
[0061] The system shown in Figures 2 to 4 constructs an LSN by disaggregation. When constructing an LSN, if the devices to be included in the LSN are selected inappropriately, the processing efficiency of the server operated using the LSN will decrease. Below, factors that cause the processing efficiency of the server to decrease will be described with reference to Figures 5 to 12.
[0062] 5 is a diagram showing an example of a server operated in an LSN. Server 41 is operated using an LSN named "LSN1". "LSN1" includes a CPU 211a, a memory 211c, and FPGAs 232 and 233. When the performance of "LSN1" required to operate server 41 becomes insufficient, for example, an FPGA 234 is added to "LSN1".
[0063] In this way, in a disaggregated environment, accelerators such as FPGAs 232 to 235 and 242 to 245 are separated and pooled at the device level. An LSN is constructed by combining compute (CPU + memory) and devices. The server 41 is then operated in the constructed LSN. The performance of the server 41 can also be increased by adding devices to the LSN.
[0064] Furthermore, there are two communication paths between the devices included in the infrastructure system 200: interconnect communication via PCIe and network communication via Ethernet. 6 is a diagram showing an example of inter-device communication. Data is transferred between the FPGAs 232 and 233 included in the same server 41 by DMA (Direct Memory Access) transfer via PCIe. For example, the FPGA 232 transmits data to be transmitted to the memory 211c by DMA. Next, the FPGA 233 receives data to be received from the memory 211c by DMA.
[0065] The FPGAs 232 and 233 of the server 41 are in the same PCIeBOX 230, but an LSN may be constructed by combining devices in different PCIeBOXes. For example, the LSN used to operate the server 42 includes the FPGA 235 in the PCIeBOX 230 and the FPGA 242 in the PCIeBOX 240. The FPGA 235 and the FPGA 242 can exchange data by DMA transfer via the memory 211d of the server 42.
[0066] Data communication by DMA transfer as shown in Fig. 6 is via PCIe, so high-speed data transfer is possible. Moreover, because it is a DMA transfer, there is no load on the CPU. However, DMA transfer via PCIe can only be applied to communication between devices within the same server. Therefore, the infrastructure system 200 is provided with Ethernet, which can be used for general purposes.
[0067] Fig. 7 is a diagram showing an example of inter-device communication using Ethernet. As shown in Fig. 7, between FPGAs 232 and 233 in server 41, communication is possible via an Ethernet switch 250 in addition to communication via PCIe. Similarly, between FPGAs 235 and 242 in server 42, communication is possible via an Ethernet switch 250 in addition to communication via PCIe. The communication via the Ethernet switch 250 is, for example, packet communication using TCP (Transmission Control Protocol). Ethernet has a lower bandwidth and higher delay than PCIe, but can be applied both within a server and between servers.
[0068] Fig. 8 is a diagram showing an example of communication between different devices of a server. In the example of Fig. 8, an FPGA 232 in a server 41 and an FPGA 242 in a server 43 perform network communication via an Ethernet switch 250. Also, an FPGA 244 in a server 44 and an FPGA 245 in a server 45 perform network communication via an Ethernet switch 250. In this way, inter-device communication between different servers is limited to network communication.
[0069] The communication speed between devices depends on whether the devices are capable of interconnect communication via PCIe. In the case of interconnect communication, the fewer the number of PCIe switches that are used, the more efficient the data transfer.
[0070] The configuration of the LSN used for operating the server is managed by an infrastructure system manager included in the management computer 100 . FIG. 9 is a diagram showing an example of a method for managing the configuration of an LSN. For example, the management computer 100 has physical configuration information 50 indicating resources (CPUs, devices) in the infrastructure system 200 and the connection relationships between the resources. For example, the physical configuration information 50 indicates the connection relationships between the resources in a tree structure with the PCIe switch 220 as the root. In the tree structure, the identifier of the port of the PCIe switch 220 is set as a child of the name "pcie-sw0" of the PCIe switch 220. The name of the resource or PCIe switch connected to the port is set as a child of the port identifier. If a PCIe switch is connected to the port, the identifier of the port of the PCIe switch is set as a child of the name of the PCIe switch. If another resource or PCIe switch is connected to the port of the PCIe switch, the identifier of the connected resource or PCIe switch is set as a child of the port identifier.
[0071] The LSN configuration information 50a indicates the resources included in each constructed LSN. In the example of Fig. 9, the LSN configuration information 50a indicates the configuration of the LSN corresponding to the two servers 46 and 47. As the configuration of the LSN, the elements included in the LSN among the elements indicated in the physical configuration information 50 are indicated.
[0072] In addition to the physical configuration information 50 and the LSN configuration information 50a, information such as the specs and status of each device is also managed in the management computer 100. The device status information is, for example, information on whether or not the device is being used as a component of an LSN.
[0073] The construction of an LSN is based on a DF, which indicates a series of processing steps to be executed by a server. A DF indicates multiple functions. A device that executes a function included in the DF is assigned to that function.
[0074] FIG. 10 is a diagram showing an example of device allocation to functions. FIG. 10 shows an example of DF51 that performs video AI (Artificial Intelligence) analysis. DF51 includes multiple functions. Function "func0" receives image data captured by cameras 31, 32, ... and decodes the image data. Functions "func1-0" and "func1-1" resize (enlarge or reduce) the image. Function "func2" uses the resized image to perform AI inference (for example, to determine the presence or absence of danger based on an image captured by a surveillance camera in the city). As a result of processing according to the DF, inference result 51a is output.
[0075] The servers 46 and 47 are to execute the processing corresponding to such DF51. In this case, the management computer 100 utilizes a device capable of high-speed calculation for each function in order to handle large-volume data analysis and video / image processing. For example, the FPGA 232 is assigned to the function "func0". The FPGA 233 is assigned to the function "func1-0". The FPGA 234 is assigned to the function "func1-1". The FPGA 242 is assigned to the function "func2".
[0076] In order to increase the speed of communication between functions, if only the communication speed is considered, it is desirable for communication between devices to be performed without going through the CPU. Therefore, between devices (FPGAs 232 to 234) that have two communication paths, one via PCIe and the other via Ethernet, communication is performed via PCIe. On the other hand, between devices that are communication between different servers 46 and 47 (communication between FPGA 233 and FPGA 242, and communication between FPGA 234 and FPGA 242), communication is performed via the Ethernet switch 250.
[0077] When allocating devices to functions as described above, if the management computer 100 simply allocates available devices to each function, this can cause a significant impairment in performance.
[0078] FIG. 11 is a diagram showing an example of an increase in communication delay due to a long communication path. The server 48 includes FPGAs 232 to 234 in the PCIeBOX 230 and an FPGA 242 in the PCIeBOX 240. When the server 48 is caused to execute the process of DF51 shown in FIG. 10, one of the devices in the server 48 is assigned to each function of DF51. In the example of FIG. 11, the FPGA 232 is assigned to the function "func0". The FPGA 233 is assigned to the function "func1-0". The FPGA 234 is assigned to the function "func1-1". The FPGA 242 is assigned to the function "func2".
[0079] At this time, each of the FPGAs 233 and 234 transmits the execution result of the function to the FPGA 242. In this case, there are a communication path via the PCIe switches 220, 231, and 241 and a communication path via the Ethernet switch 250 as communication paths. In general, the communication path via the PCIe switches 220, 231, and 241 is faster. Therefore, the FPGAs 233 and 234 transmit data via the communication path via the PCIe switches 220, 231, and 241. However, this communication path has a large number of PCIe switches and has a large communication delay compared to communication between devices in the same PCIeBOX. As a result, the delay in processing according to the DF51 also increases.
[0080] In constructing an LSN and allocating devices to functions, simply allocating free devices to functions may result in allocations such as those shown in Figure 11. In other words, devices that are physically distant (passing through many PCIe switches) may be allocated to adjacent (communicating) functions in DF51. As a result, the delay between devices increases, and the processing delay according to DF51 increases.
[0081] In addition, the communication speed between devices used on the deployed server also depends on the communication conditions of other servers. Fig. 12 is a diagram showing an example of an increase in communication delay due to the influence of communication of another server. In the example of Fig. 12, another server 49 is deployed before the deployment of server 48. Server 49 includes FPGAs 243 to 245 in a PCIe BOX 240. In this case, in server 49, communication occurs between CPU 212b and FPGAs 243 to 245 via PCIe switches 220 and 241. Also, when communication between FPGAs 243 to 245 is performed by DMA transfer via memory 212d, communication occurs via PCIe switches 220 and 241.
[0082] In such a situation, if a new server 48 is deployed, there is a possibility that a sufficient communication bandwidth cannot be secured for communication between devices in the server 48 via the PCIe switch 220 due to the influence of communication with the server 49. As a result, there is a possibility that the communication delay time exceeds the allowable time for a series of processes executed by the server 48.
[0083] 12, there is only one server 49 other than the server 48 to be deployed, but there may be cases where many other servers have already been deployed. In that case, when the server 48 is newly deployed, there is a possibility that the same route that is used by many other servers will be selected. This increases the possibility that communication between devices will not be able to meet the required performance (bandwidth, communication delay) due to congestion.
[0084] In particular, high speed communication is often required between devices. Therefore, if a communication path is set without considering the communication paths of other servers, communication will be concentrated on the communication path via PCIe. If congestion occurs on the communication path, the communication performance will deteriorate not only in the target server 48 but also in all servers sharing the path.
[0085] Therefore, when a DF is newly deployed, the management computer 100 creates a server by selecting a route between the devices of each function so as to reduce communication delays.
[0086] [Device Selection] The management computer 100 assigns devices as close as possible to the functions to be deployed. For example, the management computer 100 first selects devices to be assigned on a PCIeBOX basis. That is, the management computer 100 assigns devices in as few PCIeBOXes as possible to each of the multiple functions in one DF. In this case, the management computer 100 preferentially assigns devices in the same PCIeBOX to peripheral functions for communication that require high performance (requires low latency). In other words, when the management computer 100 has no choice but to distribute and deploy across multiple PCIeBOXes, it assigns devices in different PCIeBOXes to pairs of functions that perform communication that can be slow. Since the distance between devices is minimal within a PCIeBOX, high-speed communication is possible between functions to which devices in the same PCIeBOX are assigned.
[0087] [Communication route selection] The management computer 100 selects a communication path between functions so as to avoid congestion of communication via a PCIe switch. For example, the management computer 100 determines a communication path between functions so that communication that satisfies the required performance via Ethernet is performed via Ethernet. Furthermore, even for communication that requires communication via PCIe, the management computer 100 selects a communication path via Ethernet when PCIe paths are concentrated (lack of available bandwidth).
[0088] [Server configuration decision] The management computer 100 separates the servers to which two adjacent functions on the DF, each of which is assigned two devices that cannot be connected by a PCIe switch, belong. The two devices that cannot be connected by a PCIe switch are devices that do not have a communication path between them via a PCIe switch and are connected only by the Ethernet switch 250.
[0089] Next, the functions of the management computer 100 for selecting an appropriate device, selecting a communication path, and determining a server configuration will be described. 13 is a block diagram showing an example of functions of the management computer 100. The management computer 100 includes a resource deployment scheduler 110, an infrastructure system manager 120, and a resource management manager .
[0090] The resource deployment scheduler 110 selects devices to be assigned to functions, selects communication paths between functions, and determines the server configuration to execute the functions for the DF. The resource deployment scheduler 110 has a DF information storage unit 111, a DF deployment request reception unit 112, a device selection unit 113, a path selection unit 114, a server configuration determination unit 115, a server creation instruction unit 116, and a DF deployment destination notification unit 117.
[0091] The DF information storage unit 111 stores information about the DF executed by the infrastructure system 200. For example, the DF information storage unit 111 stores device allocation information 111a, route information 111b, server configuration information 111c, and the like. The device allocation information 111a is information indicating devices allocated to each function. The route information 111b is information indicating communication routes used for communication between functions. The server configuration information 111c is information indicating the configuration of the server.
[0092] The DF deployment request reception unit 112 receives a DF deployment request from the terminal 30. The DF deployment request includes DF definition information. The DF definition information indicates the configuration of the functions included in the DF, the connection relationships between the functions, and the required performance required for communication between the connected functions.
[0093] The device selection unit 113 selects a device to be allocated to a function included in a DF based on the DF definition information included in the DF deployment request. The device selection unit 113 sets the device allocated to the function in the device allocation information 111a.
[0094] The route selection unit 114 selects a communication route to be used for communication between functions, and sets information indicating the selected communication route in the route information 111b. The server configuration determination unit 115 determines the configuration of the server that executes each function in the DF. The server configuration determination unit 115 sets information indicating the determined server configuration in the server configuration information 111c.
[0095] The server creation instruction unit 116 instructs the infrastructure system manager 120 to create a server. The DF deployment destination notification unit 117 notifies the resource manager 130 of the deployment destinations of the functions included in the DF and the communication paths between the functions.
[0096] The infrastructure system manager 120 deploys LSNs for the infrastructure system 200. The infrastructure system manager 120 includes an infrastructure information storage unit 121, a device management unit 122, and an LSN deployment control unit 123.
[0097] The infrastructure information storage unit 121 stores information related to the infrastructure system 200. The infrastructure information storage unit 121 is an example of the system information 11a (see FIG. 1) shown in the first embodiment. For example, the infrastructure information storage unit 121 stores physical configuration information 121a, device information 121b, network status information 121c, and LSN configuration information 121d. The physical configuration information 121a is information indicating the hardware configuration in the infrastructure system. The device information 121b is information indicating the type, status, etc. of a device. The network status information 121c is information indicating the communication status of a PCIe or Ethernet network. The LSN configuration information 121d is information indicating the configuration of a constructed LSN.
[0098] The device management unit 122 manages the operation status of devices in the infrastructure system 200. For example, the device management unit 122 acquires information indicating the status of data communication between devices from the infrastructure system 200. For example, an LSN 290 constructed in the infrastructure system 200 includes a measurement unit 291. The measurement unit 291 transmits the amount of data communication between devices to the device management unit 122. Then, the device management unit 122 updates the network state information 121c based on the acquired amount of data communication.
[0099] The LSN deployment control unit 123 deploys an LSN in the infrastructure system 200 in accordance with a server creation instruction from the resource deployment scheduler 110, and operates the server on the LSN. The resource administration manager 130 deploys the function to the device in the infrastructure system 200 in accordance with the deployment destination notification from the DF deployment destination notification unit 117. The resource administration manager 130 includes a deployment destination interpretation unit 131 and a deployment execution unit 132.
[0100] The deployment destination interpretation unit 131 interprets the information on DF deployment notified by the DF deployment destination notification unit 117. The deployment execution unit 132 deploys the DF function to the device of the infrastructure system based on the interpretation result. Note that deploying a function means implementing the execution function of the function in the device and putting it into an operational state.
[0101] Note that the lines connecting the elements shown in Fig. 13 indicate part of the communication paths, and communication paths other than those shown in the figure can also be set. The function of each element shown in Fig. 13 can be realized, for example, by having a computer execute a program module corresponding to that element.
[0102] Hereinafter, the data used for DF deployment will be specifically described with reference to FIGS. 14 is a diagram illustrating an example of physical configuration information. The physical configuration information 121a includes records corresponding to the PCIe switch, the port of the PCIe switch, and the FPGA. Each record includes data on the location, the upstream (parent) location, the device ID, and the device type.
[0103] The location data is an identifier indicating the location of the device in the hardware configuration. The upstream (parent) location data is data indicating the location of the upstream (parent) device of the relevant device. The parent of a port is the switch which has that port. The parent of a PCIe switch is the port of the upstream PCIe switch to which that PCIe switch is connected. The parent of an FPGA is the port of the PCIe switch to which that FPGA is connected. The device id data is the device identifier. The device type data is the type of device. Device type data includes "pcie sw" which indicates a PCIe switch, "port" which indicates a PCIe switch port, and "fpga" which indicates an FPGA.
[0104] 15 is a diagram showing an example of device information. The device information 121b includes records corresponding to the CPU and the FPGA. Each record includes the device ID, device name, device type, model, location, housing ID, and status data.
[0105] The device id data is the device identifier. The device name data is the name of the device. The device type data is the type of device. Data indicating the device type includes "cpu", which indicates a CPU, and "fpga", which indicates an FPGA. The model data is the model name of the device. The location data is an identifier indicating the location of the device in the hardware configuration. The chassis id data is the identifier of the compute unit or PCIeBOX in which the device is installed. The status data is data indicating whether the device is assigned to an LSN. The status data of a device assigned to an LSN is "allocated". The status data of a device not assigned to an LSN is "available".
[0106] 16 is a diagram showing an example of network status information. The network status information 121c includes records corresponding to each of the PCIe switch and the Ethernet switch. Each record includes data such as a device ID, a switch name, a device type, a position, a delay, a total bandwidth, a bandwidth in use, and an available bandwidth.
[0107] The device id data is an identifier for the device. The switch name data is the name of the PCIe switch or Ethernet switch. The device type data is data indicating the type of device. The device type data for a PCIe switch is "pcie sw". The device type data for an Ethernet switch is "ethernet sw". The location data is an identifier that indicates the location of the device in the hardware configuration.
[0108] Latency data is data that indicates the delay time of communication via the corresponding device. Total bandwidth data is data that indicates the total bandwidth (maximum communication volume) of the corresponding device in Gbps. Bandwidth used data is data that indicates the communication volume used by the corresponding device in Gbps. Free bandwidth data is data that indicates the difference between the total bandwidth and the used bandwidth of the corresponding device in Gbps.
[0109] 17 is a diagram showing an example of LSN configuration information. The LSN configuration information 121d includes a record for each LSN. Each record includes data such as an LSNid, an LSN name, and a device id.
[0110] The LSNid data is the identifier of the LSN. The LSNname data is the name of the LSN. The deviceid data is the identifier of the device contained in the LSN. 18 is a diagram showing an example of device allocation information. The device allocation information 111a includes a record for each function in the DF. Each record includes the following data: func ID, device ID, device name, location, device type, and installed PCIeBOX.
[0111] The func id data is the identifier of the function. The device id data is the identifier of the device assigned to the function. The device name data is the name of the device assigned to the function. The location data is data indicating the location in the hardware configuration of the device assigned to the function. The device type data is data indicating the type of device assigned to the function. The installed PCIeBOX data is data indicating the PCIeBOX in which the device assigned to the function is installed.
[0112] 19 is a diagram showing an example of route information. The route information 111b includes a record for each communication route between a pair of adjacent functions on the DF. Each record includes data on the inter-func communication name, route type, and path (via SW).
[0113] The inter-func communication name data is the name of the communication path. The route type data is data that indicates the type of communication path. If the communication path is via a PCIe switch, the route type will be "via pcie". If the communication path is via an Ethernet switch, the route type will be "via ethernet". The path (via SW) data is data that indicates the connection relationship of the devices on the communication path.
[0114] 20 is a diagram showing an example of server configuration information. The server configuration information 111c includes a record for each server. Each record includes data on the server name, installed devices, the number of CPUs, installed CPUs, and installed memory capacity.
[0115] The server name data is the name of the server. The installed device data is a list of the device names of the accelerator devices installed in the server. The number of CPUs data is the number of CPUs installed in the server. The installed CPU data is a list of the CPU names of the CPUs installed in the server. The installed memory amount data is the storage capacity of the memory installed in the server as the main storage device.
[0116] Based on the data shown in Figures 14 to 20, the resource deployment scheduler 110 allocates appropriate devices to functions in the DF. For example, the resource deployment scheduler 110 generates server configuration information and DF deployment information based on the DF definition information.
[0117] Fig. 21 is a diagram showing an example of input / output data of the resource allocation scheduler. The DF definition information 52 input to the resource allocation scheduler 110 includes function information 52a, 52b, and 52c. The function information 52a, 52b, and 52c are set with the identifier "Id" of the function to be executed in the DF and the number of FPGAs to be used to execute the function. In the DF definition information 52, the function information of the functions that communicate (adjacent functions) is associated with each other (connected by a line in Fig. 21).
[0118] Inter-Func communication information 52d, 52e is set for the communication path between adjacent functions. The inter-Func communication information 52d, 52e includes required performance. The required performance includes, for example, the maximum delay time desired by the user who instructed the deployment of the DF and the minimum bandwidth desired by the user.
[0119] When the DF definition information 52 is input, the resource deployment scheduler 110 generates server configuration information 53a, 53b indicating the server that executes the DF, and DF deployment information 54 indicating the deployment contents of the DF to the server. The server configuration information 53a, 53b indicates the configuration of the server constructed for the DF (number of CPUs, memory amount, information on the devices installed). The DF deployment information 54 indicates information on the devices (e.g., device names) to be assigned to each function indicated in the DF definition information 52, and the type of communication path (path type) selected for communication between each Func.
[0120] The resource deployment scheduler 110 transmits the generated server configuration information 53a, 53b to the infrastructure system manager 120. The infrastructure system manager 120 then constructs an LSN in the infrastructure system 200 based on the server configuration information 53a, 53b, and causes the constructed LSN to function as a server.
[0121] The resource deployment scheduler 110 also transmits the generated DF deployment information 54 to the resource administration manager 130. The resource administration manager 130 then deploys the DF to the server in the infrastructure system 200 based on the DF deployment information 54.
[0122] 22 is a diagram showing the flow of data in the management computer. The DF definition information 52 input to the resource deployment scheduler 110 is acquired by the DF deployment request receiving unit 112. The DF deployment request receiving unit 112 transmits the acquired DF definition information 52 to the device selecting unit 113. The device selecting unit 113 refers to the physical configuration information 121a and the device information 121b, and determines a device to be allocated to the function indicated in the DF definition information 52. Then, the device selecting unit 113 updates the device allocation information 111a.
[0123] When device allocation according to DF definition information 52 is completed, the path selection unit 114 refers to network state information 121c and selects a communication path between functions. The path selection unit 114 updates path information 111b based on the communication path selection result. When communication path selection is completed, the server configuration determination unit 115 determines the configuration of the server that executes DF processing. The server configuration determination unit 115 updates server configuration information 111c based on the determined server configuration.
[0124] The server creation instruction unit 116 refers to the server configuration information 111c, and transmits a server creation instruction including server configuration information 53a, 53b indicating the server configuration determined according to the DF definition information 52 to the infrastructure system manager 120. The server configuration information 53a, 53b is received by the LSN deployment control unit 123 in the infrastructure system manager 120. The LSN deployment control unit 123 builds a server in the infrastructure system 200 according to the server configuration information 53a, 53b. For example, the LSN deployment control unit 123 builds an LSN 201 in the infrastructure system 200. The LSN 201 is built by combining a CPU in a compute unit group 200a included in the infrastructure system 200 and any device (storage, GPU, FPGA, etc.) in a device group 200b included in the infrastructure system 200.
[0125] Then, the LSN deployment control unit 123 installs the OS 201b in the constructed LSN 201. Furthermore, the LSN deployment control unit 123 operates the LSN 201 as a server. Furthermore, the LSN deployment control unit 123 executes the measurement unit 201a on the OS 201b. After constructing the LSN 201, the LSN deployment control unit 123 updates the LSN configuration information 121d.
[0126] The DF deployment destination notification unit 117 generates the DF deployment information 54 based on the device allocation information 111 a and the route information 111 b , and transmits a DF deployment notification including the DF deployment information 54 to the resource manager 130 .
[0127] In the resource management manager 130, the deployment destination interpretation unit 131 receives the DF deployment information 54. The deployment destination interpretation unit 131 interprets the devices to be assigned to the functions in the DF and the communication paths between the functions based on the DF deployment information 54. The deployment execution unit 132 causes the devices constituting the LSN 201 to execute the functions according to the results of the interpretation by the deployment destination interpretation unit 131. The deployment execution unit 132 also sets, for each function, communication paths between other functions according to the results of the interpretation by the deployment destination interpretation unit 131.
[0128] When the LSN 201 starts executing the processing of each function of the DF, the measurement unit 201a measures the communication load (e.g., the bandwidth used) for each communication path. The device management unit 122 of the infrastructure system manager 120 acquires information on the communication load measured by the measurement unit 201a and updates the network state information 121c.
[0129] Next, the resource allocation process executed by the resource allocation scheduler 110 will be described in detail. 23 is a flowchart showing an example of a procedure for resource allocation processing by the resource allocation scheduler. The processing shown in FIG. 23 will be described below in order of step numbers.
[0130] [Step S101] The DF deployment request reception unit 112 receives a DF deployment request including DF definition information from the terminal 30. The DF deployment request reception unit 112 transmits the DF definition information included in the received DF deployment request to the device selection unit 113.
[0131] [Step S102] The device selection unit 113 performs a device selection process. Through the device selection process, devices to be assigned to each of the functions indicated in the DF definition information are selected. The detailed procedure of the device selection process will be described later (see FIGS. 28 to 31).
[0132] [Step S103] The route selection unit 114 performs route selection processing, the details of which will be described later with reference to FIG. [Step S104] The server configuration determination unit 115 performs a server configuration determination process, the details of which will be described later (see FIG. 35).
[0133] <Step S105> The server creation instructing unit 116 transmits a server creation instruction to the infrastructure system manager 120. [Step S106] The DF deployment destination notification unit 117 notifies the resource manager 130 of the DF deployment destination.
[0134] The resource allocation process is carried out according to the above procedure. The device selection process, the route selection process, and the server configuration determination process will each be described in detail below. First, the device selection process will be described in detail.
[0135] 24 is a diagram showing an example of device selection. For example, assume that DF definition information 55 has been input to resource deployment scheduler 110. DF definition information 55 includes function information 55a to 55f for each of five functions. Function information 55a indicates function "m1". Function information 55b indicates function "m10". Function information 55c indicates function "m11". Function information 55d indicates function "m2". Function information 55e indicates function "m3". Function information 55f indicates function "m4".
[0136] According to the DF definition information 55, the function "m1" transmits data to the functions "m10" and "m11." The required performance of the communication path between the functions "m1" and "m10" is that the delay time is less than "200 μs" and the bandwidth is greater than "10 GB / s." The required performance of the communication path between the functions "m1" and "m11" is that the delay time is less than "300 μs" and the bandwidth is greater than "10 GB / s."
[0137] Both function "m10" and function "m11" transmit data to function "m2." The required performance of the communication path between function "m10" and function "m2" is that the latency is less than "100 μs" and the bandwidth is greater than "10 GB / s." The required performance of the communication path between function "m11" and function "m2" is that the latency is less than "150 μs" and the bandwidth is greater than "10 GB / s."
[0138] Function "m2" sends data to function "m3." The required performance of the communication path between function "m2" and function "m3" is that the latency is less than "500 μs" and the bandwidth is greater than "10 GB / s." Function "m3" sends data to function "m4." The required performance of the communication path between function "m3" and function "m4" is that the latency is less than "400 μs" and the bandwidth is greater than "10 GB / s."
[0139] When such DF definition information 55 is input, the device selection unit 113 first selects devices to be assigned to the functions at both ends of the inter-function communication that have the smallest delay time in the required performance. In the example of DF definition information 55, the delay time between function "m10" and function "m2" is the smallest. Therefore, function "m10" and function "m2" have the selection order "1", and the devices to be assigned to these functions are selected first.
[0140] Next, the device selection unit 113 selects a device to be assigned to an adjacent function relative to the function that initially selected the device to be assigned to. When there are multiple adjacent functions, the device selection unit 113 selects devices to be assigned to in the order of functions that communicate via inter-function communication with the shortest delay time in the required performance. In the DF definition information 55, the functions adjacent to function "m10" or function "m2" are function "m1", function "m11", and function "m3". If these functions are arranged in order of shortest delay time, the order is function "m11", function "m1", and function "m3". The device selection unit 113 selects devices to be assigned to each function in this order.
[0141] Thereafter, the device selection unit 113 selects devices to be assigned to functions adjacent to the function for which the device to be assigned has been selected, in order of the device with the shortest delay time required for performance. This process is repeated until there are no more functions for which a device to be assigned has not been selected. In this way, the device to be assigned to the function "m4" is selected.
[0142] In this example of DF definition information 55, the order of functions for selecting devices to be allocated is first "m10, m2", second "m11", third "m1", fourth "m3", and fifth "m4".
[0143] The criteria for selecting a device to be assigned to a function are as follows: [First stage] The device selection unit 113 selects devices to be allocated to each of all functions from one PCIeBOX. If the device selection unit 113 can select devices for all functions, the process is completed. If multiple allocatable PCIeBOXes are found, the device selection unit 113 selects a device in a PCIeBOX with the smallest bandwidth used by the PCIe switch in the PCIeBOX.
[0144] [Second stage] The device selection unit 113 selects devices from among the PCIeBOXes connected by PCIe switches. The device selection unit 113 completes the process if it has been able to select devices to be assigned to each of all functions. For example, the device selection unit 113 selects devices in each PCIeBOX in the order of the distance from the starting PCIeBOX (the number of PCIe switches via which the devices are passed) from the PCIeBOX with the largest number of free devices as the starting point.
[0145] [Third Stage] The device selection unit 113 selects a device from among the PCIe BOXes that are connected only by the Ethernet switch. If the device selection unit 113 has been able to select a device to be assigned to each of all functions, the process is completed.
[0146] [Fourth step] Since there is no selectable device, the device selection unit 113 determines that the device is not selectable and ends the process. FIG. 25 is a diagram showing an example of device selection completed in the first stage. For example, assume that DF definition information 56 has been input to resource deployment scheduler 110. DF definition information 56 includes function information 56a to 56d for each of four functions. Function information 56a indicates function "n1". Function information 56b indicates function "n2". Function information 56c indicates function "n3". Function information 56d indicates function "n4". The number of devices (FPGAs) to be allocated to functions "n1", "n2", and "n4" is "1". The number of devices (FPGAs) to be allocated to function "n3" is "2".
[0147] According to the DF definition information 56, function "n1" transmits data to function "n2." The required performance of the communication path between function "n1" and function "n2" is that the delay time is less than "100 μs" and the bandwidth is greater than "25 Mbps." Function "n2" transmits data to function "n3." The required performance of the communication path between function "n2" and function "n3" is that the delay time is less than "300 μs" and the bandwidth is greater than "25 Mbps." Function "n3" transmits data to function "n4." The required performance of the communication path between function "n3" and function "n4" is that the delay time is less than "500 μs" and the bandwidth is greater than "25 Mbps."
[0148] Regarding the functions shown in the DF definition information 56, the order of selection of devices to be allocated is first for function "n1" and function "n2", second for function "n3", and third for function "n4".
[0149] The infrastructure system 200 includes two PCIe switches 220 and 260 that are not connected to each other. The PCIe switch 220 is connected to compute units 211, 212 and PCIeBOXes 230, 240. The compute unit 211 has CPUs 211a, 211b and memories 211c, 211d. The compute unit 212 has CPUs 212a, 212b and memories 212c, 212d. The PCIeBOX 230 has a PCIe switch 231 and FPGAs 232 to 236. The PCIeBOX 240 has a PCIe switch 241 and FPGAs 242 to 246. The FPGAs 232 to 236 and 242 to 246 of the PCIeBOXes 230 and 240, respectively, are connected to an Ethernet switch 250.
[0150] The PCIe switch 260 is connected to a compute unit 213 and a PCIeBOX 270. The compute unit 213 has CPUs 213a and 213b and memories 213c and 213d. The PCIeBOX 270 has a PCIe switch 271 and FPGAs 272 to 276. The FPGAs 272 to 276 of the PCIeBOX 270 are connected to the Ethernet switch 250.
[0151] In Fig. 25, devices included in the existing LSN are shown shaded (the same applies to Figs. 26 and 27). In the PCIeBOX 230, all of the FPGAs 232 to 236 are empty. In the PCIeBOX 240, two FPGAs 243 and 244 are empty. In the PCIeBOX 270, only the FPGA 272 is empty.
[0152] In the example of FIG. 25, the total number of devices to be assigned to all functions in the DF is "5". There are five free FPGAs 232 to 236 in the PCIeBOX 230. Therefore, devices to be assigned to all functions can be selected from the devices in the PCIeBOX 230. For example, the FPGA 232 is assigned to function "n1", the FPGA 233 is assigned to function "n2", the FPGAs 234 and 235 are assigned to function "n3", and the FPGA 236 is assigned to function "n4". In this way, the device selection is completed in the first stage.
[0153] Fig. 26 is a diagram showing an example of device selection completed in the second stage. In the example of Fig. 26, the PCIeBOX 230 has four FPGAs 232 to 235 available. The PCIeBOX 240 has two FPGAs 242 and 243 available. The PCIeBOX 270 has only the FPGA 272 available.
[0154] In the example of FIG. 26, there is no PCIeBOX with five or more free FPGAs. Therefore, the first stage device selection cannot be applied. Therefore, the second stage device selection is performed. In the second stage device selection, the PCIeBOX230 with the largest number of free devices becomes the starting point (the first device selection source). Then, the free FPGAs 232 to 235 in the PCIeBOX230 are assigned to functions. Next, the devices to be assigned are selected from the PCIeBOX240 that is closest to the PCIeBOX230 via the PCIe switch. For example, the FPGA232 is assigned to function "n1", the FPGA233 is assigned to function "n2", the FPGAs 234 and 235 are assigned to function "n3", and the FPGA242 is assigned to function "n4". In this way, the device selection in the second stage is completed.
[0155] Fig. 27 is a diagram showing an example of device selection completed in the third stage. In the example of Fig. 27, the PCIeBOX 230 has two FPGAs 235 and 236 free. The PCIeBOX 240 has two FPGAs 243 and 244 free. The PCIeBOX 270 has only the FPGA 272 free.
[0156] In the example of FIG. 27, there is no PCIeBOX with five or more free FPGAs. Therefore, the first stage device selection cannot be applied. Therefore, the second stage device selection is performed first. In the second stage device selection, either PCIeBOX230 or 240 with the largest number of free devices becomes the starting point. In the example of FIG. 27, PCIeBOX230 becomes the starting point. Then, the free FPGAs 235 and 236 in PCIeBOX230 are assigned to the function. Next, the device to be assigned is selected from PCIeBOX240, which is closest to PCIeBOX230 via the PCIe switch.
[0157] In the example of FIG. 27, there are not enough free FPGAs with only PCIeBOX230 and PCIeBOX240. Therefore, the third stage of device selection is performed. In the third stage of device selection, device selection is also performed from PCIeBOX270 connected via Ethernet switch 250. As a result, the selection of five devices to be assigned to four functions is completed. For example, FPGA235 is assigned to function "n1", FPGA236 is assigned to function "n2", FPGA243 and 244 are assigned to function "n3", and FPGA272 is assigned to function "n4". In this way, device selection is completed in the third stage. If an assignable device is not found even in the device selection in the third stage, it is determined that the device is not selectable, and the process ends (fourth stage).
[0158] The device selection process will be described in detail below with reference to FIGS. 28 is a diagram (1 / 4) showing an example of the procedure of device selection processing. The processing shown in FIG. 28 will be described below in order of step numbers.
[0159] [Step S201] The device selection unit 113 refers to the device information 121b and searches for a PCIeBOX that can allocate devices to all functions indicated in the DF definition information. A PCIeBOX that can allocate devices to all functions is a PCIeBOX that has free devices equal to or greater than the total number of devices to be allocated to all functions of the DF.
[0160] [Step S202] The device selection unit 113 determines whether or not a PCIeBOX that can be assigned to all functions has been found. If a corresponding PCIeBOX is found, the device selection unit 113 proceeds to step S203. If a corresponding PCIeBOX is not found, the device selection unit 113 proceeds to step S211 (see FIG. 29).
[0161] [Step S203] The device selection unit 113 refers to the network state information 121c and selects the PCIeBOX with the largest available bandwidth from among the detected PCIeBOXes. Note that the device selection unit 113 may select the PCIeBOX with the smallest bandwidth in use.
[0162] [Step S204] The device selecting unit 113 assigns devices in the selected PCIe BOX to all functions in the DF. After that, the device selecting unit 113 ends the device selection process (see FIG. 31).
[0163] 29 is a diagram (2 / 4) showing an example of the procedure of the device selection process. The process shown in FIG. 29 will be described below in order of step numbers. [Step S211] The device selection unit 113 sets all inter-function communications as communication of interest.
[0164] [Step S212] The device selection unit 113 selects, from the communications of interest, an inter-function communication with the minimum delay time indicated in the required performance. If there are multiple inter-function communications with the minimum required delay time, the device selection unit 113 selects one of them.
[0165] [Step S213] The device selection unit 113 determines whether or not a device is assigned to both functions at both ends of the selected inter-function communication. If a device is not assigned to both functions, the device selection unit 113 proceeds to step S216. If a device is assigned to at least one of the functions at one end, the device selection unit 113 proceeds to step S214.
[0166] [Step S214] The device selection unit 113 determines whether or not a device has been assigned to the function at one end of the selected inter-function communication. If a device has not been assigned to the function at one end, the device selection unit 113 proceeds to step S231 (see FIG. 30). If devices have been assigned to the functions at both ends, the device selection unit 113 proceeds to step S215.
[0167] [Step S215] The device selection unit 113 excludes the selected inter-function communication from the communication of interest, and proceeds to step S212. [Step S216] The device selection unit 113 refers to the device information 121b and searches for a PCIeBOX that can allocate a device to the functions on both ends of the selected inter-function communication. A PCIeBOX that can allocate a device to the functions on both ends is a PCIeBOX that has two or more free devices.
[0168] [Step S217] The device selection unit 113 determines whether or not a PCIeBOX capable of allocating a device to functions at both ends of the selected inter-function communication has been detected. If the device selection unit 113 finds a corresponding PCIeBOX, the process proceeds to step S218. If the device selection unit 113 does not find a corresponding PCIeBOX, the process proceeds to step S219.
[0169] [Step S218] The device selection unit 113 assigns devices of a PCIeBOX with the largest number of free devices to the functions on both ends of the selected inter-function communication among the PCIeBOXes to which devices can be assigned to the functions on both ends of the selected inter-function communication. The device selection unit 113 then proceeds to the process of step S251 (see FIG. 31).
[0170] [Step S219] The device selection unit 113 refers to the device information 121b and searches for a combination of PCIeBOXes that can allocate devices to functions on both ends of the selected inter-function communication. A combination of PCIeBOXes that can allocate devices to functions on both ends is a combination of two PCIeBOXes that have at least one free device.
[0171] [Step S220] The device selecting unit 113 determines whether or not a combination of PCIeBOXes that allows devices to be assigned to functions at both ends has been found. If there is at least one corresponding combination of PCIeBOXes, the device selecting unit 113 proceeds to step S220. If there is no corresponding combination of PCIeBOXes, the device selecting unit 113 proceeds to step S237 (see FIG. 30).
[0172] [Step S221] The device selection unit 113 identifies a combination of PCIeBOXes with the shortest distance from among combinations of PCIeBOXes that can allocate devices to functions at both ends of the selected inter-function communication. Then, the device selection unit 113 allocates each device of the identified combination of PCIeBOXes to the functions at both ends of the selected inter-function communication.
[0173] The device selection unit 113 regards the number of PCIe switches to be passed through as the distance of the combination of PCIeBOXes for communication via the PCIe switches. Furthermore, the device selection unit 113 determines that the distance of communication via the PCIe switches is shorter than that of communication via Ethernet.
[0174] The device selection unit 113 then advances the process to step S251 (see FIG. 31). 30 is a diagram (3 / 4) showing an example of the procedure of the device selection process. The process shown in FIG. 30 will be described below in order of step number.
[0175] [Step S231] The device selection unit 113 selects a PCIe BOX to which a device has been assigned to the function at one end of the selected inter-function communication. [Step S232] The device selection unit 113 determines whether the device of the selected PCIeBOX can be assigned to the function at the other end point of the selected inter-function communication. If the device selection unit 113 determines that the device can be assigned, the process proceeds to step S233. If the device selection unit 113 determines that the device cannot be assigned, the process proceeds to step S234.
[0176] [Step S233] The device selecting unit 113 assigns the device of the selected PCIe BOX to a function in the selected inter-function communication to which no device has been assigned. The device selecting unit 113 then proceeds to step S251 (see FIG. 31).
[0177] [Step S234] The device selection unit 113 searches for a PCIe BOX to which a device can be allocated to an unallocated function in the selected inter-function communication.
[0178] [Step S235] The device selecting unit 113 determines whether or not a PCIeBOX to which a device can be allocated is found. If a corresponding PCIeBOX is found, the device selecting unit 113 proceeds to step S236. If a corresponding PCIeBOX is not found, the device selecting unit 113 proceeds to step S237.
[0179] [Step S236] The device selection unit 113 assigns the device of the PCIe BOX that is the shortest distance from the communication partner in the selected inter-function communication to the function in the selected inter-function communication that has not been assigned a device. The device selection unit 113 then proceeds to step S251 (see FIG. 31).
[0180] [Step S237] The device selection unit 113 determines that it is impossible to select a device to be assigned to the function, and ends the device selection process with an error (see FIG. 31). 31 is a diagram (4 / 4) showing an example of the procedure of the device selection process. The process shown in FIG. 31 will be described below in order of step number.
[0181] [Step S251] The device selection unit 113 determines whether there is inter-function communication that has been device-assigned to only one of the functions. If there is inter-function communication, the device selection unit 113 proceeds to step S252. If there is no inter-function communication, the device selection unit 113 proceeds to step S253.
[0182] [Step S252] The device selection unit 113 sets the inter-function communication that has been assigned to only one of the functions as the communication of interest. For example, if there remains an inter-function communication that was set as the communication of interest in the previous process of step S252, the device selection unit 113 adds a new inter-function communication to be set as the communication of interest after the inter-function communication. The device selection unit 113 then proceeds to step S212 (see FIG. 29).
[0183] [Step S253] The device selection unit 113 determines whether all inter-function communications indicated in the DF definition information have been processed. Processed inter-function communications are those for which device allocation has been completed for the functions at both ends. If all inter-function communications have been processed, the device selection unit 113 ends the device selection process. If there is any unprocessed inter-function communication, the device selection unit 113 proceeds to step S254.
[0184] [Step S254] The device selection unit 113 sets the unprocessed inter-function communication as a communication of interest. The device selection unit 113 then proceeds to step S212 (see FIG. 29).
[0185] In this manner, device allocation to each function in the DF is performed. The device allocation results are set in the device allocation information 111a. After the device selection process is completed, the path selection unit 114 then executes a path selection process.
[0186] 32 is a diagram showing an example of route selection. The route selection unit 114 selects a communication route in order of inter-function communication with the shortest delay time of the required performance, based on the following criteria. [Path Selection Criterion 1] When PCIe communication is not possible, the path selection unit 114 selects a communication path via an Ethernet switch.
[0187] [Path Selection Criterion 2] When PCIe communication is possible and the path is within a single PCIe BOX, the path selection unit 114 selects a communication path via a PCIe switch. [Path Selection Criterion 3] When PCIe communication is possible and the path spans multiple PCIe BOXes, the path selection unit 114 selects a path based on the following criteria.
[0188] The path selection unit 114 selects a communication path via an Ethernet switch when both the required performance of delay time and bandwidth are satisfied even via Ethernet. The path selection unit 114 also selects a communication path via an Ethernet switch when the required performance of either delay time or bandwidth cannot be satisfied even via PCIe communication. The path selection unit 114 selects communication via a PCIe switch when the required performance cannot be satisfied via Ethernet communication but can be satisfied via PCIe communication.
[0189] The latency of a communication path passing through multiple PCIe switches is the sum of the latency of each of the PCIe switches. The bandwidth of a communication path passing through multiple PCIe switches is the minimum available bandwidth for each path between the PCIe switches on the communication path.
[0190] FIG. 32 shows an example of the selection of communication paths between functions when deploying a DF indicated in DF definition information 57. DF definition information 57 includes function information 57a to 57e for each of five functions. Function information 57a indicates function "m1". Function information 57b indicates function "m2". Function information 57c indicates function "m3". Function information 57d indicates function "m4". Function information 57e indicates function "m5". The number of devices (FPGAs) assigned to each of functions "m1", "m2", "m3", "m4" and "m5" is "1".
[0191] According to the DF definition information 57, the function "m1" transmits data to the function "m2". The required performance of the inter-function communication "c01" between the functions "m1" and "m2" is that the delay time is less than "100 μs" and the bandwidth is greater than "25 Gbps". The function "m2" transmits data to the function "m3". The required performance of the inter-function communication "c02" between the functions "m2" and "m3" is that the delay time is less than "1 μs" and the bandwidth is greater than "50 Gbps". The function "m3" transmits data to the function "m4". The required performance of the inter-function communication "c03" between the functions "m3" and "m4" is that the delay time is less than "1 μs" and the bandwidth is greater than "25 Gbps". The function "m4" transmits data to the function "m5". The required performance of the inter-function communication "c04" between the function "m4" and the function "m5" is that the delay time is less than "1.5 μs" and the bandwidth is greater than "25 Gbps".
[0192] The infrastructure system 200 shown in Fig. 32 includes a compute unit 214 and a PCIe BOX 280 in addition to the configuration shown in Fig. 25. The compute unit 214 has CPUs 214a and 214b and memories 214c and 214d. The PCIe BOX 280 has a PCIe switch 281 and a plurality of FPGAs 282,...
[0193] Device allocation has already been completed for each function indicated in the DF definition information 57. The FPGA 233 in the PCIeBOX 230 is assigned to the function "m1". The FPGA 234 in the PCIeBOX 230 is assigned to the function "m2". The FPGA 243 in the PCIeBOX 240 is assigned to the function "m3". The FPGA 272 in the PCIeBOX 270 is assigned to the function "m4". The FPGA 282 in the PCIeBOX 280 is assigned to the function "m5".
[0194] The delay time of the PCIe switch 220 is "50 ns". The delay time of the PCIe switch 231 is "50 ns". The delay time of the PCIe switch 241 is "50 ns". The delay time of the PCIe switch 271 is "50 ns". The delay time of the PCIe switch 281 is "50 ns". The available bandwidth between the PCIe switch 220 and the PCIe switch 231 is "64 Gbps". The available bandwidth between the PCIe switch 220 and the PCIe switch 241 is "32 Gbps". The available bandwidth between the PCIe switch 260 and the PCIe switch 271 is "48 Gbps". The available bandwidth between the PCIe switch 260 and the PCIe switch 281 is "110 Gbps". The delay time of the Ethernet switch 250 is "2 μs". The available bandwidth of the Ethernet switch 250 is 96 Gbps.
[0195] In this state, the route selection in the infrastructure system 200 is as follows. The function “m1” and the function “m2” are assigned a device of the same PCIeBOX 230. Therefore, the communication path of the inter-function communication “c01” between the function “m1” and the function “m2” is determined to be the path that passes through the PCIe switch 231.
[0196] Different devices of the PCIeBOX 230 and 240 are assigned to the function "m2" and the function "m3", respectively. The area with the smallest available bandwidth in the PCIe communication between these PCIeBOXes 230 and 240 is between the PCIe switch 220 and the PCIe switch 241, and the available bandwidth is "32 Gbps". This available bandwidth is smaller than the minimum bandwidth "50 Gbps" indicated in the required performance of the inter-function communication "c02" between the function "m2" and the function "m3". Therefore, the communication path of the inter-function communication "c02" between the function "m2" and the function "m3" is determined to be the path that passes through the Ethernet switch 250.
[0197] Different devices, PCIeBOX 240 and 270, are assigned to function "m3" and function "m4", respectively. There is no communication path via a PCIe switch between these PCIeBOXes 240 and 270. Therefore, the communication path for inter-function communication "c03" between function "m3" and function "m4" is determined to be the path via the Ethernet switch 250.
[0198] Different devices of PCIeBOX 270, 280 are assigned to function "m4" and function "m5", respectively. The area with the least available bandwidth in PCIe communication between these PCIeBOXes 270, 280 is between the PCIe switch 260 and the PCIe switch 271, and the available bandwidth is "48 Gbps". This is more available bandwidth than the minimum bandwidth "25 Gbps" indicated in the required performance of inter-function communication "c04" between function "m4" and function "m5". Therefore, the communication path of inter-function communication "c04" between function "m4" and function "m5" is determined to be the path that passes through the PCIe switches 260, 271, 281.
[0199] Next, the procedure of the route selection process will be described in detail. 33 is a flowchart illustrating an example of a procedure for a route selection process. The process shown in FIG. 33 will be described below in order of step number.
[0200] [Step S301] The path selection unit 114 selects, one by one, unprocessed inter-function communications from among the unprocessed inter-function communications in ascending order of delay time indicated in the required performance.
[0201] [Step S302] The path selection unit 114 identifies a communication path available for communication between the selected functions. [Step S303] The route selection unit 114 calculates the delay time and bandwidth of the identified communication route.
[0202] [Step S304] The path selection unit 114 determines whether or not the identified communication paths include a communication path for PCIe communication. If the identified communication paths include a communication path for PCIe communication, the path selection unit 114 proceeds to step S305. If the identified communication paths include no communication path for PCIe communication, the path selection unit 114 proceeds to step S309.
[0203] [Step S305] The path selection unit 114 determines whether the communication path via PCIe is a communication path within the same PCIeBOX. If the communication path is within the PCIeBOX, the path selection unit 114 proceeds to step S308. If the communication path is not within the PCIeBOX, the path selection unit 114 proceeds to step S306.
[0204] [Step S306] The path selection unit 114 determines whether the required performance of the selected inter-function communication is satisfied by the communication path for Ethernet communication. If the required performance is satisfied, the path selection unit 114 proceeds to step S309. If the required performance is not satisfied, the path selection unit 114 proceeds to step S307.
[0205] [Step S307] The path selection unit 114 determines whether the required performance of the communication between the selected functions can be satisfied by PCIe communication. If the required performance is satisfied by PCIe communication, the path selection unit 114 proceeds to step S308. If the required performance is not satisfied by PCIe communication, the path selection unit 114 proceeds to step S309.
[0206] [Step S308] The path selection unit 114 selects a communication path via a PCIe switch (PCIe communication) as the communication path for the selected inter-function communication. The path selection unit 114 then proceeds to step S310.
[0207] [Step S309] The path selection unit 114 selects a communication path via an Ethernet switch (Ethernet communication) as the communication path for the selected inter-function communication. [Step S310] The path selection unit 114 updates the bandwidth of the selected communication path. For example, the path selection unit 114 subtracts the bandwidth in the required performance of the inter-function communication for which the communication path was selected from the available bandwidth of the selected communication path.
[0208] [Step S311] The route selection unit 114 determines whether there is any inter-function communication for which the selection process of the communication route has not been processed. If there is any inter-function communication for which the selection process of the communication route has not been processed, the route selection unit 114 proceeds to step S301. If communication routes have been selected for all inter-function communications, the route selection unit 114 ends the route selection process.
[0209] In this manner, the communication paths for each of the inter-function communications are selected. When the selection of the communication paths is completed, the server configuration determination unit 115 performs a server configuration determination process. 34 is a diagram showing an example of server configuration selection. The server configuration determination unit 115 selects the server configuration based on the following criteria.
[0210] [Server Configuration Decision Criterion 1] The server configuration decision unit 115 configures functions connectable via a PCIe switch into one server. [Server Configuration Decision Criterion 2] The server configuration decision unit 115 separates functions that cannot be connected via a PCIe switch (can only be connected via an Ethernet switch) into separate servers.
[0211] [Server configuration determination criterion 3] The server configuration determination unit 115 mounts a management CPU and memory for each server. The number of CPUs and memories to be mounted is, for example, given to the server configuration determination unit 115 in advance. In the example of Fig. 34, it is assumed that one CPU and 16 GB of memory are previously set for each server.
[0212] For example, it is assumed that two FPGAs 233 and 234 in the PCIeBOX 230, two FPGAs 243 and 244 in the PCIeBOX 240, and an FPGA 272 in the PCIeBOX 270 are assigned to the function of DF. At this time, the PCIeBOX 230 and the PCIeBOX 240 are connected via a PCIe switch 220. Therefore, the functions to which the FPGAs 233, 234, 243, and 244 in these PCIeBOXes 230 and 240 are assigned are configured in one server 71. The PCIeBOX 270 does not have a communication path via a PCIe switch between itself and the PCIeBOX 240, which is the other party in the inter-function communication. Therefore, the function to which the FPGA 272 in the PCIeBOX 270 is assigned is configured in another server 72.
[0213] The server 71 includes a CPU 211b and a memory 211d, while the server 72 includes a CPU 213b and a memory 213d. When the server configuration is selected, the server configuration determination unit 115 generates server configuration information for each server. In the example of Fig. 34, server configuration information 58 and 59 are generated for the two servers 71 and 72, respectively.
[0214] 35 is a flowchart illustrating an example of a procedure for a server configuration determination process. The process illustrated in FIG. 35 will be described below in order of step numbers. <Step S401> The server configuration determination unit 115 selects one of the functions for which server configuration information indicating a server including an allocated device has not yet been created.
[0215] [Step S402] The server configuration determination unit 115 identifies a device to be allocated to the selected function and a PCIeBOX in which the device is mounted. [Step S403] The server configuration determination unit 115 acquires a list of other PCIe BOXes connectable to the identified PCIe BOX via PCIe communication.
[0216] [Step S404] The server configuration determination unit 115 identifies devices in other PCIe BOXes shown in the acquired list that are assigned to functions in the same DF as the selected function.
[0217] [Step S405] The server configuration determination unit 115 creates server configuration information for a server that includes the devices identified in steps S401 and S405, a predetermined number of CPUs, and a predetermined amount of memory.
[0218] [Step S406] The server configuration determination unit 115 determines whether there is any function for which server configuration information indicating a server including an allocated device has not been created. If there is such a function, the server configuration determination unit 115 proceeds to step S401. If server configuration information of servers including allocated devices has been created for all functions, the server configuration determination unit 115 ends the server configuration determination process.
[0219] In this way, the server configuration is determined. Then, based on the server configuration information indicating the determined server configuration, an LSN is constructed in the infrastructure system, and a server is implemented in the LSN. Furthermore, the device included in the implemented server realizes the function to which the device is assigned.
[0220] Hereinafter, specific examples of resource allocation will be described with reference to FIGS. FIG. 36 is a diagram (1 / 4) showing a first example of resource allocation. In the example of FIG. 36, resource allocation processing is performed based on DF definition information 61. DF definition information 61 includes function information 61a to 61d for each of four functions. Function information 61a indicates function "n1". Function information 61b indicates function "n2". Function information 61c indicates function "n3". Function information 61d indicates function "n4". The number of devices (FPGAs) allocated to each of functions "n1", "n2", "n3", and "n4" is "1".
[0221] According to the DF definition information 61, function "n1" transmits data to function "n2". The required performance of inter-function communication "c01" between function "n1" and function "n2" is that the delay time is less than "300 μs" and the bandwidth is wider than "10 Gbps". Function "n2" transmits data to function "n3". The required performance of inter-function communication "c02" between function "n2" and function "n3" is that the delay time is less than "400 μs" and the bandwidth is wider than "10 Gbps". Function "n3" transmits data to function "n4". The required performance of inter-function communication "c03" between function "n3" and function "n4" is that the delay time is less than "500 μs" and the bandwidth is wider than "5 Gbps".
[0222] The delay time of the PCIe switch 220 is "50 ns". The delay time of the PCIe switch 231 is "50 ns". The delay time of the PCIe switch 241 is "50 ns". The delay time of the PCIe switch 271 is "50 ns". The delay time of the PCIe switch 281 is "50 ns". The available bandwidth between the PCIe switch 220 and the PCIe switch 231 is "64 Gbps". The available bandwidth between the PCIe switch 220 and the PCIe switch 241 is "72 Gbps". The available bandwidth between the PCIe switch 260 and the PCIe switch 271 is "48 Gbps". The available bandwidth between the PCIe switch 260 and the PCIe switch 281 is "110 Gbps". The delay time of the Ethernet switch 250 is "2 μs". The available bandwidth of the Ethernet switch 250 is "96 Gbps".
[0223] The PCIeBOX 230 has three free devices. The PCIeBOX 240 has five free devices. The PCIeBOX 270 has two free devices. The PCIeBOX 280 has seven free devices.
[0224] When performing resource allocation based on the DF definition information 61 in such an infrastructure system 200, first the device selection unit 113 recognizes the requested number of devices (FPGA×4) required for DF allocation based on the DF definition information 61. Next, the device selection unit 113 compares the requested number of devices with the number of free devices in each PCIeBOX, and identifies a PCIeBOX having free devices equal to or greater than the requested number of devices. In the example of Fig. 36, PCIeBOX240 and PCIeBOX280 have free devices equal to or greater than the requested number of devices.
[0225] Since there are multiple extracted PCIeBOXes, the device selection unit 113 compares the available bandwidth between the internal PCIe switches 241, 281 and the upper PCIe switch for each of the PCIeBOX 240 and the PCIeBOX 280. In the example of Fig. 36, the PCIeBOX 280 has a larger available bandwidth. Therefore, the device selection unit 113 sets the PCIeBOX 280 with the largest available bandwidth as the deployment destination of the function (the source from which the device to be assigned is selected). Then, the device selection unit 113 selects a device to be assigned to each function from the four available devices in the PCIeBOX 280.
[0226] Fig. 37 is a diagram (2 / 4) showing a first example of resource deployment. Fig. 37 shows the state after the device to be allocated is selected. In Fig. 37, the devices 283 to 286 allocated to the functions in the PCIeBOX 280 are shown with the identifiers (n1 to n4) of the functions to which they are allocated.
[0227] When the device selection is completed, the path selection unit 114 starts the path selection process. Fig. 38 is a diagram (3 / 4) showing a first example of resource allocation. In Fig. 38, the communication path selected for each inter-function communication is indicated by a thick arrow connecting devices.
[0228] First, the path selection unit 114 selects the inter-function communication "c01" with the minimum delay time in the required performance. Next, the path selection unit 114 specifies the communication path of the selected inter-function communication "c01". The devices 283, 284 in the PCIeBOX 280 are both assigned to the functions "n1" and "n2" at both ends of the inter-function communication "c01". Therefore, communication paths selectable for the inter-function communication "c01" include PCIe communication via the PCIe switch 281 and Ethernet communication via the Ethernet switch 250. The PCIe communication is communication that passes only through the PCIe switch 281 in the PCIeBOX 280. Therefore, the path selection unit 114 selects the PCIe communication as the communication path for the inter-function communication "c01".
[0229] Next, the path selection unit 114 selects inter-function communication "c02" which has the next shortest delay time in the required performance. Devices 284, 285 in the PCIeBOX 280 are both assigned to the functions on both ends of the inter-function communication "c02". Therefore, the path selection unit 114 selects PCIe communication as the communication path for the inter-function communication "c02". Similarly, the path selection unit 114 selects PCIe communication as the communication path for the inter-function communication "c03".
[0230] In the example of Fig. 38, the selected communication paths are all PCIe communications within one PCIeBOX. In this case, communication across multiple PCIe switches does not occur. Therefore, the available bandwidth is not updated in accordance with the path selection process.
[0231] When the route selection process is completed, the server configuration determination unit 115 determines the server configuration. Fig. 39 is a diagram (4 / 4) showing a first example of resource deployment. Fig. 39 shows devices included in server 73 whose configuration has been determined.
[0232] The server configuration determination unit 115 selects, for example, the function "n1" and identifies the device 283 to be assigned and the PCIeBOX 280 in which the device 283 is mounted. Next, the server configuration determination unit 115 acquires a list of PCIeBOXes that can be connected to the PCIeBOX 280 via a PCIe switch. The list includes the PCIeBOX 270.
[0233] The server configuration determination unit 115 determines the devices 283-286 allocated to functions among the devices in the PCIeBOX 270 and the PCIeBOX 280, the specified number of CPUs, and the specified capacity of memory as components of the server 73. In the example of Fig. 39, it is assumed that the number of CPUs is "2" and the memory capacity is "520 MB". For example, the server 73 includes four devices 283-286 allocated to functions in the PCIeBOX 280, two CPUs 214a, 214b, and two memories 214c, 214d in the compute unit 214.
[0234] In this way, a device to be assigned to a function is selected from one PCIeBOX 280. This allows the server 73 to perform all inter-function communications through PCIe communications within the PCIeBOX. As a result, the server 73 can execute DF efficiently.
[0235] FIG. 40 is a diagram (1 / 7) showing a second example of resource allocation. In the example of FIG. 40, resource allocation processing is performed based on DF definition information 62. DF definition information 62 includes function information 62a to 62e for each of five functions. Function information 62a indicates function "m1". Function information 62b indicates function "m2". Function information 62c indicates function "m3". Function information 62d indicates function "m4". Function information 62e indicates function "m5". The number of devices (FPGAs) allocated to each of functions "m1", "m2", "m3", "m4" and "m5" is "1".
[0236] According to the DF definition information 62, the function "m1" transmits data to the function "m2" and the function "m3". The required performance of the inter-function communication "c01" between the function "m1" and the function "m2" is that the delay time is less than "200 ns" and the bandwidth is wider than "10 Gbps". The required performance of the inter-function communication "c02" between the function "m1" and the function "m3" is that the delay time is less than "300 ns" and the bandwidth is wider than "10 Gbps". The function "m2" transmits data to the function "m4". The required performance of the inter-function communication "c03" between the function "m2" and the function "m4" is that the delay time is less than "50 ns" and the bandwidth is wider than "30 Gbps". The function "m3" transmits data to the function "m4". The required performance of inter-function communication "c04" between function "m3" and function "m4" is that the delay time is less than "75 ns" and the bandwidth is wider than "20 Gbps". Function "m4" transmits data to function "m5". The required performance of inter-function communication "c05" between function "m4" and function "m5" is that the delay time is less than "500 ns" and the bandwidth is wider than "5 Gbps".
[0237] 41 is a diagram (2 / 7) showing a second example of resource allocation. In FIG. 41, the usage status of the infrastructure system 200 is shown. The delay time of the PCIe switch 220 is "50 ns". The delay time of the PCIe switch 231 is "50 ns". The delay time of the PCIe switch 241 is "50 ns". The delay time of the PCIe switch 260 is "50 ns". The delay time of the PCIe switch 271 is "50 ns". The delay time of the PCIe switch 281 is "50 ns". The available bandwidth between the PCIe switch 220 and the PCIe switch 231 is "96 Gbps". The available bandwidth between the PCIe switch 220 and the PCIe switch 241 is "64 Gbps". The available bandwidth between the PCIe switch 260 and the PCIe switch 271 is "48 Gbps". The available bandwidth between the PCIe switch 260 and the PCIe switch 281 is "48 Gbps". The delay time of the Ethernet switch 250 is "2 μs". The available bandwidth of the Ethernet switch 250 is "96 Gbps".
[0238] The PCIeBOX 230 has three free devices. The PCIeBOX 240 has one free device. The PCIeBOX 270 has two free devices. The PCIeBOX 280 has no free devices.
[0239] When performing resource allocation based on the DF definition information 62 in such an infrastructure system 200, first, the device selection unit 113 recognizes the number of requested devices (FPGA×5) required for DF allocation based on the DF definition information 62. Next, the device selection unit 113 compares the number of requested devices with the number of free devices in each PCIeBOX, and identifies a PCIeBOX having free devices equal to or greater than the number of requested devices. In the example of FIG. 41, there is no corresponding PCIeBOX.
[0240] Therefore, the device selection unit 113 focuses on all inter-function communications and selects the inter-function communication "c03" with the shortest delay time of the required performance. Since the functions "m2" and "m4" at both ends of the inter-function communication "c03" have no devices assigned, the device selection unit 113 searches for a PCIeBOX that can assign devices to the functions "m2" and "m4". In the example of FIG. 41, the PCIeBOXes 230 and 270 correspond. The device selection unit 113 selects the PCIeBOX 230 with the largest number of free devices among the corresponding PCIeBOXes 230 and 270. The device selection unit 113 assigns the devices of the selected PCIeBOX 230 to the functions "m2" and "m4" at both ends of the selected inter-function communication "c03".
[0241] Next, the device selection unit 113 focuses on other inter-function communications "c01", "c04", and "c05" whose endpoints are the currently assigned functions "m2" and "m4". The device selection unit 113 selects the inter-function communication "c04" that has the shortest delay time in required performance among the inter-function communications "c01", "c04", and "c05" that it is focusing on.
[0242] A device has already been assigned to the function "m4" at one end of the selected inter-function communication "c04". Therefore, the device selection unit 113 selects the PCIeBOX 230 having a device assigned to the function "m4" to which a device has already been assigned. The device selection unit 113 determines whether the device of the selected PCIeBOX 230 can also be assigned to the function "m3" on the unassigned side of the selected inter-function communication "c04". In the example of FIG. 41, since assignment is possible, an available device in the selected PCIeBOX 230 is assigned to the function "m3".
[0243] Fig. 42 is a diagram (3 / 7) showing a second example of resource deployment. Fig. 42 shows a state in which devices are assigned to functions "m2", "m3", and "m4". Device 237 in PCIeBOX230 is assigned to function "m2". Device 239 in PCIeBOX230 is assigned to function "m3". Device 238 in PCIeBOX230 is assigned to function "m4".
[0244] The device selection unit 113 adds the inter-function communication "c02" having the currently assigned function "m3" as an end point to the communication of interest, in addition to the remainder of the previous communication of interest (inter-function communications "c01" and "c05").The device selection unit 113 then selects the inter-function communication "c01" that has the shortest delay time in required performance among the communications of interest.
[0245] A device has already been assigned to the function "m2" at one end of the selected inter-function communication "c01". Therefore, the device selection unit 113 selects the PCIeBOX 230 having a device assigned to the function "m2" to which a device has already been assigned. The device selection unit 113 determines whether the device of the selected PCIeBOX 230 can also be assigned to the function "m1" on the device-unassigned side of the selected inter-function communication "c01".
[0246] In the example of Fig. 42, allocation is not possible, so the device selection unit 113 searches for a PCIeBOX that can allocate a device to the function "m1". In the example of Fig. 42, PCIeBOXes 240 and 270 apply. From among these PCIeBOXes, the device selection unit 113 changes the selection to the PCIeBOX 240 that is the shortest distance from the selected PCIeBOX 230. Then, the device selection unit 113 allocates an available device in the selected PCIeBOX 240 to the function "m1".
[0247] Fig. 43 is a diagram (4 / 7) showing a second example of resource deployment. Fig. 43 shows a state in which devices are assigned to functions "m1", "m2", "m3", and "m4". The device 249 in the PCIeBOX 240 is assigned to the function "m1" to which a new device assignment has been performed.
[0248] The device selection unit 113 maintains the remainder of the previous communication of interest (inter-function communications "c05" and "c02") as the communication of interest. Of the inter-function communications "c01" and "c02" with the currently assigned function "m1" as its endpoint, the inter-function communication "01" has already been assigned devices to the functions on both ends, and the inter-function communication "c02" is already the communication of interest. Therefore, no additional communication of interest is added.
[0249] The device selection unit 113 selects the inter-function communication "c02" which has the shortest delay time of the required performance among the communications of interest (inter-function communications "c05" and "c02"). Since the functions "m1" and "m3" on both ends of the selected inter-function communication "c02" have both been assigned, the device selection unit 113 excludes the inter-function communication "c02" from the communications of interest. Then, the device selection unit 113 selects the inter-function communication "c05".
[0250] A device has already been assigned to the function "m4" at one end of the selected inter-function communication "c05". Therefore, the device selection unit 113 selects the PCIeBOX 230 having a device assigned to the function "m4" to which a device has already been assigned. The device selection unit 113 determines whether the device of the selected PCIeBOX 230 can also be assigned to the function "m5" on the unallocated side of the selected inter-function communication "c05".
[0251] In the example of Fig. 43, allocation is not possible, so the device selection unit 113 searches for a PCIeBOX that can allocate a device to the function "m5". In the example of Fig. 43, the PCIeBOX270 applies. Therefore, the device selection unit 113 changes the selection destination to the PCIeBOX270. Then, the device selection unit 113 allocates an available device in the selected PCIeBOX270 to the function "m5".
[0252] Fig. 44 is a diagram (5 / 7) showing a second example of resource allocation. Fig. 44 shows a state in which devices have been assigned to all functions. The device 279 in the PCIeBOX 270 is assigned to the function "m5" to which a new device has been assigned.
[0253] When the device selection is completed, the path selection unit 114 starts the path selection process. Fig. 45 is a diagram (6 / 7) showing a second example of resource allocation. In Fig. 45, the communication path selected for each inter-function communication is indicated by a thick arrow connecting devices.
[0254] The path selection unit 114 selects the inter-function communication "c03" that minimizes the delay time in the required performance. Next, the path selection unit 114 specifies the communication path of the selected inter-function communication "c03". The devices 237, 238 in the PCIeBOX 230 are both assigned to the functions "m2" and "m4" at both ends of the inter-function communication "c03". Therefore, communication paths selectable for the inter-function communication "c03" include PCIe communication via the PCIe switch 231 and Ethernet communication via the Ethernet switch 250. The PCIe communication is communication that passes only through the PCIe switch 231 in the PCIeBOX 230. Therefore, the path selection unit 114 selects PCIe communication as the communication path for the inter-function communication "c03".
[0255] Next, the path selection unit 114 selects inter-function communication "c04" with the next shortest delay time in the required performance. The devices 239 and 238 in the PCIeBOX 230 are both assigned to the functions "m3" and "m4" at both ends of the inter-function communication "c04". Therefore, the path selection unit 114 selects PCIe communication as the communication path for the inter-function communication "c04".
[0256] Next, the path selection unit 114 selects the inter-function communication “c01” having the next shortest delay time in the required performance. Next, the path selection unit 114 identifies the communication path of the selected inter-function communication “c01”. The device 249 in the PCIeBOX 240 is assigned to the function “m1” at one end of the inter-function communication “c01”, and the device 237 in the PCIeBOX 230 is assigned to the function “m2” at the other end. In this case, the communication path of the PCIe communication passes through the PCIe switch 241, the PCIe switch 220, and the PCIe switch 231. The communication path of the Ethernet communication passes through the Ethernet switch 250.
[0257] The path selection unit 114 acquires the delay time and available bandwidth of the identified communication path. The delay time of PCIe communication is "150 ns", and the available bandwidth is "64 Gbps". The delay time of Ethernet communication is "2 μs", and the available bandwidth is "96 Gbps". In this case, Ethernet communication cannot satisfy the required performance (delay time<200 ns, bandwidth>10 Gbps) of inter-function communication "c01", but PCIe communication can satisfy the required performance. Therefore, the path selection unit 114 selects PCIe communication as the communication path for inter-function communication "c01".
[0258] The path selection unit 114 subtracts the bandwidth value of the required performance of the inter-function communication "c01" from the available bandwidth of the selected communication path. As a result, the available bandwidth between the PCIe switch 231 and the PCIe switch 220 is updated from "96 Gbps" to "86 Gbps". In addition, the available bandwidth between the PCIe switch 241 and the PCIe switch 220 is updated from "64 Gbps" to "54 Gbps".
[0259] Next, the path selection unit 114 selects the inter-function communication “c02” having the next shortest delay time in the required performance. Next, the path selection unit 114 identifies the communication path of the selected inter-function communication “c02”. The device 249 in the PCIeBOX 240 is assigned to the function “m1” at one end of the inter-function communication “c02”, and the device 239 in the PCIeBOX 230 is assigned to the function “m3” at the other end. In this case, the communication path of the PCIe communication passes through the PCIe switch 241, the PCIe switch 220, and the PCIe switch 231. The communication path of the Ethernet communication passes through the Ethernet switch 250.
[0260] The path selection unit 114 acquires the delay time and available bandwidth of the identified communication path. The delay time of PCIe communication is "150 ns", and the available bandwidth is "54 Gbps". The delay time of Ethernet communication is "2 μs", and the available bandwidth is "96 Gbps". In this case, Ethernet communication cannot satisfy the required performance (delay time<300 ns, bandwidth>10 Gbps) of inter-function communication "c02", but PCIe communication can satisfy the required performance. Therefore, the path selection unit 114 selects PCIe communication as the communication path for inter-function communication "c02".
[0261] The path selection unit 114 subtracts the bandwidth value of the required performance of the inter-function communication "c02" from the available bandwidth of the selected communication path. As a result, the available bandwidth between the PCIe switch 231 and the PCIe switch 220 is updated from "86 Gbps" to "76 Gbps". In addition, the available bandwidth between the PCIe switch 241 and the PCIe switch 220 is updated from "54 Gbps" to "44 Gbps".
[0262] Next, the path selection unit 114 selects inter-function communication "c05" having the next shortest delay time in the required performance. Next, the path selection unit 114 identifies a communication path for the selected inter-function communication "c05". The device 238 in the PCIeBOX 230 is assigned to the function "m4" at one end of the inter-function communication "c05", and the device 279 in the PCIeBOX 270 is assigned to the function "m5" at the other end. In this case, there is no communication path for PCIe communication. The communication path for Ethernet communication passes through the Ethernet switch 250. Since only a communication path for Ethernet communication exists, the path selection unit 114 selects Ethernet communication as the communication path for the inter-function communication "c05".
[0263] The path selection unit 114 subtracts the bandwidth value of the required performance of the inter-function communication "c05" from the available bandwidth of the selected communication path. As a result, the available bandwidth of the Ethernet switch 250 is updated from "96 Gbps" to "86 Gbps".
[0264] When the route selection process is completed, the server configuration determination unit 115 determines the server configuration. Fig. 46 is a diagram (7 / 7) showing a second example of resource allocation. Fig. 46 shows devices included in servers 74 and 75 whose configurations have been determined.
[0265] The server configuration determination unit 115 selects, for example, the function "m1" and identifies the assigned device 249 and the PCIeBOX 240 in which the device 249 is mounted. Next, the server configuration determination unit 115 acquires a list of PCIeBOXes that can be connected to the PCIeBOX 240 via a PCIe switch. The list includes the PCIeBOX 230.
[0266] The server configuration determination unit 115 determines the devices 237-239, 249 allocated to functions among the devices in the PCIeBOX 230 and the PCIeBOX 240, the specified number of CPUs, and the specified capacity of memory as components of the server 74. In the example of Fig. 46, it is assumed that the number of CPUs is "2" and the memory capacity is "520 MB". For example, the server 74 includes four devices 237-239, 249 allocated to functions in the PCIeBOX 230, 240, two CPUs 211a, 211b, and two memories 211c, 211d in the compute unit 211.
[0267] The server configuration determination unit 115 determines that the functions to which the devices included in the server 74 are assigned have had corresponding server configuration information created. Then, it selects the function "m5" for which server configuration information has not been created, and identifies the device 279 and the PCIeBOX 270 in which the device 279 is mounted. Next, the server configuration determination unit 115 acquires a list of PCIeBOXes that can be connected to the PCIeBOX 270 via a PCIe switch. The corresponding list includes the PCIeBOX 280.
[0268] The server configuration determination unit 115 determines the devices 279 to be assigned to the functions among the devices in the PCIeBOX 270 and the PCIeBOX 280, the specified number of CPUs, and the specified capacity of memory as components of the server 75. In the example of Fig. 46, it is assumed that the number of CPUs is "1" and the memory capacity is "520 MB". For example, the server 74 includes one device 279 assigned to the function in the PCIeBOX 270, the CPU 213b in the compute unit 213, and the memory 213d.
[0269] The server configuration determination unit 115 determines that the corresponding server configuration information has been created for the functions to which the devices included in the server 75 are assigned. Since there are no more functions for which server configuration information has not been created, the server configuration determination unit 115 ends the server configuration determination process.
[0270] By configuring the servers 74, 75 in this way by appropriately selecting devices to be assigned to functions, it becomes possible for the created servers 74, 75 to efficiently execute DF processing.
[0271] [Other embodiments] In the second embodiment, the resource deployment scheduler 110, the infrastructure system manager 120, and the resource control manager 130 are executed by one management computer 100, but some of these functions may be executed by other computers. Also, at least some of the resource deployment scheduler 110, the infrastructure system manager 120, and the resource control manager 130 in one management computer 100 may be executed by an LSN already constructed in the infrastructure system 200.
[0272] In the second embodiment, an FPGA is used as an example of a device to be assigned to a function, but a module equipped with a CPU or GPU may also be used as the device. Although the embodiments have been described above, the configurations of the parts shown in the embodiments can be replaced with other parts having similar functions. Any other components or steps may be added. Furthermore, any two or more configurations (features) of the above-mentioned embodiments may be combined. [Explanation of symbols]
[0273] 1. Processing Information 1a,1b,1c,1d Function Information 2. Computer Systems 3a, 3b, 3c Compute Units 4a,4b CPU 4c,4d Memory 5a, 5b, 5c BOX 6a,6b,6c,6d Devices 7a, 7b, 7c, 7d, 7e Switches 8. Network Switches 9a,9b Server 10 Resource Allocation Device 11 Storage section 11a System Information 12 Processing section
Claims
1. a processing unit that selects each of a plurality of functions in order of performance required for communication based on processing information indicating a plurality of functions to be used in a process to be executed by a computer system having a plurality of devices connected to other devices via a bus and performance required for communication between the plurality of functions, and determines a first device that realizes the selected first function based on a distance of a communication path via the bus between each of the devices capable of realizing the selected first function and a second device that realizes a second function that is a communication partner of the first function; A resource allocation device comprising:
2. the processing unit selects each of the plurality of functions in order from a function performing communication with a shortest allowable delay time in communication; 2. The resource allocation apparatus of claim 1.
3. the processing unit determines, as the first device, a device having a smaller number of switches on a communication path to the second device via a bus than other devices; 2. The resource allocation apparatus of claim 1.
4. the processing unit, when there is no device bus-connected to the second device among devices capable of executing the first function, determines a device network-connected to the second device as the first device; 2. The resource allocation apparatus of claim 1.
5. the processing unit selects, for each pair of functions that communicate, either a first communication path via a bus or a second communication path via a network as the communication path to be used for communication, based on a performance required for communication between the plurality of functions and the number of switches on a communication path of a bus that connects between devices that execute each of the plurality of functions, or a communication performance of each of the communication via the bus and the communication via the network.
2. The resource allocation apparatus of claim 1.
6. the processing unit selects the first communication path as a communication path to be used for communication when communication via the bus passes through only one switch.
6. The resource allocation apparatus according to claim 5.
7. the processing unit selects the second communication path as a communication path to be used for communication when a performance required for communication between the plurality of functions is satisfied in both communication via a bus and communication via a network.
6. The resource allocation apparatus according to claim 5.
8. the processing unit selects the second communication path as a communication path to be used for communication when a performance required for communication between the plurality of functions is not satisfied in both communication via a bus and communication via a network.
6. The resource allocation apparatus according to claim 5.
9. selecting each of the plurality of functions in order of the performance required for communication based on processing information indicating a plurality of functions to be used in a process executed by a computer system having a plurality of devices connected to other devices via a bus and performance required for communication between the plurality of functions; determining a first device capable of realizing the selected first function based on a distance of a communication path via a bus between each of the selected devices capable of realizing the selected first function and a second device capable of realizing a second function that is a communication partner of the selected first function; A method of allocating resources for a computer to carry out a process.
10. selecting each of the plurality of functions in order of the performance required for communication based on processing information indicating a plurality of functions to be used in a process executed by a computer system having a plurality of devices connected to other devices via a bus and performance required for communication between the plurality of functions; determining a first device capable of realizing the selected first function based on a distance of a communication path via a bus between each of the selected devices capable of realizing the selected first function and a second device capable of realizing a second function that is a communication partner of the selected first function; A resource allocation program that causes a computer to execute a process.
Citation Information
Patent Citations
Method, apparatus, computer program product, and data center facility for implementing a disaggregated computing system
JP2019511051A
Computer system
JP2021149299A
Movement target container determination method and movement target container determination program
JP2021150876A