[go: up one dir, main page]

JP2009230590A - Arithmetic device for executing distributed processing, server and distributed processing method - Google Patents

Arithmetic device for executing distributed processing, server and distributed processing method Download PDF

Info

Publication number
JP2009230590A
JP2009230590A JP2008076904A JP2008076904A JP2009230590A JP 2009230590 A JP2009230590 A JP 2009230590A JP 2008076904 A JP2008076904 A JP 2008076904A JP 2008076904 A JP2008076904 A JP 2008076904A JP 2009230590 A JP2009230590 A JP 2009230590A
Authority
JP
Japan
Prior art keywords
calculation
server
distributed processing
time step
arithmetic
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2008076904A
Other languages
Japanese (ja)
Other versions
JP5181762B2 (en
Inventor
Yasuyoshi Ito
泰善 伊藤
Yoichi Kochibe
陽一 巨智部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008076904A priority Critical patent/JP5181762B2/en
Publication of JP2009230590A publication Critical patent/JP2009230590A/en
Application granted granted Critical
Publication of JP5181762B2 publication Critical patent/JP5181762B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】分散処理システムの演算を一時停止させても該分散処理システムを構成する演算装置の演算結果にズレが生じない同期制御を行う。
【解決手段】サーバから分散処理の一時停止の要求を受信したとき、演算装置を停止させる演算処理一時停止部と、分散処理が停止したときに、サーバから演算装置ごとに設けられた分散処理の演算進度をカウントするカウンタの値を参照する演算タイムステップ参照通知に基づいて、カウンタ値を取得しサーバに送信する演算タイムステップ参照部と、演算装置ごとの演算タイムステップ参照部から取得したカウンタ値から最大値を検出して検出したカウンタ値の最大値に1カウント加算したタイムステップ最大値をサーバから取得してレジスタに記録する演算終了タイムステップ更新部と、停止状態から分散処理を再開する演算再開部と、を備え、分散処理を再開してタイムステップ最大値まで進めてから再度分散処理を停止する。
【選択図】図1
Synchronous control is performed such that even if computation of a distributed processing system is temporarily stopped, a computation result of a computing device constituting the distributed processing system does not shift.
When a request for suspension of distributed processing is received from a server, an arithmetic processing suspension unit that stops the arithmetic device and a distributed processing provided for each arithmetic device from the server when the distributed processing stops. Based on the calculation time step reference notification that refers to the value of the counter that counts the calculation progress, the counter value acquired from the calculation time step reference unit that acquires the counter value and transmits it to the server, and the calculation time step reference unit for each calculation device An operation end time step update unit that obtains from the server the time step maximum value obtained by adding 1 count to the maximum counter value detected by detecting the maximum value from the server and records it in the register, and an operation that resumes the distributed processing from the stopped state A resuming unit, and resumes the distributed processing to advance to the time step maximum value, and then stops the distributed processing again.
[Selection] Figure 1

Description

本発明は、分散処理装置のタイムステップの同期制御の技術に関する。   The present invention relates to a technique for synchronous control of time steps of a distributed processing apparatus.

近年、分散処理システム環境下においてSPMD(単一プログラム複数データ)型プログラムなどのプログラムを実行する際、実行後の途中経過を確認してから、再度実行を継続するために、同期して停止させたいというニーズがある。   In recent years, when executing a program such as an SPMD (single program multiple data) type program in a distributed processing system environment, after confirming the progress after execution, the program is stopped synchronously in order to continue execution. There is a need to want.

従来は、SPMD型プログラムを同期して停止させる場合には、汎用OS(Operating System)搭載の計算機(サーバ)により、計算機同士によるメッセージパッシングや同期関数などを用いることにより実現していた。   Conventionally, when an SPMD type program is stopped synchronously, it has been realized by using a message passing or a synchronization function between computers by a computer (server) equipped with a general-purpose OS (Operating System).

図7は、従来の各計算機(サーバ)間のやり取りで同期を実現する場合の分散処理システムの構成を示す図である。分散処理システム70は4台のサーバA(71a)、サーバB(71b)、サーバC(71c)、サーバD(71d)から構成されている。各サーバA〜D(71a〜71d)はCPU72(72a〜72d)とOS74(74a〜74d)を有し、各CPUは演算部73(73a〜73d)を有している。演算部73は演算処理を実行し、OS74はサーバA〜D(71a、71b、71c、71d)自身の制御および、各サーバ同士の制御を行っている。   FIG. 7 is a diagram showing a configuration of a distributed processing system in the case where synchronization is realized by exchange between conventional computers (servers). The distributed processing system 70 includes four servers A (71a), a server B (71b), a server C (71c), and a server D (71d). Each server AD (71a-71d) has CPU72 (72a-72d) and OS74 (74a-74d), and each CPU has the calculating part 73 (73a-73d). The calculation unit 73 performs calculation processing, and the OS 74 performs control of the servers A to D (71a, 71b, 71c, 71d) themselves and each server.

各サーバA〜D(71a〜71d)には、それぞれSPMD型プログラムP0(P1、P2、P3、P4)が実装され、外部から入力されるデータD1〜D3を用いてサーバ71b、71c、71dがそれぞれに割り当てられた演算を実行する。また、サーバA(71a)は親サーバとして、他のサーバB〜D(71b、71c、71d)との通信を行い、命令およびデータの送受信をする。他のサーバB〜D(71b、71c、71d)間でも通信を行う。   SPMD type programs P0 (P1, P2, P3, P4) are respectively installed in the servers A to D (71a to 71d), and the servers 71b, 71c, and 71d are stored using data D1 to D3 input from the outside. Perform the operations assigned to each. Server A (71a), as a parent server, communicates with other servers B to D (71b, 71c, 71d) to send and receive commands and data. Communication is also performed between the other servers B to D (71b, 71c, 71d).

通常、上記のような構成の分散処理システムでは、利用者が演算の途中経過を確認する場合に、利用者が親サーバであるサーバA(71a)のOS74aから演算一時停止命令を出力する。各サーバB〜D(71b、71c、71d)のOS74b、74c、74dに対して送信される。その後、演算一時停止命令を受信した各サーバA〜D(71a、71b、71c、71d)は一時停止の準備後、演算を停止させる。   Normally, in the distributed processing system configured as described above, when the user confirms the progress of the computation, the user outputs a computation suspension command from the OS 74a of the server A (71a) which is the parent server. It is transmitted to the OS 74b, 74c, 74d of each server BD (71b, 71c, 71d). After that, each of the servers A to D (71a, 71b, 71c, 71d) that has received the calculation pause command stops the calculation after preparing for the pause.

図8は、図7に示した分散処理システムの動作を説明する図である。
ステップS81では、サーバA(71a)がサーバB(71b)に演算の開始を指示する(サーバB演算開始通知)。ステップS82では、サーバB(71b)がサーバB演算開始通知を受信して、ステップS83のタイミングからプログラムP0の実行を開始する。
FIG. 8 is a diagram for explaining the operation of the distributed processing system shown in FIG.
In step S81, the server A (71a) instructs the server B (71b) to start computation (server B computation start notification). In step S82, the server B (71b) receives the server B calculation start notification and starts executing the program P0 from the timing of step S83.

次に、ステップS84では、サーバA(71a)がサーバC(71c)に演算の開始を指示する(サーバC演算開始通知)。ステップS85では、サーバC(71c)がサーバC演算開始通知を受信して、ステップS86のタイミングからプログラムP0の実行を開始する。   Next, in step S84, the server A (71a) instructs the server C (71c) to start computation (server C computation start notification). In step S85, the server C (71c) receives the server C calculation start notification and starts executing the program P0 from the timing of step S86.

同様に、ステップS87では、サーバA(71a)がサーバD(71d)に演算の開始を指示する(サーバD演算開始通知)。ステップS88では、サーバD(71d)がサーバD演算開始通知を受信して、ステップS89のタイミングからプログラムP0の実行を
開始する。
Similarly, in step S87, server A (71a) instructs server D (71d) to start computation (server D computation start notification). In step S88, the server D (71d) receives the server D calculation start notification, and starts executing the program P0 from the timing of step S89.

ステップS810のタイミングでは、サーバA(71a)は他のサーバB〜D(71b〜71d)の演算が終了するまで待機状態になる。
ステップS814ではサーバB(71b)の演算が終了し、サーバB(71b)からサーバB演算終了通知が送信される。ステップS815のタイミングでサーバA(71a)はサーバB演算終了通知を受信する。次に、ステップS816ではサーバC(71c)の演算が終了し、サーバC(71c)からサーバC演算終了通知が送信される。ステップS817のタイミングでサーバA(71a)はサーバC演算終了通知を受信する。同様に、ステップS818ではサーバD(71d)の演算が終了し、サーバD(71d)からサーバD演算終了通知が送信される。ステップS819のタイミングでサーバA(71a)はサーバD演算終了通知を受信する。
At the timing of step S810, the server A (71a) is in a standby state until the calculations of the other servers B to D (71b to 71d) are completed.
In step S814, the calculation of the server B (71b) ends, and a server B calculation end notification is transmitted from the server B (71b). At the timing of step S815, the server A (71a) receives the server B calculation end notification. Next, in step S816, the calculation of the server C (71c) ends, and a server C calculation end notification is transmitted from the server C (71c). At the timing of step S817, the server A (71a) receives a server C calculation end notification. Similarly, in step S818, the calculation of server D (71d) ends, and a server D calculation end notification is transmitted from server D (71d). At the timing of step S819, the server A (71a) receives the server D calculation end notification.

ステップS820のタイミングでは、サーバA(71a)は他のサーバB〜D(71b〜61d)の演算が終了したことを判断して待機状態から抜ける。ステップS821では次のプログラムが実行される。   At the timing of step S820, the server A (71a) determines that the computations of the other servers B to D (71b to 61d) have ended, and exits the standby state. In step S821, the following program is executed.

しかしながら、上記のようにOS(ソフトウェア)によりSPMD型プログラムの実行を制御している場合に、各サーバA〜D(71a〜71d)に演算を一時停止させると、各サーバA〜D(71a〜71d)の実行した演算結果にズレが生じてしまうという問題がある。   However, when the execution of the SPMD type program is controlled by the OS (software) as described above, if each of the servers A to D (71a to 71d) pauses the computation, each of the servers A to D (71a to 71a) There is a problem that a deviation occurs in the calculation result executed in 71d).

また、特許文献1、特許文献2にはFPGAを使ったサーバ間での同期処理が提案されている。
特開平11−312148号公報 特開平02−090357号公報
Patent Documents 1 and 2 propose a synchronization process between servers using an FPGA.
JP 11-31148 A Japanese Patent Laid-Open No. 02-090357

分散処理装置の演算を一時停止させても該分散処理装置を構成する演算装置の演算結果にズレが生じない同期制御を行うことを目的とする。   It is an object of the present invention to perform synchronous control that does not cause a deviation in the calculation results of the calculation devices constituting the distributed processing device even if the calculation of the distributed processing device is temporarily stopped.

態様のひとつであるサーバと接続される分散処理を実行する複数の演算装置であって、前記サーバから前記分散処理の一時停止の要求を受信したとき、前記演算装置を停止させる演算処理一時停止部と、分散処理が停止したときに、前記サーバから前記演算装置ごとに設けられた分散処理の演算進度をカウントするカウンタの値を参照する演算タイムステップ参照通知に基づいて、前記カウンタ値を取得し前記サーバに送信する演算タイムステップ参照部と、前記演算装置ごとの前記演算タイムステップ参照部から取得した前記カウンタ値から最大値を検出して前記検出した前記カウンタ値の最大値に少なくとも1カウント加算したタイムステップ最大値を前記サーバから取得してレジスタに記録する演算終了タイムステップ更新部と、停止状態から前記分散処理を再開する演算再開部と、を備え、前記分散処理を再開して前記タイムステップ最大値まで進めてから再度分散処理を停止する。   An arithmetic processing pause unit that is a plurality of arithmetic devices that execute distributed processing connected to a server that is one of the aspects, and that stops the arithmetic device when a request for suspension of the distributed processing is received from the server And when the distributed processing is stopped, the counter value is acquired based on a calculation time step reference notification that refers to the value of the counter that counts the calculation progress of the distributed processing provided for each of the arithmetic devices from the server. An arithmetic time step reference unit to be transmitted to the server, and a maximum value is detected from the counter value acquired from the arithmetic time step reference unit for each arithmetic device, and at least one count is added to the detected maximum value of the counter value An operation end time step update unit that obtains the maximum value of the time step obtained from the server and records it in a register, and a stop And a resuming operation resumption section the distributed processing from the state, stopping the dispersion treatment resumed to re-dispersion treatment from advancing to the time step maximum value.

上記のように専用ハードハードウェアである演算装置を設けることにより、演算装置にOSなどが不要となる。また、サーバからの指示により演算装置が演算を実行するためシステム全体の整合をとることが容易にできる。   By providing an arithmetic device that is dedicated hardware as described above, an OS or the like is not required for the arithmetic device. In addition, since the arithmetic unit executes an arithmetic operation according to an instruction from the server, it is possible to easily match the entire system.

分散処理装置の演算を一時停止させても該分散処理装置を構成する演算装置の演算結果にズレが生じない同期制御を行うことができる。   Even when the computation of the distributed processing apparatus is temporarily stopped, it is possible to perform synchronous control that does not cause a deviation in the computation results of the computing apparatus constituting the distributed processing apparatus.

以下図面に基づいて、本発明の実施形態について詳細を説明する。
(実施例1)
図1は、1台の計算機(サーバ:ホストPC等)と複数台の専用ハードウェアにより構成された分散処理システムの構成を示す図である。図1に示す分散処理システム1は、サーバ2と、複数の演算装置3(3a、3b、3c〜:専用ハードウェア)から構成されている。そして、図1に示す分散処理システム1を用いてSPMDプログラムなどの分散処理をする場合の演算一時停止時の同期ズレを防止する。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Example 1
FIG. 1 is a diagram showing a configuration of a distributed processing system including one computer (server: host PC or the like) and a plurality of dedicated hardware. A distributed processing system 1 shown in FIG. 1 includes a server 2 and a plurality of arithmetic devices 3 (3a, 3b, 3c˜: dedicated hardware). And the synchronization shift | offset | difference at the time of a calculation suspension in the case of performing distributed processing, such as an SPMD program, using the distributed processing system 1 shown in FIG. 1 is prevented.

図2を用いてSPMDプログラムの同期ズレについて説明する。例えば、流体の動きをシミュレーションする場合について説明する。図2Aは、流体の動きを8つの空間に分け、演算装置(ハード1〜ハード4)4台を用いて分散処理を行う場合について示している。ハード1は3つの空間の演算を担当し、ハード2は1つの空間の演算を担当し、ハード3は3つの空間の演算を担当し、ハード4は1つの空間の演算を担当する。   The synchronization deviation of the SPMD program will be described with reference to FIG. For example, the case of simulating fluid movement will be described. FIG. 2A shows a case where the movement of the fluid is divided into eight spaces and distributed processing is performed using four arithmetic devices (hardware 1 to hardware 4). The hardware 1 is in charge of operations in three spaces, the hardware 2 is in charge of operations in one space, the hardware 3 is in charge of operations in three spaces, and the hardware 4 is in charge of operations in one space.

図2Bに示す縦軸は演算装置の名称を示し、横軸はシミュレーションにおける進度を示す(カウント値:タイムステップ)。例えば、流体が1秒後、2秒後・・・にどのような状態になるかを示している。   The vertical axis shown in FIG. 2B indicates the name of the arithmetic device, and the horizontal axis indicates the progress in the simulation (count value: time step). For example, it shows what state the fluid will be after 1 second, 2 seconds, and so on.

ハード1〜4が分散処理を同時にスタートし(カウント値=0、実時間=0秒)、カウント値3で停止させる場合、担当する空間が多い演算装置の演算の進みは遅くなる。図2Bではハード2がカウント値3まで演算を進めていれば、ハード1は空間の担当している量がハード2の3倍なので進度は1/3になる。つまり、実時間で停止するとハード1とハード2のカウント値にズレがでてしまう。   When the hardware 1 to 4 start the distributed processing at the same time (count value = 0, real time = 0 seconds) and stop at the count value 3, the calculation progress of the arithmetic device having a large space in charge becomes slow. In FIG. 2B, if the hardware 2 advances the calculation to the count value 3, the progress of the hardware 1 becomes 1/3 because the amount of the space 1 is three times that of the hardware 2. In other words, when stopped in real time, the count values of hardware 1 and hardware 2 will be shifted.

そこで、ハード1〜ハード4までの全てのカウント値が同じになるまで演算を実行して同期ズレをなくす。
図3にサーバ2の構成を示す。サーバ2は通信部33と、OS34(Operating System)、演算部35、演算データ設定指示部36、演算終了タイムステップ設定指示部37、演算開始指示部38、演算一時停止指示部39、演算タイムステップ参照指示部310、演算終了タイムステップ更新指示部311、演算再開指示部312、リスタートデータ取得指示部313を搭載している。
Therefore, the calculation is executed until all the count values from hardware 1 to hardware 4 become the same, thereby eliminating the synchronization shift.
FIG. 3 shows the configuration of the server 2. The server 2 includes a communication unit 33, an OS 34 (Operating System), a calculation unit 35, a calculation data setting instruction unit 36, a calculation end time step setting instruction unit 37, a calculation start instruction unit 38, a calculation pause instruction unit 39, and a calculation time step. A reference instruction unit 310, a calculation end time step update instruction unit 311, a calculation resumption instruction unit 312, and a restart data acquisition instruction unit 313 are installed.

通信部33は、各演算装置3(3a〜3c)との通信を行う。
演算部35は、SPMD(単一プログラム複数データ)型プログラムなどを含むプログラムを実行する。また、演算部35は最大値タイムステップ演算部314を有している。ここで、図1においてサーバ2が実行するSPMDプログラムは、図7、図8を用いて説明したプログラムP0のうちプログラムP1に関する部分である。また、サーバ2は、各演算装置3に対してSPMDプログラムに用いる演算データを送信する。図1では、SPMDプログラムのうちプログラムP2〜P4に用いる演算データD1〜D3が送信される。また、サーバ2はSPMDプログラムを実行する指示も各演算装置3に転送する。
The communication unit 33 communicates with each arithmetic device 3 (3a to 3c).
The arithmetic unit 35 executes a program including an SPMD (single program multiple data) type program. Further, the calculation unit 35 has a maximum value time step calculation unit 314. Here, the SPMD program executed by the server 2 in FIG. 1 is a portion related to the program P1 in the program P0 described with reference to FIGS. Further, the server 2 transmits calculation data used for the SPMD program to each calculation device 3. In FIG. 1, calculation data D1 to D3 used for programs P2 to P4 in the SPMD program are transmitted. The server 2 also transfers an instruction to execute the SPMD program to each arithmetic device 3.

演算データ設定指示部36は、サーバ2に接続された入力装置(不図示)から入力された演算データを各演算装置3に設定する指示を生成する。
演算終了タイムステップ設定指示部37は、分散処理により演算するシミュレーションを終了するタイムステップを各演算装置3に設定する指示を生成する。
The arithmetic data setting instruction unit 36 generates an instruction to set arithmetic data input from an input device (not shown) connected to the server 2 to each arithmetic device 3.
The calculation end time step setting instruction unit 37 generates an instruction to set the time step for ending the simulation calculated by the distributed processing in each calculation device 3.

演算開始指示部38は、各演算装置3に演算開始を指示するために演算開始通知を生成する。
演算一時停止指示部39は、分散処理により演算中のシミュレーションを一時停止するときに各演算装置3に指示をするための演算一時停止通知を生成する。
The calculation start instruction unit 38 generates a calculation start notification to instruct each calculation device 3 to start calculation.
The calculation pause instruction unit 39 generates a calculation pause notice for giving an instruction to each calculation device 3 when the simulation being calculated by the distributed processing is paused.

演算タイムステップ参照指示部310は、各演算装置3の分散処理中のシミュレーションなどの演算がどこまで進んでいるかを参照するときに用いる演算タイムステップ参照通知を生成する。   The calculation time step reference instructing unit 310 generates a calculation time step reference notification used when referring to how far a calculation such as a simulation during distributed processing of each calculation device 3 has progressed.

演算終了タイムステップ更新指示部311は、各演算装置3に後述する最大値タイムステップ演算部314の演算した最大値タイムステップまで演算を進めるために各演算装置3の演算終了タイムステップレジスタ6の値を更新する演算タイムステップ更新通知を生成する。   The calculation end time step update instruction unit 311 advances the value of the calculation end time step register 6 of each calculation device 3 in order to advance the calculation to the maximum value time step calculated by the maximum value time step calculation unit 314 described later. A calculation time step update notification for updating is generated.

演算再開指示部312は、一時停止を解除して再度演算を開始する通知を生成する。
リスタートデータ取得指示部313は、演算の再開時に必要な演算データを含むデータを取得するための通知を生成する。
The calculation restart instruction unit 312 generates a notification for releasing the temporary stop and starting the calculation again.
The restart data acquisition instruction unit 313 generates a notification for acquiring data including calculation data necessary for restarting the calculation.

演算装置3は、演算部4(4a〜4c)、カウンタ5(5a〜5c)、演算終了タイムステップレジスタ6(6a〜6c)などを含んでいる。例えば、演算装置3はプログラム可能な集積回路などを用いて上記演算部4(4a〜4c)、カウンタ5(5a〜5c)、演算終了タイムステップレジスタ6(6a〜6c)を構築し、構築した各部を制御する。ここで、プログラム可能な集積回路とはFPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)などのことであるが、これらのデバイスに限定するものではない。   The computing device 3 includes a computing unit 4 (4a to 4c), a counter 5 (5a to 5c), a computation end time step register 6 (6a to 6c), and the like. For example, the arithmetic unit 3 uses the programmable integrated circuit or the like to construct the arithmetic unit 4 (4a to 4c), the counter 5 (5a to 5c), and the arithmetic end time step register 6 (6a to 6c). Control each part. Here, the programmable integrated circuit is an FPGA (Field Programmable Gate Array), a CPLD (Complex Programmable Logic Device), or the like, but is not limited to these devices.

また、演算装置3にはそれぞれ割り当てられるプログラムがあり、そのプログラムに基づいて回路が構築される。図1では演算装置3aにはプログラムP2、演算装置3bにはプログラムP3、演算装置3cにはプログラムP4が割り当てられている。例えば、FPGAを用いる場合は、外部装置(PCなど)から各演算装置3にプログラムP2、P3、P4に基づいて生成された回路構築のためのデータをメモリに格納して、コンフィギュレーション時に回路を構築する。また、サーバ2から送信されたデータD1、D2、D3を、そのデータに対応する演算装置3が受信して、そのデータを用いて演算を実行する。   The arithmetic device 3 has a program assigned thereto, and a circuit is constructed based on the program. In FIG. 1, a program P2 is assigned to the arithmetic device 3a, a program P3 is assigned to the arithmetic device 3b, and a program P4 is assigned to the arithmetic device 3c. For example, when using an FPGA, data for circuit construction generated based on the programs P2, P3, and P4 is stored in a memory from an external device (such as a PC) to each arithmetic device 3, and the circuit is configured during configuration. To construct. Also, the data D1, D2, and D3 transmitted from the server 2 are received by the computing device 3 corresponding to the data, and computation is performed using the data.

カウンタ5(5a〜5c)はサーバ2、演算装置3の同期を制御するために設けられたカウンタであり、予め設定された一定時間ごとにカウントをするカウンタである。ここで、カウンタ5がカウントする一定時間は、CPUに供給されるシステムクロックなどにより実際に時間計測するものでない。例えば、流体の動きを0〜100秒の間1秒間隔でシミュレーションする場合に、流体の10秒後の動きと、11秒後の動きが異なれば演算量も異なる。流体の動きが10秒後より11秒後の方が複雑であれば11秒後の演算量の方が10秒後の演算量より増える。つまり、カウンタ5は予め設定された時間に対応する演算が終了するごとにカウントをするカウンタである。   The counter 5 (5a to 5c) is a counter provided for controlling the synchronization of the server 2 and the arithmetic device 3, and is a counter that counts at predetermined time intervals. Here, the fixed time counted by the counter 5 is not actually measured by the system clock supplied to the CPU. For example, when the movement of the fluid is simulated at intervals of 1 second for 0 to 100 seconds, the amount of calculation is different if the movement of the fluid after 10 seconds is different from the movement after 11 seconds. If the movement of the fluid is more complicated after 11 seconds than after 10 seconds, the amount of calculation after 11 seconds is greater than the amount of calculation after 10 seconds. That is, the counter 5 is a counter that counts every time a calculation corresponding to a preset time is completed.

演算終了タイムステップレジスタ6(6a〜6c)は、例えば、シミュレーションを行う場合に、演算を終了するカウンタ5のカウント値をセットするためのレジスタである。演算終了タイムステップレジスタ6にセットするデータ(演算終了タイムステップ)はサーバ2から入力する。   The calculation end time step register 6 (6a to 6c) is a register for setting the count value of the counter 5 that ends the calculation, for example, when performing a simulation. Data to be set in the calculation end time step register 6 (calculation end time step) is input from the server 2.

図4は、演算装置3の構成を示す図である。
演算装置3は、演算部4、カウンタ5、演算終了タイムステップレジスタ6、通信部7
、制御部8、メモリ9、演算データ設定部10、演算終了タイムステップ設定部11、演算開始部12、演算一時停止部13、演算タイムステップ参照部14、演算終了タイムステップ更新部15、演算再開部16、リスタートデータ取得部17を備えている。
FIG. 4 is a diagram illustrating a configuration of the arithmetic device 3.
The arithmetic device 3 includes an arithmetic unit 4, a counter 5, an arithmetic end time step register 6, and a communication unit 7.
, Control unit 8, memory 9, calculation data setting unit 10, calculation end time step setting unit 11, calculation start unit 12, calculation pause unit 13, calculation time step reference unit 14, calculation end time step update unit 15, calculation restart Unit 16 and restart data acquisition unit 17.

通信部7は、サーバ2との間で送受信される、演算データ(各演算装置3が演算に用いるデータ)、制御データ(演算装置3自身の制御するための通知および演算を制御するための通知)を含むデータの通信制御を行う。   The communication unit 7 transmits / receives computation data (data used by each computation device 3 for computation), control data (notification for controlling the computation device 3 itself, and notification for controlling computation) transmitted / received to / from the server 2. ) Including the communication control.

制御部8は、通信部7から受信した演算データ、制御データに基づいて演算装置3を構成する各部(図4に示す4〜7、9〜17を含む)の制御を行う。メモリ9は、演算データや演算結果などのデータを記録する。   The control unit 8 controls each unit (including 4 to 7 and 9 to 17 illustrated in FIG. 4) that configures the calculation device 3 based on the calculation data and control data received from the communication unit 7. The memory 9 records data such as calculation data and calculation results.

演算データ設定部10は、演算データの設定と、該設定された演算データを制御部8を介して演算部4に転送する。演算データの演算データ設定部10への設定は、分散処理(SPMD型プログラムなど)に必要な演算データを、サーバ2に接続される入力装置(不図示)から入力し、通信部7と制御部8を介して演算データ設定部10に転送されたのち設定される。例えば、演算データ設定部10に設けられたメモリに演算データを記録する。また、演算データ設定部10は、演算が開始されると、必要に応じて制御部8から送信される上記設定した演算データを演算部4に転送するための要求通知を受け取る。その後、その要求通知に基づいて演算データを制御部8を介して演算部4へ転送する。   The calculation data setting unit 10 sets calculation data and transfers the set calculation data to the calculation unit 4 via the control unit 8. The calculation data is set in the calculation data setting unit 10 by inputting calculation data necessary for distributed processing (such as an SPMD type program) from an input device (not shown) connected to the server 2 and the communication unit 7 and the control unit. 8 is set after being transferred to the calculation data setting unit 10 via 8. For example, the calculation data is recorded in a memory provided in the calculation data setting unit 10. Further, when the calculation is started, the calculation data setting unit 10 receives a request notification for transferring the set calculation data transmitted from the control unit 8 to the calculation unit 4 as necessary. Thereafter, the calculation data is transferred to the calculation unit 4 via the control unit 8 based on the request notification.

演算終了タイムステップ設定部11は、演算終了タイムステップレジスタ6にサーバ2および各演算装置3が分散処理を終了するタイムステップを示す演算終了タイムステップデータを設定するための制御を行う。ここで、タイムステップとは上記説明したカウンタ5がカウントする値に相当する。演算終了タイムステップデータは、サーバ2から入力され通信部7と制御部8を介して演算終了タイムステップ設定部11に転送される。その後、演算終了タイムステップ設定部11は、演算終了タイムステップレジスタ6に演算終了タイムステップデータを記録する。また、制御部8は演算終了タイムステップレジスタ6に記録された演算終了タイムステップデータを参照して演算部4の演算を終了させる。   The calculation end time step setting unit 11 controls the calculation end time step register 6 to set calculation end time step data indicating the time step at which the server 2 and each calculation device 3 end the distributed processing. Here, the time step corresponds to a value counted by the counter 5 described above. The calculation end time step data is input from the server 2 and transferred to the calculation end time step setting unit 11 via the communication unit 7 and the control unit 8. Thereafter, the calculation end time step setting unit 11 records the calculation end time step data in the calculation end time step register 6. Further, the control unit 8 refers to the calculation end time step data recorded in the calculation end time step register 6 and ends the calculation of the calculation unit 4.

演算開始部12は分散処理の演算を開始するときに用いる。サーバ2から演算開始通知を受信したら全ての演算装置3の演算部4を開始する。演算開始通知は、サーバ2から送信され通信部7により受信され、通信部7から制御部8を介して演算開始部12に送信される。例えば、演算開始部12に演算開始フラグを設けて、演算開始通知の内容が演算開始を示していれば演算開始フラグを開始中の状態に遷移させ、演算部4で分散処理の演算を開始する。なお、演算開始時に演算開始部12を参照して開始状態に遷移したことを検出して、上記カウンタ5の値を初期状態にしてもよい。   The calculation start unit 12 is used when starting calculation of distributed processing. When the calculation start notification is received from the server 2, the calculation units 4 of all the calculation devices 3 are started. The calculation start notification is transmitted from the server 2 and received by the communication unit 7, and is transmitted from the communication unit 7 to the calculation start unit 12 via the control unit 8. For example, if a calculation start flag is provided in the calculation start unit 12 and the content of the calculation start notification indicates calculation start, the calculation start flag is changed to a starting state, and the calculation unit 4 starts calculation of distributed processing. . Note that the value of the counter 5 may be set to the initial state by detecting the transition to the start state with reference to the calculation start unit 12 at the start of the calculation.

演算一時停止部13は、分散処理の演算途中に一時停止するときに用いる。サーバ2から演算一時停止通知を受信したら全ての演算装置3の演算部4を即時停止する。演算一時停止通知は、サーバ2から送信され通信部7により受信され、通信部7から制御部8を介して演算一時停止部13に送信される。例えば、演算一時停止部13に演算一時停止フラグを設けて、分散処理の一時停止通知の内容が演算一時停止を示していれば演算一時停止フラグを一時停止中の状態に遷移させ、演算部4を即時停止する。また、演算部4で演算された演算結果もメモリ9などに保持しておく。   The calculation pause unit 13 is used to pause during calculation of distributed processing. When the calculation suspension notification is received from the server 2, the calculation units 4 of all the calculation devices 3 are immediately stopped. The calculation suspension notification is transmitted from the server 2 and received by the communication unit 7, and is transmitted from the communication unit 7 to the calculation suspension unit 13 via the control unit 8. For example, a calculation pause flag is provided in the calculation pause unit 13, and if the content of the suspension notification of distributed processing indicates calculation pause, the calculation pause flag is changed to a paused state, and the calculation unit 4 Stop immediately. The calculation result calculated by the calculation unit 4 is also stored in the memory 9 or the like.

演算タイムステップ参照部14は、カウンタ5の値を参照して現在どのタイムステップまで演算が実行されているかを検出する。演算タイムステップ参照部14は、カウンタ5の値を取得して制御部8に転送する。そして、通信部7は、制御部8を介して一時停止したタイムステップの示す値をサーバ2に送信する。   The calculation time step reference unit 14 refers to the value of the counter 5 and detects up to which time step the calculation is currently executed. The calculation time step reference unit 14 acquires the value of the counter 5 and transfers it to the control unit 8. Then, the communication unit 7 transmits the value indicated by the time step temporarily stopped to the server 2 via the control unit 8.

