JP4080397B2 - Parallel computer - Google Patents
Parallel computer Download PDFInfo
- Publication number
- JP4080397B2 JP4080397B2 JP2003303604A JP2003303604A JP4080397B2 JP 4080397 B2 JP4080397 B2 JP 4080397B2 JP 2003303604 A JP2003303604 A JP 2003303604A JP 2003303604 A JP2003303604 A JP 2003303604A JP 4080397 B2 JP4080397 B2 JP 4080397B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- node
- slave
- synchronization
- master
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Description
本発明は、例えば、電力系統のリアルタイムシミュレーションに適用される並列計算機、マスタノード及びそのプログラム、スレーブノード及びそのプログラムに関するものである。 The present invention relates to a parallel computer, a master node and a program thereof, a slave node and a program thereof applied to, for example, a real-time simulation of a power system.
一般に、並列計算機によるシミュレーションでは、計算機間の同期は重要である。例えば、外部機器と接続するリアルタイム電力系統シミュレーションでは、計算刻み時間50μs程度でシミュレーションするため、同期時刻が計算機間で数10μsずれただけで、シミュレーション結果に悪影響を及ぼす。従って、正確な同期がとれるかどうかが、信頼性の高いシミュレータであることの一つの条件でもある。 In general, synchronization between computers is important in a parallel computer simulation. For example, in a real-time power system simulation connected to an external device, the simulation is performed with a calculation step time of about 50 μs. Therefore, the simulation result is adversely affected if the synchronization time is shifted by several tens of μs between computers. Therefore, whether or not accurate synchronization can be achieved is also a condition for a highly reliable simulator.
電力系統シミュレーションの分野では、近年の計算機技術の発展に伴い、従来のアナログシミュレータに代わって、設置スペース・操作性・現象の再現性に優れたディジタルシミュレータの開発が活発になってきた。電力系統のシミュレーションにおいて並列処理が有効であることは以前から知られており、これを実現するために専用ハードウェアあるいは共有メモリ型の非常に高性能な計算機上でシミュレーションソフトウェアが開発されてきた。しかし、これら計算機は非常に高価であることから、一般ユーザーへの普及が進みにくい状況にあった。このような高性能ハードウェアを採用した場合、CPU間通信は非常に高速であるため、CPU間の同期は大きな問題ではなかった。 In the field of power system simulation, with the recent development of computer technology, the development of digital simulators with excellent installation space, operability, and phenomenon reproducibility has become active in place of conventional analog simulators. It has been known for some time that parallel processing is effective in power system simulation, and simulation software has been developed on a very high-performance computer of dedicated hardware or shared memory to realize this. However, since these computers are very expensive, it has been difficult to spread to general users. When such high-performance hardware is adopted, communication between CPUs is very fast, so synchronization between CPUs is not a big problem.
一方、計算機技術者の間では、1990年代半ばに登場し、性能対コストパフォーマンスに優れたPCクラスタと呼ばれる新しい計算機プラットフォームが注目されるようになってきた。PCクラスタとは、汎用PC(パーソナルコンピュータ)をネットワーク装置で接続した分散並列処理システムの一般的な呼称である。本出願人は、このPCクラスタという新しい技術に注目し、他社に先駆けてPCクラスタ上で電力系統シミュレータの開発を開始した。開発したシミュレータでは、様々な高度な並列処理技術を適用して、高性能なシステムを実現した。開発システムでは、PC間の通信に高速なネットワーク装置を使用し、PC間通信ソフトウェアの高速化開発を行った結果、PC間の同期のずれを10μs程度の通信時間で抑えることに成功した。しかしながら、シミュレータのさらなる高性能化を目指すためには、この同期時刻のずれの改善が一つの課題でもある。 On the other hand, among computer engineers, a new computer platform called a PC cluster, which appeared in the mid-1990s and is excellent in performance and cost performance, has been attracting attention. A PC cluster is a general name for a distributed parallel processing system in which general-purpose PCs (personal computers) are connected by a network device. The present applicant paid attention to this new technology called the PC cluster, and started the development of a power system simulator on the PC cluster ahead of other companies. The developed simulator has realized a high-performance system by applying various advanced parallel processing technologies. In the development system, a high-speed network device was used for communication between PCs, and as a result of high-speed development of communication software between PCs, a synchronization shift between PCs was successfully suppressed in a communication time of about 10 μs. However, in order to further improve the performance of the simulator, improvement of this synchronization time shift is also an issue.
一般に、並列計算機の同期方法では、並列計算機のうち、1台をマスタノード、残りをスレーブノードとし、同期時刻はマスタノードにより管理していた。即ち、マスタノードは、シミュレーションの各タスク実行間隔毎に、全スレーブノードに同期信号を送信する。マスタノードの同期時刻は、この信号送信直前または全スレーブノードに送信完了直後のいずれかである。スレーブノードの同期時刻は、マスタノードからの信号受信直後である。あるいは、確実に送受信できていることを保証するため、スレーブノードで信号受信後、確認信号をマスタノードに送り返す方法もあった。このような方法を用いた場合には、マスタノードの同期時刻は、全スレーブノードから確認信号を受信した時刻であり、スレーブノードの同期時刻は、マスタノードに信号を送信した直後である。 In general, in the parallel computer synchronization method, one of the parallel computers is a master node, the remaining is a slave node, and the synchronization time is managed by the master node. That is, the master node transmits a synchronization signal to all slave nodes at each task execution interval of the simulation. The synchronization time of the master node is either immediately before this signal transmission or immediately after transmission to all slave nodes. The synchronization time of the slave node is immediately after reception of a signal from the master node. Alternatively, in order to ensure that transmission / reception can be performed reliably, there is a method of sending a confirmation signal back to the master node after receiving the signal at the slave node. When such a method is used, the synchronization time of the master node is the time when the confirmation signal is received from all the slave nodes, and the synchronization time of the slave node is immediately after the signal is transmitted to the master node.
従来、このような並列計算機の同期に関する技術としては、例えば特許文献1に示すものがあった。このような従来技術では、バリア同期機構の複雑化を招かず、しかも特別な通信機構を設けずに、自装置内でのバリア同期成立の情報を送受信することによって並列処理の完了を検出する。このように、従来の技術では、計算機間の同期をとるためには、同期信号を送受信する必要があり、この通信時間の遅延は本質的に避けることはできない。
Conventionally, as a technique related to synchronization of such parallel computers, for example, there has been one disclosed in
上記従来の一般的な同期方法を用いた場合、以下のような問題点があった。
従来の技術では、PCクラスタのような分散並列計算機では、同期信号の送受信は、イーサネット(登録商標)(米国ゼロックス社の登録商標)などのネットワーク通信により行う。しかし、この通信時間は、ギガビットイーサーネット(登録商標)でも数10μs、もっと高速なMyrinet (米国Myricom 社の登録商標)でも10μs程度の通信時間がかかる。このような通信時間に起因する遅延により、全計算機で真に正確な同期をとることができない。これは、現在のハードウェア技術では解決できない問題であり、将来的にも通信時間を0にすることは不可能である。
When the conventional general synchronization method is used, there are the following problems.
In a conventional technique, in a distributed parallel computer such as a PC cluster, transmission / reception of synchronization signals is performed by network communication such as Ethernet (registered trademark) (registered trademark of Xerox Corporation in the United States). However, this communication time takes several tens of μs even for Gigabit Ethernet (registered trademark), and about 10 μs even for higher speed Myrinet (registered trademark of Myricom, USA). Due to such a delay due to the communication time, it is impossible to achieve truly accurate synchronization in all computers. This is a problem that cannot be solved by the current hardware technology, and it is impossible to reduce the communication time to 0 in the future.
特に、電力系統シミュレータのように、計算刻み時間50μsが要求されるようなシミュレーションにおいては、この同期時刻のずれがシミュレーションの信頼性を損なうことがある。この同期の問題が、リアルタイム電力系統シミュレーションの分野で本出願人以外がPCクラスタを使わない一つの原因でもある。本出願人は、PC間通信ソフトウェアの高速化開発を行った結果、上述した従来の方法でPC間通信時間10μsを実現し、多くの場合、シミュレーション結果に問題がないことを確認している。しかしながら、シミュレータのさらなる高性能化・高信頼化を目指した場合、この同期時刻のずれの改善が課題の一つであった。 In particular, in a simulation that requires a calculation step time of 50 μs, such as a power system simulator, this shift in synchronization time may impair the reliability of the simulation. This synchronization problem is one reason why the PC cluster is not used by anyone other than the present applicant in the field of real-time power system simulation. As a result of high-speed development of the PC-to-PC communication software, the present applicant has realized the PC-to-PC communication time of 10 μs by the above-described conventional method, and in many cases, has confirmed that there is no problem in the simulation result. However, when aiming for higher performance and higher reliability of the simulator, improvement of the synchronization time shift was one of the problems.
もっとも、ネットワーク通信を用いずに、非常に高性能なDIOカードといった通信装置により同期信号を送受信することもできる。しかし、このような通信装置は、PC本体と比べて何倍も高価であり、正確な同期のためだけに、このような高価なハードウェアを採用するのは現実的ではない。
この発明は上記のような課題を解決するためになされたもので、第1の目的は、高価なハードウェアを用いることなく、汎用のPCと汎用のネットワークを用いて並列計算機における正確な同期を実現するものである。
However, the synchronization signal can be transmitted and received by a communication device such as a very high performance DIO card without using network communication. However, such a communication device is many times more expensive than the PC main body, and it is not realistic to employ such expensive hardware only for accurate synchronization.
The present invention has been made to solve the above-described problems. The first object is to perform accurate synchronization in a parallel computer using a general-purpose PC and a general-purpose network without using expensive hardware. It is realized.
この発明に係る並列計算機は、そのマスタノードが、スレーブノードに対してタスク実行間隔の同期を開始させるための同期開始信号を送信すると共に、自己が管理する送信開始時刻を基準として、マスタノードからスレーブノードへの通信時間に基づいて求めた同期開始時刻でタスク実行間隔の同期を開始するようにしたものである。また、予め決められた特定の時刻間隔でタスク実行間隔の同期時刻修正のための監視信号を送信する監視信号送信手段を備えたものである。また、そのスレーブノードが、マスタノードからの同期開始信号を受信した場合、自己が管理する受信時刻に基づいて、マスタノードの同期開始時刻に一致した自スレーブノードの同期開始時刻を決定し、この時刻でタスク実行間隔の同期を開始するようにしたものである。更に、スレーブノードにおいて、監視信号を受信した場合に、スレーブ側時刻管理手段が管理する受信時刻と、マスタ側時刻管理手段が管理する監視信号の送信時刻にマスタノードから自スレーブノードへの通信時間を加えた時刻とのずれを測定し、測定したずれの値に基づき、特定の時刻間隔で自スレーブノードのタスク実行間隔の同期時刻をマスタノードのタスク実行間隔の同期時刻に一致させる時刻修正手段とを備えたものである。 In the parallel computer according to the present invention, the master node transmits a synchronization start signal for starting synchronization of task execution intervals to the slave node, and from the master node based on the transmission start time managed by the master node. The task execution interval synchronization is started at the synchronization start time obtained based on the communication time to the slave node. In addition, there is provided monitoring signal transmission means for transmitting a monitoring signal for correcting the synchronization time of the task execution interval at a predetermined specific time interval. When the slave node receives the synchronization start signal from the master node, the slave node determines the synchronization start time of the slave node that matches the synchronization start time of the master node based on the reception time managed by the slave node. The task execution interval synchronization is started at the time. Further, when the monitoring signal is received at the slave node, the communication time from the master node to the own slave node at the reception time managed by the slave time management means and the transmission time of the monitoring signal managed by the master time management means Time correction means for measuring a deviation from the time at which the task is added and matching the synchronization time of the task execution interval of the own slave node with the synchronization time of the task execution interval of the master node at a specific time interval based on the measured deviation value It is equipped with.
この発明は、マスタノードとスレーブノード間の通信時間に基づいた同期開始時刻により、マスタノードとスレーブノード間のタスク実行間隔の同期を開始するようにしたので、従来では避けることができなかった同期信号の送受信時間に起因する同期時刻のずれが発生せず、正確な計算機間の同期を実現することができる。 In the present invention, synchronization of the task execution interval between the master node and the slave node is started based on the synchronization start time based on the communication time between the master node and the slave node. A synchronization time shift due to signal transmission / reception time does not occur, and accurate synchronization between computers can be realized.
実施の形態1.
先ず、本発明の実施の形態1の概要を説明する。
実施の形態1の並列計算機は、マスタノードからの同期信号でスレーブノードの同期を行うのではなく、スレーブノードが独自に時刻管理を行うようにしたものであり、そのため、大きく分けて、次のような三つの特徴点を有している。
(1)同期開始時刻の決定方法
(2)同期開始後に発生する、同期時刻のずれの自動補正方法
(3)自動補正の監視方法
First, an outline of the first embodiment of the present invention will be described.
The parallel computer according to the first embodiment does not synchronize the slave node with the synchronization signal from the master node, but the slave node independently performs time management. It has the following three feature points.
(1) Method for determining synchronization start time (2) Automatic correction method for synchronization time deviation occurring after synchronization start (3) Automatic correction monitoring method
本実施の形態では、計算機のうち一つをマスタノードとし、その他をスレーブノードとする。以下、4台の同一ハードウェア構成の計算機があり、1台をマスタノード、3台をスレーブノードとした場合を例として説明する。 In the present embodiment, one of the computers is a master node and the other is a slave node. In the following, an example will be described in which there are four computers with the same hardware configuration, one being a master node and three being slave nodes.
前処理として、マスタノードと各スレーブノード間の通信時間は予め測定しておく。即ち、マスタノード→スレーブノード#1、マスタノード→スレーブノード#2、・・・、マスタノード→スレーブノード#N(スレーブノードが3台の場合、N=3)の各通信時間を測定しておく。このようなマスタノードと各スレーブノード間の通信時間を予め測定する点が本実施の形態における一つの特徴である。
As preprocessing, the communication time between the master node and each slave node is measured in advance. That is, measure each communication time of master node →
(1)同期開始時刻の決定方法
[マスタノードの動作]
先ず、スレーブノード#1に同期開始信号を送信する。
送信命令実行後、予め測定済のマスタノード−スレーブノード#1間にかかる通信時間の間だけ待つ。
次に、スレーブノード#2に同期開始信号を送信する。
送信命令実行後、予め測定済のマスタノード−スレーブノード#2間にかかる通信時間の間だけ待つ。
最後に、スレーブノード#3に同期開始信号を送信する。
送信命令実行後、予め測定済のマスタノード−スレーブノード#3間にかかる通信時間の間だけ待つ。
最後の通信時間待ちが完了した時刻を、同期開始時刻とする。
(1) Method for determining synchronization start time [operation of master node]
First, a synchronization start signal is transmitted to
After the transmission command is executed, it waits only for the communication time required between the master node and
Next, a synchronization start signal is transmitted to
After the transmission command is executed, it waits only for the communication time required between the master node and
Finally, a synchronization start signal is transmitted to
After the transmission command is executed, it waits only for the communication time required between the master node and
The time when the last communication time waiting is completed is set as the synchronization start time.
[スレーブノード#1の動作]
マスタノードが最初の同期開始信号を送信する前に、信号受信待ち状態で待機する。
マスタノードからの同期開始信号受信完了後、予め測定済のマスタノード−スレーブノード#2間の通信時間と、マスタノード−スレーブノード#3間の通信時間の合計値の間だけ待つ。この通信時間待ちが完了した時刻を、同期開始時刻とする。
[Operation of slave node # 1]
The master node waits in a signal reception waiting state before transmitting the first synchronization start signal.
After completion of reception of the synchronization start signal from the master node, it waits for the total value of the communication time between master node-
[スレーブノード#2の動作]
マスタノードが最初の同期開始信号を送信する前に、信号受信待ち状態で待機する。
マスタノードからの同期開始信号受信完了後、予め測定済のマスタノード−スレーブノード#3間にかかる通信時間の間だけ待つ。この通信時間待ちが完了した時刻を、同期開始時刻とする。
[Operation of slave node # 2]
The master node waits in a signal reception waiting state before transmitting the first synchronization start signal.
After completion of receiving the synchronization start signal from the master node, it waits for the communication time required between the master node and
[スレーブノード#3の動作]
マスタノードが最初の同期開始信号を送信する前に、信号受信待ち状態で待機する。
マスタノードからの同期開始信号受信が完了した時刻を、同期開始時刻とする。
[Operation of slave node # 3]
The master node waits in a signal reception waiting state before transmitting the first synchronization start signal.
The time when the synchronization start signal reception from the master node is completed is set as the synchronization start time.
(2)同期開始後に発生する、同期時刻のずれの自動補正方法
同期開始後のシミュレーション中の時間管理は、各スレーブノードが独立して行う。スレーブノード毎のCPUクロックの微妙なずれによるタスク実行間隔の同期時刻のずれは、以下のようにして自動補正する。
予め、マスタノードと各スレーブノードの間で、所定時間(例えば1秒間)のテストシミュレーションを実施し、マスタノードの時間管理と各スレーブノードの時間管理の間で、テストシミュレーション中に1秒間に発生するずれの値を測定しておく。実際のシミュレーション中は、各スレーブノードのタスク実行間隔毎に、このずれの値に基づく時刻補正係数を用いて、独立に同期時刻のずれを補正する。
(2) Automatic correction method for synchronization time shift that occurs after the start of synchronization Time management during simulation after the start of synchronization is performed independently by each slave node. A shift in the synchronization time of the task execution interval due to a subtle shift in the CPU clock for each slave node is automatically corrected as follows.
A test simulation for a predetermined time (for example, 1 second) is performed in advance between the master node and each slave node, and occurs during the test simulation between the time management of the master node and the time management of each slave node. Measure the deviation value. During actual simulation, the synchronization time shift is corrected independently using a time correction coefficient based on this shift value at each task execution interval of each slave node.
(3)自動補正の監視方法
各スレーブノードでは、それぞれの時刻補正係数を用いて独自に時刻管理を補正しているが、この補正が正しいかを以下のようにして監視する。
予め決められた特定の時刻間隔で、マスタノードから各スレーブノードに時刻補正係数を修正するための監視信号を送り、各スレーブノードでは、その受信した時刻に基づいて、時刻補正係数による補正が正しいかを確認する。補正結果にずれがあった場合は、時刻補正係数を調整する。
以上が、実施の形態1の概要である。以下、このような実施の形態1を更に詳細に説明する。
(3) Monitoring method of automatic correction Each slave node independently corrects time management by using its time correction coefficient, and monitors whether this correction is correct as follows.
A monitoring signal for correcting the time correction coefficient is sent from the master node to each slave node at a predetermined time interval, and the correction by the time correction coefficient is correct based on the received time at each slave node. To check. If there is a deviation in the correction result, the time correction coefficient is adjusted.
The above is the outline of the first embodiment. Hereinafter, the first embodiment will be described in more detail.
図1は、この発明の実施の形態1による並列計算機を示すブロック図である。
図示の並列計算機は、マスタノード1と3台のスレーブノード2(2a〜2c)からなる4台の同一ハードウェア構成の並列計算機の例を示している。尚、スレーブノード2a,2b,2cは、それぞれ同様の構成であるため、スレーブノード2a以外は、内部の機能ブロックの図示を省略している。以下、スレーブノード2a〜2cに共通する構成、動作の場合は、スレーブノード2として説明する。
FIG. 1 is a block diagram showing a parallel computer according to
The illustrated parallel computer is an example of four parallel computers having the same hardware configuration including a
これらの並列計算機はPCクラスタを構成するものである。各PCは、図示しないNIC(Network Interface Card )を有し、ケーブルを用い、相互にスイッチングハブ等を介して接続されている。尚、NICやケーブルおよびスイッチングハブは、公知の汎用のNICやケーブルおよびスイッチングハブであるため、ここでの図示およびその説明は省略する。 These parallel computers constitute a PC cluster. Each PC has a NIC (Network Interface Card) (not shown) and is connected to each other via a switching hub or the like using a cable. The NIC, the cable, and the switching hub are well-known general-purpose NICs, cables, and switching hubs, and illustration and description thereof are omitted here.
図1において、マスタノード1は、通信時間測定手段11、補正係数用信号送信手段12、マスタ側同期開始手段13、タスク実行手段14、マスタ側時刻管理手段15、監視信号送信手段16を備えている。通信時間測定手段11は、マスタノード1と各スレーブノード2との通信時間を計測する機能を有している。補正係数用信号送信手段12は、各スレーブノード2に対して、補正係数計測のための補正係数用信号を送信する機能を有している。マスタ側同期開始手段13は、スレーブノード2に対して、タスク実行間隔の同期を開始させるための同期開始信号を送信すると共に、スレーブノード2への通信時間に基づいて求めた同期開始時刻で同期を開始する機能を有している。タスク実行手段14は、シミュレーションのタスクを実行する機能を有している。マスタ側時刻管理手段15は、マスタノード1側の同期時刻や送信時刻といった時刻の管理を行う機能部である。監視信号送信手段16は、予め決められた特定の時刻間隔で時刻補正係数を修正するための監視信号を各スレーブノード2に送信する機能を有している。
In FIG. 1, the
スレーブノード2は、補正係数算出手段21、スレーブ側同期開始手段22、タスク実行手段23、時刻補正手段24、スレーブ側時刻管理手段25、監視信号受信手段26、補正係数修正手段27を備えている。補正係数算出手段21は、マスタノード1から送信された補正係数用信号を受信し、この信号の受信時刻に基づいてマスタノード1とスレーブノード2間における所定時間当たりのずれ時間を求め、このずれ時間から補正係数を算出する機能を有している。スレーブ側同期開始手段22は、マスタノード1からの同期開始信号を受信した場合、スレーブ側時刻管理手段25が管理する受信時刻に基づいて自己の同期開始時刻を決定し、その時刻で同期を開始する機能を有している。
The
タスク実行手段23は、シミュレーションのタスクを実行する機能部である。時刻補正手段24は、補正係数算出手段21で算出された補正係数に基づいて時刻の補正を行う機能部である。スレーブ側時刻管理手段25は、スレーブノード2としての時刻管理を行う機能部である。監視信号受信手段26は、マスタノード1から予め決められた特定の時刻間隔で送信される監視信号を受信する機能部である。補正係数修正手段27は、監視信号受信手段26で受信した監視信号に基づいて、時刻補正手段24にて補正された時刻とのずれがあった場合は、時刻補正手段24が用いる補正係数を修正する機能を有している。
The
尚、上記のマスタノード1における通信時間測定手段11〜監視信号送信手段16およびスレーブノード2における補正係数算出手段21〜補正係数修正手段27は、それぞれ、各機能に対応したプログラムと、これらのプログラムを実行するためのCPUやメモリ等からなるハードウェアとによって構成されている。
The communication time measuring means 11 to the monitoring signal transmitting means 16 in the
次に、本実施の形態の並列計算機の動作を説明する。動作説明として、先ず、シミュレーション開始処理に先立って行うマスタノード1とスレーブノード2との通信時間の測定について説明する。
図2は、マスタノード1とスレーブノード2との往復通信時間(ラウンドトリップタイム:RTT)の計測方法の説明図である。
Next, the operation of the parallel computer of this embodiment will be described. As an explanation of the operation, first, measurement of communication time between the
FIG. 2 is an explanatory diagram of a method for measuring the round-trip communication time (round trip time: RTT) between the
ラウンドトリップタイムとは、2台の計算機のうち、一方の計算機が他方の計算機に向かってデータを送信し、他方の計算機がこのデータ受信後、一方の計算機にデータを送信し、一方の計算機がこのデータを受信するまでの時間である。データの送受信にかかる時間は、図2に示すように、送信側(図ではマスタノード)の処理100a(図示しないCPUとNICの処理)、ケーブル間のデータ移動とスイッチングハブの処理(図中の矢印部分)、受信側(図ではスレーブノード)の処理100b(図示しないCPUとNICの処理)の三つに分けることができる。
Round trip time means that one of two computers sends data to the other computer, and after the other computer receives this data, it sends the data to one computer. This is the time until this data is received. As shown in FIG. 2, the time required for data transmission / reception includes
マスタノード1とスレーブノード2が同一のハードウェア構成である場合、片道の通信時間は、ラウンドトリップタイムRTTの半分であると推定できる。通常、ラウンドトリップタイム計測時に、その他の通信が全く行われていない場合には、このラウンドトリップタイムはほぼ一定であり、その誤差は通常1μs以下である。以上により、本発明が対象とする分散並列計算機においても、予めラウンドトリップタイムを測定することにより、正確な計算機間片道通信時間を知っておくことができる。
When the
各スレーブノード2のラウンドトリップタイムRTT1〜RTT3は、マスタノード1の通信時間測定手段11により、シミュレーション前にシステムデータとして計測しておくが、その計測方法を次に説明する。
図3は、ラウンドトリップタイムの測定方法のフローチャートである。
マスタノード1において、計測反復回数として、通信回数(例えばn=10,000回)が入力される(ステップST1a)。その後、実際の測定が開始される。先ず、開始時刻t0を計測し、これを保持しておく(ステップST2a)。次に、1回目の送信を行う(ステップST3a)。尚、この場合の送信データは、単に送受信の確認が行えるものであれば、そのデータの内容は特にどのようなものであってもよい。
The round trip times RTT1 to RTT3 of each
FIG. 3 is a flowchart of the round trip time measurement method.
In the
次に、スレーブノード2からの信号を受信すると(ステップST4a)、これがステップST1aで入力された計測反復回数nに達したかを判定し(ステップST5a)、達していない場合はステップST3aに戻り、信号の送受信を繰り返す。
ステップST5aにおいて、入力された計測反復回数nに達した場合は、信号の送受信を終了し、終了時刻t1を計測する(ステップST6a)。次に、一回のラウンドトリップタイムを式RTT1=(t1−t0)/nにより計算し(ステップST7a)、結果を出力する(ステップST8a)。
Next, when a signal from the
In step ST5a, when the input number of measurement repetitions n is reached, signal transmission / reception is terminated and an end time t1 is measured (step ST6a). Next, one round trip time is calculated by the formula RTT1 = (t1-t0) / n (step ST7a), and the result is output (step ST8a).
また、スレーブノード2では、マスタノード1からの信号を受信した場合(ステップST1b)、マスタノード1へ信号を送信する(ステップST2b)。そして、マスタノード1からの信号を受信する度にこれを繰り返す。この計測は、各スレーブノード2個別に行う。
Further, when the
次に、同期開始後に発生するタスク実行間隔のずれを自動補正するための時刻補正係数A1の求め方について説明する。
図4は、時刻補正係数A1の求め方の説明図である。
説明を簡単にするため、マスタノード1と1台のスレーブノード2aの間の関係についてのみ述べる。時刻補正係数A1の求め方としては、先ず、本実施の形態の同期開始時刻を同期させる方法(これについては、後述する)を用いて、A1計測用シミュレーションを開始する。尚、A1計測用シミュレーションといっても、実際には時刻を常にチェックし、1秒経過するのを待つだけである。そして、マスタノード1で1秒経過した時点でスレーブノード2aに補正係数用信号を送る。
Next, a description will be given of how to obtain the time correction coefficient A1 for automatically correcting a deviation in task execution interval that occurs after the start of synchronization.
FIG. 4 is an explanatory diagram of how to obtain the time correction coefficient A1.
In order to simplify the explanation, only the relationship between the
スレーブノード2aでは、常に待ち状態で待機し、マスタノード1から送信された補正係数用信号を受信した時刻の測定値をTとする。このTとラウンドトリップタイムRTT1を用いると、A1は1−T/(1+RTT1/2)で求めることができる。尚、この式は次のように導くことができる。即ち、スレーブノード2aはマスタノード1に対して1秒間にA1秒遅れるとする(マスタノード1側で1秒間の時刻カウントを示す点線からA1経過した時刻が、スレーブノード2a側での時刻カウントが開始から1秒間を示している)。これを言い換えると、マスタノード1での時刻カウントでの時刻1は、スレーブノード2aでの時刻カウントでは時刻1−A1となる。補正係数用信号のスレーブノード2a側受信時刻Tについてみると、マスタノード1側での時刻カウントは時刻1+RTT1/2であり、一方、スレーブノード2a側の時刻カウントでは時刻Tである。従って、[マスタの時刻カウント:スレーブの時刻カウント]には以下の関係が成り立つ。
1:(1−A1)=(1+RTT1/2):T
これにより、
A1=1−T/(1+RTT1/2)の関係を導くことができる。
The
1: (1-A1) = (1 + RTT1 / 2): T
This
A relationship of A1 = 1−T / (1 + RTT1 / 2) can be derived.
図5は、時刻補正係数A1の測定方法を示すフローチャートである。
マスタノード1において、本実施の形態の同期開始処理(マスタ側同期開始手段13とスレーブ側同期開始手段22とによる同期開始処理)によって、各スレーブノード2との同期を開始し、時刻補正係数A1の計測処理を開始する。次に、マスタ側時刻管理手段15で1秒が経過したら(ステップST11a)、補正係数用信号送信手段12は、各スレーブノード2に補正係数用信号を送信し(ステップST12a)、マスタノード1側の処理を終了する。
FIG. 5 is a flowchart showing a method for measuring the time correction coefficient A1.
In the
スレーブノード2では、補正係数の計測処理が開始されると、補正係数算出手段21は、先ず、補正係数用信号の受信を待機し(ステップST11b)、補正係数用信号が受信された場合は、受信直後の時刻Tを計測する(ステップST12b)。その後、時刻補正係数A1を、A1=1−T/(1+RTT1/2)の式に基づいて計算する(ステップST13b)。そして、この時刻補正係数A1を時刻補正手段24に出力する(ステップST14b)。時刻補正手段24は、この時刻補正係数A1を保持する。
In the
次に、マスタノード1とスレーブノード2の同期開始について説明する。
図6は、マスタノード1とスレーブノード2との同期開始時刻の決定方法を示す説明図である。
マスタノード1と、各スレーブノード2間のラウンドトリップタイムRTT1〜RTT3は、通信時間測定手段11によって予め測定してあるとする。また、マスタノード1から各スレーブノード2に同期開始信号を送信する順番は予め決定され、マスタノード1のマスタ側同期開始手段13は、この情報を保持しておく。一方、各スレーブノード2のスレーブ側同期開始手段22は、マスタノード1からの送信順序が、自スレーブノード2より後であるスレーブノード2の通信時間の合計値を保持しておく。
Next, the start of synchronization between the
FIG. 6 is an explanatory diagram showing a method for determining the synchronization start time between the
It is assumed that the round trip times RTT1 to RTT3 between the
先ず、全てのスレーブノード2(2a〜2c)が、マスタノード1からの同期開始信号の受信を待つ。
マスタノード1は、最初にスレーブノード2a(1番目のスレーブノード)に同期開始信号を送信する。この同期開始信号の送受信にかかる時間、即ち、マスタノード1における同期開始信号送信処理開始(図6のTs)からスレーブノード2aにおける同期開始信号受信処理完了(図6のTr1)までの時間は、Tr1−Tsである。この値は既知の値RTT1/2であるので、マスタノード1は、スレーブノード2aの受信が完了する時刻を正確に知っている。マスタノード1は、スレーブノード2aへの送信開始後RTT1/2秒間待ち、次に、スレーブノード2b(2番目のスレーブノード)へ同期開始信号を送信する。そして、この送信後RTT2/2秒待ち、次にスレーブノード2c(最後のスレーブノード)へ同期開始信号を送信する。そして、この送信後RTT3/2秒待ち、この待ちが完了した時刻を同期開始時刻(t=0)、即ちシミュレーション開始時刻とする。
First, all the slave nodes 2 (2a to 2c) wait for reception of a synchronization start signal from the
First, the
一方、スレーブノード2aでは、マスタノード1からの同期開始信号受信後、保持している他のスレーブノード2b,2cの通信時間に基づいて、(RTT2/2+RTT3/2)秒間待ち、この待ちが完了した時刻を同期開始時刻とする。また、スレーブノード2bでは、マスタノード1からの同期開始信号受信後、RTT3/2秒間待ち、この待ちが完了した時刻を同期開始時刻とする。更に、スレーブノード2cでは、マスタノード1からの同期開始信号の受信が完了した時刻を同期開始時刻とする。
以上の方法で、マスタノード1と各スレーブノード2との同期開始時刻を正確に一致させることができる。
On the other hand, after receiving the synchronization start signal from the
With the above method, the synchronization start times of the
尚、上記の同期開始処理を行う場合、同期開始以前(同期開始時刻t=0以前)では、スレーブノード2において後述する時刻補正は行われていないため、各スレーブノード2は、スレーブノード自身の時刻カウントで開始時刻を管理することになる。従って、各通信時間の値RTT1,RTT2,RTT3の値は、厳密には、マスタノード1と各スレーブノード2とでは異なることになる。しかしながら、マスタノード1とスレーブノード2との時刻のずれは、補正を行わなかった場合でも、例えば1秒当たり1μs以下といったように極めて小さいため、ここでの待ち時間のずれは無視することができる。
When the above synchronization start processing is performed, before the synchronization start (before the synchronization start time t = 0), the
また、ここで、後段側のスレーブノード2の通信時間を、スレーブノード2側で保持しているが、同期開始信号と共に、マスタノード1から知らせるようにしてもよい。しかし、本実施の形態のように、スレーブノード2側で、後段側のスレーブノード2の通信時間のデータを持つことにより、マスタノード1から送信する同期開始信号は、単にこれを識別するための信号であればよい。その結果、スレーブノード2の数が多くなった場合でもマスタノード1から各スレーブノード2に送信する同期開始信号は同一のもので済む等、送受信の信号形態を単純化することができる。
Here, although the communication time of the
次に、本実施の形態における全体の動作をフローチャートに沿って説明する。
図7は、マスタノード1側の動作フローチャートである。
図8は、スレーブノード2側の動作フローチャートである。
先ず、図7に示すマスタノード1側の動作について説明する。
シミュレーションが開始されると、マスタ側同期開始手段13により、各スレーブノード2に同期開始信号を送信する(ステップST21)。その後、全てのスレーブノード2に送信を完了したかを判定し(ステップST22)、完了していない場合には、次の信号送信時刻まで待機する(ステップST23)。このステップST23における具体的な待ち時間は、図6の説明で述べた通りである。ステップST23で次の信号送信時刻に達したら、ステップST21に戻り、次のスレーブノード2に同期開始信号を送信する。このような処理を繰り返して行い、全てのスレーブノード2に送信を完了した場合には、最後の同期開始信号がスレーブノード2で受信されるまでの時間待つ(ステップST24)。そして、シミュレーションの本体部分を開始、即ち、シミュレーションループを開始する(ステップST25)。
Next, the overall operation in the present embodiment will be described along a flowchart.
FIG. 7 is an operation flowchart on the
FIG. 8 is an operation flowchart on the
First, the operation on the
When the simulation is started, the master side synchronization start means 13 transmits a synchronization start signal to each slave node 2 (step ST21). Thereafter, it is determined whether transmission to all the
次に、図8に示すスレーブノード2側のシミュレーションループ開始までの動作について説明する。
シミュレーションを開始すると、スレーブ側同期開始手段22は、マスタノード1からの同期開始信号を待ち、受信する(ステップST31)。受信後、スレーブ側同期開始手段22は、マスタノード1が最後のスレーブノード2に送った同期開始信号が、その最後のスレーブノード2で受信される時刻まで待つ(ステップST32)。具体的な待ち時間は、図6の説明で述べた通りであり、スレーブノード2毎に待ち時間は異なる。その後、シミュレーションの本体部分を開始する(ステップST33)。
Next, the operation up to the start of the simulation loop on the
When the simulation is started, the slave side synchronization start means 22 waits for and receives the synchronization start signal from the master node 1 (step ST31). After the reception, the slave side synchronization start means 22 waits until the time when the synchronization start signal sent from the
次に、シミュレーションループ開始後の動作について説明する。
図7に戻り、マスタノード1では、シミュレーション開始後、タスク実行手段14において、タスク実行間隔[t,t+Δt]で実行すべきタスクを実行する(ステップST26)。尚、[t,t+Δt]は、同期時刻tから同期時刻t+Δtまでの時間間隔を示している。また、Δtはシミュレーションの計算刻み時間であり、例えば50μsである。タスク実行後、マスタ側時刻管理手段15において、次の同期時刻t+Δtに移るまでの時刻を管理し(ステップST27)、現在時刻がt+Δtに到達した時点で、後述する時刻T1×n,T2×n,T3×nのいずれでもない場合(ステップST28)は、ステップST26に戻って、シミュレーションループを継続する。即ち、次のタスク実行間隔[t+Δt,t+2Δt]のタスク実行に移る。具体的な時刻管理の方法としては、CPUのクロックカウンタが、時刻tの後何カウントしたかを常に計測し続け、「この計測値をCPU周波数で割った値」がΔtを越えた時点が、tからΔt経過したと判定する。
Next, the operation after starting the simulation loop will be described.
Returning to FIG. 7, in the
一方、ステップST27の待機後の時刻が、ステップST28において、シミュレーション中のある特定の時刻、例えばT1であるときには、すぐにステップST26のタスク実行には戻らずに、該当するスレーブノード2への監視信号の送信処理を行い(ステップST29)、その後ステップST26に戻る。この特定の時刻は、スレーブノード2a,2b,2cに対応して、時刻間隔T1,T2,T3で発生する。即ち、時刻T1,2×T1,3×T1,…でスレーブノード2aに監視信号を送信し、時刻T2,2×T2,3×T2,…でスレーブノード2bに監視信号を送信し、時刻T3,2×T3,3×T3,…でスレーブノード2cに監視信号を送信する。尚、T1,T2,T3の具体的な数値については、スレーブノード2側の処理で説明する。
On the other hand, when the time after standby in step ST27 is a specific time during simulation in step ST28, for example, T1, the task execution in step ST26 is not immediately resumed, and the
次に、図8を参照してスレーブノード2におけるシミュレーションループ開始後の動作について説明する。
スレーブノード2では、シミュレーション開始後、それぞれ独立に時刻管理を行う。先ず、タスク実行手段23において、タスク実行間隔[t,t+Δt]で実行すべきタスクを実行する(ステップST34)。
タスク実行後、時刻補正手段24は、補正係数算出手段21が算出した時刻補正係数A1に基づいて、CPU毎の微妙なクロックのずれ等により生じるマスタノード1との同期時刻のずれを補正する。
Next, the operation after the start of the simulation loop in the
The
After the task execution, the
本発明では、各計算機で独立して時刻管理を行うために、もし時刻補正を行わなければ、長時間シミュレーションしたときに徐々に同期時刻がずれてくる。従って、この微妙なずれを補正するために予め求めた時刻補正係数A1に基づいて補正を行う。具体的な補正方法を、以下に説明する。 In the present invention, since time management is performed independently by each computer, the synchronization time gradually shifts when a long-time simulation is performed unless time correction is performed. Therefore, correction is performed based on the time correction coefficient A1 obtained in advance in order to correct this delicate deviation. A specific correction method will be described below.
図9は、時刻補正手段24における同期時刻補正の説明図である。
図示のように、あるスレーブノードが自分自身で時間管理したときに、マスタノードの時間管理と比較して、1秒間にA1秒ずれる(遅れる)とする(A1の与え方は図4で説明した通りである)。また、時刻tでは全てのノードが完全に同期しているとする。このとき、あるスレーブノード2の時刻カウントが、t+Δtを示す時刻には、マスタノード1の時刻カウントでは、t+(1+A1)Δtを指している。逆に言えば、マスタノード1の時刻カウントがt+Δtを示している時刻には、そのスレーブノード2の時刻カウントでは、t+(1−A1)Δtを指していることになる。従って、基準となるマスタノード1の時刻カウントで、t+Δtで同期させるためには、スレーブノード2では、t+(1−A1)Δtで、次のタスク実行間隔の同期時刻に移らなければならない。
FIG. 9 is an explanatory diagram of the synchronization time correction in the
As shown in the figure, when a certain slave node performs time management by itself, it is shifted (delayed) by A1 seconds per second compared to the time management of the master node (how to give A1 has been described with reference to FIG. 4). Street). Further, it is assumed that all nodes are completely synchronized at time t. At this time, when the time count of a
そこで、時刻補正手段24では、このスレーブノードが、次のループを開始する時刻をt+(1−A1)×Δtと補正する。このようにして、次の同期時刻がマスタノードの同期時刻と正確に一致することを保証する。この補正は、全スレーブノード2がそれぞれ独立に行う。従って、A1の値もスレーブノード2毎に異なる。
Therefore, the time correction means 24 corrects the time when the slave node starts the next loop as t + (1−A1) × Δt. In this way, it is ensured that the next synchronization time exactly matches the synchronization time of the master node. This correction is performed independently by all
図8に戻って、次に、スレーブ側時刻管理手段25において、次の同期時刻t+Δtに移るまでの時刻を管理し(ステップST36)、現在時刻がt+Δt(実際には、ステップST35の時刻補正処理により補正された時刻t+(1−A1)×Δtである)に到達した時点で、時刻T1×n(またはT2×nか、T3×n)でない場合(ステップST37)は、ステップST34に戻って、シミュレーションループを継続する。即ち、次のタスク実行間隔[t+Δt,t+2Δt]のタスク実行に移る。Δt経過を判定する時刻管理の具体的な方法は、マスタノード1で述べた方法と同一である。
Returning to FIG. 8, the slave
一方、ステップST36における待ち時間完了後の時刻が、シミュレーション中のある特定の時刻、例えばT1に到達したときには、すぐにステップST34には戻らずに、監視信号受信手段26により、マスタノード1からの監視信号の受信待ちを行い、この監視信号を受信する(ステップST38)。受信後、補正係数修正手段27により、時刻補正手段24で使用する時刻補正係数A1を修正した後に、ステップST34に戻る。
On the other hand, when the time after the completion of the waiting time in step ST36 reaches a specific time during the simulation, for example, T1, the monitoring
この特定の時刻は、それぞれのスレーブノード2に対応して、時刻間隔T1×n,T2×n,T3×nで発生する。即ち、T1,2×T1,3×T1,…と、T2,2×T2,3×T2,…と、T3,2×T3,3×T3,…である。このT1,T2,T3の値は、マスタノード1におけるT1,T2,T3の値と同一である。ここで、T1,T2,T3の具体的な数値の決定方法としては、例えば、もしステップST35の時刻補正をしなかった場合に発生する同期時刻のずれが、計算刻み時間の10%になる時刻、即ちA1の値を用いて、0.1/A1×Δtとする。但し、この監視で計算機間通信によるオーバーヘッドが発生しないように、T1,T2,T3は全て異なる値に設定する。
This specific time is generated at time intervals T1 × n, T2 × n, and T3 × n corresponding to each
図10は、監視信号による補正係数の修正処理の説明図である。
スレーブノード2aにおける、監視信号受信時刻TTと時刻T1とのずれをR1とする。もし、ステップST35の時刻補正処理で厳密に補正できているとすれば、このR1はRTT1/2に一致する筈である。しかし、これが一致しない場合には、ステップST35の時刻補正が正確でなかったということになり、監視時刻間隔T1の間にR1−RTT1/2のずれが新たに発生しているといえる。そこで、これまで行っていた「t+(1−A1)Δt」による補正の他に、「(R1−RTT1/2)/T1×Δt」の補正を新たに加える。即ち、補正係数を「A1=A1−(R1−RTT1/2)/T1」と置き換え、スレーブノード2aにおける次のループ開始時刻は、この新しいA1を用いて「t+(1−A1)×Δt」とする。このA1は、次の監視時刻までの間使用する。即ち、時刻補正係数A1は、監視時刻間隔T1毎に修正されることになる。このような時刻補正および時刻補正係数の修正処理を、シミュレーションループ中継続する。
FIG. 10 is an explanatory diagram of correction coefficient correction processing using a monitoring signal.
Let R1 be the difference between the monitoring signal reception time TT and the time T1 in the
尚、図8のステップST37において、時刻が、T1×n,T2×n,T3×nのいずれかであった場合は、該当するスレーブノード2では、ステップST34のタスク実行の前に、このタスクとは別処理である補正係数の修正処理(ステップST38、ステップST39の処理)が行われることになる。従って、この修正処理の時間分タスクの実行開始が遅れることになるが、これは次のように考えることができる。
If the time is any one of T1 × n, T2 × n, and T3 × n in step ST37 in FIG. 8, the
先ず、図10における時刻T1直後の状態を考える。
マスタノード1では、時刻T1で次の処理[T1,T1+Δt]分を開始する。一方、スレーブノード2では、監視信号が到着するのを待ってからでないと次の処理が開始できないので、実際に[T1,T1+Δt]分の処理を開始するのは、時刻TTとなる。即ち、スレーブノード2側は、マスタノード1が実行する[T1,T1+Δt]の処理に対応する部分が[TT,TT+Δt−RTT1/2]の間に処理することになる。これは、スレーブノード2側の、時刻T1後の最初の処理に使用可能な時間がRTT1/2だけ短くなったことを意味するが、通信時間RTT1/2がΔtに対して十分小さければ問題とはならない。
First, consider the state immediately after time T1 in FIG.
The
通常、この通信時間はMyrinet 使用の場合約10μsであり、次の処理への時間50μsのうち、実際のタスク実行時間を20〜30μsとすると、この監視処理によるタスク実行への影響はほとんどないと言える。
また、監視処理を実行する頻度は、例えば、ステップST35の補正処理を行わなかった場合のずれがΔtの10%まで遅れても良いという条件では、Δt=50μsのとき、ずれは5μsまで可能である。ここで、1秒間にスレーブノード2の時刻カウントが、(大きくみて)1μsずれるとすると、5秒毎に時刻修正を行えば良いことになる。
また、上述した時刻修正を行うために必要な処理時間が必要となるのは、計算刻み時間を50μs、監視時間間隔を5秒とすると、5/(50×10−6)=100000であり、従って、100000回のタスク実行で1回の割合となり、ほとんど本来のタスク実行には影響を及ぼさないことになる。
Normally, this communication time is about 10 μs when using Myrinet, and if the actual task execution time is 20 to 30 μs out of the next processing time of 50 μs, there is almost no effect on task execution by this monitoring process. I can say that.
The frequency of executing the monitoring process can be up to 5 μs when Δt = 50 μs, for example, under the condition that the deviation when the correction process of step ST35 is not performed may be delayed to 10% of Δt. is there. Here, if the time count of the
In addition, the processing time required for performing the time correction described above is 5 / (50 × 10 −6 ) = 100000 when the calculation step time is 50 μs and the monitoring time interval is 5 seconds. Therefore, 100,000 tasks are executed once, so that the original task execution is hardly affected.
以上の処理により、マスタノード1とスレーブノード2間の同期が正確に開始され、また、各スレーブノード2の固有の同期時刻のずれも補正されると共に、タスク実行中の自動補正された各スレーブノード2の同期時刻のずれも補正される。
Through the above processing, synchronization between the
以上のように、実施の形態1によれば、マスタノード1とスレーブノード2とが、それぞれの通信時間に基づいて求めた同期開始時刻で同期を開始し、その後は、各スレーブノード間に固有の同期時刻のずれを補正しながらタスクを実行し、更に、所定時刻間隔で、時刻補正係数を修正するようにしたので、同期のための特別なハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、各計算機間の正確な同期をとることができる。その結果、従来のような通信時間による遅延がなく各計算機間で正確な同期がとれることから、リアルタイム電力系統シミュレーションといった、タスク実行間隔が短く、厳密な同期を必要とする並列計算機において特に大きな効果が得られる。
As described above, according to the first embodiment, the
また、上記実施の形態1では、同期開始後、時刻補正とその補正係数の修正処理を行うようにしたが、同期開始処理のみであってもよい。即ち、マスタノード1のマスタ側同期開始手段13と、スレーブノード2のスレーブ側同期開始手段22とによる同期開始のみであってもよい。このような構成は、例えば、マスタノード1と各スレーブノード2間の時刻のずれが小さい場合や、シミュレーション時間が短い場合であれば有効である。即ち、各ノード間の時刻のずれが小さい場合は、シミュレーションをある程度の時間行っていても時刻のずれが大きくならないため、各処理実行間隔内でタスクが実行できるからである。また、シミュレーション時間が短い場合、その時間内では時刻のずれが許容範囲内であるため、各処理実行間隔内でタスクが実行できるからである。
In the first embodiment, the time correction and the correction coefficient correction process are performed after the synchronization is started. However, only the synchronization start process may be performed. That is, only the synchronization start by the master side synchronization start unit 13 of the
また、上記実施の形態1では、マスタノード1のマスタ側同期開始手段13は、全スレーブノード2に対して順番に同期開始信号を送信し、かつ、最初の同期開始信号の送信開始時刻を基準として、全スレーブノード2の通信時間の合計値に達した時刻を同期開始時刻とし、スレーブノード2のスレーブ側同期開始手段22は、マスタノード1からの同期開始信号の受信時刻を基準として、マスタノード1が送信する順番が自スレーブノードより後側のスレーブノードの通信時間の合計値に達した時刻を同期開始時刻とするようにしたので、マスタノードとスレーブノードとの同期開始時刻を正確に一致させることができる。
In the first embodiment, the master side synchronization start unit 13 of the
また、上記実施の形態1では、スレーブノード2は、自スレーブノードとマスタノード1との所定時間当たりの時刻のずれに基づいて算出した時刻補正係数を用い、自スレーブノードのタスク実行間隔をマスタノードのタスク実行間隔に同期させるよう補正を行う時刻補正手段を備えたので、タスク実行中に発生するスレーブノードに固有のずれも補正されるため、各ノード間の、より正確な同期を実現することができる。
In the first embodiment, the
また、上記実施の形態1では、マスタノード1は、同期開始から所定時間経過した時刻で補正係数用信号を送信する補正係数用信号送信手段12を備え、スレーブノード2は、同期開始後、補正係数用信号を受信した場合、スレーブ側時刻管理手段25の時刻管理に基づく受信時刻と、同期開始の時刻に、マスタ側時刻管理手段15の時刻管理に基づく所定時間とマスタノード1から自スレーブノードへの通信時間とを加えた時刻とを比較し、これら時刻のずれに対応して時刻補正係数を算出する補正係数算出手段を備えたので、単純な構成で、スレーブノードにおける正確な補正係数の算出を行うことができる。
In the first embodiment, the
尚、上記実施の形態1では、実際のシミュレーションの開始前に各スレーブノード2の補正係数A1を求めるようにしたが、シミュレーション開始後に補正係数A1の演算を各スレーブノード2毎に行い、その後、求めた補正係数A1を用いて補正を行うようにしてもよい。
In the first embodiment, the correction coefficient A1 of each
実施の形態2.
上記実施の形態1では、同期開始後、時刻補正手段24によって各タスク実行間隔毎に同期時刻の補正を行った。実施の形態2では、このタスク実行間隔毎の補正は行わず、予め決められた特定の同期時刻毎に、マスタノードとスレーブノード間の同期時刻を一致させるための時刻修正処理を行うようにしたものである。
In the first embodiment, after the start of synchronization, the time correction means 24 corrects the synchronization time at each task execution interval. In the second embodiment, the correction at every task execution interval is not performed, and the time correction process for matching the synchronization time between the master node and the slave node is performed at each predetermined synchronization time. Is.
図11は、実施の形態2の並列計算機を示すブロック図である。
実施の形態2の並列計算機は、マスタノード3とスレーブノード4(4a〜4c)からなり、これらの基本的な構成は実施の形態1のマスタノード1およびスレーブノード2と同様である。
FIG. 11 is a block diagram illustrating the parallel computer according to the second embodiment.
The parallel computer according to the second embodiment includes a
実施の形態2のマスタノード3と実施の形態1のマスタノード1との図面上の違いは、実施の形態1のマスタノード1において補正係数用信号送信手段12が設けられていないだけである。但し、実施の形態2のマスタノード3の監視信号送信手段16は、実施の形態1の監視信号送信手段16と同様に監視信号を送出するが、この監視信号がスレーブノード4における同期時刻修正のための監視信号であることが異なっている。これ以外の各構成は図1の構成と同様であるため、対応する部分に同一符号を付してその説明は省略する。
The difference between the
また、実施の形態2のスレーブノード4では、実施の形態1のスレーブノード2における時刻補正手段24がなく、スレーブノード2の補正係数修正手段27と基本的に同様の機能を有する時刻修正手段28が設けられている。即ち、この時刻修正手段28は、監視信号受信手段26が監視信号を受信した場合に、スレーブ側時刻管理手段25の時刻管理に基づく受信時刻と、マスタノード3側のマスタ側時刻管理手段15の時刻管理に基づく監視信号の送信時刻にマスタノード3から自スレーブノードへの通信時間を加えた時刻とのずれを測定し、この測定したずれの値に基づき、特定の時刻間隔で自スレーブノードのタスク実行間隔をマスタノードのタスク実行間隔に同期させる機能を有している。スレーブノード4における他の構成は図1の構成と同様であるため、対応する部分に同一符号を付してここでの説明は省略する。
Further, the
このように構成された実施の形態2において、マスタノード3側の動作は図7に示した動作と同様であるため、これを援用して以降の動作説明を行う。
図12は、実施の形態2におけるスレーブノード4側の動作を示すフローチャートである。
ステップST41〜ステップST44までは、図8のステップST31〜ステップST34と同様である。その後、スレーブ側時刻管理手段25の時刻管理によって、t+Δtまで待ち(ステップST45)、次のステップST46において、t=T1×n,T2×n,T3×nのいずれでもない場合は、ステップST44に戻ってタスク実行を繰り返す。
一方、ステップST46において、t=T1×n,T2×n,T3×nのいずれかであった場合、監視信号受信手段26は、監視信号の受信待ちを行う。そして、監視信号受信手段26によって監視信号が受信されると、時刻修正手段28は、スレーブ側時刻管理手段25が管理する時刻の修正を行う(ステップST48)。
In the second embodiment configured as described above, the operation on the
FIG. 12 is a flowchart showing the operation on the
Steps ST41 to ST44 are the same as steps ST31 to ST34 in FIG. After that, by time management of the slave side time management means 25, it waits until t + Δt (step ST45), and when it is not any of t = T1 × n, T2 × n, T3 × n in the next step ST46, the process goes to step ST44. Go back and repeat the task execution.
On the other hand, in step ST46, when t = T1 × n, T2 × n, or T3 × n, the monitoring
図13は、時刻修正処理の説明図である。
時刻T0で、マスタ側同期開始手段13およびスレーブ側同期開始手段22による、同期開始が行われ、次に、マスタノード3から、時刻T1経過後スレーブノード4aに対して信号が送られたとする。
FIG. 13 is an explanatory diagram of time correction processing.
It is assumed that synchronization is started by the master side synchronization start unit 13 and the slave side
スレーブノード4aでは、常に待ち状態で待機し、マスタノード3からの信号を受信した時刻の測定値をTTとする。この時刻TTはマスタノード3とスレーブノード4とが正確に同期しているのであれば、TT=T1+RTT1/2となる筈である。従って、スレーブノード4a側では、時刻修正手段28は、この時刻TTがT1+RTT1/2の時刻となるよう、スレーブ側時刻管理手段25が管理する時刻を修正する。
The
尚、時刻T1毎にスレーブノード4側がずれる値B1は、T1とラウンドトリップタイムRTT1を用いると、図4で示した時刻補正係数A1を求める場合と同様に、
B1=T1−T1×TT/(T1+RTT1/2)
で求めることができる。
Note that the value B1 that the
B1 = T1-T1 × TT / (T1 + RTT1 / 2)
Can be obtained.
このように、時刻T1毎に時刻修正を行うことにより、時刻T1の次の計算刻み時間であるT1+Δtではほぼ完全に同期がとれることになる。ここで、同期開始からの時刻を累積すると、スレーブノード4側の時刻カウントがずれていくことになるが、T1毎に時刻を0にリセットすれば、0+Δtでは常にほぼ完全に同期がとれていることになる。
監視する時刻T1の間隔を短く設定し、スレーブノード4とマスタノード3との時刻カウントのずれが大きくならないうちに時刻修正を行うようにすれば、計算刻み時間の間隔が短いリアルタイム電力系統シミュレーションであっても、十分に適用することができる。例えば、ずれB1がΔtの10%まで遅れても良いという条件では、Δt=50μsのとき、B1=5μsまで可能である。ここで、1秒間にスレーブノード4の時刻カウントが、(大きくみて)1μsずれるとすると、5秒毎に時刻修正を行えば良いことになる。また、この場合の時刻修正処理が行われる頻度は、実施の形態1の監視処理で説明したように、100000回のタスク実行で1回の割合となり、ほとんど本来のタスク実行には影響を及ぼさない。
As described above, by correcting the time every time T1, synchronization is almost completely achieved at T1 + Δt which is the next calculation step time after time T1. Here, when the time from the start of synchronization is accumulated, the time count on the
If the interval of the time T1 to be monitored is set short and the time is corrected before the time count deviation between the
以上のように、実施の形態2によれば、スレーブノード4は、マスタノード3からの監視信号を受信した場合に、自スレーブノード側の時刻管理に基づく受信時刻と、マスタノード3側の時刻管理に基づく監視信号の送信時刻にマスタノード3から自スレーブノードへの通信時間を加えた時刻とのずれを測定し、このずれの値に基づき、特定の時刻間隔で自スレーブノードのタスク実行間隔をマスタノード3のタスク実行間隔に同期させる時刻修正手段28を備えたので、特別のハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、計算機間の正確な同期をとることができる。また、実施の形態1に比べて構成を簡素化できる効果がある。
As described above, according to the second embodiment, when the
尚、上記各実施の形態では、スレーブノード2,4が3台である場合を説明したが、この台数に限定されるものではなく、1台以上のスレーブノード2,4であれば、同様の効果を奏することができる。例えば、マスタノード+スレーブノード1台の場合でも、従来であれば同期信号を通信していたため、この通信には高速なネットワーク装置でも約10μs必要であるが、本実施の形態の並列計算機ではこれを0にすることができる等、有効な効果を得ることができる。但し、本実施の形態の並列計算機の場合、スレーブノード2,4の台数が多ければ多いほど、大きな効果を得ることができる。
In each of the above embodiments, the case where there are three
以上のように、この発明に係る並列計算機は、タスク実行間隔の完全な同期を実現する。そして、リアルタイム電力系統シミュレーションに適用され、信頼性の高いシミュレータを得るのに適している。 As described above, the parallel computer according to the present invention realizes complete synchronization of task execution intervals. It is applied to real-time power system simulation and is suitable for obtaining a highly reliable simulator.
1,3 マスタノード、2,4 スレーブノード、11 通信時間測定手段、12 補正係数用信号送信手段、13 マスタ側同期開始手段、14 タスク実行手段、15 マスタ側時刻管理手段、16 監視信号送信手段、21 補正係数算出手段、22 スレーブ側同期開始手段、23 タスク実行手段、24 時刻補正手段、25 スレーブ側時刻管理手段、26 監視信号受信手段、27 補正係数修正手段、28 時刻修正手段。
DESCRIPTION OF
Claims (5)
前記マスタノードは、
前記マスタノード側の時刻を管理するマスタ側時刻管理手段と、
前記スレーブノードに対して、前記タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、前記マスタ側時刻管理手段が管理する送信開始時刻を基準として、前記マスタノードから前記スレーブノードへの通信時間に基づいて求めた同期開始時刻で前記タスク実行間隔の同期を開始するマスタ側同期開始手段と、
予め決められた特定の時刻間隔でタスク実行間隔の同期時刻修正のための監視信号を送信する監視信号送信手段とを備え、
前記スレーブノードは、
前記スレーブノード側の時刻を管理するスレーブ側時刻管理手段と、
前記マスタノードからの同期開始信号を受信した場合、前記スレーブ側時刻管理手段が管理する受信時刻に基づいて、前記マスタノードの同期開始時刻に一致した自スレーブノードの同期開始時刻を決定し、当該時刻で前記タスク実行間隔の同期を開始するスレーブ側同期開始手段と、
前記監視信号を受信した場合に、スレーブ側時刻管理手段が管理する受信時刻と、マスタ側時刻管理手段が管理する監視信号の送信時刻に前記マスタノードから前記自スレーブノードへの通信時間を加えた時刻とのずれを測定し、当該測定したずれの値に基づき、前記特定の時刻間隔で前記自スレーブノードのタスク実行間隔の同期時刻を前記マスタノードのタスク実行間隔の同期時刻に一致させる時刻修正手段とを備えた並列計算機。 In a parallel computer consisting of a master node and a slave node and synchronizing the task execution interval of the master node and the task execution interval of the slave node,
The master node is
Master side time management means for managing the time on the master node side;
Sending a synchronization start signal for starting synchronization of the task execution interval to the slave node, and from the master node to the slave node on the basis of the transmission start time managed by the master side time management means a master-side synchronization start means initiating synchronization of the task execution interval synchronization start time determined based on the communication time to,
Monitoring signal transmission means for transmitting a monitoring signal for correcting the synchronization time of the task execution interval at a predetermined specific time interval ,
The slave node is
Slave side time management means for managing the time on the slave node side;
When receiving the synchronization start signal from the master node, based on the reception time managed by the slave side time management means, determine the synchronization start time of its own slave node that matches the synchronization start time of the master node, Slave side synchronization start means for starting synchronization of the task execution interval at time ;
When the monitoring signal is received, the communication time from the master node to the slave node is added to the reception time managed by the slave side time management unit and the transmission time of the monitoring signal managed by the master side time management unit A time correction that measures a deviation from the time and matches the synchronization time of the task execution interval of the slave node with the synchronization time of the task execution interval of the master node at the specific time interval based on the measured deviation value And a parallel computer.
前記マスタノードは、
前記マスタノード側の時刻を管理するマスタ側時刻管理手段と、
全スレーブノードに対して順番に前記タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、前記マスタ側時刻管理手段が管理する最初の同期開始信号の送信開始時刻を基準として、前記全スレーブノードの通信時間の合計値に達した時刻を同期開始時刻とし、当該同期開始時刻で前記タスク実行間隔の同期を開始するマスタ側同期開始手段とを備え、
前記スレーブノードは、
前記スレーブノード側の時刻を管理するスレーブ側時刻管理手段と、
前記マスタ側同期開始手段からの同期開始信号の受信時刻を基準として、前記マスタノードが送信する順番が自スレーブノードより後側へのスレーブノードの通信時間の合計値に達した時刻を同期開始時刻とし、当該時刻で前記タスク実行間隔の同期を開始するスレーブ側同期開始手段とを備えた並列計算機。 In a parallel computer consisting of a master node and a slave node and synchronizing the task execution interval of the master node and the task execution interval of the slave node,
The master node is
Master side time management means for managing the time on the master node side;
Sending a synchronization start signal for starting the synchronization of the task execution interval in turn to all slave nodes, and with reference to the transmission start time of the first synchronization start signal managed by the master side time management means , A time at which a total value of communication times of all the slave nodes is reached as a synchronization start time, and master side synchronization start means for starting synchronization of the task execution interval at the synchronization start time,
The slave node is
Slave side time management means for managing the time on the slave node side;
Based on the reception time of the synchronization start signal from the master side synchronization start means, the time when the transmission order of the master node has reached the total value of the communication time of the slave node from the slave node to the rear side is the synchronization start time And a slave side synchronization start means for starting synchronization of the task execution interval at the time .
前記マスタノードは、
前記マスタノード側の時刻を管理するマスタ側時刻管理手段と、
前記スレーブノードに対して、前記タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、前記マスタ側時刻管理手段が管理する送信開始時刻を基準として、前記マスタノードから前記スレーブノードへの通信時間に基づいて求めた同期開始時刻で前記タスク実行間隔の同期を開始するマスタ側同期開始手段とを備え、
前記スレーブノードは、
前記スレーブノード側の時刻を管理するスレーブ側時刻管理手段と、
前記マスタノードからの同期開始信号を受信した場合、前記スレーブ側時刻管理手段が管理する受信時刻に基づいて、前記マスタノードの同期開始時刻に一致した自スレーブノードの同期開始時刻を決定し、当該時刻で前記タスク実行間隔の同期を開始するスレーブ側同期開始手段と、
自スレーブノードとマスタノードとの所定時間当たりの時刻のずれに基づいて算出した時刻補正係数を用い、前記自スレーブノードのタスク実行間隔を前記マスタノードのタスク実行間隔に同期させるよう補正を行う時刻補正手段とを備えた並列計算機。 In a parallel computer consisting of a master node and a slave node and synchronizing the task execution interval of the master node and the task execution interval of the slave node,
The master node is
Master side time management means for managing the time on the master node side;
Sending a synchronization start signal for starting synchronization of the task execution interval to the slave node, and from the master node to the slave node on the basis of the transmission start time managed by the master side time management means Master side synchronization start means for starting synchronization of the task execution interval at the synchronization start time obtained based on the communication time to
The slave node is
Slave side time management means for managing the time on the slave node side;
When receiving the synchronization start signal from the master node, based on the reception time managed by the slave side time management means, determine the synchronization start time of its own slave node that matches the synchronization start time of the master node, Slave side synchronization start means for starting synchronization of the task execution interval at time;
Time for performing correction so that the task execution interval of the slave node is synchronized with the task execution interval of the master node, using a time correction coefficient calculated based on a time lag between the slave node and the master node per predetermined time parallel computer including a correction means.
スレーブノードは、前記監視信号を受信した場合に、スレーブ側時刻管理手段が管理する受信時刻と、前記マスタ側時刻管理手段が管理する監視信号の送信時刻に前記マスタノードから前記自スレーブノードへの通信時間を加えた時刻とのずれを測定し、当該測定したずれの値に基づき、前記特定の時刻間隔で時刻補正係数を修正する補正係数修正手段を備えた請求項3記載の並列計算機。 The master node includes monitoring signal transmission means for transmitting a monitoring signal for correcting the time correction coefficient at a specific time interval determined in advance.
When the slave node receives the monitoring signal, the slave node transmits the monitoring time managed by the slave time management unit and the transmission time of the monitoring signal managed by the master time management unit from the master node to the slave node. 4. The parallel computer according to claim 3 , further comprising a correction coefficient correcting unit that measures a deviation from a time added with communication time and corrects a time correction coefficient at the specific time interval based on the measured deviation value.
スレーブノードは、同期開始後、前記補正係数用信号を受信した場合、スレーブ側時刻管理手段の管理に基づく受信時刻と、前記同期開始の時刻に、前記マスタ側時刻管理手段の管理に基づく所定時間と当該マスタノードから自スレーブノードへの通信時間とを加えた時刻とを比較し、これら時刻のずれに対応して時刻補正係数を算出する補正係数算出手段を備えた請求項3記載の並列計算機。 The master node includes correction coefficient signal transmitting means for transmitting a correction coefficient signal at a time when a predetermined time has elapsed from the start of synchronization,
When the slave node receives the correction coefficient signal after the start of synchronization, the slave node receives a reception time based on the management of the slave side time management means, and a predetermined time based on the management of the master side time management means at the time of the synchronization start. 4. A parallel computer according to claim 3, further comprising a correction coefficient calculation means for comparing a time obtained by adding a communication time from the master node to the slave node and calculating a time correction coefficient corresponding to the time lag. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003303604A JP4080397B2 (en) | 2003-08-27 | 2003-08-27 | Parallel computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003303604A JP4080397B2 (en) | 2003-08-27 | 2003-08-27 | Parallel computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005071280A JP2005071280A (en) | 2005-03-17 |
JP4080397B2 true JP4080397B2 (en) | 2008-04-23 |
Family
ID=34407550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003303604A Expired - Fee Related JP4080397B2 (en) | 2003-08-27 | 2003-08-27 | Parallel computer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4080397B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614239A (en) * | 2018-12-12 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | System cluster load-balancing method, device and relevant device |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080288137A1 (en) * | 2005-09-16 | 2008-11-20 | Autonetworks Technologies, Ltd. | Vehicle-Mounted Load Drive Control System |
WO2010073312A1 (en) * | 2008-12-22 | 2010-07-01 | トヨタ自動車株式会社 | Vehicle electronic control system, vehicle electronic control unit, and vehicle control synchronization method |
DE112008004194B4 (en) | 2008-12-22 | 2015-01-29 | Toyota Jidosha Kabushiki Kaisha | ELECTRONIC VEHICLE CONTROL SYSTEM, ELECTRONIC VEHICLE CONTROL UNIT AND VEHICLE CONTROL SYNCHRONIZATION METHOD |
JP5568048B2 (en) | 2011-04-04 | 2014-08-06 | 株式会社日立製作所 | Parallel computer system and program |
JP6485306B2 (en) * | 2015-09-25 | 2019-03-20 | 株式会社デンソー | Control system |
JP6683137B2 (en) * | 2017-01-11 | 2020-04-15 | 三菱電機株式会社 | Industrial controller system |
CN111817819B (en) * | 2019-04-12 | 2023-06-02 | 中兴通讯股份有限公司 | FEC mode synchronization method, system, master node and slave node |
-
2003
- 2003-08-27 JP JP2003303604A patent/JP4080397B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614239A (en) * | 2018-12-12 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | System cluster load-balancing method, device and relevant device |
Also Published As
Publication number | Publication date |
---|---|
JP2005071280A (en) | 2005-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7475272B2 (en) | Method for calculating clock offset and skew | |
KR101109980B1 (en) | Facilitating synchronization of servers in a coordinated timing network | |
RU2404448C2 (en) | Hardware-generated time marks for network packets: improved synchronisation of network clocks | |
US6865612B2 (en) | Method and apparatus to provide high precision packet traversal time statistics in a heterogeneous network | |
US8108557B2 (en) | System and method for measuring clock skew on a network | |
US7925916B2 (en) | Failsafe recovery facility in a coordinated timing network | |
US20220248353A1 (en) | Synchronization method and device | |
US20100293243A1 (en) | method and apparatus for measuring directionally differentiated (one-way) network latency | |
JP4080397B2 (en) | Parallel computer | |
CN113572560B (en) | Method, electronic device, and storage medium for determining clock synchronization accuracy | |
WO2023123956A1 (en) | Io full-lifecycle latency monitoring method and related apparatus | |
JP5675703B2 (en) | Communication device, control device, and program | |
US8989039B2 (en) | Packet transfer delay measurement system | |
KR100735407B1 (en) | Apparatus and method for estimating distance using time of arrival | |
CN110375596B (en) | Time consistency control method for cooperative guidance simulation system | |
CN111884751A (en) | Smart grid time synchronization method and device based on PTP | |
CN103401813B (en) | A kind of asymmetric delay compensation method and switch | |
JP2917939B2 (en) | Server performance measurement method | |
KR20160088982A (en) | System and Method for synchronizing data including timestamp between plural controllers | |
CN111638749A (en) | Simulation system synchronization method, simulation device and system | |
KR20170124213A (en) | UTC Time Synchronization Method for a Device using GPS Module | |
WO2020132834A1 (en) | Method and device for stamping processing | |
CN115459897B (en) | Step length synchronous calibration method and device in power real-time simulation and related equipment | |
CN112398560A (en) | Measuring method, measuring device and storage medium | |
CN113890841B (en) | Efficient large-scale one-way delay measuring method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070702 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070710 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070907 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070912 |
|
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: 20080108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110215 Year of fee payment: 3 |
|
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: 20120215 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |