WO2024013828A1 - 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム - Google Patents

信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム Download PDF

Info

Publication number
WO2024013828A1
WO2024013828A1 PCT/JP2022/027324 JP2022027324W WO2024013828A1 WO 2024013828 A1 WO2024013828 A1 WO 2024013828A1 JP 2022027324 W JP2022027324 W JP 2022027324W WO 2024013828 A1 WO2024013828 A1 WO 2024013828A1
Authority
WO
WIPO (PCT)
Prior art keywords
accelerator
resource
function
signal processing
unit
Prior art date
Application number
PCT/JP2022/027324
Other languages
English (en)
French (fr)
Inventor
奨悟 斎藤
圭 藤本
育生 大谷
廣 名取
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2022/027324 priority Critical patent/WO2024013828A1/ja
Publication of WO2024013828A1 publication Critical patent/WO2024013828A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • 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.
  • ACC Advanced Driver Assistance Function
  • GPU Graphics Processing Unit
  • ASIC Application Specific Integrated Circuit
  • vRAN virtual radio access network
  • FEC Forward Error Correction processing
  • a computer In a computer system, a computer (hereinafter referred to as a server) is equipped with hardware for general-purpose processing (CPU) and hardware specialized for specific calculations (accelerator). A configuration may be adopted in which some calculation processing is offloaded.
  • CPU general-purpose processing
  • accelerator hardware specialized for specific calculations
  • NW networks
  • FIG. 15 is a diagram illustrating a computer system.
  • the server 50 includes a CPU 11 and an accelerator 12-1 on the hardware 10, and an application (hereinafter referred to as APL or application section as appropriate) of the software 20 running on the CPU 11 on the server 50.
  • the accelerator 12 is a calculation accelerator device such as an FPGA (Field Programmable Gate Array)/GPU (Graphics Processing Unit).
  • the accelerator 12 has a certain probability of failure, such as a cooling fan failure.
  • the application 1 calls a standard defined function group (API) and offloads some processing to the accelerator 12. In FIG. 15, there is a case where the accelerator 12 fails alone, and it is necessary to continue the calculation in this case.
  • API standard defined function group
  • the computer system is required to maintain the availability of the application 1 even during periods when the accelerator 12 installed in the server 50 is unavailable due to failure, maintenance, or the like.
  • the availability requirements for Application 1 are as follows. ⁇ Requirement 1: Transparency No modification to the application or installation of dedicated processing is required. Specifically, when a specific accelerator becomes unavailable, there is no need for the application to perform detection/avoidance processing.
  • Availability in the event of a sudden failure Minimize the time it takes for the application to resume calculation processing when a specific accelerator suddenly becomes unavailable.
  • ⁇ Requirement 3 Continuation of calculations during intentional disconnection Calculation processing must not be interrupted (no interruption) when disconnecting (switching) the accelerator 12 planned in advance, such as during maintenance or failure prediction.
  • Non-Patent Document 1 As an existing technology, after detecting a hardware failure, applications and virtual machines (VMs) (hereinafter referred to as applications/VMs) that use the hardware are migrated to the same server (pattern 1) or to other servers. (Pattern 2) There is a technique for continuing the processing (see Non-Patent Document 1).
  • applications/VMs virtual machines
  • FIGS. 16 and 17 are diagrams illustrating the technique of Non-Patent Document 1.
  • FIG. 16 is a diagram explaining pattern 1: restarting an application/VM within the same server
  • FIG. 17 is a diagram explaining pattern 2: launching on another server.
  • Components that are the same as those in FIG. 15 are given the same reference numerals. Note that in FIGS. 16 and 17, devices that have stopped operating are indicated by broken lines.
  • Gap 1 At the time of failure recovery, re-offload processing from the application is required (reference symbol d in FIGS. 16 and 17), and ⁇ Requirement 1: Transparency> is not satisfied.
  • the present invention was made in view of this background, and an object of the present invention is to continue arithmetic processing to the maximum extent possible without instructions from an application when an accelerator becomes unavailable.
  • the present invention provides a signal processing resource switching device that has a plurality of accelerators and switches the offload destination computational resources when offloading specific processing of an application to the accelerators for arithmetic processing.
  • a function proxy execution unit that accepts a function name and arguments from an application and notifies the application of function argument data when the function is executed and terminated by the calculation resource; and an accelerator failure detection unit that detects a failure of the accelerator.
  • an offload destination calculation resource determination unit that determines a non-faulty and available resource among the calculation resources, and the function proxy execution unit selects the resource determined by the offload destination calculation resource determination unit.
  • FIG. 1 is a schematic configuration diagram of a signal processing resource switching system according to an embodiment of the present invention.
  • FIG. 2 is a schematic configuration diagram showing variation 1 of the arrangement of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
  • FIG. 7 is a schematic configuration diagram showing variation 2 of the arrangement of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
  • FIG. 7 is a schematic configuration diagram showing variation 3 of the arrangement of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention. It is a figure showing an example of the data structure of an accelerator (remote) of the signal processing resource switching system concerning an embodiment of the present invention.
  • FIG. 1 is a schematic configuration diagram of a signal processing resource switching system according to an embodiment of the present invention.
  • FIG. 2 is a schematic configuration diagram showing variation 1 of the arrangement of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
  • FIG. 7
  • FIG. 3 is a diagram illustrating an example of a data structure for inter-function exchange of function IDs and argument data of the signal processing resource switching device of the signal processing resource switching system according to the embodiment of the present invention.
  • FIG. 3 is a diagram showing an accelerator management table of an offload destination calculation 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.
  • 3 is a flowchart showing sequence 1 in offloading of the signal processing resource switching system according to the embodiment of the present invention.
  • 3 is a flowchart showing sequence 1 in offloading of the signal processing resource switching system according to the embodiment of the present invention.
  • 3 is a flowchart showing sequence 1 in offloading of the signal processing resource switching system according to the embodiment of the present invention.
  • FIG. 2 is a flowchart showing sequence 2 when a sudden failure occurs in the signal processing resource switching system according to the embodiment of the present invention.
  • 12 is a flowchart showing sequence 3 of switching (failure prediction) intended in advance in the signal processing resource switching system according to the embodiment of the present invention.
  • 12 is a flowchart showing a sequence 4 of instructions intended in advance by a switching operator in the signal processing resource switching system according to an embodiment of the present invention.
  • 12 is a flowchart showing sequence 5 of the selection rule for failure switching targets of the signal processing resource switching system according to the embodiment of the present invention. It is a flowchart which shows the sequence 6 at the time of recovery after failure recovery of the signal processing resource switching system according to the embodiment of the present invention.
  • FIG. 1 is a hardware configuration diagram showing an example of a computer that implements the functions of a signal processing resource switching device of a signal processing resource switching system according to an embodiment of the present invention.
  • FIG. 1 is a diagram illustrating a computer system.
  • FIG. 2 is a diagram illustrating restarting an application/VM within the same server in Non-Patent Document 1.
  • FIG. 3 is a diagram illustrating startup on another server according to Non-Patent Document 1.
  • FIG. 1 is a schematic configuration diagram of a signal processing resource switching system according to an embodiment of the present invention.
  • the signal processing resource switching system 1000 includes a server 250 (server ⁇ 1>) and a server 260 (server ⁇ 2>) connected to the server 250 (server ⁇ 1>) via NW2. , is provided.
  • a server 250 offloads specific processing of an application to an accelerator located in the server 250 or a remote server 260 for calculation processing.
  • the server 250 includes hardware (HW) 10 and software 210.
  • the hardware 10 includes a CPU 11, a plurality of accelerators 12 (accelerator 12-1, accelerator (redundant) 12-2), and NIC 13.
  • the CPU 11 executes the function proxy execution unit 111 (software function) in the server 250.
  • the CPU 11 is one of the calculation resources that perform calculations together with the accelerator 12-1 and the accelerator (redundant) 12-2.
  • the calculation contents that the CPU 11 processes together with the accelerator 12-1, the accelerator (redundant) 12-2, and the accelerator (remote) 12 of the server ⁇ 2> are processed by temporarily using the CPU 11 as a calculation resource in the event of a failure. It may also be in the form of
  • Accelerator 12 is a calculation accelerator device such as FPGA/GPU.
  • the accelerator 12-1 (12) is accelerator hardware that is installed in the server 250 and is specialized for specific calculations, and performs calculations based on instructions from the function proxy execution unit 111.
  • the accelerator (redundant) 12-2 (12) is accelerator hardware (second unit) specialized for specific calculations, and performs calculations based on instructions from the function proxy execution unit 111.
  • the accelerator 12 receives as input the "function name/argument data (in the following description, .” represents “or") to be operated on from the function proxy execution unit 111.
  • the accelerator 12 notifies the function proxy execution unit 111 of the "computation result" as an output.
  • the accelerator may have an internal processing queue of tasks, and may have separate input instructions for operation (enqueue processing) and output instructions for processing results (dequeue instructions).
  • the accelerator 12 has a certain probability of failure, such as a cooling fan failure.
  • the accelerator (redundant) 12-2 (12) may not only be used in the event of a failure, but may also be used in normal times and also serve as a switching destination in the event of a failure.
  • the NIC 13 is NIC hardware that implements a NW interface.
  • the offload destination of the function proxy execution unit 111 is a remote server (server 260)
  • the NIC 13 receives notification of the packet of “function name/argument data” to be offloaded by the function proxy execution unit 111, and sends the packet to the server 260. Notify the NIC (local) 13.
  • the NIC 13 receives the "function name/argument data" to be operated on from the function proxy execution unit 111 as input.
  • the NIC 13 transmits these data to the NIC (local) 13 of the server 260.
  • the NIC 13 notifies the function proxy execution unit 111 of a packet group of "operation results" as an output.
  • the NIC 13 receives these data from the NIC (local) 13 of the server 260.
  • the NIC 13 receives a packet group of "function name/argument data" from the NIC (local) 13 of the server 260 as input.
  • the NIC 13 notifies the function proxy execution unit (remote) 111 of these data.
  • the NIC 13 transmits a group of "calculation results" packets to the NIC (local) 13 of the server 260 as output.
  • the NIC 13 receives notification of these data from the function proxy execution unit (remote) 211.
  • the software 210 includes an application section 1 (application) and a signal processing resource switching device 100.
  • the application section 1 is a program executed in user space.
  • the application section 1 is constructed on the premise of using APIs defined by OpenCL (registered trademark), DPDK BBDev API (registered trademark), etc., and has input/output with these APIs.
  • the application section 1 has a "function name/argument" for the function proxy execution section 111 as an output. As input, a “function execution result” is received from the function proxy execution unit 111.
  • the application unit 1 calls a group of functions (API) defined as a standard, and turns off some processing to the accelerator 12 of the accelerator 12-1, the accelerator (redundant) 12-2, or the accelerator 12 of the server 260 (server ⁇ 2>). Load.
  • API group of functions
  • the signal processing resource switching device 100 includes a function proxy execution unit 111, an accelerator failure detection unit 110, an offload destination calculation resource determination unit 120, an accelerator failure prediction unit 130, a task submission suppression unit for planned suspension 140, and an accelerator failure detection unit 110. It includes a maintenance setting section 150, a task processing status recording section 160, and a task re-offloading instruction section 170.
  • an accelerator failure detection unit 110 an offload destination calculation resource determination unit 120, an accelerator failure 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-off
  • the load instruction section 170 constitutes a controller function section (introduced for explanation in the arrangement examples of FIGS. 2 to 4 described later).
  • a broken line box 101 in FIG. 1 is a functional unit that links function proxy execution and failure detection and performs switching in the event of a failure without modifying the application (described later in Point 1 of the invention).
  • a broken line box 102 in FIG. 1 is a functional unit that suppresses the disconnection period in the event of a sudden failure (described later in Point 2 of the invention).
  • the dashed line box 103 in FIG. 1 is a functional unit that continues calculations at the time of switching that can be predicted in advance (described in Point 3 of the invention below).
  • the function proxy execution unit 111 receives a “function name/argument” from the application, and notifies the application of the function argument data when the function is executed or terminated by the calculation resource, and also informs the application of the function argument data determined by the offload destination calculation resource determination unit 120. Offloading the resource.
  • the function proxy execution unit 111 is realized as middleware having an IF compatible with a predetermined function.
  • the function proxy execution unit 111 has an interface equivalent to a group of prescribed API functions such as OpenCL (registered trademark) and DPDK BBdev API (registered trademark).
  • OpenCL registered trademark
  • DPDK BBdev API registered trademark
  • the function proxy execution unit 111 is prepared as a binary file separate from the application unit 1 (user application) that receives results, and is realized in a "dynamic library format" in which dynamic linking and calling are performed during execution. Note that the function proxy execution unit 111 may be in a “static library format” that is linked to the application unit 1 at the time of program generation and executed as one.
  • the function proxy execution unit 111 At the start of each function offload, the function proxy execution unit 111 notifies the task processing status recording unit 160 (described later) of the function name and arguments in order to identify the task that has started processing. Upon completion of each function offload, the function proxy execution unit 111 notifies the task processing status recording unit 160 of the function name and arguments in order to identify the task that has completed processing.
  • the function proxy execution unit 111 determines that the offload destination set by the offload destination calculation resource determination unit 120 (described later) is local (CPU 11, accelerator 12-1, accelerator (redundant) 12-2, accelerator 12 of server ⁇ 2>). Alternatively, in the case of the CPU 11), calculation instructions are given to each device based on input data.
  • the function proxy execution unit 111 serializes the input data and uses UDP/IP (User Datagram Protocol/Internet Protocol), etc. The packet is divided into packets according to the format and notified to the NIC (remote) 13.
  • the function proxy execution unit 111 receives “function name/argument” from the application unit 1 as input. As an output, the function proxy execution unit 111 notifies the task processing status recording unit 160 (described later) of function argument data at the time of function execution and termination. As an output, the function proxy execution unit 111 notifies the calculation resource of either the CPU 11 accelerator 12-1 or the accelerator (redundant) 12-2 of the "function name/argument" when the offload destination is local. As output, the function proxy execution unit 111 passes "packetized data of function name and argument data" to the NIC (remote) 13 when the offload destination is remote.
  • the accelerator failure detection unit 110 periodically monitors the state of the accelerator and detects whether a failure has occurred. To detect a failure, periodic execution of a normality check command and confirmation of the results are used. When the accelerator failure detection unit 110 detects a failure, it notifies the offload destination calculation resource determination unit 120 of the “identifier of the failed hardware” as an output.
  • Accelerator failure detection methods include active detection methods such as ⁇ confirming normality by periodically executing test offload processing,'' ⁇ monitoring data processing status,'' and ⁇ periodic hardware health checks.'' In addition to ⁇ function execution'', a passive failure detection method ⁇ detection by receiving alerts from accelerator hardware'' may also be used.
  • the offload destination calculation resource determination unit 120 determines a resource that is free from failure (non-failure) and available among the calculation resources.
  • the offload destination calculation resource determining unit 120 selects the failed accelerator and a failover destination accelerator to replace the accelerator to be switched to, sets them in the function proxy execution unit 111, and also sends the task to the task re-offload instruction unit 170. It notifies the accelerator where the failure occurred and the failover destination accelerator, and instructs the task to be resubmitted.
  • the offload destination calculation resource determining unit 120 determines the offload destination calculation resource and notifies the function proxy execution unit 111 of the offload destination calculation resource. Specifically, the offload destination calculation resource determination unit 120 selects a non-faulty and usable calculation resource from among the calculation resources "accelerator mounted on the server, CPU 11, and accelerator on the remote server side", The function proxy execution unit 111 is notified. At startup, the offload destination calculation resource determining unit 120 selects a processable resource from available resources and instructs the function proxy execution unit 111 to select the resource that can be processed.
  • the offload destination calculation resource determination unit 120 When the offload destination calculation resource determination unit 120 receives a notification of the occurrence of a sudden failure from the accelerator failure detection unit 110, the offload destination calculation resource determination unit 120 selects a failover destination accelerator to replace the failed accelerator and sends the selected accelerator to the function proxy execution unit 111. Set. At this time, at the same time, the task re-offload instruction unit 170 is notified of the accelerator in which the failure has occurred and the failover destination accelerator, and is instructed to re-submit the task.
  • the offload destination calculation resource determining unit 120 receives, as input, a failure occurrence notification and the identifier of the accelerator in which the failure has occurred from the accelerator failure detection unit 110.
  • the offload destination calculation resource determination unit 120 sets an offload destination for the function proxy execution unit 111 as an output. As output, the offload destination calculation resource determination unit 120 notifies the task re-offload instruction unit 170 of the accelerator in which the failure has occurred and the failover destination accelerator.
  • the offload destination calculation resource determination unit 120 When the offload destination calculation resource determination unit 120 receives a notification of intentional switching from the planned stop task input suppression unit 140, the offload destination calculation resource determination unit 120 selects a failover destination accelerator to replace the accelerator to be switched, and performs function proxy execution. section 111.
  • the offload destination calculation resource determining unit 120 receives the switching schedule notification and the identifier of the switching target accelerator from the planned suspension task input suppressing unit 140.
  • offload destination calculation resource determination unit 120 may read and set the processing target resource at startup from a configuration file.
  • the accelerator failure prediction unit 130 predicts failure of an accelerator and notifies the switching target accelerator for which failure is predicted.
  • the accelerator failure prediction unit 130 regularly monitors the temperature state of the accelerator and determines whether it is in a state where there is a high possibility that a failure or malfunction will occur. When the accelerator failure prediction unit 130 predicts a failure, the accelerator failure prediction unit 130 notifies the planned shutdown task submission suppression unit 140 of the identifier of the target accelerator, and instructs it to suppress the submission of new tasks.
  • the accelerator failure prediction unit 130 predicts a failure
  • the accelerator failure prediction unit 130 notifies the planned shutdown task submission suppression unit 140 of the “identifier of the failed hardware” as an output.
  • the accelerator failure prediction unit 130 performs methods for predicting accelerator failure by ⁇ running a periodic normality check program'' and ⁇ continuously checking temperature changes of the accelerator card to determine whether the temperature approaches a certain level or higher.'' A method of "detecting" may also be used.
  • ⁇ Task input suppression unit 140 for planned stoppage> When the planned shutdown task submission suppression unit 140 receives notification of the switching target accelerator from the accelerator failure prediction unit 130, it instructs the task re-offloading instruction unit 170 to suppress new task submission for the switching target accelerator.
  • the planned shutdown task input suppression unit 140 When receiving a notification of intentional switching from the accelerator failure prediction unit 130 or the accelerator maintenance setting unit 150, the planned shutdown task input suppression unit 140 sends the identifier of the switching target accelerator to the offload destination calculation resource determination unit 120. Notice. This prevents tasks from being submitted to the target accelerator and creates a state in which there are no tasks in progress, making it possible to disconnect the target accelerator.
  • the planned shutdown 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. As an output, the planned termination task input suppression unit 140 notifies the offload destination calculation resource determination unit 120 of the identifier of the accelerator to be switched, and requests a change in the offload destination.
  • ⁇ About the method of eliminating in-progress tasks in this embodiment, in order to eliminate in-progress tasks on the accelerator to be switched, input of new tasks is suppressed, and the in-progress tasks disappear as time passes. .
  • the planned stop task input suppression unit 140 may instruct the task re-offload instruction unit 170 to re-introduce the task to the switching destination.
  • the planned stop task input suppression unit 140 checks the task processing status in the task processing status recording unit 160, periodically checks whether there are any tasks in progress, and notifies the operator (human). It can also be a form.
  • the accelerator maintenance setting unit 150 has a function of setting a specific accelerator in a detachable state based on instructions from an operator (person). When the accelerator maintenance setting unit 150 receives the above instruction, it notifies the planned shutdown task submission suppression unit 140 of the target accelerator identifier, and instructs the planned shutdown task submission suppression unit 140 to suppress the submission of new tasks.
  • the accelerator maintenance setting unit 150 When the accelerator maintenance setting unit 150 receives the switching according to the above instruction as an output, it notifies the planned shutdown task input suppression unit 140 of the “identifier of the hardware to be switched”.
  • the instruction from the operator may be triggered by an instruction from an external operating system instead of a human.
  • the task processing status recording unit 160 receives the task processing status in time series from the function proxy execution unit 111, and holds uncompleted calculation tasks in each calculation resource.
  • the task processing status recording unit 160 receives the task processing status in time series from the function proxy execution unit 111, and holds uncompleted tasks in each calculation resource.
  • the task processing status recording unit 160 associates the execution start time and completion time of each function based on the input from the function proxy execution unit 111, and manages uncompleted tasks in each calculation resource.
  • the task processing status recording unit 160 receives function argument data from the function proxy execution unit 111 at the start and completion of function execution.
  • the task re-offload instruction unit 170 accepts the "computation resource identifier" as an input, and notifies the information list (function name/argument) of uncompleted tasks of the corresponding computation resource as an output.
  • ⁇ Task re-offload instruction unit 170> The task re-offload instruction unit 170 re-executes the uncompleted calculation task of the switching source computing resource based on the “identifier of the switching source computing resource” received from the offloading destination computing resource determining unit 120, by performing function proxy execution. 111.
  • the task re-offload instruction unit 170 inquires and acquires uncompleted tasks from the task processing status recording unit 160 based on the "identifier of the switching destination calculation resource.”
  • the task re-offload instruction unit 170 receives as input the “identifier of the switching source computing resource” and the “identifier of the switching destination computing resource” from the offload destination computing resource determining unit 120. As an output, the task re-offload instruction unit 170 instructs the function proxy execution unit 111 to re-execute the uncompleted calculation task in order to re-execute the offload on the switching destination calculation resource.
  • the server 260 (server ⁇ 2>) (remote server) includes hardware (HW) 10 and software 210.
  • the hardware 10 includes a CPU (remote) 11, an accelerator (remote) 12, and a NIC (local) 13.
  • the CPU (remote) 11 executes the function proxy execution unit 211 (software function) in the server 260.
  • the CPU (remote) 11 is one of the calculation resources along with the accelerator (remote) 12.
  • the CPU (remote) 11 temporarily uses the CPU 11 as a calculation resource in the event of a failure. It may be used or processed.
  • Accelerator (remote) 12 is a computational accelerator device such as an FPGA/GPU.
  • the accelerator (remote) 12 is accelerator hardware that is installed in the server 260 and is specialized for specific calculations, and performs calculations based on instructions from the function proxy execution unit 211.
  • the accelerator (remote) 12 receives the "function name/argument data" to be computed from the function proxy execution unit 211 as input.
  • the accelerator (remote) 12 notifies the function proxy execution unit 211 of the "computation result" as an output.
  • NIC (local) 13 receives the "function name/argument data" transmitted from the server 250 and inputs the packet group of "function name/argument data" to the function proxy execution unit (remote) 211.
  • the NIC (local) 13 receives a group of packets containing “calculation results” from the function proxy execution unit (remote) 211 and responds to the server 250 .
  • the software 210 includes a function proxy execution unit 211 .
  • the function proxy execution unit 211 performs calculation offload to the accelerator (remote) 12 based on the packet group of "function name/argument data" received from the NIC (local) 13. Further, the function proxy execution unit 211 packetizes the calculation result and transmits it to the NIC (local) 13.
  • the function proxy execution unit 211 receives a packet of "function name/argument data" from the NIC (local) 13 as input.
  • the function proxy execution unit 211 notifies the NIC (local) 13 of the packet data of the "operation result” as an output.
  • the function proxy execution unit 211 passes "function name/argument data" as output to the accelerator (remote) 12, and accepts the calculation result as input.
  • the signal processing resource switching system 1000 in FIG. 1 is an example in which the signal processing resource switching device 100 is arranged in the software 210 of the server 250.
  • the controller function section of the signal processing resource switching device can also be installed in a separate housing outside the server 250, and will be exemplified below.
  • FIG. 2 is a schematic configuration diagram showing variation 1 of the arrangement of the signal processing resource switching device of the signal processing resource switching system.
  • the same components as those in FIG. Variation 1 is an example in which the entire controller function section is housed in a separate housing.
  • the signal processing resource switching system 1000A includes a server 250 (server ⁇ 1>), a signal processing resource switching device 100A installed in a separate housing outside the server 250 (server ⁇ 1>), It includes a server 250 (server ⁇ 1>) and a server 260 (server ⁇ 2>) connected via NW2.
  • the software 200A of the server 250 includes an application section 1 and a function proxy execution section 111.
  • the signal processing resource switching device 100A has a controller function section installed outside the server 250, and has the same functions as the signal processing resource switching device 100 in FIG.
  • FIG. 3 is a schematic configuration diagram showing variation 2 of the arrangement of the signal processing resource switching device of the signal processing resource switching system. Variation 2 is an example in which the failure detection related function of the controller function unit is placed on the calculation server side.
  • the signal processing resource switching system 1000B includes a server 250 (server ⁇ 1>), a signal processing resource switching device 100B installed in a separate housing outside the server 250 (server ⁇ 1>), It includes a server 250 (server ⁇ 1>) and a server 260 (server ⁇ 2>) connected via NW2.
  • the software 200B of the server 250 includes an application section 1, a function proxy execution section 111, and an accelerator failure detection section 110.
  • the signal processing resource switching device 100B is installed outside the server 250, and has a configuration in which the accelerator failure detection unit 110 is removed from the signal processing resource switching device 100 in FIG.
  • FIG. 4 is a schematic configuration diagram showing variation 3 of the arrangement of the signal processing resource switching device of the signal processing resource switching system. Variation 3 is an example in which among the controller functions, failure detection and task re-offloading functions are provided on the calculation server side.
  • the signal processing resource switching system 1000C includes a server 250 (server ⁇ 1>), a signal processing resource switching device 100C installed in a separate housing outside the server 250 (server ⁇ 1>), It includes a server 250 (server ⁇ 1>) and a server 260 (server ⁇ 2>) connected via NW2.
  • the software 200C of the server 250 includes an application section 1, a function proxy execution section 111, an accelerator failure detection section 110, a task processing status recording section 160, and a task re-offload instruction section 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, the task processing status recording unit 160, and the task re-offloading instruction unit 170 are removed from the signal processing resource switching device 100 in FIG. be.
  • FIG. 5 is a diagram showing an example of the data structure of the accelerator (remote) 12.
  • the data structure of the accelerator (remote) 12 consists of an L2 frame, a function ID, a final data bit, argument 1, and argument 2.
  • FIG. 6 is a diagram showing an example of a data structure for exchanging function IDs and argument data between functions.
  • the data structure for exchanging function IDs and argument data between functions consists of a function ID, final data bit, argument 1, and argument 2, similar to the data structure shown in FIG.
  • the data formats of the NIC 13, the NIC 13 of the server 260, and the accelerator 12 are made common, and the data on the memory that is distributed and received as a packet is transferred to the accelerator 12 as is. For this reason, we aim to standardize the data structure.
  • the data structure created by the function proxy execution unit 211 is an accelerator function/argument data packet as shown in FIGS. 5 and 6.
  • FIG. 7 is a diagram illustrating an example of an accelerator management table of the offload destination calculation resource determination unit 120.
  • This accelerator management table is referred to in the pre-intended switching (failure prediction) flow shown in FIG.
  • the accelerator management table of the offload destination calculation resource determination unit 120 includes installed host information, accelerator identifier, ACC performance (throughput), and accelerator status.
  • the offload destination calculation resource determination unit 120 refers to the management table shown in FIG. 7 and determines the offload destination calculation resource. For example, "Host-1(192.168.0.1)" (installed host information) has an accelerator identifier "FPGA-1", an ACC performance (throughput) of "10.0 Gbps", and "Available”.
  • Host-2 (192.168.0.2) (installed host information) has an accelerator identifier "CPU-1”, an ACC performance (throughput) of "2.0 Gbps”, and “allocated” (unavailable).
  • Host-3 (192.168.0.3) (installed host information) has an accelerator identifier "ASIC-1”, an ACC performance (throughput) of "10.0 Gbps", and is "out of order” (unavailable).
  • a function proxy execution unit 111 separates an application and an accelerator offload process, and realizes switching of only an accelerator 12 without modifying the application.
  • ⁇ Requirement 2 High availability in the event of sudden failure> Minimize the switching time by automatically switching offload destinations in conjunction with failure detection and automatically reloading based on the accelerator task processing status.
  • ⁇ Requirement 3 Continuation of processing upon intentional disconnection> To continue calculation by suppressing the input of tasks to the switching target accelerator and switching after confirming that the task is empty. Furthermore, the device configuration of this embodiment does not require full duplication and has high equipment efficiency.
  • Point 1 of the invention Cooperation between function proxy execution and failure detection, switching in the event of a failure without modifying the application (function section 101 surrounded by a broken line in Fig. 1)
  • the function proxy execution unit 111 makes it possible to switch the offload destination without making any changes to the application. This allows you to switch accelerators without restarting or migrating the application. Furthermore, by automatically switching according to the failure detection results, ⁇ Requirement 1: Transparency> is achieved.
  • Point 2 of the invention Suppression of the disconnection period in the event of a sudden failure (function section 102 surrounded by a broken line in FIG. 1) Achieve automatic processing continuation by automatic task re-offloading in the event of an accelerator failure.
  • the task processing status recording unit 160 that manages remaining tasks records tasks that have not yet been processed by the accelerator, 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 sudden failure>.
  • Point 3 of the invention Continuation of calculation during switching that can be predicted in advance (function section 103 surrounded by a broken line in FIG. 1)
  • the accelerator failure prediction unit 130 predicts the failure of an accelerator, and for the accelerator to be separated, the planned shutdown task submission suppression unit 140 suppresses task submission and transfers the offload destination to another computing resource. Switch to This achieves ⁇ Requirement 3: Processing continuation upon intentional disconnection>.
  • the signal processing resource switching system operates according to any of the signal processing resource switching system 1000 in FIG. 1, the signal processing resource switching system 1000A in FIG. 2, the signal processing resource switching system 1000B in FIG. 3, and the signal processing resource switching system 1000C in FIG. The same applies to That is, in the signal processing resource switching system, there is no difference in operation depending on the location of the signal processing resource switching device.
  • [Sequence in off-road] 8A-C are flowcharts illustrating sequence 1 in offloading the signal processing resource switching system. This flow basically shows the processing of the server 250 (server ⁇ 1>), and partially shows the processing (S16-S19 in FIG. 8A) of the server 260 (server ⁇ 2>).
  • the application unit 1 makes an API call and outputs a "function/argument".
  • step S12 the function proxy execution unit 111 offloads calculations to the accelerator using a predetermined function group with standardized function names and argument formats.
  • step S13 the task processing status recording unit 160 receives the task processing status in time series from the function proxy execution unit 111, and holds uncompleted tasks in each calculation resource.
  • step S14 the offload destination calculation resource determining unit 120 determines whether the set offload destination is a remote server.
  • step S15 the NIC 13 performs function proxy execution when the offload destination of the function proxy execution unit 111 is the remote server 260 (server ⁇ 2>).
  • the notification of the "function name/argument data" packet offloaded by the unit 111 is received, and the notification is sent to the NIC 13 of the remote server 260 (server ⁇ 2>).
  • step S16 the NIC 13 of the remote server 260 (server ⁇ 2>) receives the "function name/argument data" sent from the server ⁇ 1>, and sends the "function name/argument data" to the function proxy execution unit 111. Enter the packet group.
  • step S17 the function proxy execution unit 111 of the remote side server 260 (server ⁇ 2>) uses the accelerator (remote) 12 based on the packet group of "function name/argument data" received from the NIC (local) 13. Perform computation offload to.
  • step S18 the accelerator (remote) 12 of the remote server 260 (server ⁇ 2>) performs calculations based on instructions from the function proxy execution unit 211.
  • step S19 the NIC (local) 13 transmits a group of "calculation result" packets to the NIC 13 of the server 250 (server ⁇ 1>).
  • steps after step S20 are the processes of the server 250 (server ⁇ 1>).
  • the NIC 13 of the server 250 (server ⁇ 1>) notifies the function proxy execution unit 111 of the "computation result" packet group, and proceeds to step S21 of FIG. 8B. Note that the process also proceeds to step S21 after the processes of step S25, step S27, and step S28 in FIG. 8C, which will be described later.
  • step S21 of FIG. 8B 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 at the time of function execution/end, in order to identify the task that has completed processing. send.
  • step S22 the task processing status recording unit 160 associates the execution start time and completion time of each function based on the input from the function proxy execution unit 111, and manages uncompleted tasks in each calculation resource. .
  • 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.
  • step S14 If the offload destination set in the above step S14 is not a remote server (S14: No), the offload destination calculation resource determining unit 120 in step S24 of FIG. 1 (accelerator ⁇ 1>).
  • the accelerator 12-1 receives the "function name/argument data" to be computed from the function proxy execution unit 111 in step S25. , and the process proceeds to step S21 in FIG. 8B.
  • the offload destination calculation resource determining unit 120 determines that the set offload destination is the accelerator (redundant) 12 in the server in step S26. -2 (accelerator ⁇ 2>) is determined.
  • the accelerator 12-2 receives the "function name/argument data" to be computed from the function proxy execution unit 111 in step S27. , and the process proceeds to step S21 in FIG. 8B.
  • the CPU 11 executes the software function in the server ⁇ 1> in step S28, and proceeds to step S21 in FIG. 8B.
  • FIG. 9 is a flowchart showing sequence 2 when a sudden failure occurs in the signal processing resource switching system.
  • step S31 the accelerator failure detection unit 110 periodically monitors the state of the accelerator and detects whether a failure has occurred. Specifically, the accelerator failure detection unit 110 detects a failure by periodically executing a normality check command and checking the result. Further, when the accelerator failure detection unit 110 detects a failure, it notifies the offload destination calculation resource determination unit 120 of the “identifier of the failed hardware”.
  • step S32 the accelerator failure detection unit 110 determines whether or not a failure has been detected, and if no failure has been detected (S32: No), the process returns to step S31.
  • the offload destination calculation resource determining unit 120 determines the offload destination calculation resource and notifies the function proxy execution unit 111 in step S33. Specifically, the offload destination calculation resource determining unit 120 determines whether any of the calculation resources "accelerators 12-1 and 12-2 installed in the server, CPU 11, and accelerator (remote) 12 of the remote server" has failed. If not, select an available one and notify it to the function proxy execution unit 111.
  • step S ⁇ b>34 the task re-offload instruction unit 170 re-executes the incomplete calculation task of the switching source calculation resource based on the “identifier of the switching source calculation resource” received from the offload destination calculation resource determination unit 120 .
  • the function proxy execution unit 111 is instructed.
  • step S35 the task processing status recording unit 160 receives the task processing status in time series from the function proxy execution unit 111, and holds the tasks of uncompleted operations in each calculation resource.
  • step S36 the task re-offload instruction unit 170 inquires about the incomplete calculation task from the task processing status recording unit 160 based on the "identifier of the switching destination calculation resource", obtains the corresponding task, and ends this flow. do.
  • FIG. 10 is a flowchart showing sequence 3 of switching (failure prediction) intended in advance in the signal processing resource switching system.
  • step S41 the accelerator failure detection unit 110 periodically monitors the temperature status of the accelerators (accelerators 12-1, 12-2, accelerator (remote) 12 of the remote server) to detect the possibility of failure or malfunction. Determine whether the condition is high. Accelerator failure can be predicted when the temperature of the accelerator increases, such as when the cooling fan fails.
  • the accelerator failure prediction unit 130 predicts a failure, the accelerator failure prediction unit 130 notifies the planned stop task submission suppression unit 140 of the identifier of the target accelerator, and instructs it to suppress the submission of new tasks.
  • step S42 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 calculation resource determining unit 120 replaces the accelerator in which the failure has occurred upon receiving notification of the occurrence of a sudden failure from the accelerator failure detection unit 110. , selects a failover destination accelerator and sets it in the function proxy execution unit 111. In addition, the offload destination calculation resource determining unit 120 updates the state of the accelerator that has received the failure notification to "in failure" in the accelerator management table.
  • step S44 when receiving an instruction for intentional switching from the accelerator failure prediction unit 130 or the accelerator maintenance setting unit 150, the planned shutdown task input suppression unit 140 sends the offload destination calculation resource determination unit 120 to the target accelerator. Notify the identifier and end this flow.
  • FIG. 11 is a flowchart showing sequence 4 of instructions by a human (operator) for switching intended in advance in the signal processing resource switching system.
  • step S51 the accelerator maintenance setting unit 150 puts a specific accelerator in a detachable state based on the operator's instructions. Specifically, when receiving an instruction from an operator, the accelerator maintenance setting unit 150 notifies the scheduled stoppage task submission suppression unit 140 of the target accelerator identifier, and instructs the planned shutdown task submission suppression unit 140 to suppress submission of new tasks.
  • step S52 the offload destination calculation resource determining unit 120 selects a failover destination accelerator to replace the accelerator to be switched, when receiving a notification of intentional switching from the planned stop task input suppression unit 140, and selects a failover destination accelerator to replace the accelerator to be switched, and Set in the execution unit 111. Specifically, the offload destination calculation resource determination unit 120 receives the switching schedule notification and the identifier of the switching target accelerator from the planned suspension task input suppression unit 140.
  • step S53 the planned shutdown task input suppression unit 140 receives the identifier of the accelerator to be switched from the accelerator failure prediction unit 130 and the accelerator maintenance setting unit 150, and notifies the offload destination calculation resource determination unit 120 of the identifier of the accelerator to be switched. to end this flow.
  • FIG. 12 is a flowchart showing sequence 5 of the failure switching target selection rule. Further, the offload destination calculation resource determining unit 120 refers to the accelerator management table shown in FIG. 7 .
  • step S61 the offload destination calculation resource determining unit 120 updates the field of the failed ACC. For example, based on the installed host information in the accelerator management table shown in FIG. 7, the status of ASIC-1 of Host-3 is set to "out of order.”
  • step S62 the accelerator failure detection unit 110 detects a failure of the ACC.
  • a failure in ASIC-1 of Host-3 is detected.
  • step S63 the offload destination calculation resource determining unit 120 obtains the performance of the failed ACC.
  • the ACC performance of ASIC-1 of Host-3 is 10.0 Gbps.
  • step S64 the offload destination calculation resource determining unit 120 selects an ACC that is available and satisfies the ACC performance.
  • FPGA-1 of Host-1 is selected.
  • step S65 the offload destination calculation resource determining unit 120 updates the field of the selected ACC and ends this flow.
  • the accelerator management table (FIG. 7) is updated so that the status of FPGA-1 of Host-1 becomes allocated.
  • FIG. 13 is a flowchart showing sequence 6 at the time of recovery after failure recovery of the signal processing resource switching system.
  • the offload destination calculation resource determining unit 120 starts failure recovery completion processing (step S71).
  • step S72 the accelerator maintenance setting unit 150 sets the accelerator selected as the switching destination as a maintenance target at the time of repair/recovery after a failure occurs, and issues the accelerator again, thereby distributing the accelerator from the failure switching destination to another accelerator. do.
  • the offload destination calculation resource determining unit 120 determines the offload destination calculation resource and notifies the function proxy execution unit 111. Specifically, the offload destination calculation resource determining unit 120 determines which of the accelerators 12-1 and 12-2 installed in the server 250, the CPU 11, and the accelerator 12 of the remote server 260, which are calculation resources, is out of order. First, it selects an available one and notifies it to the function proxy execution unit 111.
  • step S74 the offload destination calculation resource determination unit 120 selects a processable resource from the accelerator management table (FIG. 7) of the managed accelerator, and instructs the function proxy execution unit 111 to select a processable resource.
  • the accelerator management table of accelerators the performance and accelerator lists are entered in advance, and the status of each accelerator is updated according to the allocation (step S65 in FIG. 12).
  • step S75 when receiving a notification of intentional switching from the accelerator failure prediction unit 130 or the accelerator maintenance setting unit 150, the planned shutdown task input suppression unit 140 selects the offload destination calculation resource determination unit 120 to select the switching target accelerator. This flow ends by notifying the identifier.
  • the signal processing resource switching device 100, 100A to 100C (100 to 100C) of the signal processing resource switching system 1000, 1000A to 1000C (1000 to 1000C) according to the above embodiment is operated by a computer 900 having a configuration as shown in FIG. 14, for example.
  • FIG. 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 to 100C.
  • the signal processing resource switching devices 100 to 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 FIGS. 1 to 4.
  • the accelerator 905 is an accelerator (device) 12-1, 12-2 (FIGS. 1 to 4) that processes at least one of data from the communication I/F 908 and data from the RAM 902 at high speed.
  • the accelerator 905 may be of a type (look-aside type) that returns the execution result to the CPU 901 or RAM 902 after executing processing from the CPU 901 or RAM 902.
  • a type (in-line type) that is inserted between the communication I/F 908 and the CPU 901 or the RAM 902 and performs processing may be used.
  • 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 the input/output device 916.
  • the media I/F 907 reads and writes data from the recording medium 917.
  • the CPU 901 operates based on a program stored in the ROM 903 or HDD 904, and performs the signal processing resource switching shown in FIGS. Controls each part of the devices 100 to 100C.
  • This program can also be distributed via a communication line or recorded on a recording medium 917 such as a CD-ROM.
  • the ROM 903 stores a boot program executed by the CPU 901 when the computer 900 is started, programs depending on the hardware of the computer 900, and the like.
  • the CPU 901 controls an input/output device 916 including 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 acquires data from the input/output device 916 via the input/output I/F 906 and outputs generated data to the input/output device 916.
  • a GPU Graphics Processing Unit
  • GPU Graphics Processing Unit
  • the HDD 904 stores programs executed by the CPU 901 and data used by the programs.
  • the communication I/F 908 receives data from other devices via a communication network (for example, NW (Network)) and outputs it to the CPU 901, and also outputs data generated by the CPU 901 to other devices via the communication network. Send to.
  • NW Network
  • 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 a program related to target processing from the recording medium 917 onto 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 (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. It is.
  • the CPU 901 of the computer 900 realizes the functions of the server 200 by executing a program loaded onto the RAM 902. Furthermore, data in the RAM 902 is stored in the HDD 904 .
  • the CPU 901 reads a program related to target processing from the recording medium 917 and executes it. In addition, the CPU 901 may read a program related to target processing from another device via a communication network.
  • the resource switching devices 100 to 100C (FIGS. 1 to 4) accept "function names and arguments" from an application (application section 1), and transmit function argument data to the application when the function is executed or terminated by the calculation resource.
  • a function proxy execution unit 111 that notifies, an accelerator failure detection unit 110 that detects an accelerator failure, and an offload destination calculation resource determination unit 120 that determines non-faulty and available resources among calculation resources.
  • the function proxy execution unit 111 is characterized in that it offloads the resource determined by the offload destination calculation resource determination unit 120.
  • the accelerator may fail by itself, and it is necessary to continue calculation in this case.
  • the function proxy execution unit 111 separates the application and accelerator offload processing, and realizes switching of only the accelerator 12 without modifying the application. Furthermore, the function proxy execution unit 111 can switch the offload destination without making any changes to the application. This allows you to switch accelerators without restarting or migrating the application. Furthermore, by automatically switching according to the failure detection results, ⁇ Requirement 1: Transparency> is achieved. As a result, when the accelerator becomes unavailable, calculation processing can be continued to the maximum extent possible without instructions from the application.
  • a task processing status recording unit receives the task processing status in time series from the function proxy execution unit 111 and holds uncompleted calculation tasks in each calculation resource. 160 and the “identifier of the switching source computing resource” received from the offload destination computing resource determining unit 120 A re-offload instruction section 170 is provided.
  • the task processing status recording unit 160 that manages remaining tasks records tasks that have not yet been processed by the accelerator, and the task re-offload instruction unit 170 automatically performs re-offloading in the event of a sudden failure.
  • ⁇ Requirement 2: High availability in the event of sudden failure> is to minimize the switching time through automatic offload destination switching in conjunction with failure detection and automatic reloading based on the accelerator task processing status. It is. As a result, it is possible to realize automatic processing continuation by automatic task re-offloading when an accelerator fails.
  • the offload destination calculation resource determining unit 120 selects an accelerator in which a failure has occurred and a failover destination accelerator to replace the accelerator to be switched, and It is characterized in that it is set in the proxy execution unit 111, and also notifies the task re-offload instructing unit 170 of the accelerator in which the failure has occurred and the failover destination accelerator, and instructs the task re-input.
  • an accelerator failure prediction unit 130 that predicts a failure in an accelerator and notifies the switching target accelerator for which the failure has been predicted;
  • the system is characterized by comprising a planned stop task submission suppressing unit 140 that instructs the task re-offloading instruction unit 170 to suppress new task submission for the switching target accelerator when the notification is received.
  • the accelerator failure prediction unit 130 predicts a failure of an accelerator, and for the accelerator to be separated, the planned stoppage task submission suppression unit 140 suppresses task submission and transfers the offload destination to another. Switch to compute resources.
  • ⁇ Requirement 3 Continuation of processing upon intentional separation> can be achieved.
  • ⁇ Requirement 3 Processing continuation upon intentional separation> is to suppress the input of tasks to the switching target accelerator, and to continue calculation by switching after confirming that the task is empty. be. As a result, by suppressing the input of accelerator tasks, it is possible to realize instantaneous uninterrupted switching at the time of intentional disconnection.
  • the server 250 includes a server 250 and a remote server 260 connected via the network 2.
  • a signal processing resource switching system 1000 to 1000C (FIGS. 1 to 4) that performs arithmetic processing by offloading to an accelerator (remote) 12), which Signal processing resource switching devices 100 to 100C (FIGS. 1 to 4) are provided to switch the load destination computational resources, and the signal processing resource switching device 100 accepts "function name/argument" from the application, and when the function is executed by the computational resources.
  • the function proxy execution unit 111 notifies the application of function argument data
  • the accelerator failure detection unit 110 detects accelerator failure, and determines non-faulty and available resources among the calculation resources.
  • the function proxy execution unit 111 is characterized in that it offloads the resource determined by the offload destination calculation resource determination unit 120.
  • the offload destination calculation resource determination unit 120 Among the installed accelerators 12-1, 12-2, CPU 11, and accelerator (remote) 12 of the remote server, select one that is not malfunctioning and available, and executes the function proxy execution unit 111. Notify.
  • the function proxy execution unit 111 achieves ⁇ Requirement 1: Transparency> by automatically switching according to the failure detection result.
  • each of the above-mentioned configurations, functions, processing units, processing means, etc. may be partially or entirely realized by hardware, for example, by designing an integrated circuit.
  • each of the above-mentioned configurations, functions, etc. may be realized by software for a processor to interpret and execute a program for realizing each function.
  • Information such as programs, tables, files, etc. that realize each function is stored in memory, storage devices such as hard disks, SSDs (Solid State Drives), IC (Integrated Circuit) cards, SD (Secure Digital) cards, optical disks, etc. It can be held on a recording medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

信号処理リソース切替装置(100)は、アプリケーション部(1)から「関数名・引数」を受け付け、計算リソースによる関数実行時・終了時に、アプリケーションに関数の引数データを通知する関数代理実行部(111)と、アクセラレータの故障を検知するアクセラレータ故障検知部(110)と、計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定部(120)と、を備え、関数代理実行部(111)は、オフロード先計算リソース決定部(120)が決定したリソースに対してオフロードを行う。

Description

信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム
 本発明は、信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラムに関する。
 プロセッサの種別に応じて、得意(処理能力が高い)とするワークロードが異なる。汎用性の高いCPU(Central Processing Unit)に対し、CPUが苦手(処理能力が低い)とする並列度の高いワークロードを、高速かつ高効率に演算可能なFPGA(Field Programmable Gate Array)/(以下の説明において、「/」は「または」を表記する)GPU(Graphics Processing Unit)/ASIC(Application Specific Integrated Circuit)等のアクセラレータ(以下、適宜ACCという)がある。これらの異種プロセッサを組み合わせ、CPUの苦手とするワークロードをACCへオフロードして演算することで、総合的な演算時間や演算効率を向上させるオフロード技術の活用が進んでいる。
 vRAN(virtual Radio Access Network)等ではCPUのみでは性能が足りず要件を満たせない場合に、FPGAやGPUなどの高速演算可能なアクセラレータに一部の処理をオフロードすることが行われている。
 ACCオフロードが行われる具体的ワークロードとしては、vRANにおける符号化/復号化処理(FEC:Forward Error Correction処理)、音声や映像のメディア処理、暗号化/復号化処理等が代表例として挙げられる。
 計算機システムにおいて、計算機(以下、サーバ)上に、汎用処理に対応したハードウェア(CPU)と特定の演算に特化したハードウェア(アクセラレータ)を搭載し、ソフトウェアの動作する汎用プロセッサからアクセラレータに対し一部の演算処理をオフロードする構成をとることがある。
 また、クラウドコンピューティングの進展に伴い、ユーザサイトに配備されたクライアントマシンから、ネットワーク(以下、NWという)を介して遠隔サイト(ユーザ近傍に位置するデータセンタなど)のサーバに対し、一部の演算量の大きな処理をオフロードすることで、クライアントマシンを単純な構成とすることが広まりつつある。
 図15は、計算機システムを説明する図である。
 図15に示すように、サーバ50は、ハードウェア10上にCPU11と、アクセラレータ12-1とを搭載し、サーバ50上のCPU11上で動作するソフトウェア20のアプリケーション(以下、適宜APL、またはアプリケーション部という)1を備える。
 アクセラレータ12は、FPGA(Field Programmable Gate Array)/GPU(Graphics Processing Unit)等の計算アクセラレータデバイスである。
 アクセラレータ12は、冷却用Fan故障など、一定の確率で故障が発生する。
 アプリケーション1は、標準として規定された関数群(API)を呼び出し、アクセラレータ12への一部処理のオフロードを行う。
 図15では、アクセラレータ12が単体で故障する場合があり、このときの計算の継続が必要となる。
 計算機システムは、サーバ50に搭載されたアクセラレータ12が、故障・メンテナンスなどにより利用できない期間にも、アプリケーション1の可用性を保つことが求められる。アプリケーション1の可用性の要件は、下記である。
・要件1:透過性
 アプリケーションへの改造や専用処理の搭載が不要なこと。具体的には、特定のアクセラレータが利用不可となった際に、アプリケーションにおける検知・回避の処理が不要であること。
・要件2:突発故障時の可用性
 特定アクセラレータが突発的に利用不可となった際に、アプリケーションが演算処理を再開するまでの時間を最小化すること。
・要件3:意図的な切離時の演算継続
 メンテナンスや故障予知時等、事前に計画されたアクセラレータ12の切り離し(切替)において、演算処理が中断されないこと(無瞬断)。
"open stackガイド", [online],[令和4年6月6日検索],インターネット 〈 URL : http://openstack-ja.github.io/openstack-manuals/openstack-ops/content/maintenance.html〉
 既存技術として、ハードウェアの故障を検知したのちに、該当のハードウェアを利用するアプリケーションや仮想マシン(VM)(以下、アプリケーション/VMという)を、同一サーバ(パターン1)か、他サーバにマイグレーション(パターン2)させ、処理を継続する技術がある(非特許文献1参照)。
 図16および図17は、非特許文献1の技術を説明する図である。図16は、パターン1:同一サーバ内でのアプリケーション/VM再立ち上げを説明する図であり、図17は、パターン2:別サーバでの立ち上げを説明する図である。図15と同一構成部分には、同一符号を付している。なお、図16および図17において、動作停止のデバイスは、破線で表記している。
 図16に示すように、同一サーバ50内でアクセラレータ12-1に故障が発生した場合(図16の符号a)、例えばオペレータがハードウェアの故障を検知したのちに(図16の符号b)、オペレータからの指示により同一サーバ内でのアプリケーション/VM再立ち上げを行う(図16の符号c)。再立ち上げされたアプリケーション/VM1-2は、アクセラレータ(冗長)12-2にタスク再オフロードを行う(図16の符号d)。
 図17に示すように、別サーバでの立ち上げの場合、例えばオペレータが別サーバ60でのアプリケーションと仮想マシンのマイグレーションを行う(図17の符号c)。再立ち上げされたアプリケーション/VM1-2は、アクセラレータ(冗長)12-2にタスク再オフロードを行う(図17の符号d)。
 しかしながら、上記パターン1:同一サーバ内でのアプリケーション/VM再立ち上げ、およびパターン2:別サーバでの立ち上げのいずれにおいても、CPU11が故障していないにも関わらず、アプリケーション/VM全体を移行もしくは再起動しており、下記3つのギャップがある。
(1)ギャップ1
 故障復旧時にはアプリケーションからの再オフロード処理が必要であり(図16および図17の符号d)、<要件1:透過性>を満たさない。
(2)ギャップ2
 突発故障時には、アプリケーション再立ち上げやマイグレーション処理中に演算が停止し(図16および図17の符号c)、<要件2:突発故障時の可用性>を満たさない。
(3)ギャップ3
 事前に計画された切替でも、アプリケーションの移行(図16および図17の符号c)、および再オフロード処理中に演算が停止し(図16および図17の符号d)<要件3:意図的な切離時の演算継続>を満たさない。
 このような背景を鑑みて本発明がなされたのであり、本発明は、アクセラレータが利用不可となる際に、アプリケーションからの指示なく、演算処理を最大限継続させることを課題とする。
 前記した課題を解決するため、本発明は、複数のアクセラレータを有し、アプリケーションの特定処理を前記アクセラレータにオフロードして演算処理する際に、オフロード先の計算リソースを切替える信号処理リソース切替装置であって、アプリケーションから関数名および引数を受け付け、計算リソースによる関数実行時および終了時に、アプリケーションに関数の引数データを通知する関数代理実行部と、アクセラレータの故障を検知するアクセラレータ故障検知部と、前記計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定部と、を備え、前記関数代理実行部は、前記オフロード先計算リソース決定部が決定した前記リソースに対してオフロードを行うことを特徴とする信号処理リソース切替装置とした。
 本発明によれば、アクセラレータが利用不可となる際に、アプリケーションからの指示なく、演算処理を最大限継続させることができる。
本発明の実施形態に係る信号処理リソース切替システムの概略構成図である。 本発明の実施形態に係る信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーション1を示す概略構成図である。 本発明の実施形態に係る信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーション2を示す概略構成図である。 本発明の実施形態に係る信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーション3を示す概略構成図である。 本発明の実施形態に係る信号処理リソース切替システムのアクセラレータ(遠隔)のデータ構造の一例を示す図である。 本発明の実施形態に係る信号処理リソース切替システムの信号処理リソース切替装置の関数のIDと引数データの機能間やり取りのためのデータ構造の一例を示す図である。 本発明の実施形態に係る信号処理リソース切替システムの信号処理リソース切替装置のオフロード先計算リソース決定部のアクセラレータ管理テーブルを示す図である。 本発明の実施形態に係る信号処理リソース切替システムのオフロードにおけるシーケンス1を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムのオフロードにおけるシーケンス1を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムのオフロードにおけるシーケンス1を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムの突発故障発生時のシーケンス2を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムの事前に意図した切替(故障予測)のシーケンス3を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムの事前に意図した切替オペレータによる指示のシーケンス4を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムの故障切替対象の選定ルールのシーケンス5を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムの故障復旧後の復帰時シーケンス6を示すフローチャートである。 本発明の実施形態に係る信号処理リソース切替システムの信号処理リソース切替装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。 計算機システムを説明する図である。 非特許文献1の同一サーバ内でのアプリケーション/VM再立ち上げを説明する図である。 非特許文献1の別サーバでの立ち上げを説明する図である。
 以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)における信号処理リソース切替システム等について説明する。
(実施形態)
[概要]
 図1は、本発明の実施形態に係る信号処理リソース切替システムの概略構成図である。
 図1に示すように、信号処理リソース切替システム1000は、サーバ250(サーバ<1>)と、サーバ250(サーバ<1>)とNW2を介して接続されたサーバ260(サーバ<2>)と、を備える。
 信号処理リソース切替システム1000は、サーバ250がアプリケーションの特定処理を当該サーバ250または遠隔側サーバ260に配置されたアクセラレータにオフロードして演算処理する。
[サーバ250(サーバ<1>)]
 サーバ250(サーバ<1>)は、ハードウェア(HW)10と、ソフトウェア210と、を備える。
《ハードウェア10》
 ハードウェア10は、CPU11と、複数のアクセラレータ12(アクセラレータ12-1、アクセラレータ(冗長)12-2)と、NIC13と、を有する。
 <CPU11>
 CPU11は、サーバ250における、関数代理実行部111(ソフトウェア機能)を実行する。CPU11は、アクセラレータ12-1、アクセラレータ(冗長)12-2とともに計算を行う計算リソースの一つである。
 CPU11が、アクセラレータ12-1、アクセラレータ(冗長)12-2や、サーバ<2>のアクセラレータ(遠隔)12のアクセラレータと共に処理する演算内容は、故障時において一時的にCPU11を演算リソースとして用い、処理する形でもよい。
 <アクセラレータ12>
 アクセラレータ12は、FPGA/GPU等の計算アクセラレータデバイスである。
 アクセラレータ12-1(12)は、サーバ250に搭載された、特定の演算に特化したアクセラレータハードウェアであり、関数代理実行部111の指示をもとに演算を行う。アクセラレータ(冗長)12-2(12)は、特定の演算に特化したアクセラレータハードウェア(2台目)であり、関数代理実行部111の指示をもとに演算を行う。
 アクセラレータ12は、入力として、関数代理実行部111から、演算対象の「関数名・(以下の説明において、「・」は「または」を表記する)引数データ」を受け付ける。
 アクセラレータ12は、出力として、関数代理実行部111に対して、「演算結果」を通知する。
 アクセラレータの形態としては、内部にタスクの処理キューを持ち、演算対象の入力命令(エンキュー処理)と、処理結果の出力命令(デキュー命令)が分かれている形態でもよい。
 アクセラレータ12は、冷却用Fan故障など、一定の確率で故障が発生する。
 なお、アクセラレータ(冗長)12-2(12)は、故障時のみの利用だけではなく、平常時より利用し、故障時の切替先と兼用させる形態でもよい。
 <NIC13>
 NIC13は、NWインターフェイスを実現するNICハードウェアである。
 NIC13は、関数代理実行部111のオフロード先が遠隔側サーバ(サーバ260)の場合に、関数代理実行部111のオフロードする「関数名・引数データ」のパケットの通知を受け付け、サーバ260のNIC(ローカル)13に通知する。
 NIC13は、入力として、関数代理実行部111から、演算対象の「関数名・引数データ」を受け付ける。NIC13は、これらデータを、サーバ260のNIC(ローカル)13に対して送信する。
 NIC13は、出力として、関数代理実行部111に対して、「演算結果」のパケット群を通知する。NIC13は、これらデータを、サーバ260のNIC(ローカル)13から受信する。
 NIC13は、入力として、サーバ260のNIC(ローカル)13から「関数名・引数データ」のパケット群を受信する。NIC13は、これらデータを、関数代理実行部(遠隔)111に通知する。
 NIC13は、出力として、サーバ260のNIC(ローカル)13に対し、「演算結果」のパケット群を送信する。NIC13は、これらデータを、関数代理実行部(遠隔)211から通知を受ける。
《ソフトウェア210》
 ソフトウェア210は、アプリケーション部1(アプリケーション)と、信号処理リソース切替装置100と、を有する。
 <アプリケーション部1>
 アプリケーション部1は、ユーザ空間で実行されるプログラムである。アプリケーション部1は、OpenCL(登録商標)やDPDK BBDev API(登録商標)等で規定されるAPI利用を前提に構築されており、これらAPIとの入出力を持つ。
 アプリケーション部1は、出力として、関数代理実行部111に対する「関数名・引数」を持つ。入力として、関数代理実行部111から「関数実行結果」を受け付ける。
 アプリケーション部1は、標準として規定された関数群(API)を呼び出し、アクセラレータ12-1、アクセラレータ(冗長)12-2、またはサーバ260(サーバ<2>)のアクセラレータ12への一部処理のオフロードを行う。
[信号処理リソース切替装置100]
 信号処理リソース切替装置100は、関数代理実行部111と、アクセラレータ故障検知部110と、オフロード先計算リソース決定部120と、アクセラレータ故障予測部130と、計画停止用タスク投入抑制部140と、アクセラレータメンテナンス設定部150と、タスク処理状況記録部160と、タスク再オフロード指示部170と、を備える。
 ここで、アクセラレータ故障検知部110、オフロード先計算リソース決定部120、アクセラレータ故障予測部130、計画停止用タスク投入抑制部140、アクセラレータメンテナンス設定部150、タスク処理状況記録部160、およびタスク再オフロード指示部170は、コントローラ機能部(後記図2~図4の配置例で説明するために導入)を構成する。
 また、図1の破線囲み101は、関数代理実行と故障検知を連携させ、アプリ改造なく故障時切替を行う機能部である(後記発明のポイント1で説明)。図1の破線囲み102は、突発故障時の、断絶期間の抑制を行う機能部である(後記発明のポイント2で説明)。図1の破線囲み103は、事前予測可能な切替時の演算の継続を行う機能部である(後記発明のポイント3で説明)。
 <関数代理実行部111>
 関数代理実行部111は、アプリケーションから「関数名・引数」を受け付け、計算リソースによる関数実行時・終了時に、アプリケーションに関数の引数データを通知するとともに、オフロード先計算リソース決定部120が決定した前記リソースに対してオフロードを行う。
 関数代理実行部111は、既定の関数と互換性のあるIFを持った、ミドルウェアとして実現される。関数代理実行部111は、OpenCL(登録商標)やDPDK BBdev API(登録商標)等の規定API関数群と同等のインターフェイスを持つ。
 関数代理実行部111は、ユーザからの関数呼出を受け付け、事前にオフロード先計算リソース決定部120(後記)により設定された計算リソースに対してオフロードを行う。
 関数代理実行部111は、結果を受け取るアプリケーション部1(ユーザアプリケーション)とは別のバイナリファイルとして用意され、実行時に動的リンク・呼出が行われる「動的ライブラリ形式」により実現される。なお、関数代理実行部111は、アプリケーション部1に、プログラム生成時にリンクされ、一体として実行される「静的ライブラリ形式」でもよい。
 関数代理実行部111は、各関数オフロード開始時に、タスク処理状況記録部160(後記)に対して、処理を開始したタスクを識別するため、関数名・引数を通知する。関数代理実行部111は、各関数オフロード完了時に、タスク処理状況記録部160に対して、処理を完了したタスクを識別するため、関数名・引数を通知する。
 関数代理実行部111は、オフロード先計算リソース決定部120(後記)により設定されたオフロード先がローカル(CPU11、アクセラレータ12-1、アクセラレータ(冗長)12-2、サーバ<2>のアクセラレータ12もしくはCPU11)の場合に、入力データをもとに、各デバイスへの演算指示を行う。
 関数代理実行部111は、オフロード先計算リソース決定部120により指示されたオフロード先が遠隔(サーバ260)の場合に、入力データをシリアライズし、UDP/IP(User Datagram Protocol/Internet Protocol)等の形式に従う形でパケットとして分割し、NIC(遠隔)13に通知する。
 関数代理実行部111は、入力として、アプリケーション部1から「関数名・引数」を受け付ける。
 関数代理実行部111は、出力として、関数実行時・終了時に、タスク処理状況記録部160(後記)に対して関数の引数データを通知する。
 関数代理実行部111は、出力として、オフロード先がローカルの場合、CPU11アクセラレータ12-1、アクセラレータ(冗長)12-2のいずれかの計算リソースに、「関数名・引数」を通知する。
 関数代理実行部111は、出力として、オフロード先が遠隔の場合、NIC(遠隔)13に「関数名・引数データのパケット化データ」を渡す。
 <アクセラレータ故障検知部110>
 アクセラレータ故障検知部110は、アクセラレータの状態を定期的に監視し、故障が発生したかを検知する。故障の検知には、正常性確認コマンドの周期的な実行と、その結果確認を用いる。
 アクセラレータ故障検知部110は、故障を検知した場合は、出力として、オフロード先計算リソース決定部120に対し「故障したハードウェアの識別子」を通知する。
 アクセラレータの故障検知の方法としては、能動的な検知方法である「周期的なテスト用オフロード処理の実行による正常性確認」「データ処理状況の監視」「周期的な、ハードウェアの持つヘルスチェック機能の実行」に加え、受動的な故障検知方法である「アクセラレータハードウェアからのアラート受信による検知」でもよい。
 <オフロード先計算リソース決定部120>
 オフロード先計算リソース決定部120は、計算リソースのうち、故障しておらず(未故障)、かつ、利用可能なリソースを決定する。
 オフロード先計算リソース決定部120は、故障が発生したアクセラレータと、切り替えるアクセラレータの代わりとなるフェイルオーバ先アクセラレータとを選定し、関数代理実行部111に設定するとともに、タスク再オフロード指示部170に対して、故障が発生したアクセラレータと、フェイルオーバ先アクセラレータを通知し、タスクの再投入を指示する。
 オフロード先計算リソース決定部120は、オフロード先計算リソースを決定し、関数代理実行部111に通知する。具体的には、オフロード先計算リソース決定部120は、計算リソースである「サーバに搭載されたアクセラレータ、CPU11、遠隔サーバ側のアクセラレータ」のうち、未故障、かつ、利用可能なものを選び、関数代理実行部111に通知する。オフロード先計算リソース決定部120は、起動時には空きリソースの中から、処理可能なリソースを選定し、関数代理実行部111に指示する。
(突発故障時)
 オフロード先計算リソース決定部120は、アクセラレータ故障検知部110から突発故障発生の通知を受けた際に、故障が発生したアクセラレータの代わりとなる、フェイルオーバ先アクセラレータを選定して関数代理実行部111に設定する。この時同時に、タスク再オフロード指示部170に対して、故障が発生したアクセラレータと、フェイルオーバ先アクセラレータを通知し、タスクの再投入を指示する。
(突発故障検知時)
 オフロード先計算リソース決定部120は、入力として、アクセラレータ故障検知部110から、故障の発生通知と、故障が発生したアクセラレータの識別子を受け付ける。
 オフロード先計算リソース決定部120は、出力として、関数代理実行部111に対して、オフロード先を設定する。
 オフロード先計算リソース決定部120は、出力として、タスク再オフロード指示部170に対して、故障が発生したアクセラレータと、フェイルオーバ先アクセラレータを通知する。
(意図的な切替時)
 オフロード先計算リソース決定部120は、計画停止用タスク投入抑制部140から意図的な切替の通知を受けた際には、切り替えるアクセラレータの代わりとなる、フェイルオーバ先アクセラレータを選定して、関数代理実行部111に設定する。
 オフロード先計算リソース決定部120は、計画停止用タスク投入抑制部140から、切替予定通知と、切替対象アクセラレータの識別子を受け付ける。
 なお、オフロード先計算リソース決定部120は、起動時の処理対象リソースは、設定ファイルから読み取り、設定する形でもよい。
 <アクセラレータ故障予測部130>
 アクセラレータ故障予測部130は、アクセラレータの故障を予測し、故障を予測した切替対象アクセラレータを通知する。
 アクセラレータ故障予測部130は、アクセラレータの温度の状態を定期的に監視し、故障や不具合が発生する可能性が高い状態か、を判別する。アクセラレータ故障予測部130は、故障を予測した場合に、計画停止用タスク投入抑制部140に対象アクセラレータの識別子を通知し、新規のタスク投入の抑止を指示する。
 アクセラレータ故障予測部130は、出力として、故障を予測した場合に、計画停止用タスク投入抑制部140に対して「故障したハードウェアの識別子」を通知する。
 なお、アクセラレータ故障予測部130は、アクセラレータの故障予測の方法としては、「周期的な正常性確認プログラムの実行」「アクセラレータカードの温度変化の継続的確認を行い、温度が一定以上に近づいたかを検知する」を行う方法でもよい。
 <計画停止用タスク投入抑制部140>
 計画停止用タスク投入抑制部140は、アクセラレータ故障予測部130から切替対象アクセラレータの通知を受けた場合、切替対象アクセラレータについては新規のタスク投入の抑止をタスク再オフロード指示部170に指示する。
 計画停止用タスク投入抑制部140は、アクセラレータ故障予測部130や、アクセラレータメンテナンス設定部150から意図的な切替の通知を受けた際に、オフロード先計算リソース決定部120に切替対象アクセラレータの識別子を通知する。これにより、対象アクセラレータへのタスク投入を抑止し、仕掛中タスクがない状態とすることで、切離が可能な状態とする。
(意図的な切替時)
 計画停止用タスク投入抑制部140は、入力として、アクセラレータ故障予測部130、アクセラレータメンテナンス設定部150から、切替対象アクセラレータの識別子を受け付ける。
 計画停止用タスク投入抑制部140は、出力として、オフロード先計算リソース決定部120に対して、切替対象アクセラレータの識別子を通知し、オフロード先の変更を要求する。
・仕掛中タスクをなくす方法について
 本実施形態では、切替対象のアクセラレータの仕掛中タスクをなくすために、新規タスクの投入抑制を行ったうえで、時間経過により仕掛中タスクがなくなる仕組みとなっている。
 この態様に代えて、計画停止用タスク投入抑制部140は、タスク再オフロード指示部170に指示を行い、タスクを切替先に再投入させる形態でもよい。
・仕掛中タスクがなくなったことの検知について
 本実施形態では、仕掛中タスクがなくなったことを明示的に確認する機能を持っていない。
 この態様に代えて、計画停止用タスク投入抑制部140は、タスク処理状況記録部160のタスク処理状況を確認し、仕掛中タスクがなくなったかを周期的に確認し、オペレータ(ヒト)に通知する形態でもよい。
 <アクセラレータメンテナンス設定部150>
 アクセラレータメンテナンス設定部150は、オペレータ(ヒト)の指示をもとに、特定のアクセラレータを切り離し可能な状態とする機能である。
 アクセラレータメンテナンス設定部150は、上記の指示を受けた場合には、計画停止用タスク投入抑制部140に対象アクセラレータの識別子を通知し、新規のタスク投入の抑止を指示する。
 アクセラレータメンテナンス設定部150は、出力として、上記の指示による切替を受け付けた場合に、計画停止用タスク投入抑制部140に対し「切替対象のハードウェアの識別子」を通知する。
 なお、オペレータからの指示は、ヒトではなく、外部のオペレーションシステムからの指示をトリガとする形でもよい。
 <タスク処理状況記録部160>
 タスク処理状況記録部160は、関数代理実行部111から、時系列でのタスク処理状況を受け取り、各計算リソースにおける未完了演算タスクを保持する。
 タスク処理状況記録部160は、関数代理実行部111から、時系列でのタスク処理状況を受け取り、各計算リソースにおける未完了のタスクを保持する。タスク処理状況記録部160は、関数代理実行部111の入力をもとに、各関数の実行開始時と完了時の対応付けを行い、各計算リソースでの未完了のタスクを管理する。
 タスク処理状況記録部160は、入力として、関数代理実行部111より、関数実行開始時と完了時に、関数の引数データを受け付ける。入力としてタスク再オフロード指示部170より、「計算リソースの識別子」を受け付け、出力として当該の計算リソースの未完了のタスクの情報一覧(関数名・引数)を通知する。
 <タスク再オフロード指示部170>
 タスク再オフロード指示部170は、オフロード先計算リソース決定部120から受け付けた「切替元計算リソースの識別子」をもとに、切替元計算リソースの未完了演算タスクの再実行を、関数代理実行部111に指示する。
 タスク再オフロード指示部170は、未完了タスクについては、タスク処理状況記録部160から「切替先計算リソースの識別子」をもとに、問い合わせ取得する。
 タスク再オフロード指示部170は、入力として、オフロード先計算リソース決定部120から、「切替元計算リソースの識別子」「切替先計算リソースの識別子」を受け付ける。
 タスク再オフロード指示部170は、出力として、切替先計算リソースに対するオフロードの再実行のため、関数代理実行部111に未完了演算タスクの再実行を指示する。
[サーバ260(サーバ<2>)]
 サーバ260(サーバ<2>)(遠隔側サーバ)は、ハードウェア(HW)10と、ソフトウェア210と、を備える。
《ハードウェア10》
 ハードウェア10は、CPU(遠隔)11と、アクセラレータ(遠隔)12と、NIC(ローカル)13と、を有する。
 <CPU11>
 CPU(遠隔)11は、サーバ260における、関数代理実行部211(ソフトウェア機能)を実行する。CPU(遠隔)11は、アクセラレータ(遠隔)12とともに計算リソースの一つである。
 CPU(遠隔)11は、アクセラレータ12-1、アクセラレータ(冗長)12-2や、サーバ<2>のアクセラレータ(遠隔)12のアクセラレータで処理する演算内容は、故障時には一時的にCPU11を演算リソースとして用い、処理する形でもよい。
 <アクセラレータ12>
 アクセラレータ(遠隔)12は、FPGA/GPU等の計算アクセラレータデバイスである。
 アクセラレータ(遠隔)12は、サーバ260に搭載された、特定の演算に特化したアクセラレータハードウェアであり、関数代理実行部211の指示をもとに演算を行う。
 アクセラレータ(遠隔)12は、入力として、関数代理実行部211から、演算対象の「関数名・引数データ」を受け付ける。
 アクセラレータ(遠隔)12は、出力として、関数代理実行部211に対し、「演算結果」を通知する。
 <NIC(ローカル)13>
 NIC(ローカル)13は、サーバ250から送信される「関数名・引数データ」を受信し、関数代理実行部(遠隔)211に「関数名・引数データ」のパケット群を入力する。NIC(ローカル)13は、関数代理実行部(遠隔)211から、「演算結果」を含むパケット群を受け付け、サーバ250に応答する。
《ソフトウェア210》
 ソフトウェア210は、関数代理実行部211を有する。
 <関数代理実行部211>
 関数代理実行部211は、NIC(ローカル)13から受け付けた、「関数名・引数データ」のパケット群をもとに、アクセラレータ(遠隔)12への演算オフロードを行う。さらに、関数代理実行部211は、演算結果についてはパケット化を行い、NIC(ローカル)13に送信する。
 関数代理実行部211は、入力として、NIC(ローカル)13から、「関数名・引数データ」のパケットを受け付ける。
 関数代理実行部211は、出力として、NIC(ローカル)13に対して、「演算結果」のパケットデータを通知する。
 関数代理実行部211は、アクセラレータ(遠隔)12に対する出力として、「関数名・引数データ」を渡し、入力として演算結果を受け付ける。
[信号処理リソース切替装置の配置]
 信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーションについて説明する。
 図1の信号処理リソース切替システム1000は、信号処理リソース切替装置100をサーバ250のソフトウェア210に配置した例である。信号処理リソース切替装置のコントローラ機能部は、サーバ250外に別筐体で設置することも可能であり、以下に例示する。
 図2は、信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーション1を示す概略構成図である。なお、以下の各図において、図1と同一構成部分には同一符号を付して重複箇所の説明を省略する。
 バリエーション1は、コントローラ機能部全体を別筐体とした場合の例である。
 図2に示すように、信号処理リソース切替システム1000Aは、サーバ250(サーバ<1>)と、サーバ250(サーバ<1>)外に別筐体で設置された信号処理リソース切替装置100Aと、サーバ250(サーバ<1>)とNW2を介して接続されたサーバ260(サーバ<2>)と、を備える。
 サーバ250のソフトウェア200Aは、アプリケーション部1と、関数代理実行部111と、有する。
 信号処理リソース切替装置100Aは、コントローラ機能部がサーバ250外に設置され、図1の信号処理リソース切替装置100と同一の機能を有する。
 図3は、信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーション2を示す概略構成図である。
 バリエーション2は、コントローラ機能部のうち、故障検知関連機能を演算サーバ側とした場合の例である。
 図3に示すように、信号処理リソース切替システム1000Bは、サーバ250(サーバ<1>)と、サーバ250(サーバ<1>)外に別筐体で設置された信号処理リソース切替装置100Bと、サーバ250(サーバ<1>)とNW2を介して接続されたサーバ260(サーバ<2>)と、を備える。
 サーバ250のソフトウェア200Bは、アプリケーション部1と、関数代理実行部111と、アクセラレータ故障検知部110と、有する。
 信号処理リソース切替装置100Bは、サーバ250外に設置され、図1の信号処理リソース切替装置100からアクセラレータ故障検知部110を取り外した構成である。
 図4は、信号処理リソース切替システムの信号処理リソース切替装置の配置のバリエーション3を示す概略構成図である。
 バリエーション3は、コントローラ機能のうち、故障検知およびタスク再オフロード機能を演算サーバ側に配備した場合の例である。
 図4に示すように、信号処理リソース切替システム1000Cは、サーバ250(サーバ<1>)と、サーバ250(サーバ<1>)外に別筐体で設置された信号処理リソース切替装置100Cと、サーバ250(サーバ<1>)とNW2を介して接続されたサーバ260(サーバ<2>)と、を備える。
 サーバ250のソフトウェア200Cは、アプリケーション部1と、関数代理実行部111と、アクセラレータ故障検知部110と、タスク処理状況記録部160と、タスク再オフロード指示部170と、有する。
 信号処理リソース切替装置100Cは、サーバ250外に設置され、図1の信号処理リソース切替装置100からアクセラレータ故障検知部110、タスク処理状況記録部160およびタスク再オフロード指示部170を取り外した構成である。
 以上、図2~図4に示すように、コントローラ機能部の一部または全部を、サーバ250外の別の筐体に独立して配備する形態をとることで、RANにおいてRICへの機能配備に対応することができる。
 また、複数のサーバ250に対して、1つの信号処理リソース切替装置での運用が可能になる。これにより、コストの低減と、信号処理リソース切替装置のメンテナンス性を向上させることができる。また、サーバ側の改変を不要ないし軽減することができ、汎用的に適用することができる。
[アクセラレータのデータ構造]
 図5は、アクセラレータ(遠隔)12のデータ構造の一例を示す図である。
 図5に示すように、アクセラレータ(遠隔)12のデータ構造は、L2フレーム、関数ID、最終データビット、引数1、引数2からなる。
 図6は、関数のIDと、引数データの機能間やり取りのためのデータ構造の一例を示す図である。
 図6に示すように、関数のIDと、引数データの機能間やり取りのためのデータ構造は、図5に示すデータ構造と同様の、関数ID、最終データビット、引数1、引数2からなる。
 本実施形態では、NIC13,サーバ260のNIC13およびアクセラレータ12のデータ形式を共通化し、かつパケットとして分散受信したメモリ上データをそのままアクセラレータ12へ転送する。このため、データ構造の共通化を図る。具体的には、関数代理実行部211が作成するデータ構造を、図5および図6に示すようなアクセラレータ関数・引数データパケットとする。NIC13,13およびアクセラレータ12のデータ形式を共通化することで、NIC13,13が受信するデータを、関数代理実行部211がそのまま読める形式とする。
[オフロード先計算リソース決定部のテーブル]
 図7は、オフロード先計算リソース決定部120のアクセラレータ管理テーブルの一例を示す図である。このアクセラレータ管理テーブルは、図10の事前に意図した切替(故障予測)のフローで参照される。
 図7に示すように、オフロード先計算リソース決定部120のアクセラレータ管理テーブルは、搭載ホスト情報、アクセラレータ識別子、ACC性能(スループット)、および、アクセラレータの状態を有する。
 オフロード先計算リソース決定部120は、図7に示す管理テーブルを参照して、オフロード先計算リソースを決定する。例えば、「Host-1(192.168.0.1)」(搭載ホスト情報)は、アクセラレータ識別子「FPGA-1」、ACC性能(スループット)「10.0 Gbps」、「利用可能」である。また、「Host-2(192.168.0.2)」(搭載ホスト情報)は、アクセラレータ識別子「CPU-1」、ACC性能(スループット)「2.0Gbps」、「割当済」(利用不可)である。
 特に、「Host-3(192.168.0.3)」(搭載ホスト情報)は、アクセラレータ識別子「ASIC-1」、ACC性能(スループット)「10.0Gbps」、「故障中」(利用不可)である。
 以下、上述のように構成された信号処理リソース切替システム1000の動作を説明する。
[概要]
 本発明は、3要件をそれぞれ以下のように充足する。
 <要件1:透過性>
 関数代理実行部111が、アプリケーションとアクセラレータオフロード処理を分離し、アクセラレータ12のみの切替を、アプリケーション改造なく実現すること。
 <要件2:突発故障時の可用性の高さ>
 故障検知と連携した自動でのオフロード先切替と、アクセラレータタスク処理状況をもとにした自動再投入により、切替時間を最小化すること。
 <要件3:意図的な切離時の処理継続>
 切替対象アクセラレータへのタスク投入を抑制し、タスクが空となったことを確認してから切替を行うことでの演算継続すること。また、本実施形態の装置構成は完全二重化する必要がなく、設備効率が高いこと。
 上記<要件1:透過性>、<要件2:突発故障時の可用性の高さ>、<要件3:意図的な切離時の処理継続>は、下記、(1)発明のポイント1、(2)発明のポイント2、(3)発明のポイント3により解決する。
(1)発明のポイント1:関数代理実行と故障検知の連携、アプリ改造なく故障時切替(図1の破線囲み機能部101)
 関数代理実行部111により、アプリケーションに変更を加えずオフロード先を切替可能とする。これにより、アプリケーションの再起動・移行なくアクセラレータを切り替える。さらに、故障検知結果に応じて自動的に切替を行うことで、<要件1:透過性>を実現する。
(2)発明のポイント2:突発故障時の、断絶期間の抑制(図1の破線囲み機能部102)
 アクセラレータ故障時の自動タスク再オフロードによる、自動処理継続を実現する。具体的には、残タスクを管理するタスク処理状況記録部160が、アクセラレータの処理完了前タスクを記録し、タスク再オフロード指示部170が、突発故障時には自動的に再オフロードを行う。これにより、<要件1:透過性>と<要件2:突発故障時の可用性の高さ>を両立する。
(3)発明のポイント3:事前予測可能な切替時の演算の継続(図1の破線囲み機能部103)
 アクセラレータタスク投入の抑制による、意図的な切離時の無瞬断切替を実現する。具体的には、アクセラレータ故障予測部130が、アクセラレータの故障を予測し、切離対象のアクセラレータについては、計画停止用タスク投入抑制部140が、タスク投入を抑制し、オフロード先を他計算リソースに切り替える。これにより、<要件3:意図的な切離時の処理継続>を実現する。
[動作]
 信号処理リソース切替システムの動作は、図1の信号処理リソース切替システム1000、図2の信号処理リソース切替システム1000A、図3の信号処理リソース切替システム1000B、図4の信号処理リソース切替システム1000Cのいずれについても同様である。すなわち、信号処理リソース切替システムにおいて、信号処理リソース切替装置の配置先による動作の差異はない。
[オフロードにおけるシーケンス]
 図8A-Cは、信号処理リソース切替システムのオフロードにおけるシーケンス1を示すフローチャートである。本フローは、基本的には、サーバ250(サーバ<1>)の処理を示し、一部がサーバ260(サーバ<2>)の処理(図8AのS16-S19)を示す。
 図8Aにおいて、ステップS11でアプリケーション部1は、API呼出を行い、「関数・引数」を出力する。
 ステップS12で関数代理実行部111は、関数名や引数のフォーマットが標準化された既定の関数群を利用してアクセラレータへの演算オフロードを行う。
 ステップS13でタスク処理状況記録部160は、関数代理実行部111から、時系列でのタスク処理状況を受け取り、各計算リソースにおける未完了のタスクを保持する。
 ステップS14でオフロード先計算リソース決定部120は、設定されたオフロード先が遠隔サーバの場合か否かを判別する。
 設定されたオフロード先が遠隔サーバの場合(S14:Yes)、ステップS15でNIC13は、関数代理実行部111のオフロード先が遠隔側サーバ260(サーバ<2>)の場合に、関数代理実行部111のオフロードする「関数名・引数データ」のパケットの通知を受け付け、遠隔側サーバ260(サーバ<2>)のNIC13に通知する。
 ステップS16で遠隔側サーバ260(サーバ<2>)のNIC13は、サーバ<1>から送信される「関数名・引数データ」を受信し、関数代理実行部111に「関数名・引数データ」のパケット群を入力する。
 ステップS17で遠隔側サーバ260(サーバ<2>)の関数代理実行部111は、NIC(ローカル)13から受け付けた、「関数名・引数データ」のパケット群をもとに、アクセラレータ(遠隔)12への演算オフロードを行う。
 ステップS18で遠隔側サーバ260(サーバ<2>)のアクセラレータ(遠隔)12は、関数代理実行部211からの指示をもとに演算を行う。
 ステップS19でNIC(ローカル)13は、サーバ250(サーバ<1>)のNIC13に対し、「演算結果」のパケット群を送信する。
 以下、ステップS20以降は、サーバ250(サーバ<1>)の処理である。
 ステップS20でサーバ250(サーバ<1>)のNIC13は、関数代理実行部111に対し、「演算結果」のパケット群を通知して図8BのステップS21に進む。なお、ステップS21には、後記図8CのステップS25、ステップS27、ステップS28の処理後も移行する。
 図8BのステップS21で関数代理実行部111は、関数実行時・終了時に、タスク処理状況記録部160に対し、処理を完了したタスクを識別するため、関数を一意に識別できるIDおよび引数データを送る。
 ステップS22でタスク処理状況記録部160は、関数代理実行部111の入力をもとに、各関数の実行開始時と完了時の対応付けを行い、各計算リソースでの未完了のタスクを管理する。
 ステップS23でアプリケーション部1は、関数代理実行部111から「関数実行結果」を受け付けて本フローの処理を終了する。
 上記ステップS14で設定されたオフロード先が遠隔サーバでない場合(S14:No)、図8CのステップS24でオフロード先計算リソース決定部120は、設定されたオフロード先がサーバ内のアクセラレータ12-1(アクセラレータ<1>)の場合か否かを判別する。
 設定されたオフロード先がサーバ内のアクセラレータ12-1の場合(S24:Yes)、ステップS25でアクセラレータ12-1は、関数代理実行部111から、演算対象の「関数名・引数データ」を受け付け、演算を行って図8BのステップS21に進む。
 設定されたオフロード先がサーバ内のアクセラレータ12-1でない場合(S24:No)、ステップS26でオフロード先計算リソース決定部120は、設定されたオフロード先がサーバ内のアクセラレータ(冗長)12-2(アクセラレータ<2>)の場合か否かを判別する。
 設定されたオフロード先がサーバ内のアクセラレータ12-2の場合(S26:Yes)、ステップS27でアクセラレータ12-2は、関数代理実行部111から、演算対象の「関数名・引数データ」を受け付け、演算を行って図8BのステップS21に進む。
 設定されたオフロード先がサーバ内のアクセラレータ12-2でない場合(S26:No)、ステップS28でCPU11は、サーバ<1>におけるソフトウェア機能を実行して図8BのステップS21に進む。
[突発故障発生時のシーケンス]
 図9は、信号処理リソース切替システムの突発故障発生時のシーケンス2を示すフローチャートである。
 ステップS31でアクセラレータ故障検知部110は、アクセラレータの状態を定期的に監視し、故障が発生したかを検知する。具体的には、アクセラレータ故障検知部110は、正常性確認コマンドの周期的な実行と、その結果確認を用いて故障を検知する。また、アクセラレータ故障検知部110は、故障を検知した場合は、オフロード先計算リソース決定部120に対し「故障したハードウェアの識別子」を通知する。
 ステップS32でアクセラレータ故障検知部110は、故障を検知したか否かを判別し、故障を検知していない場合(S32:No)、ステップS31に戻る。
 故障を検知した場合(S32:Yes)、ステップS33でオフロード先計算リソース決定部120は、オフロード先計算リソースを決定し、関数代理実行部111に通知する。具体的には、オフロード先計算リソース決定部120は、計算リソースである「サーバに搭載されたアクセラレータ12-1,12-2、CPU11、遠隔側サーバのアクセラレータ(遠隔)12」のうち、故障しておらず、利用可能なものを選び、関数代理実行部111に通知する。
 ステップS34でタスク再オフロード指示部170は、オフロード先計算リソース決定部120から受け付けた「切替元計算リソースの識別子」をもとに、切替元計算リソースの未完了演算タスクの再実行を、関数代理実行部111に指示する。
 ステップS35でタスク処理状況記録部160は、関数代理実行部111から、時系列でのタスク処理状況を受け取り、各計算リソースにおける未完了演算のタスクを保持する。
 ステップS36でタスク再オフロード指示部170は、未完了演算タスクについては、タスク処理状況記録部160から「切替先計算リソースの識別子」をもとに問い合わせ、該当タスクを取得して本フローを終了する。
[事前に意図した切替(故障予測)のシーケンス]
 図10は、信号処理リソース切替システムの事前に意図した切替(故障予測)のシーケンス3を示すフローチャートである。
 ステップS41でアクセラレータ故障検知部110は、アクセラレータ(アクセラレータ12-1,12-2、遠隔側サーバのアクセラレータ(遠隔)12)の温度の状態を定期的に監視し、故障や不具合が発生する可能性が高い状態かを判別する。冷却用Fanが故障した場合などアクセラレータの温度が上昇して、アクセラレータの故障が予測できる。アクセラレータ故障予測部130は、故障を予測した場合には、計画停止用タスク投入抑制部140に対象アクセラレータの識別子を通知し、新規のタスク投入の抑止を指示する。
 ステップS42でアクセラレータ故障検知部110が、故障を予測しなければ(S42:No)、ステップS41に戻る。故障を予測した場合(S42:Yes)、ステップS43でオフロード先計算リソース決定部120は、アクセラレータ故障検知部110から突発故障発生の通知を受けた際に、故障が発生したアクセラレータの代わりとなる、フェイルオーバ先アクセラレータを選定し関数代理実行部111に設定する。また、オフロード先計算リソース決定部120は、アクセラレータ管理テーブルのうち、故障通知を受けたアクセラレータの状態を、“故障中”に更新する。
 ステップS44で計画停止用タスク投入抑制部140は、アクセラレータ故障予測部130や、アクセラレータメンテナンス設定部150から意図的な切替の指示を受けた際に、オフロード先計算リソース決定部120に対象アクセラレータの識別子を通知して本フローを終了する。
[事前に意図した切替(ヒト(オペレータ))による指示のシーケンス]
 図11は、信号処理リソース切替システムの事前に意図した切替(ヒト(オペレータ))による指示のシーケンス4を示すフローチャートである。
 ステップS51でアクセラレータメンテナンス設定部150は、オペレータの指示をもとに、特定のアクセラレータを切り離し可能な状態とする。具体的には、アクセラレータメンテナンス設定部150は、オペレータの指示を受けた場合に、計画停止用タスク投入抑制部140に対象アクセラレータの識別子を通知し、新規のタスク投入の抑止を指示する。
 ステップS52でオフロード先計算リソース決定部120は、計画停止用タスク投入抑制部140から意図的な切替の通知を受けた際に、切り替えるアクセラレータの代わりとなる、フェイルオーバ先アクセラレータを選定し、関数代理実行部111に設定する。具体的には、オフロード先計算リソース決定部120は、計画停止用タスク投入抑制部140から、切替予定通知と、切替対象アクセラレータの識別子を受け付ける。
 ステップS53で計画停止用タスク投入抑制部140は、アクセラレータ故障予測部130およびアクセラレータメンテナンス設定部150から切替対象アクセラレータの識別子を受け付け、オフロード先計算リソース決定部120に切替対象アクセラレータの識別子を通知して本フローを終了する。
[故障切替対象の選定ルールのシーケンス]
 図12は、故障切替対象の選定ルールのシーケンス5を示すフローチャートである。また、オフロード先計算リソース決定部120は、図7に示すアクセラレータ管理テーブルを参照する。
 ステップS61でオフロード先計算リソース決定部120は、故障したACCのフィールドを更新する。例えば、図7に示すアクセラレータ管理テーブルの搭載ホスト情報をもとに、Host-3のASIC-1の状態を“故障中”とする。
 ステップS62でアクセラレータ故障検知部110は、ACCの故障を検知する。上記の例では、Host-3のASIC-1の故障を検知する。
 ステップS63でオフロード先計算リソース決定部120は、故障したACCの性能を取得する。上記の例では、Host-3のASIC-1のACC性能10.0Gbpsを取得する。
 ステップS64でオフロード先計算リソース決定部120は、利用可能かつ、ACC性能を充足するACCを選定する。上記の例では、Host-1のFPGA-1を選定する。
 ステップS65でオフロード先計算リソース決定部120は、選定したACCのフィールドを更新して本フローを終了する。上記の例では、Host-1のFPGA-1の状態を割当済にするように、アクセラレータ管理テーブル(図7)を更新する。
[故障復旧後の復帰時シーケンス]
 図13は、信号処理リソース切替システムの故障復旧後の復帰時シーケンス6を示すフローチャートである。
 オフロード先計算リソース決定部120は、故障の復旧完了処理をスタートする(ステップS71)。
 ステップS72でアクセラレータメンテナンス設定部150は、故障発生後の修復・復旧時に、切替先として選定したアクセラレータをメンテナンス対象として設定し、再度アクセラレータ払出を行うことで、故障切替先からの別アクセラレータへ振り分けをする。
 ステップS73でオフロード先計算リソース決定部120は、オフロード先計算リソースを決定し、関数代理実行部111に通知する。具体的には、オフロード先計算リソース決定部120は、計算リソースであるサーバ250に搭載されたアクセラレータ12-1,12-2、CPU11、遠隔側サーバ260のアクセラレータ12のうち、故障しておらず、利用可能なものを選び、関数代理実行部111に通知する。
 ステップS74でオフロード先計算リソース決定部120は、管理するアクセラレータのアクセラレータ管理テーブル(図7)の中から、処理可能なリソースを選定し、関数代理実行部111に指示する。ここで、アクセラレータのアクセラレータ管理テーブルのうち、性能およびアクセラレータのリストは、事前にリストが投入されており、各アクセラレータの状態については割当に応じて更新される(図12のステップS65)。
 ステップS75で計画停止用タスク投入抑制部140は、アクセラレータ故障予測部130や、アクセラレータメンテナンス設定部150から意図的な切替の通知を受けた際に、オフロード先計算リソース決定部120に切替対象アクセラレータの識別子を通知して本フローを終了する。
[ハードウェア構成]
 上記実施形態に係る信号処理リソース切替システム1000,1000A~1000C(1000~1000C)の信号処理リソース切替装置100,100A~100C(100~100C)は、例えば図14に示すような構成のコンピュータ900によって実現される。
 図14は、信号処理リソース切替装置100~100Cの機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
 信号処理リソース切替装置100~100Cは、CPU901、RAM902、ROM903、HDD904、アクセラレータ905、入出力インターフェイス(I/F)906、メディアインターフェイス(I/F)907、および通信インターフェイス(I/F:Interface)908を有する。アクセラレータ905は、図1~図4のアクセラレータ12-1,12-2に対応する。
 アクセラレータ905は、通信I/F908からのデータ、または、RAM902からのデータの少なくとも一方のデータを高速に処理するアクセラレータ(デバイス)12-1,12-2(図1~図4)である。なお、アクセラレータ905として、CPU901またはRAM902からの処理を実行した後にCPU901またはRAM902に実行結果を戻すタイプ(look-aside型)を用いてもよい。一方、アクセラレータ905として、通信I/F908とCPU901またはRAM902との間に入って、処理を行うタイプ(in-line型)を用いてもよい。
 アクセラレータ905は、通信I/F908を介して外部装置915と接続される。入出力I/F906は、入出力装置916と接続される。メディアI/F907は、記録媒体917からデータを読み書きする。
 CPU901は、ROM903またはHDD904に格納されたプログラムに基づいて動作し、RAM902に読み込んだプログラム(アプリケーションや、その略のアプリとも呼ばれる)を実行することにより、図1~図4に示す信号処理リソース切替装置100~100Cの各部の制御を行う。そして、このプログラムは、通信回線を介して配布したり、CD-ROM等の記録媒体917に記録して配布したりすることも可能である。
 ROM903は、コンピュータ900の起動時にCPU901によって実行されるブートプログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。
 CPU901は、入出力I/F906を介して、マウスやキーボード等の入力部、および、ディスプレイやプリンタ等の出力部からなる入出力装置916を制御する。CPU901は、入出力I/F906を介して、入出力装置916からデータを取得するともに、生成したデータを入出力装置916へ出力する。なお、プロセッサとしてCPU901とともに、GPU(Graphics Processing Unit)等を用いてもよい。
 HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F908は、通信網(例えば、NW(Network))を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
 メディアI/F907は、記録媒体917に格納されたプログラムまたはデータを読み取り、RAM902を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体917からRAM902上にロードし、ロードしたプログラムを実行する。記録媒体917は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、導体メモリテープ媒体又は半導体メモリ等である。
 例えば、コンピュータ900が本実施形態に係る一装置として構成されるサーバ200として機能する場合、コンピュータ900のCPU901は、RAM902上にロードされたプログラムを実行することによりサーバ200の機能を実現する。また、HDD904には、RAM902内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体917から読み取って実行する。この他、CPU901は、他の装置から通信網を介して目的の処理に係るプログラムを読み込んでもよい。
[効果]
 以上説明したように、複数のアクセラレータ(アクセラレータ12-1,12-2)を有し、アプリケーションの特定処理をアクセラレータにオフロードして演算処理する際に、オフロード先の計算リソースを切替える信号処理リソース切替装置100~100C(図1~図4)であって、アプリケーション(アプリケーション部1)から「関数名・引数」を受け付け、計算リソースによる関数実行時・終了時に、アプリケーションに関数の引数データを通知する関数代理実行部111と、アクセラレータの故障を検知するアクセラレータ故障検知部110と、計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定部120と、を備え、関数代理実行部111は、オフロード先計算リソース決定部120が決定したリソースに対してオフロードを行うことを特徴とする。
 上述したように、アクセラレータを搭載した計算機システムでは、アクセラレータが単体で故障する場合があり、このときの計算の継続が必要となる。
 関数代理実行部111が、アプリケーションとアクセラレータオフロード処理を分離し、アクセラレータ12のみの切替を、アプリケーション改造なく実現する。また、関数代理実行部111が、アプリケーションに変更を加えずオフロード先を切替可能とする。これにより、アプリケーションの再起動・移行なくアクセラレータを切り替える。さらに、故障検知結果に応じて自動的に切替を行うことで、<要件1:透過性>を実現する。その結果、アクセラレータが利用不可となる際に、アプリケーションからの指示なく、演算処理を最大限継続させることができる。
 信号処理リソース切替システム1000~1000C(図1~図4)において、関数代理実行部111から、時系列でのタスク処理状況を受け取り、各計算リソースにおける未完了演算タスクを保持するタスク処理状況記録部160と、オフロード先計算リソース決定部120から受け付けた「切替元計算リソースの識別子」をもとに、切替元計算リソースの未完了演算タスクの再実行を、関数代理実行部111に指示するタスク再オフロード指示部170と、を備えることを特徴とする。
 このようにすることにより、残タスクを管理するタスク処理状況記録部160が、アクセラレータの処理完了前タスクを記録し、タスク再オフロード指示部170が、突発故障時には自動的に再オフロードを行う。これにより、<要件1:透過性>と<要件2:突発故障時の可用性の高さ>を両立することができる。<要件2:突発故障時の可用性の高さ>は、故障検知と連携した自動でのオフロード先切替と、アクセラレータタスク処理状況をもととした自動再投入により、切替時間を最小化することである。その結果、アクセラレータ故障時の自動タスク再オフロードによる、自動処理継続を実現することができる。
 信号処理リソース切替システム1000~1000C(図1~図4)において、オフロード先計算リソース決定部120は、故障が発生したアクセラレータと、切り替えるアクセラレータの代わりとなるフェイルオーバ先アクセラレータとを選定して、関数代理実行部111に設定するとともに、タスク再オフロード指示部170に対して、故障が発生したアクセラレータと、フェイルオーバ先アクセラレータを通知し、タスクの再投入を指示することを特徴とする。
 このようにすることにより、故障検知と連携した自動でのオフロード先切替と、アクセラレータタスク処理状況をもとにした自動再投入により、切替時間を最小化することができ、<要件2:突発故障時の可用性の高さ>を実現することができる。
 信号処理リソース切替システム1000~1000C(図1~図4)において、アクセラレータの故障を予測し、故障を予測した切替対象アクセラレータを通知するアクセラレータ故障予測部130と、アクセラレータ故障予測部130から切替対象アクセラレータの通知を受けた場合、切替対象アクセラレータについては新規のタスク投入の抑止をタスク再オフロード指示部170に指示する計画停止用タスク投入抑制部140と、を備えることを特徴とする。
 このようにすることにより、アクセラレータ故障予測部130が、アクセラレータの故障を予測し、切離対象のアクセラレータについては、計画停止用タスク投入抑制部140が、タスク投入を抑制し、オフロード先を他計算リソースに切り替える。これにより、<要件3:意図的な切離時の処理継続>を実現することができる。<要件3:意図的な切離時の処理継続>は、切替対象アクセラレータへのタスク投入を抑制し、タスクが空となったことを確認してから切替を行うことでの演算継続することである。その結果、アクセラレータタスク投入の抑制による、意図的な切離時の無瞬断切替を実現することができる。
 サーバ250と、ネットワーク2を介して接続された遠隔側サーバ260と、を備え、サーバ250がアプリケーション(アプリケーション部1)の特定処理を当該サーバ250または遠隔側サーバ260に配置されたアクセラレータ(アクセラレータ12-1,12-2,アクセラレータ(遠隔)12)にオフロードして演算処理する信号処理リソース切替システム1000~1000C(図1~図4)であって、サーバ250内またはサーバ250外に、オフロード先の計算リソースを切替える信号処理リソース切替装置100~100C(図1~図4)を設け、信号処理リソース切替装置100は、アプリケーションから「関数名・引数」を受け付け、計算リソースによる関数実行時・終了時に、アプリケーションに関数の引数データを通知する関数代理実行部111と、アクセラレータの故障を検知するアクセラレータ故障検知部110と、計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定部120と、を備え、関数代理実行部111は、オフロード先計算リソース決定部120が決定した前記リソースに対してオフロードを行うことを特徴とする。
 これにより、サーバ250と、ネットワーク2を介して接続された遠隔側サーバ260と、を備える信号処理リソース切替システム1000~1000Cにおいて、オフロード先計算リソース決定部120は、計算リソースである「サーバに搭載されたアクセラレータ12-1,12-2、CPU11、遠隔側サーバのアクセラレータ(遠隔)12」のうち、故障しておらず(未故障で)、利用可能なものを選び、関数代理実行部111に通知する。関数代理実行部111が、故障検知結果に応じて自動的に切替を行うことで、<要件1:透過性>を実現する。
 特に、従来では、図17に示したように、ハードウェアの故障を検知したのちに、該当のハードウェアを利用するアプリケーション/VMを、他サーバにマイグレーションさせ、処理を継続する必要があり、CPUが故障していないにも関わらず、アプリケーション/VM全体を移行もしくは再起動していた。これに対して、本実施形態では、信号処理リソース切替システム1000~1000C(図1~図4)において、<要件1:透過性>および<要件2:突発故障時の可用性の高さ>を実現することができ、アクセラレータが利用不可となる際に、アプリケーションからの指示なく、演算処理を最大限継続させることができる。
 また、上記実施形態および変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。
 1 アプリケーション部(アプリケーション)
 2 ネットワーク(NW)
 10 ハードウェア
 11 CPU
 12,12-1,12-2 アクセラレータ
 13 NIC
 100,100A,100B,100C 信号処理リソース切替装置
 110 アクセラレータ故障検知部
 111 関数代理実行部
 120 オフロード先計算リソース決定部
 130 アクセラレータ故障予測部
 140 計画停止用タスク投入抑制部
 150 アクセラレータメンテナンス設定部
 160 タスク処理状況記録部
 170 タスク再オフロード指示部
 250 サーバ(サーバ<1>)
 260 遠隔側サーバ(サーバ<2>)
 1000,1000A,1000B,1000C 信号処理リソース切替システム

Claims (8)

  1.  複数のアクセラレータを有し、アプリケーションの特定処理を前記アクセラレータにオフロードして演算処理する際に、オフロード先の計算リソースを切替える信号処理リソース切替装置であって、
     アプリケーションから関数名および引数を受け付け、計算リソースによる関数実行時および終了時に、アプリケーションに関数の引数データを通知する関数代理実行部と、
     アクセラレータの故障を検知するアクセラレータ故障検知部と、
     前記計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定部と、を備え、
     前記関数代理実行部は、前記オフロード先計算リソース決定部が決定した前記リソースに対してオフロードを行う
     ことを特徴とする信号処理リソース切替装置。
  2.  前記関数代理実行部から、時系列でのタスク処理状況を受け取り、各計算リソースにおける未完了演算タスクを保持するタスク処理状況記録部と、
     前記オフロード先計算リソース決定部から受け付けた切替元計算リソースの識別子をもとに、切替元計算リソースの未完了演算タスクの再実行を、前記関数代理実行部に指示するタスク再オフロード指示部と、を備える
     ことを特徴とする請求項1に記載の信号処理リソース切替装置。
  3.  前記オフロード先計算リソース決定部は、故障が発生したアクセラレータと、切り替えるアクセラレータの代わりとなるフェイルオーバ先アクセラレータとを選定し、前記関数代理実行部に設定するとともに、
     前記タスク再オフロード指示部に対して、故障が発生したアクセラレータと、フェイルオーバ先アクセラレータを通知し、タスクの再投入を指示する
     ことを特徴とする請求項2に記載の信号処理リソース切替装置。
  4.  アクセラレータの故障を予測し、故障を予測した切替対象アクセラレータを通知するアクセラレータ故障予測部と、
     前記アクセラレータ故障予測部から切替対象アクセラレータの通知を受けた場合、切替対象アクセラレータについては新規のタスク投入の抑止を前記タスク再オフロード指示部に指示する計画停止用タスク投入抑制部と、を備える
     ことを特徴とする請求項3に記載の信号処理リソース切替装置。
  5.  サーバと、ネットワークを介して接続された遠隔側サーバと、を備え、前記サーバがアプリケーションの特定処理を当該サーバまたは前記遠隔側サーバに配置されたアクセラレータにオフロードして演算処理する信号処理リソース切替システムであって、
     前記サーバ内または前記サーバ外に、オフロード先の計算リソースを切替える信号処理リソース切替装置を設け、
     前記信号処理リソース切替装置は、
     アプリケーションから関数名および引数を受け付け、計算リソースによる関数実行時および終了時に、アプリケーションに関数の引数データを通知する関数代理実行部と、
     アクセラレータの故障を検知するアクセラレータ故障検知部と、
     計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定部と、を備え、
     前記関数代理実行部は、前記オフロード先計算リソース決定部が決定した前記リソースに対してオフロードを行う
     ことを特徴とする信号処理リソース切替システム。
  6.  複数のアクセラレータを有し、アプリケーションの特定処理を前記アクセラレータにオフロードして演算処理する際に、オフロード先の計算リソースを切替える信号処理リソース切替装置の信号処理リソース切替方法であって、
     前記信号処理リソース切替装置は、
     アプリケーションから関数名および引数を受け付け、計算リソースによる関数実行時および終了時に、前記アプリケーションに関数の引数データを通知するとともに、決定したリソースに対してオフロードを行うステップと、
     前記アクセラレータの故障を検知するステップと、
     前記計算リソースのうち、未故障、かつ、利用可能なリソースを決定するステップと、実行する
     ことを特徴とする信号処理リソース切替方法。
  7.  サーバと、ネットワークを介して接続された遠隔側サーバと、を備え、前記サーバがアプリケーションの特定処理を当該サーバまたは前記遠隔側サーバに配置されたアクセラレータにオフロードして演算処理する信号処理リソース切替システムの信号処理リソース切替方法であって、
     前記サーバ内または前記サーバ外に、オフロード先の計算リソースを切替える信号処理リソース切替装置を設けており、
     前記信号処理リソース切替装置は、
     アプリケーションから関数名および引数を受け付け、計算リソースによる関数実行時および終了時に、アプリケーションに関数の引数データを通知するとともに、決定したリソースに対してオフロードを行うステップと、
     前記アクセラレータの故障を検知するステップと、
     前記計算リソースのうち、未故障、かつ、利用可能なリソースを決定するステップと、実行する
     ことを特徴とする信号処理リソース切替方法。
  8.  複数のアクセラレータを有し、アプリケーションの特定処理を前記アクセラレータにオフロードして演算処理する際に、オフロード先の計算リソースを切替える信号処理リソース切替装置としてコンピュータに、
     アプリケーションから関数名および引数を受け付け、計算リソースによる関数実行時および終了時に、アプリケーションに関数の引数データを通知するとともに、決定したリソースに対してオフロードを行う関数代理実行手順、
     アクセラレータの故障を検知するアクセラレータ故障検知手順、
     前記計算リソースのうち、未故障、かつ、利用可能なリソースを決定するオフロード先計算リソース決定手順、
     を実行させるためのプログラム。
PCT/JP2022/027324 2022-07-11 2022-07-11 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム WO2024013828A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/027324 WO2024013828A1 (ja) 2022-07-11 2022-07-11 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/027324 WO2024013828A1 (ja) 2022-07-11 2022-07-11 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2024013828A1 true WO2024013828A1 (ja) 2024-01-18

Family

ID=89536157

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/027324 WO2024013828A1 (ja) 2022-07-11 2022-07-11 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム

Country Status (1)

Country Link
WO (1) WO2024013828A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689272A (ja) * 1992-09-09 1994-03-29 Hokkaido Nippon Denki Software Kk マルチプロセッサ制御方式
JP2006127462A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2008055992A (ja) * 2006-08-30 2008-03-13 Hitachi Ltd ブレーキ制御装置
JP2018045415A (ja) * 2016-09-14 2018-03-22 セイコーエプソン株式会社 画像処理装置および画像処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689272A (ja) * 1992-09-09 1994-03-29 Hokkaido Nippon Denki Software Kk マルチプロセッサ制御方式
JP2006127462A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2008055992A (ja) * 2006-08-30 2008-03-13 Hitachi Ltd ブレーキ制御装置
JP2018045415A (ja) * 2016-09-14 2018-03-22 セイコーエプソン株式会社 画像処理装置および画像処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KANEKO, MASASHI, FUJIMOTO, KEI, IWASA, ERIKO: "Power-aware Dynamic Allocation-control Technology for Maximizing Power Efficiency in a Photonic Disaggregated Computer", NTT TECHNICAL JOURNAL, DENKI TSUSHIN KYOKAI, TOKYO,, JP, vol. 33, no. 5, 1 May 2021 (2021-05-01), JP , pages 54 - 57, XP009549807, ISSN: 0915-2318 *

Similar Documents

Publication Publication Date Title
KR102430869B1 (ko) 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션
JP4496093B2 (ja) 高可用性システムの遠隔エンタープライズ管理
JP4107676B2 (ja) トランザクション引継ぎシステム
US20120137293A1 (en) Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US20110191627A1 (en) System And Method for Handling a Failover Event
US8112518B2 (en) Redundant systems management frameworks for network environments
JP2007207219A (ja) 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
JP2013535745A (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
JP2007226400A (ja) 計算機管理方法、計算機管理プログラム、実行サーバの構成を管理する待機サーバ及び計算機システム
CA2376351A1 (en) Node shutdown in clustered computer system
JP2011128967A (ja) 仮想計算機の移動方法、仮想計算機システム及びプログラム
JP2005115751A (ja) 計算機システム及び計算機システムの障害兆候の検知方法
JP2004021556A (ja) 記憶制御装置およびその制御方法
US20230020519A1 (en) System and method for highly available database service
US8930539B1 (en) Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
CN111835685B (zh) 一种监控Nginx网络隔离空间的运行状态的方法和服务器
JP2009080704A (ja) 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
CN112181593A (zh) 虚拟机调度方法、装置、设备及存储介质
CN101442437B (zh) 一种实现高可用性的方法、系统及设备
WO2024013828A1 (ja) 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム
JP2011203941A (ja) 情報処理装置、監視方法、および監視プログラム
JP2009003537A (ja) 計算機
JP2014048933A (ja) プラント監視システム、プラント監視方法およびプラント監視プログラム
JP7405260B2 (ja) サーバメンテナンス制御装置、システム、制御方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22951044

Country of ref document: EP

Kind code of ref document: A1