説明

計算機システム及び計算機

【課題】小容量の蓄電部を備えるノードであっても、安定した適切な通信レートの制御が可能な計算機システムを提供する。
【解決手段】発電部及び発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、複数のワーカノードに割当てるタスクを管理するマスタノードとを備えた計算機システムであって、複数のワーカノードの各々は、当該ワーカノードの蓄電部に蓄電される電力の変化を示す情報に基づいて、マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散情報処理を実行する計算機システムに関し、特に、各々が発電部と蓄電部とを備えた複数の計算機(ノード)を備えた計算機システムに関する。
【背景技術】
【0002】
半導体技術の発展に伴い、コンピュータは益々低消費電力で動作可能となっている。このような背景の下に、センサネットの分野においては、自然エネルギーを利用して動作する小型の計算機(コンピュータノード、以下、「ノード」という。)が知られている(特許文献1参照)。
【0003】
一方、分散情報処理の分野においても、自然エネルギーのみを利用して各ノードの動作を実現することは、環境負荷を小さくできる点で有効である。ここで、分散情報処理においてはノード間通信がボトルネックであり、ノードの通信レート(通信帯域)をできるだけ大きくすることが好ましい。そこで、電源残量(電池残量)に基づいて適切な通信レートを設定する技術が知られている(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−103726号公報
【特許文献2】特開2010−263349号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、自然エネルギーを利用する場合、各ノードの発電部が小出力であるほど、小型化及びコスト低減が可能であり、利用可能な応用領域が拡大するため有効である。また、各ノードの蓄電部が小容量であるほど、鉛蓄電池のような化学反応ベースの二次電池ではなく、より長寿命な電気二重層キャパシタやコンデンサ等が利用可能であり、電池交換等のメンテナンスが不要であるため有効である。
【0006】
ここで、特許文献2に開示された技術のように、電源残量を基に通信レートを設定する方式では、蓄電部が十分大きな容量を備えている場合には良好な通信レート制御が可能である。しかしながら、小容量の蓄電部を備えるノードにおいては、安定した適切な通信レートの制御ができない問題があった。これは次の2つの理由による。
【0007】
第1に、電源残量による通信レート制御は、例えば電源残量が所定残量基準値の2倍の場合に通信レートを所定レート基準値の2倍とする制御等である。つまり、蓄電部の容量の大きさによって、制御可能な通信レートの最大幅が決定される。そのため、蓄電部が小容量である場合には通信レートの制御幅を大きくできない。
【0008】
第2に、蓄電部が小容量であるために、蓄電部の容量(すなわち100%時の電源残量)に対する電源残量の変化量が大きい。そのため、通信レートが安定せず、ノード間通信がうまく動作しない。
【0009】
本発明は、上述した課題を考慮したものであって、小容量の蓄電部を備えるノードであっても、安定した適切な通信レートの制御が可能な計算機システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【0011】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割当てるタスクを管理するマスタノードとを備えた計算機システムであって、前記複数のワーカノードの各々は、当該ワーカノードの蓄電部に蓄電される電力の変化を示す情報に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期を決定することを特徴とする。
【発明の効果】
【0012】
本発明によれば、小容量の蓄電部を備えるノードであっても、安定した適切な通信レートの制御が可能である。
【0013】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1実施形態の分散情報処理装置の全体構成例を示す図である。
【図2】本発明の第1実施形態のワーカノードの基本動作例を示す図である。
【図3】本発明の第1実施形態のマスタノードの構成例を示す図である。
【図4】本発明の第1実施形態のマスタノードの記憶部に記憶される情報を示す図である。
【図5】本発明の第1実施形態のワーカノードの構成例を示す図である。
【図6】本発明の第1実施形態のワーカノードの動作例を示す図である。
【図7】本発明の第1実施形態のワーカノードの不揮発記憶部に記憶される情報を示す図である。
【図8】本発明の第1実施形態のワーカノードの動作を示すフローチャートである。
【図9】本発明の第1実施形態のワーカノードのノード処理を示すフローチャートである。
【図10】本発明の第1実施形態の分散情報処理装置の動作を示すフローチャートである。
【図11】本発明の第1実施形態の分散情報処理装置の同期形成の動作を示す図である。
【図12】本発明の第1実施形態の分散情報処理装置のプログラム分配の動作を示す図である。
【図13】本発明の第1実施形態の分散情報処理装置の分散計算の動作を示す図である。
【図14】本発明の第1実施形態の分散情報処理装置の結果集約の動作を示す図である。
【図15】本発明の第1実施形態の分散情報処理装置の通信方式の例を説明するための図である。
【図16】本発明の第1実施形態の動作周期決定手段を説明する図である。
【図17】本発明の第1実施形態の電源残量情報を取得するタイミングを示す図である。
【図18】本発明の第1実施形態の電源残量の傾き値a及び補正後の傾き値bと割当て動作周期Tbとの関係を示す図である。
【図19】本発明の第1実施形態の周期決定テーブルの一例を示す図である。
【図20A】本発明の第2実施形態の動作周期決定手段の前提としての第1実施形態の動作周期決定手段を説明する図である。
【図20B】本発明の第2実施形態の動作周期決定手段を説明する図である。
【図21】本発明の第2実施形態の分散情報処理装置の全体構成例を示す図である。
【図22】本発明の第2実施形態のワーカノードの構成例を示す図である。
【図23】本発明の第2実施形態のワーカノードの不揮発記憶部に記憶される情報を示す図である。
【図24】本発明の第2実施形態のワーカノードの動作を示すフローチャートである。
【図25】本発明の第2実施形態のワーカノードの計測処理を示すフローチャートである。
【図26】本発明の第2実施形態の周期決定テーブルの一例を示す図である。
【図27】本発明の第3実施形態のワーカノードの動作例を示す図である。
【図28】本発明の第3実施形態の分散情報処理装置の全体構成例を示す図である。
【図29】本発明の第3実施形態のワーカノードの構成例を示す図である。
【図30】本発明の第3実施形態のワーカノードの不揮発記憶部に記憶される情報を示す図である。
【図31】本発明の第3実施形態のワーカノードの通常処理モードにおける動作を示すフローチャートである。
【図32】本発明の第3実施形態のワーカノードの通常処理モードにおけるノード処理を示すフローチャートである。
【図33】本発明の第3実施形態のワーカノードの集中処理モードにおける動作を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について図面を参照して説明する。
【0016】
(第1実施形態)
第1実施形態では、太陽光等の自然エネルギーを電力へ変換する小出力な発電部と、電気二重層キャパシタやコンデンサ等の小容量の蓄電部とを備えたノードを用いて分散情報処理を実行する装置を例に説明する。
【0017】
(システム構成)
図1は、本発明の第1実施形態の分散情報処理装置100の全体構成例を示す図である。図1に示す分散情報処理装置100は、一般的なマスタ・ワーカ方式の計算式モデルである。
【0018】
分散情報処理装置100は、マスタノード101、複数のワーカノード110−a、110−b、110−cを備える。マスタノード101と、各ワーカノード110−a〜110−cとはネットワーク120を介して接続される。以下、ネットワーク120は無線であるとして説明する。
【0019】
マスタノード101は、主に各ワーカノード110−a〜110−cに割り当てるタスクを管理する。このマスタノード101は、システム全体を指揮するノードとして機能する。
【0020】
ワーカノード110−a〜110−c(以下、単に「ワーカノード110」という。)は、マスタノード101によって割り当てられたタスクを処理する。これらワーカノード110はそれぞれ同一構成である。
【0021】
図2は、本発明の第1実施形態のワーカノード110の基本動作例を示す図である。
【0022】
ワーカノード110は、スリープ期間Tsとウェイクアップ期間Twとからなる動作周期Tbで周期的に動作する。スリープ期間Tsでは、ワーカノード110は処理動作201を止めて自然エネルギーで発電し、電力を蓄える。一方、ウェイクアップ期間Twでは、ワーカノード110は通信処理や計算処理の処理動作201を実行し、スリープ期間Tsに蓄えられた電力を消費する。
【0023】
なお、本発明の第1実施形態の分散情報処理装置100では、スリープ期間Tsに蓄えられる電力量は例えば数百μW秒程度である。また、スリープ期間Ts、ウェイクアップ期間Twは、それぞれ数百m秒、数m秒程度である。ウェイクアップ期間Twにおける処理動作201における消費電力は例えば数十mW程度であるが、これらの値はこの場合に限定されるものではない。
【0024】
(ノード構成)
本発明の第1実施形態のマスタノード101とワーカノード110の構成を詳述する。
【0025】
(マスタノード構成)
図3は、本発明の第1実施形態のマスタノード101の構成例を示す図である。マスタノード101は、電源部310、時計部320、計算部330、記憶部340、通信部350及びアンテナ部360を備える。
【0026】
電源部310は、商用電源又は電池等を用いた安定な電源であり、マスタノード101に電力を供給する。
【0027】
時計部320は、計算部330に時刻情報301を供給するためのモジュールである。時刻情報301は、電波時計等による大局的な時刻情報でもよいし、カウンタ等による局所的な時刻情報でもよい。
【0028】
計算部330は、計算プログラムを実行するためのモジュールであり、一般的にはCPU(Central Processing Unit)で構成される。この計算部330は、タスク管理処理332を実行する。タスク管理処理332とは、ワーカノード110に割り当てるタスク及び既に割り当てたタスクを管理する処理である。
【0029】
記憶部340は、データを格納するためのメモリ、又はストレージと呼ばれるモジュールである。記憶部340に記憶される各種情報については、図4を用いて後述する。
【0030】
通信部350は、各ワーカノード110との間で通信処理(受信処理351と送信処理352)を実行するモジュールである。受信処理351によって受信したデータは、受信データ302として計算部330に伝送される。送信処理352によって送信すべきデータは、送信データ303として通信部350に伝送される。
【0031】
アンテナ部360は、無線電波を入出力するためのモジュールである。
【0032】
図4は、本発明の第1実施形態のマスタノード101の記憶部340に記憶される情報を示す図である。記憶部340は、RAM(Random Access Memory)部400と、ROM(Read Only Memory)部450とを有する。
【0033】
RAM部400には、マスタプログラムコード401、ワーカプログラムコード402、入力データ403、マスタ基準周期情報404、自己動作周期情報405、管理ワーカID情報406、タスクテーブル407及びタスク割当てテーブル408が格納される。
【0034】
ROM部450には、ベースプログラムコード451が格納される。
【0035】
マスタプログラムコード401は、マスタノード101の実行プログラムである。ワーカプログラムコード402は、ワーカノード110の実行プログラムであり、ワーカノード110に送られる。入力データ403は、ワーカノード110の処理対象となる入力データである。
【0036】
マスタ基準周期情報404は、各ワーカノード110間の通信タイミングを合わせる(同期をとる)ための基準となる周期を示す情報である。自己動作周期情報405は、マスタノード101自身が通信処理等の動作を実行する際の周期を示す情報である。マスタノード101は、時刻情報301と自己動作周期情報405とに基づいて、処理動作とスリープ動作とを間欠的に繰り返す。
【0037】
管理ワーカID情報406は、マスタノード101の管理下にあるワーカノード110のID(識別子)情報であり、各ワーカノード110に通信する場合やタスクを割り当てる場合に参照される。
【0038】
タスクテーブル407は、処理すべきタスクに関する情報を格納するテーブルである。処理すべきタスクに関する情報とは、分散情報処理装置100において処理すべきタスクのリスト、各タスクが完了したか否か、各タスクの大きさ及び各タスク間の依存関係(各タスクの処理順序)等の情報である。
【0039】
タスク割当てテーブル408は、タスクテーブル407に格納された各タスクがどのワーカノード110に割り当てられたか、各タスクの処理状況等、各タスクの割当てに関する情報が格納される。
【0040】
ベースプログラムコード451は、マスタノード101のブート時に読み出され、各種初期設定等を実行するコードである。
【0041】
(ワーカノード構成)
図5は、本発明の第1実施形態のワーカノード110の構成例を示す図である。ワーカノード110は、電源部510、時計部520、電源制御部530、計算部540、不揮発記憶部550、通信部560及びアンテナ部570を備える。
【0042】
電源部510は、ワーカノード110が動作するための電力を供給するモジュールであり、発電部511と蓄電部512とを備える。発電部511は、太陽光や振動等の自然エネルギーを電力に変化するモジュール、例えば太陽光発電パネル等である。蓄電部512は、発電部511で得られた電力を蓄えるモジュールである。蓄電部512に蓄えられた電力量の情報は、電源残量情報501として電源制御部530及び計算部540に供給される。例えば電気二重層キャパシタやコンデンサ等である。すなわち電源部510は、小型で小出力の発電部511と、小容量の蓄電部512とを備える。
【0043】
時計部520は、電源制御部530及び計算部540に時刻情報502を供給するためのモジュールである。時刻情報502は、ワーカノード110におけるカウンタ等による局所的な時刻情報でよい。
【0044】
電源制御部530は、ウェイクアップ期間Twの開始時刻が設定されるウェイクアップ時刻設定レジスタを備え、電源残量情報501、時刻情報502及び制御情報503に基づいて、電源遮断領域580の電源のオン、オフを切り替えるモジュールである。
【0045】
計算部540は、計算プログラムを実行するためのモジュールであり、一般的にはCPUで構成される。この計算部540は、周期決定処理542及びタスク処理543を実行する。周期決定処理(動作周期決定手段)542とは、発電状況に関する指標(ここでは蓄電部512の電源残量の単位時間当たりの変化量)に基づいてワーカノード110の動作周期(通信頻度)Tbを決定する処理であり、詳細に後述する。タスク処理543とは、マスタノード101によって割当てられたタスクを実行する処理である。具体的には、不揮発記憶部550から計算途中データ(マイクロタスク)を読み出して計算し、計算結果データを不揮発記憶部550に書き込む。
【0046】
ワーカノード110は、図2に示したように動作周期Tbで周期的な間欠動作を実行する場合、ウェイクアップ期間Tw中に電源残量がゼロになると計算途中のデータが壊れる可能性がある。そこで、本発明の第1実施形態のワーカノード110では、マスタノード101によって割り当てられた1つのタスクをさらに細かな1つ以上の処理単位(マイクロタスク)に分割し、マイクロタスク単位でタスク処理を実行する。1つのマイクロタスクを実行するのに必要な電力量を、最低動作電力量Eth1と定義する。制御情報503は、最低動作電力量Eth1の情報と動作周期Tbの情報と動作完了情報とを含む。動作完了情報とは、ウェイクアップ期間Twに計算部540によって実行される処理動作の完了を示す情報である。
【0047】
不揮発記憶部550は、電源をオフにしてもデータを保持できるモジュール、例えばROM、FeRAM(Ferroelectric Random Access Memory)又はフラッシュメモリ等である。不揮発記憶部550に記憶される各種情報については、図7を用いて後述する。
【0048】
通信部560は、マスタノード101や他のワーカノード110等の他のノードとの間で通信処理(受信処理561と送信処理562)を実行するモジュールである。受信処理561によって受信したデータは、受信データ504として計算部540に伝送される。送信処理562によって送信すべきデータは、送信データ505として通信部560に伝送される。
【0049】
アンテナ部570は、無線電波を入出力するためのモジュールである。
【0050】
図6は、本発明の第1実施形態のワーカノード110の動作例を示す図である。
【0051】
図6に示すように、ワーカノード110は、スリープ期間Tsとウェイクアップ期間Twとからなる動作周期Tbで周期的に動作する。ここで、ワーカノード110(図5の電源制御部530)は、動作周期Tbが経過する度に、電源残量が最低動作電力量Eth1より大きいか否かを判定する。電源残量が最低動作電力量Eth1より大きい場合に限り、電源遮断領域580の電源をオンしてウェイクアップ期間Twへ移行する。その後、計算部540から処理動作の完了を示す動作完了信号を受け取ると、電源遮断領域580の電源をオフにしてスリープ期間Tsへ移行する。
【0052】
以上に示すように、ワーカノード110は、電源残量が最低動作電力量Eth1より大きい場合に限り、スリープ期間Tsからウェイクアップ期間Twへ移行可能である。これにより、計算途中のデータが壊れることを防ぐことができる。なお、スリープ基準電力量Eth2については図8を用いて後述する。
【0053】
図7は、本発明の第1実施形態のワーカノード110の不揮発記憶部550に記憶される情報を示す図である。不揮発記憶部550は、RAM部700と、ROM部750とを有する。
【0054】
RAM部700には、ワーカプログラムコード701、計算データ702、自己動作周期情報703、周期決定テーブル704、電源残量情報705、最低動作電力量情報706及びスリープ基準電力量情報707が格納される。
【0055】
ROM部750には、ワーカベースプログラムコード751が格納される。
【0056】
ワーカプログラムコード701は、ワーカノード110の実行プログラムである。計算データ702は、タスク処理に用いられるデータ、すなわち入力データ、計算途中データ及び計算結果データ等である。この計算データ702は、タスク処理543の実行開始時に読み出され、終了時に書き込まれる。
【0057】
自己動作周期情報703は、ワーカノード110自身が通信処理等の動作を実行する際の動作周期Tbの情報である。この自己動作周期情報703は、制御情報503として電源制御部530に送られる。
【0058】
周期決定テーブル704は、周期決定処理542によって参照されるテーブルである。周期決定テーブル704については、図19を用いて詳細に後述する。
【0059】
電源残量情報705は、電源残量情報501と、電源残量情報501を取得したときの時刻情報502とからなる情報である。すなわち、時刻毎の電源残量を示す情報である。この電源残量情報705は、発電状況に関する指標(ここでは電源残量の単位時間当たりの変化量)を算出する際に、計算部540によって参照される。
【0060】
最低動作電力量情報706は、電源制御部530が電源制御に使用する電源残量の閾値(すなわち最低動作電力量Eth1)を示す情報であり、制御情報503として電源制御部530に伝送される。
【0061】
スリープ基準電力量情報707は、計算部540が動作完了信号を出力する際に参照する電源残量の閾値(すなわちスリープ基準電力量Eth2)を示す情報である。
【0062】
ワーカベースプログラムコード751は、ワーカノード110のブート時に読み出され、各種初期設定等を実行するコードである。ワーカノード110は、マスタノード101からワーカプログラムコード701を取得するまでは、このワーカベースプログラムコード751を実行する。
【0063】
(ワーカノード動作)
本発明の第1実施形態の分散情報処理装置100では、小出力の発電部511と小容量の蓄電部512とを備えるワーカノード110の動作に大きな特徴がある。そこで、ワーカノード110の動作を図8及び図9を用いて詳細に説明する。
【0064】
図8は、本発明の第1実施形態のワーカノード110の動作を示すフローチャートである。ワーカノード110は、マスタノード101との間で動作を同期させた後に図8に示す制御ロジックを実行する。なお、マスタノード101との間で動作を同期させる前は、既知の制御ロジック(例えば特許文献2参照)を実行すればよい。
【0065】
まずST801では、ワーカノード110は、ウェイクアップ時刻設定レジスタに設定されている当回のウェイクアップ時刻になるまで待機する(ST801)。すなわちST801は、スリープ期間Ts中の動作である。
【0066】
当回のウェイクアップ時刻(以下、「時刻t1」とする)になると、ST802へ移行し、ワーカノード110は電源残量情報501を確認し、時刻t1における電源残量E[t1]を取得する(ST802)。
【0067】
その後ST803において、ワーカノード110は、制御情報503中の最低動作電力量Eth1(最低動作電力量情報706に示す最低動作電力量)と、ST802で取得された電源残量E[t1]とを比較する(ST803)。Eth1<E[t1]である場合(ST803でYes)、電源遮断領域580の電源をオンしてST804へ移行する。一方、Eth1≧E[t1]である場合(ST803でNo)、ST808へ移行する。
【0068】
ST804へ移行した場合、ワーカノード110は、周期決定処理542を実行し、自己の動作周期Tbを修正する(ST804)。周期決定処理542については詳細に後述する。
【0069】
その後ST805において、ワーカノード110は、ノード処理を実行する(ST805)。ここでいうノード処理とは、通信処理(送信処理562及び受信処理561)やタスク処理543等である。ノード処理については図9を用いて詳細に後述する。
【0070】
その後ST806において、ワーカノード110は、現在時刻(以下、「時刻t2」とする)における電源残量E[t2]を取得する(ST806)。
【0071】
その後ST807において、ワーカノード110は、ST806で取得された電源残量E[t2]と、スリープ基準電力量情報707に示すスリープ基準電力量Eth2とを比較する(ST807)。Eth2≧E[t2]である場合(ST807でYes)、電源残量E[t2]及び時刻t2の情報を最低動作電力量情報706として不揮発記憶部550に格納し、ST808へ移行する。一方、Eth2<E[t2]である場合(ST807でNo)、ST811へ移行する。
【0072】
ST811へ移行した場合、ワーカノード110は、一定時間又は電源残量がスリープ基準電力量Eth2より小さくなるまで、電力を消費する電源残量の調整処理を実行する(ST811)。その後ST806へ移行する。
【0073】
このST811は、図6のT601の期間の処理に相当する。すなわち余った電力を所定基準値(ここではスリープ基準電力量Eth2)以下まで消費することにより、余った電力の蓄積による電源残量の上昇を抑制する。本発明の第1実施形態の動作周期決定手段(詳細は後述)では、電源残量が100%になると正しく動作周期Tbを決定できない恐れがある。そこで、ST811によって所定基準値以下まで電力残量を調整する。なお、ST811では、余った電力を単に捨てることによって消費してもよいし、タスク処理を可能な範囲で実行することによって消費してもよい。
【0074】
ST808へ移行した場合、ワーカノード110は、スリープ処理を実行する(ST808)。具体的には、まずスリープ期間Tsに入る準備処理を実行する。すなわち計算部540が、電源制御部530へ制御情報503を送信する。次に電源制御部530が、時刻情報502と制御情報503中の自己動作周期情報703(すなわち動作周期Tb)とに基づいて、次回のウェイクアップ時刻を算出する。なお、次回のウェイクアップ時刻は、「(次回のウェイクアップ時刻)=(当回のウェイクアップ時刻)+(動作周期Tb)」によって算出される。その後、算出された次回のウェイクアップ時刻を、ウェイクアップ時刻設定レジスタに設定する。その後スリープ処理を実行し、スリープ処理が終わるとST801へ戻る。
【0075】
以上に示す動作により、ワーカノード110は、ウェイクアップ期間Tw中に電源残量がゼロになって計算途中データが壊れる等の事態を回避しつつ、周期的に間欠動作を実現する。
【0076】
図9は、本発明の第1実施形態のワーカノード110のノード処理を示すフローチャートである。ここでは、図8のST805で実行されるノード処理の詳細を説明する。
【0077】
ノード処理は、送信処理562、受信処理561及びタスク処理543の3つの処理に大別できる。ここでは通信処理(送信処理562、受信処理561)を優先する動作を例に説明する。
【0078】
まずST901において、ワーカノード110は、実行すべきノード処理が送信処理562であるか否かを判定する(ST901)。送信処理562である場合(ST901でYes)、ST902へ移行する。一方、送信処理562でない場合(ST901でNo)、ST911へ移行する。
【0079】
ST902へ移行した場合、ワーカノード110は、不揮発記憶部550から送信対象となる計算データ702を読み出す(ST902)。その後ST903へ移行し、通信部560及びアンテナ部570を介して送信処理562を実行する(ST903)。
【0080】
一方、ST911へ移行した場合、ワーカノード110は、通信要求を送信している他のノードが存在するか否かを検出するキャリアセンスと呼ばれる処理を一定期間実行する(ST911)。キャリアセンスが終了すると、ST912へ移行する。
【0081】
その後ST912において、ワーカノード110は、通信要求を検出した場合、検出された通信要求が自身(自ワーカノード110)宛ての通信に係る要求か否かを判定する(ST912)。自身宛ての通信に係る要求である場合(ST912でYes)、受信処理561を実行するためのST913へ移行する。一方、自身宛の通信に係る要求でない場合(ST912でNo)、タスク処理543を実行するためのST921へ移行する。なお、ST912において、ワーカノード110は、通信要求を検出しない場合にはST921へ移行してもよい。
【0082】
なお、ST912に示すように受信処理561(ST913)をタスク処理543(ST921)よりも優先するのは、受信側のワーカノード110が受信処理を完了しないと、送信側のワーカノード110が次の処理を実行することができず、分散情報処理装置100全体としての処理効率が低下する恐れがあるためである。
【0083】
ST913へ移行した場合、ワーカノード110は、通信部560によって受信処理561を実行する(ST913)。具体的には、通信部560が受信処理561を実行し、受信処理561によって受信したデータが計算部540へ伝送される。その後ST931へ移行する。
【0084】
ST921へ移行した場合、ワーカノード110は、タスク処理543に必要な計算データ702を不揮発記憶部550から読み出す(ST921)。その後ST922へ移行して、タスク処理543を実行する(ST922)。その後ST931へ移行する。
【0085】
ST931において、ワーカノード110は、ST913で受信したデータ又はST922におけるタスク処理543の計算結果のデータを、不揮発記憶部550に書き込む(ST931)。
【0086】
以上、本発明の第1実施形態の分散情報処理装置100の構成、マスタノード101の構成、ワーカノード110の構成及びワーカノード110の動作の例について説明してきた。以下では、分散情報処理装置100全体の動作、通信方式及び動作周期Tbを決定するために不可欠な動作周期決定手段(周期決定処理542)について説明する。
【0087】
(システム動作)
分散情報処理装置100の動作を図10〜図14を用いて説明する。
【0088】
図10は、本発明の第1実施形態の分散情報処理装置100の動作を示すフローチャートである。分散情報処理装置100は、図10に示すST1001〜ST1004の4ステップによって分散情報処理を実行する。
【0089】
まずST1001において、分散情報処理装置100は、同期を形成する(ST1001)。具体的には、マスタノード101と各ワーカノード110間で通信タイミングを合わせるための同期を実行する。すなわち各ワーカノード110の動作周期Tbを、マスタノード101のマスタ基準周期Tmの整数比(例えば2のべき乗倍)で同期させる。なお、その他の既知の方法によって同期させてもよい。
【0090】
図11は、本発明の第1実施形態の分散情報処理装置100の同期形成の動作を示す図である。
【0091】
マスタノード101は、各ワーカノード110に対して定期的に同期基準信号1101をブロードキャストする。同期に成功したワーカノード110(図11ではワーカノード110−a)は、同期完了通知1102をマスタノード101に送信する。
【0092】
なお、同期完了通知1102には、各ワーカノード110を一意に識別するためのワーカID情報が含まれる。そのため、マスタノード101は、同期完了通知1102に含まれるワーカID情報を管理ワーカID情報406として保持することにより、管理下のワーカノード110を把握することができる。
【0093】
次にST1002において、分散情報処理装置100は、プログラム分配を実行する(ST1002)。具体的には、マスタノード101が、同期に成功した各ワーカノード110に、各々のワーカノード110が実行するワーカプログラムコード402を分配する。
【0094】
図12は、本発明の第1実施形態の分散情報処理装置100のプログラム分配の動作を示す図である。
【0095】
マスタノード101は、同期に成功した各ワーカノード110に対し、プログラム送信1201をブロードキャストすることによって、一斉にワーカプログラムコード402を分配する。プログラムを受信したワーカノード110は、受信したプログラムをワーカプログラムコード701として保持する。
【0096】
その後ST1003において、分散情報処理装置100は分散計算を実行する(ST1003)。
【0097】
図13は、本発明の第1実施形態の分散情報処理装置100の分散計算の動作を示す図である。
【0098】
ST1002においてプログラムを受信したワーカノード110(図13ではワーカノード110−a)は、マスタノード101にタスク要求1301を送信する。タスク要求1301には、ワーカノード110−aの自己動作周期情報703が付与されている。
【0099】
マスタノード101は、受信したタスク要求1301に付与された自己動作周期情報703に示される動作周期Tbの情報に基づいて、割り当てるべきタスクを決定する。具体的にはタスクテーブル407に格納された各タスクの大きさ情報等を参照し、動作周期Tbが小さいほど大きなタスクを割り当てる。これにより、分散情報処理の処理効率を高めることができる。その後マスタノード101は、決定されたタスク1302をワーカノード110−aに送信する。送信されるデータは、タスク1302の処理に用いられる入力データ403も含む。
【0100】
タスク処理を完了したワーカノード110(図13ではワーカノード110−b)は、マスタノード101にタスク完了通知1303(及び次のタスク要求)を送信する。そうすると、マスタノード101は、ワーカノード110−bに次のタスク1304を送信する。
【0101】
なお、タスク1304が、ワーカノード110−a、110−cによるタスク処理の結果データに対する処理である場合、ワーカノード110−bは、ワーカノード110−aとワーカノード110−cのそれぞれに対してデータ要求1305、1306を送信し、タスク1304の処理に必要なデータ1310、1311を受け取った後にタスク1304の処理を実行する。
【0102】
その後ST1004において、分散情報処理装置100は結果集約を実行する(ST1004)。
【0103】
図14は、本発明の第1実施形態の分散情報処理装置100の結果集約の動作を示す図である。
【0104】
マスタノード101は、計算結果データを保有しているワーカノード110(図14ではワーカノード110−b)に計算結果要求1401を送信し、計算結果1402を受け取る。
【0105】
なお、分散情報処理では、最終的な計算結果データが複数のワーカノード110に部分計算結果データとして分散して格納されている場合がある。この場合、マスタノード101は、部分計算結果データが格納されている全てのワーカノード110から部分計算結果データを集めて結合することによって、最終的な計算結果データを得る。
【0106】
(通信方式)
前述したように、分散情報処理では、ノード間通信が処理性能上のボトルネックとなる。そのため、できる限り通信レートを大きくすることが望ましい。なお、本発明の第1実施形態の各ワーカノード110の通信レートは、各ワーカノード110の発電状況の影響を大きく受ける。なぜなら、各ワーカノード110の最大通信レートは、最大通信頻度(すなわち動作周期Tb)に依存するとともに、動作周期Tbは発電状況の影響を受けるためである。
【0107】
そこで、本発明の第1実施形態の分散情報処理装置100が採用する通信方式では、各ワーカノード110は、自己の発電状況を考慮した上で通信状態へ遷移する周期(すなわち動作周期Tb)を設定する。また、ノード間通信を実行する二つのワーカノード110の間では、動作周期Tbが大きい方のワーカノード110に合わせて通信レートを設定する。これにより、できる限り高い通信レートでのノード間通信が可能となる。
【0108】
図15は、本発明の第1実施形態の分散情報処理装置100の通信方式の例を説明するための図である。
【0109】
本発明の第1実施形態の分散情報処理装置100では、各ワーカノード110は、通信頻度(すなわち動作周期Tb)を、マスタ基準周期Tmの2のべき乗(…、1/4、1/2、1、2、…)倍とする通信方式を採用する。
【0110】
各ワーカノード110は、このように動作周期Tbを設定することによって、自己の発電状況に応じてできる限り通信レートを高く設定しつつ、通信相手のワーカノード110を発見し易くすることができる。なお、動作周期Tbを変更するプロトコルについては、センサネットの分野において多数の方式があるため、ここでは説明を省略する。
【0111】
(動作周期決定手段(周期決定処理542))
ワーカノード110は、自己の発電状況において安定に動作可能な動作周期を予測し、適切な動作周期Tbを決定することによって、自己の動作周期Tbを修正(変更)する動作周期決定手段を有する。以下、図16、図17及び図18を用いて詳細に説明する。
【0112】
本発明の第1実施形態の分散情報処理装置100では、電源残量ではなく、電源残量の傾き(電源残量の単位時間当たりの変化量)に基づいて動作周期Tbを決定する。電源残量による制御では、動作周期Tbの制御幅が蓄電部512の容量の大きさに依存する。そのため、小容量の蓄電部512では動作周期Tbの制御幅を大きくとれない。これに対し、電源残量の傾きによる制御では、動作周期Tbの制御幅は蓄電部512の容量の大きさに依存しない。そのため、小容量の蓄電部512であっても動作周期Tbの制御幅を大きくとることができ、柔軟な通信レートを設定できる。
【0113】
図16は、本発明の第1実施形態の動作周期決定手段を説明する図である。
【0114】
図16では、電源残量を指標として動作周期Tbを決定する方式1(従来の方式、図16の上部)と、電源残量の傾きを指標として動作周期Tbを決定する方式2(本発明の第1実施形態の動作周期決定手段、図16の下部)とを示している。
【0115】
なお、ウェイクアップ期間Twがスリープ期間Tsに対して非常に小さいものとする。また、ワーカノード110が一度のウェイクアップ期間Twに消費する電力量を最低動作電力量Eth1とする。さらに、方式2ではスリープ基準電力量Eth2をゼロとする。
【0116】
方式1では、例えば電源残量Eが(2×Eth1)>E≧Eth1である場合、(動作周期Tb=マスタ基準周期Tmとなる。また、例えば電源残量Eが(3×Eth1)>E≧(2×Eth1)である場合、Tb=Tm/2となる。方式1の電源残量Eの遷移をG1610として示している。
【0117】
一方、方式2では、電源残量Eがマスタ基準周期Tmで示される期間(すなわちT1601からT1602の期間)に例えばEth1増加した場合、Tb=Tmとなる。同期間に例えば2×Eth1増加した場合、Tb=Tm/2となる。方式2の電源残量Eの遷移をG1620として示している。
【0118】
さらに、発電部511の発電電力Pは時間と共に変化し、時刻T1601から時刻T1602の期間はP=P0(P0は発電電力の基準値)であり、時刻T1602から時刻T1604の期間は発電状況が2倍良好となってP=2P0であり、時刻T1604以降では発電状況がさらに2倍良好となってP=4P0であるとする。
【0119】
方式1では、時刻T1602のウェイクアップ期間TwではTb=Tmのままである。しかしながら、その後発電電力PがP=2P0となり、時刻T1603では電源残量Eが2×Eth1に到達する。そのため、時刻T1603のウェイクアップ期間Twでは、Tb=Tm/2に修正する。さらに、時刻T1604以降の期間では、発電電力P=4P0となり、時刻T1605では電源残量Eが3×Eth1に到達する。そのため、時刻T1605のウェイクアップ期間Twでは、Tb=Tm/3に修正する。なお、時刻T1606では、電源残量Eが4×Eth1に到達する。そのため、時刻T1606のウェイクアップ期間Twでは、Tb=Tm/4に修正する。
【0120】
一方、方式2では、時刻T1602のウェイクアップ期間TwではTb=Tmのままである。しかしながら、その後発電電力PがP=2P0となり、時刻T1603では電源残量EがTm期間に2×Eth1増加する。そのため、時刻T1603のウェイクアップ期間Twでは、Tb=Tm/2に修正する。その後、図8のST811(電源残量調整処理)により、電源残量Eをスリープ基準電力量Eth2(すなわちゼロ)までリセットする。さらに、時刻T1604以降の期間では、発電電力P=4P0となり、電源残量EがTm期間に4×Eth1増加する。そのため、時刻T1605のウェイクアップ期間Twでは、Tb=Tm/4に修正する。その後、図8のST811により、電源残量Eをスリープ基準電力量Eth2までリセットする。
【0121】
以上に示すように、方式1では動作周期TbをTm/4に設定するために、蓄電部512の容量が4×Eth1必要である。一方、方式2では蓄電部512の容量は2×Eth1あればよい。すなわち方式2によれば、蓄電部512が小容量であっても動作周期Tbの制御幅を十分にとることができ、柔軟な通信レート(適切な動作周期Tb)を設定できる。
【0122】
図17は、本発明の第1実施形態の電源残量情報501を取得するタイミングを示す図である。
【0123】
動作周期決定手段は、スリープ期間Tsに移行する時点の時刻t2における電源残量E[t2]と、ウェイクアップ期間Twに移行する時点の時刻t3における電源残量E[t3]とを取得する。各々の取得タイミングは、それぞれ図8のST802、ST806に対応する。そうすると、電源残量の傾き値a(以下、単に「傾き値a」という。)は、式(1)によって算出することができる。
【0124】
【数1】

【0125】
次に動作周期決定手段は、算出された傾き値aに対し、式(2)に示す条件を満たす整数nを求める。なお、Constは0以上の任意定数である。
【0126】
【数2】

【0127】
その後、動作周期決定手段は、求められたnに基づいて、式(3)によって傾き値aを補正した傾き値bを算出する。
【0128】
【数3】

【0129】
以上のように、動作周期決定手段は、傾き値aを補正した傾き値bを算出することにより、ワーカノード110が発電状況の変化に対して安定して動作することを可能とする。この理由について図18を用いて説明する。
【0130】
図18は、本発明の第1実施形態の電源残量の傾き値a及び補正後の傾き値bと割当て動作周期Tbとの関係を示す図である。
【0131】
図18に示す例では、傾き値aの直線が領域1801にある場合は傾き値を2-1、領域1802にある場合は傾き値を20、領域1803にある場合は傾き値を21に補正する、すなわち算出された傾き値aを、過小評価した傾き値bに補正することを示している。さらに、補正後の傾き値2-1、20、21、22に対して、動作周期Tbとして2Tm、Tm、Tm/2、Tm/4をそれぞれ対応させて割り当てることを示している。
【0132】
ワーカノード110は、スリープ期間Tsの終了時に所定電力残量1810(例えば最低動作電力量Eth1)以上の電力量が蓄積されるように動作周期Tbを決定する。なぜなら、次のウェイクアップ期間Twまでに最低動作電力量Eth1より小さな電力量しか蓄積されていない場合、ワーカノード110は動作することができないからである。
【0133】
しかしながら、太陽光等の自然エネルギーによる発電電力は時間経過と共に変化する。そのため、傾き値aによって決定される動作周期Tbを用いた場合、時間経過と共に発電電力量が低下した場合に、スリープ期間Tsの終了時に所定電力残量1810が蓄積されない可能性がある。そこで、傾き値aがConstの割合だけ過小評価されるよう補正する。
【0134】
これにより、スリープ期間Ts中に発電電力量が低下し、傾き値aがおよそConstの割合だけ小さくなっても、次のウェイクアップ期間Twまでに所定電力残量1810以上の電力量を蓄積できる。そのため、次のウェイクアップ期間Twにおける動作が可能となる。すなわちワーカノード110は、発電状況の変化に対して安定に動作することが可能となる。
【0135】
このように、傾き値aではなく、傾き値aを補正した傾き値bに対して動作周期Tbを割り当てることによって、発電状況の変化に対して安定に動作可能な動作周期Tbを設定できる。なお、図18は、傾き値が1の場合に割当て動作周期がTmになるように規格化した例を示している。
【0136】
図19は、本発明の第1実施形態の周期決定テーブル704の一例を示す図である。周期決定テーブル704は、前述のように、周期決定処理542によって参照されるテーブルである。
【0137】
図19に示す周期決定テーブル704では、Const=0.2の場合における傾き値aと、動作周期Tbとの対応関係を示す情報が格納される。周期決定処理542では、傾き値aを算出するとともに、この周期決定テーブル704を参照し、傾き値aに対応する動作周期Tbを決定する(図8のST804の動作周期修正)。
【0138】
例えば傾き値a=1の場合、周期決定テーブル704において1.2>a(=1)>0.6であるので、動作周期Tbを2Tmとして決定する。
【0139】
以上に示した動作周期決定手段により、小出力な発電部511と小容量の蓄電部512とを備えたワーカノード110において、発電状況に応じた適切な動作周期Tbを設定する。これにより、高い通信レートでノード間通信が可能となり、高速な分散情報処理を実現することができる。
【0140】
以上に示した本発明の第1実施形態において、電源残量の単位時間当たりの変化量は発電状況の影響を受ける指標であって、蓄電部512の容量に依存しない指標である。そのため、通信レートの制御幅が小さくなる問題を回避することができる。また、発電部511が例えば太陽光発電等によって発電する場合には、発電状況の時間的変化が穏やかである。そのため、通信レートが不安定となる問題も回避することができる。
【0141】
また、各ワーカノード110は、自己の蓄電部512に蓄電される電力の変化を示す情報(ここでは傾き値a)に基づいて自己の動作周期Tbを動的に変化させても、他のワーカノード110との同期を維持することが可能となる。そのため、各ワーカノード110の処理性能を引き出すことができる。
【0142】
(第2実施形態)
第2実施形態では、前述の第1実施形態よりもさらに少容量の蓄電部512を備えた分散情報処理装置200の例を説明する。
【0143】
図20Aは、本発明の第2実施形態の動作周期決定手段の前提としての第1実施形態の動作周期決定手段を説明する図である。ここでは、蓄電部512の容量が最低動作電力量Eth1の2倍以下程度である場合において、前述の第1実施形態の動作周期決定手段を適用した例を示している。
【0144】
図20Aに示すように、スリープ期間Tsの途中で電源残量が100%になり上限に達した場合、前述の第1実施形態の動作周期決定手段では、適切な傾き値が算出できない。算出される傾き値2001が、本来の傾き値2002と大きく異なるためである。
【0145】
図20Bは、本発明の第2実施形態の動作周期決定手段を説明する図である。本発明の第2実施形態の動作周期決定手段は、以下に示す方法によって適切な傾き値を算出する。
【0146】
すなわち本発明の第2実施形態の動作周期決定手段では、電源残量の傾きを直接算出せず、予め設定された計測開始電源残量Eth3から計測終了電源残量Eth4までの充電に要した充電時間Tchgを計測し、計測された充電時間Tchgに基づいて動作周期Tbを決定する。
【0147】
これにより、蓄電部512の容量が最低動作電力量Eth1の2倍以下程度という小容量である場合においても、適切な動作周期Tbを設定でき、できるだけ高い通信レートを実現できる。
【0148】
図21は、本発明の第2実施形態の分散情報処理装置200の全体構成例を示す図である。なお、以下では、前述の第1の実施形態(図1参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0149】
図21に示す分散情報処理装置200では、各ワーカノード2110の構成及び動作周期決定手段が、図1に示す分散情報処理装置100と異なる。
【0150】
(ワーカノード構成)
図22は、本発明の第2実施形態のワーカノード2110の構成例を示す図である。なお、以下では、前述の第1の実施形態(図5参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0151】
ワーカノード2110は、電源部510、時計部520、計測部2210、電源制御部2220、計算部2230、不揮発記憶部2240、通信部560及びアンテナ部570を備える。
【0152】
計測部2210は、所定電力量を蓄積するまでの時間を計測するモジュールである。この計測部2210は、電源制御部2220から入力される動作開始トリガ2203をトリガとして、電源残量情報501、時刻情報502及び計測期間設定情報2201(計算部2230によって設定された計測開始電源残量Eth3と計測終了電源残量Eth4の情報)に基づいて、充電時間Tchgを計測し、計測された充電時間Tchgを示す充電時間情報2202を計算部2230に出力する。
【0153】
電源制御部2220は、電源残量情報501、時刻情報502及び制御情報503に基づいて、電源遮断領域580の電源のオン、オフを切り替えるモジュールである。この電源制御部2220は、計測部2210に動作開始トリガ2203を出力する点で、図5の電源制御部530と異なる。動作開始トリガ2203は、電源遮断領域580の電源をオフした時点で送られる。
【0154】
計算部2230は、計算プログラムを実行するためのモジュールであり、一般的にはCPUで構成される。この計算部2230は、計測部2210に計測期間設定情報2201(計測開始電源残量Eth3と計測終了電源残量Eth4の情報)を設定する点と、周期決定処理2232の処理内容とにおいて、図5の計算部540と異なる。周期決定処理(動作周期決定手段)2232は、発電状況に関する指標(ここでは充電時間Tchg)に基づいてワーカノード110の動作周期Tbを決定する。
【0155】
この計算部2230は、マスタノード101からの指示等によって不揮発記憶部2240から計測期間設定情報2307(図23参照)を読み出し、計測期間設定情報2201として計測部2210に設定する。
【0156】
不揮発記憶部2240は、電源をオフにしてもデータを保持できるモジュール、例えばROM、FeRAM、フラッシュメモリ等である。不揮発記憶部2240に記憶される各種情報については、図23を用いて後述する。
【0157】
図23は、本発明の第2実施形態のワーカノード2110の不揮発記憶部2240に記憶される情報を示す図である。なお、以下では、前述の第1の実施形態(図7参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0158】
不揮発記憶部2240は、RAM部2300と、ROM部750とを有する。
【0159】
RAM部2300は、周期決定テーブル2304と計測期間設定情報2307とを有する点において、図5のRAM部700と異なる。
【0160】
周期決定テーブル2304は、周期決定処理2232によって参照されるテーブルである。周期決定テーブル2304については、図26を用いて詳細に後述する。
【0161】
計測期間設定情報2307は、計測部2210による計測期間の設定情報である。具体的には、計測開始電源残量Eth3と計測終了電源残量Eth4の情報である。この計測期間設定情報2307は、計測期間設定情報2201として計測部2210に送られる。
【0162】
図24は、本発明の第2実施形態のワーカノード2110の動作を示すフローチャートである。なお、以下では、前述の第1の実施形態(図8参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0163】
図24に示すフローチャートは、ST2401(計測処理)が追加された点と、ST2404(動作周期修正)の処理内容とにおいて、図8のフローチャートと異なる。以下、これら2点について説明する。なお、図24では、ST806、ST807及びST811が省略されているが、これらの処理を実行してもよい。
【0164】
ST2401では、ワーカノード2110は、動作開始トリガ2203をトリガとして充電時間Tchgを計測する(ST2401)。このST2401は、スリープ期間Ts中の動作である。ST2401の詳細については図25を用いて後述する。
【0165】
ST2404では、ワーカノード2110は、周期決定処理2232を実行し、自己の動作周期Tbを修正する(ST2404)。周期決定処理2232については詳細に後述する。
【0166】
図25は、本発明の第2実施形態のワーカノード2110の計測処理を示すフローチャートである。ここでは、図24のST2401の詳細について説明する。
【0167】
まずST2501において、ワーカノード2110は、電源残量情報501(電源残量E)を取得し、取得された電源残量Eと、計測開始電源残量Eth3とを比較する(ST2501)。Eth3<Eである場合(ST2501でYes)、ST2502へ移行する。一方、Eth3≧Eである場合(ST2501でNo)、ST2503へ移行する。
【0168】
ST2502へ移行した場合、ワーカノード2110は、電源残量Eが計測開始電源残量Eth3以下となるまで、電力を消費する電源残量の調整処理を実行する(ST2502)。ST2502は、スリープ期間Ts中に計測開始電源残量Eth3から計測終了電源残量Eth4までの充電時間Tchgを計測するために、一度電源残量Eを計測開始電源残量Eth3以下にする処理である。
【0169】
このST2502は、図20BのT2020の期間の処理に相当する。電源残量Eが計測開始電源残量Eth3以下になると、ST2503へ移行する。なお、ST2502では、余った電力を単に捨てることによって消費してもよいし、タスク処理を可能な範囲で実行することによって消費してもよい。
【0170】
ST2503へ移行した場合、ワーカノード2110は、電源残量Eが計測開始電源残量Eth3以上となるまで待機する(ST2503)。電源残量Eが計測開始電源残量Eth3以上になると(ST2503でYes)、ST2504へ移行し、充電時間Tchgの計測を開始する(ST2504)。
【0171】
その後ST2505において、ワーカノード2110は、電源残量Eが計測終了電源残量Eth4以上となるまで待機する(ST2505)。電源残量Eが計測終了電源残量Eth4以上になると(ST2505でYes)、ST2506へ移行し、充電時間Tchgの計測を終了する(ST2506)。
【0172】
以上に示す処理により、計測部2210は、計測開始電源残量Eth3から計測終了電源残量Eth4までの充電に要した充電時間Tchgを計測する。
【0173】
ここで、図24のST2404について詳細に説明する。ST2404では、ワーカノード2110は、周期決定処理(動作周期決定手段)2232によって、充電時間情報2202(充電時間Tchg)に基づいて動作周期Tbを決定する。
【0174】
具体的には、まず動作周期決定手段は、計測された充電時間Tchgに対し、式(4)に示す条件を満たす整数nを求める。なお、Constは0以上の任意定数である。
【0175】
【数4】

【0176】
その後、動作周期決定手段は、求められたnに基づいて、式(5)によって動作周期Tbを算出する。
【0177】
【数5】

【0178】
以上のように、動作周期決定手段は、充電時間TchgをConstの割合だけ過大評評価されるよう補正した値に基づいて動作周期Tbを決定する。これにより、スリープ期間Ts中に発電電力量が低下し、充電時間TchgがおよそConstの割合だけ長くなっても、次のウェイクアップ期間Twまでに所定電力残量以上の電力量を蓄積できる。そのため、次のウェイクアップ期間Twにおける動作が可能となる。すなわちワーカノード110は、発電状況の変化に対して安定に動作することが可能となる。
【0179】
図26は、本発明の第2実施形態の周期決定テーブル2304の一例を示す図である。周期決定テーブル2304は、前述のように、周期決定処理2232によって参照されるテーブルである。
【0180】
図26に示す周期決定テーブル2304では、Const=0.2の場合における充電時間Tchgと、動作周期Tbとの対応関係を示す情報が格納される。周期決定処理2232では、充電時間Tchgを算出するとともに、この周期決定テーブル2304を参照し、充電時間Tchgに対応する動作周期Tbを決定する(図24のST2404の動作周期修正)。なお、図26では、Const=1且つ充電時間Tchg=1の場合に、Tb=Tmになるように規格化した例を示している。
【0181】
なお、上記説明においては、動作周期決定手段は計測された充電時間Tchgと周期決定テーブル2304とに基づいて動作周期Tbを決定したが、この場合に限らない。例えば、充電時間Tchgと計測開始電源残量Eth3と計測終了電源残量Eth4とに基づいて式(6)によって電源残量の傾き値aを算出し、算出された傾き値aと図19の周期決定テーブル704とに基づいて動作周期Tbを決定してもよい。
【0182】
【数6】

【0183】
以上に示した動作周期決定手段により、前述の第1実施形態よりもさらに小容量の蓄電部512を備えたワーカノード2110において、蓄電部512に蓄電される電力の変化を示す情報(ここでは充電時間Tchg)に基づいて、適切な動作周期Tbを設定する。これにより、高い通信レートでノード間通信が可能となり、高速な分散情報処理を実現することができる。
【0184】
(第3実施形態)
第3実施形態では、前述の第1実施形態の分散情報処理装置100に、高速にタスク処理を実行可能な集中処理モードを追加した分散情報処理装置300の例を説明する。
【0185】
前述の第1実施形態の分散情報処理装置100では、各ワーカノード110は、予め設定された動作周期Tb毎にウェイクアップ期間Twの間だけ処理を実行した(図6参照)。このような他のノードと同期するようなウェイクアップ期間Twを設定する形態は、ノード間通信を行う上では好ましい。
【0186】
しかしながら、タスク処理を実行する上では、電源残量Eが最低動作電力量Eth1以上となった段階でウェイクアップ期間Twに移行し、タスク処理を実行させる形態の方が、より早くタスク処理を完了することができ、効率的である。そこで、第3実施形態の分散情報処理装置300では、高速にタスク処理を実行可能な集中処理モードを追加している。
【0187】
図27は、本発明の第3実施形態のワーカノード2810の動作例を示す図である。本発明の第3実施形態のワーカノード2810(図28参照)は、電源残量Eが最低動作電力量Eth1以上の大きさの閾値である動作開始電力量Eth5以上となった段階でウェイクアップ期間Twに移行する。
【0188】
このように電源残量Eが所定値以上になった段階で強制的にウェイクアップ期間Twに移行させる場合、前述の第1実施形態や第2実施形態のような動作周期Tbを設定することができない。そのため、他のワーカノード2810に対して非同期の動作となり、ノード間通信ができない。しかしながら、ワーカノード2810は自身に割り当てられたタスク処理を高速に実行することができる。このような形態は、1つのタスク処理が非常に大きく、ノード間通信の発生頻度が低い分散情報処理に有効である。
【0189】
図28は、本発明の第3実施形態の分散情報処理装置300の全体構成例を示す図である。なお、以下では、前述の第1の実施形態(図1参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0190】
図28に示す分散情報処理装置300では、各ワーカノード2810の構成及び動作が、図1に示す分散情報処理装置100と異なる。
【0191】
(ワーカノード構成)
図29は、本発明の第3実施形態のワーカノード2810の構成例を示す図である。なお、以下では、前述の第1の実施形態(図5参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0192】
ワーカノード2810は、電源部510、時計部520、電源制御部2930、計算部2940、不揮発記憶部2950、通信部560及びアンテナ部570を備える。
【0193】
電源制御部2930は、集中処理モードの設定レジスタを備え、電源残量情報501、時刻情報502及び制御情報2903に基づいて、電源遮断領域580の電源のオン、オフを切り替えるモジュールである。制御情報2903は、前述の制御情報503に、集中処理モードの設定に関する情報である集中処理モード設定情報が追加された情報である。この電源制御部2930は、電源残量情報501と制御情報2903に含まれる集中処理モード設定情報とに基づいて、電源遮断領域580の電源をオンする集中処理モード向けの動作を有する点において、図5の電源制御部530と異なる。
【0194】
計算部2940は、計算プログラムを実行するためのモジュールであり、一般的にはCPUで構成される。この計算部2940は、電源制御部2930に集中処理モード設定情報を送り、集中処理モードを制御する点において、図5の計算部540と異なる。この計算部2940は、毎起動時に不揮発記憶部2950の集中処理モードフラグ3009を確認し、通常処理モードと集中動作モードとを切り替える。
【0195】
不揮発記憶部2950は、電源をオフにしてもデータを保持できるモジュール、例えばROM、FeRAM、フラッシュメモリ等である。不揮発記憶部2950に記憶される各種情報については、図30を用いて後述する。
【0196】
図30は、本発明の第3実施形態のワーカノード2810の不揮発記憶部2950に記憶される情報を示す図である。なお、以下では、前述の第1の実施形態(図7参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0197】
不揮発記憶部2950は、RAM部3000と、ROM部750とを有する。
【0198】
RAM部3000は、動作開始電力量情報3008と集中処理モードフラグ3009とを有する点において、図7のRAM部700と異なる。
【0199】
動作開始電力量情報3008は、ワーカノード2810が動作を開始する(すなわちウェイクアップ期間Twに移行する)ための電源残量Eの閾値を示す情報である。具体的には、図27の動作開始電力量Eth5の情報である。
【0200】
集中処理モードフラグ3009は、集中処理モードか通常処理モードを示すフラグ情報、すなわち集中処理モード設定情報である。この集中処理モードフラグ3009にオンが設定されている場合、集中処理モードである。一方、オフが設定されている場合、通常処理モードである。
【0201】
次にワーカノード2810の動作を図31、図32及び図33を用いて説明する。
【0202】
図31は、本発明の第3実施形態のワーカノード2810の通常処理モードにおける動作を示すフローチャートである。なお、以下では、前述の第1実施形態(図8参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0203】
図31に示すフローチャートは、ST3105(ノード処理実行)の処理内容と、ST3109(集中処理モードか否かによる分岐処理)が追加された点において、図8のフローチャートと異なる。以下、これら2点について説明する。
【0204】
ST3105では、ワーカノード2810は、ノード処理を実行する(ST3105)。ここでいうノード処理とは、通信処理(送信処理562及び受信処理561)やタスク処理543等である。ノード処理については図32を用いて詳細に後述する。
【0205】
ST3109では、ワーカノード2810は、集中処理モードか否かを判定する(3109)。具体的には、ST3105において集中処理モードが設定されたか否かを判定する。集中処理モードである場合(3109でYes)、通常処理モードの処理を終了し、集中処理モードの処理を開始する。集中処理モードの処理については図33を用いて詳細に後述する。一方、集中処理モードでない場合(3109でNo)、ST801へ戻って処理を繰り返す。
【0206】
図32は、本発明の第3実施形態のワーカノード2810の通常処理モードにおけるノード処理を示すフローチャートである。ここでは、図31のST3105で実行されるノード処理の詳細を説明する。なお、以下では、前述の第1実施形態(図9参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0207】
図32に示すフローチャートは、ST922(タスク処理)の後にST3201(タスク完了確認)及びST3211(集中処理モード設定処理)が追加された点において、図9のフローチャートと異なる。
【0208】
ST3201では、ワーカノード2810は、マスタノード101から割り当てられた全てのタスクの処理を完了したか否かを確認する(ST3201)。全てのタスクの処理が完了した場合(ST3201でYes)、ST931へ移行する。一方、全てのタスクの処理が完了していない場合(ST3201でNo)、ST3211へ移行する。
【0209】
ST3211へ移行した場合、ワーカノード2810は、当該ワーカノード2810を集中処理モードとして設定する(ST3211)。具体的には、計算部2940は、動作開始電力量情報3008(動作開始電力量Eth5)及び集中処理モードを集中処理モードレジスタに設定するためのレジスタ設定信号を、集中処理モード設定情報として電源制御部2930に送る。さらに、不揮発記憶部2950の集中処理モードフラグ3009をオンに書き換える。これにより、ワーカノード2810は、次の起動時から集中処理モードとして動作する。
【0210】
図33は、本発明の第3実施形態のワーカノード2810の集中処理モードにおける動作を示すフローチャートである。なお、以下では、前述の第1実施形態(図9参照)と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【0211】
まずST3301において、ワーカノード2810は、電源残量情報501を取得することによって電源残量Eを監視し、電源残量Eが動作開始電力量Eth5以上となるまで待機する(ST3301)。このST3301は、スリープ期間Ts中の動作である。
【0212】
電源残量Eが動作開始電力量Eth5以上となると(ST3301でYes)、ワーカノード2810は、ST921(データ読出し)、ST922(タスク処理)及びST931(データ書込み)を順に実行し、ST3302へ移行する。
【0213】
ST3302では、ワーカノード2810は、マスタノード101から割り当てられた全てのタスクの処理を完了したか否かを確認する(ST3302)。全てのタスクの処理が完了した場合(ST3302でYes)、ST3303へ移行する。一方、全てのタスクの処理が完了していない場合(ST3302でNo)、ST3304へ移行する。
【0214】
ST3303へ移行した場合、ワーカノード2810は、集中処理モードを解除して通常処理モードを設定する(ST3303)。具体的には、計算部2940が、集中処理モードを解除する(すなわち通常処理モードを設定する)ためのレジスタ設定信号を電源制御部2930に送る。さらに、計算部2940は、不揮発記憶部2950の集中処理モードフラグ3009をオフに書き換える。これにより、ワーカノード2810は次の起動時から通常処理モードとして動作する。
【0215】
ST3304へ移行した場合、ワーカノード2810は、スリープ処理を実行する(ST3304)。具体的には、まずスリープ期間Tsに入る準備処理を実行する。すなわち計算部2940が、電源制御部2930へ制御情報503(最低動作電力量情報706、自己動作周期情報703及び動作完了情報)を送信する。次に電源制御部2930が、時刻情報502と制御情報503中の自己動作周期情報703(すなわち動作周期Tb)と、ウェイクアップ時刻設定レジスタに設定されている当回のウェイクアップ時刻情報とに基づいて、設定されている当回のウェイクアップ時刻より現在の時刻が進んでいる場合には、次回のウェイクアップ時刻を算出する。なお、次回のウェイクアップ時刻は、「(次回のウェイクアップ時刻)=(当回のウェイクアップ時刻)+(動作周期Tb)」によって算出される。その後、算出された次回のウェイクアップ時刻を、ウェイクアップ時刻設定レジスタに設定する。その後スリープ処理を実行し、スリープ処理が終わるとST3305へ移行する。
【0216】
ST3304に示すようにウェイクアップ時刻設定レジスタに設定されているウェイクアップ時刻を更新することによって、他のノードに対して非同期である集中処理モードから、他のノードに対して同期する通常処理モードにスムーズに移行することができる。
【0217】
その後ST3305では、ワーカノード2810は、通常処理モードか否かを判定する(3305)。具体的には、ST3303において集中処理モードが解除されているか否かを判定する。通常処理モードである場合(3305でYes)、集中処理モードの処理を終了し、通常処理モードの処理を開始する。通常処理モードの処理については図31を用いて前述した通りである。一方、通常処理モードでない場合(3109でNo)、ST3301へ戻って処理を繰り返す。
【0218】
以上に示した第3実施形態によれば、分散情報処理装置300が集中処理モードを備えることにより、前述の第1実施形態の分散情報処理装置100よりも高速にタスク処理を実行することが可能となる。
【0219】
以上、本発明の各実施形態について説明したが、上記各実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記各実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。
【符号の説明】
【0220】
100 分散情報処理装置
101 マスタノード
110 ワーカノード(計算機)
200 分散情報処理装置
300 分散情報処理装置
510 電源部
511 発電部
512 蓄電部
520 時計部
530 電源制御部
540 計算部
542 周期決定処理
543 タスク処理
550 不揮発記憶部
580 電源遮断領域
704 周期決定テーブル
2110 ワーカノード
2210 計測部
2220 電源制御部
2230 計算部
2232 周期決定処理
2240 不揮発記憶部
2304 周期決定テーブル
2810 ワーカノード
2930 電源制御部
2940 計算部

【特許請求の範囲】
【請求項1】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割当てるタスクを管理するマスタノードとを備えた計算機システムであって、
前記複数のワーカノードの各々は、当該ワーカノードの蓄電部に蓄電される電力の変化を示す情報に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期を決定することを特徴とする計算機システム。
【請求項2】
前記電力の変化を示す情報は、前記蓄電部に蓄電される電力の単位時間当たりの変化量であることを特徴とする請求項1に記載の計算機システム。
【請求項3】
前記複数のワーカノードの各々は、
前記電力の単位時間当たりの変化量の範囲と、所定の基本周期のべき乗の動作周期とが対応付けられた周期決定テーブルを備え、
前記蓄電部に蓄電された電力の単位時間当たりの変化量を小さくなるよう補正した値が含まれる範囲に対応付けられた前記所定の基本周期のべき乗の動作周期を、当該ワーカノードの動作周期として決定することを特徴とする請求項2に記載の計算機システム。
【請求項4】
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記ノード処理を実行するウェイクアップ期間とからなり、
前記複数のワーカノードの各々は、
前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタを備え、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする請求項2に記載の計算機システム。
【請求項5】
前記電力の変化を示す情報は、前記蓄電部に所定量の電力が充電されるまでに要した充電時間であることを特徴とする請求項1に記載の計算機システム。
【請求項6】
前記複数のワーカノードの各々は、前記蓄電部に蓄電された電力が所定量以上となった場合に、前記マスタノードによって割り当てられたタスクを集中して実行する集中処理モードを備えたことを特徴とする請求項1に記載の計算機システム。
【請求項7】
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記ノード処理を実行するウェイクアップ期間とからなり、
前記複数のワーカノードの各々は、
前記集中処理モードが設定される集中処理モード設定レジスタと、前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタとを備え、
前記集中処理モード設定レジスタに設定された集中処理モードが解除された場合に、当該ワーカノードの前記動作周期を決定し、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする請求項6に記載の計算機システム。
【請求項8】
前記マスタノードは、
前記複数のワーカノードに対するタスクの割当てに関する情報を管理するためのタスク割当てテーブルを備え、
決定された各ワーカノードの動作周期と、前記タスク割当てテーブルとに基づいて、各ワーカノードに割当てるタスクを決定することを特徴とする請求項1に記載の計算機システム。
【請求項9】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数の計算機と、前記複数の計算機に割当てるタスクを管理するマスタノードとを備えた計算機システムにおける前記計算機であって、
当該計算機の蓄電部に蓄電される電力の変化を示す情報に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他の計算機との間で通信を実行する際の当該計算機の動作周期を決定することを特徴とする計算機。
【請求項10】
前記電力の変化を示す情報は、前記蓄電部に蓄電される電力の単位時間当たりの変化量であることを特徴とする請求項9に記載の計算機。
【請求項11】
前記電力の単位時間当たりの変化量の範囲と、所定の基本周期のべき乗の動作周期とが対応付けられた周期決定テーブルを備え、
前記蓄電部に蓄電された電力の単位時間当たりの変化量を小さくなるよう補正した値が含まれる範囲に対応付けられた前記所定の基本周期のべき乗の動作周期を、当該計算機の動作周期として決定することを特徴とする請求項10に記載の計算機。
【請求項12】
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記ノード処理を実行するウェイクアップ期間とからなり、
当該計算機は、
前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタを備え、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする請求項10に記載の計算機。
【請求項13】
前記電力の変化を示す情報は、前記蓄電部に所定量の電力が充電されるまでに要した充電時間であることを特徴とする請求項9に記載の計算機。
【請求項14】
前記蓄電部に蓄電された電力が所定量以上となった場合に、前記マスタノードによって割り当てられたタスクを集中して実行する集中処理モードを備えたことを特徴とする請求項9に記載の計算機。
【請求項15】
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記ノード処理を実行するウェイクアップ期間とからなり、
当該計算機は、
前記集中処理モードが設定される集中処理モード設定レジスタと、前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタとを備え、
前記集中処理モード設定レジスタに設定された集中処理モードが解除された場合に、当該計算機の前記動作周期を決定し、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする請求項14に記載の計算機。

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図16】
image rotate

【図19】
image rotate

【図20A】
image rotate

【図20B】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図1】
image rotate

【図2】
image rotate

【図6】
image rotate

【図7】
image rotate

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図18】
image rotate

【図26】
image rotate

【図27】
image rotate