Computer system

The computer system optimizes arithmetic processing allocation by considering communication path settings, enabling earlier data flow execution and improved computational efficiency through efficient path management.

WO2026028304A1PCT designated stage Publication Date: 2026-02-05NT T INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/027197
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-30
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

Existing computer systems struggle to efficiently allocate arithmetic processing circuits due to the lack of consideration for communication path settings, which is crucial for achieving optimal computational performance in flow-centric computing environments.

Method used

A computer system that allocates arithmetic processing circuits by taking into account the setting information of communication paths, utilizing a control unit that manages communication units and switch units to optimize path settings and resource usage.

Benefits of technology

This approach allows for earlier execution of data flows by utilizing existing communication paths, reducing the need for new path establishment, and minimizing disruption to ongoing processes, thereby enhancing computational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024027197_05022026_PF_FP_ABST
    Figure JP2024027197_05022026_PF_FP_ABST
Patent Text Reader

Abstract

A computer system according to the present invention comprises a plurality of calculation units that perform arithmetic processing contained in a data flow, a communication unit that performs communication between each calculation unit among the plurality of calculation units and another calculation unit, at least one switch unit that is connected to the communication unit and switches a communication path of the communication unit, and a control unit that allocates arithmetic processing to the calculation units in accordance with the arithmetic processing contained in the data flow, and sets a communication path for the communication unit and the switch unit, wherein the control unit comprises: a constraint acquisition unit that acquires switch unit communication path setting information and the resource usage status of the arithmetic processing in the calculation units; and an allocation determination unit which determines an allocation destination for the arithmetic processing in the calculation units on the basis of the switch unit communication path setting information and the resource usage status of the arithmetic processing in the calculation units acquired by the acquisition unit.
Need to check novelty before this filing date? Find Prior Art

Description

Computer Systems

[0001] The present invention relates to computer systems such as computing devices.

[0002] Technological innovation is progressing in many fields, including machine learning, artificial intelligence (AI), and the Internet of Things (IoT), and by utilizing various information and data, services are being actively improved and added value is being provided. Such processing requires a large amount of calculations, and therefore an information processing infrastructure is essential.

[0003] For example, Non-Patent Document 1 points out that although attempts are being made to update existing information processing infrastructure, it is a fact that modern computers are unable to keep up with the rapidly increasing amount of data, and that in order to achieve further evolution in the future, "post-Moore technology" that goes beyond Moore's Law must be established.

[0004] As a post-Moore technology, for example, a technology called flow-centric computing is disclosed in Non-Patent Document 2. Flow-centric computing introduces a new concept of moving data to a location where a computing function is present and processing the data there, instead of the conventional computing concept of performing processing where the data is located.

[0005] To realize flow-centric computing as described above, not only is a broadband communication network necessary for data movement required, but it is also possible that the desired computing performance may not be achieved unless computational resources are controlled efficiently.

[0006] International Publication No. 2022 / 230106

[0007] "NTT IOWN Technology Report 2023 - Acceleration to the Future -," Nippon Telegraph and Telephone Corporation, 2023, https: / / www.rd.ntt / e / download / NTT_IOWN_TR2023_E.pdf. R. Takano and T. Kudoh, "Flow-centric computing leveraged by photonic circuit switching for the post-Moore era," Tenth IEEE / ACM International Symposium on Networks-on-Chip (NOCS), Nara, 2016, pp. 1-3.

[0008] Patent Document 1 discloses a control device and method relating to an equivalent circuit preparation unit that receives input of processing content specified by a user, collects candidates for equivalent circuits, which are processing circuits that have the function of executing part of the processing content, and outputs them as a group of equivalent circuit candidates, and a function chain creation unit that determines a processing execution circuit from the group of equivalent circuit candidates according to predetermined criteria, determines the connection order of the processing execution circuits, and outputs a function chain that executes the processing content.

[0009] Here, Patent Document 1 discloses a control device and method for determining the deployment destination and connection order of arithmetic processing by inputting a data flow, which is a series of arithmetic processing desired by a user, but does not disclose a computer system that determines the deployment destination of arithmetic processing by taking into account the setting information of the communication path connecting the arithmetic processing circuits that execute the arithmetic processing.

[0010] The present invention was invented in consideration of the above-mentioned problems of the conventional technology, and aims to provide a computer system that determines the allocation location of arithmetic processing circuits by taking into account the setting information of the communication paths connecting the arithmetic processing circuits.

[0011] In order to solve the above problem, the computer system of the present invention comprises a plurality of arithmetic units that perform arithmetic processing included in a data flow, a communication unit that enables each arithmetic unit of the plurality of arithmetic units to communicate with other arithmetic units, at least one switch unit connected to the communication unit and switching communication paths between the communication units, and a control unit that allocates the arithmetic processing to the arithmetic units in accordance with the arithmetic processing included in the data flow and sets communication paths for the communication unit and the switch unit, and the control unit comprises a constraint acquisition unit that acquires setting information for the communication path of the switch unit and resource usage status of the arithmetic processing of the arithmetic units, and an allocation determination unit that determines where to allocate the arithmetic processing in the arithmetic units based on the setting information for the communication path of the switch unit and the resource usage status of the arithmetic processing of the arithmetic units acquired by the acquisition unit.

[0012] According to the present invention, it is possible to provide a computer system that determines the allocation location of an arithmetic processing circuit by taking into consideration setting information of a communication path that connects arithmetic processing circuits.