演算終了タイムステップ更新部15は、各演算装置3から送信された一時停止したときのタイムステップの値に基づいて生成されたタイムステップ最大値を受信する。演算終了タイムステップ更新部15は、タイムステップ最大値通知を受信すると、演算終了タイムステップ設定部11を介して演算終了タイムステップレジスタにタイムステップ最大値通知の示すタイムステップを設定する。タイムステップ最大値はサーバ2で生成される。サーバ2が収集した各演算装置3の一時停止時のタイムステップのうち最大のタイムステップを選択し、選択した最大のタイムステップにさらに少なくとも1タイムステップを追加したものである。例えば、演算装置3aの一時停止時のタイムステップT1、演算装置3bの停止時のタイムステップT2、演算装置3cの停止時のタイムステップT3のうち、最大の停止時のタイムステップがT1であればT1+1をタイムステップ最大値にし、タイムステップ最大値通知に含めて通知をする。   The calculation end time step update unit 15 receives the maximum time step value generated based on the time step value transmitted from each calculation device 3 when paused. When the calculation end time step update unit 15 receives the time step maximum value notification, the calculation end time step update unit 15 sets the time step indicated by the time step maximum value notification in the calculation end time step register via the calculation end time step setting unit 11. The time step maximum value is generated by the server 2. The maximum time step is selected from the time steps at the time of suspension of each arithmetic device 3 collected by the server 2, and at least one time step is further added to the selected maximum time step. For example, if the time step T1 when the arithmetic device 3a is temporarily stopped, the time step T2 when the arithmetic device 3b is stopped, and the time step T3 when the arithmetic device 3c is stopped, the maximum time step when stopping is T1. T1 + 1 is set to the maximum time step value and is included in the time step maximum value notification.

演算再開部16は、一時停止した演算を再開させタイムステップ最大値になるまで演算を実行する。演算再開部16は、演算終了タイムステップレジスタ6を参照してタイムステップ最大値の取得と、制御部8を介して演算部4に演算再開の通知をするとともに、メモリに一時保存した演算結果などのデータを演算部に転送するように通知をする。   The calculation restarting unit 16 restarts the temporarily stopped calculation and executes the calculation until the time step reaches the maximum value. The calculation resuming unit 16 refers to the calculation end time step register 6 to acquire the maximum time step value, notifies the calculation unit 4 via the control unit 8 of the calculation restart, and the calculation result temporarily stored in the memory. The data is notified to be transferred to the calculation unit.

リスタートデータ取得部17は、一時停止(同期ズレのない一時停止)後に、一時停止を解除して再び演算を開始するために必要なデータを取得する。
(動作説明)
図5を用いて図1に示す分散処理装置の動作を説明する。ただし、便宜上図5ではサーバ2、演算装置3a(ハード1)、演算装置3b(ハード2)の構成を用いて説明する。
The restart data acquisition unit 17 acquires data necessary for releasing the pause and starting the operation again after the pause (pause without synchronization deviation).
(Description of operation)
The operation of the distributed processing apparatus shown in FIG. 1 will be described with reference to FIG. However, for the sake of convenience, FIG. 5 will be described using the configuration of the server 2, the arithmetic device 3a (hardware 1), and the arithmetic device 3b (hardware 2).

ステップS1からステップS2では、サーバ2の有するOSとプログラムが、分散処理を行うために実行される。ここで、プログラムとはSPMD(単一プログラム複数データ)型プログラムを含むプログラムである。   In step S1 to step S2, the OS and program of the server 2 are executed to perform distributed processing. Here, the program is a program including an SPMD (single program multiple data) type program.

ステップS3では、サーバ2に接続されている入力装置から演算データが設定され、演算データを演算装置3aに送信する。このとき演算データとともに演算装置3aを識別する演算装置識別データを送信する。   In step S3, calculation data is set from the input device connected to the server 2, and the calculation data is transmitted to the calculation device 3a. At this time, arithmetic device identification data for identifying the arithmetic device 3a is transmitted together with the arithmetic data.

ステップS4では、サーバ2から送信された演算データを演算装置3aの通信部7が受信して演算装置3aの演算データ設定部10に設定する。
ステップS5、ステップS6ではステップS3、S4と同様に演算装置3bの演算データ設定部10に演算データを設定する。
In step S4, the calculation data transmitted from the server 2 is received by the communication unit 7 of the calculation device 3a and set in the calculation data setting unit 10 of the calculation device 3a.
In steps S5 and S6, calculation data is set in the calculation data setting unit 10 of the calculation device 3b in the same manner as in steps S3 and S4.

ステップS7では、サーバ2に接続されている入力装置から分散処理の演算を終了する演算終了タイムステップ(T1_end)が設定され、演算終了タイムステップを演算装置3aに送信する。このとき演算終了タイムステップ設定通知とともに演算装置3aを識別する演算装置識別データを送信する。   In step S7, a computation end time step (T1_end) for finishing the computation of the distributed processing is set from the input device connected to the server 2, and the computation end time step is transmitted to the computation device 3a. At this time, computation device identification data for identifying the computation device 3a is transmitted together with the computation end time step setting notification.

ステップS8では、サーバ2から送信された演算終了タイムステップを演算装置3aの通信部7が受信して演算装置3aの演算終了タイムステップ設定部11に設定する。
ステップS9、ステップS10ではステップS7、S8と同様に演算装置3bの演算終了タイムステップ設定部11に演算終了タイムステップを設定する。
In step S8, the calculation end time step transmitted from the server 2 is received by the communication unit 7 of the calculation device 3a and set in the calculation end time step setting unit 11 of the calculation device 3a.
In step S9 and step S10, the calculation end time step is set in the calculation end time step setting unit 11 of the calculation device 3b as in steps S7 and S8.

例えば、T1_endに「100」を設定するとタイムステップ(カウンタ5のカウント)が100になると演算装置3aは分散処理を終了する。
ステップS11では、サーバ2に接続されている入力装置から分散処理の演算開始をす
る演算開始通知が設定され、演算開始通知を演算装置3aに送信する。このとき演算開始通知とともに演算装置3aを識別する演算装置識別データを送信する。
For example, when “100” is set in T1_end, when the time step (count of the counter 5) reaches 100, the arithmetic device 3a ends the distributed processing.
In step S11, a calculation start notification for starting calculation of distributed processing is set from the input device connected to the server 2, and the calculation start notification is transmitted to the calculation device 3a. At this time, the calculation device identification data for identifying the calculation device 3a is transmitted together with the calculation start notification.

ステップS12では、サーバ2から送信された演算開始通知を演算装置3aの通信部7が受信して演算装置3aの演算開始部12に演算が開始された状態であることを設定して演算部4の演算を開始する。また、カウンタ5のカウンタ値を0にする。   In step S12, the communication unit 7 of the calculation device 3a receives the calculation start notification transmitted from the server 2 and sets the calculation start unit 12 of the calculation device 3a to be in a state where the calculation is started, and then sets the calculation unit 4 Start the operation. Further, the counter value of the counter 5 is set to zero.

ステップS13、ステップS14ではステップS11、S12と同様に演算装置3bの演算開始部12に演算が開始された状態であることを設定する。
次に、サーバ2は演算一時停止イベントを検出する。例えば、演算一時停止イベントは分散処理の途中の演算結果を確認するために演算を一時停止するイベントである。
In steps S13 and S14, as in steps S11 and S12, the calculation start unit 12 of the calculation device 3b is set to be in a state where the calculation is started.
Next, the server 2 detects a calculation pause event. For example, the computation pause event is an event for temporarily halting computation in order to confirm a computation result in the middle of distributed processing.

ステップS15では、サーバ2に演算一時停止イベントに基づいて分散処理を一時停止するため演算一時停止通知が設定され、演算一時停止通知を演算装置3aに送信する。このとき演算一時停止通知とともに演算装置3aを識別する演算装置識別データを送信する。   In step S15, a calculation pause notification is set in the server 2 to pause the distributed processing based on the calculation pause event, and the calculation pause notification is transmitted to the calculation device 3a. At this time, computation device identification data for identifying the computation device 3a is transmitted together with the computation suspension notification.

ステップS16では、サーバ2から送信された演算一時停止通知を演算装置3aの通信部7が受信して演算装置3aの演算一時停止部13に演算が一時停止された状態であることを設定する。また、演算装置3aの演算を停止させる。また、カウンタ5のカウントを停止させる。   In step S16, the communication unit 7 of the calculation device 3a receives the calculation suspension notification transmitted from the server 2, and the calculation suspension unit 13 of the calculation device 3a sets the calculation paused state. Further, the calculation of the calculation device 3a is stopped. Further, the counter 5 stops counting.

ステップS17、ステップS18ではステップS15、S16と同様に演算装置3bの演算一時停止部13に演算が一時停止された状態であることを設定する。また、演算装置3aの演算を停止させる。   In steps S17 and S18, as in steps S15 and S16, the calculation pause unit 13 of the calculation device 3b is set to be in a state where the calculation is temporarily stopped. Further, the calculation of the calculation device 3a is stopped.

