JP2005071280A - 並列計算機、マスタノード及びそのプログラム、スレーブノード及びそのプログラム - Google Patents

並列計算機、マスタノード及びそのプログラム、スレーブノード及びそのプログラム Download PDF

Info

Publication number
JP2005071280A
JP2005071280A JP2003303604A JP2003303604A JP2005071280A JP 2005071280 A JP2005071280 A JP 2005071280A JP 2003303604 A JP2003303604 A JP 2003303604A JP 2003303604 A JP2003303604 A JP 2003303604A JP 2005071280 A JP2005071280 A JP 2005071280A
Authority
JP
Japan
Prior art keywords
time
synchronization
node
slave
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.)
Granted
Application number
JP2003303604A
Other languages
English (en)
Other versions
JP4080397B2 (ja
Inventor
Takanari Yamamoto
隆也 山本
Yoshiyuki Kono
良之 河野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2003303604A priority Critical patent/JP4080397B2/ja
Publication of JP2005071280A publication Critical patent/JP2005071280A/ja
Application granted granted Critical
Publication of JP4080397B2 publication Critical patent/JP4080397B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】 並列計算機でタスク実行間隔の正確な同期を実現する。
【解決手段】 マスタノード1では、マスタ側同期開始手段13が、スレーブノード2に対して同期開始信号を送信し、かつ、自己が管理する送信開始時刻を基準とした同期開始時刻でタスク実行間隔の同期を開始する。スレーブノード2では、マスタノード1から同期開始信号を受信した場合、スレーブ側同期開始手段22が、自己が管理する受信時刻に基づいて、マスタノード1の同期開始時刻に一致した自スレーブノードの同期開始時刻を決定し、この時刻でタスク実行間隔の同期を開始する。
【選択図】 図1

Description

本発明は、例えば、電力系統のリアルタイムシミュレーションに適用される並列計算機、マスタノード及びそのプログラム、スレーブノード及びそのプログラムに関するものである。
一般に、並列計算機によるシミュレーションでは、計算機間の同期は重要である。例えば、外部機器と接続するリアルタイム電力系統シミュレーションでは、計算刻み時間50μs程度でシミュレーションするため、同期時刻が計算機間で数10μsずれただけで、シミュレーション結果に悪影響を及ぼす。従って、正確な同期がとれるかどうかが、信頼性の高いシミュレータであることの一つの条件でもある。
電力系統シミュレーションの分野では、近年の計算機技術の発展に伴い、従来のアナログシミュレータに代わって、設置スペース・操作性・現象の再現性に優れたディジタルシミュレータの開発が活発になってきた。電力系統のシミュレーションにおいて並列処理が有効であることは以前から知られており、これを実現するために専用ハードウェアあるいは共有メモリ型の非常に高性能な計算機上でシミュレーションソフトウェアが開発されてきた。しかし、これら計算機は非常に高価であることから、一般ユーザーへの普及が進みにくい状況にあった。このような高性能ハードウェアを採用した場合、CPU間通信は非常に高速であるため、CPU間の同期は大きな問題ではなかった。
一方、計算機技術者の間では、1990年代半ばに登場し、性能対コストパフォーマンスに優れたPCクラスタと呼ばれる新しい計算機プラットフォームが注目されるようになってきた。PCクラスタとは、汎用PC(パーソナルコンピュータ)をネットワーク装置で接続した分散並列処理システムの一般的な呼称である。本出願人は、このPCクラスタという新しい技術に注目し、他社に先駆けてPCクラスタ上で電力系統シミュレータの開発を開始した。開発したシミュレータでは、様々な高度な並列処理技術を適用して、高性能なシステムを実現した。開発システムでは、PC間の通信に高速なネットワーク装置を使用し、PC間通信ソフトウェアの高速化開発を行った結果、PC間の同期のずれを10μs程度の通信時間で抑えることに成功した。しかしながら、シミュレータのさらなる高性能化を目指すためには、この同期時刻のずれの改善が一つの課題でもある。
一般に、並列計算機の同期方法では、並列計算機のうち、1台をマスタノード、残りをスレーブノードとし、同期時刻はマスタノードにより管理していた。即ち、マスタノードは、シミュレーションの各タスク実行間隔毎に、全スレーブノードに同期信号を送信する。マスタノードの同期時刻は、この信号送信直前または全スレーブノードに送信完了直後のいずれかである。スレーブノードの同期時刻は、マスタノードからの信号受信直後である。あるいは、確実に送受信できていることを保証するため、スレーブノードで信号受信後、確認信号をマスタノードに送り返す方法もあった。このような方法を用いた場合には、マスタノードの同期時刻は、全スレーブノードから確認信号を受信した時刻であり、スレーブノードの同期時刻は、マスタノードに信号を送信した直後である。
従来、このような並列計算機の同期に関する技術としては、例えば特許文献1に示すものがあった。このような従来技術では、バリア同期機構の複雑化を招かず、しかも特別な通信機構を設けずに、自装置内でのバリア同期成立の情報を送受信することによって並列処理の完了を検出する。このように、従来の技術では、計算機間の同期をとるためには、同期信号を送受信する必要があり、この通信時間の遅延は本質的に避けることはできない。
特開2001−51966号公報
上記従来の一般的な同期方法を用いた場合、以下のような問題点があった。
従来の技術では、PCクラスタのような分散並列計算機では、同期信号の送受信は、イーサネット(登録商標)(米国ゼロックス社の登録商標)などのネットワーク通信により行う。しかし、この通信時間は、ギガビットイーサーネット(登録商標)でも数10μs、もっと高速なMyrinet (米国Myricom 社の登録商標)でも10μs程度の通信時間がかかる。このような通信時間に起因する遅延により、全計算機で真に正確な同期をとることができない。これは、現在のハードウェア技術では解決できない問題であり、将来的にも通信時間を0にすることは不可能である。
特に、電力系統シミュレータのように、計算刻み時間50μsが要求されるようなシミュレーションにおいては、この同期時刻のずれがシミュレーションの信頼性を損なうことがある。この同期の問題が、リアルタイム電力系統シミュレーションの分野で本出願人以外がPCクラスタを使わない一つの原因でもある。本出願人は、PC間通信ソフトウェアの高速化開発を行った結果、上述した従来の方法でPC間通信時間10μsを実現し、多くの場合、シミュレーション結果に問題がないことを確認している。しかしながら、シミュレータのさらなる高性能化・高信頼化を目指した場合、この同期時刻のずれの改善が課題の一つであった。
もっとも、ネットワーク通信を用いずに、非常に高性能なDIOカードといった通信装置により同期信号を送受信することもできる。しかし、このような通信装置は、PC本体と比べて何倍も高価であり、正確な同期のためだけに、このような高価なハードウェアを採用するのは現実的ではない。
この発明は上記のような課題を解決するためになされたもので、第1の目的は、高価なハードウェアを用いることなく、汎用のPCと汎用のネットワークを用いて並列計算機における正確な同期を実現するものである。
この発明に係る並列計算機は、そのマスタノードが、スレーブノードに対してタスク実行間隔の同期を開始させるための同期開始信号を送信すると共に、自己が管理する送信開始時刻を基準として、マスタノードからスレーブノードへの通信時間に基づいて求めた同期開始時刻でタスク実行間隔の同期を開始するようにしたものである。また、そのスレーブノードが、マスタノードからの同期開始信号を受信した場合、自己が管理する受信時刻に基づいて、マスタノードの同期開始時刻に一致した自スレーブノードの同期開始時刻を決定し、この時刻でタスク実行間隔の同期を開始するようにしたものである。
この発明は、マスタノードとスレーブノード間の通信時間に基づいた同期開始時刻により、マスタノードとスレーブノード間のタスク実行間隔の同期を開始するようにしたので、従来では避けることができなかった同期信号の送受信時間に起因する同期時刻のずれが発生せず、正確な計算機間の同期を実現することができる。
実施の形態1.
先ず、本発明の実施の形態1の概要を説明する。
実施の形態1の並列計算機は、マスタノードからの同期信号でスレーブノードの同期を行うのではなく、スレーブノードが独自に時刻管理を行うようにしたものであり、そのため、大きく分けて、次のような三つの特徴点を有している。
(1)同期開始時刻の決定方法
(2)同期開始後に発生する、同期時刻のずれの自動補正方法
(3)自動補正の監視方法
本実施の形態では、計算機のうち一つをマスタノードとし、その他をスレーブノードとする。以下、4台の同一ハードウェア構成の計算機があり、1台をマスタノード、3台をスレーブノードとした場合を例として説明する。
前処理として、マスタノードと各スレーブノード間の通信時間は予め測定しておく。即ち、マスタノード→スレーブノード#1、マスタノード→スレーブノード#2、・・・、マスタノード→スレーブノード#N(スレーブノードが3台の場合、N=3)の各通信時間を測定しておく。このようなマスタノードと各スレーブノード間の通信時間を予め測定する点が本実施の形態における一つの特徴である。
(1)同期開始時刻の決定方法
[マスタノードの動作]
先ず、スレーブノード#1に同期開始信号を送信する。
送信命令実行後、予め測定済のマスタノード−スレーブノード#1間にかかる通信時間の間だけ待つ。
次に、スレーブノード#2に同期開始信号を送信する。
送信命令実行後、予め測定済のマスタノード−スレーブノード#2間にかかる通信時間の間だけ待つ。
最後に、スレーブノード#3に同期開始信号を送信する。
送信命令実行後、予め測定済のマスタノード−スレーブノード#3間にかかる通信時間の間だけ待つ。
最後の通信時間待ちが完了した時刻を、同期開始時刻とする。
[スレーブノード#1の動作]
マスタノードが最初の同期開始信号を送信する前に、信号受信待ち状態で待機する。
マスタノードからの同期開始信号受信完了後、予め測定済のマスタノード−スレーブノード#2間の通信時間と、マスタノード−スレーブノード#3間の通信時間の合計値の間だけ待つ。この通信時間待ちが完了した時刻を、同期開始時刻とする。
[スレーブノード#2の動作]
マスタノードが最初の同期開始信号を送信する前に、信号受信待ち状態で待機する。
マスタノードからの同期開始信号受信完了後、予め測定済のマスタノード−スレーブノード#3間にかかる通信時間の間だけ待つ。この通信時間待ちが完了した時刻を、同期開始時刻とする。
[スレーブノード#3の動作]
マスタノードが最初の同期開始信号を送信する前に、信号受信待ち状態で待機する。
マスタノードからの同期開始信号受信が完了した時刻を、同期開始時刻とする。
(2)同期開始後に発生する、同期時刻のずれの自動補正方法
同期開始後のシミュレーション中の時間管理は、各スレーブノードが独立して行う。スレーブノード毎のCPUクロックの微妙なずれによるタスク実行間隔の同期時刻のずれは、以下のようにして自動補正する。
予め、マスタノードと各スレーブノードの間で、所定時間(例えば1秒間)のテストシミュレーションを実施し、マスタノードの時間管理と各スレーブノードの時間管理の間で、テストシミュレーション中に1秒間に発生するずれの値を測定しておく。実際のシミュレーション中は、各スレーブノードのタスク実行間隔毎に、このずれの値に基づく時刻補正係数を用いて、独立に同期時刻のずれを補正する。
(3)自動補正の監視方法
各スレーブノードでは、それぞれの時刻補正係数を用いて独自に時刻管理を補正しているが、この補正が正しいかを以下のようにして監視する。
予め決められた特定の時刻間隔で、マスタノードから各スレーブノードに時刻補正係数を修正するための監視信号を送り、各スレーブノードでは、その受信した時刻に基づいて、時刻補正係数による補正が正しいかを確認する。補正結果にずれがあった場合は、時刻補正係数を調整する。
以上が、実施の形態1の概要である。以下、このような実施の形態1を更に詳細に説明する。
図1は、この発明の実施の形態1による並列計算機を示すブロック図である。
図示の並列計算機は、マスタノード1と3台のスレーブノード2(2a〜2c)からなる4台の同一ハードウェア構成の並列計算機の例を示している。尚、スレーブノード2a,2b,2cは、それぞれ同様の構成であるため、スレーブノード2a以外は、内部の機能ブロックの図示を省略している。以下、スレーブノード2a〜2cに共通する構成、動作の場合は、スレーブノード2として説明する。
これらの並列計算機はPCクラスタを構成するものである。各PCは、図示しないNIC(Network Interface Card )を有し、ケーブルを用い、相互にスイッチングハブ等を介して接続されている。尚、NICやケーブルおよびスイッチングハブは、公知の汎用のNICやケーブルおよびスイッチングハブであるため、ここでの図示およびその説明は省略する。
図1において、マスタノード1は、通信時間測定手段11、補正係数用信号送信手段12、マスタ側同期開始手段13、タスク実行手段14、マスタ側時刻管理手段15、監視信号送信手段16を備えている。通信時間測定手段11は、マスタノード1と各スレーブノード2との通信時間を計測する機能を有している。補正係数用信号送信手段12は、各スレーブノード2に対して、補正係数計測のための補正係数用信号を送信する機能を有している。マスタ側同期開始手段13は、スレーブノード2に対して、タスク実行間隔の同期を開始させるための同期開始信号を送信すると共に、スレーブノード2への通信時間に基づいて求めた同期開始時刻で同期を開始する機能を有している。タスク実行手段14は、シミュレーションのタスクを実行する機能を有している。マスタ側時刻管理手段15は、マスタノード1側の同期時刻や送信時刻といった時刻の管理を行う機能部である。監視信号送信手段16は、予め決められた特定の時刻間隔で時刻補正係数を修正するための監視信号を各スレーブノード2に送信する機能を有している。
スレーブノード2は、補正係数算出手段21、スレーブ側同期開始手段22、タスク実行手段23、時刻補正手段24、スレーブ側時刻管理手段25、監視信号受信手段26、補正係数修正手段27を備えている。補正係数算出手段21は、マスタノード1から送信された補正係数用信号を受信し、この信号の受信時刻に基づいてマスタノード1とスレーブノード2間における所定時間当たりのずれ時間を求め、このずれ時間から補正係数を算出する機能を有している。スレーブ側同期開始手段22は、マスタノード1からの同期開始信号を受信した場合、スレーブ側時刻管理手段25が管理する受信時刻に基づいて自己の同期開始時刻を決定し、その時刻で同期を開始する機能を有している。
タスク実行手段23は、シミュレーションのタスクを実行する機能部である。時刻補正手段24は、補正係数算出手段21で算出された補正係数に基づいて時刻の補正を行う機能部である。スレーブ側時刻管理手段25は、スレーブノード2としての時刻管理を行う機能部である。監視信号受信手段26は、マスタノード1から予め決められた特定の時刻間隔で送信される監視信号を受信する機能部である。補正係数修正手段27は、監視信号受信手段26で受信した監視信号に基づいて、時刻補正手段24にて補正された時刻とのずれがあった場合は、時刻補正手段24が用いる補正係数を修正する機能を有している。
尚、上記のマスタノード1における通信時間測定手段11〜監視信号送信手段16およびスレーブノード2における補正係数算出手段21〜補正係数修正手段27は、それぞれ、各機能に対応したプログラムと、これらのプログラムを実行するためのCPUやメモリ等からなるハードウェアとによって構成されている。
次に、本実施の形態の並列計算機の動作を説明する。動作説明として、先ず、シミュレーション開始処理に先立って行うマスタノード1とスレーブノード2との通信時間の測定について説明する。
図2は、マスタノード1とスレーブノード2との往復通信時間(ラウンドトリップタイム:RTT)の計測方法の説明図である。
ラウンドトリップタイムとは、2台の計算機のうち、一方の計算機が他方の計算機に向かってデータを送信し、他方の計算機がこのデータ受信後、一方の計算機にデータを送信し、一方の計算機がこのデータを受信するまでの時間である。データの送受信にかかる時間は、図2に示すように、送信側(図ではマスタノード)の処理100a(図示しないCPUとNICの処理)、ケーブル間のデータ移動とスイッチングハブの処理(図中の矢印部分)、受信側(図ではスレーブノード)の処理100b(図示しないCPUとNICの処理)の三つに分けることができる。
マスタノード1とスレーブノード2が同一のハードウェア構成である場合、片道の通信時間は、ラウンドトリップタイムRTTの半分であると推定できる。通常、ラウンドトリップタイム計測時に、その他の通信が全く行われていない場合には、このラウンドトリップタイムはほぼ一定であり、その誤差は通常1μs以下である。以上により、本発明が対象とする分散並列計算機においても、予めラウンドトリップタイムを測定することにより、正確な計算機間片道通信時間を知っておくことができる。
各スレーブノード2のラウンドトリップタイムRTT1〜RTT3は、マスタノード1の通信時間測定手段11により、シミュレーション前にシステムデータとして計測しておくが、その計測方法を次に説明する。
図3は、ラウンドトリップタイムの測定方法のフローチャートである。
マスタノード1において、計測反復回数として、通信回数(例えばn=10,000回)が入力される(ステップST1a)。その後、実際の測定が開始される。先ず、開始時刻t0を計測し、これを保持しておく(ステップST2a)。次に、1回目の送信を行う(ステップST3a)。尚、この場合の送信データは、単に送受信の確認が行えるものであれば、そのデータの内容は特にどのようなものであってもよい。
次に、スレーブノード2からの信号を受信すると(ステップST4a)、これがステップST1aで入力された計測反復回数nに達したかを判定し(ステップST5a)、達していない場合はステップST3aに戻り、信号の送受信を繰り返す。
ステップST5aにおいて、入力された計測反復回数nに達した場合は、信号の送受信を終了し、終了時刻t1を計測する(ステップST6a)。次に、一回のラウンドトリップタイムを式RTT1=(t1−t0)/nにより計算し(ステップST7a)、結果を出力する(ステップST8a)。
また、スレーブノード2では、マスタノード1からの信号を受信した場合(ステップST1b)、マスタノード1へ信号を送信する(ステップST2b)。そして、マスタノード1からの信号を受信する度にこれを繰り返す。この計測は、各スレーブノード2個別に行う。
次に、同期開始後に発生するタスク実行間隔のずれを自動補正するための時刻補正係数A1の求め方について説明する。
図4は、時刻補正係数A1の求め方の説明図である。
説明を簡単にするため、マスタノード1と1台のスレーブノード2aの間の関係についてのみ述べる。時刻補正係数A1の求め方としては、先ず、本実施の形態の同期開始時刻を同期させる方法(これについては、後述する)を用いて、A1計測用シミュレーションを開始する。尚、A1計測用シミュレーションといっても、実際には時刻を常にチェックし、1秒経過するのを待つだけである。そして、マスタノード1で1秒経過した時点でスレーブノード2aに補正係数用信号を送る。
スレーブノード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)の関係を導くことができる。
図5は、時刻補正係数A1の測定方法を示すフローチャートである。
マスタノード1において、本実施の形態の同期開始処理(マスタ側同期開始手段13とスレーブ側同期開始手段22とによる同期開始処理)によって、各スレーブノード2との同期を開始し、時刻補正係数A1の計測処理を開始する。次に、マスタ側時刻管理手段15で1秒が経過したら(ステップST11a)、補正係数用信号送信手段12は、各スレーブノード2に補正係数用信号を送信し(ステップST12a)、マスタノード1側の処理を終了する。
スレーブノード2では、補正係数の計測処理が開始されると、補正係数算出手段21は、先ず、補正係数用信号の受信を待機し(ステップST11b)、補正係数用信号が受信された場合は、受信直後の時刻Tを計測する(ステップST12b)。その後、時刻補正係数A1を、A1=1−T/(1+RTT1/2)の式に基づいて計算する(ステップST13b)。そして、この時刻補正係数A1を時刻補正手段24に出力する(ステップST14b)。時刻補正手段24は、この時刻補正係数A1を保持する。
次に、マスタノード1とスレーブノード2の同期開始について説明する。
図6は、マスタノード1とスレーブノード2との同期開始時刻の決定方法を示す説明図である。
マスタノード1と、各スレーブノード2間のラウンドトリップタイムRTT1〜RTT3は、通信時間測定手段11によって予め測定してあるとする。また、マスタノード1から各スレーブノード2に同期開始信号を送信する順番は予め決定され、マスタノード1のマスタ側同期開始手段13は、この情報を保持しておく。一方、各スレーブノード2のスレーブ側同期開始手段22は、マスタノード1からの送信順序が、自スレーブノード2より後であるスレーブノード2の通信時間の合計値を保持しておく。
先ず、全てのスレーブノード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)、即ちシミュレーション開始時刻とする。
一方、スレーブノード2aでは、マスタノード1からの同期開始信号受信後、保持している他のスレーブノード2b,2cの通信時間に基づいて、(RTT2/2+RTT3/2)秒間待ち、この待ちが完了した時刻を同期開始時刻とする。また、スレーブノード2bでは、マスタノード1からの同期開始信号受信後、RTT3/2秒間待ち、この待ちが完了した時刻を同期開始時刻とする。更に、スレーブノード2cでは、マスタノード1からの同期開始信号の受信が完了した時刻を同期開始時刻とする。
以上の方法で、マスタノード1と各スレーブノード2との同期開始時刻を正確に一致させることができる。
尚、上記の同期開始処理を行う場合、同期開始以前(同期開始時刻t=0以前)では、スレーブノード2において後述する時刻補正は行われていないため、各スレーブノード2は、スレーブノード自身の時刻カウントで開始時刻を管理することになる。従って、各通信時間の値RTT1,RTT2,RTT3の値は、厳密には、マスタノード1と各スレーブノード2とでは異なることになる。しかしながら、マスタノード1とスレーブノード2との時刻のずれは、補正を行わなかった場合でも、例えば1秒当たり1μs以下といったように極めて小さいため、ここでの待ち時間のずれは無視することができる。
また、ここで、後段側のスレーブノード2の通信時間を、スレーブノード2側で保持しているが、同期開始信号と共に、マスタノード1から知らせるようにしてもよい。しかし、本実施の形態のように、スレーブノード2側で、後段側のスレーブノード2の通信時間のデータを持つことにより、マスタノード1から送信する同期開始信号は、単にこれを識別するための信号であればよい。その結果、スレーブノード2の数が多くなった場合でもマスタノード1から各スレーブノード2に送信する同期開始信号は同一のもので済む等、送受信の信号形態を単純化することができる。
次に、本実施の形態における全体の動作をフローチャートに沿って説明する。
図7は、マスタノード1側の動作フローチャートである。
図8は、スレーブノード2側の動作フローチャートである。
先ず、図7に示すマスタノード1側の動作について説明する。
シミュレーションが開始されると、マスタ側同期開始手段13により、各スレーブノード2に同期開始信号を送信する(ステップST21)。その後、全てのスレーブノード2に送信を完了したかを判定し(ステップST22)、完了していない場合には、次の信号送信時刻まで待機する(ステップST23)。このステップST23における具体的な待ち時間は、図6の説明で述べた通りである。ステップST23で次の信号送信時刻に達したら、ステップST21に戻り、次のスレーブノード2に同期開始信号を送信する。このような処理を繰り返して行い、全てのスレーブノード2に送信を完了した場合には、最後の同期開始信号がスレーブノード2で受信されるまでの時間待つ(ステップST24)。そして、シミュレーションの本体部分を開始、即ち、シミュレーションループを開始する(ステップST25)。
次に、図8に示すスレーブノード2側のシミュレーションループ開始までの動作について説明する。
シミュレーションを開始すると、スレーブ側同期開始手段22は、マスタノード1からの同期開始信号を待ち、受信する(ステップST31)。受信後、スレーブ側同期開始手段22は、マスタノード1が最後のスレーブノード2に送った同期開始信号が、その最後のスレーブノード2で受信される時刻まで待つ(ステップST32)。具体的な待ち時間は、図6の説明で述べた通りであり、スレーブノード2毎に待ち時間は異なる。その後、シミュレーションの本体部分を開始する(ステップST33)。
次に、シミュレーションループ開始後の動作について説明する。
図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経過したと判定する。
一方、ステップ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側の処理で説明する。
次に、図8を参照してスレーブノード2におけるシミュレーションループ開始後の動作について説明する。
スレーブノード2では、シミュレーション開始後、それぞれ独立に時刻管理を行う。先ず、タスク実行手段23において、タスク実行間隔[t,t+Δt]で実行すべきタスクを実行する(ステップST34)。
タスク実行後、時刻補正手段24は、補正係数算出手段21が算出した時刻補正係数A1に基づいて、CPU毎の微妙なクロックのずれ等により生じるマスタノード1との同期時刻のずれを補正する。
本発明では、各計算機で独立して時刻管理を行うために、もし時刻補正を行わなければ、長時間シミュレーションしたときに徐々に同期時刻がずれてくる。従って、この微妙なずれを補正するために予め求めた時刻補正係数A1に基づいて補正を行う。具体的な補正方法を、以下に説明する。
図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で、次のタスク実行間隔の同期時刻に移らなければならない。
そこで、時刻補正手段24では、このスレーブノードが、次のループを開始する時刻をt+(1−A1)×Δtと補正する。このようにして、次の同期時刻がマスタノードの同期時刻と正確に一致することを保証する。この補正は、全スレーブノード2がそれぞれ独立に行う。従って、A1の値もスレーブノード2毎に異なる。
図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で述べた方法と同一である。
一方、ステップST36における待ち時間完了後の時刻が、シミュレーション中のある特定の時刻、例えばT1に到達したときには、すぐにステップST34には戻らずに、監視信号受信手段26により、マスタノード1からの監視信号の受信待ちを行い、この監視信号を受信する(ステップST38)。受信後、補正係数修正手段27により、時刻補正手段24で使用する時刻補正係数A1を修正した後に、ステップST34に戻る。
この特定の時刻は、それぞれのスレーブノード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は全て異なる値に設定する。
図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毎に修正されることになる。このような時刻補正および時刻補正係数の修正処理を、シミュレーションループ中継続する。
尚、図8のステップST37において、時刻が、T1×n,T2×n,T3×nのいずれかであった場合は、該当するスレーブノード2では、ステップST34のタスク実行の前に、このタスクとは別処理である補正係数の修正処理(ステップST38、ステップST39の処理)が行われることになる。従って、この修正処理の時間分タスクの実行開始が遅れることになるが、これは次のように考えることができる。
先ず、図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に対して十分小さければ問題とはならない。
通常、この通信時間は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回の割合となり、ほとんど本来のタスク実行には影響を及ぼさないことになる。
以上の処理により、マスタノード1とスレーブノード2間の同期が正確に開始され、また、各スレーブノード2の固有の同期時刻のずれも補正されると共に、タスク実行中の自動補正された各スレーブノード2の同期時刻のずれも補正される。
以上のように、実施の形態1によれば、マスタノード1とスレーブノード2とが、それぞれの通信時間に基づいて求めた同期開始時刻で同期を開始し、その後は、各スレーブノード間に固有の同期時刻のずれを補正しながらタスクを実行し、更に、所定時刻間隔で、時刻補正係数を修正するようにしたので、同期のための特別なハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、各計算機間の正確な同期をとることができる。その結果、従来のような通信時間による遅延がなく各計算機間で正確な同期がとれることから、リアルタイム電力系統シミュレーションといった、タスク実行間隔が短く、厳密な同期を必要とする並列計算機において特に大きな効果が得られる。
また、上記実施の形態1では、同期開始後、時刻補正とその補正係数の修正処理を行うようにしたが、同期開始処理のみであってもよい。即ち、マスタノード1のマスタ側同期開始手段13と、スレーブノード2のスレーブ側同期開始手段22とによる同期開始のみであってもよい。このような構成は、例えば、マスタノード1と各スレーブノード2間の時刻のずれが小さい場合や、シミュレーション時間が短い場合であれば有効である。即ち、各ノード間の時刻のずれが小さい場合は、シミュレーションをある程度の時間行っていても時刻のずれが大きくならないため、各処理実行間隔内でタスクが実行できるからである。また、シミュレーション時間が短い場合、その時間内では時刻のずれが許容範囲内であるため、各処理実行間隔内でタスクが実行できるからである。
また、上記実施の形態1では、マスタノード1のマスタ側同期開始手段13は、全スレーブノード2に対して順番に同期開始信号を送信し、かつ、最初の同期開始信号の送信開始時刻を基準として、全スレーブノード2の通信時間の合計値に達した時刻を同期開始時刻とし、スレーブノード2のスレーブ側同期開始手段22は、マスタノード1からの同期開始信号の受信時刻を基準として、マスタノード1が送信する順番が自スレーブノードより後側のスレーブノードの通信時間の合計値に達した時刻を同期開始時刻とするようにしたので、マスタノードとスレーブノードとの同期開始時刻を正確に一致させることができる。
また、上記実施の形態1では、スレーブノード2は、自スレーブノードとマスタノード1との所定時間当たりの時刻のずれに基づいて算出した時刻補正係数を用い、自スレーブノードのタスク実行間隔をマスタノードのタスク実行間隔に同期させるよう補正を行う時刻補正手段を備えたので、タスク実行中に発生するスレーブノードに固有のずれも補正されるため、各ノード間の、より正確な同期を実現することができる。
また、上記実施の形態1では、マスタノード1は、同期開始から所定時間経過した時刻で補正係数用信号を送信する補正係数用信号送信手段12を備え、スレーブノード2は、同期開始後、補正係数用信号を受信した場合、スレーブ側時刻管理手段25の時刻管理に基づく受信時刻と、同期開始の時刻に、マスタ側時刻管理手段15の時刻管理に基づく所定時間とマスタノード1から自スレーブノードへの通信時間とを加えた時刻とを比較し、これら時刻のずれに対応して時刻補正係数を算出する補正係数算出手段を備えたので、単純な構成で、スレーブノードにおける正確な補正係数の算出を行うことができる。
また、上記実施の形態1では、自己のタスク実行間隔とスレーブノード2のタスク実行間隔とを同期させるマスタノードとして、自己の時刻を管理するマスタ側時刻管理手段15と、スレーブノード2に対して、タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、マスタ側時刻管理手段15が管理する送信開始時刻を基準として、スレーブノード2への通信時間に基づいて求めた同期開始時刻でタスク実行間隔の同期を開始するマスタ側同期開始手段13とを備えたので、特別なハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、スレーブノードとの正確な同期をとることができるマスタノードを得ることができる。
また、上記実施の形態1では、自己のタスク実行間隔とマスタノード1のタスク実行間隔とを同期させるスレーブノード2として、自己の時刻を管理するスレーブ側時刻管理手段25と、マスタノード1からタスク実行間隔の同期を開始させるための同期開始信号を受信した場合、スレーブ側時刻管理手段25が管理する受信時刻に基づいて、マスタノード1の同期開始時刻に一致した自己の同期開始時刻を決定し、この時刻でタスク実行間隔の同期を開始するスレーブ側同期開始手段22とを備えたので、特別なハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、マスタノード1との正確な同期をとることができるスレーブノードを得ることができる。
また、上記実施の形態1では、自己のタスク実行間隔とスレーブノード2となるコンピュータのタスク実行間隔とを同期させるマスタノード1のコンピュータを、自己の時刻を管理するマスタ側時刻管理手段15と、スレーブノード2に対して、タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、マスタ側時刻管理手段15が管理する送信開始時刻を基準として、スレーブノード2への通信時間に基づいて求めた同期開始時刻でタスク実行間隔の同期を開始するマスタ側同期開始手段13として機能させるためのマスタノード1のプログラムとしたので、特別なハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、スレーブノード2との正確な同期をとることができるマスタノード1を実現することができる。
また、上記実施の形態1では、自己のタスク実行間隔とマスタノード1となるコンピュータのタスク実行間隔とを同期させるスレーブノード2のコンピュータを、自己の時刻を管理するスレーブ側時刻管理手段25と、マスタノード1からタスク実行間隔の同期を開始させるための同期開始信号を受信した場合、スレーブ側時刻管理手段25が管理する受信時刻に基づいて、マスタノード1の同期開始時刻に一致した自己の同期開始時刻を決定し、この時刻でタスク実行間隔の同期を開始するスレーブ側同期開始手段22として機能させるためのスレーブノード2のプログラムとしたので、特別なハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、マスタノード1との正確な同期をとることができるスレーブノード2を実現することができる。
尚、上記実施の形態1では、実際のシミュレーションの開始前に各スレーブノード2の補正係数A1を求めるようにしたが、シミュレーション開始後に補正係数A1の演算を各スレーブノード2毎に行い、その後、求めた補正係数A1を用いて補正を行うようにしてもよい。
実施の形態2.
上記実施の形態1では、同期開始後、時刻補正手段24によって各タスク実行間隔毎に同期時刻の補正を行った。実施の形態2では、このタスク実行間隔毎の補正は行わず、予め決められた特定の同期時刻毎に、マスタノードとスレーブノード間の同期時刻を一致させるための時刻修正処理を行うようにしたものである。
図11は、実施の形態2の並列計算機を示すブロック図である。
実施の形態2の並列計算機は、マスタノード3とスレーブノード4(4a〜4c)からなり、これらの基本的な構成は実施の形態1のマスタノード1およびスレーブノード2と同様である。
実施の形態2のマスタノード3と実施の形態1のマスタノード1との図面上の違いは、実施の形態1のマスタノード1において補正係数用信号送信手段12が設けられていないだけである。但し、実施の形態2のマスタノード3の監視信号送信手段16は、実施の形態1の監視信号送信手段16と同様に監視信号を送出するが、この監視信号がスレーブノード4における同期時刻修正のための監視信号であることが異なっている。これ以外の各構成は図1の構成と同様であるため、対応する部分に同一符号を付してその説明は省略する。
また、実施の形態2のスレーブノード4では、実施の形態1のスレーブノード2における時刻補正手段24がなく、スレーブノード2の補正係数修正手段27と基本的に同様の機能を有する時刻修正手段28が設けられている。即ち、この時刻修正手段28は、監視信号受信手段26が監視信号を受信した場合に、スレーブ側時刻管理手段25の時刻管理に基づく受信時刻と、マスタノード3側のマスタ側時刻管理手段15の時刻管理に基づく監視信号の送信時刻にマスタノード3から自スレーブノードへの通信時間を加えた時刻とのずれを測定し、この測定したずれの値に基づき、特定の時刻間隔で自スレーブノードのタスク実行間隔をマスタノードのタスク実行間隔に同期させる機能を有している。スレーブノード4における他の構成は図1の構成と同様であるため、対応する部分に同一符号を付してここでの説明は省略する。
このように構成された実施の形態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)。
図13は、時刻修正処理の説明図である。
時刻T0で、マスタ側同期開始手段13およびスレーブ側同期開始手段22による、同期開始が行われ、次に、マスタノード3から、時刻T1経過後スレーブノード4aに対して信号が送られたとする。
スレーブノード4aでは、常に待ち状態で待機し、マスタノード3からの信号を受信した時刻の測定値をTTとする。この時刻TTはマスタノード3とスレーブノード4とが正確に同期しているのであれば、TT=T1+RTT1/2となる筈である。従って、スレーブノード4a側では、時刻修正手段28は、この時刻TTがT1+RTT1/2の時刻となるよう、スレーブ側時刻管理手段25が管理する時刻を修正する。
尚、時刻T1毎にスレーブノード4側がずれる値B1は、T1とラウンドトリップタイムRTT1を用いると、図4で示した時刻補正係数A1を求める場合と同様に、
B1=T1−T1×TT/(T1+RTT1/2)
で求めることができる。
このように、時刻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回の割合となり、ほとんど本来のタスク実行には影響を及ぼさない。
以上のように、実施の形態2によれば、スレーブノード4は、マスタノード3からの監視信号を受信した場合に、自スレーブノード側の時刻管理に基づく受信時刻と、マスタノード3側の時刻管理に基づく監視信号の送信時刻にマスタノード3から自スレーブノードへの通信時間を加えた時刻とのずれを測定し、このずれの値に基づき、特定の時刻間隔で自スレーブノードのタスク実行間隔をマスタノード3のタスク実行間隔に同期させる時刻修正手段28を備えたので、特別のハードウェアを用いることなく、汎用の計算機や汎用のネットワークを用いて、計算機間の正確な同期をとることができる。また、実施の形態1に比べて構成を簡素化できる効果がある。
尚、上記各実施の形態では、スレーブノード2,4が3台である場合を説明したが、この台数に限定されるものではなく、1台以上のスレーブノード2,4であれば、同様の効果を奏することができる。例えば、マスタノード+スレーブノード1台の場合でも、従来であれば同期信号を通信していたため、この通信には高速なネットワーク装置でも約10μs必要であるが、本実施の形態の並列計算機ではこれを0にすることができる等、有効な効果を得ることができる。但し、本実施の形態の並列計算機の場合、スレーブノード2,4の台数が多ければ多いほど、大きな効果を得ることができる。
以上のように、この発明に係る並列計算機は、タスク実行間隔の完全な同期を実現する。そして、リアルタイム電力系統シミュレーションに適用され、信頼性の高いシミュレータを得るのに適している。
この発明の実施の形態1による並列計算機を示すブロック図である。 マスタノードとスレーブノードとの往復通信時間の計測方法の説明図である。 ラウンドトリップタイムの測定方法のフローチャートである。 時刻補正係数の求め方の説明図である。 時刻補正係数の測定方法を示すフローチャートである。 同期開始時刻の決定方法を示す説明図である。 マスタノードの動作フローチャートである。 スレーブノード側の動作フローチャートである。 時刻補正手段における時刻補正の説明図である。 監視信号による補正係数の修正処理の説明図である。 この発明の実施の形態2による並列計算機を示すブロック図である。 実施の形態2におけるスレーブノード側の動作フローチャートである。 時刻修正処理の説明図である。
符号の説明
1,3 マスタノード、2,4 スレーブノード、11 通信時間測定手段、12 補正係数用信号送信手段、13 マスタ側同期開始手段、14 タスク実行手段、15 マスタ側時刻管理手段、16 監視信号送信手段、21 補正係数算出手段、22 スレーブ側同期開始手段、23 タスク実行手段、24 時刻補正手段、25 スレーブ側時刻管理手段、26 監視信号受信手段、27 補正係数修正手段、28 時刻修正手段。

Claims (10)

  1. マスタノードとスレーブノードからなり、前記マスタノードのタスク実行間隔と前記スレーブノードのタスク実行間隔とを同期させる並列計算機において、
    前記マスタノードは、
    前記マスタノード側の時刻を管理するマスタ側時刻管理手段と、
    前記スレーブノードに対して、前記タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、前記マスタ側時刻管理手段が管理する送信開始時刻を基準として、前記マスタノードから前記スレーブノードへの通信時間に基づいて求めた同期開始時刻で前記タスク実行間隔の同期を開始するマスタ側同期開始手段とを備え、
    前記スレーブノードは、
    前記スレーブノード側の時刻を管理するスレーブ側時刻管理手段と、
    前記マスタノードからの同期開始信号を受信した場合、前記スレーブ側時刻管理手段が管理する受信時刻に基づいて、前記マスタノードの同期開始時刻に一致した自スレーブノードの同期開始時刻を決定し、当該時刻で前記タスク実行間隔の同期を開始するスレーブ側同期開始手段とを備えた並列計算機。
  2. マスタノードは、予め決められた特定の時刻間隔でタスク実行間隔の同期時刻修正のための監視信号を送信する監視信号送信手段を備え、
    スレーブノードは、前記監視信号を受信した場合に、スレーブ側時刻管理手段が管理する受信時刻と、マスタ側時刻管理手段が管理する監視信号の送信時刻に前記マスタノードから前記自スレーブノードへの通信時間を加えた時刻とのずれを測定し、当該測定したずれの値に基づき、前記特定の時刻間隔で前記自スレーブノードのタスク実行間隔の同期時刻を前記マスタノードのタスク実行間隔の同期時刻に一致させる時刻修正手段を備えた請求項1記載の並列計算機。
  3. マスタノードのマスタ側同期開始手段は、全スレーブノードに対して順番に同期開始信号を送信し、かつ、最初の同期開始信号の送信開始時刻を基準として、前記全スレーブノードの通信時間の合計値に達した時刻を同期開始時刻とし、
    スレーブノードのスレーブ側同期開始手段は、前記マスタ側同期開始手段からの同期開始信号の受信時刻を基準として、前記マスタノードが送信する順番が自スレーブノードより後側へのスレーブノードの通信時間の合計値に達した時刻を同期開始時刻とすることを特徴とする請求項1記載の並列計算機。
  4. スレーブノードは、自スレーブノードとマスタノードとの所定時間当たりの時刻のずれに基づいて算出した時刻補正係数を用い、前記自スレーブノードのタスク実行間隔を前記マスタノードのタスク実行間隔に同期させるよう補正を行う時刻補正手段を備えた請求項1記載の並列計算機。
  5. マスタノードは、予め決められた特定の時刻間隔で時刻補正係数を修正するための監視信号を送信する監視信号送信手段を備え、
    スレーブノードは、前記監視信号を受信した場合に、スレーブ側時刻管理手段が管理する受信時刻と、前記マスタ側時刻管理手段が管理する監視信号の送信時刻に前記マスタノードから前記自スレーブノードへの通信時間を加えた時刻とのずれを測定し、当該測定したずれの値に基づき、前記特定の時刻間隔で時刻補正係数を修正する補正係数修正手段を備えた請求項4記載の並列計算機。
  6. マスタノードは、同期開始から所定時間経過した時刻で補正係数用信号を送信する補正係数用信号送信手段を備え、
    スレーブノードは、同期開始後、前記補正係数用信号を受信した場合、スレーブ側時刻管理手段の管理に基づく受信時刻と、前記同期開始の時刻に、前記マスタ側時刻管理手段の管理に基づく所定時間と当該マスタノードから自スレーブノードへの通信時間とを加えた時刻とを比較し、これら時刻のずれに対応して時刻補正係数を算出する補正係数算出手段を備えた請求項4記載の並列計算機。
  7. 自己のタスク実行間隔とスレーブノードのタスク実行間隔とを同期させるマスタノードにおいて、
    自己の時刻を管理するマスタ側時刻管理手段と、
    前記スレーブノードに対して、前記タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、前記マスタ側時刻管理手段が管理する送信開始時刻を基準として、前記スレーブノードへの通信時間に基づいて求めた同期開始時刻で前記タスク実行間隔の同期を開始するマスタ側同期開始手段とを備えたマスタノード。
  8. 自己のタスク実行間隔とマスタノードのタスク実行間隔とを同期させるスレーブノードにおいて、
    自己の時刻を管理するスレーブ側時刻管理手段と、
    前記マスタノードから、前記タスク実行間隔の同期を開始させるための同期開始信号を受信した場合、前記スレーブ側時刻管理手段が管理する受信時刻に基づいて、前記マスタノードの同期開始時刻に一致した自己の同期開始時刻を決定し、当該時刻で前記タスク実行間隔の同期を開始するスレーブ側同期開始手段とを備えたスレーブノード。
  9. 自己のタスク実行間隔とスレーブノードとなるコンピュータのタスク実行間隔とを同期させるマスタノードのコンピュータを、
    自己の時刻を管理するマスタ側時刻管理手段と、
    前記スレーブノードに対して、前記タスク実行間隔の同期を開始させるための同期開始信号を送信し、かつ、前記マスタ側時刻管理手段が管理する送信開始時刻を基準として、前記スレーブノードへの通信時間に基づいて求めた同期開始時刻で前記タスク実行間隔の同期を開始するマスタ側同期開始手段として機能させるためのマスタノードのプログラム。
  10. 自己のタスク実行間隔とマスタノードとなるコンピュータのタスク実行間隔とを同期させるスレーブノードのコンピュータを、
    自己の時刻を管理するスレーブ側時刻管理手段と、
    前記マスタノードから、前記タスク実行間隔の同期を開始させるための同期開始信号を受信した場合、前記スレーブ側時刻管理手段が管理する受信時刻に基づいて、前記マスタノードの同期開始時刻に一致した自己の同期開始時刻を決定し、当該時刻で前記タスク実行間隔の同期を開始するスレーブ側同期開始手段として機能させるためのスレーブノードのプログラム。
JP2003303604A 2003-08-27 2003-08-27 並列計算機 Expired - Fee Related JP4080397B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003303604A JP4080397B2 (ja) 2003-08-27 2003-08-27 並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003303604A JP4080397B2 (ja) 2003-08-27 2003-08-27 並列計算機

Publications (2)

Publication Number Publication Date
JP2005071280A true JP2005071280A (ja) 2005-03-17
JP4080397B2 JP4080397B2 (ja) 2008-04-23

Family

ID=34407550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003303604A Expired - Fee Related JP4080397B2 (ja) 2003-08-27 2003-08-27 並列計算機

Country Status (1)

Country Link
JP (1) JP4080397B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007032488A1 (ja) * 2005-09-16 2009-03-19 株式会社オートネットワーク技術研究所 車載負荷駆動制御システム
WO2010073313A1 (ja) * 2008-12-22 2010-07-01 トヨタ自動車株式会社 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
WO2010073312A1 (ja) * 2008-12-22 2010-07-01 トヨタ自動車株式会社 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
US9043804B2 (en) 2011-04-04 2015-05-26 Hitachi, Ltd. Parallel computer system and program
JP2017061278A (ja) * 2015-09-25 2017-03-30 株式会社デンソー 制御システム
JP2018112881A (ja) * 2017-01-11 2018-07-19 三菱電機株式会社 産業用コントローラシステム
CN111817819A (zh) * 2019-04-12 2020-10-23 中兴通讯股份有限公司 一种fec模式的同步方法、系统、主节点及从节点

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614239A (zh) * 2018-12-12 2019-04-12 浪潮(北京)电子信息产业有限公司 系统集群负载均衡方法、装置及相关设备

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007032488A1 (ja) * 2005-09-16 2009-03-19 株式会社オートネットワーク技術研究所 車載負荷駆動制御システム
WO2010073313A1 (ja) * 2008-12-22 2010-07-01 トヨタ自動車株式会社 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
WO2010073312A1 (ja) * 2008-12-22 2010-07-01 トヨタ自動車株式会社 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
DE112008004194T5 (de) 2008-12-22 2012-06-21 Toyota Jidosha Kabushiki Kaisha Elektronisches fahrzeugsteuersystem, elektronischefahrzeugsteuereinheit und fahrzeugsteuerungs-synchronisationsverfahren
US8244423B2 (en) 2008-12-22 2012-08-14 Toyota Jidosha Kabushiki Kaisha Vehicle electronic control system, vehicle electronic control unit, and vehicle control synchronization method
US8290663B2 (en) 2008-12-22 2012-10-16 Toyota Jidosha Kabushiki Kaisha Vehicle electronic control system, vehicle electronic control unit, and vehicle control synchronization method
JP5381999B2 (ja) * 2008-12-22 2014-01-08 トヨタ自動車株式会社 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
JP5423685B2 (ja) * 2008-12-22 2014-02-19 トヨタ自動車株式会社 車両用電子制御システム、車両用電子制御ユニット、車両用制御同期方法
US9043804B2 (en) 2011-04-04 2015-05-26 Hitachi, Ltd. Parallel computer system and program
JP2017061278A (ja) * 2015-09-25 2017-03-30 株式会社デンソー 制御システム
JP2018112881A (ja) * 2017-01-11 2018-07-19 三菱電機株式会社 産業用コントローラシステム
CN111817819A (zh) * 2019-04-12 2020-10-23 中兴通讯股份有限公司 一种fec模式的同步方法、系统、主节点及从节点
CN111817819B (zh) * 2019-04-12 2023-06-02 中兴通讯股份有限公司 一种fec模式的同步方法、系统、主节点及从节点

Also Published As

Publication number Publication date
JP4080397B2 (ja) 2008-04-23

Similar Documents

Publication Publication Date Title
KR101109980B1 (ko) 조정된 타이밍 네트워크 내의 서버 동기화 촉진
RU2404448C2 (ru) Аппаратные временные метки сетевых пакетов: улучшенная синхронизация сетевых часов
KR101109897B1 (ko) 메시지 교환 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101091460B1 (ko) 네트워크에서의 복원을 촉진하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US10958367B2 (en) Network apparatus and clock synchronization method
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
US9312974B2 (en) Master apparatus and slave apparatus and time-synchronization method
US20220248353A1 (en) Synchronization method and device
US20100293243A1 (en) method and apparatus for measuring directionally differentiated (one-way) network latency
JP4080397B2 (ja) 並列計算機
CN113572560B (zh) 用于确定时钟同步精度的方法、电子设备和存储介质
CN112003768B (zh) 多节点测试系统及用于执行多节点测试的方法
JP5675703B2 (ja) 通信装置、制御装置及びプログラム
US8989039B2 (en) Packet transfer delay measurement system
CN111884751A (zh) 一种基于ptp的智能电网时间同步方法和装置
JP2917939B2 (ja) サーバ性能測定方式
KR20160088982A (ko) 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법
CN111638749A (zh) 一种仿真系统同步方法、仿真设备及系统
KR20170124213A (ko) Gps를 이용하는 장치의 utc 시간 동기 방법
WO2020132834A1 (zh) 一种打戳处理方法及装置
CN112468254B (zh) 一种可重构分布式节点高精度授时同步系统及方法
CN115459897B (zh) 电力实时仿真中的步长同步校准方法、装置及相关设备
JP7506784B1 (ja) 時刻配信装置、同期システム、及びプログラム

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