Information processing program, computer system and information processing method

The information processing program facilitates dynamic resource management in composable infrastructure by using a relay module to initialize and allocate resources, enhancing efficiency and speed without code changes.

JP2025008070APending Publication Date: 2025-01-20FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023109927
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-04
Publication Date
2025-01-20

AI Technical Summary

Technical Problem

In composable infrastructure, dynamic addition of resources is not supported at the application level, requiring large-scale changes to the program code for resource configuration changes, which is costly and inefficient.

Method used

An information processing program that dynamically adds and initializes physical resources within a composable infrastructure by using a relay module to manage resource allocation and processing commands, allowing applications to function without code changes.

Benefits of technology

Enables dynamic addition and deletion of resources, improving resource utilization efficiency and increasing application execution speed without modifying the application code.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025008070000001_ABST
    Figure 2025008070000001_ABST
Patent Text Reader

Abstract

To dynamically execute addition and deletion of physical resources.SOLUTION: A computer system comprises: an application function unit 30 which causes a first physical resource to execute arithmetic processing: and a relay processing unit 20 which initializes the first physical resource when the first physical resource is added, issues a calculation command to the first physical resource after initialization on the basis of an arithmetic processing instruction issued from the application function unit 30, and transmits an arithmetic result by the first physical resource to the application function unit 30.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an information processing program, a computer system, and an information processing method. [Background technology]

[0002] In recent years, composable infrastructure (CI) has become known as a computer system configuration. Composable infrastructure is an infrastructure composed of an architecture in which resources such as memory, GPUs (Graphics Processing Units), and SSDs (Solid State Drives) are separated from servers to create resource pools, and then connected to the servers via high-speed interconnects.

[0003] As the interconnect, for example, PCIe (Peripheral Component Interconnect-Express), Ethernet (registered trademark), and InfiniBand (registered trademark) are used.

[0004] The resources may be the above-mentioned memory, GPU, SSD, FPGA (Field Programmable Gate Array) or accelerator. Among the resources, processors such as GPU, FPGA, accelerator, etc. used for arithmetic processing may be called computation resources.

[0005] In a composable infrastructure, resources can be added to a server as needed, making it possible to provide a physical server with a flexibly configured configuration and to improve the efficiency of resource utilization.

[0006] In addition, the term "composable infrastructure" is sometimes used instead of "composable disaggregated infrastructure (CDI)."

[0007] In such a conventional composable infrastructure, in order for an application executed on a server to cause a computing resource to perform a computation process, the following process is carried out, for example, when the device is started up.

[0008] 1. Initialize computational resources 2. Memory allocation and data transfer to computing resources 3. Issue a calculation to the computational resource It then iterates over memory allocation, data transfer, and computational execution as needed. [Prior art documents] [Patent documents]

[0009] [Patent Document 1] Special Publication No. 2020-537197 [Patent Document 2] JP 2009-181578 A [Patent Document 3] US Patent Application Publication No. 2014 / 0181806 [Patent Document 4] US Patent Application Publication No. 2014 / 0181807 Summary of the Invention [Problem to be solved by the invention]

[0010] In such a composable infrastructure, the hardware level and the OS (Operating System) support dynamic addition of resources, but the application level does not support dynamic addition of resources.

[0011] For example, applications are created on the assumption that the resource configuration will remain unchanged after it is initialized immediately after startup, such as by defining the number and type of resources as constants, and therefore applications cannot initialize dynamically added resources.

[0012] In order to make an application compatible with the addition of resources, large-scale modifications such as changes to the program code of the application are required, which is costly.

[0013] In one aspect, the present invention aims to enable dynamic addition and deletion of physical resources. [Means for solving the problem]

[0014] This information processing program causes a processor of an information processing device, in a computer system having a composable infrastructure with a resource pool including a plurality of physical resources, to dynamically add a first physical resource among a plurality of physical resources of the resource pool, to execute a process of initializing the first physical resource when the first physical resource is added, issuing a calculation command to the initialized first physical resource based on a calculation processing instruction issued by an application function realized by the processor executing an application program to cause the first physical resource to execute calculation processing, and transmitting a calculation result by the first physical resource to the application function. Effect of the Invention

[0015] According to one embodiment, physical resources can be dynamically added or removed. [Brief description of the drawings]

[0016] [Figure 1] FIG. 1 is a diagram illustrating a configuration of a computer system according to an embodiment; [Diagram 2] 2 is a diagram illustrating an example of a hardware configuration of a server in a computer system according to an embodiment. [Diagram 3] FIG. 2 is a diagram illustrating an example of a system configuration of a server in a computer system according to an embodiment. [Figure 4]FIG. 13 is a diagram illustrating an overview of the processing of a relay module in a computer system according to an embodiment. [Diagram 5] 1 is a diagram illustrating an example of a functional configuration of a relay module in a computer system according to an embodiment; [Figure 6] 1 is a diagram illustrating an example of resource management information in a computer system according to an embodiment. [Figure 7] FIG. 11 is a sequence diagram showing an overview of processing in a computer system according to an embodiment. [Figure 8] 11 is a sequence diagram showing a process for adding a resource in a computer system according to an embodiment. FIG. [Figure 9] 10 is a flowchart for explaining a process performed by the relay module 20 in the computer system 1 according to an embodiment when a command is received. [Figure 10] FIG. 11 is a diagram illustrating another example of the system configuration of a server in a computer system according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] Hereinafter, an embodiment of the present information processing program, computer system, and information processing method will be described with reference to the drawings. However, the embodiment shown below is merely an example, and there is no intention to exclude the application of various modified examples and techniques not explicitly stated in the embodiment. In other words, this embodiment can be implemented with various modifications within the scope of its purpose. Furthermore, each figure is not intended to include only the components shown in the figure, but can include other functions, etc.

[0018] (A) Configuration FIG. 1 is a diagram illustrating a schematic configuration of a computer system 1 according to an embodiment.

[0019] A computer system 1 illustrated in FIG. 1 includes a management server 2, an interconnect 3, resource pools 4-1 to 4-5, and one or more servers 10 (three in the example illustrated in FIG. 1).

[0020] Each server 10, the management server 2, and the resource pools 4-1 to 4-5 are connected via an interconnect 3.

[0021] The interconnect 3 is a high-speed communication line, and may be, for example, PCIe, Ethernet, or InfiniBand.

[0022] The interconnect 3 may include a switch function, and the management server 2 described below controls the switching of this switch to connect (add) resources to the server 10 and disconnect (delete) resources from the server 10.

[0023] The computer system 1 has a composable infrastructure that is configured so that resources (computing resources) can be dynamically added to the server 10.

[0024] Each of the resource pools 4-1 to 4-5 includes a plurality of resources. Hereinafter, each resource included in each resource pool 4 may be referred to as a physical resource.

[0025] In the example shown in FIG. 1, resource pool 4-1 includes multiple GPUs. The GPUs included in resource pool 4-1 may be referred to as physical GPUs. Resource pool 4-2 includes multiple FPGAs. The FPGAs included in resource pool 4-2 may be referred to as physical FPGAs. Resource pool 4-3 includes multiple accelerators. The accelerators included in resource pool 4-3 may be referred to as physical accelerators.

[0026] The GPU, FPGA, and accelerator included as resources in the resource pools 4-1 to 4-3 are processors capable of executing arithmetic processing. These processors may be called computation resources. Among physical resources, computation resources may be called physical computation resources.

[0027] The resource pool 4-4 includes a plurality of memories. The resource pool 4-5 includes a plurality of SSDs. The memories included in the resource pool 4-4 and the SSDs included in the resource pool 4-5 are both non-computational resources.

[0028] Hereinafter, when there is no need to distinguish between the resource pools 4-1 to 4-5, they will be referred to as resource pool 4.

[0029] The management server 2 controls the connection of resources in each resource pool 4 to each server 10, and controls the disconnection of resources connected to each server 10 from that server 10. These functions of the management server 2 are known, and a description thereof will be omitted.

[0030] The management server 2 controls the switching of the switches included in the interconnect 3 to realize the connection (addition) of resources to the server 10 and the disconnection (deletion) of resources from the server 10.

[0031] Hereinafter, connecting a resource to the server 10 may be referred to as adding a resource, and disconnecting a resource from the server 10 may be referred to as deleting a resource.

[0032] The server 10 is an information processing device having a server function. Resources are allocated to each server 10 from each resource pool 4 by the management server 2. For example, the server 10 is allocated a GPU from the resource pool 4-1, an FPGA from the resource pool 4-2, an accelerator from the resource pool 4-3, a memory from the resource pool 4-4, and an SSD from the resource pool 4-5.

[0033] FIG. 2 is a diagram illustrating an example of a hardware configuration of the server 10 in the computer system 1 according to an embodiment.

[0034] As shown in FIG. 2, the server 10 may, as a hardware configuration, illustratively include a processor 10a, a graphics processing unit 10b, a memory 10c, a storage unit 10d, an IF (Interface) unit 10e, an IO (Input / Output) unit 10f, and a reading unit 10g.

[0035] Among these, the graphics processing unit 10b may be a GPU allocated from the resource pool 4-1, the memory 10c may be a memory allocated from the resource pool 4-4, and the storage unit 10d may be an SSD allocated from the resource pool 4-5.

[0036] The processor 10a is an example of a processing device that performs various controls and calculations, and is a control unit that executes various processes. The processor 10a may be connected to each block in the server 10 via a bus 10j so that they can communicate with each other. The processor 10a may be a multiprocessor including multiple processors, a multicore processor having multiple processor cores, or a configuration having multiple multicore processors.

[0037] The processor 10a may be, for example, an integrated circuit (IC) such as a CPU, an MPU, an APU, a DSP, an ASIC, or an FPGA. The processor 10a may be a combination of two or more of these integrated circuits. CPU is an abbreviation for Central Processing Unit, and MPU is an abbreviation for Micro Processing Unit. APU is an abbreviation for Accelerated Processing Unit. DSP is an abbreviation for Digital Signal Processor, and ASIC is an abbreviation for Application Specific IC.

[0038] The processor 10a executes an information processing program to realize a function as a relay module 20 (see FIGS. 3 to 5, etc.) described later. The processor 10a executes an application program to realize a function as an application function unit 30 (see FIGS. 3, 4, etc.) described later.

[0039] The graphics processing device 10b controls screen display for an output device such as a monitor in the IO unit 10f. The graphics processing device 10b may also have a configuration as an accelerator that executes machine learning processing and inference processing using a machine learning model. The graphics processing device 10b may be various types of arithmetic processing device, such as an integrated circuit (IC) such as a GPU, an APU, a DSP, an ASIC, or an FPGA.

[0040] The memory 10c is an example of HW that stores various data, programs, and other information. The memory 10c may be, for example, one or both of a volatile memory such as a dynamic random access memory (DRAM) and a non-volatile memory such as a persistent memory (PM).

[0041] The storage unit 10d is an example of HW that stores various data, programs, and other information. Examples of the storage unit 10d include various storage devices such as a magnetic disk device such as a hard disk drive (HDD), a semiconductor drive device such as an SSD, and a nonvolatile memory. Examples of the nonvolatile memory include a flash memory, a storage class memory (SCM), and a read only memory (ROM).

[0042] The storage unit 10d may store a program 10h that realizes all or part of the various functions of the server 10.

[0043] The processor 10a realizes various functions by expanding and executing the program 10h in the memory 10c. The programs executed by the processor 10a include an information processing program for realizing the function of the relay module 20 described below, and an application program for realizing the function of the application function unit 30.

[0044] The IF unit 10e is an example of a communication IF that controls connection and communication between the server 10 and other electronic devices or other computers. For example, the IF unit 10e may be a PCIe interface adapter or a network interface adapter for connecting to the interconnect 3. The adapter may support one or both of wireless and wired communication methods.

[0045] The server 10 may be connected to each of the resource pools 4 and the management server 2 illustrated in Fig. 1 so as to be able to communicate with each other via the IF unit 10e and the interconnect 3. The program 10h may be downloaded to the server 10 from a network via the communication IF and stored in the storage unit 10d.

[0046] The IO unit 10f may include one or both of an input device and an output device. Examples of the input device include a keyboard, a mouse, a touch panel, etc. Examples of the output device include a monitor, a projector, a printer, etc. The IO unit 10f may also include a touch panel or the like in which the input device and the output device are integrated. The output device may be connected to the graphics processing device 10b.

[0047] The reading unit 10g is an example of a reader that reads out data or program information recorded on the recording medium 10i. The reading unit 10g may include a connection terminal or device to which the recording medium 10i can be connected or inserted. Examples of the reading unit 10g include an adapter that complies with USB (Universal Serial Bus) or the like, a drive device that accesses a recording disk, and a card reader that accesses a flash memory such as an SD card. The recording medium 10i may store a program 10h, and the reading unit 10g may read the program 10h from the recording medium 10i and store it in the storage unit 10d.

[0048] Examples of the recording medium 10i include non-transitory computer-readable recording media such as magnetic / optical disks and flash memories. Examples of the magnetic / optical disks include flexible disks, CDs (Compact Discs), DVDs (Digital Versatile Discs), Blu-ray Discs, and HVDs (Holographic Versatile Discs). Examples of the flash memory include semiconductor memories such as USB memories and SD cards.

[0049] The above-described hardware configuration of the server 10 is an example. Therefore, the hardware in the server 10 may be increased or decreased (for example, adding or deleting any block), divided, integrated in any combination, or the bus may be added or deleted, as appropriate.

[0050] As described above, in the server 10, the processor 10a realizes the function of the application function unit 30 by executing the application program, and also realizes the function of the relay module 20 by executing the information processing program.

[0051] FIG. 3 is a diagram illustrating an example of a system configuration of the server 10 of the computer system 1 according to an embodiment.

[0052] 3, resource #1 and resource #2 are added to the server 10. Resource #1 and resource #2 are different types of computational resources, and for example, resource #1 may be a GPU and resource #2 may be an FPGA.

[0053] A driver is provided for each of these resources #1 and #2, and further, a library is provided for each driver.

[0054] A relay module 20 is provided between each library and the application function unit 30 .

[0055] The application function unit 30, for example, causes the computation resource to perform a computation. The application function unit 30 transmits a computation command to the computation resource via the relay module 20, and transmits (transfers) data used in the computation.

[0056] As described later, the application function unit 30 recognizes the relay module 20 as a virtual computational resource. As a result, the transmission of commands and the like that the application function unit 30 attempts to perform to the computational resource is actually performed to the relay module 20.

[0057] Furthermore, immediately after starting up the application function unit 30, the application function unit 30 issues an initialization command to the computational resources to be added to the server 10. The initialization process of this application includes a process of detecting the number of available resources.

[0058] Furthermore, the application function unit 30 issues a memory allocation command that instructs memory allocation to the computational resource to be added to the server 10 .

[0059] In this manner, each command issued from the application function unit 30 to be transmitted to a computational resource is actually input to the relay module 20 .

[0060] The relay module 20 relays commands and data between the application function unit 30 functioning in the server 10 and computational resources (physical resources). Hereinafter, when simply referring to resources, this refers to computational resources.

[0061] FIG. 4 is a diagram showing an overview of the processing of the relay module 20 in the computer system 1 according to an embodiment.

[0062] The relay module 20 causes the application function unit 30 to recognize virtual resources (virtual computing resources). For example, the relay module 20 causes the application function unit 30 to recognize the virtual computing resources by responding with 1 (the number of virtual resources) when detecting the number of available resources during the initialization process of the application. For subsequent processing of the resources, the relay module 20 transfers commands to the corresponding physical resources depending on the type of command.

[0063] The relay module 20 receives all commands issued to the resource from the application function unit 30, and processes the resource based on these commands. The relay module 20 also receives responses (calculation results, completion notifications, etc.) sent from the resource to the application function unit 30, and transfers them to the application function unit 30.

[0064] It may be said that the relay module 20 makes the application function unit 30 recognize a virtual computing resource (virtual computing resource) instead of a physical computing resource.

[0065] In a state where multiple physical resources are added to the server 10, when a calculation command is issued from the application function unit 30 to a physical resource, the relay module 20 selects one physical resource from the multiple physical resources and transfers the calculation command. In other words, the relay module 20 appropriately allocates the calculation command issued from the application to one or more calculation resources.

[0066] Even when the management server 2 dynamically adds resources (computational resources) to the server 10, resulting in multiple computational resources being added to the server 10, the relay module 20 causes the application function unit 30 of the server 10 to recognize one computational resource (virtual resource).

[0067] Furthermore, when a computational resource is added to the server 10, the relay module 20 performs a process of initializing the added resource (additional resource).

[0068] FIG. 5 is a diagram illustrating an example of the functional configuration of the relay module 20 in the computer system 1 according to an embodiment.

[0069] 5, the relay module 20 may illustratively include functions as a resource control unit 21 and a relay processing unit 22. These functions may be realized by the hardware of the server 10 (see FIG. 2).

[0070] The resource control unit 21 performs control for making resources (computational resources) available to the application function unit 30.

[0071] When a resource (additional resource) is added to the own server 10, the resource control unit 21 initializes the additional resource. Specifically, the resource control unit 21 performs a process of initializing the additional resource by transmitting an initialization command to the additional resource.

[0072] The initialization command issued by the resource control unit 21 (relay module 20) may be the same as the initialization command issued by the application function unit 30. However, the resource initialization process by the resource control unit 21 does not need to include a process for detecting the number of available resources.

[0073] The addition of a computation resource may be performed, for example, when a monitoring function (not shown) monitors the load state of the computation resource during the execution of the calculation and the load state exceeds a threshold. The load state may be, for example, the usage rate of the computation resource (GPU, FPGA, accelerator). Alternatively, the addition of a computation resource may be performed when a user decides to add a computation resource and performs an input operation to add the computation resource.

[0074] The additional resource that has received the initialization command executes a process for initialization that has been defined in advance. This process for initialization may include, for example, preparations for enabling transmission and reception of data such as commands between the additional resource and the server 10. For example, in the initialization process, the additional resource secures a storage area in the memory 10c of the server 10 to be used for transmitting and receiving data such as commands between the additional resource.

[0075] Furthermore, when adding a resource, the resource control unit 21 allocates memory to the added resource. Specifically, the resource control unit 21 transmits a memory allocation command to the added resource. The memory allocation command issued by the resource control unit 21 (relay module 20) may be the same as the memory allocation command issued by the application function unit 30.

[0076] The additional resource that has received the memory allocation command executes a predefined memory allocation process. This memory allocation process may include, for example, a process of reserving a storage area in a memory (not shown) provided in the additional resource for use in sending and receiving data to and from the server 10.

[0077] Furthermore, the resource control unit 21 manages resources that have been added to the server 10 and are in a usable state, using resource management information.

[0078] FIG. 6 is a diagram illustrating an example of resource management information in the computer system 1 according to an embodiment.

[0079] 6, the resource management information is indicated by the reference numeral 40. Hereinafter, the resource management information may be referred to as the resource management information 40.

[0080] The resource management information 40 illustrated in Fig. 6 is configured by associating types with resources. The type is the type of resource, and in the example illustrated in Fig. 6, GPU, FPGA, and Accelerator are illustrated. The resource is information that identifies a resource. In the example illustrated in Fig. 6, for example, GPU0, GPU1, and GPU2 are illustrated as GPUs.

[0081] The resource control unit 21 records information about additional resources that have become available for use by its own server 10 by issuing an initialization command and a memory allocation command in this resource management information 40. The resource control unit 21 also deletes information about resources that have been disconnected from its own server 10 from the resource management information 40. In this manner, the resource control unit 21 manages and updates the resource management information 40.

[0082] The resource management information 40 is stored in a predetermined storage area of ​​the memory 10c or the storage unit 10d used by the server 10 itself, for example.

[0083] Furthermore, when a calculation command is issued from the application function unit 30 in a state where multiple resources have been added to the server 10, the resource control unit 21 selects a resource to process the calculation command. Hereinafter, the resource selected to process the calculation command may be referred to as a selected resource.

[0084] For example, when multiple GPUs are added to a server 10 and a calculation command is issued from the application function unit 30, the resource control unit 21 selects a GPU (selected resource) to process the calculation command from among the multiple GPUs connected to the server 10.

[0085] The resource control unit 21 may select the selected resources so that the loads are even among a plurality of physical resources of the same type.

[0086] For example, the resource control unit 21 may select a selected resource in a round robin manner among multiple physical resources of the same type, or may give priority to a resource with the lowest utilization rate as the selected resource. Also, the resource control unit 21 may randomly select a selected resource from multiple physical resources of the same type.

[0087] The relay processing unit 22 relays data between the application function unit 30 and resources.

[0088] The relay processing unit 22 receives commands transmitted from the application function unit 30 to resources, and transmits (transfers) the commands to the destination resources. For example, the relay processing unit 22 receives initialization commands and memory allocation commands transmitted from the application function unit 30 to resources, and transmits these initialization commands and memory allocation commands to the destination resources.

[0089] Furthermore, the relay processing unit 22 receives data and the like transmitted from the resource to the application function unit 30, and transmits (transfers) the data to the application function unit 30. For example, the relay processing unit 22 receives calculation result data and completion notifications transmitted from the resource to the application function unit 30, and transmits (transfers) the data and completion notifications to the application function unit 30.

[0090] (B) Operation An overview of the processing in the computer system 1 according to the embodiment configured as described above will be described with reference to the sequence diagram shown in FIG.

[0091] FIG. 7 shows transmission and reception of commands and data between the application function unit 30, the relay module 20, and the computational resources.

[0092] When the application function unit 30 in the server 10 is started, the application function unit 30 issues an initialization command for resources (see symbol A1), and the initialization command is received by the relay module 20. The relay module 20 issues an initialization command to the computational resources (see symbol A2).

[0093] Next, the application function unit 30 issues a memory allocation command for the resource (see reference symbol A3), and this memory allocation command is received by the relay module 20. The relay module 20 issues a memory allocation command to the computing resource to be added (see reference symbol A4).

[0094] The computational resources are added to the server 10 and become available for use by the application function unit 30 .

[0095] When the application function unit 30 transfers the data (see symbol A5), the relay module 20 receives this data. The relay module 20 transfers the data to the additional resource (see symbol A6).

[0096] Thereafter, when the application function unit 30 issues a calculation command (see reference symbol A7), this calculation command is received by the relay module 20. The relay module 20 transfers the calculation command to the additional resource (see reference symbol A8).

[0097] Next, a process for adding a resource in the computer system 1 according to an embodiment will be described with reference to a sequence diagram shown in FIG.

[0098] FIG. 8 shows transmission and reception of commands and data between the application function unit 30, the relay module 20, the additional resource, and a computing resource other than the additional resource.

[0099] As described above, the addition of a computing resource may be performed, for example, when a monitoring function (not shown) monitors the load state of a computing resource during execution of a calculation and the load state exceeds a threshold value. Also, the addition of a computing resource may be performed when a user decides to add a computing resource and performs an input operation to add a computing resource.

[0100] The relay module 20 (resource control unit 21) issues an initialization command to the additional resource to perform initialization processing (see symbol B1). The additional resource executes processing for initialization, and when the initialization is completed, notifies the relay module 20 of the completion (see symbol B2).

[0101] After the initialization of the additional resource is completed and the additional resource is added to the server 10, the application function unit 30 issues a calculation command (see symbol B3). The relay module 20 (resource control unit 21) selects a resource (selected resource) that processes the calculation command from among the multiple resources added to the server 10 (see symbol B4).

[0102] The relay module 20 (relay processing unit 22) issues the calculation command issued by the application function unit 30 to the selected resource (see symbol B5).

[0103] FIG. 8 shows an example in which a calculation command is issued to a resource that has been previously added to the server 10 as a selected resource.

[0104] The relay module 20 (relay processing unit 22) receives the calculation result from the resource that processed the calculation command (see reference symbol B6), and responds with the calculation result to the application function unit 30 (see reference symbol B7).

[0105] Next, a process performed by the relay module 20 in the computer system 1 according to an embodiment when a command is received will be described with reference to a flow chart shown in FIG. 9 (see steps S1 to S7).

[0106] In step S1, the relay module 20 (relay processing unit 22) receives a command issued from the application function unit 30.

[0107] In step S2, the relay module 20 checks whether the received command is either an initialization command or a memory allocation command. If the check results in the reception of the command being either an initialization command or a memory allocation command (see the YES route in step S2), the process proceeds to step S3.

[0108] In step S3, the relay module 20 (resource control unit 21) issues a command similar to the received command to the additional resource. That is, the relay module 20 issues either an initialization command or a memory allocation command to the additional resource.

[0109] When a response (completion) to the issued command is received from the additional resource, in step S4, the relay module 20 responds with a completion to the application function unit 30. After that, the process ends.

[0110] Furthermore, if the confirmation result in step S2 shows that the received command is neither an initialization command nor a memory allocation command, that is, if the received command is a calculation command (see the NO route in step S2), the process proceeds to step S5.

[0111] In step S5, the relay module 20 (resource control unit 21) selects, from among a plurality of resources added to the server 10, a resource (selected resource) that is to process the calculation command.

[0112] In step S6, the relay module 20 (relay processing unit 22) issues (transfers) a calculation command to the selected resource.

[0113] When the calculation result and completion for the issued calculation command are received from the resource, in step S7, the relay module 20 responds with the calculation result and completion to the application function unit 30. Then, the process ends.

[0114] (C) Effects In this way, according to the computer system 1 as an example of the embodiment, it is possible to add or remove computational resources while the application program is being executed in the server 10, without modifying the code of the application program for operating the application function unit 30. This allows resources to be dynamically added or removed. In addition, it is possible to speed up the execution of the application program.

[0115] In other words, the relay module 20 can initialize the dynamically added resources by issuing an initialization command or a memory allocation command to the added resources, and the application function unit 30 can make the resources available for use.

[0116] Furthermore, by the relay module 20 selecting a resource from among multiple resources to process a calculation command, even when multiple resources are added through dynamic resource addition, the application function unit 30 can efficiently use these multiple resources.

[0117] (D) Other The disclosed technology is not limited to the above-described embodiment, but can be implemented in various modifications without departing from the spirit of the present embodiment.

[0118] FIG. 10 is a diagram showing another example of the system configuration of the server 10 of the computer system 1 according to an embodiment.

[0119] 10, a relay module 20 is provided for each of resource #1 and resource #2. In this manner, a relay module 20 may be provided for each type of resource.

[0120] In the above-described embodiment, the computational resources are GPU, FPGA, and accelerator, but are not limited thereto. The resources may be other integrated circuits (ICs) such as MPU, APU, DSP, and ASIC.

[0121] Furthermore, in the above-described embodiment, the addition of resources is mainly described, but the present invention is not limited to this and can be similarly applied to the deletion of resources. Furthermore, the above disclosure enables a person skilled in the art to implement and manufacture the present embodiment.

[0122] (E) Notes Regarding the above embodiment, the following supplementary notes are further disclosed.

[0123] (Appendix 1) In a computer system having a composable infrastructure including a resource pool including a plurality of physical resources, a processor of an information processing device to which a first physical resource of the plurality of physical resources of the resource pool is dynamically added, initializing the first physical resource when the first physical resource is added; issuing a calculation command to the first physical resource after initialization based on a calculation processing instruction issued by an application function realized by the processor executing an application program to cause the first physical resource to execute a calculation process; Transmitting a result of the computation by the first physical resource to the application function. An information processing program for causing a process to be executed.

[0124] (Appendix 2) When a plurality of the physical resources are added, a physical resource to which the calculation command is to be issued is selected from the plurality of added physical resources. 2. The information processing program according to claim 1, characterized in that the program causes the processor to execute a process.

[0125] (Appendix 3) A computer system having a composable infrastructure including an information processing device and a resource pool including a plurality of physical resources, the composable infrastructure being configured to dynamically add a first physical resource of the plurality of physical resources of the resource pool to the information processing device, an application function unit that causes the first physical resource to execute a computation process; a relay processing unit that initializes the first physical resource when the first physical resource is added, issues a calculation command to the initialized first physical resource based on a calculation processing instruction issued from the application function unit, and transmits a calculation result by the first physical resource to the application function unit; A computer system comprising:

[0126] (Appendix 4) The relay processing unit, When a plurality of the first physical resources are added to the information processing device, a first physical resource to which the calculation command is to be issued is selected from the plurality of first physical resources. 4. A computer system as described in claim 3.

[0127] (Appendix 5) a processor of the information processing device executes a first program to function as the application function unit; The processor functions as the relay processing unit by executing a second program different from the first program. 5. A computer system according to claim 3 or 4.

[0128] (Appendix 6) 1. An information processing device in a computer system having a composable infrastructure including a resource pool including a plurality of physical resources, the information processing device dynamically adding a first physical resource among the plurality of physical resources of the resource pool, an application function unit causes the first physical resource to execute a calculation process; a relay processing unit that initializes the first physical resource when the first physical resource is added, issues a calculation command to the initialized first physical resource based on a calculation processing instruction issued from the application function unit, and transmits a calculation result by the first physical resource to the application function unit. 1. An information processing method comprising:

[0129] (Appendix 7) The relay processing unit, When a plurality of the physical resources are added, a physical resource to which the calculation command is to be issued is selected from the plurality of added physical resources. 7. An information processing method according to claim 6,

[0130] (Appendix 8) a processor of the information processing device executes a first program to function as the application function unit; The processor functions as the relay processing unit by executing a second program different from the first program. 8. The information processing method according to claim 6 or 7. [Explanation of symbols]

[0131] 1. Computer Systems 2 Management Server 3. Interconnect 4-1~4-5,4 Resource Pool 10 Server 10 10a processor 10b Graphics Processing Unit 10c Memory 10d storage section 10e IF section 10f IO section 10g Reading unit 10h Program 10i Recording media 10j Bus 20 Relay Module 21 Resource Control Section 22 Relay Processing Unit 30 Application Function Section 40 Resource Management Information

Claims

1. In a computer system having a composable infrastructure including a resource pool including a plurality of physical resources, a processor of an information processing device to which a first physical resource of the plurality of physical resources of the resource pool is dynamically added, initializing the first physical resource when the first physical resource is added; issuing a calculation command to the first physical resource after initialization based on a calculation processing instruction issued by an application function implemented by the processor executing an application program to cause the first physical resource to execute a calculation process; Transmitting a result of the computation by the first physical resource to the application function. An information processing program for causing a process to be executed.

2. When a plurality of the physical resources are added, a physical resource to which the calculation command is to be issued is selected from the plurality of added physical resources.

2. The information processing program according to claim 1, further comprising: a program for causing the processor to execute a process.

3. A computer system having a composable infrastructure including an information processing device and a resource pool including a plurality of physical resources, the composable infrastructure being configured to dynamically add a first physical resource of the plurality of physical resources of the resource pool to the information processing device, an application function unit that causes the first physical resource to execute a computation process; a relay processing unit that initializes the first physical resource when the first physical resource is added, issues a calculation command to the initialized first physical resource based on a calculation processing instruction issued from the application function unit, and transmits a calculation result by the first physical resource to the application function unit; A computer system comprising:

4. 1. An information processing device in a computer system having a composable infrastructure including a resource pool including a plurality of physical resources, the information processing device dynamically adding a first physical resource among the plurality of physical resources of the resource pool, an application function unit causes the first physical resource to execute a computation process; A relay processing unit initializes the first physical resource when the first physical resource is added, issues a calculation command to the initialized first physical resource based on a calculation processing instruction issued from the application function unit, and transmits a calculation result by the first physical resource to the application function unit.

1. An information processing method comprising:

Citation Information

Patent Citations

  • Method and device for dynamically allocating resources to a plurality of virtual machines

    JP2009181578A

  • Container-based GPU virtualization method and system

    JP2020537197A

  • Managing a data structure for allocating graphics processing unit resources to virtual machines

    US20140181806A1

  • Runtime profile determinations of virtual machines for graphics processing unit (GPU) allocation

    US20140181807A1