このとき、演算装置3aのカウント値は6であり、演算装置3bのカウント値は8である。
ステップS19では、サーバ2に一時停止したときのタイムステップを確認するために演算タイムステップ参照通知が設定され、演算タイムステップ参照通知を演算装置3aに送信する。このとき演算タイムステップ参照通知とともに演算装置3aを識別する演算装置識別データを送信する。
At this time, the count value of the arithmetic device 3a is 6, and the count value of the arithmetic device 3b is 8.
In step S19, the calculation time step reference notification is set to confirm the time step when the server 2 is temporarily stopped, and the calculation time step reference notification is transmitted to the calculation device 3a. At this time, arithmetic device identification data for identifying the arithmetic device 3a is transmitted together with the arithmetic time step reference notification.

ステップS20では、サーバ2から送信された演算タイムステップ参照通知を演算装置3aの通信部7が受信して演算装置3aの演算タイムステップ参照部14が、カウンタ5のカウンタ値を取得する。   In step S <b> 20, the communication unit 7 of the calculation device 3 a receives the calculation time step reference notification transmitted from the server 2, and the calculation time step reference unit 14 of the calculation device 3 a acquires the counter value of the counter 5.

ステップS21では、演算装置3aの通信部7からカウント値をサーバ2に送信する。本例では、カウント値として6を送信する。
ステップS22では、サーバ2の通信部が演算装置3aのカウント値を取得する。
In step S21, the count value is transmitted to the server 2 from the communication unit 7 of the arithmetic device 3a. In this example, 6 is transmitted as the count value.
In step S22, the communication unit of the server 2 acquires the count value of the arithmetic device 3a.

ステップS23、ステップS24、ステップS25、ステップS26では、ステップS19〜S22と同様にサーバ2が演算装置3bの一時停止時のカウント値を取得する。本例では、サーバ2はカウント値として8を取得する。   In step S23, step S24, step S25, and step S26, the server 2 acquires the count value at the time of the temporary stop of the arithmetic device 3b similarly to steps S19 to S22. In this example, the server 2 acquires 8 as the count value.

ステップS27からステップS28では、サーバ2は各演算装置3a、3bから取得したカウンタ値(一時停止時のタイムステップ)から最大値を検出する。本例では、演算装置3aのカウンタ値6より演算装置3bのカウンタ値8の方が大きいためカウント値8を選択する。そして、カウント値8に1を加算してタイムステップ最大値を算出する(Tend=8+1)。ここで、タイムステップに1を加算しているのは演算途中で演算が停止
しているためである。
In steps S27 to S28, the server 2 detects the maximum value from the counter values (time steps at the time of temporary stop) acquired from the respective arithmetic devices 3a and 3b. In this example, since the counter value 8 of the arithmetic device 3b is larger than the counter value 6 of the arithmetic device 3a, the count value 8 is selected. Then, 1 is added to the count value 8 to calculate the maximum time step value (Tend = 8 + 1). Here, the reason why 1 is added to the time step is that the calculation is stopped during the calculation.

ステップS29では、サーバ2の通信部からタイムステップ最大値を演算装置3aに送信する。このときタイムステップ最大値とともに演算装置3aを識別する演算装置識別データを送信する。   In step S29, the maximum time step value is transmitted from the communication unit of the server 2 to the arithmetic device 3a. At this time, arithmetic device identification data for identifying the arithmetic device 3a is transmitted together with the maximum time step value.

ステップS30では、サーバ2から送信されたタイムステップ最大値を演算装置3aの通信部7が受信し、演算終了タイムステップ更新部15が演算終了タイムステップレジスタ6にタイムステップ最大値を設定する。なお、本例では、タイムステップ最大値を演算終了タイムステップレジスタ6に設定しているが、演算終了タイムステップレジスタ6にせず他にレジスタを設けてもよい。   In step S30, the communication unit 7 of the arithmetic device 3a receives the time step maximum value transmitted from the server 2, and the calculation end time step update unit 15 sets the time step maximum value in the calculation end time step register 6. In this example, the maximum time step value is set in the calculation end time step register 6, but another register may be provided instead of the calculation end time step register 6.

ステップS31、ステップS32ではステップS29、S30と同様に、サーバ2からの送信により、演算装置3bにタイムステップ最大値を取得させる。
ステップS33では、サーバ2からタイムステップ最大値までの演算を再開するための演算再開通知を演算装置3aに送信する。このとき演算再開通知とともに演算装置3aを識別する演算装置識別データを送信する。
In steps S31 and S32, as in steps S29 and S30, the time step maximum value is acquired by the computing device 3b by transmission from the server 2.
In step S33, a computation resumption notification for resuming computation from the server 2 to the maximum time step value is transmitted to the computation device 3a. At this time, the calculation device identification data for identifying the calculation device 3a is transmitted together with the calculation restart notification.

ステップS34では、演算装置3aの通信部7により演算再開通知を受信し、演算再開部16により一時停止した演算を再開させタイムステップ最大値になるまで演算を実行する。   In step S34, the calculation restart notification is received by the communication unit 7 of the calculation device 3a, and the calculation resumed by the calculation restarting unit 16 is resumed, and the calculation is executed until the time step maximum value is reached.

ステップS35、ステップS36では、ステップS33、S34と同様に、サーバ2からの通知により、演算装置3bでもタイムステップ最大値になるまで演算を実行させる。
演算装置3a、3bはタイムスタンプ最大値まで演算をして自動停止する。ここで、演算装置3aと演算装置3bの実際に停止する時刻は、演算量の違いによって異なる。
In steps S35 and S36, as in steps S33 and S34, calculation is executed by the notification from the server 2 until the time step maximum value is reached in the calculation device 3b.
The arithmetic units 3a and 3b perform arithmetic operations up to the maximum time stamp value and automatically stop. Here, the time at which the arithmetic device 3a and the arithmetic device 3b are actually stopped differs depending on the amount of calculation.

ステップS37では、サーバ2がタイムスタンプ最大値までの演算をして停止していることを確認する。サーバ2には、再停止したときのタイムステップを確認するために演算タイムステップ参照通知が設定され、演算タイムステップ参照通知を演算装置3aに送信する。このとき演算タイムステップ参照通知とともに演算装置3aを識別する演算装置識別データを送信する。   In step S37, it is confirmed that the server 2 has stopped by calculating up to the maximum time stamp value. The server 2 is set with a calculation time step reference notification in order to confirm the time step at the time of restart, and transmits the calculation time step reference notification to the calculation device 3a. At this time, arithmetic device identification data for identifying the arithmetic device 3a is transmitted together with the arithmetic time step reference notification.

ステップS38では、サーバ2から送信された演算タイムステップ参照通知を演算装置3aの通信部7が受信して演算装置3aの演算タイムステップ参照部14が、カウンタ5のカウンタ値を取得する。   In step S38, the communication unit 7 of the calculation device 3a receives the calculation time step reference notification transmitted from the server 2, and the calculation time step reference unit 14 of the calculation device 3a acquires the counter value of the counter 5.

ステップS39では、演算装置3aの通信部7からカウント値をサーバ2に送信する。本例では、カウント値として9を送信する。
ステップS40では、サーバ2の通信部が演算装置3aのカウント値を取得する。
In step S39, the count value is transmitted to the server 2 from the communication unit 7 of the arithmetic device 3a. In this example, 9 is transmitted as the count value.
In step S40, the communication unit of the server 2 acquires the count value of the arithmetic device 3a.

ステップS41、ステップS42、ステップS43、ステップS44では、ステップS37〜S40と同様にサーバ2が演算装置3bの再停止時のカウント値を取得する。本例では、サーバ2はカウント値として9を取得する。   In step S41, step S42, step S43, and step S44, the server 2 acquires the count value when the computing device 3b is stopped again, as in steps S37 to S40. In this example, the server 2 acquires 9 as the count value.

ステップS45では、サーバ2は演算装置3aから演算結果を取得するためにリスタートデータ取得通知を演算装置3aに送信する。このときリスタートデータ取得通知とともに演算装置3aを識別する演算装置識別データを送信する。   In step S45, the server 2 transmits a restart data acquisition notification to the arithmetic device 3a in order to acquire the arithmetic result from the arithmetic device 3a. At this time, arithmetic device identification data for identifying the arithmetic device 3a is transmitted together with the restart data acquisition notification.

