(57)【要約】【課題】マスター・スレーブ型システムにおいて、外部の監視コンピュータや監視プログラムを導入することなく、各スレーブの処理効率をマスターが把握する。【解決手段】並列分散処理システム４により実行される並列分散処理方法であって、まず、スレーブ１が、タスクを実行すると共に、並列分散処理システム４内で予め定められた計測単位を用いて当該タスクの実行を計測し、計測結果を格納部１１に格納し、格納された計測結果をマスター２に送信する。次に、マスター２が、受信した計測結果と送信元のスレーブ１を識別する情報とを関連付け、集計結果として集計部２１に格納し、格納された集計結果に基づいて、スレーブ１に対する指示情報を生成し、送信する。次に、スレーブ１が、受信した指示情報に基づいて、当該スレーブ１の動作を制御する。【選択図】図１
2013088863.tif 000002
【特許請求の範囲】
【請求項１】
一台以上のスレーブと、前記スレーブとネットワークを介して接続されているマスターとから構成され、タスクを前記スレーブにて並列分散処理する並列分散処理システム、により実行される並列分散処理方法であって、
前記スレーブが、当該スレーブに割り当てられたタスクを実行すると共に、並列分散処理システム内で予め定められた計測単位を用いて当該タスクの実行を計測し、計測結果を当該スレーブの格納手段に格納する処理ステップと、
前記スレーブが、当該スレーブの前記格納手段に格納された計測結果を前記マスターに送信する第１の報告ステップと、
前記マスターが、前記スレーブから計測結果を受信し、当該計測結果と送信元の当該スレーブを識別する情報とを関連付け、集計結果として当該マスターの集計手段に格納する通信ステップと、
前記マスターが、前記集計手段に格納された集計結果に基づいて、前記スレーブに対する指示情報を生成し、当該スレーブに送信する判断ステップと、
前記スレーブが、前記マスターから指示情報を受信する第２の報告ステップと、
前記スレーブが、前記第２の報告ステップにおいて受信された指示情報に基づいて、当該スレーブの動作を制御する制御ステップと、
を備える並列分散処理方法。
【請求項２】
前記判断ステップは、前記マスターが、前記集計手段に格納された集計結果のうち、前記通信ステップにおける前記送信元のスレーブからの一受信当たりの集計結果と、前記通信ステップにおける前記送信元のスレーブ以外の前記スレーブからの一受信当たりの集計結果とを比較し、比較結果に基づいて前記送信元のスレーブに対する指示情報を生成し、前記送信元のスレーブに送信する、
ことを特徴とする請求項１に記載の並列分散処理方法。
【請求項３】
前記通信ステップは、前記マスターが、前記送信元のスレーブからの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスターの集計手段に格納し、
前記判断ステップは、前記マスターが、前記集計手段に格納された集計結果のうち、前記通信ステップにおける前記送信元のスレーブからの一受信の集計結果の単位時間当たりの値と、前記通信ステップにおける前記送信元のスレーブ以外の前記スレーブからの一受信の集計結果の単位時間当たりの値とを比較し、比較結果に基づいて前記送信元のスレーブに対する指示情報を生成し、前記送信元のスレーブに送信する、
ことを特徴とする請求項１に記載の並列分散処理方法。
【請求項４】
前記判断ステップは、前記マスターが、前記集計手段に格納された集計結果のうち、前記送信元のスレーブの全ての集計結果の平均値と、前記送信元のスレーブ以外の前記スレーブの全ての集計結果の平均値とを比較し、比較結果に基づいて前記送信元のスレーブに対する指示情報を生成し、前記送信元のスレーブに送信する、
ことを特徴とする請求項１に記載の並列分散処理方法。
【請求項５】
前記通信ステップは、前記マスターが、前記送信元のスレーブからの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスターの集計手段に格納し、
前記判断ステップは、前記マスターが、前記集計手段に格納された集計結果のうち、前記送信元のスレーブの全ての集計結果の単位時間当たりの値の平均値と、前記送信元のスレーブ以外の前記スレーブの全ての集計結果の単位時間当たりの値の平均値とを比較し、比較結果に基づいて前記送信元のスレーブに対する指示情報を生成し、前記送信元のスレーブに送信する、
ことを特徴とする請求項１に記載の並列分散処理方法。
【請求項６】
前記判断ステップは、前記マスターが、前記集計手段に格納された集計結果のうち、前記通信ステップにおける前記スレーブからの一受信当たりの集計結果の、全ての前記スレーブに関する集計結果に対して統計処理を行い、統計処理結果に基づいて前記送信元のスレーブに対する指示情報を生成し、前記送信元のスレーブに送信する、
ことを特徴とする請求項１に記載の並列分散処理方法。
【請求項７】
前記通信ステップは、前記マスターが、前記送信元のスレーブからの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスターの集計手段に格納し、
前記判断ステップは、前記マスターが、前記集計手段に格納された集計結果のうち、前記通信ステップにおける前記スレーブからの一受信の集計結果の単位時間当たりの値の、全ての前記スレーブに関する値に対して統計処理を行い、統計処理結果に基づいて前記送信元のスレーブに対する指示情報を生成し、前記送信元のスレーブに送信する、
ことを特徴とする請求項１に記載の並列分散処理方法。
【請求項８】
前記判断ステップは、前記集計手段に格納された集計結果のうち、前記通信ステップにおける前記スレーブからの一受信当たりの集計結果の、全ての前記スレーブに関する平均値が、予め定められた閾値を超えた場合に、前記マスターが、当該マスターの負荷を下げる旨の前記スレーブに対する指示情報を生成し、当該スレーブに送信する、
ことを特徴とする請求項１〜７の何れか一項に記載の並列分散処理方法。
【請求項９】
一台以上のスレーブと、前記スレーブとネットワークを介して接続されているマスターとから構成され、タスクを前記スレーブにて並列分散処理する並列分散処理システムであって、
前記スレーブは、
当該スレーブに割り当てられたタスクを実行すると共に、並列分散処理システム内で予め定められた計測単位を用いて当該タスクの実行を計測し、計測結果を当該スレーブの格納手段に格納する処理手段と、
当該スレーブの前記格納手段に格納された計測結果を前記マスターに送信し、当該送信の応答として前記マスターから指示情報を受信する報告手段と、
前記報告手段によって受信された指示情報に基づいて、当該スレーブの動作を制御する制御手段と、
を備え、
前記マスターは、
前記スレーブから計測結果を受信し、当該計測結果と送信元の当該スレーブを識別する情報とを関連付け、集計結果として当該マスターの集計手段に格納する通信手段と、
前記集計手段に格納された集計結果に基づいて、前記スレーブに対する指示情報を生成し、当該スレーブに送信する判断手段と、
を備える並列分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスクを並列分散処理する並列分散処理方法及び並列分散処理システムに関する。
【背景技術】
【０００２】
今日、非常に多数の、個々としては小さい一様なタスクを、複数の計算機で分散して処理する方法が用いられている。このような方法では、個々のタスクを処理する複数の計算機を「スレーブ」、各スレーブにタスクを割り当て、各スレーブの処理結果を集約する役割を果たす計算機を「マスター」と呼ぶことが多い。
【０００３】
このようなマスター・スレーブ型システムとしては、Ｇｏｏｇｌｅ（登録商標）社が提唱しているＭａｐＲｅｄｕｃｅ技術や、そのオープンソース実装であるＨａｄｏｏｐ、Ｍｉｃｒｏｓｏｆｔ（登録商標）社が提唱しているＤｒｙａｄ（登録商標）、更にはＯｐｅｎＭＰＩ等が挙げられる。
【０００４】
マスター・スレーブ型システムにおいては、各計算機の動作状況を監視することは必須である。監視を行う目的の一つは、故障や過負荷等の何らかの原因で予定通りの処理効率を発揮できていない計算機を発見することである。処理効率低下の原因が、特定の計算機がボトルネックになっている為であればそれを解決し、故障であれば修理や交換などの処置を施すことになる。
【０００５】
計算機の動作状況を監視する技術としては、例えば下記特許文献１や下記非特許文献１に記載の技術が知られている。特許文献１では、監視対象の計算機を監視する専用の監視コンピュータを用意し、監視対象計算機の外部から当該監視対象計算機を監視する点が開示されている。非特許文献１では、監視対象の計算機に、専用の監視ソフトウェアをインストールして動作させ、監視対象の計算機上で実行されている監視対象のプロセス（監視対象のソフトウェアが動作している状態）の外部から当該監視対象プロセスを監視する点が開示されている。
【０００６】
一方、サーバ・クライアント型システムにおいて、外部の監視コンピュータや監視ソフトウェアの助けを借りずに監視を行う技術としては、例えば下記特許文献２や下記特許文献３に記載の技術が知られている。特許文献２では、サーバがクライアントとの間の通信速度を監視して、通信速度に応じて、例えばクライアントに提供する画像データの解像度を下げる等、サーバの振る舞いを変化させる点が開示されている。特許文献３では、サーバが各クライアントへポーリングを行い、各クライアントの活動（死活）状況を監視し、不活動であると判断したクライアントをシステムから自動的に除外する点が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−３２５１６１号公報
【特許文献２】特開２００２−３２２９５号公報
【特許文献３】特開平７−２７１７０１号公報
【非特許文献】
【０００８】
【非特許文献１】The  Ganglia  Distributed  Monitoring  System:  Design  Implementation,  and  Experience、Parallel  Computing  Volume30,  Issue  7
【発明の概要】
【発明が解決しようとする課題】
【０００９】
マスター・スレーブ型システムにおいて、全タスクの処理をより早く終えられるよう、タスクのスレーブへの割り当て（スケジューリング）を工夫することが、マスターには求められる。そのようなスケジューリングを実現するためには、マスターは、各スレーブのタスクの処理効率を監視して、より処理効率の高いスレーブへタスクを優先的に割り当てたり、システム内の計算機プールに未使用の計算機がある場合は、処理効率の低いスレーブを停止して計算機プール内の他の計算機を新たにスレーブにしたりする等の工夫が必要となる。
【００１０】
ここで、特許文献１や非特許文献１に記載の技術では、監視対象の計算機やプロセスの外側から、ＣＰＵ使用率やメモリ使用率等の汎用的かつ客観的に監視可能な指標を監視することになる。特許文献１や非特許文献１に記載の技術では、ＣＰＵ使用率やメモリ使用率が高い計算機またはプロセスには、高い負荷がかかっていることは検出できるが、それゆえに、タスクの処理効率が低いと判断することはできない。なぜならば、タスクを高い効率で処理しているからこそ、ＣＰＵ使用率やメモリ使用率が高くなっていることもあり得るためである。言い換えると、特許文献１や非特許文献１に記載の技術では、外部から監視できる指標のみから、タスクの処理効率を間接的に推測することしかできない。
【００１１】
また、特許文献１に記載の技術では、監視コンピュータを用意及び運用するコストや手間が発生し、非特許文献１に記載の技術では、監視ソフトウェアを動作させることによる余計な負荷が発生することも問題である。
【００１２】
一方、特許文献２や特許文献３に記載の技術では、外部の監視コンピュータや監視ソフトウェアを必要としない。しかしながら、特許文献２に記載の技術は、サーバとクライアントとの間の通信速度を監視するのみであり、通信速度だけではタスクの処理効率を測ることはできない。また、特許文献３に記載の技術は、クライアントの活動状況を監視するのみであり、クライアントの活動状況だけではタスクの処理効率を測ることはできない。
【００１３】
本発明は、上記のような課題を解決するために成されたものであり、マスター・スレーブ型システムにおいて、外部の監視コンピュータや監視プログラムを導入することなく、スレーブの処理効率をマスターが把握することができる並列分散処理方法及び並列分散処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一側面に係る並列分散処理方法は、一台以上のスレーブと、スレーブとネットワークを介して接続されているマスターとから構成され、タスクをスレーブにて並列分散処理する並列分散処理システム、により実行される並列分散処理方法であって、スレーブが、当該スレーブに割り当てられたタスクを実行すると共に、並列分散処理システム内で予め定められた計測単位を用いて当該タスクの実行を計測し、計測結果を当該スレーブの格納手段に格納する処理ステップと、スレーブが、当該スレーブの格納手段に格納された計測結果をマスターに送信する第１の報告ステップと、マスターが、スレーブから計測結果を受信し、当該計測結果と送信元の当該スレーブを識別する情報とを関連付け、集計結果として当該マスターの集計手段に格納する通信ステップと、マスターが、集計手段に格納された集計結果に基づいて、スレーブに対する指示情報を生成し、当該スレーブに送信する判断ステップと、スレーブが、マスターから指示情報を受信する第２の報告ステップと、スレーブが、第２の報告ステップにおいて受信された指示情報に基づいて、当該スレーブの動作を制御する制御ステップと、を備える。
【００１５】
このように、スレーブにて、並列分散処理システム内で予め定められた計測単位を用いてタスクの実行が計測され、計測結果がマスターに送信されることで、マスターは、外部の監視コンピュータや監視プログラムを導入することなく、スレーブの処理効率を把握することができる。そして、マスターは、スレーブの処理効率に基づいてスレーブに指示を出し、スレーブは指示に基づいて動作を制御することで、マスターは、スレーブの処理効率に基づき、システム全体の動作を動的に制御することができる。
【００１６】
また、判断ステップは、マスターが、集計手段に格納された集計結果のうち、通信ステップにおける送信元のスレーブからの一受信当たりの集計結果と、通信ステップにおける送信元のスレーブ以外のスレーブからの一受信当たりの集計結果とを比較し、比較結果に基づいて送信元のスレーブに対する指示情報を生成し、送信元のスレーブに送信してもよい。かかる場合、マスターは、対象スレーブの一受信当たりの集計結果と、他のスレーブの一受信当たりの集計結果との比較結果に基づいて、対象スレーブに指示を出すことができるため、より正確に対象スレーブの処理効率を把握することができると共に、より効率的にシステム全体の動作を動的に制御することができる。
【００１７】
また、通信ステップは、マスターが、送信元のスレーブからの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスターの集計手段に格納し、判断ステップは、マスターが、集計手段に格納された集計結果のうち、通信ステップにおける送信元のスレーブからの一受信の集計結果の単位時間当たりの値と、通信ステップにおける送信元のスレーブ以外のスレーブからの一受信の集計結果の単位時間当たりの値とを比較し、比較結果に基づいて送信元のスレーブに対する指示情報を生成し、送信元のスレーブに送信してもよい。かかる場合、マスターは、対象スレーブの一受信の集計結果の単位時間当たりの値と、他のスレーブの一受信の集計結果の単位時間当たりの値との比較結果に基づいて、対象スレーブに指示を出すことができるため、より正確に対象スレーブの処理効率を把握することができると共に、より効率的にシステム全体の動作を動的に制御することができる。
【００１８】
また、判断ステップは、マスターが、集計手段に格納された集計結果のうち、送信元のスレーブの全ての集計結果の平均値と、送信元のスレーブ以外のスレーブの全ての集計結果の平均値とを比較し、比較結果に基づいて送信元のスレーブに対する指示情報を生成し、送信元のスレーブに送信してもよい。かかる場合、マスターは、対象スレーブの全ての集計結果の平均値と、他のスレーブの全ての集計結果の平均値との比較結果に基づいて、対象スレーブに指示を出すことができるため、より正確に対象スレーブの処理効率を把握することができると共に、より効率的にシステム全体の動作を動的に制御することができる。
【００１９】
また、通信ステップは、マスターが、送信元のスレーブからの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスターの集計手段に格納し、判断ステップは、マスターが、集計手段に格納された集計結果のうち、送信元のスレーブの全ての集計結果の単位時間当たりの値の平均値と、送信元のスレーブ以外のスレーブの全ての集計結果の単位時間当たりの値の平均値とを比較し、比較結果に基づいて送信元のスレーブに対する指示情報を生成し、送信元のスレーブに送信してもよい。かかる場合、マスターは、対象スレーブの全ての集計結果の単位時間当たりの値の平均値と、他のスレーブの全ての集計結果の単位時間当たりの値の平均値との比較結果に基づいて、対象スレーブに指示を出すことができるため、より正確に対象スレーブの処理効率を把握することができると共に、より効率的にシステム全体の動作を動的に制御することができる。
【００２０】
また、判断ステップは、マスターが、集計手段に格納された集計結果のうち、通信ステップにおけるスレーブからの一受信当たりの集計結果の、全てのスレーブに関する集計結果に対して統計処理を行い、統計処理結果に基づいて送信元のスレーブに対する指示情報を生成し、送信元のスレーブに送信してもよい。かかる場合、マスターは、スレーブからの一受信当たりの集計結果の、全てのスレーブに関する集計結果に対しての統計処理結果に基づいて、スレーブに指示を出すことができるため、より正確にスレーブの処理効率を把握することができると共に、より効率的にシステム全体の動作を動的に制御することができる。
【００２１】
また、通信ステップは、マスターが、送信元のスレーブからの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスターの集計手段に格納し、判断ステップは、マスターが、集計手段に格納された集計結果のうち、通信ステップにおけるスレーブからの一受信の集計結果の単位時間当たりの値の、全てのスレーブに関する値に対して統計処理を行い、統計処理結果に基づいて送信元のスレーブに対する指示情報を生成し、送信元のスレーブに送信してもよい。かかる場合、マスターは、スレーブからの一受信の集計結果の単位時間当たりの値の、全てのスレーブに関する値に対しての統計処理結果に基づいて、スレーブに指示を出すことができるため、より正確にスレーブの処理効率を把握することができると共に、より効率的にシステム全体の動作を動的に制御することができる。
【００２２】
また、判断ステップは、集計手段に格納された集計結果のうち、通信ステップにおけるスレーブからの一受信当たりの集計結果の、全てのスレーブに関する平均値が、予め定められた閾値を超えた場合に、マスターが、当該マスターの負荷を下げる旨のスレーブに対する指示情報を生成し、当該スレーブに送信してもよい。かかる場合、マスターは、例えば、マスターの能力を超えた台数のスレーブが接続されていることを検出できるようになり、マスターの能力、または能力に応じて設定された条件に応じてスレーブの接続台数を動的に制御することが可能となる。
【００２３】
ところで、並列分散処理方法に係る発明は、システムの発明として捉えることができ、同様の作用・効果を奏する。システムの発明は、以下のように記述することができる。
【００２４】
本発明の一側面に係る並列分散処理システムは、一台以上のスレーブと、スレーブとネットワークを介して接続されているマスターとから構成され、タスクをスレーブにて並列分散処理する並列分散処理システムであって、スレーブは、当該スレーブに割り当てられたタスクを実行すると共に、並列分散処理システム内で予め定められた計測単位を用いて当該タスクの実行を計測し、計測結果を当該スレーブの格納手段に格納する処理手段と、当該スレーブの格納手段に格納された計測結果をマスターに送信し、当該送信の応答としてマスターから指示情報を受信する報告手段と、報告手段によって受信された指示情報に基づいて、当該スレーブの動作を制御する制御手段と、を備え、マスターは、スレーブから計測結果を受信し、当該計測結果と送信元の当該スレーブを識別する情報とを関連付け、集計結果として当該マスターの集計手段に格納する通信手段と、集計手段に格納された集計結果に基づいて、スレーブに対する指示情報を生成し、当該スレーブに送信する判断手段と、を備える。
【発明の効果】
【００２５】
本発明によれば、マスター・スレーブ型システムにおいて、外部の監視コンピュータや監視プログラムを導入することなく、スレーブの処理効率をマスターが把握することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態に係る並列分散処理システムの概念図である。
【図２】本発明の一実施形態に係るスレーブの構成を示すブロック図である。
【図３】本発明の一実施形態に係るマスターの構成を示すブロック図である。
【図４】本発明の一実施形態に係るスレーブ及びマスターのハードウェア構成の一例を示す図である。
【図５】本発明の一実施形態に係るスレーブにおける並列分散処理方法の処理動作を示すフローチャートである。
【図６】本発明の一実施形態に係るマスターにおける並列分散処理方法の処理動作（その１）を示すフローチャートである。
【図７】本発明の一実施形態に係るマスターにおける並列分散処理方法の処理動作（その２）を示すフローチャートである。
【図８】本発明の一実施形態に係るマスターにおける並列分散処理方法の処理動作（その３）を示すフローチャートである。
【図９】本発明の一実施形態に係る集計部のテーブルデータの一例（その１）を示す図である。
【図１０】本発明の一実施形態に係る集計部のテーブルデータの一例（その２）を示す図である。
【図１１】本発明の一実施形態に係る集計部のテーブルデータの一例（その３）を示す図である。
【図１２】本発明の一実施形態に係る集計部のテーブルデータの一例（その４）を示す図である。
【図１３】本発明の一実施形態に係る集計部のテーブルデータの一例（その５）を示す図である。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００２８】
（並列分散処理システムの概要）
まず、図１を用いて、本発明の一実施形態に係る並列分散処理システムの全体像を説明する。図１は、並列分散処理システム４の概要を示す図である。並列分散処理システム４は、１台以上のスレーブ１と、マスター２とを含んで構成される。並列分散処理システム４において、各スレーブ１とマスター２とは、ネットワーク３を介して互いに通信可能である。
【００２９】
スレーブ１及びマスター２は、それぞれサーバ装置であるが、これに限定されず、それぞれ、ＰＣ（Personal  Computer）、ノートＰＣ、及び携帯電話等の移動通信端末等であってもよい。ネットワーク３は、例えばインターネット網や移動通信ネットワーク等により構成されているが、これらに限定されない。
【００３０】
並列分散処理システム４は、いわゆるマスター・スレーブ型のクラスタ（計算機の集合）であり、並列分散処理システム４において、多数のタスク（処理内容）であって、ただし個々は小さい一様なタスクを、１台以上のスレーブ１間で分散処理することで、並列分散処理が実行される。また、並列分散処理システム４では、マスター２が、全スレーブ１を管理している。
【００３１】
（スレーブ１の構成）
図２は、本発明の一実施形態に係るスレーブ１の構成を示す図である。図２に示すスレーブ１は、処理部１０（処理手段）、格納部１１（格納手段）、報告部１２（報告手段）、及び制御部１３（制御手段）を含んで構成される。
【００３２】
図４は、スレーブ１のハードウェア構成の一例を示す。スレーブ１は、ハードウェア構成として、ＣＰＵ５０と、ＲＡＭ５１と、ＲＯＭ５２と、キーボードやテンキーなどから成る入力部５３と、外部との通信を行う通信部５４と、補助記憶装置５５と、ディスプレイなどから成る５６と、を備える。前述したスレーブ１の各機能ブロックの機能は、ＲＡＭ５１などにプログラムやデータなどを読み込ませ、ＣＰＵ５０の制御の下でプログラムを実行することで実現される。なお、後述するマスター２も、上記図４のハードウェア構成と同様である。
【００３３】
以下、図２に示すスレーブ１の各機能ブロックについて説明する。処理部１０は、スレーブ１に割り当てられたタスクを実行すると共に、並列分散処理システム４内で予め定められた計測単位を用いて当該タスクの実行を計測し、計測結果を格納部１１に格納する。処理部１０は、スレーブ１に割り当てられたタスクが無くなるまで、この動作を繰り返す。
【００３４】
計測単位については、並列分散処理システム４内の全スレーブ１とマスター２との間で予め決定しておく必要がある。計測単位は全スレーブ１において等しく計測（またはカウント）できるものなら何でもよく、例えば「処理したタスク数」や「秒数」等が挙げられる。本実施形態では、計測単位を「処理したタスク数」として説明する。なお、タスクの総数が非常に多く、個々のタスクは小さくて一様であるような状況を対象としている。
【００３５】
処理部１０は、計測結果を格納部１１に格納する際に、一定間隔ごとに計測結果を格納する。ここで、一定間隔とは、一定の時間でもよいし、タスクを一定数処理する度でもよいが、並列分散処理システム４内の全スレーブ１とマスター２との間で予め決定しておく必要がある。また、処理部１０は、処理結果を格納部１１に格納すると、処理部１０が保持する計測結果をゼロにリセットする。
【００３６】
また、処理部１０は、計測結果を格納部１１に格納する際に、計測結果を格納するかどうかを判断してもよい。判断基準としては、例えば「前回格納時から１秒以上経過していたら格納する」や「タスクを１個処理する毎に格納する」等が挙げられる。判断基準は、並列分散処理システム４内の全スレーブ１で統一されている必要があるが、プログラム的に固定されていても良いし、設定ファイル等を用いて設定するようにしてもよい。本実施形態では、処理部１０は、「タスクを１個処理する毎に格納する」という判断基準を用いて、計測結果を格納部１１に格納するかどうかを判断するものとする。
【００３７】
格納部１１には、処理部１０により計測結果が格納される。格納部１１では、計測結果が格納される度に、格納される計測結果を上書きすることなく、それまでに格納済みの計測結果に加算する。
【００３８】
報告部１２は、格納部１１に格納された計測結果を取り出し、取り出した計測結果をマスター２に送信する。そして、報告部１２は、当該送信の応答としてマスター２から指示情報を受信し、受信した指示情報を報告部１２に出力する。
【００３９】
報告部１２は、格納部１１に格納された計測結果を取り出すと、格納部１１の計測結果をゼロにリセットする。また、報告部１２は、取り出した計測結果をマスター２に送信する際に、取り出した計測結果をマスター２に報告すべきかどうか、つまり、計測結果が「１」以上であるかどうかを判断してもよい。この場合、報告部１２は、計測結果がゼロである際は、報告すべき計測結果が無いため待機し、報告すべき計測結果がある際は、取り出した計測結果を実際にマスター２に送信する。また、報告部１２は、取り出した計測結果をマスター２に送信する際に、従来の並列分散処理技術における、スレーブからマスターへの処理結果の逐次報告と一緒に送信してもよい。
【００４０】
制御部１３は、報告部１２から出力された指示情報を取得し、当該指示情報に基づいてスレーブ１の動作を制御する。指示情報の具体例としては、「特に何もしない」、「処理部１０による処理が実行されている主スレッド、及び報告部１２による処理が実行されている別スレッドの動作を即刻停止する」「処理部１０が計測結果を格納部１１に格納する際に用いる判断基準を変更する」等が挙げられる。
【００４１】
（マスター２の構成）
図３は、本発明の一実施形態に係るマスター２の構成を示す図である。図３に示すマスター２は、通信部２０（通信手段）、集計部２１（集計手段）、判断部２２（判断手段）、及び表示部２３を含んで構成される。
【００４２】
以下、図３に示すマスター２の各機能ブロックについて説明する。通信部２０は、スレーブ１から計測結果を受信し、当該計測結果と送信元の当該スレーブ１を識別する情報とを関連付け、集計結果として集計部２１に格納する。スレーブ１を識別する情報の具体例としては、スレーブ１のＩＰアドレス等が挙げられる。通信部２０は、送信元のスレーブ１からの前回の計測結果の受信からの経過時間、又は送信元のスレーブ１からの計測結果の受信時刻を更に関連付け、集計結果として集計部２１に格納してもよい。
【００４３】
集計部２１には、通信部２０により、集計結果が格納される。集計部２１では、例えば、集計結果に含まれるスレーブ１を識別する情報ごとに集計結果を格納及び集計するようにしてもよい。
【００４４】
判断部２２は、集計部２１に格納された集計結果に基づいて、スレーブ１、マスター２及び並列分散処理システム４の状況や当該状況に伴う予測や指示等を判断し、判断結果に基づいてスレーブ１に対する指示情報を生成し、当該スレーブ１に送信する。判断内容としては、処理効率の低いスレーブ１の検出、マスター２自身の負荷の程度、又は並列分散処理システム４全体の処理効率から何らかの予測を行うこと等が挙げられる。以下では、判断部２２の様々な処理パターンについて列挙する。これらの処理パターンの具体例については、後述のマスター２の各種実施形態の処理にて説明する。
【００４５】
判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０における送信元のスレーブ１からの一受信当たりの集計結果と、通信部２０における送信元のスレーブ１以外のスレーブ１からの一受信当たりの集計結果とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０における送信元のスレーブ１からの一受信の集計結果の単位時間当たりの値と、通信部２０における送信元のスレーブ１以外のスレーブ１からの一受信の集計結果の単位時間当たりの値とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。
【００４６】
また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、送信元のスレーブ１の全ての集計結果の平均値と、送信元のスレーブ１以外のスレーブ１の全ての集計結果の平均値とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、送信元のスレーブ１の全ての集計結果の単位時間当たりの値の平均値と、送信元のスレーブ１以外のスレーブ１の全ての集計結果の単位時間当たりの値の平均値とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。
【００４７】
また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０におけるスレーブ１からの一受信当たりの集計結果の、全てのスレーブ１に関する集計結果に対して統計処理を行い、統計処理結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０におけるスレーブ１からの一受信の集計結果の単位時間当たりの値の、全てのスレーブ１に関する値に対して統計処理を行い、統計処理結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。
【００４８】
また、判断部２２は、集計部２１に格納された集計結果のうち、通信部２０におけるスレーブ１からの一受信当たりの集計結果の、全てのスレーブ１に関する平均値が、予め定められた閾値を超えた場合に、マスター２が、当該マスターの負荷を下げる旨のスレーブ１に対する指示情報を生成し、当該スレーブ１に送信してよい。
【００４９】
表示部２３は、並列分散処理システム４のユーザに対して、並列分散処理システム４に関する情報を表示する。
【００５０】
（スレーブ１の処理の説明）
続いて、スレーブ１における並列分散処理方法の処理の手順を、図５を参照して説明する。まず、スレーブ１は、タスクが割り当てられると、主スレッドともう一つの別スレッドを開始する。主スレッド上では処理部１０による処理、具体的にはステップ１０１〜１０４が実行される。一方、別スレッド上では報告部１２による処理、具体的にはステップ２０１〜２０５が実行される。
【００５１】
はじめに、スレーブ１の主スレッド上での処理について説明する。まず、処理部１０は、スレーブ１に割り当てられたタスクがまだ残っているかどうかの判断を行う（ステップ１０１）。ステップ１０１にて、タスクが残っていない場合、スレーブ１の動作は終了となり、主スレッドと別スレッドの両方が停止する。一方、ステップ１０１にて、タスクが残っている場合、処理部１０は、タスクを一つ実行し、その傍らで予め定められた計測単位を用いてタスクの実行を計測する（ステップ１０２）。次に、処理部１０は、計測結果を格納部１１へ格納するかどうかを判断する（ステップ１０３）。ステップ１０３にて、格納部１１へ格納すると判断した場合、処理部１０は、計測した計測結果を格納部１１へ格納し、処理部１０の計測結果をゼロにリセットする（ステップ１０４）。なお、格納部１１に以前の計測結果が残っていた場合、上書きすることなく、今回の計測結果を加算する。ステップ１０３にて、格納部１１へ格納しないと判断した場合、ステップ１０１に進む。スレーブ１の主スレッドは、以上のステップ１０１〜１０４を、スレーブ１に割り当てられたタスクがなくなるまで繰り返す。
【００５２】
続いて、スレーブ１の別スレッド上での処理について説明する。まず、報告部１２は、格納部１１から計測結果を取り出し、格納部１１の計測結果をゼロにリセットする（ステップ２０１）。次に、報告部１２は、取り出した計測結果をマスター２に報告すべきかどうか、つまり、計測結果が「１」以上であるかどうかを判断する（ステップ２０２）。ステップ２０２にて、計測結果がゼロであった場合は、報告すべき計測結果が無いため、判断結果は「ＮＯ」となり、ステップ２０１に進む。ステップ２０２にて、報告すべき計測結果がある場合は、報告部１２は、計測結果をマスター２へ送信する（ステップ２０３）。次に、報告部１２は、マスター２へ送信した計測結果に対する応答として、マスター２からの指示を受信する（ステップ２０４）。次に、報告部１２は、マスター２から受信した指示を制御部１３へ引き渡す（ステップ２０５）。指示を受け取った制御部１３は、指示の内容に従って当該スレーブ１の動作を制御する。スレーブ１の別スレッドは、主スレッドが終了するまで、以上のステップ２０１〜２０５を繰り返す。
【００５３】
ここで、スレーブ１における主スレッドと別スレッドは互いに非同期に動作する。主スレッドは、別スレッドの動作とは無関係に、ベストエフォートでタスクの処理、計測、及び計測結果の格納を繰り返す。別スレッドも、主スレッドの動作とは無関係に、計測結果の取り出し、マスターへの計測結果の送信、マスターからの指示の受信、制御部１３への指示の受け渡し、という一連の動作を、ベストエフォートで主スレッドが終了するまで繰り返す。ところで、並列分散処理システム４全体には１台以上のスレーブ１が存在するが、スレーブ１の台数と、ある一つのスレーブ１の主スレッドの処理効率との間には何ら因果関係は無く、無関係である。一方、スレーブ１の台数と、ある一つのスレーブ１の別スレッドの効率には因果関係がある。なぜならば、スレーブ１の台数が増えると、マスター２が受信及び応答すべき報告の送信元スレーブ１が増えるため、マスター２の負荷が高くなり、ある一つのスレーブ１から見ると、マスター２からの応答が返ってくるまでの時間（以下、応答時間と呼ぶ）が長くなるためである。本実施形態のポイントは、スレーブ１における主スレッドと別スレッドの効率の比率を利用する、というところにある。
【００５４】
（マスター２の処理の第１の例の説明）
続いて、マスター２による並列分散処理方法の処理の第１の例を、図６を参照して説明する。まず、通信部２０は、各スレーブ１からの計測結果を受信する（ステップ３０１）。次に、通信部２０は、時間情報を利用するか否かを判断する（ステップ３０２）。なお、以下の説明では、計測結果の送信元スレーブ１毎の最新の計測結果だけを用いるのではなく、送信元スレーブ１毎の計測結果の履歴を集計部２１に記憶し、その平均値を用いることとする。
【００５５】
ステップ３０２にて、時間情報を利用しないと判断した場合、通信部２０は、受信した計測結果と、当該計測結果の送信元のスレーブ１を識別する送信元ＩＤとを関連付け、集計結果として集計部２１に格納する（ステップ３０３）。なお、時間情報を利用しないケースは、全スレーブ１の処理能力が均一、例えば、全スレーブ１のハードウェア構成が均一で、かつ、各スレーブ１とマスター２との間の接続経路も均一、すなわち通信遅延の差異を無視できる状況において有効なケースである。
【００５６】
図９は、ステップ３０３の直後に、集計部２１に格納された集計結果のテーブル例を示す図である。なお、図９（及び後述の図１０〜図１３）において、計測単位は「処理したタスク数」である。図９に示すテーブル例から、送信元スレーブ１毎に計測結果の平均値を算出すると、送信元ＩＤがＡＡＡＡＡのスレーブ１（以降、ＡＡＡＡＡと呼ぶ。他の送信ＩＤのスレーブ１についても同様）、ＣＣＣＣＣ、及びＥＥＥＥＥの計測結果の平均値は「１０」であり、ＢＢＢＢＢの平均値は「５」、ＤＤＤＤＤの平均値は「１５」である。
【００５７】
ステップ３０３に続いて、判断部２２は、集計結果の平均値に関して、集計結果が異常であるか否かを判断する（ステップ３０４）。判断部２２は、例えばＢＢＢＢＢに関しては、次のような判断を行ってもよい。つまり、全スレーブ１とマスター２との間の接続経路が均一ならば、各スレーブ１から見た応答時間もほぼ均一なはずなのに、その間に処理できるタスク数が、ＢＢＢＢＢでは他の半分程度ということである。本実施形態では、各タスクは一様であることを前提とするため、ＢＢＢＢＢは何らかの原因により処理効率が低下していると判断できる。なぜなら、ハードウェア構成が均一である前提から、飛び抜けて低い値となるのはおかしいためである。一方、判断部２２は、例えばＤＤＤＤＤに関しては、次のような判断を行ってもよい。つまり、タスクは一様であり、かつ、ハードウェア構成が均一である前提から、ＤＤＤＤＤだけが飛び抜けて処理効率が高くなることも考え難い。つまり、何らかの原因、例えばネットワーク３接続の不調等により、ＤＤＤＤＤから見た応答時間が長くなっていると判断できる。なお「計数結果がいくつ以上（あるいは以下）ならば異常と見なすか」という判断のポリシーは、プログラム的に固定されていてもよいし、ポリシーファイル等で設定できるようになっていてもよい。
【００５８】
判断部２２による以上のような判断を踏まえ、判断部２２が今回受信した計測結果がＢＢＢＢＢやＤＤＤＤＤからのものであった場合、ステップ３０４にて異常であると判断し（ステップ３０４の判断「ＹＥＳ」）、例えば当該スレーブ１の動作を即刻停止する等の相応の指示情報を生成して、当該スレーブ１に返信する（ステップ３０８）。判断部２２が今回受信した計測結果がＢＢＢＢＢやＤＤＤＤＤからのものでなかった場合（ステップ３０４の判断「ＮＯ」）は、例えば「何もしない」という指示情報等の正常応答を生成して、当該スレーブ１に返信する（ステップ３０７）。
【００５９】
なお、判断部２２は、特定のスレーブ１において何らかの異常が発生したと判断した場合、マスター２はその情報を記憶しておき、例えば、タスクのスレーブ１への割り当て（スケジューリング）を工夫する等、その後の並列分散処理システム４全体の制御に役立てたり、例えば、表示部２３により異常が発生したスレーブ１をユーザに報告する等、並列分散処理システム４のユーザに対して情報を提示したりすることができる。
【００６０】
続いて、ステップ３０２にて時間情報を利用すると判断したケースについて説明する。時間情報を利用すると判断したケースは、全スレーブ１の処理能力が均一で、かつ、各スレーブ１とマスター２との間の接続経路も均一であるという前提を置くことができない状況において有効なケースである。
【００６１】
ステップ３０２にて、時間情報を利用すると判断した場合、通信部２０は、受信した計測結果と、当該計測結果の送信元のスレーブ１を識別する送信元ＩＤと、当該計測結果を受信した時刻とを関連付け、集計結果として集計部２１に格納する（ステップ３０５）。
【００６２】
図１０は、ステップ３０５の直後に、集計部２１に格納された集計結果のテーブル例を示す図である。図１０に示すテーブル例では、一見すると通信部２０による一受信当りの計測結果の平均値は全て「１０」となり、問題なさそうに見える。しかしながら、時間当り（以降の実施形態では「秒」を用いる）の計測結果の平均値を見ると、ＡＡＡＡＡ、ＢＢＢＢＢ、ＤＤＤＤＤ、ＥＥＥＥＥでは「２」なのに対し、ＣＣＣＣＣでは「１」となっていることがわかる。
【００６３】
ステップ２０５に続いて、判断部２２は、集計結果の平均値に関して、集計結果が異常であるか否かを判断する（ステップ３０６）。判断部２２は、ＣＣＣＣＣから計測結果を受信する周期は他のスレーブ１の倍であるが、これはＣＣＣＣＣのネットワーク接続が元来他よりも性能が劣るものであるためか、それとも、ＣＣＣＣＣのネットワーク接続に何か不調が発生したためか、判断することはできない。しかしながら、判断部２２は、ＣＣＣＣＣについて、単位時間あたりのタスクの処理効率が他よりも劣っていることを判断する。なお、判断部２２は、ＣＣＣＣＣの処理効率が元来他よりも劣っているためか、それとも、ＣＣＣＣＣに何か故障が発生したためかの判断はつかないが、とにかくＣＣＣＣＣの処理効率が他よりも劣っていることは判断する。
【００６４】
判断部２２による以上のような判断を踏まえ、判断部２２が今回受信した計測結果がＣＣＣＣＣからのものであった場合、判断部２２は、ステップ３０６にて異常であると判断し（ステップ３０６の判断「ＹＥＳ」）、ステップ３０８に進み、ＣＣＣＣＣからのものでなかった場合、判断部２２は、ステップ３０６にて異常でないと判断し（ステップ３０６の判断「ＮＯ」）、ステップ３０７に進む。
【００６５】
（マスター２の処理の第２の例の説明）
続いて、マスター２による並列分散処理方法の処理の第２の例を、図７を参照して説明する。まず、通信部２０は、各スレーブ１から計測結果を受信する（ステップ４０１）。次に、通信部２０は、受信した計測結果と、当該計測結果の送信元のスレーブ１を識別する送信元ＩＤとを関連付け、集計結果として集計部２１に格納する（ステップ４０２）。図１１及び図１２はそれぞれ、ステップ４０２の直後に、集計部２１に格納された集計結果のテーブル例を示す図である。図１１に示すテーブル例では、スレーブ１の台数が５台、図１２に示すテーブル例では、スレーブ１の台数が１０台の場合の例である。
【００６６】
次に、判断部２２は、報告当りの集計結果を算出する（ステップ４０３）。ここで算出する報告当りの集計結果は、スレーブ１別のものではなく、全スレーブ１に関する平均値である。ここでの算出には、各スレーブ１の最新の計測結果のみを用いてもよいし、各スレーブ１の全計測結果を用いてもよい。図１１に示すテーブル例では、算出結果は「１０」となり、図１２に示すテーブル例では、「２０」となる。これは、図１２に示すテーブル例では図１１に示すテーブル例と比較して、マスター２が応答すべきスレーブ１の数が２倍になっており、各スレーブ１から見た応答時間が倍になる一方、各スレーブ１の主スレッドがタスクを処理する効率は並列分散処理システム４全体のスレーブ１の数に依存しないためである。
【００６７】
次に、判断部２２は、算出した報告当りの集計結果が閾値を超えているかどうかを判断する（ステップ４０４）。この閾値は、プログラム的に固定されていてもよいし、設定ファイル等で設定できるようになっていてもよい。なお、ここでの閾値は「１５」に設定されているものとする。これは、「報告当りの集計結果が１５を超える場合、応答時間が長過ぎる、つまりスレーブ１の数が多すぎる」ということを意味する。
【００６８】
ステップ４０４にて、集計部２１に格納された集計結果が、図１１に示すテーブル例の場合、判断部２２による判断結果は「ＮＯ」となり、判断部２２は、計測結果の送信元スレーブ１に対して、正常応答、例えば「何もしない」という指示を含む応答を返信する（ステップ４０５）。一方、ステップ４０４にて、集計部２１に格納された集計結果が、図１２に示すテーブル例の場合、判断部２２による判断結果は「ＹＥＳ」となり、判断部２２は、マスター２の負荷を下げるための方法を判断する。例えば、判断部２２は、処理効率の一番低いスレーブ１を選択し（ステップ４０６）、当該スレーブ１に対して停止指示を返信してもよい。図１２に示すテーブル例の場合では、処理効率の一番低いＪＪＪＪＪが選択される。
【００６９】
ステップ４０６に続いて、判断部２２は、計測結果を送信元スレーブ１が、ステップ４０６で選択されたスレーブ１からのものであるかどうかを判断する（ステップ４０７）。ステップ４０７にて、スレーブ１からのものであると判断した場合（ステップ４０７の判断「ＹＥＳ」）、判断部２２は、送信元スレーブ１への返信として相応の指示情報、例えばスレーブ１を強制終了する等の指示情報を返信する（ステップ４０８）。ステップ４０７にて、スレーブ１からのものでないと判断した場合（ステップ４０７の判断「ＮＯ」）、計測結果の送信元スレーブ１に対して正常応答、例えば「何もしない」という指示を含む応答を返信する（ステップ４０５）。なお、ステップ４０６で選択したスレーブ（ここではＪＪＪＪＪ）をマスター２内で記憶しておき、次にＪＪＪＪＪから報告を受信した際に、ステップ４０８へ進み、判断部２２は、相応の指示を返信するようにしてもよい。
【００７０】
（マスター２の処理の第３の例の説明）
続いて、マスター２による並列分散処理方法の処理の第３の例を、図８を参照して説明する。まず、通信部２０は、各スレーブ１からの計測結果を受信する（ステップ５０１）。次に、通信部２０は、時間情報を利用するか否かを判断する（ステップ５０２）。ステップ５０２にて、時間情報を利用しないと判断した場合、通信部２０は、受信した計測結果と、当該計測結果の送信元のスレーブ１を識別する送信元ＩＤとを関連付け、集計結果として集計部２１に格納する（ステップ５０３）。次に、判断部２２は、通信部２０の一受信当たりの集計結果の統計処理、例えば平均値の算出を行う（ステップ５０４）。
【００７１】
ステップ５０２にて、時間情報を利用すると判断した場合、通信部２０は、受信した計測結果と、当該計測結果の送信元のスレーブ１を識別する送信元ＩＤと、当該計測結果を受信した時刻とを関連付け、集計結果として集計部２１に格納する（ステップ５０５）。図１３は、ステップ５０５の直後に、集計部２１に格納された集計結果のテーブル例を示す図である。次に、判断部２２は、時間当りの集計結果の統計処理、例えば平均値の算出を行う（ステップ５０６）。例えば図１３に示すテーブル例から、判断部２２は、並列分散処理システム４全体で１秒間に平均で１０個のタスクを処理できていることを判断する。
【００７２】
次に、判断部２２は、ステップ５０４または５０６の統計処理に基づいて、予測的な判断や処理を行う（ステップ５０８）。例えば、並列分散処理システム４全体で処理すべきタスクの総数が１０００個とする。図１３に示すテーブル例から、判断部２２は、１５秒間で１５０のタスクが処理済みであり、１秒あたり平均で１０個のタスクが処理されているため、全タスクを全て処理し終えるには、残り８５秒程度を要することが予測でき、例えば、判断部２２は、この予測結果を表示部２３に出力し、表示部２３が並列分散処理システム４のユーザへ当該予測結果を出力することが可能となる。次に、判断部２２は、送信元スレーブ１へ指示を返信する（ステップ５０５）。判断部２２は、予測に基づく判断に従って何かの具体的な処理を指示してもよいし、「特に何もしない」という指示でもよい。
【００７３】
以下、本実施形態の作用効果について説明する。
【００７４】
本実施形態の並列分散処理方法によれば、スレーブ１にて、並列分散処理システム４内で予め定められた計測単位を用いてタスクの実行が計測され、計測結果がマスター２に送信されることで、マスター２は、外部の監視コンピュータや監視プログラムを導入することなく、各スレーブ１の処理効率を把握することができる。そして、マスター２は、各スレーブ１の処理効率に基づいて各スレーブ１に指示を出し、各スレーブ１は指示に基づいて動作を制御することで、マスター２は、各スレーブ１の処理効率に基づき、並列分散処理システム４全体の動作を動的に制御することができる。
【００７５】
また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０による送信元のスレーブ１からの一受信当たりの集計結果と、通信部２０による送信元のスレーブ１以外のスレーブ１からの一受信当たりの集計結果とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。かかる場合、マスター２は、対象スレーブ１の一受信当たりの集計結果と、他のスレーブ１の一受信当たりの集計結果との比較結果に基づいて、対象スレーブ１に指示を出すことができるため、より正確に対象スレーブ１の処理効率を把握することができると共に、より効率的に並列分散処理システム４全体の動作を動的に制御することができる。
【００７６】
また、通信部２０は、マスター２が、送信元のスレーブ１からの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスター２の集計部２１に格納し、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０による送信元のスレーブ１からの一受信の集計結果の単位時間当たりの値と、通信部２０による送信元のスレーブ１以外のスレーブ１からの一受信の集計結果の単位時間当たりの値とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。かかる場合、マスター２は、対象スレーブ１の一受信の集計結果の単位時間当たりの値と、他のスレーブ１の一受信の集計結果の単位時間当たりの値との比較結果に基づいて、対象スレーブ１に指示を出すことができるため、より正確に対象スレーブ１の処理効率を把握することができると共に、より効率的に並列分散処理システム４全体の動作を動的に制御することができる。
【００７７】
また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、送信元のスレーブ１の全ての集計結果の平均値と、送信元のスレーブ１以外のスレーブ１の全ての集計結果の平均値とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。かかる場合、マスター２は、対象スレーブ１の全ての集計結果の平均値と、他のスレーブ１の全ての集計結果の平均値との比較結果に基づいて、対象スレーブ１に指示を出すことができるため、より正確に対象スレーブ１の処理効率を把握することができると共に、より効率的に並列分散処理システム４全体の動作を動的に制御することができる。
【００７８】
また、通信部２０は、マスター２が、送信元のスレーブ１からの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスター２の集計部２１に格納し、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、送信元のスレーブ１の全ての集計結果の単位時間当たりの値の平均値と、送信元のスレーブ１以外のスレーブ１の全ての集計結果の単位時間当たりの値の平均値とを比較し、比較結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。かかる場合、マスター２は、対象スレーブ１の全ての集計結果の単位時間当たりの値の平均値と、他のスレーブ１の全ての集計結果の単位時間当たりの値の平均値との比較結果に基づいて、対象スレーブ１に指示を出すことができるため、より正確に対象スレーブ１の処理効率を把握することができると共に、より効率的に並列分散処理システム４全体の動作を動的に制御することができる。
【００７９】
また、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０によるスレーブ１からの一受信当たりの集計結果の、全てのスレーブ１に関する集計結果に対して統計処理を行い、統計処理結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。かかる場合、マスター２は、スレーブ１からの一受信当たりの集計結果の、全てのスレーブ１に関する集計結果に対しての統計処理結果に基づいて、各スレーブ１に指示を出すことができるため、より正確に各スレーブ１の処理効率を把握することができると共に、より効率的に並列分散処理システム４全体の動作を動的に制御することができる。
【００８０】
また、通信部２０は、マスター２が、送信元のスレーブ１からの前回の計測結果の受信からの経過時間を更に関連付け、集計結果として当該マスター２の集計部２１に格納し、判断部２２は、マスター２が、集計部２１に格納された集計結果のうち、通信部２０によるスレーブ１からの一受信の集計結果の単位時間当たりの値の、全てのスレーブ１に関する値に対して統計処理を行い、統計処理結果に基づいて送信元のスレーブ１に対する指示情報を生成し、送信元のスレーブ１に送信してもよい。かかる場合、マスター２は、スレーブ１からの一受信の集計結果の単位時間当たりの値の、全てのスレーブ１に関する値に対しての統計処理結果に基づいて、各スレーブ１に指示を出すことができるため、より正確に各スレーブ１の処理効率を把握することができると共に、より効率的に並列分散処理システム４全体の動作を動的に制御することができる。
【００８１】
また、判断部２２は、集計部２１に格納された集計結果のうち、通信部２０におけるスレーブ１からの一受信当たりの集計結果の、全てのスレーブ１に関する平均値が、予め定められた閾値を超えた場合に、マスター２が、当該マスター２の負荷を下げる旨のスレーブ１に対する指示情報を生成し、当該スレーブ１に送信してもよい。かかる場合、マスター２は、例えば、マスター２の能力を超えた台数のスレーブ１が接続されていることを検出できるようになり、マスター２の能力、または能力に応じて設定された条件に応じてスレーブ１の接続台数を動的に制御することが可能となる。
【００８２】
マスター２は並列分散処理システム４内の全スレーブ１を管理する必要があるが、マスター２の処理能力も有限であるため、際限なく多数のスレーブ１を管理できるわけでない。従って、マスター２の能力を超過した数のスレーブ１の管理を要求された場合、マスター２がマスター２自身の負荷を監視することでそのことを検出し、適切な振る舞いを選択することができる。例えば、マスター２は、処理効率の低いスレーブ１を停止させ、マスター２が適切に管理できる範囲でベストな並列分散処理システム４を維持すること等が挙げられる。
【００８３】
また、本実施形態の並列分散処理システム４によれば、マスター２は、並列分散処理システム４全体の処理効率を把握した上で、予測的な動作、例えば、全タスクの完了予測時刻をユーザへ提示すること等を行うことができる。
【００８４】
本実施形態の並列分散処理システム４の応用事例としては、従来の並列分散処理システムにおいて、外部の監視コンピュータや監視ソフトウェアの助けを借りず、マスター２が各スレーブ１の処理効率を監視したり、マスター２がマスター２自身の負荷の程度を監視したり、マスター２が並列分散処理システム４全体の処理効率を把握して並列分散処理システム４全体の動作を予測的に判断したりして、スレーブ１に対する指示を生成し、並列分散処理システム４全体の振る舞いを制御するために用いることができる。
【００８５】
以上の通り、本実施形態の並列分散処理システム４によれば、外部の監視コンピュータや監視プログラムを導入することなく、マスター・スレーブ型システムにおいて、各スレーブ１の処理効率をマスター２が把握することができ、その情報を、例えばタスクの各スレーブ１への割り当て（スケジューリング）に役立てることができる。また、マスター２の能力を超えた台数のスレーブ１が接続されていることを、マスター２自身が検出できるようになり、例えば、マスター２の能力（もしくは能力に応じて設定された条件）に応じてスレーブ１の接続台数を動的に制御することが可能となる。更に、各スレーブ１の処理効率をマスター２が把握できることを応用して、並列分散処理システム４全体の動作に関する予測を立てることができ、例えば、全タスクが完了するまでの予測時間を利用者へ提示する、などのサービスを提供して、スレーブ１に対して予測に基づく指示を与えることができるようになる。
【符号の説明】
【００８６】
１…スレーブ、２…マスター、３…ネットワーク、４…並列分散処理システム、１０…処理部、１１…格納部、１２…報告部、１３…制御部、２０…通信部、２１…集計部、２２…判断部、２３…表示部。
【図１】
2013088863.tif 000003
【図２】
2013088863.tif 000004
【図３】
2013088863.tif 000005
【図４】
2013088863.tif 000006
【図５】
2013088863.tif 000007
【図６】
2013088863.tif 000008
【図７】
2013088863.tif 000009
【図８】
2013088863.tif 000010
【図９】
2013088863.tif 000011
【図１０】
2013088863.tif 000012
【図１１】
2013088863.tif 000013
【図１２】
2013088863.tif 000014
【図１３】
2013088863.tif 000015