Signal processing resource switching device, signal processing resource switching system, signal processing resource switching method and program
The signal processing resource switching device ensures continuous computation by dynamically switching computation resources without application modification, addressing the disruption caused by accelerator failures and maintaining availability.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NIPPON TELEGRAPH & TELEPHONE CORP
- Filing Date
- 2022-07-11
- Publication Date
- 2026-06-02
AI Technical Summary
Existing technologies fail to maintain continuous arithmetic processing when accelerators such as FPGAs or GPUs become unavailable due to failures, requiring application or virtual machine migration and restart, which disrupts operations and does not meet availability requirements.
A signal processing resource switching device that includes a function proxy execution unit, accelerator failure detection, offloading destination determination, and task re-offloading mechanisms to seamlessly switch computation resources without modifying the application, ensuring continuous processing even during failures.
Enables uninterrupted arithmetic processing by automatically switching computation resources, minimizing downtime during failures and planned maintenance, and maintaining application transparency.
Smart Images

Figure 0007868677000001 
Figure 0007868677000002 
Figure 0007868677000003
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 it is good at (has high processing power) is different. For a highly versatile CPU (Central Processing Unit), there are accelerators such as FPGA (Field Programmable Gate Array) / (in the following description, " / " represents "or") GPU (Graphics Processing Unit) / ASIC (Application Specific Integrated Circuit) that can perform operations on a workload with a high degree of parallelism that the CPU is not good at (has low processing power) quickly and efficiently. The utilization of offloading technology that combines these heterogeneous processors and offloads the workload that the CPU is not good at to the ACC for operation is progressing.
[0003] In vRAN (virtual Radio Access Network) or the like, when the performance of only the CPU is insufficient to meet the requirements, part of the processing is offloaded to a high-speed computable accelerator such as an FPGA or a GPU. Typical examples of the specific workload for which ACC offloading is performed include encoding / decoding processing (FEC: Forward Error Correction processing) in vRAN, media processing of audio and video, encryption / decryption processing, and the like.
[0004] In computer systems, a configuration is sometimes adopted in which a computer (hereinafter referred to as a server) is equipped with hardware (CPU) that supports general-purpose processing and hardware (accelerator) specialized for specific calculations, and some calculation processing is offloaded from the general-purpose processor on which the software runs to the accelerator.
[0005] Furthermore, with the advancement of cloud computing, it is becoming increasingly common to simplify the configuration of client machines by offloading some computationally intensive processing tasks from client machines deployed at user sites to servers at remote sites (such as data centers located near the user) via a network (hereinafter referred to as NW).
[0006] Figure 15 is a diagram illustrating the computer system. As shown in Figure 15, the server 50 is equipped with a CPU 11 and an accelerator 12-1 on the hardware 10, and includes a software application 20 (hereinafter referred to as APL or application unit) 1 that runs on the CPU 11 on the server 50. Accelerator 12 is a computing accelerator device such as an FPGA (Field Programmable Gate Array) or GPU (Graphics Processing Unit). Accelerator 12 is subject to failures with a certain probability, such as cooling fan failure. Application 1 calls a set of functions (APIs) defined as a standard, and offloads some of the processing to accelerator 12. In Figure 15, accelerator 12 may fail on its own, and in this case, it is necessary to continue the calculation.
[0007] The computing system is required to maintain the availability of Application 1 even when the accelerator 12 installed on Server 50 is unavailable due to failure, maintenance, or other reasons. The availability requirements for Application 1 are as follows: ·Requirement 1: Transparency No modifications to the application or the implementation of dedicated processing are required. Specifically, when a particular accelerator becomes unavailable, the application does not need to perform any detection or avoidance processing.
[0008] Requirement 2: Availability during sudden failures To minimize the time it takes for an application to resume processing calculations when a specific accelerator suddenly becomes unavailable.
[0009] Requirement 3: Continue calculation during intentional disconnection During pre-planned disconnection (switching) of accelerator 12, such as during maintenance or fault prediction, the computation process will not be interrupted (uninterrupted). [Prior art documents] [Non-patent literature]
[0010] [Non-Patent Document 1] "OpenStack Guide", [online], [Accessed June 6, 2022], Internet < URL: http: / / openstack-ja.github.io / openstack-manuals / openstack-ops / content / maintenance.html > [Overview of the Initiative] [Problems that the invention aims to solve]
[0011] As an existing technology, after detecting a hardware failure, there is a technique to migrate the application or virtual machine (VM) (hereinafter referred to as "application / VM") that uses the affected hardware to the same server (Pattern 1) or to another server (Pattern 2) to continue processing (see Non-Patent Literature 1).
[0012] Figures 16 and 17 illustrate the technology described in Non-Patent Document 1. Figure 16 illustrates Pattern 1: Application / VM restart within the same server, and Figure 17 illustrates Pattern 2: Startup on a different server. Components identical to those in Figure 15 are denoted by the same reference numerals. In Figures 16 and 17, devices that have stopped working are indicated by dashed lines.
[0013] As shown in Figure 16, if accelerator 12-1 fails within the same server 50 (indicated by a in Figure 16), for example, after an operator detects the hardware failure (indicated by b in Figure 16), the application / VM is restarted within the same server based on instructions from the operator (indicated by c in Figure 16). The restarted application / VM 1-2 then re-offloads tasks to accelerator (redundant) 12-2 (indicated by d in Figure 16).
[0014] As shown in Figure 17, in the case of startup on a separate server, for example, an operator migrates the application and virtual machine to the separate server 60 (symbol c in Figure 17). The restarted application / VM1-2 then re-offloads tasks to the accelerator (redundant) 12-2 (symbol d in Figure 17).
[0015] However, in both Pattern 1: Restarting the application / VM on the same server, and Pattern 2: Starting up on a different server, the entire application / VM is migrated or restarted even though CPU11 is not faulty, resulting in the following three gaps.
[0016] (1) Gap 1 During fault recovery, a re-offload process from the application is required (indicated as d in Figures 16 and 17), which does not satisfy <Requirement 1: Transparency>.
[0017] (2) Gap 2 In case of a sudden failure, the operation stops during application restart or migration (reference symbol c in FIGS. 16 and 17), failing to meet <Requirement 2: Availability in case of sudden failure>.
[0018] (3) Gap 3 Even in the case of a pre-planned switch, the operation stops during application migration (reference symbol c in FIGS. 16 and 17) and during re-offloading (reference symbol d in FIGS. 16 and 17), failing to meet <Requirement 3: Continued operation during intentional disconnection>.
[0019] In view of such a background, the present invention has been made, and an object of the present invention is to maximize the continuation of arithmetic processing without an instruction from an application when an accelerator becomes unavailable.
Means for Solving the Problem
[0020] To solve the above problems, the present invention is a signal processing resource switching device that has a plurality of accelerators and switches the calculation resources of the offloading destination when offloading a specific process of an application to the accelerators for arithmetic processing. The device includes a function proxy execution unit that receives a function name and arguments from an application and notifies the application of the argument data of the function when the function is executed and terminated by the calculation resources, an accelerator failure detection unit that detects a failure of the accelerator, and an offloading destination calculation resource determination unit that determines an available resource among the calculation resources that is not faulty. calculation And, the signal processing resource switching device is characterized in that the function proxy execution unit performs offloading to the resource determined by the offloading destination calculation resource determination unit. A task processing status recording unit receives the task processing status in chronological order from the function proxy execution unit and holds incomplete calculation tasks in each computing resource, and a task re-offload instruction unit instructs the function proxy execution unit to re-execute the incomplete calculation tasks of the source computing resource based on the identifier of the source computing resource received from the offload destination computing resource determination unit. calculation
Effect of the Invention
[0021] According to the present invention, when an accelerator becomes unavailable, arithmetic processing can be maximally continued without an instruction from an application.
Brief Description of the Drawings
[0022] [Figure 1] This is a schematic diagram of a signal processing resource switching system according to an embodiment of the present invention. [Figure 2] This is a schematic diagram showing variation 1 of the arrangement of the signal processing resource switching device in a signal processing resource switching system according to an embodiment of the present invention. [Figure 3] This is a schematic diagram showing variation 2 of the arrangement of the signal processing resource switching device in a signal processing resource switching system according to an embodiment of the present invention. [Figure 4] This is a schematic diagram showing variation 3 of the arrangement of the signal processing resource switching device in a signal processing resource switching system according to an embodiment of the present invention. [Figure 5] This figure shows an example of the data structure of the accelerator (remote) of the signal processing resource switching system according to an embodiment of the present invention. [Figure 6] This figure shows an example of a data structure for inter-function exchange of function IDs and argument data of a signal processing resource switching device in a signal processing resource switching system according to an embodiment of the present invention. [Figure 7] This figure shows the accelerator management table of the offload destination computing resource determination unit of the signal processing resource switching device of the signal processing resource switching system according to an embodiment of the present invention. [Figure 8A] This flowchart shows Sequence 1 in the offloading of a signal processing resource switching system according to an embodiment of the present invention. [Figure 8B] This flowchart shows Sequence 1 in the offloading of a signal processing resource switching system according to an embodiment of the present invention. [Figure 8C] This flowchart shows Sequence 1 in the offloading of a signal processing resource switching system according to an embodiment of the present invention. [Figure 9] This flowchart shows the sequence 2 that occurs when a sudden failure occurs in the signal processing resource switching system according to an embodiment of the present invention. [Figure 10]This is a flowchart showing sequence 3 of a pre-intended switching (fault prediction) for a signal processing resource switching system according to an embodiment of the present invention. [Figure 11] This flowchart shows a sequence 4 of instructions given by a pre-intended switching operator in a signal processing resource switching system according to an embodiment of the present invention. [Figure 12] This flowchart shows sequence 5 of the selection rule for the fault switching target in the signal processing resource switching system according to an embodiment of the present invention. [Figure 13] This flowchart shows the recovery sequence 6 after a failure in a signal processing resource switching system according to an embodiment of the present invention. [Figure 14] This is a hardware configuration diagram showing an example of a computer that implements the functions of a signal processing resource switching device in a signal processing resource switching system according to an embodiment of the present invention. [Figure 15] This is a diagram illustrating a computer system. [Figure 16] This is a diagram illustrating the restart of an application / VM within the same server, as described in Non-Patent Document 1. [Figure 17] This is a diagram illustrating the startup process on a separate server as described in Non-Patent Document 1. [Modes for carrying out the invention]
[0023] The following describes a signal processing resource switching system, etc., in an embodiment for carrying out the present invention (hereinafter referred to as "this embodiment") with reference to the drawings. (Embodiment) [overview] Figure 1 is a schematic diagram of a signal processing resource switching system according to an embodiment of the present invention. As shown in Figure 1, the signal processing resource switching system 1000 is server 250 (server <1> ) and Server 250 (Server <1> ) and server 260 connected via NW2 (server <2> ) and are equipped with. The signal processing resource switching system 1000 has server 250 offload specific processing of an application to an accelerator located on server 250 or a remote server 260 for computational processing.
[0024] [Server 250 (Server <1> )] Server 250 (Server <1> The system comprises hardware (HW) 10 and software 210.
[0025] Hardware 10 The hardware 10 includes a CPU 11, multiple accelerators 12 (accelerator 12-1, accelerator (redundant) 12-2), and a NIC 13.
[0026] <cpu11> CPU 11 executes the function proxy execution unit 111 (software function) on server 250. CPU 11 is one of the computing resources that performs calculations together with accelerator 12-1 and accelerator (redundant) 12-2.
[0027] CPU11 is used for Accelerator 12-1, Accelerator (redundant) 12-2, and Server <2> The calculations processed together with the accelerator (remote) 12 may be performed by temporarily using the CPU 11 as a computing resource in the event of a failure.
[0028] <Accelerator 12> Accelerator 12 is a computing accelerator device such as an FPGA / GPU. Accelerator 12-1(12) is accelerator hardware installed on server 250 that is specialized for specific calculations and performs calculations based on instructions from function proxy execution unit 111. Accelerator (redundant) 12-2(12) is a second accelerator hardware unit specialized for specific calculations and performs calculations based on instructions from function proxy execution unit 111.
[0029] The accelerator 12 receives the "function name·argument data" to be used in the operation from the function proxy execution unit 111 as input. The accelerator 12 notifies the function execution proxy unit 111 of the "calculation result" as an output.
[0030] The accelerator can take the form of having an internal task processing queue, with separate commands for inputting the computation target (enqueue processing) and outputting the processing result (dequeue processing). Accelerator 12 is subject to failures with a certain probability, such as cooling fan failure.
[0031] Furthermore, the accelerator (redundant) 12-2(12) may be used not only in the event of failure, but also under normal circumstances, and may serve as a backup in case of failure.
[0032] <nic13> NIC13 is a NIC hardware that provides a network interface. When the function proxy execution unit 111's offload destination is a remote server (server 260), NIC 13 receives notification of the packet containing the "function name and argument data" to be offloaded by the function proxy execution unit 111 and notifies NIC (local) 13 on server 260.
[0033] NIC13 receives the "function name and argument data" to be calculated from the function execution proxy unit 111 as input. NIC13 then transmits this data to the server 260's NIC (local) 13. NIC13 notifies the function proxy execution unit 111 of a group of packets containing the "calculation result" as output. NIC13 receives this data from the server 260's NIC (local) 13.
[0034] NIC13 receives a group of packets containing "function name and argument data" from NIC (local) 13 of server 260 as input. NIC13 then notifies the function proxy execution unit (remote) 111 of this data. NIC13 sends a set of "calculation result" packets as output to NIC (local) 13 on server 260. NIC13 receives this data as notification from the function proxy execution unit (remote) 211.
[0035] Software 210 The software 210 includes an application unit 1 (application) and a signal processing resource switching device 100.
[0036] <Application Section 1> Application Unit 1 is a program that runs in user space. Application Unit 1 is built on the premise of using APIs defined by OpenCL® and DPDK BBDev API®, and has input and output with these APIs. Application unit 1 has "function name and arguments" for the function proxy execution unit 111 as its output. It accepts "function execution result" from the function proxy execution unit 111 as its input.
[0037] Application Unit 1 calls a set of functions (APIs) defined as standard, and uses Accelerator 12-1, Accelerator (Redundant) 12-2, or Server 260 (Server <2> This offloads some of the processing to accelerator 12.
[0038] [Signal processing resource switching device 100] The signal processing resource switching device 100 includes a function proxy execution unit 111, an accelerator failure detection unit 110, an offload destination computing resource determination unit 120, an accelerator failure prediction unit 130, a task submission suppression unit for planned shutdowns 140, an accelerator maintenance setting unit 150, a task processing status recording unit 160, and a task re-offload instruction unit 170.
[0039] Here, the accelerator failure detection unit 110, the offload destination computing resource determination unit 120, the accelerator failure prediction unit 130, the task input suppression unit for planned shutdown 140, the accelerator maintenance setting unit 150, the task processing status recording unit 160, and the task re-offload instruction unit 170 constitute the controller function unit (introduced for explanation in the arrangement examples shown in Figures 2 to 4 below).
[0040] Furthermore, the dashed box 101 in Figure 1 is a functional unit that links function proxy execution and fault detection to perform a switchover in the event of a failure without modifying the application (explained in Point 1 of the invention below). The dashed box 102 in Figure 1 is a functional unit that suppresses the interruption period in the event of a sudden failure (explained in Point 2 of the invention below). The dashed box 103 in Figure 1 is a functional unit that continues calculations during a switchover that can be predicted in advance (explained in Point 3 of the invention below).
[0041] <Function proxy execution unit 111> The function proxy execution unit 111 receives the "function name and arguments" from the application, and when the function is executed and completed by the computing resource, it notifies the application of the function argument data and performs offloading to the resource determined by the offload destination computing resource determination unit 120.
[0042] The function proxy execution unit 111 is implemented as middleware with an interface compatible with the default functions. The function proxy execution unit 111 has an interface equivalent to the set of default API functions such as OpenCL® and DPDK BBdev API®. The function execution proxy unit 111 receives a function call from the user and performs offloading to a computing resource that has been set in advance by the offload destination computing resource determination unit 120 (described later).
[0043] The function proxy execution unit 111 is prepared as a separate binary file from the application unit 1 (user application) that receives the results, and is implemented using a "dynamic library format" where dynamic linking and calling are performed at runtime. Alternatively, the function proxy execution unit 111 may be linked to the application unit 1 during program generation and executed as a single unit using a "static library format".
[0044] The function execution proxy unit 111 notifies the task processing status recording unit 160 (described later) of the function name and arguments at the start of each function offload to identify the task that has started processing. The function execution proxy unit 111 also notifies the task processing status recording unit 160 of the function name and arguments at the completion of each function offload to identify the task that has completed processing.
[0045] The function proxy execution unit 111 determines the offload destination set by the offload destination computing resource determination unit 120 (described later) to be local (CPU 11, accelerator 12-1, accelerator (redundant) 12-2, server). <2> In the case of the accelerator 12 or CPU 11, calculation instructions are given to each device based on the input data. The function proxy execution unit 111, when the offload destination specified by the offload destination computing resource determination unit 120 is a remote location (server 260), serializes the input data, divides it into packets in a format such as UDP / IP (User Datagram Protocol / Internet Protocol), and notifies the NIC (remote) 13.
[0046] The function execution proxy unit 111 receives "function name and arguments" from the application unit 1 as input. The function execution proxy unit 111 notifies the task processing status recording unit 160 (described later) of the function argument data as output when the function is executed and when it has finished. The function proxy execution unit 111, if the offload destination is local, notifies the computing resource of either the CPU 11 accelerator 12-1 or the accelerator (redundant) 12-2 of the "function name and arguments" as output. The function proxy execution unit 111, if the offload destination is remote, passes the "packetized data of the function name and argument data" to the NIC (remote) 13 as output.
[0047] <Accelerator failure detection unit 110> The accelerator failure detection unit 110 periodically monitors the status of the accelerator and detects whether a failure has occurred. Failure detection is performed by periodically executing a health check command and checking the result. If the accelerator failure detection unit 110 detects a failure, it notifies the offload destination computing resource determination unit 120 of the "identifier of the failed hardware" as an output.
[0048] Methods for detecting accelerator failures include proactive detection methods such as "confirming normal operation by periodically executing test offload processes," "monitoring data processing status," and "periodic execution of the hardware's health check function," as well as passive failure detection methods such as "detection by receiving alerts from the accelerator hardware."
[0049] <Offload destination calculation resource determination unit 120> The offload destination computing resource determination unit 120 determines which computing resources are not faulty (not malfunctioning) and are available.
[0050] The offload destination computing resource determination unit 120 selects the accelerator that has failed and the failover destination accelerator that will take the place of the accelerator to be switched over, sets them in the function proxy execution unit 111, and notifies the task re-offload instruction unit 170 of the accelerator that has failed and the failover destination accelerator, and instructs it to resubmit the task.
[0051] 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 computing resource that is not faulty and is available from among the "accelerators installed in the server, CPU 11, and accelerators on the remote server side" and notifies the function proxy execution unit 111. At startup, the offload destination computing resource determination unit 120 selects a resource that can be processed from the available resources and instructs the function proxy execution unit 111.
[0052] (In case of sudden malfunction) When the offload destination computing resource determination unit 120 receives notification of a sudden failure from the accelerator failure detection unit 110, it selects a failover destination accelerator to replace the failed accelerator and sets it in the function proxy execution unit 111. At the same time, it notifies the task re-offload instruction unit 170 of the failed accelerator and the failover destination accelerator and instructs it to resubmit the task.
[0053] (When a sudden malfunction is detected) The offload destination computing resource determination unit 120 receives, as input, a failure notification and the identifier of the accelerator that has experienced the failure from the accelerator failure detection unit 110. The offload destination calculation resource determination unit 120 sets the offload destination for the function proxy execution unit 111 as its output. The offload destination computing resource determination unit 120 notifies the task re-offload instruction unit 170 of the accelerator that has failed and the failover destination accelerator as output.
[0054] (When switching intentionally) When the Offload Destination Computation Resource Determination Unit 120 receives notification of an intentional switch from the Planned Stop Task Input Suppression Unit 140, it selects a failover destination accelerator to replace the accelerator to be switched to and sets it in the Function Proxy Execution Unit 111. The offload destination computing resource determination unit 120 receives a scheduled switchover notification and an identifier of the accelerator to be switched over from the planned shutdown task input suppression unit 140.
[0055] The offload destination computing resource determination unit 120 may also read and set the resources to be processed at startup from a configuration file.
[0056] <Accelerator failure prediction unit 130> The accelerator failure prediction unit 130 predicts accelerator failures and notifies the system of the accelerator that is expected to fail and is subject to replacement.
[0057] The accelerator failure prediction unit 130 periodically monitors the temperature status of the accelerator and determines whether there is a high probability of failure or malfunction occurring. If the accelerator failure prediction unit 130 predicts a failure, it notifies the task input suppression unit 140 of the identifier of the target accelerator and instructs it to suppress the input of new tasks.
[0058] The accelerator failure prediction unit 130, when it predicts a failure, notifies the planned shutdown task input suppression unit 140 of the "identifier of the failed hardware" as an output.
[0059] Furthermore, the accelerator failure prediction unit 130 may also use methods such as "executing a periodic health check program" and "continuously checking the temperature changes of the accelerator card and detecting whether the temperature is approaching a certain level" as methods for predicting accelerator failures.
[0060] <Task input suppression unit 140 for planned shutdown> When the task input suppression unit 140 receives notification from the accelerator failure prediction unit 130 regarding an accelerator to be switched over, it instructs the task re-offload instruction unit 170 to suppress the input of new tasks for the accelerator to be switched over.
[0061] The task input suppression unit 140 for planned shutdown, upon receiving notification of an intentional switchover from the accelerator failure prediction unit 130 or the accelerator maintenance setting unit 150, notifies the offload destination computing resource determination unit 120 of the identifier of the accelerator to be switched over. This suppresses task input to the target accelerator, creating a state where there are no tasks in progress, thus enabling disconnection.
[0062] (When switching intentionally) The task input suppression unit 140 for planned shutdowns receives the identifier of the accelerator to be switched over from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150 as input. The task input suppression unit 140 for planned shutdown notifies the offload destination computing resource determination unit 120 of the identifier of the accelerator to be switched over as an output, and requests a change of the offload destination.
[0063] How to eliminate tasks in progress In this embodiment, in order to eliminate pending tasks on the accelerator to be switched over, the system suppresses the input of new tasks, and then eliminates pending tasks over time. Alternatively, the task input suppression unit 140 for planned shutdown may instruct the task re-offload instruction unit 170 to re-input the task to the switching destination.
[0064] Regarding the detection of the disappearance of in-progress tasks. This embodiment does not have a function to explicitly confirm that there are no more tasks in progress. Alternatively, the task input suppression unit 140 for planned shutdowns may periodically check the task processing status of the task processing status recording unit 160 to see if there are no more tasks in progress, and notify the operator (human).
[0065] <Accelerator maintenance setting unit 150> The accelerator maintenance setting unit 150 has the function of making a specific accelerator available for disconnection based on instructions from an operator (human). When the accelerator maintenance setting unit 150 receives the above instruction, it notifies the task input suppression unit 140 of the identifier of the target accelerator and instructs it to suppress the input of new tasks.
[0066] When the accelerator maintenance setting unit 150 receives a switchover based on the above instructions, it notifies the planned shutdown task input suppression unit 140 of the "identifier of the hardware to be switched over" as an output.
[0067] Furthermore, the operator's instructions may be triggered not by a human, but by an external operating system.
[0068] <Task Processing Status Recording Unit 160> The task processing status recording unit 160 receives the task processing status in chronological order from the function proxy execution unit 111 and holds the uncompleted computation tasks for each computing resource.
[0069] The task processing status recording unit 160 receives the task processing status in chronological order from the function proxy execution unit 111 and stores the incomplete tasks for each computing resource. Based on the input from the function proxy execution unit 111, the task processing status recording unit 160 associates the start and completion times of each function's execution and manages the incomplete tasks for each computing resource.
[0070] 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 also receives the "computation resource identifier" as input from the task re-offload instruction unit 170 and outputs a list of incomplete task information (function name, arguments) for the said computation resource.
[0071] <Task Re-offload Instruction Unit 170> The task re-offload instruction unit 170 instructs the function proxy execution unit 111 to re-execute the unfinished calculation tasks of the source computing resource, based on the "identifier of the source computing resource" received from the offload destination computing resource determination unit 120.
[0072] The task re-offload instruction unit 170 queries the task processing status recording unit 160 for incomplete tasks based on the "identifier of the switching destination computing resource".
[0073] The task re-offload instruction unit 170 receives the "identifier of the source computing resource" and the "identifier of the destination computing resource" from the offload destination computing resource determination unit 120 as input. The task re-offload instruction unit 170 outputs a command to the function proxy execution unit 111 to re-execute the incomplete calculation task in order to re-execute the offload to the target computing resource.
[0074] [Server 260 (Server <2> )] Server 260 (Server <2> The remote server comprises hardware (HW) 10 and software 210.
[0075] Hardware 10 Hardware 10 includes a CPU (remote) 11, an accelerator (remote) 12, and a NIC (local) 13.
[0076] <cpu11> The remote CPU 11 executes the function proxy execution unit 211 (software function) on the server 260. The remote CPU 11, along with the remote accelerator 12, is one of the computing resources.
[0077] CPU (remote) 11 is connected to accelerator 12-1, accelerator (redundant) 12-2, and server <2> The calculations processed by the accelerator (remote) 12 may be carried out by temporarily using the CPU 11 as a computing resource in the event of a failure.
[0078] <Accelerator 12> The accelerator (remote) 12 is a computing accelerator device such as an FPGA / GPU. The remote accelerator 12 is accelerator hardware installed on the server 260 that specializes in specific calculations and performs calculations based on instructions from the function proxy execution unit 211.
[0079] The accelerator (remote) 12 receives the "function name and argument data" to be calculated from the function proxy execution unit 211 as input. The accelerator (remote) 12 notifies the function proxy execution unit 211 of the "calculation result" as an output.
[0080] <NIC(ローカル)13> NIC (local) 13 receives the "function name and argument data" transmitted from server 250 and inputs the packet group of "function name and argument data" to function proxy execution unit (remote) 211. NIC (local) 13 receives the packet group containing the "calculation result" from function proxy execution unit (remote) 211 and responds to server 250.
[0081] Software 210 The software 210 includes a function proxy execution unit 211.
[0082] <Function proxy execution unit 211> The function execution unit 211 performs calculation offload to the accelerator (remote) 12 based on the packet group of "function name and argument data" received from the NIC (local) 13. Furthermore, the function execution unit 211 packets the calculation results and sends them to the NIC (local) 13.
[0083] The function execution proxy unit 211 receives a packet containing "function name and argument data" from the NIC (local) 13 as input. The function execution proxy unit 211 notifies the NIC (local) 13 of the packet data of the "calculation result" as output. The function execution proxy unit 211 passes "function name and argument data" as output to the accelerator (remote) 12 and accepts the calculation result as input.
[0084] [Placement of signal processing resource switching device] This section describes variations in the arrangement of signal processing resource switching devices in a signal processing resource switching system. The signal processing resource switching system 1000 in Figure 1 is an example in which the signal processing resource switching device 100 is located in the software 210 of the server 250. The controller function unit of the signal processing resource switching device can also be installed in a separate enclosure outside the server 250, as illustrated below.
[0085] Figure 2 is a schematic diagram showing variation 1 of the arrangement of the signal processing resource switching device in the signal processing resource switching system. In the following figures, the same reference numerals are used for components identical to those in Figure 1, and the explanation of the duplicated parts is omitted. Variation 1 is an example where the entire controller function unit is housed in a separate enclosure. As shown in Figure 2, the signal processing resource switching system 1000A is server 250 (server <1> ) and Server 250 (Server <1> ) A signal processing resource switching device 100A installed in a separate enclosure outside, and server 250 (server <1> ) and server 260 connected via NW2 (server <2> ) and are equipped with. The software 200A of server 250 comprises an application unit 1 and a function proxy execution unit 111. The signal processing resource switching device 100A has its controller function unit installed outside the server 250 and has the same functions as the signal processing resource switching device 100 in Figure 1.
[0086] Figure 3 is a schematic diagram showing variation 2 of the arrangement of the signal processing resource switching device in the signal processing resource switching system. Variation 2 is an example where the fault detection-related functions of the controller unit are located on the computing server side. As shown in Figure 3, the signal processing resource switching system 1000B is server 250 (server <1> ) and Server 250 (Server <1> ) A signal processing resource switching device 100B installed in a separate enclosure outside, and server 250 (server <1> ) and server 260 connected via NW2 (server <2> ) and are equipped with. The server 250's software 200B includes an application unit 1, a function proxy execution unit 111, and an accelerator failure detection unit 110. The signal processing resource switching device 100B is installed outside the server 250 and has a configuration in which the accelerator fault detection unit 110 has been removed from the signal processing resource switching device 100 shown in Figure 1.
[0087] Figure 4 is a schematic diagram showing variation 3 of the arrangement of the signal processing resource switching device in a signal processing resource switching system. Variation 3 is an example where the fault detection and task re-offload functions of the controller are deployed on the computing server side. As shown in Figure 4, the signal processing resource switching system 1000C is server 250 (server <1> ) and Server 250 (Server <1> ) A signal processing resource switching device 100C installed in a separate enclosure outside, and server 250 (server <1> ) and server 260 connected via NW2 (server <2> ) and are equipped with. The server 250's software 200C includes an application unit 1, a function proxy execution unit 111, an accelerator failure detection unit 110, a task processing status recording unit 160, and a task re-offload instruction unit 170. The signal processing resource switching device 100C is installed outside the server 250 and has a configuration in which the accelerator failure detection unit 110, task processing status recording unit 160, and task re-offload instruction unit 170 are removed from the signal processing resource switching device 100 shown in Figure 1.
[0088] As shown in Figures 2 to 4 above, by deploying part or all of the controller function unit independently in a separate enclosure outside the server 250, it is possible to support the deployment of functions to the RIC in the RAN. Furthermore, it becomes possible to operate multiple servers 250 with a single signal processing resource switching device. This reduces costs and improves the maintainability of the signal processing resource switching device. In addition, modifications to the server side are unnecessary or reduced, making it applicable to a wide range of applications.
[0089] [Accelerator data structure] Figure 5 shows an example of the data structure of the accelerator (remote) 12. As shown in Figure 5, the data structure of the accelerator (remote) 12 consists of an L2 frame, a function ID, the last data bit, argument 1, and argument 2.
[0090] Figure 6 shows an example of a data structure for exchanging function IDs and argument data between functions. As shown in Figure 6, the function ID and the data structure for exchanging argument data between functions are similar to the data structure shown in Figure 5, consisting of a function ID, the last data bit, argument 1, and argument 2.
[0091] In this embodiment, the data formats of NIC13, NIC13 of server 260, and accelerator 12 are standardized, and the memory data received as distributed packets is transferred directly to accelerator 12. Therefore, the data structure is standardized. Specifically, the data structure created by the function proxy execution unit 211 is set to an accelerator function / argument data packet as shown in Figures 5 and 6. By standardizing the data formats of NIC13, 13 and accelerator 12, the data received by NIC13, 13 is in a format that the function proxy execution unit 211 can read directly.
[0092] [Table for determining off-road resource calculations] Figure 7 shows an example of the accelerator management table of the offload destination computing resource determination unit 120. This accelerator management table is referenced in the pre-planned switching (failure prediction) flow shown in Figure 10. As shown in Figure 7, the accelerator management table of the offload destination computing resource determination unit 120 contains information about the host it is mounted on, an accelerator identifier, ACC performance (throughput), and the status of the accelerator. The offload destination computing resource determination unit 120 determines the offload destination computing resource by referring to the management table shown in Figure 7. For example, "Host-1 (192.168.0.1)" (host information) has an accelerator identifier "FPGA-1", ACC performance (throughput) of "10.0 Gbps", and is "available". Also, "Host-2 (192.168.0.2)" (host information) has an accelerator identifier "CPU-1", ACC performance (throughput) of "2.0 Gbps", and is "allocated" (unavailable). In particular, "Host-3 (192.168.0.3)" (host information) has an accelerator identifier of "ASIC-1", ACC performance (throughput) of "10.0Gbps", and is "out of service" (unavailable).
[0093] The operation of the signal processing resource switching system 1000, configured as described above, will be explained below. [overview] The present invention satisfies the three requirements as follows: <Requirement 1: Transparency> The function proxy execution unit 111 separates the application from the accelerator offload processing, enabling the switching of only the accelerator 12 without modifying the application.
[0094] <Requirement 2: High availability during unexpected failures> Minimizing switching time through automatic offload destination switching linked to fault detection and automatic re-engagement based on accelerator task processing status.
[0095] <Requirement 3: Continue processing during intentional disconnection> The system suppresses the input of tasks to the accelerator to be switched over, and continues computation only after confirming that the task is empty. Furthermore, the device configuration of this embodiment does not require complete redundancy, resulting in high equipment efficiency.
[0096] The above requirements <Requirement 1: Transparency>, <Requirement 2: High availability in the event of a sudden failure>, and <Requirement 3: Continued processing during intentional disconnection> are addressed by the following: (1) Point 1 of the invention, (2) Point 2 of the invention, and (3) Point 3 of the invention.
[0097] (1) Key point of the invention 1: Coordination of function proxy execution and fault detection, and switching in case of failure without modifying the application (functional unit 101 enclosed by dashed line in Figure 1) The function proxy execution unit 111 enables switching of the offload destination without modifying the application. This allows switching accelerators without restarting or migrating the application. Furthermore, by automatically switching based on the failure detection result, <Requirement 1: Transparency> is achieved.
[0098] (2) Key point of the invention 2: Suppression of the interruption period during sudden failures (Functional part 102 enclosed by dashed line in Figure 1) Automatic processing continuation is achieved through automatic task re-offloading in the event of accelerator failure. Specifically, the task processing status recording unit 160, which manages remaining tasks, records tasks before the accelerator's processing is completed, and the task re-offload instruction unit 170 automatically performs re-offloading in the event of a sudden failure. This achieves both <Requirement 1: Transparency> and <Requirement 2: High availability in the event of a sudden failure>.
[0099] (3) Key point of the invention 3: Predictable continuation of calculations during switching (functional unit 103 enclosed by dashed line in Figure 1) This system achieves seamless switching during intentional disconnection by suppressing the input of accelerator tasks. Specifically, the accelerator failure prediction unit 130 predicts accelerator failures, and for accelerators targeted for disconnection, the planned shutdown task input suppression unit 140 suppresses task input and switches the offload destination to other computing resources. This fulfills requirement 3: continuation of processing during intentional disconnection.
[0100] [Operation] The operation of the signal processing resource switching system is the same for all of the signal processing resource switching systems: the signal processing resource switching system 1000 in Figure 1, the signal processing resource switching system 1000A in Figure 2, the signal processing resource switching system 1000B in Figure 3, and the signal processing resource switching system 1000C in Figure 4. In other words, there is no difference in operation depending on the location of the signal processing resource switching device in the signal processing resource switching system.
[0101] [Sequences in off-road driving] Figures 8A-C are flowcharts showing Sequence 1 in the offloading of the signal processing resource switching system. This flow basically involves Server 250 (Server <1> ) shows the processing, and part of it is server 260 (server <2> The process shown (S16-S19 in Figure 8A) is illustrated. In Figure 8A, in step S11, application unit 1 makes an API call and outputs "function and arguments".
[0102] In step S12, the function execution unit 111 performs computation offloading to the accelerator using a default set of functions with standardized function names and argument formats.
[0103] In step S13, the task processing status recording unit 160 receives the task processing status in chronological order from the function proxy execution unit 111 and stores the incomplete tasks for each computing resource.
[0104] In step S14, the offload destination computing resource determination unit 120 determines whether the set offload destination is a remote server or not.
[0105] If the configured offload destination is a remote server (S14: Yes), in step S15, NIC13 will determine that the offload destination of the function proxy execution unit 111 is the remote server 260 (server <2> In the case of ), the function proxy execution unit 111 receives notification of a packet of "function name and argument data" to be offloaded, and the remote server 260 (server <2> Notify NIC13 of ).
[0106] Step S16: Remote server 260 (server <2> ) NIC13 is server <1> The "function name and argument data" sent from the device is received, and the packet group of "function name and argument data" is input to the function proxy execution unit 111.
[0107] Step S17: Remote server 260 (server <2> The function proxy execution unit 111 of the NIC (local) performs calculation offload to the accelerator (remote) 12 based on the packet group of "function name and argument data" received from the NIC (local) 13.
[0108] Step S18: Remote server 260 (server) <2> The accelerator (remote) 12 performs calculations based on instructions from the function proxy execution unit 211.
[0109] In step S19, NIC (local) 13 is server 250 (server <1> Send the "calculation result" packets to NIC13 of ).
[0110] From step S20 onward, Server 250 (Server <1> This is the process of ). In step S20, server 250 (server <1> The NIC13 notifies the function proxy execution unit 111 of the "calculation result" packets and proceeds to step S21 in Figure 8B. Note that step S21 is also reached after the processing of steps S25, S27, and S28 in Figure 8C below.
[0111] In step S21 of Figure 8B, the function proxy execution unit 111 sends an ID that uniquely identifies the function and argument data to the task processing status recording unit 160 when the function is executed and when it has finished, in order to identify the task that has completed processing.
[0112] In step S22, the task processing status recording unit 160, based on the input from the function proxy execution unit 111, associates the start and completion times of each function's execution and manages the incomplete tasks on each computing resource.
[0113] In step S23, the application unit 1 receives the "function execution result" from the function proxy execution unit 111 and terminates the processing of this flow.
[0114] If the offload destination set in step S14 above is not a remote server (S14: No), then in step S24 of Figure 8C, the offload destination calculation resource determination unit 120 determines that the set offload destination is accelerator 12-1 (accelerator) within the server. <1> Determine whether or not it is the case.
[0115] If the configured offload destination is accelerator 12-1 within the server (S24: Yes), in step S25, accelerator 12-1 receives the "function name and argument data" to be calculated from the function proxy execution unit 111, performs the calculation, and proceeds to step S21 in Figure 8B.
[0116] If the configured offload destination is not accelerator 12-1 within the server (S24: No), in step S26 the offload destination computing resource determination unit 120 determines that the configured offload destination is accelerator (redundant) 12-2 (accelerator) within the server. <2> Determine whether or not it is the case.
[0117] If the configured offload destination is accelerator 12-2 within the server (S26: Yes), in step S27, accelerator 12-2 receives the "function name and argument data" to be calculated from the function proxy execution unit 111, performs the calculation, and proceeds to step S21 in Figure 8B.
[0118] If the configured offload destination is not accelerator 12-2 within the server (S26: No), then in step S28, CPU 11 will... <1> Execute the software function in the relevant section and proceed to step S21 in Figure 8B.
[0119] [Sequence of events when a sudden failure occurs] Figure 9 is a flowchart showing Sequence 2 in the event of a sudden failure in the signal processing resource switching system.
[0120] In step S31, the accelerator failure detection unit 110 periodically monitors the status of the accelerator and detects whether a failure has occurred. Specifically, the accelerator failure detection unit 110 detects failures by periodically executing a health check command and checking the results. If the accelerator failure detection unit 110 detects a failure, it notifies the offload destination computing resource determination unit 120 of the "identifier of the failed hardware".
[0121] In step S32, the accelerator fault detection unit 110 determines whether or not a fault has been detected. If no fault has been detected (S32: No), the process returns to step S31.
[0122] If 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 computing resource that is not failing and is available from among the "accelerators 12-1, 12-2 installed in the server, CPU 11, and accelerator (remote) 12 on the remote server" and notifies the function proxy execution unit 111.
[0123] In step S34, the task re-offload instruction unit 170 instructs the function proxy execution unit 111 to re-execute the unfinished calculation tasks of the source computing resource, based on the "identifier of the source computing resource" received from the offload destination computing resource determination unit 120.
[0124] In step S35, the task processing status recording unit 160 receives the task processing status in chronological order from the function proxy execution unit 111 and holds the tasks of incomplete calculations for each computing resource.
[0125] In step S36, the task re-offload instruction unit 170 queries the task processing status recording unit 160 for any incomplete calculation tasks based on the "identifier of the switching destination calculation resource," retrieves the relevant tasks, and terminates this flow.
[0126] [Pre-planned switching (failure prediction) sequence] Figure 10 is a flowchart showing sequence 3 of the pre-intended switching (failure prediction) of the signal processing resource switching system.
[0127] In step S41, the accelerator failure detection unit 110 periodically monitors the temperature status of the accelerators (accelerators 12-1, 12-2, and the remote server's accelerator (remote) 12) and determines whether there is a high probability of failure or malfunction occurring. If the cooling fan fails, the accelerator temperature will rise, and an accelerator failure can be predicted. If the accelerator failure prediction unit 130 predicts a failure, it notifies the task input suppression unit 140 of the identifier of the target accelerator and instructs it to suppress the input of new tasks.
[0128] If the accelerator failure detection unit 110 does not predict a failure in step S42 (S42: No), the process returns to step S41. If a failure is predicted (S42: Yes), in step S43, the offload destination computing resource determination unit 120, upon receiving notification of a sudden failure from the accelerator failure detection unit 110, selects a failover destination accelerator to replace the failed accelerator and sets it in the function proxy execution unit 111. The offload destination computing resource determination unit 120 also updates the status of the accelerator that received the failure notification in the accelerator management table to "Failed".
[0129] In step S44, when the planned shutdown task input suppression unit 140 receives an instruction for intentional switching from the accelerator failure prediction unit 130 or the accelerator maintenance setting unit 150, it notifies the offload destination computing resource determination unit 120 of the identifier of the target accelerator and terminates this flow.
[0130] [Pre-planned switching (sequence of instructions by a human operator)] Figure 11 is a flowchart showing sequence 4 of a pre-intended switching (instructed by a human operator) in a signal processing resource switching system.
[0131] In step S51, the accelerator maintenance setting unit 150, based on the operator's instructions, puts a specific accelerator into a state where it can be disconnected. Specifically, when the accelerator maintenance setting unit 150 receives instructions from the operator, it notifies the task input suppression unit 140 of the identifier of the target accelerator and instructs it to suppress the input of new tasks.
[0132] In step S52, when the offload destination computing resource determination unit 120 receives notification of an intentional switch from the planned shutdown task input suppression unit 140, it 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 notification of the planned switch and an identifier of the accelerator to be switched from the planned shutdown task input suppression unit 140.
[0133] In step S53, the task input suppression unit 140 receives the identifier of the accelerator to be switched over 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 accelerator to be switched over, and terminates this flow.
[0134] [Sequence of selection rules for fault switching targets] Figure 12 is a flowchart showing sequence 5 of the selection rules for the fault switching target. The offload destination computing resource determination unit 120 also refers to the accelerator management table shown in Figure 7.
[0135] In step S61, the offload destination computing resource determination unit 120 updates the field of the failed ACC. For example, based on the host information in the accelerator management table shown in Figure 7, the status of ASIC-1 on Host-3 is set to "failed".
[0136] In step S62, the accelerator failure detection unit 110 detects a failure in the ACC. In the example above, it detects a failure in ASIC-1 of Host-3.
[0137] In step S63, the offload destination computing resource determination unit 120 obtains the performance of the failed ACC. In the example above, the ACC performance of ASIC-1 on Host-3, which is 10.0 Gbps, is obtained.
[0138] In step S64, the offload destination computing resource determination unit 120 selects an available ACC that satisfies the ACC performance requirements. In the example above, FPGA-1 of Host-1 is selected.
[0139] In step S65, the offload destination computing resource determination unit 120 updates the field of the selected ACC and terminates this flow. In the example above, the accelerator management table (Figure 7) is updated to set the status of FPGA-1 on Host-1 to allocated.
[0140] [Sequence for recovery after fault repair] Figure 13 is a flowchart showing the recovery sequence 6 of the signal processing resource switching system after a failure.
[0141] The offload destination computing resource determination unit 120 starts the fault recovery completion process (step S71).
[0142] In step S72, the accelerator maintenance setting unit 150 sets the accelerator selected as the switchover target for maintenance during repair and recovery after a failure occurs, and then distributes the accelerator again, thereby distributing the load from the faulty switchover target to another accelerator.
[0143] In step S73, 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 an available and working computing resource from among the accelerators 12-1, 12-2, and CPU 11 installed on the server 250, and the accelerator 12 on the remote server 260, and notifies the function proxy execution unit 111.
[0144] In step S74, the offload destination computing resource determination unit 120 selects a resource that can be processed from the accelerator management table (Figure 7) of the accelerators to be managed and instructs the function proxy execution unit 111. Here, the performance and accelerator list in the accelerator management table of the accelerators are entered in advance, and the status of each accelerator is updated according to the assignment (step S65 in Figure 12).
[0145] In step S75, when the planned shutdown task input suppression unit 140 receives notification of an intentional switchover from the accelerator failure prediction unit 130 or the accelerator maintenance setting unit 150, it notifies the offload destination computing resource determination unit 120 of the identifier of the accelerator to be switched over and terminates this flow.
[0146] [Hardware configuration] The signal processing resource switching devices 100, 100A, 100C (100, 100C) of the signal processing resource switching system 1000, 1000A, 1000C (100, 100C) according to the above embodiment are implemented by a computer 900 configured as shown in Figure 14, for example. Figure 14 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the signal processing resource switching devices 100-100C. The signal processing resource switching devices 100-100C include a CPU 901, RAM 902, ROM 903, HDD 904, accelerator 905, input / output interface (I / F) 906, media interface (I / F) 907, and communication interface (I / F) 908. Accelerator 905 corresponds to accelerators 12-1 and 12-2 in Figures 1-4.
[0147] Accelerator 905 is an accelerator (device) 12-1, 12-2 (Figures 1 to 4) that processes at high speed data from either the communication interface 908 or the RAM 902. Note that accelerator 905 may be of a type that returns the execution result to the CPU 901 or RAM 902 after processing from the CPU 901 or RAM 902 (look-aside type). Alternatively, accelerator 905 may be of an in-line type that acts as an intermediary between the communication interface 908 and the CPU 901 or RAM 902 to perform processing.
[0148] The accelerator 905 is connected to the external device 915 via the communication interface 908. The input / output interface 906 is connected to the input / output device 916. The media interface 907 reads and writes data to the recording medium 917.
[0149] The CPU 901 operates based on a program stored in the ROM 903 or HDD 904, and controls each part of the signal processing resource switching devices 100 to 100C shown in Figures 1 to 4 by executing the program (also called an application or app) loaded into the RAM 902. This program can also be distributed via a communication line or by recording it on a recording medium 917 such as a CD-ROM. ROM903 stores boot programs executed by CPU901 when the computer 900 starts up, as well as programs that depend on the computer 900's hardware.
[0150] The CPU 901 controls the input / output device 916, which consists of an input unit such as a mouse or keyboard, and an output unit such as a display or printer, via the input / output interface 906. The CPU 901 acquires data from the input / output device 916 via the input / output interface 906 and outputs generated data to the input / output device 916. In addition to the CPU 901, a GPU (Graphics Processing Unit) or the like may also be used as a processor.
[0151] HDD904 stores programs executed by CPU901 and data used by those programs. Communication I / F908 receives data from other devices via a communication network (e.g., NW (Network)) and outputs it to CPU901, and also transmits data generated by CPU901 to other devices via the communication network.
[0152] The media interface 907 reads a 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 program related to the desired processing from the recording medium 917 onto the RAM 902 via the media interface 907 and executes the loaded program. The recording medium 917 can be an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, or a semiconductor memory.
[0153] For example, when computer 900 functions as a server 200 configured as one of the devices according to this embodiment, the CPU 901 of computer 900 realizes the functions of server 200 by executing a program loaded on RAM 902. The HDD 904 stores the data in RAM 902. The CPU 901 reads and executes a program related to the desired processing from the recording medium 917. Alternatively, the CPU 901 may read a program related to the desired processing from another device via a communication network.
[0154] [effect] As described above, the signal processing resource switching device 100~100C (Figures 1~4) has multiple accelerators (accelerators 12-1, 12-2) and switches the destination computing resource when offloading specific processing of an application to an accelerator for computational processing. The device comprises a function proxy execution unit 111 that receives "function name and arguments" from an application (application unit 1) and notifies the application of the function argument data when the function is executed and when it finishes by the computing resource, an accelerator failure detection unit 110 that detects accelerator failures, and an offload destination computing resource determination unit 120 that determines a computing resource that is not faulty and is available. The function proxy execution unit 111 performs offloading to the resource determined by the offload destination computing resource determination unit 120.
[0155] As mentioned above, in computer systems equipped with accelerators, the accelerator itself may fail, and it is necessary to continue calculations in such cases.
[0156] The function proxy execution unit 111 separates the application from the accelerator offload processing, enabling the switching of only the accelerator 12 without modifying the application. Furthermore, the function proxy execution unit 111 allows the offload destination to be switched without making changes to the application. This allows the accelerator to be switched without restarting or migrating the application. Additionally, by automatically switching based on the failure detection result, <Requirement 1: Transparency> is achieved. As a result, when the accelerator becomes unavailable, computation processing can be continued to the maximum extent possible without instructions from the application.
[0157] The signal processing resource switching system 1000~1000C (Figures 1~4) is characterized by comprising: a task processing status recording unit 160 that receives the task processing status in chronological order from the function proxy execution unit 111 and holds incomplete calculation tasks in each computing resource; and a task re-offload instruction unit 170 that instructs the function proxy execution unit 111 to re-execute the incomplete calculation tasks of the source computing resource based on the "identifier of the source computing resource" received from the offload destination computing resource determination unit 120.
[0158] In this way, the task processing status recording unit 160, which manages remaining tasks, records tasks before the accelerator's processing is completed, and the task re-offload instruction unit 170 automatically performs re-offloading in the event of a sudden failure. This makes it possible to achieve both <Requirement 1: Transparency> and <Requirement 2: High availability in the event of a sudden failure>. <Requirement 2: High availability in the event of a sudden failure> is achieved by minimizing the switching time through automatic offload destination switching in conjunction with failure detection and automatic re-entry based on the accelerator task processing status. As a result, automatic processing continuation can be achieved through automatic task re-offloading in the event of an accelerator failure.
[0159] In the signal processing resource switching system 1000~1000C (Figures 1~4), the offload destination computing resource determination unit 120 selects the accelerator that has failed and the failover destination accelerator that will take the place of the accelerator to be switched over, sets them in the function proxy execution unit 111, and notifies the task re-offload instruction unit 170 of the accelerator that has failed and the failover destination accelerator, and instructs the task to be re-submitted.
[0160] By doing so, automatic offload destination switching linked to fault detection and automatic redeployment based on accelerator task processing status can be performed to minimize switching time, thereby achieving <Requirement 2: High availability in the event of a sudden failure>.
[0161] The signal processing resource switching system 1000~1000C (Figures 1~4) is characterized by comprising: an accelerator failure prediction unit 130 that predicts accelerator failures and notifies the accelerator to be switched due to the predicted failure; and a planned shutdown task input suppression unit 140 that, upon receiving notification of an accelerator to be switched from the accelerator failure prediction unit 130, instructs the task re-offload instruction unit 170 to suppress the input of new tasks for the accelerator to be switched.
[0162] In this way, the accelerator failure prediction unit 130 predicts an accelerator failure, and for the accelerator to be disconnected, the planned shutdown task input suppression unit 140 suppresses task input and switches the offload destination to another computing resource. This makes it possible to achieve <Requirement 3: Processing continuation during intentional disconnection>. <Requirement 3: Processing continuation during intentional disconnection> means that computation continues by suppressing task input to the accelerator to be switched and performing the switch after confirming that the task is empty. As a result, it is possible to achieve uninterrupted switching during intentional disconnection by suppressing accelerator task input.
[0163] A signal processing resource switching system 1000~1000C (Figures 1~4) comprises a server 250 and a remote server 260 connected via network 2, wherein the server 250 offloads specific processing of an application (application unit 1) to accelerators (accelerators 12-1, 12-2, accelerator (remote) 12) located on the server 250 or the remote server 260 for computational processing, and a signal processing resource switching device 100~100C (Figures 1~4) is located within or outside the server 250 to switch the computational resources to be offloaded. 4) The signal processing resource switching device 100 includes a function proxy execution unit 111 that receives a "function name and arguments" from an application and notifies the application of the function argument data when the function is executed and when it finishes using the computing resources, an accelerator failure detection unit 110 that detects accelerator failures, and an offload destination computing resource determination unit 120 that determines which computing resources are not faulty and are available, and the function proxy execution unit 111 performs offloading to the resource determined by the offload destination computing resource determination unit 120.
[0164] As a result, in signal processing resource switching systems 1000 to 1000C, which include server 250 and remote server 260 connected via network 2, the offload destination computing resource determination unit 120 selects a computing resource that is not faulty (not faulty) and is available from among the "accelerators 12-1, 12-2 installed in the server, CPU 11, and accelerator (remote) 12 of the remote server," and notifies the function proxy execution unit 111. The function proxy execution unit 111 automatically switches according to the fault detection result, thereby achieving <Requirement 1: Transparency>.
[0165] In particular, conventionally, as shown in Figure 17, after detecting a hardware failure, it was necessary to migrate the application / VM using the affected hardware to another server to continue processing, resulting in the migration or restart of the entire application / VM even though the CPU had not failed. In contrast, in this embodiment, the signal processing resource switching system 1000~1000C (Figures 1~4) can achieve <Requirement 1: Transparency> and <Requirement 2: High Availability in the Event of Sudden Failure>, and when an accelerator becomes unavailable, computational processing can be continued to the maximum extent without instructions from the application.
[0166] Furthermore, among the processes described in the above embodiments and modifications, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified. Furthermore, the components of each illustrated device are functionally conceptual and do not necessarily need to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.
[0167] Furthermore, each of the above configurations, functions, processing units, and processing means may be implemented in hardware, either partially or entirely, by designing them as integrated circuits, for example. Alternatively, each of the above configurations and functions may be implemented in software that allows the processor to interpret and execute programs that implement each function. Information such as programs, tables, and files that implement each function can be stored in memory, a recording device such as a hard disk or SSD (Solid State Drive), or a recording medium such as an IC (Integrated Circuit) card, an SD (Secure Digital) card, or an optical disc. [Explanation of symbols]
[0168] 1. Application Section (Applications) 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 detection unit 111 Function proxy execution unit 120 Offload destination calculation resource determination unit 130 Accelerator failure prediction unit 140 Task input suppression unit for planned shutdown 150 Accelerator Maintenance Settings Section 160 Task Processing Status Recording Unit 170 Task Re-offload Instruction Unit 250 servers (servers) <1> ) 260 Remote server (server) <2> ) 1000, 1000A, 1000B, 1000C Signal Processing Resource Switching System
Claims
1. A signal processing resource switching device having multiple accelerators, which switches the destination computing resource when offloading specific processing of an application to the accelerators for computational processing, A function proxy execution unit that receives the function name and arguments from the application, and notifies the application of the function argument data when the function is executed and when it finishes using computing resources. An accelerator failure detection unit that detects accelerator failures, An offload destination computing resource determination unit determines which computing resources among the aforementioned computing resources are not faulty and are available, The task processing status recording unit receives the task processing status in chronological order from the function proxy execution unit and holds the uncompleted calculation tasks for each computing resource, The system includes a task re-offload instruction unit that, based on the identifier of the source computing resource received from the offload destination computing resource determination unit, instructs the function proxy execution unit to re-execute any incomplete calculation tasks of the source computing resource, The function proxy execution unit performs offloading to the computing resource determined by the offload destination computing resource determination unit. A signal processing resource switching device characterized by the following features.
2. The offload destination computing resource determination unit selects the accelerator that has failed and the failover destination accelerator that will take the place of the accelerator to be switched over, and sets them in the function proxy execution unit, The task re-offload instruction unit is notified of the accelerator that has failed and the failover target accelerator, and is instructed to re-enter the task. The signal processing resource switching device according to feature 1.
3. An accelerator failure prediction unit that predicts accelerator failure and notifies the accelerator to be switched over due to the predicted failure, The system includes a planned shutdown task input suppression unit that, upon receiving notification from the accelerator failure prediction unit regarding an accelerator to be switched over, instructs the task re-offload instruction unit to suppress the input of new tasks for the accelerator to be switched over. The signal processing resource switching device according to feature 2.
4. 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 located on the server or the remote server for computational processing, A signal processing resource switching device is provided either inside or outside the server to switch the computing resources to be offloaded. The signal processing resource switching device is A function proxy execution unit that receives the function name and arguments from the application, and notifies the application of the function argument data when the function is executed and when it finishes using computing resources. An accelerator failure detection unit that detects accelerator failures, An offload destination computing resource determination unit that determines which computing resources are not faulty and are available, The task processing status recording unit receives the task processing status in chronological order from the function proxy execution unit and holds the uncompleted calculation tasks for each computing resource, The system includes a task re-offload instruction unit that, based on the identifier of the source computing resource received from the offload destination computing resource determination unit, instructs the function proxy execution unit to re-execute any incomplete calculation tasks of the source computing resource, The function proxy execution unit performs offloading to the computing resource determined by the offload destination computing resource determination unit. A signal processing resource switching system characterized by the following:
5. A signal processing resource switching method for a signal processing resource switching device having multiple accelerators, which switches the destination computing resource when offloading specific processing of an application to the accelerators for computational processing, The signal processing resource switching device is The steps include receiving a function name and arguments from the application, notifying the application of the function argument data when the function is executed and when it finishes using the computing resources, and offloading the function to the determined computing resources, A step of detecting a failure in the accelerator, The steps include determining which computing resources are available and not experiencing failures among the aforementioned computing resources, The process involves receiving the task processing status in chronological order and maintaining the incomplete computation tasks for each computing resource, Based on the identifier of the received source computing resource, the following steps are performed: instructing the re-execution of any incomplete computation tasks of the source computing resource. A signal processing resource switching method characterized by the following:
6. A signal processing resource switching method for 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 located on the server or the remote server for computational processing, A signal processing resource switching device is provided either inside or outside the server to switch the computing resources to be offloaded. The signal processing resource switching device is The steps include receiving a function name and arguments from the application, notifying the application of the function argument data when the function is executed and when it finishes using the computing resources, and performing offloading to the computing resources determined by the offload destination computing resource determination unit, A step of detecting a failure in the accelerator, The steps include determining which computing resources are not faulty and are available, The process involves receiving the task processing status in chronological order and maintaining the incomplete computation tasks for each computing resource, Based on the identifier of the received source computing resource, the following steps are performed: instructing the re-execution of any incomplete computation tasks of the source computing resource. A signal processing resource switching method characterized by the following:
7. A computer has multiple accelerators, and when offloading specific processing of an application to one of these accelerators for computation, it has a signal processing resource switching device that switches the destination computing resource for the offloaded processing. A function execution proxy procedure that accepts a function name and arguments from an application, notifies the application of the function argument data when the function is executed and when it finishes using computing resources, and offloads the execution to the determined computing resources. Accelerator failure detection procedure for detecting accelerator failures. Offload destination computing resource determination procedure for determining which computing resources among the aforementioned computing resources are not faulty and are available, A task processing status recording procedure that receives the task processing status over time and maintains the record of incomplete computation tasks for each computing resource. A task re-offload instruction procedure that instructs the re-execution of incomplete computation tasks of the source computing resource based on the identifier of the source computing resource that was received. A program to execute.