ステップS46では、演算装置3aがリスタートデータ取得通知を受信する。そして、
リスタートデータ取得通知に基づいてリスタートデータ取得部17により再停止時の演算結果を収集してステップS47でサーバ2へ送信する。ステップS48では、サーバ2が演算結果を取得する。
In step S46, the arithmetic device 3a receives a restart data acquisition notification. And
Based on the restart data acquisition notification, the restart data acquisition unit 17 collects the calculation results at the time of restart and transmits them to the server 2 in step S47. In step S48, the server 2 acquires a calculation result.

ステップS49、ステップS50、ステップS51、ステップS52では、ステップS45〜S48と同様にサーバ2が演算装置3bの再停止時の演算結果を取得するための処理を実行する。   In step S49, step S50, step S51, and step S52, similarly to steps S45 to S48, the server 2 executes a process for acquiring a calculation result when the calculation device 3b is stopped again.

ステップS53からステップS54ではサーバ2はプログラムを終了する。
ステップS55からステップS56では、サーバ2は分散処理プログラムを再停止時に取得した演算結果を用いて演算を再開する。本例では、タイムステップが100になるまで各演算装置3a、3bが演算を行う。または、タイムステップ0から演算を再び行う。
In steps S53 to S54, the server 2 ends the program.
In steps S55 to S56, the server 2 restarts the calculation using the calculation result obtained when the distributed processing program is stopped again. In this example, each arithmetic device 3a, 3b performs an operation until the time step reaches 100. Alternatively, the calculation is performed again from time step 0.

例えばFPGAなどにおいては、専用ハードウェアの回路面積や消費電力、メモリ搭載量の制限などにより、割り込み等のイベント通知機能を実装できない場合があるが、上記説明した分散処理システムにより、サーバ(汎用OS搭載計算機)から演算装置(専用ハードウェア)間の同期を制御し、同期停止を実現することができる。   For example, in an FPGA or the like, there are cases where an event notification function such as an interrupt cannot be implemented due to restrictions on the circuit area, power consumption, and memory mounting capacity of dedicated hardware. The synchronization between the computing device (dedicated hardware) can be controlled from the on-board computer, and the synchronization stop can be realized.

(実施例2)
一時停止後の分散処理をより早く実行するために、サーバ2は各演算装置3へ演算再開通知をする際、一時停止時に取得したタイムステップを比較してタイムスタンプが小さかった演算装置3から優先的に実行させるようにする。
(Example 2)
In order to execute the distributed processing after the suspension earlier, the server 2 gives priority to the computation device 3 having a smaller time stamp by comparing the time steps acquired at the time of suspension when sending the computation resume notification to each computation device 3. Make it run.

図6A(一時停止時の各演算装置3のタイムステップを示す図)は、演算装置3(ハード1)のカウント値が3、演算装置3(ハード2)のカウント値が1、演算装置3(ハード3)のカウント値が3であため、図6B(演算再開時のタイムステップが小さい順に並び替えことを示す図)である。   FIG. 6A (a diagram showing the time step of each arithmetic device 3 at the time of pause) shows that the count value of arithmetic device 3 (hardware 1) is 3, the count value of arithmetic device 3 (hardware 2) is 1, and arithmetic device 3 (hardware 1). Since the count value of the hardware 3) is 3, FIG. 6B is a diagram illustrating rearrangement in ascending order of time steps when resuming computation.

なお、本発明は、上記説明したSPMD型プログラムだけでなく、複数プログラムを分散処理する場合にも適用することができる。例えば、演算装置3a〜3cに流体の演算を担当させ、その他の演算装置3に流体の動きに基づいた温度の演算をさせる。   The present invention can be applied not only to the above-described SPMD type program but also to a case where a plurality of programs are distributedly processed. For example, the arithmetic devices 3a to 3c are in charge of the fluid calculation, and the other arithmetic devices 3 are allowed to calculate the temperature based on the fluid movement.

上記構成された分散処理システムにおいて、1台のサーバから、仮停止と本停止の2段階停止命令でプログラムの演算停止を同期させることができる。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない。
In the distributed processing system configured as described above, it is possible to synchronize the stop of program operation from a single server using a two-stage stop command of temporary stop and main stop.
Further, the present invention is not limited to the above embodiment, and does not depart from the gist of the present invention.

分散処理システムの構成を示す図である。It is a figure which shows the structure of a distributed processing system. 分散処理システムにおける同期ズレを説明するための図である。It is a figure for demonstrating the synchronization shift in a distributed processing system. サーバの構成を示す図である。It is a figure which shows the structure of a server. 演算装置の構成を示す図である。It is a figure which shows the structure of an arithmetic unit. 分散処理システムの動作を示す図である。It is a figure which shows operation | movement of a distributed processing system. 一時停止後に演算を開始する際の優先順位を示す図である。It is a figure which shows the priority at the time of starting a calculation after pausing. 従来の分散処理システムを示す図である。It is a figure which shows the conventional distributed processing system. 従来の分散処理システムの動作を示す図である。It is a figure which shows operation | movement of the conventional distributed processing system.

符号の説明Explanation of symbols

1 分散処理システム
2 サーバ
3 演算装置
4 演算部
5 カウンタ
6 演算終了タイムステップレジスタ
7 通信部
8 制御部
9 メモリ
10 演算データ設定部
11 演算終了タイムステップ設定部
12 演算開始部
13 演算一時停止部
14 演算タイムステップ参照部
15 演算終了タイムステップ更新部
16 演算再開部
17 リスタートデータ取得部
33 通信部
34 OS
35 演算部
36 演算データ設定指示部
37 演算終了タイムステップ設定指示部
38 演算開始指示部
39 演算一時停止指示部
310 演算タイムステップ参照指示部
311 演算終了タイムステップ更新指示部
312 演算再開指示部
313 リスタートデータ取得指示部
314 最大値タイムステップ演算部
70 分散処理システム
71 サーバ
72 CPU
73 演算部
74 OS
DESCRIPTION OF SYMBOLS 1 Distributed processing system 2 Server 3 Arithmetic unit 4 Computation part 5 Counter 6 Computation end time step register 7 Communication part 8 Control part 9 Memory 10 Computation data setting part 11 Computation end time step setting part 12 Computation start part 13 Computation pause part 14 Calculation time step reference unit 15 Calculation end time step update unit 16 Calculation restart unit 17 Restart data acquisition unit 33 Communication unit 34 OS
35 Calculation unit 36 Calculation data setting instruction unit 37 Calculation end time step setting instruction unit 38 Calculation start instruction unit 39 Calculation pause instruction unit 310 Calculation time step reference instruction unit 311 Calculation end time step update instruction unit 312 Calculation restart instruction unit 313 Start data acquisition instruction unit 314 Maximum value time step calculation unit 70 Distributed processing system 71 Server 72 CPU
73 Calculation unit 74 OS

Claims (6)