[0013] 1 is a block diagram showing an example of the configuration of a computer system according to a first embodiment. 2 is a block diagram showing an example of the configuration of a control unit in the computer system according to the first embodiment. 3 is a diagram showing a data flow deployed in the computer system according to the first embodiment. 4 is a diagram showing an example of the configuration of a computer system according to the first embodiment. 5 is a diagram showing a data flow deployed in the computer system according to the first embodiment. 6 is a diagram showing an example of the configuration of a computer system according to the first embodiment. 7 is a diagram showing an example of the configuration of a computer system according to the first embodiment. 8 is a diagram showing an example of the configuration of a computer system according to the first embodiment. 9 is a flowchart showing the operation of the computer system according to the first embodiment. 10 is a block diagram showing the configuration of a control unit in a computer system according to a second embodiment. 11 is a diagram showing a data flow deployed in the computer system according to the second embodiment. 12 is a diagram showing an example of the configuration of a computer system according to the second embodiment. 13 is a diagram showing an example of the configuration of a computer system according to the second embodiment. 14 is a flowchart showing the operation of the computer system according to the second embodiment. 15 is a block diagram showing the configuration of a control unit in a computer system according to a third embodiment. 16 is a diagram showing a data flow deployed in the computer system according to the third embodiment. 17 is a diagram showing an example of the configuration of a computer system according to the third embodiment. 10 is a diagram showing an example of the configuration of a computer system according to a third embodiment; FIG. 11 is a flowchart showing the operation of the computer system according to the third embodiment; FIG. 12 is a block diagram showing the configuration of a control unit in a computer system according to a fourth embodiment; and FIG. 13 is a flowchart showing the operation of the computer system according to the fourth embodiment.

[0014] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the present invention can be embodied in many different forms and should not be construed as being limited to the embodiments of the present invention described below.

[0015] [First Embodiment] The configuration of a computer system according to a first embodiment of the present invention will be described below. Fig. 1 is a block diagram showing the configuration of a computer system according to the first embodiment.

[0016] [Computer System Configuration] The computer system 1 of this embodiment includes processing units #1-1 through #N-M (N and M are integers equal to or greater than 1) (20-1-1 through 20-N-M), first communication units #1 through #P (P is an integer equal to or greater than 1) (30-1 through 30-P) and second communication units #1 through #Q (Q is an integer equal to or greater than 1) (40-1 through 40-Q) connecting the processing units, a first switch unit 50 connecting the first communication units, a second switch unit 60 connecting the second communication units, and a control unit 10 that allocates processing to the processing units (20-1-1 through 20-N-M) and allocates data flow by setting communication paths for the communication units (30-1 through 30-P, 40-1 through 40-Q) and the switch units (50, 60). The data flow is a series of processing operations desired by a user of the computer system 1.

[0017] The arithmetic units (20-1-1 to 20-N-M) perform specific arithmetic processing. The arithmetic units (20-1-1 to 20-N-M) are configured, for example, with a general-purpose processor (CPU: Central Processing Unit) used for general arithmetic processing, a graphics processor (GPU: Graphics Processing Unit) that excels in video processing and matrix operations, an FPGA (Field Programmable Gate Array) that can program any logic circuit, an xPU equipped with a dedicated circuit specialized for a specific application, etc.

[0018] The calculation units (20-1-1 to 20-N-M) are connected to the communication units (30-1 to 30-P, 40-1 to 40-Q) via at least one communication interface. Furthermore, even if the calculation units (20-1-1 to 20-N-M) are the same physical device, they may be internally divided and virtualized. For example, this is the case for a multi-instance GPU (MIG) in a GPU.

[0019] The communication units (30-1 to 30-P, 40-1 to 40-Q) process communication methods and protocols. Examples of communication units (30-1 to 30-P, 40-1 to 40-Q) include PCIe, which is generally used as an internal communication bus for computers, CXL (Compute Express Link), a next-generation communication standard designed for high-performance data center computers for high-speed connections between CPUs and devices, between CPUs and memory, and between devices, and Ethernet. The communication interface with the processing unit uses electricity or light as a medium. The communication unit and processing unit may also be implemented in the same physical device.

[0020] The switch units (50, 60) establish communication paths based on a predetermined switching method to connect the communication units. Examples of the switch units (50, 60) include PCIe switches for PCIe, which is generally used as an internal communication bus for computers; CXL switches for CXL, a next-generation communication standard designed for high-performance data center computers for high-speed connections between CPUs and devices, between CPUs and memory, and between devices; and Ethernet switches for Ethernet. Note that in this embodiment, it is not necessary to use both the first switch unit 50 and the second switch unit 60. The switches for establishing communication paths can be selected appropriately depending on the data flow and requirements to be deployed. This also applies to the other embodiments described below.

[0021] As a switching method, an electrical packet switch that switches the packet destination by electrically processing packets, or an optical path switch that branches a specific optical signal or switches the destination without converting the optical signal to an electrical signal, can be used. In the configuration of Figure 1, different switching methods can be used for the first switch unit 50 and the second switch unit 60. For example, the first switch unit 50 can be an optical path switch, and the second switch 60 can be an electrical packet switch.

[0022] In this embodiment, when deploying arithmetic processing, it is not necessary to use both the first switch unit 50 and the second switch unit 60. It is possible to appropriately select the switch to which the communication path is set depending on the deployed data flow and the required performance conditions. The same applies to the other embodiments described below.

[0023] [Configuration of the Control Unit] The control unit 10 allocates arithmetic processing to the calculation units (20-1-1 to 20-N-M) and allocates data flow by setting communication paths to the communication units (30-1 to 30-P, 40-1 to 40-Q) and switch units (50, 60). FIG. 2 is a block diagram showing the configuration of the control unit in the computer system according to the first embodiment. The control unit 10 can be configured, for example, by a general-purpose processor (CPU) used for general arithmetic processing, or an FPGA capable of programming any logic circuit.

[0024] The control unit 10 includes a switch unit constraint acquisition unit 11 that acquires constraint information such as setting information for the communication paths of the switch units (50, 60), a calculation unit constraint acquisition unit 12 that acquires constraint information such as resource usage status of the calculation processing of the calculation unit, a processing information acquisition unit 13 that acquires information regarding the data flow, which is a series of calculation processing to be deployed in the system, and a deployment determination unit 14 that determines the calculation unit to which the calculation processing will be deployed.

[0025] For example, if the first switch unit 50 is configured with an optical path switch, establishing a new communication path requires mechanical and physical setting of the communication path and switching of the communication path, which takes a relatively long time. Therefore, optical path switches are suitable for cases where an established communication path will be used for a relatively long time. On the other hand, if the second switch unit 60 is configured with an electrical packet switch, there is no need to set up a mechanical and physical communication path, so communication paths can be set up and switched in a shorter time than with an optical path switch.

[0026] [Operation of the control unit] The control unit 10 determines the allocation destination of a series of arithmetic operations constituting a data flow to the arithmetic units, taking into consideration the differences in characteristics between the optical path switch and the electrical packet switch. When determining which arithmetic unit should execute each arithmetic operation for a data flow, which is a series of arithmetic operations desired by a user of the computer system, the control unit 10 uses the resource usage status of the arithmetic operations in the arithmetic units and the setting information of the communication paths of the switch units (50, 60) as constraint information.

[0027] Fig. 3 is a diagram showing a data flow deployed in a computer system according to the first embodiment. Fig. 4 is a diagram showing an example configuration of a computer system according to the first embodiment. In the following explanation, a case will be described in which the arithmetic processing included in the data flow of Fig. 3 is deployed to arithmetic units (20-1 to 20-6) in the computer system of Fig. 4.

[0028] The data flow in Figure 3 shows four arithmetic processes #1-A to #1-D, which are processed in the order of processes #1-A to #1-D. The computer system 1 in Figure 4 includes a plurality of arithmetic units #1 (20-1) to #6 (20-6), first communication units #1 to #6 (30-1 to 30-6) and second communication units #1 to #6 (40-1 to 40-6) that connect the arithmetic units, a first switch unit 50 that connects the first communication units #1 to #6, a second switch unit 60 that connects the second communication units #1 to #6, and a control unit 10 that allocates arithmetic processes to the arithmetic units (20-1 to 20-6) and allocates data flows by setting communication paths for the communication units (30-1 to 30-6, 40-1 to 40-6) and the switch units (50, 60). In FIG. 4, the first switch unit 50 is an optical path switch, and the second switch unit 60 is an electrical packet switch.

[0029] For example, as shown in Figure 4, if processes #1-A to #1-D are respectively arranged in calculation units #1 to #4 (20-1 to 20-4), and a communication path in the first switch unit (optical path switch) 50 is not established, a communication path from first communication unit #1 to first communication unit #2 to first communication unit #3 to first communication unit #4 is established in the first switch unit 50.

[0030] 5 and 6 are diagrams showing data flows deployed in the computer system according to the first embodiment. In the data flow of FIG. 5, four arithmetic processes #1-A to #1-D are processed in the order of processes #1-A to #1-D. In the data flow of FIG. 6, four processes #2-A to #2-D are processed in the order of processes #2-A to #2-D.

[0031] 7 and 8 are diagrams illustrating an example configuration of a computer system according to a first embodiment. Similar to FIG. 4, the computer system 1 of FIGS. 7 and 8 includes: processing units #1 to #6 (20-1 to 20-6); first communication units #1 to #6 (30-1 to 30-6) and second communication units #1 to #6 (40-1 to 40-6) connecting the processing units; a first switch unit 50 connecting the first communication units #1 to #6; a second switch unit 60 connecting the second communication units #1 to #6; and a control unit 10 that allocates processing to the processing units (20-1 to 20-6) and allocates data flow by setting communication paths for the communication units (30-1 to 30-6, 40-1 to 40-6) and the switch unit (50, 60). In FIGS. 7 and 8, the first switch unit is an optical path switch, and the second switch is an electrical packet switch. In the following description, the case where the arithmetic processes included in the data flows of FIGS. 5 and 6 are allocated to the arithmetic units (20-1 to 20-6) in the computer system 1 of FIGS. 7 and 8 will be described.

[0032] For example, as shown in Figure 7, assume that in a computer system, processes #1-A to #1-D of the data flow in Figure 5 have already been deployed, there is spare computational resources in the processing units #1 to #4 (20-1 to 20-4), and processes #2-A to #2-D of the data flow in Figure 6 are newly deployed. Because the control unit 10 can use the communication path of the first switch unit 50 that has already been established, processes #2-A to #2-D can be deployed to the processing units #1 to #4 (20-1 to 20-4), respectively, without establishing a new communication path for the first switch unit.

[0033] As a result, the computer system 1 does not need to establish a new communication path for the first switch unit 50, and can therefore start executing the data flow of processes #2-A to #2-D in Figure 6 earlier than if a new communication path were to be established.

[0034] In this way, if the computational resources of the computing units #1 to #4 (20-1 to 20-4) have room to allocate new computational processes, the control unit 10 can allocate processes #2-A to #2-D without establishing a new communication path. On the other hand, since the computational resources of the computing units #1 to #4 (20-1 to 20-4) are finite, the control unit 10 needs to consider other allocation modes if there is no room to allocate new processes to the computational resources of any of the computing units #1 to #4 (20-1 to 20-4).

[0035] 8, if the calculation unit #1 (20-1) does not have sufficient computational resources and cannot allocate process #2-A to the calculation unit #1 (20-1), the control unit 10 allocates processes #2-A to #2-D to the calculation units #2 to #4 (20-2 to 20-4) and the calculation unit #5 (20-5). In this case, the control unit 10 establishes a new communication path from the first communication unit #4 to the first communication unit #5 in the first switch unit 50.

[0036] In the case of Fig. 8, compared to the case of Fig. 7, although it is necessary to establish new communication paths, it is possible to deploy processes #2-A to #2-D without affecting the already deployed processes #1-A to #1-D and their communication paths. Also in Fig. 8, by using existing communication paths, fewer new communication paths need to be established, so it is possible to start executing the data flows of processes #2-A to #2-D earlier than in the case where all communication paths are newly established.

[0037] In the above example, a communication path is established using the first switch unit 50 and a data flow is executed, but a communication path may also be established using the second switch unit 60. For example, if it takes a relatively long time to establish a communication path using the first switch unit 50 or if it will have some effect on a data flow that is already in progress, the control unit 10 may establish a communication path using the second switch unit 60, allocate calculation processing, and execute the data flow.

[0038] Patent document 1 discloses a control device and method for determining the deployment destination and connection order of computational processes using a data flow, which is a series of computational processes desired by a user, as input, but does not disclose a control device or method for determining the deployment destination of computational processes taking into account constraint information such as setting information for communication paths in the switch section.

[0039] The difference between this embodiment and Patent Document 1 is that the allocation destination of the arithmetic processing is determined taking into account constraint information such as setting information of the communication path of the switch unit. Generally, when using an optical path switch, which takes a relatively long time to establish a communication path, it is possible to use an already established communication path, and it is not necessary to establish a new communication path of the switch unit, so that the execution of the data flow can be started earlier than when a new communication path is established. Furthermore, by using communication paths that are already established for at least some of the communication paths, it is possible to establish fewer new communication paths, so that the execution of the data flow can be started earlier than when all communication paths are newly established.

[0040] [Operation of the First Embodiment] The operation of the computer system according to the first embodiment will be described below with reference to a flowchart shown in FIG.

[0041] In the computer system 1 of this embodiment, the control unit 10 allocates arithmetic processing to the arithmetic units and allocates data flow by setting communication paths to the communication unit and switch unit. Data processed by the arithmetic units is input via the communication unit and switch unit to the arithmetic units that perform subsequent arithmetic processing, thereby enabling the execution of a series of arithmetic processing desired by the user.

[0042] As shown in Figure 9, the control unit 10 first obtains information regarding the computational processing of the data flow to be deployed, and also obtains constraint information regarding whether the computational processing to be deployed can be deployed to each computation unit, and constraint information regarding the setting and establishment of communication paths in the switch unit (steps S1-1 to S1-3).

[0043] Next, the control unit 10 determines whether an already established communication path can be used for the calculation process (step S1-4), and if the communication path required to execute the calculation process is available (step S1-4: YES), determines where to deploy the calculation process (step S1-6).

[0044] On the other hand, if a new communication path needs to be established to execute the calculation process (step S1-4: NO), the communication path is set, and once the establishment of the communication path is completed in the switch unit (step S1-5), the deployment destination of the calculation process is determined (step S1-6).

[0045] The information regarding the computational processing of the data flow to be deployed includes, for example, the content of the computational processing, the computing resources required for the computational processing, and performance requirements such as the desired processing speed, desired processing time, and processing delay.

[0046] In addition, the constraint information on whether the target computation process can be deployed to each computation unit is, for example, the resource usage status of the computation unit that is a candidate for deployment of the computation process, which in the case of an FPGA would be the free capacity of the FPGA circuit, or in the case of a CPU, the load amount, etc.

[0047] Furthermore, the constraint information relating to the setting and establishment of communication paths in the switch unit is setting information for communication paths in the switch unit. For example, if the switch unit is an optical path switch, this corresponds to information relating to the setting of the optical path switch, such as that a path is established between port #1 and port #2, or that a path is not established between port #1 and port #4, among the ports of the optical path switch.

[0048] [Effects of the First Embodiment] The computer system of this embodiment is a computer system that allocates arithmetic operations to arithmetic units and allocates data flows by setting communication paths to the communication unit and the switch unit. The control unit of the computer system determines the arithmetic units to which arithmetic operations are allocated, using constraint information such as setting information for the communication paths of the switch unit, constraint information such as resource usage status of the arithmetic operations of the arithmetic units, and information on the data flows, which are a series of arithmetic operations to be allocated to the system.

[0049] This allows the use of existing communication paths, eliminating the need to establish new communication paths or reducing the number and frequency of establishing new communication paths, enabling the data flow to start executing earlier.Furthermore, it is possible to start the data flow earlier while reducing the impact on the data flow that is currently running.

[0050] Furthermore, since the calculation processing can be allocated taking into account the constraints of the switch section, when an optical path switch, which generally takes time to switch communication paths, is applied to the switch section, it is possible to use communication paths that have already been established preferentially, thereby reducing the time required to switch communication paths and the time required to set up communication paths.

[0051] Second Embodiment A computer system according to a second embodiment of the present invention will be described.

[0052] [Configuration of Computer System] The computer system of this embodiment has a configuration similar to that of the computer system 1 of the first embodiment described in Figure 1. The configurations of the calculation units (20-1-1 to 20-N-M), communication units (30-1 to 30-P, 40-1 to 40-Q), and switch units (50, 60) that make up the computer system 1 are also similar to those described in the first embodiment.

[0053] [Configuration of the Control Unit] The control unit 10 allocates arithmetic processing to the calculation units (20-1-1 to 20-N-M) and allocates data flow by setting communication paths to the communication units (30-1 to 30-P, 40-1 to 40-Q) and switch units (50, 60). FIG. 10 is a block diagram showing the configuration of the control unit in a computer system according to the second embodiment. The control unit 10 can be configured, for example, by a general-purpose processor (CPU) used for general arithmetic processing, or an FPGA capable of programming any logic circuit.

[0054] The control unit 10 includes a switch unit constraint acquisition unit 11 that acquires constraint information such as setting information for communication paths of the switch units (50, 60), a calculation unit constraint acquisition unit 12 that acquires constraint information such as resource usage status of calculation processes of the calculation units, a processing information acquisition unit 13 that acquires information about a data flow, which is a series of calculation processes to be deployed in the system, a switch unit setting time derivation unit 15 that derives the time required to set a communication path in the switch unit, a calculation unit redeployment time derivation unit 16 that derives the time required to redeploy some of the calculation processes of the data flow that has already been deployed to the calculation units, and a deployment determination unit 14 that compares the time required to set a communication path with the time required to redeploy the calculation processes to the calculation units and determines the calculation units to which the calculation processes will be deployed so as to shorten the time required until the data flow starts to be executed.

[0055] [Operation of the control unit] The difference from the first embodiment is that the time required to set up a communication path in the switch unit and the time required to redeploy some of the computational processes of the data flow that have already been deployed to a computation unit are derived, and these derived results are compared to determine the computation unit to which the computational processes are to be deployed so as to shorten the time required until the data flow starts to execute.

[0056] 11 to 13 are diagrams showing data flows deployed in a computer system according to the second embodiment. In the data flow of FIG. 11, four arithmetic processes #1-A to #1-D are processed in the order of processes #1-A to #1-D. In the data flow of FIG. 12, three processes #2-A to #2-C are processed in the order of processes #2-A to #2-C. In the data flow of FIG. 13, three processes #3-A to #3-C are processed in the order of processes #3-A to #3-C.

[0057] 14-16 are diagrams illustrating an example configuration of a computer system according to a second embodiment. Similar to FIG. 4, the computer system 1 of FIGS. 14-16 includes: processors #1 to #6 (20-1 to 20-6); first communication units #1 to #6 (30-1 to 30-6) and second communication units #1 to #6 (40-1 to 40-6) connecting the processors; a first switch unit 50 connecting the first communication units #1 to #6; a second switch unit 60 connecting the second communication units #1 to #6; and a control unit 10 that allocates computational processing to the processors (20-1 to 20-6) and allocates data flow by setting communication paths for the communication units and the switch unit. In FIGS. 14-16, the first switch unit 50 is an optical path switch, and the second switch 60 is an electrical packet switch. In the following explanation, the calculation processes included in the data flows of FIGS. 11 to 13 are allocated to the calculation units (20-1 to 20-6) in the computer system of FIGS.

[0058] For example, as shown in Figure 14, if processes #1-A to #1-D in Figure 11 and processes #2-A to #2-C in Figure 12 have already been deployed and processes #3-A to #3-C in Figure 13 are to be newly deployed, it is possible to deploy the calculation processes as shown in Figures 15 and 16.

[0059] In Figure 15, without changing the deployment locations of processes #1-A to #1-D and processes #2-A to #2-C, a new communication path is established between the first communication unit #1 (30-1) and the first communication unit #5 (30-5) in the first switch unit 50, and processes #3-A to #3-C are deployed to the calculation unit #1 (20-1), calculation unit #5 (20-5), and calculation unit #6 (20-6), respectively.

[0060] On the other hand, in Figure 16, the deployment destinations of processes #1-A to #1-D are not changed, but the deployment destinations of processes #2-A to #2-C are redeployed to calculation unit #1 (20-1), calculation unit #2 (20-2), and calculation unit #3 (20-3), respectively, and processes #3-A to #3-C are deployed to calculation unit #4 (20-4), calculation unit #5 (20-5), and calculation unit #6 (20-6), respectively.

[0061] In this way, a new communication path needs to be established in Fig. 15, but a new communication path does not need to be established in Fig. 16. On the other hand, in Fig. 15, it is not necessary to redeploy already-deployed arithmetic processing, but in Fig. 16, it is necessary to redeploy already-deployed arithmetic processing.

[0062] In this embodiment, the time required to set up a communication path as in Fig. 15 and the time required to redeploy the arithmetic processing to a processing element as in Fig. 16 are derived, and these are compared to determine the processing element to which the arithmetic processing is to be deployed so as to shorten the time required until the execution of the data flow starts. If the time required to set up a communication path is short, the deployment in Fig. 15 is selected, and if the time required for redeployment to a processing element is short, the deployment in Fig. 16 is selected.

[0063] Note that the manner in which the deployment destination is determined in this embodiment is not limited to the manner described above. For example, if a data flow configured by computational processes that have already been deployed cannot be interrupted, the deployment destination may be determined taking into consideration this constraint. If such a constraint exists, the deployment shown in Figure 16, in which computational processes are redeployed, is not selected, and the deployment shown in Figure 15, in which computational processes are not redeployed, is selected.

[0064] [Operation of the Second Embodiment] The operation of the computer system according to the second embodiment will be described below with reference to a flowchart of FIG.

[0065] In the computer system 1 of this embodiment, the control unit 10 allocates arithmetic processing to the arithmetic units and allocates data flow by setting communication paths to the communication unit and switch unit. Data processed by the arithmetic units is input via the communication unit and switch unit to the arithmetic units that perform subsequent arithmetic processing, thereby enabling the execution of a series of arithmetic processing desired by the user.

[0066] As shown in Figure 17, the control unit 10 acquires information regarding the computational processing to be deployed, and acquires constraint information regarding whether the computational processing to be deployed can be deployed to each computation unit, and constraint information regarding the setting and establishment of communication paths in the switch unit (steps S2-1 to S2-3).

[0067] Next, the control unit 10 determines whether an already established communication path can be used for the calculation process (step S2-4), and if the communication path required to execute the calculation process is available (step S2-4: YES), it determines the deployment location of the calculation process using the existing communication path.

[0068] On the other hand, if a new communication path needs to be established to execute the computational process (step S2-4: NO), or if an already deployed computational process needs to be redeployed, the time required to set up a communication path in the switch unit and the time required to redeploy some of the already deployed data flow computational processes to other computational units are derived (steps S2-5, S2-6).

[0069] Next, the control unit 10 compares the time required to set up the communication path with the time required to redeploy the calculation processing to another calculation unit, and determines the calculation unit to which the communication path and calculation processing will be assigned so as to shorten the time required until the data flow starts executing (step S2-7).

[0070] The information regarding the computational processes to be deployed, the constraint information regarding whether the computational processes to be deployed can be deployed to each computation unit, and the constraint information regarding the setting and establishment of communication paths for the switch unit are the same as those described in the first embodiment.

[0071] [Effects of the Second Embodiment] As described above, the computer system of this embodiment is a computer system that allocates arithmetic operations to arithmetic units and allocates data flows by setting communication paths to the communication unit and the switch unit. The control unit of the computer system determines the arithmetic units to which arithmetic operations are allocated, using constraint information such as setting information for the communication paths of the switch unit, constraint information such as resource usage status of the arithmetic operations of the arithmetic units, and information on the data flows, which are a series of arithmetic operations to be allocated to the system.

[0072] This eliminates the need to establish a new communication path by using an existing communication path, or reduces the number and frequency of establishing a new communication path, allowing the data flow to start executing earlier. It also has the effect of reducing the impact on the data flow that is currently running.

[0073] Furthermore, since the calculation processing can be allocated taking into account the constraints of the switch section, when an optical path switch, which generally takes time to switch communication paths, is applied to the switch section, it is possible to use communication paths that have already been established preferentially, thereby reducing the time required to switch communication paths and the time required to set up communication paths.

[0074] Furthermore, compared to the first embodiment, when it takes time to set up a communication path, by allowing the redeployment of computational processing that has already been deployed, it is expected that the time until the data flow starts to be executed can be further shortened.

[0075] Third Embodiment A computer system according to a third embodiment of the present invention will be described.

[0076] [Configuration of Computer System] The computer system of this embodiment has a configuration similar to that of the computer system of the first embodiment described in Fig. 1. The configurations of the arithmetic unit, communication unit, and switch unit that make up the computer system 1 are also similar to those described in the first embodiment.

[0077] [Configuration of the Control Unit] The control unit 10 allocates arithmetic processing to the arithmetic unit and allocates data flow by setting communication paths to the communication unit and switch unit. Fig. 18 is a block diagram showing the configuration of the control unit 10 in the computer system 1 according to the third embodiment. The control unit 10 can be configured, for example, by a general-purpose processor (CPU) used for general arithmetic processing, or an FPGA capable of programming any logic circuit.

[0078] The control unit 10 includes a switch unit constraint acquisition unit 11 that acquires constraint information such as setting information for the communication path of the switch unit, a calculation unit constraint acquisition unit 12 that acquires constraint information such as resource usage status of the calculation processing of the calculation unit, a processing information acquisition unit 13 that acquires information about data flow, which is a series of calculation processing to be deployed in the system, a communication path establishment monitoring unit 17 that monitors completion of establishment of the communication path, and a deployment determination unit 14 that determines the calculation unit to which the calculation processing will be deployed.

[0079] [Operation of the control unit] The difference from the first embodiment is that when it takes time to set up and establish a new communication path (first communication path), the data flow is started to be executed using an already established communication path (second communication path) or a communication path that takes less time to set up and establish (third communication path), and after the establishment of the desired communication path (first communication path) is completed, the data flow is transferred to the new communication path.

[0080] Fig. 19 is a diagram showing a data flow deployed in a computer system according to the third embodiment. Figs. 20 and 21 are diagrams showing an example configuration of a computer system according to the third embodiment. In the following explanation, a case will be described in which the arithmetic processing of Fig. 19 is deployed to the arithmetic units (20-1 to 20-4) in the computer system 1 of Figs. 20 and 21.

[0081] The data flow in Figure 19 shows four arithmetic processes #1-A to #1-D, which are processed in the order of processes #1-A to #1-D. The computer system 1 in Figures 20 and 21 includes arithmetic units #1 to #4 (20-1 to 20-4), first communication units #1 to #4 (30-1 to 30-4) and second communication units #1 to #4 (40-1 to 40-4) that connect the arithmetic units, a first switch unit 50 that connects the first communication units #1 to #4, a second switch unit 60 that connects the second communication units #1 to #4, and a control unit 10 that allocates arithmetic processes to the arithmetic units (20-1 to 20-4) and allocates data flows by setting communication paths for the communication units (30-1 to 30-4, 40-1 to 40-4) and the switch units (50, 60). In FIGS. 20 and 21, the first switch section 50 is an optical path switch, and the second switch 60 is an electrical packet switch.

[0082] For example, as shown in FIG. 20, processes #1-A to #1-D are respectively arranged in calculation units #1 to #4 (20-1 to 20-4), and if a communication path is not established in the first switch unit (optical path switch) 50, and if the second communication unit #1 (40-1) → second communication unit #2 (40-2) → second communication unit #3 (40-3) → second communication unit #4 (40-4) has already been established in the second switch unit (electrical packet switch) 60, the data flow is started to be executed using the second switch unit 60.

[0083] 21, in the first switch unit 50, establishment of a communication path from the first communication unit #1 (30-1) to the first communication unit #2 (30-2) to the first communication unit #3 (30-3) to the first communication unit #4 (30-4) is started, and the completion of the establishment is monitored. When the completion of the establishment of the communication path of the first switch unit 50 is detected, the data flow is shifted from the communication path using the second switch unit 60 to the communication path using the first switch unit 50.

[0084] [Operation of the Third Embodiment] The operation of the computer system according to the third embodiment will be described below with reference to a flowchart of FIG.

[0085] In the computer system 1 of this embodiment, the control unit 10 allocates arithmetic processing to the arithmetic units and allocates data flow by setting communication paths to the communication unit and switch unit. Data processed by the arithmetic units is input via the communication unit and switch unit to the arithmetic units that perform subsequent arithmetic processing, thereby enabling the execution of a series of arithmetic processing desired by the user.

[0086] As shown in Figure 22, the control unit 10 acquires information regarding the computational processing to be deployed, and also acquires constraint information regarding whether the computational processing to be deployed can be deployed to each computation unit, and constraint information regarding the setting and establishment of communication paths in the switch unit (steps S3-1 to S3-3).

[0087] Next, the control unit 10 determines whether an already established communication path can be used for the calculation process (step S3-4), and if the communication path required to execute the calculation process is available (step S3-4: YES), it determines the deployment location of the calculation process using the existing communication path.

[0088] On the other hand, in order to execute the calculation process, the control unit 10 needs to establish a new communication path (step S3-4: NO), and if it takes a relatively long time to establish the communication path, it starts executing the data flow using an already established communication path or a communication path that takes a short time to set up and establish (step S3-6).

[0089] The control unit 10 monitors whether the desired communication path has been set up (step S3-7), and after the desired communication path has been established, transfers the data flow to the new communication path (step S3-8).

[0090] The information regarding the computational processes to be deployed, the constraint information regarding whether the computational processes to be deployed can be deployed to each computation unit, and the constraint information regarding the setting and establishment of communication paths for the switch unit are the same as those described in the first embodiment.

[0091] [Effects of the Third Embodiment] As described above, the computer system of this embodiment is a computer system that allocates arithmetic processing to an arithmetic unit and allocates data flows by setting communication paths to a communication unit and a switch unit, and the control unit determines the arithmetic unit to which the arithmetic processing is to be allocated using constraint information such as setting information for the communication paths of the switch unit, constraint information such as resource usage status of the arithmetic processing of the arithmetic unit, and information regarding the data flow, which is a series of arithmetic processing to be allocated to the system.

[0092] This eliminates the need to establish a new communication path by using an existing communication path, or reduces the number and frequency of establishing a new communication path, allowing data flows to start executing earlier. It is also expected to have the effect of reducing the impact on data flows currently in progress.

[0093] Furthermore, since the calculation processing can be allocated taking into account the constraints of the switch section, when an optical path switch, which generally takes time to switch communication paths, is applied to the switch section, it is possible to use communication paths that have already been established preferentially, thereby reducing the time required to switch communication paths and the time required to set up communication paths.

[0094] Furthermore, compared to the first embodiment, if it takes time to set up a communication path, the data flow can be started by provisionally using an already established communication path, or the data flow can be started by provisionally using a communication path that takes a relatively short time to establish, so it is expected that the time until the data flow can be started can be further reduced.

[0095] Fourth Embodiment A computer system according to a fourth embodiment of the present invention will be described.

[0096] [Configuration of Computer System] Computer system 1 of this embodiment has a configuration similar to that of the computer system of the first embodiment described in Fig. 1. The configurations of the arithmetic unit, communication unit, and switch unit that make up computer system 1 are also similar to those described in the first embodiment. Furthermore, the specific configuration of computer system 1 of this embodiment is similar to the configurations shown in Figs. 20 and 21 described in the third embodiment.

[0097] [Configuration of the Control Unit] The control unit 10 allocates arithmetic processing to the arithmetic units, and allocates data flow by setting communication paths to the communication units and switch units. Fig. 23 is a block diagram showing the configuration of the control unit in a computer system according to the fourth embodiment.

[0098] The control unit 10 includes a switch unit constraint acquisition unit 11 that acquires constraint information such as setting information for the communication path of the switch unit, a calculation unit constraint acquisition unit 12 that acquires constraint information such as resource usage status of the calculation processing of the calculation unit, a processing information acquisition unit 13 that acquires information about the data flow, which is a series of calculation processing to be deployed in the system, a status monitoring unit 18 that monitors the data flow rate and elapsed time of the data flow, and a deployment determination unit 14 that determines the calculation unit to which the calculation processing will be deployed.

[0099] [Operation of the Control Unit] The difference from the first embodiment is that the data flow rate and the elapsed time of the data flow are monitored. By utilizing this monitoring function, for example, at the start of a data flow, the data flow is started using an already established communication path (second communication path), such as the second switch unit (electrical packet switch) 60, or a communication path that takes a relatively short time to establish (third communication path). When the data flow has elapsed a predetermined time, or when the data flow rate per unit time of the data flow exceeds a predetermined value, establishment of a new communication path (fourth communication path) that uses the first switch unit (optical path switch) 50 is started. After establishment of the new communication path that uses the first switch unit (optical path switch) 50 is completed, the data flow is migrated to the communication path of the first switch unit (optical path switch).

[0100] The manner in which the deployment destination is determined in this embodiment is not limited to the manner described above. For example, when deploying a computing process, the control unit 10 may deploy the computing process on the premise that an already established communication path or a communication path that takes a relatively short time to establish the communication path will be used.

[0101] In this case, while continuing to monitor the data flow, if it is possible to set and establish a communication path for the first switch unit (optical path switch) 50, data flows that use the second switch unit (electrical packet switch) 60 and have a long elapsed time or a high flow rate per unit time may be migrated to the communication path for the first switch unit (optical path switch) 60.

[0102] [Operation of the Fourth Embodiment] The operation of the computer system according to the fourth embodiment will be described below with reference to a flowchart of FIG.

[0103] In the computer system 1 of this embodiment, the control unit 10 allocates arithmetic processing to the arithmetic units and allocates data flow by setting communication paths to the communication unit and switch unit. Data processed by the arithmetic units is input via the communication unit and switch unit to the arithmetic units that perform subsequent arithmetic processing, thereby enabling the execution of a series of arithmetic processing desired by the user.

[0104] As shown in Figure 24, the control unit 10 acquires information regarding the computational processing to be deployed, and also acquires constraint information regarding whether the computational processing to be deployed can be deployed to each computation unit, and constraint information regarding the setting and establishment of communication paths in the switch unit (steps S4-1 to S4-3).

[0105] Next, the control unit 10 determines whether an already established communication path can be used for the calculation process (step S4-4), and if the communication path required to execute the calculation process is available (step S4-4: YES), it determines the deployment location of the calculation process using the existing communication path.

[0106] On the other hand, if a new communication path needs to be established to execute the arithmetic processing (step S4-4: NO), and if the establishment of the communication path takes a relatively long time, the data flow is started using a predetermined communication path that has already been established, or a communication path that takes a short time to set up and establish (step S4-6). For example, as described in FIG. 20, a communication path that passes through the second switch unit (electrical packet switch) 60 can be used as such a communication path.

[0107] Next, after starting processing on a predetermined communication path, the control unit 10 monitors the flow rate of the data flow and the elapsed time of the data flow (step S4-7). If the data flow of the calculation processing has elapsed a predetermined time or exceeded a predetermined flow rate per unit time (step S4-8: YES), a new communication path is established using the first switch unit (optical path switch), and after the establishment of the desired communication path is completed, the data flow is migrated to the new communication path (step S4-9).

[0108] The information regarding the computational processes to be deployed, the constraint information regarding whether the computational processes to be deployed can be deployed to each computation unit, and the constraint information regarding the setting and establishment of communication paths for the switch unit are the same as those described in the first embodiment.

[0109] [Effects of the Fourth Embodiment] As described above, the computer system of this embodiment is a computer system that allocates arithmetic processing to arithmetic units and allocates data flows by setting communication paths to the communication unit and the switch unit, and the control unit determines the arithmetic unit to which the arithmetic processing is to be allocated using constraint information such as setting information for the communication paths of the switch unit, constraint information such as resource usage status of the arithmetic processing of the arithmetic unit, and information regarding the data flow, which is a series of arithmetic processing to be allocated to the system.

[0110] This eliminates the need to establish a new communication path or reduces the number and frequency of establishing a new communication path, allowing data flows to start executing earlier. It is also expected to have the effect of reducing the impact on data flows that are currently running.

[0111] Furthermore, since the calculation processing can be allocated taking into account the constraints of the switch section, when an optical path switch, which generally takes time to switch communication paths, is applied to the switch section, it is possible to use communication paths that have already been established preferentially, thereby reducing the time required to switch communication paths and the time required to set up communication paths.

[0112] Furthermore, compared to the first embodiment, if it takes time to set up a communication path, the data flow can be started using an already established communication path, which is expected to further reduce the time it takes to start executing the data flow.

[0113] Furthermore, compared to the first embodiment, the optical path switch can be used preferentially for data flows that have a relatively large impact on communication performance, such as data flows with high flow rates or data flows with long elapsed times, thereby improving the utilization efficiency of communication paths.

[0114] [Extending the Embodiments] The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. Furthermore, the embodiments can be implemented in any combination within a consistent range.

[0115] Some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.

[0116] [Supplementary Note 1] A computer system comprising: a plurality of arithmetic units performing arithmetic operations included in a data flow; at least one communication unit for allowing each of the arithmetic units of the plurality of arithmetic units to communicate with other arithmetic units; at least one switch unit connected to the communication unit and switching communication paths between the communication units; and a control unit that allocates the arithmetic operations to the arithmetic units in accordance with the arithmetic operations included in the data flow and sets communication paths for the communication unit and the switch unit, wherein the control unit comprises: a constraint acquisition unit that acquires setting information of the communication paths of the switch unit and a resource usage status of the arithmetic operations of the arithmetic units; and a deployment determination unit that determines a deployment location of the arithmetic operations in the arithmetic units based on the setting information of the communication paths of the switch unit and the resource usage status of the arithmetic operations of the arithmetic units. [Supplementary Note 2] The computer system according to Supplementary Note 1, wherein the control unit comprises: a time derivation unit that derives a time required to establish the communication paths and a time required to allocate the arithmetic operations to the arithmetic units, and the deployment determination unit determines a deployment location of the arithmetic operations in the arithmetic units based on a result of derivation by the time derivation unit so as to shorten the time required until execution of the data flow starts. [Supplementary Note 3] The computer system according to Supplementary Note 1, wherein the control unit includes an establishment monitoring unit that monitors completion of establishment of a first communication path after setting the first communication path for the switch unit, starts execution of the data flow using an already established second communication path or a third communication path that takes a shorter time to establish, and executes the data flow using the first communication path when the establishment monitoring unit detects completion of establishment of the first communication path. [Supplementary Note 4] The computer system according to Supplementary Note 3, wherein the communication unit includes a first communication unit and a second communication unit, the switch unit includes a first switch unit and a second switch unit, the first communication unit is connected to the first switch unit and the second communication unit is connected to the second switch unit, and the first communication path is established to the first switch unit, and the second communication path and the third communication path are established to the second switch unit.[Supplementary Note 5] The control unit includes a status monitoring unit that monitors the data flow rate or elapsed time of the data flow, and after the deployment decision unit determines the deployment destination of the calculation process in the calculation unit and starts execution of the data flow using an already established second communication path or a third communication path that takes a short time to establish, if the status monitoring unit detects that the data flow rate per unit time of the data flow has exceeded a predetermined value or that the data flow has exceeded a predetermined elapsed time, the computer system described in Supplementary Note 1 establishes a fourth communication path between the communication unit and the switch unit and executes the data flow using the fourth communication path. [Supplementary Note 6] The computer system according to Supplementary Note 5, wherein the communication unit includes a first communication unit and a second communication unit, the switch unit includes a first switch unit and a second switch unit, the first communication unit is connected to the first switch unit, the second communication unit is connected to the second switch unit, the fourth communication path is established in the first switch unit, and the second communication path and the third communication path are established in the second switch unit. [Supplementary Note 7] The computer system according to Supplementary Note 4 or Supplementary Note 6, wherein the first switch unit is an optical path switch, and the second switch unit is an electrical packet switch.

[0117] The present invention can be applied to computer systems such as arithmetic units.

[0118] 1...computer system, 10...control unit, 20-1-1 to 20-NM...arithmetic unit, 30-1 to 30-2...first communication unit, 40-1 to 40-2...second communication unit, 50...first switch unit, 60...second switch unit.

Claims

1. A computer system comprising: a plurality of arithmetic units that perform arithmetic processing included in a data flow; at least one communication unit that enables each arithmetic unit of the plurality of arithmetic units to communicate with other arithmetic units; at least one switch unit connected to the communication unit and switching communication paths between the communication units; and a control unit that allocates the arithmetic processing to the arithmetic units in accordance with the arithmetic processing included in the data flow and sets communication paths for the communication unit and the switch unit, wherein the control unit comprises: a constraint acquisition unit that acquires setting information for the communication paths of the switch unit and resource usage status of the arithmetic processing of the arithmetic units; and an allocation decision unit that decides where to allocate the arithmetic processing in the arithmetic units based on the setting information for the communication paths of the switch unit and the resource usage status of the arithmetic processing of the arithmetic units.

2. The computer system of claim 1, wherein the control unit includes a time derivation unit that derives the time required to establish the communication path and the time required to deploy the calculation process to the calculation unit, and the deployment determination unit determines the deployment location of the calculation process in the calculation unit based on the derivation result of the time derivation unit so as to shorten the time required until the execution of the data flow starts.

3. The computer system of claim 1, wherein the control unit includes an establishment monitoring unit that monitors the completion of establishment of the first communication path after setting the first communication path for the switch unit, and starts executing the data flow using an already established second communication path or a third communication path that takes a shorter time to establish, and when the establishment monitoring unit detects the completion of establishment of the first communication path, executes the data flow using the first communication path.

4. The computer system described in claim 3, wherein the communication unit includes a first communication unit and a second communication unit, the switch unit includes a first switch unit and a second switch unit, the first communication unit is connected to the first switch unit, the second communication unit is connected to the second switch unit, the first communication path is established in the first switch unit, and the second communication path and the third communication path are established in the second switch unit.

5. The computer system of claim 1, wherein the control unit includes a status monitoring unit that monitors the data flow rate or elapsed time of the data flow, and after the deployment decision unit determines the deployment destination of the calculation processing in the calculation unit and starts execution of the data flow using an already established second communication path or a third communication path that takes a short time to establish, if the status monitoring unit detects that the data flow rate per unit time of the data flow has exceeded a predetermined value or that the data flow has exceeded a predetermined elapsed time, the control unit establishes a fourth communication path between the communication unit and the switch unit and executes the data flow using the fourth communication path.

6. The computer system described in claim 5, wherein the communication unit includes a first communication unit and a second communication unit, the switch unit includes a first switch unit and a second switch unit, the first communication unit is connected to the first switch unit, the second communication unit is connected to the second switch unit, the fourth communication path is established in the first switch unit, and the second communication path and the third communication path are established in the second switch unit.

7. A computer system according to claim 4 or claim 6, wherein the first switch unit is an optical path switch, and the second switch unit is an electrical packet switch.

Citation Information

Patent Citations

  • Network system, controller, and network control method

    JP2011159247A