Signal processing resource switching device, signal processing resource switching system, signal processing resource switching method, and program
By designing a signal processing resource switching device, the accelerator failure is automatically detected and switched to a backup accelerator, the problem of operation interruption in accelerator failure is solved, the operation transparency and high availability is achieved, and the operation continues to be continued when the operation is burst and when the operation is intentionally disconnected is met.
Patent Information
- Application Number
- CN202280097955.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-11
- Publication Date
- 2025-03-11
AI Technical Summary
In the event of accelerator failure or maintenance, the prior art cannot switch to the backup accelerator without interrupting application operations, resulting in a pause in operations and failing to meet the requirements of transparency, availability in the event of burst failure and operational continuation when disconnected intentionally.
A signal processing resource switching device is designed, including a function proxy execution unit, an accelerator failure sensing unit, and an offload destination computing resource determination unit. It can automatically detect accelerator failure without modification of the application program and switch to an unfailed backup accelerator to ensure the transparency and high availability of the operation.
It realizes that the calculation processing can be continued to maximize the operation when the accelerator fails or maintains, meets the requirements of transparency, high availability in burst failures, and the operational continued to occur when the operation is intentionally disconnected, and improves the reliability and efficiency of the system.
Smart Images

Figure CN119604850A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a signal processing resource switching device, a signal processing resource switching system, a signal processing resource switching method and a program. Background Art
[0002] Depending on the type of processor, the workload that the processor is good at (has high processing power) is different. Compared with the highly versatile CPU (Central Processing Unit), there are accelerators (hereinafter referred to as ACCs) such as FPGA (Field Programmable Gate Array) / (in the following description, " / " means "or") GPU (Graphics Processing Unit) / ASIC (Application Specific Integrated Circuit) that can quickly and efficiently calculate high-parallel workloads that the CPU is not good at (has low processing power). By combining these different types of processors, the workload that the CPU is not good at is offloaded to the ACC for calculation, and the effective use of offloading technology to improve overall calculation time and calculation efficiency is underway.
[0003] In vRAN (virtual Radio Access Network), when CPU performance alone is insufficient to meet requirements, part of the processing is offloaded to an accelerator capable of high-speed computing, such as an FPGA or a GPU.
[0004] Representative examples of specific workloads to be offloaded by ACC include encoding / decoding processing (FEC: forward error correction processing), media processing of audio and video, and encryption / decryption processing in vRAN.
[0005] In computer systems, a computer (hereinafter referred to as a server) is sometimes equipped with hardware corresponding to general processing (CPU) and hardware dedicated to specific operations (accelerator), and a part of the operation processing is offloaded from the general processor of software operation to the accelerator.
[0006] In addition, with the development of cloud computing, it is becoming more and more common to simplify the client configuration by offloading part of the computationally intensive processing from the client at the user site to the server at a remote site (such as a data center located near the user) via a network (hereinafter referred to as NW).
[0007] Fig.15 A diagram illustrating a computer system.
[0008] like Fig.15 As shown, the server 50 includes a CPU 11 and an accelerator 12 - 1 mounted on hardware 10 , and includes an application program (hereinafter referred to as APL or application unit as appropriate) 1 of software 20 running on the CPU 11 of the server 50 .
[0009] The accelerator 12 is a computing accelerator device such as FPGA (Field Programmable Gate Array) / GPU (Graphics Processing Unit).
[0010] The accelerator 12 may fail with a certain probability, for example, due to a failure of a cooling fan.
[0011] The application 1 calls a set of functions (API) defined as a standard to offload a part of the processing to the accelerator 12 .
[0012] exist Fig.15 In the case where a single accelerator 12 fails, the calculation at this time needs to be continued.
[0013] The computer system is required to maintain the availability of the application 1 even during a period when the accelerator 12 mounted on the server 50 cannot be used due to failure or maintenance, etc. The availability requirement of the application 1 is as follows.
[0014] Requirement 1: Transparency
[0015] There is no need to modify the application or install dedicated processing. Specifically, when a specific accelerator cannot be used, there is no need for the application to sense / avoid processing.
[0016] Requirement 2: Availability in the event of a sudden failure
[0017] When a specific accelerator suddenly becomes unavailable, the time it takes for the application to resume computing processing is minimized.
[0018] Requirement 3: Operational Continuation During Intentional Disconnection
[0019] When the accelerator 12 is disconnected (switched) in advance for maintenance, failure prediction, etc., the calculation processing is not interrupted (no instantaneous interruption).
[0020] Prior art literature
[0021] Non-patent literature
[0022] [Non-patent document 1] "Open Stack Guide", [online], [retrieved on June 6, 2019], Internet 〈URL: http: / / openstack-ja.github.io / openstack-manuals / openstack-ops / content / maintenance.html〉 Summary of the invention
[0023] Problems to be solved by the invention
[0024] As a prior art, there is the following technology: after sensing a hardware failure, the application or virtual machine (VM) (hereinafter referred to as application / VM) using the hardware is migrated to the same server (mode 1) or another server (mode 2) and processing is continued (see non-patent document 1).
[0025] Fig.16 and Fig.17 This is a diagram for explaining the technique of Non-Patent Document 1. Fig.16 This diagram explains mode 1: application / VM restart within the same server. Fig.17 This figure explains mode 2: starting on another server. Fig.15 The same components are marked with the same reference numerals. Fig.16 and Fig.17 In the figure, the equipment that stops operating is indicated by a dotted line.
[0026] like Fig.16 As shown, in the case where the accelerator 12-1 in the same server 50 fails ( Fig.16 , for example, after the operator senses a hardware failure ( Fig.16 b), restarting the application / VM in the same server according to the instruction from the operator ( Fig.16 The restarted application / VM1-2 re-unloads the task to the accelerator (redundancy) 12-2 ( Fig.16 d).
[0027] like Fig.17 As shown, in the case of startup on another server, for example, the operator performs migration of the application and virtual machine on another server 60 ( Fig.17 The restarted application / VM1-2 re-unloads the task to the accelerator (redundancy) 12-2 ( Fig.17 d).
[0028] However, in either of the above-mentioned mode 1: application / VM restart in the same server and mode 2: startup on another server, although the CPU 11 has not failed, the entire application / VM is migrated or restarted, which has the following three differences.
[0029] (1) Gap 1
[0030] When recovering from a failure, you need to uninstall the application again ( Fig.16 and Fig.17 Figure d) does not satisfy <Requirement 1: Transparency>.
[0031] (2) Gap 2
[0032] In the event of a sudden failure, operations are stopped during application restart and migration. Fig.16 and Fig.17 Reference numeral c) does not satisfy <Requirement 2: Availability during sudden failures>.
[0033] (3) Gap 3
[0034] Even in a planned switch, the migration of applications ( Fig.16 and Fig.17 Reference symbol c) and operation stop during re-unloading processing ( Fig.16 and Fig.17 d) does not satisfy <Requirement 3: Operation continues when disconnected intentionally>.
[0035] The present invention has been made in view of the above background, and an object of the present invention is to continue the operation processing to the maximum extent possible without an instruction from the application program when the accelerator cannot be used.
[0036] Solutions for solving problems
[0037] In order to solve the above-mentioned problem, the present invention adopts a signal processing resource switching device, which switches the computing resources of the offloading destination when there are multiple accelerators and the specific processing of the application is offloaded to the accelerator for calculation processing. The signal processing resource switching device is characterized in that it comprises: a function proxy execution unit, which accepts a function name and an independent variable from the application, and notifies the application of the independent variable data of the function when and when the function is executed by the computing resource; an accelerator fault sensing unit, which senses the fault of the accelerator; and an offloading destination computing resource determination unit, which determines the resources among the computing resources that are not faulty and can be used, and the function proxy execution unit unloads to the resources determined by the offloading destination computing resource determination unit.
[0038] Effects of the Invention
[0039] According to the present invention, when the accelerator cannot be used, the calculation processing can be continued to the maximum extent possible without an instruction from the application program. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] Figure 1 It is a schematic diagram of the structure of a signal processing resource switching system according to an embodiment of the present invention.
[0041] Figure 2 It is a schematic configuration diagram showing a first variation of the configuration of a signal processing resource switching device of a signal processing resource switching system according to an embodiment of the present invention.
[0042] Figure 3 It is a schematic configuration diagram showing a second variation of the configuration of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
[0043] Figure 4 It is a schematic configuration diagram showing a third variation of the configuration of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
[0044] Figure 5 This is a diagram showing an example of a data structure of an accelerator (remote) in the signal processing resource switching system according to the embodiment of the present invention.
[0045] Figure 6 This is a diagram showing an example of a data structure used for communication between functions of a function ID and argument data in a signal processing resource switching device of a signal processing resource switching system according to an embodiment of the present invention.
[0046] Figure 7 This is a diagram showing an accelerator management table of an offload destination computing resource determination unit of a signal processing resource switching device of a signal processing resource switching system according to an embodiment of the present invention.
[0047] Fig. 8A This is a flowchart showing sequence 1 in offloading of the signal processing resource switching system according to the embodiment of the present invention.
[0048] Figure 8B This is a flowchart showing sequence 1 in offloading of the signal processing resource switching system according to the embodiment of the present invention.
[0049] Figure 8C This is a flowchart showing sequence 1 in offloading of the signal processing resource switching system according to the embodiment of the present invention.
[0050] Fig. 9 This is a flowchart showing a sequence 2 when a sudden failure occurs in the signal processing resource switching system according to the embodiment of the present invention.
[0051] Fig.10 This is a flowchart showing sequence 3 of the pre-intentional switching (failure prediction) of the signal processing resource switching system according to the embodiment of the present invention.
[0052] Fig.11 This is a flowchart showing a sequence 4 of instructions intentionally given by a switching operator in the signal processing resource switching system according to the embodiment of the present invention.
[0053] Fig.12 This is a flowchart showing a sequence 5 of a rule for selecting a failover target in the signal processing resource switching system according to the embodiment of the present invention.
[0054] Fig.13 This is a flowchart showing a restoration sequence 6 after failure recovery of the signal processing resource switching system according to the embodiment of the present invention.
[0055] Fig.14 This is a hardware configuration diagram showing an example of a computer that realizes the function of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
[0056] Fig.15 A diagram illustrating a computer system.
[0057] Fig.16 A diagram for explaining restarting an application / VM in the same server in Non-Patent Document 1.
[0058] Fig.17 This is a diagram for explaining activation on another server of Non-Patent Document 1. DETAILED DESCRIPTION
[0059] Hereinafter, a signal processing resource switching system and the like in a mode for implementing the present invention (hereinafter referred to as “the present embodiment”) will be described with reference to the drawings.
[0060] (Implementation Method)
[0061] [summary]
[0062] Figure 1 It is a schematic diagram of the structure of a signal processing resource switching system according to an embodiment of the present invention.
[0063] like Figure 1 As shown, the signal processing resource switching system 1000 includes a server 250 (server <1> ) and via NW2 with server 250 (server <1> ) connected to server 260 (server <2> ).
[0064] In the signal processing resource switching system 1000 , the server 250 offloads specific processing of the application to an accelerator configured in the server 250 or the remote server 260 for computational processing.
[0065] [Server 250 (Server <1> )]
[0066] Server 250 (Server <1> ) has hardware (HW) 10 and software 210.
[0067] Hardware 10
[0068] The hardware 10 includes a CPU 11 , a plurality of accelerators 12 (an accelerator 12 - 1 and a (redundant) accelerator 12 - 2 ), and a NIC 13 .
[0069] <cpu11>
[0070] The CPU 11 executes a function proxy execution unit 111 (software function) in the server 250. The CPU 11 is one of the computing resources that performs computing together with the accelerator 12-1 and the (redundant) accelerator 12-2.
[0071] Alternatively, the CPU 11 and the accelerator 12-1, the accelerator (redundant) 12-2, and the server <2> The calculation contents processed together with the accelerator (remote) 12 are processed temporarily using the CPU 11 as a calculation resource in the event of a failure.
[0072] <Accelerator 12>
[0073] The accelerator 12 is a computing accelerator device such as FPGA / GPU.
[0074] The accelerator 12 - 1 ( 12 ) is accelerator hardware dedicated to a specific operation mounted on the server 250 , and performs operations based on instructions from the proxy function execution unit 111 . The accelerator (redundant) 12 - 2 ( 12 ) is accelerator hardware (second unit) dedicated to a specific operation, and performs operations based on instructions from the proxy function execution unit 111 .
[0075] The accelerator 12 receives “function name / (in the following description, “ / ” represents “or”) argument data” of a computation target from the function proxy execution unit 111 as input.
[0076] The accelerator 12 notifies the function proxy execution unit 111 of the “computation result” as output.
[0077] As an accelerator system, a system may be used in which a processing queue having tasks inside is provided, and input commands of operation objects (enqueue processing) and output commands of processing results (dequeue commands) are separated.
[0078] The accelerator 12 may fail with a certain probability, for example, due to a failure of a cooling fan.
[0079] It should be noted that the accelerator (redundant) 12 - 2 ( 12 ) may be used not only in case of failure but also in normal time and also as a switching destination in case of failure.
[0080] <nic13>
[0081] NIC 13 is NIC hardware that implements the NW interface.
[0082] When the destination of the function proxy execution unit 111 is the remote server (server 260), the NIC 13 receives notification of the packet of "function name / argument data" to be uninstalled from the function proxy execution unit 111 and notifies the NIC (local) 13 of the server 260.
[0083] The NIC 13 receives the “function name / argument data” of the operation object as input from the function proxy execution unit 111. The NIC 13 sends these data to the NIC (local) 13 of the server 260.
[0084] The NIC 13 notifies the function proxy execution unit 111 of a packet group of “operation result” as output. The NIC 13 receives these data from the NIC (local) 13 of the server 260.
[0085] The NIC 13 receives as input a packet group of “function name / argument data” from the NIC (local) 13 of the server 260. The NIC 13 notifies the function proxy execution unit (remote) 111 of these data.
[0086] The NIC 13 sends a packet group of “operation result” as output to the NIC (local) 13 of the server 260. The NIC 13 receives notification of these data from the function proxy execution unit (remote) 211.
[0087] Software 210
[0088] The software 210 includes an application unit 1 (application) and a signal processing resource switching device 100 .
[0089] <Application Section 1>
[0090] The application unit 1 is a program executed in the user space. The application unit 1 is constructed on the premise of using APIs defined by OpenCL (registered trademark), DPDK BBDev API (registered trademark), etc., and has input and output with these APIs.
[0091] The application unit 1 has “function name / arguments” as output to the function proxy execution unit 111. The application unit 1 receives “function execution results” from the function proxy execution unit 111 as input.
[0092] The application unit 1 calls a set of functions (API) defined as a standard to perform operations on the accelerator 12-1, the accelerator (redundant) 12-2, or the server 260 (server <2> ) offloads part of the processing of the accelerator 12.
[0093] [Signal Processing Resource Switching Device 100]
[0094] The signal processing resource switching device 100 includes: a function proxy execution unit 111, an accelerator fault sensing unit 110, an offloading destination computing resource determination unit 120, an accelerator fault prediction unit 130, a planned stop task input suppression unit 140, an accelerator maintenance setting unit 150, a task processing status recording unit 160, and a task re-offloading indication unit 170.
[0095] Here, the accelerator failure sensing unit 110, the offloading destination computing resource determination unit 120, the accelerator failure prediction unit 130, the planned stop task input suppression unit 140, the accelerator maintenance setting unit 150, the task processing status recording unit 160, and the task re-offloading instruction unit 170 constitute a controller function unit (for the purpose of the following description). Figure 2 to Figure 4 ).
[0096] also, Figure 1 The dotted-line frame 101 is a functional unit that enables function proxy execution and fault detection to cooperate and perform switching in case of a fault without performing application modification (described in the key point 1 of the invention described later). Figure 1 The dotted-line frame 102 is a functional unit that suppresses the interruption period in the event of a sudden failure (described later in the gist 2 of the invention). Figure 1 The dotted-line frame 103 is a functional unit that performs a calculation that can be predicted in advance when switching is continued (described in the gist 3 of the invention described later).
[0097] <Function Agent Execution Unit 111>
[0098] The function proxy execution unit 111 receives "function name / arguments" from the application, notifies the application of the function's argument data when the function is executed / ended by the computing resource, and offloads to the resource determined by the offload destination computing resource determination unit 120.
[0099] The function proxy execution unit 111 is implemented as middleware having an IF compatible with a predetermined function. The function proxy execution unit 111 has the same interface as a predetermined API function group such as OpenCL (registered trademark) and DPDK BBdev API (registered trademark).
[0100] The function proxy execution unit 111 receives a function call from a user and offloads the function to a computing resource that has been set in advance by an offload destination computing resource determination unit 120 (described later).
[0101] The function proxy execution unit 111 is prepared as a binary file different from the application unit 1 (user application) that receives the result, and is implemented in a "dynamic library format" that is dynamically linked / called during execution. It should be noted that the function proxy execution unit 111 can also be a "static library format" that is linked to the application unit 1 when the program is generated and executed as a whole.
[0102] When each function is started to be unloaded, the function proxy execution unit 111 notifies the task processing status recording unit 160 (described later) of the function name / argument to identify the task that has started processing. When each function is completed to be unloaded, the function proxy execution unit 111 notifies the task processing status recording unit 160 of the function name / argument to identify the task that has completed processing.
[0103] The function proxy execution unit 111 executes the function in the local (CPU 11, accelerator 12-1, accelerator (redundant) 12-2, server) offload destination set by the offload destination computing resource determination unit 120 (described later). <2> In the case of an accelerator 12 or CPU 11), calculation instructions are given to each device based on the input data.
[0104] When the offloading destination indicated by the offloading destination computing resource determination unit 120 is remote (server 260), the function proxy execution unit 111 serializes the input data, divides it into data packets in a format that complies with UDP / IP (User Datagram Protocol / Internet Protocol) and notifies the NIC (remote) 13.
[0105] The function proxy execution unit 111 receives “function name / arguments” from the application unit 1 as input.
[0106] When a function is executed / ended, the function proxy execution unit 111 notifies the task processing status recording unit 160 (described later) of the function's argument data as output.
[0107] When the offload destination is local, the function proxy execution unit 111 notifies the CPU 11 of "function name / argument" as output to any one of the computing resources of the accelerator 12 - 1 and the accelerator (redundant) 12 - 2 .
[0108] When the offload destination is remote, the function proxy execution unit 111 passes the “packetized data of the function name / argument data” to the NIC (remote) 13 as output.
[0109] <Accelerator Failure Sensing Unit 110>
[0110] The accelerator failure sensing unit 110 periodically monitors the state of the accelerator and senses whether a failure has occurred. In sensing the failure, periodic execution of a normality confirmation command and confirmation of the result are used.
[0111] When the accelerator failure sensing unit 110 senses a failure, it notifies the offload destination computing resource determination unit 120 of “an identifier of the hardware in which the failure has occurred” as an output.
[0112] As a method for sensing accelerator faults, in addition to the active sensing methods of "confirming the normality of test offload processing by periodically executing tests", "monitoring data processing status", and "periodically executing health check functions of hardware", a passive fault sensing method of "sensing by receiving alarms from accelerator hardware" is also possible.
[0113] <Offload Destination Computing Resource Determination Unit 120>
[0114] The offload destination computing resource determination unit 120 determines a computing resource that has not failed (is not faulty) and is available.
[0115] The offloading destination computing resource determination unit 120 selects the failed accelerator and the failover destination accelerator that replaces the accelerator to be switched, and sets them in the function proxy execution unit 111, and notifies the task re-offloading indication unit 170 of the failed accelerator and the failover destination accelerator, indicating the re-investment of the task.
[0116] The offload destination computing resource determination unit 120 determines the offload destination computing resource and notifies the function proxy execution unit 111. Specifically, the offload destination computing resource determination unit 120 selects a resource that is not faulty and can be used from "the accelerator mounted on the server, the CPU 11, and the accelerator on the remote server side" as computing resources, and notifies the function proxy execution unit 111. The offload destination computing resource determination unit 120 selects a processable resource from the idle resources at startup and instructs the function proxy execution unit 111.
[0117] (In case of sudden failure)
[0118] When receiving the notification of the occurrence of a sudden failure from the accelerator failure sensing unit 110, the offloading destination computing resource determination unit 120 selects a failover destination accelerator to replace the failed accelerator and sets it in the function proxy execution unit 111. At the same time, the failed accelerator and the failover destination accelerator are notified to the task re-offloading instruction unit 170 to instruct the task to be re-invested.
[0119] (When sudden fault is detected)
[0120] The offload destination computing resource determination section 120 receives as input a failure occurrence notification and an identifier of the accelerator in which the failure has occurred from the accelerator failure sensing section 110 .
[0121] The offload destination computing resource determination unit 120 sets an offload destination as an output to the function proxy execution unit 111 .
[0122] The offload destination computing resource determination section 120 notifies the task re-offloading instruction section 170 of the accelerator in which the failure has occurred and the failover destination accelerator as output.
[0123] (When switching intentionally)
[0124] Upon receiving a notification of intentional switching from the planned stop task input suppression unit 140 , the offload destination computing resource determination unit 120 selects a failover destination accelerator to replace the accelerator to be switched, and sets the failover destination accelerator in the function proxy execution unit 111 .
[0125] The offload destination computing resource determination unit 120 receives the switching plan notification and the identifier of the switching target accelerator from the scheduled stop task input suppression unit 140 .
[0126] It should be noted that the offload destination computing resource determination unit 120 may also be in a form of reading and setting the processing target resource at the time of startup from a setting file.
[0127] <Accelerator Failure Prediction Unit 130>
[0128] The accelerator failure prediction unit 130 predicts a failure of an accelerator and notifies the accelerator to be switched of the predicted failure.
[0129] The accelerator failure prediction unit 130 regularly monitors the temperature of the accelerator to determine whether a failure or malfunction is likely to occur. If a failure is predicted, the accelerator failure prediction unit 130 notifies the scheduled stop task input suppression unit 140 of the identifier of the target accelerator and instructs it to prohibit new task input.
[0130] When predicting a failure, the accelerator failure prediction unit 130 notifies the planned stop task input suppression unit 140 of “an identifier of the hardware in which the failure occurred” as an output.
[0131] It should be noted that, in the accelerator failure prediction unit 130, as a method for predicting accelerator failure, a method of "periodically executing a normality confirmation program" and "continuously confirming the temperature change of the accelerator card to sense whether the temperature is close to or above a certain level" may also be used.
[0132] <Planned Stop Task Input Suppression Unit 140>
[0133] Upon receiving the notification of the switching target accelerator from the accelerator failure prediction unit 130 , the planned stop task injection suppression unit 140 instructs the task re-offloading instruction unit 170 to prohibit injection of new tasks for the switching target accelerator.
[0134] When receiving a notification of intentional switching from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150, the planned stop task input suppression unit 140 notifies the identifier of the switching target accelerator to the offload destination computing resource determination unit 120. Thus, by prohibiting the input of tasks to the target accelerator, a state is set where there are no ongoing tasks, thereby setting the state to be disconnected.
[0135] (When switching intentionally)
[0136] The planned stop task input suppression unit 140 receives the identifier of the switching target accelerator from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150 as input.
[0137] The planned stop task input suppression unit 140 notifies the offload destination computing resource determination unit 120 of the identifier of the switching target accelerator, and requests a change of the offload destination as an output.
[0138] How to cancel ongoing tasks
[0139] In the present embodiment, in order to eliminate the ongoing task of the accelerator to be switched, a mechanism is provided to eliminate the ongoing task as time passes while suppressing the input of new tasks.
[0140] Instead of this, the scheduled stop task input suppression unit 140 may instruct the task re-offloading instruction unit 170 to re-input the task to the switching destination.
[0141] Sensing the disappearance of ongoing tasks
[0142] In this embodiment, there is no function to explicitly confirm that the ongoing task has disappeared.
[0143] Instead of this, the task input suppression unit 140 for scheduled stop may check the task processing status of the task processing status recording unit 160, periodically check whether the ongoing task has disappeared, and notify the operator (human).
[0144] <Accelerator Maintenance Setting Unit 150>
[0145] The accelerator maintenance setting unit 150 is a function for setting a specific accelerator to a state where it can be turned off based on an instruction from an operator (human).
[0146] When receiving the above-mentioned instruction, the accelerator maintenance setting unit 150 notifies the scheduled stop task input suppression unit 140 of the identifier of the target accelerator and instructs the prohibition of new task input.
[0147] When receiving the switching based on the above-mentioned instruction, the accelerator maintenance setting unit 150 notifies the planned stop task input suppression unit 140 of “the identifier of the hardware to be switched” as an output.
[0148] It should be noted that the instruction from the operator may be in the form of a trigger not from a person but from an external operating system.
[0149] <Task Processing Status Recording Unit 160>
[0150] The task processing status recording unit 160 receives the task processing status in time series from the function agent execution unit 111 , and stores the uncompleted computation tasks in each computing resource.
[0151] The task processing status recording unit 160 receives the task processing status in time series from the function proxy execution unit 111, and stores the unfinished tasks in each computing resource. The task processing status recording unit 160 establishes the correspondence between the execution start and completion of each function based on the input of the function proxy execution unit 111, and manages the unfinished tasks in each computing resource.
[0152] The task processing status recording unit 160 receives function argument data as input from the function proxy execution unit 111 at the start and completion of function execution. It receives the "computing resource identifier" from the task re-offloading instruction unit 170 as input, and notifies the computing resource of a list of unfinished task information (function name / argument) as output.
[0153] <Task Re-unloading Instruction Unit 170>
[0154] The task re-offloading instruction unit 170 instructs the function proxy execution unit 111 to re-execute the uncompleted computation task of the switching source computing resource based on the “identifier of the switching source computing resource” received from the offloading destination computing resource determination unit 120.
[0155] The task re-offloading instruction unit 170 inquires and acquires the uncompleted task from the task processing status recording unit 160 based on the “identifier of the switching destination computing resource”.
[0156] The task re-offloading instruction unit 170 receives “the identifier of the switching source computing resource” and “the identifier of the switching destination computing resource” from the offloading destination computing resource determination unit 120 as input.
[0157] The task re-offloading instruction unit 170 instructs the function proxy execution unit 111 to re-execute the uncompleted computation task as an output so as to re-execute and offload the task to the switching destination computing resource.
[0158] [Server 260 (Server <2> )]
[0159] Server 260 (Server <2> )(remote server) comprises hardware (HW) 10 and software 210.
[0160] Hardware 10
[0161] The hardware 10 includes a CPU (remote) 11 , an accelerator (remote) 12 , and a NIC (local) 13 .
[0162] <cpu11>
[0163] The CPU (remote) 11 executes the function proxy execution unit 211 (software function) in the server 260. The CPU (remote) 11 and the accelerator (remote) 12 together are one of the computing resources.
[0164] Alternatively, in the event of a failure, the arithmetic content processed by the CPU (remote) 11 in the accelerators 12-1, accelerator (redundant) 12-2, and accelerator (remote) 12 of the server <2> can temporarily use the CPU 11 as a computing resource for processing.
[0165] <Accelerator 12>
[0166] The accelerator (remote) 12 is a computing accelerator device such as an FPGA / GPU.
[0167] The accelerator (remote) 12 is accelerator hardware mounted on the server 260 and dedicated to specific operations, and performs operations based on the instructions of the function proxy execution unit 211.
[0168] The accelerator (remote) 12 receives the "function name / argument data" of the operation object as input from the function proxy execution unit 211.
[0169] The accelerator (remote) 12 notifies the "operation result" to the function proxy execution unit 211 as output.
[0170] <NIC (local) 13>
[0171] The NIC (local) 13 receives the "function name / argument data" sent from the server 250 and inputs the data packet group of the "function name / argument data" to the function proxy execution unit (remote) 211. The NIC (local) 13 receives the data packet group including the "operation result" from the function proxy execution unit (remote) 211 and responds to the server 250.
[0172] 《Software 210》
[0173] The software 210 has a function proxy execution unit 211.
[0174] <Function proxy execution unit 211>
[0175] Based on the data packet group of the "function name / argument data" received from the NIC (local) 13, the function proxy execution unit 211 performs operation offloading to the accelerator (remote) 12. Moreover, the function proxy execution unit 211 packetizes the operation result and sends it to the NIC (local) 13.
[0176] The function proxy execution unit 211 receives the data packet of the "function name / argument data" as input from the NIC (local) 13.
[0177] The function proxy execution unit 211 notifies the NIC (local) 13 of the packet data of “computation result” as output.
[0178] The function proxy execution unit 211 transmits “function name / argument data” as output to the accelerator (remote) 12, and receives the calculation result as input.
[0179] [Configuration of signal processing resource switching device]
[0180] A variation of the configuration of the signal processing resource switching device of the signal processing resource switching system will be described.
[0181] Figure 1 The signal processing resource switching system 1000 is an example in which the signal processing resource switching device 100 is configured in the software 210 of the server 250. The controller function unit of the signal processing resource switching device may also be provided in another frame other than the server 250, as shown below by way of example.
[0182] Figure 2 FIG. 1 is a schematic diagram showing a configuration variation 1 of a signal processing resource switching device of a signal processing resource switching system. Figure 1 The same components are denoted by the same reference numerals, and description of the overlapping parts will be omitted.
[0183] Variation 1 is an example in which the entire controller functional unit is provided as another housing.
[0184] like Figure 2 As shown, the signal processing resource switching system 1000A includes: a server 250 (server <1> ); signal processing resource switching device 100A, in the server 250 (server <1> ) is set in other frames other than the server 260 (server <2> ), via NW2 and server 250 (server <1> )connect.
[0185] The software 200A of the server 250 includes an application unit 1 and a function proxy execution unit 111 .
[0186] In the signal processing resource switching device 100A, the controller function unit is provided outside the server 250 and has Figure 1 The signal processing resource switching device 100 has the same function.
[0187] Figure 3 It is a schematic configuration diagram showing variation 2 of the configuration of the signal processing resource switching device of the signal processing resource switching system.
[0188] Variation 2 is an example of a case where the failure sensing-related function in the controller functional unit is provided on the calculation server side.
[0189] like Figure 3 As shown, the signal processing resource switching system 1000B includes: a server 250 (server <1> ); signal processing resource switching device 100B, in the server 250 (server <1> ) is set in other frames other than the server 260 (server <2> ), via NW2 and server 250 (server <1> )connect.
[0190] The software 200B of the server 250 has an application program section 1 , a function proxy execution section 111 , and an accelerator failure sensing section 110 .
[0191] The signal processing resource switching device 100B is provided outside the server 250 and is Figure 1 The signal processing resource switching device 100 removes the structure of the accelerator failure sensing unit 110 .
[0192] Figure 4 It is a schematic configuration diagram showing variation 3 of the configuration of the signal processing resource switching device of the signal processing resource switching system.
[0193] Variation 3 is an example of a case where the failure sensing and task re-offloading functions among the controller functions are provided on the operation server side.
[0194] like Figure 4 As shown, the signal processing resource switching system 1000C includes: a server 250 (server <1> ); signal processing resource switching device 100C, in the server 250 (server <1> ) is set in other frames other than the server 260 (server <2> ), via NW2 and server 250 (server <1> )connect.
[0195] The software 200C of the server 250 includes an application unit 1 , a function proxy execution unit 111 , an accelerator failure sensing unit 110 , a task processing status recording unit 160 , and a task re-offloading instruction unit 170 .
[0196] The signal processing resource switching device 100C is provided outside the server 250 and is Figure 1 The signal processing resource switching device 100 removes the accelerator failure sensing unit 110 , the task processing status recording unit 160 , and the task re-offloading instructing unit 170 .
[0197] Above, such as Figure 2 to Figure 4 As shown, by adopting a method in which a part or all of the controller functional unit is independently provided in a frame other than the server 250, it is possible to support the function provision to the RIC in the RAN.
[0198] In addition, a plurality of servers 250 can be operated by one signal processing resource switching device. This can reduce costs and improve the maintainability of the signal processing resource switching device. In addition, changes on the server side can be eliminated or reduced, and can be universally applied.
[0199] [Accelerator data structure]
[0200] Figure 5 1 is a diagram showing an example of the data structure of the accelerator (remote) 12 .
[0201] like Figure 5 As shown, the data structure of the accelerator (remote) 12 is composed of an L2 frame, a function ID, a final data bit, an independent variable 1, and an independent variable 2.
[0202] Figure 6 This is a diagram showing an example of a data structure for communicating between functions such as function IDs and argument data.
[0203] like Figure 6 As shown in the figure, the data structure used to exchange function ID and argument data between functions is the same as Figure 5 The data structure shown is the same, consisting of function ID, final data bit, independent variable 1, and independent variable 2.
[0204] In this embodiment, the data format of NIC 13, NIC 13 of server 260 and accelerator 12 is made common, and the data on the memory received as data packets is transmitted to accelerator 12 as it is. Therefore, the data structure is made common. Specifically, the data structure created by function proxy execution unit 211 is set as follows: Figure 5 and Figure 6 The accelerator function / argument data packet shown in the figure. By making the data format of the NICs 13 and 13 and the accelerator 12 common, the data received by the NICs 13 and 13 is in a format that can be directly read by the function proxy execution unit 211.
[0205] [Table of offload destination computing resource determination unit]
[0206] Figure 7 1 is a diagram showing an example of an accelerator management table of the offload destination computing resource determination unit 120. The accelerator management table is Fig.10 It is referred to in the process of pre-intentional switching (failure prediction).
[0207] like Figure 7 As shown, the accelerator management table of the offload destination computing resource determination unit 120 includes mounted host information, accelerator identifiers, ACC performance (throughput), and accelerator status.
[0208] The offload destination computing resource determination unit 120 refers to Figure 7 The management table shown determines the computing resources of the offload destination. For example, "Host-1 (192.168.0.1)" (host information) is the accelerator identifier "FPGA-1", ACC performance (throughput) "10.0 Gbps", and "can be used". In addition, "Host-2 (192.168.0.2)" (host information) is the accelerator identifier "CPU-1", ACC performance (throughput) "2.0 Gbps", and "allocated" (cannot be used).
[0209] In particular, "Host-3 (192.168.0.3)" (equipped with host information) has an accelerator identifier of "ASIC-1", ACC performance (throughput) of "10.0 Gbps", and "faulty" (cannot be used).
[0210] The operation of the signal processing resource switching system 1000 configured as described above will be described below.
[0211] [summary]
[0212] The present invention satisfies three requirements respectively as follows.
[0213] <Requirement 1: Transparency>
[0214] The function proxy execution unit 111 separates the application and accelerator uninstallation processing, and implements the switching of only the accelerator 12 without performing application modification.
[0215] <Requirement 2: High availability in the event of a sudden failure>
[0216] Switching time is minimized through automatic offload destination switching in coordination with fault sensing and automatic re-engagement based on accelerator task processing status.
[0217] <Requirement 3: Processing continues when disconnected intentionally>
[0218] The input of tasks to the switching target accelerator is suppressed, and switching is performed after confirming that the task is empty, thereby continuing the calculation. In addition, the device configuration of this embodiment does not need to be completely duplicated, and the equipment efficiency is high.
[0219] The above-mentioned <Requirement 1: Transparency>, <Requirement 2: High availability in the event of sudden failure>, and <Requirement 3: Continuation of processing in the event of intentional disconnection> are solved by the following (1) Point 1 of the invention, (2) Point 2 of the invention, and (3) Point 3 of the invention.
[0220] (1) Key Point 1 of the Invention: Collaboration between function proxy execution and fault sensing, and failover without application modification ( Figure 1 The dotted box functional part 101)
[0221] The function proxy execution unit 111 can switch the offload destination without changing the application. Thus, the accelerator can be switched without restarting or migrating the application. Furthermore, by automatically switching based on the failure detection result, <Requirement 1: Transparency> is achieved.
[0222] (2) Point 2 of the invention: Suppression of interruption period during sudden failure ( Figure 1 The dotted line frame functional part 102)
[0223] Automatic task re-unloading in case of accelerator failure enables automatic processing continuation. Specifically, the task processing status recording unit 160 that manages the remaining tasks records the tasks before the accelerator's processing is completed, and the task re-unloading instruction unit 170 automatically re-unloads in case of sudden failure. In this way, both <Requirement 1: Transparency> and <Requirement 2: High availability in case of sudden failure> are taken into account.
[0224] (3) Point 3 of the invention: Continuation of operations during switching that can be predicted in advance ( Figure 1 The dotted line frame functional part 103)
[0225] By suppressing the accelerator task input, a non-instantaneous interruption switching is achieved when intentionally disconnected. Specifically, the accelerator failure prediction unit 130 predicts the failure of the accelerator, and for the accelerator to be disconnected, the task input suppression unit 140 suppresses the task input by the planned stop, and the unloading destination is switched to other computing resources. Thus, <Requirement 3: Processing continues when intentionally disconnected> is achieved.
[0226] [action]
[0227] The signal processing resource switching system is Figure 1 Signal processing resource switching system 1000, Figure 2 Signal processing resource switching system 1000A, Figure 3 The signal processing resource switching system 1000B and Figure 4 That is, in the signal processing resource switching system, there is no difference in operation caused by the placement of the signal processing resource switching device.
[0228] [Uninstalling sequence]
[0229] Fig. 8A - Figure 8C This is a flowchart showing sequence 1 in the offloading of the signal processing resource switching system. This flowchart basically shows that the server 250 (server <1> ) processing, a portion of which indicates that the server 260 (server <2> ) Fig. 8A S16-S19).
[0230] exist Fig. 8A In step S11, the application unit 1 makes an API call and outputs "function / argument".
[0231] In step S12 , the function proxy execution unit 111 offloads the calculation to the accelerator using a predetermined function group in which the function name and the format of the argument are standardized.
[0232] In step S13 , the task processing status recording unit 160 receives the time-series task processing status from the function agent execution unit 111 , and stores the unfinished tasks in each computing resource.
[0233] In step S14 , the offload destination computing resource determination unit 120 determines whether the set offload destination is a remote server.
[0234] When the set offloading destination is a remote server (S14: Yes), in step S15, the NIC 13 sets the offloading destination of the function proxy execution unit 111 to the remote server 260 (server <2> ), the function proxy execution unit 111 receives notification of the data packet of "function name / argument data" to be uninstalled, and notifies the remote server 260 (server <2> )'s NIC13.
[0235] In step S16, the remote server 260 (server <2> ) NIC13 receives the data from the server <1> The “function name / argument data” sent is input into the function proxy execution unit 111, and the data packet group of “function name / argument data” is input into the function proxy execution unit 111.
[0236] In step S17, the remote server 260 (server <2> )'s function proxy execution unit 111 offloads calculations to the accelerator (remote) 12 based on the data packet group of "function name / argument data" received from the NIC (local) 13.
[0237] In step S18, the remote server 260 (server <2> )'s accelerator (remote) 12 performs calculations based on instructions from the function proxy execution unit 211.
[0238] In step S19, the NIC (local) 13 sends a signal to the server 250 (server <1> )'s NIC 13 sends a packet group of "calculation results".
[0239] Next, step S20 and later are followed by the server 250 (server <1> ) processing.
[0240] In step S20, the server 250 (server <1> ) notifies the function proxy execution unit 111 of the data packet group of "operation result" and enters Figure 8B Step S21. It should be noted that, Figure 8C After processing steps S25, S27, and S28, the process also transfers to step S21.
[0241] exist Figure 8B In step S21, when the function is executed / completed, the function proxy execution unit 111 sends an ID and argument data that can uniquely identify the function to the task processing status recording unit 160 to identify the task that has completed the processing.
[0242] In step S22 , the task processing status recording unit 160 associates the start and completion times of execution of each function based on the input from the function proxy execution unit 111 , and manages the unfinished tasks in each computing resource.
[0243] In step S23, the application unit 1 receives the “function execution result” from the function proxy execution unit 111, and ends the processing of this flow.
[0244] If the uninstall destination set in the above step S14 is not a remote server (S14: No), Figure 8C In step S24, the offload destination computing resource determination unit 120 determines whether the set offload destination is the accelerator 12-1 (accelerator) in the server. <1> ) situation.
[0245] When the set uninstall destination is the accelerator 12-1 in the server (S24: Yes), in step S25, the accelerator 12-1 receives the "function name / argument data" of the operation object from the function proxy execution unit 111, performs the operation, and enters Figure 8B Step S21.
[0246] If the set offloading destination is not the accelerator 12-1 in the server (S24: No), in step S26, the offloading destination computing resource determination unit 120 determines whether the set offloading destination is the accelerator (redundant) 12-2 (accelerator) in the server. <2> ) situation.
[0247] When the set uninstall destination is the accelerator 12-2 in the server (S26: Yes), in step S27, the accelerator 12-2 receives the "function name / argument data" of the operation object from the function proxy execution unit 111, performs the operation, and enters Figure 8B Step S21.
[0248] If the set uninstall destination is not the accelerator 12-2 in the server (S26: No), the CPU 11 executes the server in step S28. <1> In the software function, enter Figure 8B Step S21.
[0249] [Sequence when a sudden failure occurs]
[0250] Fig. 9 This is a flowchart showing sequence 2 when a sudden failure occurs in the signal processing resource switching system.
[0251] In step S31, the accelerator failure sensing unit 110 periodically monitors the state of the accelerator and senses whether a failure has occurred. Specifically, the accelerator failure sensing unit 110 senses a failure by periodically executing a normality confirmation command and confirming its result. In addition, when a failure is sensed, the accelerator failure sensing unit 110 notifies the offload destination computing resource determination unit 120 of the "identifier of the hardware that has failed".
[0252] In step S32 , the accelerator failure sensing unit 110 determines whether a failure is sensed. If no failure is sensed ( S32 : No), the process returns to step S31 .
[0253] When a failure is detected (S32: Yes), in step S33, the offload destination computing resource determination unit 120 determines the offload destination computing resource and notifies the function proxy execution unit 111. Specifically, the offload destination computing resource determination unit 120 selects a resource that has not failed and can be used from "the accelerators 12-1 and 12-2 mounted on the server, the CPU 11, and the accelerator (remote) 12 of the remote server" as computing resources, and notifies the function proxy execution unit 111.
[0254] In step S34, the task re-offloading instruction unit 170 instructs the function proxy execution unit 111 to re-execute the uncompleted computation task of the switching source computing resource based on the “identifier of the switching source computing resource” received from the offloading destination computing resource determination unit 120.
[0255] In step S35 , the task processing status recording unit 160 receives the task processing status in time series from the function agent execution unit 111 , and stores the tasks that have not been completed in each computing resource.
[0256] In step S36, the task re-offloading instruction unit 170 inquires about the uncompleted computing task from the task processing status recording unit 160 based on the “identifier of the switching destination computing resource”, obtains the task, and ends this process.
[0257] [Sequence of intended switching (failure prediction)]
[0258] Fig.10 This is a flowchart showing sequence 3 of the pre-intentional switching (failure prediction) of the signal processing resource switching system.
[0259] In step S41, the accelerator failure sensing unit 110 regularly monitors the temperature of the accelerator (accelerators 12-1, 12-2, and the accelerator (remote) 12 of the remote server) to determine whether it is in a state with a high possibility of failure or bad condition. In the case of a failure of the cooling fan, the temperature of the accelerator rises, and the failure of the accelerator can be predicted. When the accelerator failure prediction unit 130 predicts a failure, it notifies the planned stop task input suppression unit 140 of the identifier of the target accelerator and instructs it to prohibit new task input.
[0260] In step S42, if the accelerator failure sensing unit 110 does not predict a failure (S42: No), the process returns to step S41. In the case where a failure is predicted (S42: Yes), in step S43, when the offload destination computing resource determination unit 120 receives a notification of the occurrence of a sudden failure from the accelerator failure sensing unit 110, it selects a failover destination accelerator that is a substitute for the accelerator that has failed and sets it in the function proxy execution unit 111. In addition, the offload destination computing resource determination unit 120 updates the status of the accelerator that has received the failure notification in the accelerator management table to "failed".
[0261] In step S44 , upon receiving an instruction of intentional switching from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150 , the planned stop task input suppression unit 140 notifies the offload destination computing resource determination unit 120 of the identifier of the target accelerator and ends the present flow.
[0262] [Sequence based on instructions of a person (operator) with prior intention]
[0263] Fig.11 This is a flowchart showing a sequence 4 of switching (instruction by a person (operator)) based on prior intention of the signal processing resource switching system.
[0264] In step S51, the accelerator maintenance setting unit 150 enables a specific accelerator to be disconnected based on the operator's instruction. Specifically, upon receiving the operator's instruction, the accelerator maintenance setting unit 150 notifies the planned stop task input suppression unit 140 of the identifier of the target accelerator and instructs it to prohibit new task input.
[0265] In step S52, upon receiving a notification of intentional switching from the planned stop task input suppression unit 140, the offload destination computing resource determination unit 120 selects a failover destination accelerator to replace the accelerator to be switched, and sets it in the function proxy execution unit 111. Specifically, the offload destination computing resource determination unit 120 receives a switching schedule notification and an identifier of the switching target accelerator from the planned stop task input suppression unit 140.
[0266] In step S53 , the planned stop task input suppression unit 140 receives the identifier of the switching target accelerator from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150 , notifies the offload destination computing resource determination unit 120 of the identifier of the switching target accelerator, and ends this process.
[0267] [Sequence of selection rules for failover objects]
[0268] Fig.12 5 is a flowchart showing a sequence 5 of a rule for selecting a failover target. Figure 7 The accelerator management table shown.
[0269] In step S61, the offload destination computing resource determination unit 120 updates the field of the ACC where the failure occurred. Figure 7 The host information of the accelerator management table shown in the figure sets the status of ASIC-1 of Host-3 to "failed".
[0270] In step S62, the accelerator failure sensing section 110 senses a failure of the ACC. In the above example, a failure of the ASIC-1 of the Host-3 is sensed.
[0271] In step S63, the offload destination computing resource determination unit 120 acquires the performance of the ACC in which the failure occurred. In the above example, the ACC performance of ASIC-1 of Host-3, 10.0 Gbps, is acquired.
[0272] In step S64, the offload destination computing resource determination unit 120 selects an ACC that can be used and satisfies the ACC performance. In the above example, FPGA-1 of Host-1 is selected.
[0273] In step S65, the offload destination computing resource determination unit 120 updates the field of the selected ACC, and ends the process. Figure 7 ) to make the status of FPGA-1 of Host-1 allocated.
[0274] [Restoration time sequence after failure recovery]
[0275] Fig.13 6 is a flowchart showing a restoration sequence after failure recovery of the signal processing resource switching system.
[0276] The offload destination computing resource determination unit 120 starts the failure recovery completion process (step S71 ).
[0277] In step S72, the accelerator maintenance setting unit 150 sets the accelerator selected as the switching destination as a maintenance target during repair / recovery after the failure occurs, and allocates the accelerator from the failure switching destination to other accelerators by rescheduling the accelerators.
[0278] In step S73, the offload destination computing resource determination unit 120 determines the offload destination computing resource and notifies it to the function proxy execution unit 111. Specifically, the offload destination computing resource determination unit 120 selects a resource that is not faulty and can be used from the accelerators 12-1 and 12-2 mounted on the server 250, the CPU 11, and the accelerator 12 of the remote server 260 as computing resources, and notifies it to the function proxy execution unit 111.
[0279] In step S74, the offload destination computing resource determination unit 120 selects the accelerator management table ( Figure 7 ) selects the resource that can be processed and instructs the function proxy execution unit 111. Here, in the accelerator management table of the accelerator, a list of performance and accelerator management tables is previously entered, and the status of each accelerator is updated according to the allocation ( Fig.12 Step S65).
[0280] In step S75 , upon receiving notification of intentional switching from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150 , the planned stop task input suppression unit 140 notifies the offload destination computing resource determination unit 120 of the identifier of the switching target accelerator, and ends the present flow.
[0281] [Hardware Configuration]
[0282] The signal processing resource switching devices 100, 100A to 1000C (1000 to 1000C) of the signal processing resource switching systems 1000, 1000A to 1000C (1000 to 1000C) of the above-described embodiments are configured such that, for example, Fig.14 The illustrated configuration is implemented by a computer 900 .
[0283] Fig.14 100 is a diagram showing an example of a hardware configuration of a computer 900 that realizes the functions of the signal processing resource switching devices 100 to 100C.
[0284] The signal processing resource switching device 100 to 100C includes a CPU 901, a RAM 902, a ROM 903, a HDD 904, an accelerator 905, an input / output interface (I / F) 906, a media interface (I / F) 907, and a communication interface (I / F: Interface) 908. The accelerator 905 corresponds to Figure 1 to Figure 4 Accelerators 12-1, 12-2.
[0285] The accelerator 905 is an accelerator (device) 12-1, 12-2 ( Figure 1 to Figure 4 ). It should be noted that, as the accelerator 905, a type (look-aside type: backup type) that returns the execution result to the CPU 901 or RAM 902 after executing the processing from the CPU 901 or RAM 902 may also be used. On the other hand, as the accelerator 905, a type (in-line type: in-line type) that enters between the communication I / F 908 and the CPU 901 or RAM 902 and performs processing may also be used.
[0286] The accelerator 905 is connected to an external device 915 via a communication I / F 908. The input / output I / F 906 is connected to an input / output device 916. The media I / F 907 reads and writes data from a recording medium 917.
[0287] The CPU 901 operates based on the program stored in the ROM 903 or the HDD 904, and performs the operation by executing the program (also referred to as an application program or its abbreviation) read into the RAM 902. Figure 1 to Figure 4 The program may be distributed via a communication line or recorded on a recording medium 917 such as a CD-ROM.
[0288] The ROM 903 stores a boot program executed by the CPU 901 when the computer 900 is activated, a program depending on the hardware of the computer 900 , and the like.
[0289] The CPU 901 controls an input / output device 916 composed of an input unit such as a mouse and a keyboard, and an output unit such as a display and a printer, via an input / output I / F 906. The CPU 901 obtains data from the input / output device 916 via the input / output I / F 906, and outputs generated data to the input / output device 916. It should be noted that a GPU (Graphics Processing Unit: graphics processor) or the like may be used as a processor together with the CPU 901.
[0290] HDD 904 stores programs executed by CPU 901 and data used by the programs, etc. Communication I / F 908 receives data from other devices via a communication network (eg, NW (Network)) and outputs it to CPU 901 , and CPU 901 transmits generated data to other devices via the communication network.
[0291] The media I / F 907 reads the program or data stored in the recording medium 917 and outputs it to the CPU 901 via the RAM 902. The CPU 901 loads the target processing program from the recording medium 917 to the RAM 902 via the media I / F 907, and executes the loaded program. The recording medium 917 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phasechange rewritable disk), an optical magnetic recording medium such as an MO (Magneto Optical disk), a magnetic recording medium, a conductive memory tape medium, or a semiconductor memory.
[0292] For example, when the computer 900 functions as the server 200 constituting one of the devices of the present embodiment, the CPU 901 of the computer 900 implements the function of the server 200 by executing the program loaded on the RAM 902. In addition, the data in the RAM 902 is stored in the HDD 904. The CPU 901 reads the program of the target process from the recording medium 917 and executes it. In addition, the CPU 901 may also read the program of the target process from other devices via the communication network.
[0293] [Effect]
[0294] As described above, the signal processing resource switching devices 100 to 100C ( Figure 1 to Figure 4 ) When there are multiple accelerators (accelerators 12-1, 12-2) and specific processing of an application is offloaded to the accelerator for calculation processing, the computing resource of the offloading destination is switched, and it is characterized by comprising: a function proxy execution unit 111, which receives "function name / independent variable" from an application (application unit 1), and notifies the application of the function's independent variable data when the function is executed / ended by the computing resource; an accelerator failure sensing unit 110, which senses the failure of the accelerator; and an offloading destination computing resource determination unit 120, which determines the resources in the computing resources that are not faulty and can be used, and the function proxy execution unit 111 offloads to the resources determined by the offloading destination computing resource determination unit 120.
[0295] As described above, in a computer system equipped with an accelerator, there is a case where a single accelerator fails, and it is necessary to continue the calculation at that time.
[0296] The function proxy execution unit 111 separates the application and the accelerator unloading process, and realizes the switching of only the accelerator 12 without modifying the application. In addition, the function proxy execution unit 111 can switch the unloading destination without making changes to the application. Thus, the accelerator is switched without restarting / migrating the application. Moreover, by automatically switching according to the fault sensing result, <Requirement 1: Transparency> is achieved. As a result, when the accelerator cannot be used, the operation processing can be continued to the maximum extent without instructions from the application.
[0297] In the signal processing resource switching system 1000~1000C( Figure 1 to Figure 4 ) is characterized in that it comprises: a task processing status recording unit 160, which receives the task processing status in time series from the function proxy execution unit 111 and maintains the unfinished computing tasks in each computing resource; and a task re-unloading indication unit 170, which instructs the function proxy execution unit 111 to re-execute the unfinished computing tasks of the switching source computing resource based on the "identifier of the switching source computing resource" received from the unloading destination computing resource determination unit 120.
[0298] Thus, the task processing status recording unit 160 that manages the remaining tasks records the tasks before the accelerator's processing is completed, and the task re-unloading instruction unit 170 automatically re-unloads in the event of a sudden failure. Thus, <Requirement 1: Transparency> and <Requirement 2: High availability in the event of a sudden failure> are taken into account. <Requirement 2: High availability in the event of a sudden failure> is a requirement to minimize the switching time by automatically switching the unloading destination in cooperation with the fault sensing and automatically re-entering based on the accelerator task processing status. As a result, automatic processing continuation can be achieved by automatically re-unloading the task in the event of an accelerator failure.
[0299] In the signal processing resource switching system 1000~1000C( Figure 1 to Figure 4 ) is characterized in that the offloading destination computing resource determination unit 120 selects the failed accelerator and the failover destination accelerator that replaces the accelerator to be switched, and sets them in the function proxy execution unit 111, and notifies the task re-offloading indication unit 170 of the failed accelerator and the failover destination accelerator, indicating the re-investment of the task.
[0300] Thus, by automatically switching the offload destination in cooperation with the fault sensing and automatically re-engaging based on the accelerator task processing status, the switching time can be minimized, and <Requirement 2: High availability in the event of a sudden fault> can be achieved.
[0301] In the signal processing resource switching system 1000~1000C( Figure 1 to Figure 4 ), characterized in that it comprises: an accelerator failure prediction unit 130, which predicts the failure of the accelerator and notifies the switching object accelerator of the predicted failure; and a planned stop task input inhibition unit 140, which, upon receiving the notification of the switching object accelerator from the accelerator failure prediction unit 130, instructs the task re-unloading indication unit 170 to prohibit new task input for the switching object accelerator.
[0302] Thus, the accelerator failure prediction unit 130 predicts the failure of the accelerator, and for the accelerator to be disconnected, the task input suppression unit 140 is planned to suppress the input of tasks, and the unloading destination is switched to other computing resources. Thus, <Requirement 3: Processing continues when disconnected intentionally> can be achieved. <Requirement 3: Processing continues when disconnected intentionally> is a requirement to suppress the input of tasks to the accelerator to be switched, and switch after confirming that the task is empty, thereby continuing the calculation. As a result, it is possible to achieve non-instantaneous interruption switching when disconnected intentionally based on suppressing the input of accelerator tasks.
[0303] Signal processing resource switching system 1000~1000C( Figure 1 to Figure 4 ) has a server 250 and a remote server 260 connected via a network 2, the server 250 offloads specific processing of an application (application unit 1) to an accelerator (accelerator 12-1, 12-2, accelerator (remote) 12) configured on the server 250 or the remote server 260 for calculation processing, and is characterized in that a signal processing resource switching device 100~100C ( Figure 1 to Figure 4 ), the signal processing resource switching device 100 comprises: a function proxy execution unit 111, which receives "function name / independent variable" from an application, and notifies the application of the function's independent variable data when the function is executed / ended by the computing resource; an accelerator fault sensing unit 110, which senses the accelerator's fault; and an offload destination computing resource determination unit 120, which determines the non-faulty and usable resources among the computing resources, and the function proxy execution unit 111 offloads to the resources determined by the offload destination computing resource determination unit 120.
[0304] Thus, in the signal processing resource switching system 1000-1000C having the server 250 and the remote-side server 260 connected via the network 2, the offload destination computing resource determination unit 120 selects a resource that has not failed (not failed) and can be used from the "accelerators 12-1 and 12-2 mounted on the server, the CPU 11, and the accelerator (remote) 12 of the remote-side server" as computing resources, and notifies the function proxy execution unit 111. The function proxy execution unit 111 automatically switches according to the failure detection result, thereby realizing <Requirement 1: Transparency>.
[0305] In particular, in the prior art, such as Fig.17 As shown, after the hardware failure is detected, the application / VM using the hardware needs to be migrated to another server to continue processing. Although the CPU has not failed, the entire application / VM is migrated or restarted. In contrast, in the present embodiment, in the signal processing resource switching system 1000-1000C ( Figure 1 to Figure 4 ) can achieve <Requirement 1: Transparency> and <Requirement 2: High availability in the event of sudden failures>, and when the accelerator cannot be used, the computing processing can continue to the maximum extent possible without instructions from the application.
[0306] In addition, in each process described in the above-mentioned embodiments and modified examples, all or part of the processes described as automatic execution may be manually executed, or all or part of the processes described as manual execution may be automatically executed by a known method. In addition, the processing process, control process, specific name, and information including various data and parameters shown in the above-mentioned documents and drawings may be changed arbitrarily except for the cases specifically recorded.
[0307] In addition, the components of each device shown in the figure are conceptual functions and do not necessarily need to be physically configured as shown in the figure. That is, the specific method of distributing / integrating each device is not limited to the method shown in the figure, and all or part of them can be functionally or physically distributed / integrated in arbitrary units according to various loads, usage conditions, etc.
[0308] In addition, the above-mentioned structures, functions, processing parts, processing units, etc. can also be implemented by hardware, such as designing a part or all of them with integrated circuits. In addition, the above-mentioned structures, functions, etc. can also be implemented by software for a processor to interpret and execute programs that implement each function. Information such as programs, tables, files, etc. that implement each function can be stored in a recording device such as a memory, a hard disk, an SSD (Solid State Drive), or an IC (Integrated Circuit) card, an SD (Secure Digital) card, an optical disk, etc., or a recording medium such as an optical disk.
[0309] Description of reference numerals:
[0310] 1: application unit (application); 2: network (NW); 10: hardware; 11: CPU; 12, 12-1, 12-2: accelerator; 13: NIC; 100, 100A, 100B, 100C: signal processing resource switching device; 110: accelerator failure sensing unit; 111: function proxy execution unit; 120: offload destination computing resource determination unit; 130: accelerator failure prediction unit; 140: planned stop task input suppression unit; 150: accelerator maintenance setting unit; 160: task processing status recording unit; 170: task re-offloading instruction unit; 250: server (server <1> ); 260: Remote server (server <2> ); 1000, 1000A, 1000B, 1000C: signal processing resource switching system.
Claims
1. A signal processing resource switching device, when there are multiple accelerators and the specific processing of the application is offloaded to the accelerator for computing processing, switches the computing resources of the offloading destination, characterized in that: have: The function proxy execution unit receives the function name and the independent variable from the application program, and notifies the application program of the independent variable data of the function when the function is executed by the computing resource and when it is finished; An accelerator fault sensing unit, for sensing a fault of the accelerator; as well as The offload destination computing resource determination unit determines a non-faulty and usable resource among the computing resources. The function proxy execution unit offloads to the resource determined by the offload destination computing resource determination unit.
2. The signal processing resource switching device according to claim 1, characterized in that: have: A task processing status recording unit receives the task processing status in time series from the function proxy execution unit and stores the unfinished computing tasks in each computing resource; as well as The task re-offloading instruction unit instructs the function proxy execution unit to re-execute the uncompleted computation task of the switching source computing resource based on the identifier of the switching source computing resource received from the offloading destination computing resource determination unit.
3. The signal processing resource switching device according to claim 2, characterized in that: The offload destination computing resource determination unit selects the accelerator in which the failure has occurred and the failover destination accelerator that is to be replaced by the accelerator to be switched, and sets them in the function proxy execution unit. The task re-offloading instruction unit is notified of the failed accelerator and the failover destination accelerator, and is instructed to re-introduce the task.
4. The signal processing resource switching device according to claim 3, characterized in that: have: an accelerator failure prediction unit that predicts a failure of the accelerator and notifies a switching target accelerator of the predicted failure; and The planned stop task injection suppression unit instructs the task re-offloading instruction unit to prohibit injection of new tasks for the switching target accelerator when receiving the notification of the switching target accelerator from the accelerator failure prediction unit.
5. A signal processing resource switching system, comprising a server and a remote server connected via a network, wherein the server offloads specific processing of an application to an accelerator configured on the server or the remote server for computing processing, wherein the signal processing resource switching system is characterized in that: A signal processing resource switching device for switching computing resources of an offloading destination is provided inside or outside the server, The signal processing resource switching device comprises: The function proxy execution unit receives the function name and the independent variable from the application program, and notifies the application program of the independent variable data of the function when the function is executed by the computing resource and when it is finished; An accelerator fault sensing unit, for sensing a fault of the accelerator; as well as The offload destination computing resource determination unit determines a non-faulty and available computing resource among the computing resources. The function proxy execution unit offloads to the resource determined by the offload destination computing resource determination unit.
6. A signal processing resource switching method, which is a signal processing resource switching method of a signal processing resource switching device, wherein when there are multiple accelerators and the specific processing of an application is offloaded to the accelerator for computing processing, the signal processing resource switching device switches the computing resources of the offloading destination, wherein the signal processing resource switching method is characterized in that: The signal processing resource switching device performs the following steps: Accepting a function name and arguments from an application, notifying the application of the function's argument data when the function is executed by a computing resource and when it is finished, and unloading to a determined resource; sensing a fault in the accelerator; as well as Resources among the computing resources that are not failed and can be used are determined.
7. A signal processing resource switching method, which is a signal processing resource switching method of a signal processing resource switching system, wherein the signal processing resource switching system comprises a server and a remote server connected via a network, wherein the server offloads specific processing of an application to an accelerator configured on the server or the remote server for computing processing, wherein the signal processing resource switching method is characterized in that: A signal processing resource switching device for switching computing resources of an offloading destination is provided inside or outside the server, The signal processing resource switching device performs the following steps: receiving a function name and an argument from an application, notifying the application of the function's argument data when the function is executed by a computing resource and when it is finished, and unloading to a determined resource; sensing a fault in the accelerator; as well as Resources among the computing resources that are not failed and can be used are determined.
8. A program for causing a computer to execute the following process as a signal processing resource switching device for switching a computing resource of an offload destination when there are a plurality of accelerators and specific processing of an application is offloaded to the accelerator for computational processing: A process of receiving a function name and arguments from an application, notifying the application of the function's argument data when the function is executed and terminated by a computing resource, and performing a function proxy execution process of offloading to a determined resource; an accelerator fault sensing process for sensing a fault of the accelerator; and An offloading destination computing resource determination process is to determine a resource among the computing resources that is not faulty and can be used.