サーバと接続される分散処理を実行する複数の演算装置であって、
前記サーバから前記分散処理の一時停止の要求を受信したとき、前記演算装置を停止させる演算処理一時停止部と、
分散処理が停止したときに、前記サーバから前記演算装置ごとに設けられた分散処理の演算進度をカウントするカウンタの値を参照する演算タイムステップ参照通知に基づいて、前記カウンタ値を取得し前記サーバに送信する演算タイムステップ参照部と、
前記演算装置ごとの前記演算タイムステップ参照部から取得した前記カウンタ値から最大値を検出して前記検出した前記カウンタ値の最大値に少なくとも1カウント加算したタイムステップ最大値を前記サーバから取得してレジスタに記録する演算終了タイムステップ更新部と、
停止状態から前記分散処理を再開する演算再開部と、を備え、
前記分散処理を再開して前記タイムステップ最大値まで進めてから再度分散処理を停止することを特徴とする演算装置。
A plurality of arithmetic devices that execute distributed processing connected to a server,
When receiving a request for suspension of the distributed processing from the server, an arithmetic processing suspension unit for stopping the arithmetic device;
When the distributed processing is stopped, the server acquires the counter value based on a calculation time step reference notification that refers to the value of a counter that counts the calculation progress of the distributed processing provided for each arithmetic device from the server. A computation time step reference section to be transmitted to
A maximum time step value obtained by detecting a maximum value from the counter value acquired from the calculation time step reference unit for each arithmetic device and adding at least one count to the maximum value of the detected counter value is acquired from the server. An operation end time step update unit to be recorded in a register;
An operation restarting unit that restarts the distributed processing from a stopped state,
An arithmetic unit, wherein the distributed processing is resumed and advanced to the maximum value of the time step, and then the distributed processing is stopped again.
前記演算タイムステップ参照部により取得した前記カウンタ値に基づいて、前記演算装置中で最も前記カウンタ値の示す進度が小さい前記演算装置から演算を再開することを特徴とする請求項1に記載の演算装置。   2. The calculation according to claim 1, wherein the calculation is restarted from the calculation device having the smallest degree of progress indicated by the counter value in the calculation device based on the counter value acquired by the calculation time step reference unit. apparatus. 請求項1または2に記載の演算装置と接続されるサーバであって、
分散処理が停止したときの前記演算装置ごとの分散処理の演算進度をカウントするカウンタの値から最大値を検出し、前記検出した前記カウンタ値の最大値に少なくとも1カウント加算したタイムステップ最大値を算出して前記演算装置に送信することを特徴とするサーバ。
A server connected to the arithmetic device according to claim 1 or 2,
The maximum value of the time step is obtained by detecting the maximum value from the value of the counter that counts the calculation progress of the distributed processing for each arithmetic device when the distributed processing is stopped, and adding at least one count to the detected maximum value of the counter value. A server that calculates and transmits to the arithmetic device.
前記カウンタ値に基づいて、前記演算装置中で最も前記カウンタ値の示す進度が小さい前記演算装置から演算を再開する指示を前記演算装置に送信することを特徴とする請求項3に記載のサーバ。   4. The server according to claim 3, wherein based on the counter value, an instruction to restart the operation is transmitted from the arithmetic device having the smallest progress indicated by the counter value in the arithmetic device to the arithmetic device. 5. サーバと接続される複数の演算装置の分散処理方法であって、
前記サーバが、前記分散処理の一時停止の要求をし、
前記演算装置が、前記要求を受信して前記演算装置ごとに処理を一時停止し、
前記サーバが、分散処理の停止時に前記演算装置ごとに設けられた分散処理の演算進度をカウントするカウンタの値を参照する演算タイムステップ参照通知を送信し、
前記演算装置が、前記演算タイムステップ参照通知に基づいて、前記カウンタ値を取得し前記サーバに送信し、
前記サーバが、前記演算装置から取得した前記カウンタ値から最大値を検出し、前記検出した前記カウンタ値の最大値に少なくとも1カウント加算したタイムステップ最大値を算出して前記演算装置に送信し、
前記演算装置が、前記タイムステップ最大値をレジスタに記録し、
前記サーバが、停止状態から前記分散処理を再開する通知を前記演算装置に送信し、
前記演算装置が、停止状態から前記分散処理を再開する通知に基づいて前記分散処理を再開して前記タイムステップ最大値まで分散処理を進めて停止する、
ことを特徴とする分散処理方法。
A distributed processing method for a plurality of arithmetic devices connected to a server,
The server requests the suspension of the distributed processing,
The computing device receives the request and pauses processing for each computing device,
The server transmits a calculation time step reference notification that refers to the value of a counter that counts the calculation progress of the distributed processing provided for each of the arithmetic devices when the distributed processing is stopped,
The arithmetic unit acquires the counter value based on the arithmetic time step reference notification and transmits the counter value to the server,
The server detects a maximum value from the counter value acquired from the arithmetic device, calculates a time step maximum value obtained by adding at least one count to the detected maximum value of the counter value, and transmits the time step maximum value to the arithmetic device,
The arithmetic unit records the time step maximum value in a register,
The server sends a notification to resume the distributed processing from a stopped state to the arithmetic device,
The arithmetic unit restarts the distributed processing based on a notification to restart the distributed processing from a stopped state, advances the distributed processing to the maximum time step, and stops.
A distributed processing method.
一時停止時に、前記演算装置から取得した前記カウンタ値に基づいて、前記演算装置中で最も前記カウンタ値の示す進度が小さい前記演算装置から演算を再開することを特徴とする請求項5に記載の分散処理方法。   The calculation is resumed from the arithmetic device having the smallest degree of progress indicated by the counter value in the arithmetic device based on the counter value acquired from the arithmetic device at the time of suspension. Distributed processing method.
JP2008076904A 2008-03-25 2008-03-25 Arithmetic apparatus and server for executing distributed processing, and distributed processing method Expired - Fee Related JP5181762B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008076904A JP5181762B2 (en) 2008-03-25 2008-03-25 Arithmetic apparatus and server for executing distributed processing, and distributed processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008076904A JP5181762B2 (en) 2008-03-25 2008-03-25 Arithmetic apparatus and server for executing distributed processing, and distributed processing method

Publications (2)

Publication Number Publication Date
JP2009230590A true JP2009230590A (en) 2009-10-08
JP5181762B2 JP5181762B2 (en) 2013-04-10

Family

ID=41245873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008076904A Expired - Fee Related JP5181762B2 (en) 2008-03-25 2008-03-25 Arithmetic apparatus and server for executing distributed processing, and distributed processing method

Country Status (1)

Country Link
JP (1) JP5181762B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012160655A1 (en) * 2011-05-24 2012-11-29 富士通株式会社 Data processing method and data processing system
JP2014021774A (en) * 2012-07-19 2014-02-03 Fujitsu Ltd Arithmetic processing unit and arithmetic processing method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01258057A (en) * 1987-11-09 1989-10-16 Tandem Comput Inc Synchronous method and apparatus for a plurality of processors
JPH02105961A (en) * 1988-10-14 1990-04-18 Nippon Telegr & Teleph Corp <Ntt> Multiprocessor synchronization system
JP2004046599A (en) * 2002-07-12 2004-02-12 Nec Corp Fault tolerant computer apparatus, resynchronization method and resynchronization program
JP2005209029A (en) * 2004-01-23 2005-08-04 Tm T & D Kk Application management system, application management method and program for performing the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01258057A (en) * 1987-11-09 1989-10-16 Tandem Comput Inc Synchronous method and apparatus for a plurality of processors
JPH02105961A (en) * 1988-10-14 1990-04-18 Nippon Telegr & Teleph Corp <Ntt> Multiprocessor synchronization system
JP2004046599A (en) * 2002-07-12 2004-02-12 Nec Corp Fault tolerant computer apparatus, resynchronization method and resynchronization program
JP2005209029A (en) * 2004-01-23 2005-08-04 Tm T & D Kk Application management system, application management method and program for performing the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012160655A1 (en) * 2011-05-24 2012-11-29 富士通株式会社 Data processing method and data processing system
US9189301B2 (en) 2011-05-24 2015-11-17 Fujitsu Limited Data processing method and data processing system
JP2014021774A (en) * 2012-07-19 2014-02-03 Fujitsu Ltd Arithmetic processing unit and arithmetic processing method

Also Published As

Publication number Publication date
JP5181762B2 (en) 2013-04-10

Similar Documents

Publication Publication Date Title
US8190941B2 (en) Field control system
JP6152920B2 (en) Programmable controller system, its controller
CN107066300B (en) Firmware upgrading method of storage device and storage device
US11089454B2 (en) Systems and methods for upgrading firmware in multiple devices of a wireless fire detection system
US20180365307A1 (en) Webpage data synchronization
JP2009245317A (en) Virtual machine management program, management server device, and virtual machine management method
JP6879625B2 (en) Programmable controller, management device and control system
CN103870324A (en) Efficient execution of human machine interface applications in a heterogeneous multiprocessor environment
JP5181762B2 (en) Arithmetic apparatus and server for executing distributed processing, and distributed processing method
CN110291474A (en) controller
JP4289293B2 (en) Start control method, duplex platform system, and information processing apparatus
KR20150080356A (en) remote update method for home automatic system
KR20160112787A (en) Test system and control method thereof
JP2017037606A (en) Drive control system and abnormality monitoring device
CN110188491B (en) Processing method and device for improving calculation efficiency in simulation calculation process
JP5662909B2 (en) User terminal and communication method
CN115878145B (en) Electronic device, system upgrading method thereof and computer readable storage medium
US20150282193A1 (en) Method and apparatus for avoiding communication interference in wireless communication system
JP6357806B2 (en) Controller redundancy system, its controller
JP2017016250A (en) Barrier synchronization device, barrier synchronization method, and program
JP2005107757A (en) Program runaway detection method and program runaway detection device
JP2012053805A (en) Progress information display control system
CN116185676B (en) Job recovery methods and computing equipment
JP2014134989A (en) Computer system and computer management method
JP2006302081A (en) Service restart device and service restart program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120731

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121231

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees