(57)【特許請求の範囲】
【請求項１】
タスクを複数のサブタスクに分割して、分割されたサブタスクを実行する並列計算機において、
上記タスクをプロセッサで実行可能な複数のサブタスクに分割するタスク分割手段と、
上記プロセッサの動作周波数に基づくサブタスクの処理時間に関する情報を保持するサブタスク情報ファイルと、
上記タスク分割手段により分割されたサブタスクを実行する複数のプロセッサと、
上記プロセッサの動作周波数に基づくサブタスクの処理時間に関する情報と、予め定められる上記タスクの処理制限時間と、上記複数のプロセッサ間の通信処理に要する時間に関する情報と、上記プロセッサの動作周波数に基づく消費電力量に関する情報とに基づいて、プロセッサの数と動作周波数とを選択し、上記タスク分割手段により分割されたサブタスクをプロセッサに分配するプロセッサ制御手段と、
を備え、
上記プロセッサ制御手段は、上記サブタスク情報ファイルからプロセッサの動作周波数に基づくサブタスクの処理時間に関する情報を取得して、標準動作状態よりも高速に動作する高速動作状態にした全てのプロセッサで全てのサブタスクを処理した場合のタスク処理時間を算出し、そのタスク処理時間がタスクの処理制限時間よりも長い場合には、上記全てのプロセッサに上記全てのサブタスクを分配する
ことを特徴とする並列計算機。
【請求項２】
タスクを複数のサブタスクに分割して、分割されたサブタスクを実行する並列計算機において、
上記タスクをプロセッサで実行可能な複数のサブタスクに分割するタスク分割手段と、
上記プロセッサの動作周波数に基づくサブタスクの処理時間に関する情報を保持するサブタスク情報ファイルと、
上記タスク分割手段により分割されたサブタスクを実行する複数のプロセッサと、
上記プロセッサの動作周波数に基づくサブタスクの処理時間に関する情報と、予め定められる上記タスクの処理制限時間と、上記複数のプロセッサ間の通信処理に要する時間に関する情報と、上記プロセッサの動作周波数に基づく消費電力量に関する情報とに基づいて、プロセッサの数と動作周波数とを選択し、上記タスク分割手段により分割されたサブタスクをプロセッサに分配するプロセッサ制御手段と、
を備え、
上記プロセッサ制御手段は、上記サブタスク情報ファイルからプロセッサの動作周波数に基づくサブタスクの処理時間に関する情報を取得して、標準動作状態よりも高速に動作する高速動作状態にした全てのプロセッサで全てのサブタスクを処理した場合のタスク処理時間を算出し、そのタスク処理時間がタスクの処理制限時間よりも短く、標準状態にした１つのプロセッサで全てのサブタスクを処理した場合のタスク処理時間を算出し、そのタスク処理時間がタスクの処理制限時間よりも長い場合には、上記プロセッサの動作周波数に基づくサブタスクの処理時間に関する情報と、プロセッサの動作周波数に基づく消費電力量に関する情報と、複数のプロセッサ間の通信処理に要する時間に関する情報とに基づき消費電力量を計算して、消費電力量を抑えるようにプロセッサの数と動作周波数とを選択し、上記サブタスクをプロセッサに分配する
ことを特徴とする並列計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、単一のタスクを複数の実行単位に分割して、各実行単位を複数のプロセッサで並列に処理する並列計算機に係るものであり、並列計算機全体の処理能力を維持する一方で、消費電力を節約する技術に関する。【０００２】
さらにこの発明は、各タスクに課された処理完了時間に関する制約を満たしつつ、並列計算機全体の消費電力を節約する技術に関する。
【背景技術】
【０００３】
携帯電話やノートパソコンを始めとする携帯情報機器は軽量であることが求められる。しかしながら、これらの機器では、長時間に亘り動作周波数の高いプロセッサを駆動するために大容量バッテリを内蔵することが多い。容量の大きいバッテリは重量もかさむため、携帯情報機器を軽量化する上で大きな問題となる。【０００４】
バッテリの容量を小さくして軽量化する一方で、持続時間を延長するために、処理の種類や内容に応じてプロセッサの動作周波数を変更する技術が知られている。これは、プロセッサを低い動作周波数で動作させることによって、消費電力を節約することができるという原理に基づいている。【０００５】
ところで携帯情報機器においても、マルチメディアデータ処理のように時間的制約を有する処理を行う要求があり、さらには組み込みシステムのように実時間処理が要求される場合が多い。このように処理時間に制約を有する処理を目的としながら動作周波数を適宜変更する省電力技術として、例えば日本国特開２００２−９９４３２（以下、特許文献１とする）が知られている。【０００６】
この技術は、処理時間に制約のある各タスクの処理時間要求を満たすかどうかを判断しながらタスクのスケジューリングを行っていき、さらに全体のタスクの処理時間要求に余裕がある場合にはプロセッサの動作周波数や電源電圧を変更して省電力化するというものである。【０００７】
また処理を高速化する技法としては、プロセッサを高い動作周波数で動作させることの他に、複数のプロセッサを組み合わせて並列処理する方法もよく用いられる。このようなマルチプロセッサシステムを構成する各プロセッサの動作周波数を制御することで省電力化を図る技術としては、例えば日本国特開２００２−２１５５９９（以下、特許文献２とする）が知られている。【０００８】
特許文献２における方法は、複数のプロセッサを用いて複数のタスクを処理する上において、一部のプロセッサが他のプロセッサよりも早く処理を完了する場合に、そのプロセッサの動作周波数や電源電圧を他のプロセッサの処理完了時間に応じて低く抑えることで、消費電力の低減を図るものである。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献２における方法で基準となるのは他のプロセッサの処理完了時間であって、処理自体の時間的制約が基準となるものではない。ゆえに特許文献２に示される方法を処理に時間的制約を有するシステムに適用することはできない。【００１０】
一方、特許文献１における方法は、単一のプロセッサから構成されたシステムを前提とするものであり、マルチプロセッサシステムに適用する場合は、最小処理単位であるタスク相互の間に依存関係が全くないか、依存関係による影響を無視することができる、という条件を満たさなければ適用することができないことが明らかである。【００１１】
並列計算機の分野では、各プロセッサが協調して単一の問題（タスク）を解決する並列演算アルゴリズムが広く研究されてきている。しかしながら、特許文献１の方法、あるいは特許文献１の方法と特許文献２の方法とを組み合わせても、これらの研究成果を利用することができないのである。【００１２】
この発明はこのような課題を解決するためになされたもので、消費電力の低減を図りつつ要求された処理時間内に単一のタスクを並列処理によって完了させる計算機を提供することを目的としている。
【課題を解決するための手段】
【００１３】
この発明に係る並列計算機は、タスクを複数の処理単位に分割して、分割された処理単位を並列に実行する並列計算機において、
上記タスクを個別プロセッサで実行可能な複数の処理単位に分割し、分割された処理単位を複数のサブタスクとして出力するタスク分割手段と、
上記タスク分割手段により分割されたサブタスクの属性情報を保持するサブタスク属性情報ファイルと、
消費電力量を外部から制御しうるように構成され、上記タスク分割手段により分割されたサブタスクを実行する複数のプロセッサと、
上記サブタスク属性情報ファイルが保持するサブタスクの属性情報に基づいて、上記タスク分割手段により分割されたサブタスクを上記複数のプロセッサに分配してそのサブタスクの実行を指示するとともに上記複数のプロセッサの消費電力量を制御するプロセッサ制御手段と、
を備えたものである。【００１４】
なお上記において、サブタスクという概念には、タスクを構成する命令コード列の一部を分割してなる部分的命令コード列は含まれることはいうまでもないが、これにとどまるものではなく、タスクを構成する命令コード自体を分割するのではなく、タスクの処理対象であるデータを複数に分割することで処理単位を複数に分けたものであってもよい。
【発明の効果】
【００１５】
このように、この発明に係る並列計算機によれば、タスクから分割されたサブタスクの属性情報に基づいてサブタスクを複数のプロセッサに分配しながらそれぞれのプロセッサの消費電力量を制御することとしたので、タスクの実行時間の制約を満たしつつ、消費電力量の削減を達成することができる。
【図面の簡単な説明】
【００１６】
【図１】この発明の実施の形態１に係る並列計算機の構成を示すブロック図、
【図２】この発明の実施の形態１に係る並列計算機のプロセッサの特性を示す図、
【図３】この発明の実施の形態１に係る並列計算機のフローチャート、
【図４】この発明の実施の形態１に係る実行方式を選択する方法を説明するための図、
【図５】各種実行方式を選択する上で、考慮される境界値の関係を示した図、
【図６】プロセッサ数と消費電力との関係を示した図、である。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
第１図は、この発明の実施の形態１による並列計算機の構成を示すブロック図である。図において、タスク入力端１０は、この並列計算機に処理させるタスクを投入する入力端である。ここで、タスクとは中央演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：以下、ＣＰＵと記する）内部における仕事の単位をいう。またここでいう仕事とは、計算機の命令コードを複数個組み合わせて構成される所定の処理の単位であって、計算機のオペレータやシステム管理者からみて分かりやすく、あるいは扱いやすくなるように、という観点から、タスクの大きさが定められることが多い。しかしどのような処理単位で１つのタスクを構成するようにしても、この発明の特徴が失われることはないのである。【００１８】
また図においては、タスク入力端１０を設けることによって、外部からタスクを入力するような構成を想定している。しかしながら、この計算機がオペレーティングシステムの制御の元に、自律的に外部の記憶装置に記憶されているタスクを取得するような構成としてもよい。このような構成を有する計算機システムはきわめてありふれているので、ここで改めて説明を要するものではない。【００１９】
タスク分割手段１１は、タスク入力端１０から投入された単一のタスクを複数のサブタスクに分割する部位である。【００２０】
サブタスク属性情報ファイル１２は、各サブタスクについての付加情報を記憶するファイルであって、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＲＡＭ）や固定ディスク装置その他の記憶装置や記憶素子、あるいは記憶回路によって記憶されるデータである。なお、サブタスク属性情報ファイル１２だけが物理的に単独で存在している必要はなく、例えばタスク入力端１０から投入されるタスクのプログラム実行可能ファイル（命令コードと静的データとが記憶されているバイナリ形式のプログラムファイル）中に記憶するようにしておき、これをサブタスク属性情報ファイル１２として扱うような構成を採用してもよいのである。【００２１】
プロセッサ制御手段としての制御用プロセッサ１３は、タスク分割手段１１が分割したサブタスクを、サブタスク属性情報ファイル１２を参照しながら、演算用プロセッサ１４−１〜１４−Ｎからなる複数のプロセッサに分配した上で、サブタスクが分配されたプロセッサにサブタスクの処理を指示する部位である。加えて、制御用プロセッサ１３は、演算用プロセッサ１４−１〜１４−Ｎの消費電力を制御する特徴を有しており、タスクの実行時間の制約を満たしつつ消費電力の低減化を図るのである。【００２２】
なお、サブタスクの構成としてはタスクの命令コード列を、より小さなステップ数からなる命令コード列に分割する構成と、タスクの処理対象となるデータを、より小さなサイズのデータに分割する構成とが考えられる。命令コード列を分割してサブタスクを構成する場合には、サブタスクを実行する、と表現すべきであり、データを分割してサブタスクを構成する場合にはサブタスクを処理する、と表現すべきであるが、ここでは表記を簡潔にするために、一律に「サブタスクを処理する」という表現を用いることとする。しかし「サブタスクを処理する」という表現には「サブタスクを実行する」という意味も含むものとする。【００２３】
演算用プロセッサ１４−１〜１４−Ｎは、タスク分割手段１１によって分割された各サブタスクを処理する演算装置又は回路である。さらに演算用プロセッサ１４−１〜１４−Ｎは外部から消費電力を制御できるようになっている。消費電力を制御する方法としては、演算用プロセッサ１４−１〜１４−Ｎ自体が直接的に消費電力を変更するようなインターフェースを備えており、このインターフェースを介して消費電力を変更する、というようになっていてもよいし、さらには、外部から入力されるクロック信号に基づいて各サブタスクの命令コードをデコードして実行するようになっている場合に、このクロック信号の変更を通じて消費電力を変更する、というものでも構わない。【００２４】
第２図は、演算用プロセッサ１４−１〜プロセッサ１４−Ｎの特性の例を示した図である。図のように演算用プロセッサ１４−１〜プロセッサ１４−Ｎは”高速動作状態”、”標準動作状態”、”遊休状態”の少なくとも３つの動作状態を選べるようになっている。高速動作状態にある場合、演算用プロセッサ１４−１〜プロセッサ１４−Nは、３８０MHｚの動作周波数によって、１．８Vの電圧で動作し、０．５Wの消費電力を消費する。また、標準動作状態においては、演算用プロセッサ１４−１〜プロセッサ１４−Nは、１５２MHｚの動作周波数と１．０Vの電圧で動作し、その消費電力は０．０５３Wとなっている。さらには、遊休状態で動作する場合、動作周波数は３３MHzであり、電圧は１．０Ｖ、消費電力は０，０１１５Ｗとなっている。【００２５】
この図に示される特性からも分かるように、電子回路では一般に、動作周波数を高くするにつれて、単位時間あたりの消費電力が高くなることが知られている。消費電力Ｐと動作周波数Ｆ、および電源電圧Ｖとの関係は、リーク電力を無視した場合、式（１）によって与えられる。ここで、ｔは信号遷移率であり、Ｃは静電容量である。【００２６】
Ｐ＝ｔ・Ｃ・Ｆ・Ｖ２                （１）【００２７】
なお、演算用プロセッサ１４−１〜１４−Ｎは、例示として”高速動作状態”、”標準動作状態”、”遊休状態”からなる３つの動作状態を推移するな構成を有しているが、この発明において使用することのできるプロセッサはこのような例に限定されるものではない。【００２８】
計算機が置かれる環境の気温によってクロックの速度は変動しうるので、実用的な市販プロセッサは外部クロックの変動に対するマージンを有している。このような市販プロセッサは外部クロックを高速にするとその分速く動作するようになり、低速にするとその分遅く動作するようになる。そこで、上述の例に示したようなプロセッサとは異なり、積極的に複数の動作状態をサポートしていない市販プロセッサを用いた場合であっても、外部クロック変動に対するマージンを積極的に利用することで、この発明の特徴を利用することが可能となるのである。最近では、消費電力を低減することができるプロセッサはモバイル用途で広く使用されており、技術的にも公知となっているので、ここではこれ以上詳細には触れないこととする。【００２９】
なお演算用プロセッサ１４−１〜１４−Ｎは、それぞれが例えば独立したＬＳＩ部品であると限定的に解釈してはならない。例えばベクトルプロセッサは単体の演算装置でありながら、複数の演算を並列実行することができる。第１図に示した計算機の構成はこのようなものも含むのである。また制御用プロセッサ１３と演算用プロセッサ１４−１〜１４−Nとを、パソコンやワークステーションのような完成されたコンピュータで置き換えることも可能なことはいうまでもない。すなわち、この発明は複数のコンピュータを組み合わせた並列演算システムにも適用可能である。【００３０】
なお、タスク分割手段１１は独立した制御回路又は制御装置として構成してもよいし、制御用プロセッサ１３によって実行されるコンピュータプログラムとして構成するようにしても構わない。【００３１】
また、制御用プロセッサ１３を一般的なプロセッサアーキテクチャにおけるフェッチ回路及びデコーダとみなし、タスクとサブタスクとを、そのプロセッサにおける機械語レベルの命令コードとマイクロコードとみなせば、第１図に示したシステム全体が単一のプロセッサを表すものとみなすこともできる。この場合、ベクトル演算による配列処理をタスクとみなし、配列の各要素の処理を複数のサブタスクとみなすこととなる。さらにタスク分解手段１１に相当するのはベクトル化コンパイラと呼ばれるベクトル演算命令を生成する最適化処理に対応したコンパイラ（言語処理プロセッサ）と、ベクトル演算命令をマイクロコードにデコードするデコーダとなるであろう。このようなコンパイラ技術はすでに公知である。またこのようなプロセッサアーキテクチャのレベルで定まる処理単位ではなく、プロセスとスレッドの関係をタスクとサブタスクの関係に対応させて考えてもよい。この場合は、システムの設計に基づいてタスクとサブタスクとの関係が柔軟に定義される。このように、第１図の構成はさまざまなレベルで適用することができるのである。【００３２】
続いて、この発明の実施の形態１による並列計算機の動作について説明する。第３図は、この並列計算機の動作を示すフローチャートである。タスク入力端１０から、実行すべきタスクが投入されると、タスク分割手段１１はタスクをサブタスクに分割する（ステップＳ１０１）。続いて制御用プロセッサ１３は、タスクの処理制限時間Ｔを取得する（ステップＳ１０２）。処理制限時間Ｔはシステムによって予め定められる値である。【００３３】
例えばプロセスとスレッドの場合は、利用者あるいはシステムの目的からＴが決定される。システムが一定時間（サンプリング時間）ごとに発生する入力信号（例えば何らかの観測値など）の信号処理を行うことを目的としているのであれば、これら信号を取得する周期であるサンプリング時間が処理制限時間Ｔに該当するであろう。【００３４】
また、外部仕様からは処理制限時間が定まらずに、並列計算機の構成から処理制限時間Ｔが決定される場合もある。例えば、外部クロックで１クロック内にほとんどの命令を完了するようなプロセッサを構成する場合、１外部クロックに相当する長さの時間が処理制限時間Ｔになる。【００３５】
続いて、制御用プロセッサ１３は、演算用プロセッサ１４−１〜１４−Ｎを高速動作状態に設定した場合のタスクの処理時間ｔminを算出する（ステップＳＴ１０３）。この処理を実現するためには、各サブタスクの処理完了見込み時間が予め分かっていることが要求される。そこで、例えば演算用プロセッサ１４−１〜１４−Ｎのいずれかのプロセッサによる各サブタスクの高速動作状態と標準状態における処理時間を予め計測しておき、サブタスク属性情報ファイルに記憶させておく。そして制御用プロセッサ１３は、サブタスクの種類に応じてそのサブタスクの処理時間を取得し、タスクの処理時間ｔminを算出するのである。【００３６】
なお、サブタスクの処理時間を高速動作状態と標準動作状態のいずれか一方のみについてのみ測定しておき、測定した処理時間の動作状態の動作周波数と他方の動作状態の動作周波数との比率を乗じて、他方の処理時間を概算するようにしても構わない。【００３７】
この結果、ｔminが処理制限時間Ｔを下回る場合（ステップＳＴ１０４：Ｙｅｓ）は演算用プロセッサ１４−１〜１４−Ｎの並列処理能力が、処理すべきサブタスクの処理量を上回ることを意味しており、処理能力に余裕があるのでステップＳＴ１０５以降の消費電力節約処理に移行する。【００３８】
一方、ｔminが処理制限時間Ｔを下回ることがない場合は、消費電力節約よりも処理の高速化に重点を置く必要があるので、演算用プロセッサ１４−１〜１４−Ｎを高速動作状態に設定する（ステップＳＴ１０６：実行方式１）。そしてステップＳＴ１１１に進む。なおステップＳＴ１１１以降の処理については後述する。【００３９】
ステップＳＴ１０５において、制御用プロセッサ１３は、演算用プロセッサ１４−１〜１４−Ｎのいずれか一つを標準動作状態に設定し、標準動作状態に設定したプロセッサのみですべてのサブタスクを実行した場合のタスクの処理時間ｔstdを算出する。この場合もステップＳＴ１０３におけるｔminの算出と同じようにサブタスクの処理時間に基づいてｔstdが算出される。そしてこのｔstdがＴを上回る場合（ＳＴ１０７：Ｙｅｓ）は、演算用プロセッサ１４−１〜１４−Ｎのいずれか一つのプロセッサのみによる処理では処理制限時間Ｔ以内にタスクを完了させるという要求を満たすことができないので、ステップＳＴ１０９以降の複数のプロセッサを用いた並列処理に進む。【００４０】
一方、ｔstdがＴを上回ることがない場合、１つのプロセッサのみでも処理制限時間Ｔ以内にタスクを完了させるという要求を満たしうるので、演算用プロセッサ１４−１〜１４−Ｎのうちのいずれか一つのプロセッサ、例えば演算用プロセッサ１４−１を標準動作状態に設定する（ステップＳＴ１０８）。加えて、演算用プロセッサ１４−１を除いた他のプロセッサ、すなわち演算用プロセッサ１４−２〜１４−Ｎを遊休状態に設定する。【００４１】
こうすることにより、所定の処理制限時間以内にタスクの処理を完了させるという実時間処理に対する要求を満足させながら、消費電力の削減をも同時に達成できるのである。
一方、ｔstdがＴを上回る場合、サブタスクの性質と各演算用プロセッサの性質（動作周波数、消費電力）に基づいて、次のいずれかの処理方式（実行方式３と実行方式４）を選択し、その処理方式に基づいてサブタスク処理に用いる演算用プロセッサの個数ｎと動作周波数を算出する。（ステップＳＴ１０９）。【００４２】
実行方式３：
演算用プロセッサ１４−１〜１４−Ｎのうちの一つの演算用プロセッサを選択し、選択した演算用プロセッサの動作周波数を高速動作状態の動作周波数βに設定して、この演算用プロセッサによりすべてのサブタスクを実行する。選択された演算用プロセッサ以外の演算用プロセッサは遊休状態に設定される。【００４３】
実行方式４：
演算用プロセッサ１４−１〜１４−Ｎのうちのｎ個の演算用プロセッサを選択し、選択した演算用プロセッサの動作周波数を標準動作状態の動作周波数αとして、選択されたｎ個（２≦ｎ≦Ｎ）の演算用プロセッサにより実行する。選択されたｎ個の演算用プロセッサ以外の演算用プロセッサは遊休状態に設定される。【００４４】
実行方式５：
演算用プロセッサ１４−１〜１４−Ｎのうちのｍ個（ｍ＜ｎ）の演算用プロセッサを選択し、選択したプロセッサの動作周波数を高速動作状態の動作周波数βとして、選択したｍ個（２≦ｍ＜ｎ≦Ｎ）のプロセッサにより実行する。選択されたｍ個のプロセッサ以外は遊休状態に設定する。【００４５】
次に実行方式３、実行方式４、実行方式５のいずれかの実行方式を選択する方法について説明する。【００４６】
第４図は、処理制約時間（Ｔ）内の実行方式３と実行方式４のタイムチャート例を示したものである。両者の違いは太線枠内部分であるため、この部分に関しての消費電力量を比較すれば良い。第４図の場合では、処理制約時間（Ｔ）は、実行方式３より実行方式４の処理時間の方が大きいため、式（２）のように示すことができる。ここで、Ｔc（=ＴS＋ＴR）は１回の通信処理に要する時間であり、送信処理時間ＴSと受信処理時間ＴRを加えたものである。また、Tαは、1つの処理データを1つのプロセッサで動作周波数αで処理した場合の実行時間である。また、ｎはプロセッサ数を示す。【００４７】
Ｔ＝（ｎ−１）・ＴC +Ｔα／ｎ                    （２）【００４８】
この場合の実行方式３による消費電力量Ｃ2[W・s]を示したものが式（３）である。ここで、式（３）の第1項は動作周波数βでデータ処理を行うのに要する消費電力量であり、残りの第2項は、遊休状態であるプロセッサ（第４図：演算用プロセッサ１４−１〜演算用プロセッサ１４−Ｎ）とデータ処理が終わり遊休状態となった期間のプロセッサ（第４図：演算用プロセッサ１４−１）の消費電力量を示したものである。また、ｋ＝α／βである。【００４９】
Ｃ2＝Ｐβ・ｋ・Ｔα ＋ ｋ・Ｐγ・Ｔα・（ｎ−１）
＋ ｎ・Ｐγ・［Ｔα・（１／ｎ−ｋ）＋（ｎ−１）・Ｔc］
＝Ｐβ・ｋ・Ｔα ＋ Ｐγ・［（１−ｋ）・Ｔα ＋ ｎ・（ｎ−１）・Ｔc］（３）【００５０】
同様に、この場合の実行方式４による消費電力量Ｃ3[W・s]を示したものが式（４）である。ここで、式（４）の第1項は通信処理に要する消費電力量と全部の遊休状態の消費電力量とを加えたものであり、第2項はデータ処理に要する消費電力量を示したものである。【００５１】
Ｃ3＝（ｎ−１）・Ｐα・Ｔc ＋ （１／ｎ）・Ｐα・Ｔα
＋(ｎ−１)・［Ｐα・Ｔc ＋(１／ｎ)・Ｐα・Ｔα＋(ｎ−２)・Ｐγ・Ｔc］
＝（ｎ−１）・［２・Ｐα ＋ （ｎ−２）・Ｐγ］・Ｔc ＋ Ｐα・Ｔα  （４）【００５２】
ここでＣ2＝Ｃ3とすると、式（３）と式（４）から式（５）を導出することができる。Ｃ2＝Ｃ3を満たす場合とは、これら２つの実行方式による消費電力が等しい場合であり、C２＝C3を満たす各パラメータの値が境界値となって、この境界値以外のパラメータ値をとる場合に、これらの実行方式のいずれか一方が有利となるのである。ここで、ρはデータ処理に対する通信処理の処理時間の比率（Ｔc／Ｔα）を表すものとする。【００５３】
ρ＝｛ｋ・Ｐβ−Ｐα ＋ Ｐγ・（１−ｋ）｝／｛２・（ｎ−１）（Ｐα−Ｐγ）｝  （５）【００５４】
この式（５）に基づいて求めたρと、実行方式２により選定した省電力実行のためのρ3とを比較すれば実行方式３と４の優劣が判定でき、ρ<ρ3であれば実行方式３を、ρ>ρ3であれば実行方式４を適用すればよいことが分かる。なお、ここまでの議論は、第４図に基づいて実行方式３よりも実行方式４の処理時間の方が大きい場合に関するものであるが、逆の場合でも、式（３）と式（４）は異なるものになるが、同じ式（５）が導出される。但し、ｎ＝２，３の場合は、送信処理時間Ｔsと受信処理時間ＴRの大小関係によっては、例えば、第４図で示した実行方式４の演算用プロセッサ１４−１にも遊休状態におかれてしまう場合がある。しかし、Ｔs＝ＴRと仮定すれば、ｎ＝２，３の場合でもρは式（５）によって与えられる。【００５５】
第５図は、式（５）の右辺における各パラメータに、第２図の各値を与えた場合の演算用プロセッサの個数(ｎ≧２)に対するρの値である。実行方式３と４、そして１と４の優劣は、対象とするタスクを解析し、実行方式４での省電力量のための最適なプロセッサ数とその場合のρの値が求まれば、第５図より判定できる。【００５６】
また、第６図は実行方式３が選定/実行された場合の実行方式4に対する消費電力量の比率（Ｅ3／Ｅ4）を、適当なρ（≦０．０５）に関して示したものである。なお、ρ≦０．０５であればプロセッサ数が２〜２０の範囲内では常に並列処理による効果が得られる。この結果（第６図）より、ρの値が一定の場合、プロセッサ数が多いほどこの比率は小さくなるが、逆にρが小さくなればこの比率は大きくなることが確認できる。したがって、演算用プロセッサの個数が増えるにつれρが小さくなるとすると、その状態の間はこの比率の下げ率はより小さくなることになる。【００５７】
このように通信処理と処理時間の比率、そして演算用プロセッサの動作周波数と消費電力に基づいて第５図のようなプロセッサ数とρの関係を予め求めておき、これを例えばサブタスク属性情報ファイル１２のような記憶領域に記憶させておく。そしてステップＳ１０９において、制御用プロセッサ１３において式（５）の関係から実行方式３及び実行方式４のいずれかの実行方式を選択するのである。【００５８】
なお、上記の例では、サブタスク間の依存関係として、サブタスクを演算用プロセッサ１４−１〜１４−Ｎに分配するための通信処理の例を説明したが、その他の依存関係に拡張して式（３）〜式（５）に相当する関係を導き出すことは容易である。【００５９】
また、実行方式３と５の選定に関しては、両方式とも同じ動作周波数であるため、両方式とも制限時間内に完了するのであれば、実行方式３が選定されることになる。使用するプロセッサ数が少ない方が省電力実行できるためである。【００６０】
さらに、実行方式４と５の選定に関しては、実行方式４の方が実行方式５より処理時間を要するとした場合、実行方式５の消費電力量Ｃ５は、次のようになる。【００６１】
Ｃ５＝（ｍ−１）・［２・Ｐβ＋（ｍ−２）・Ｐγ］・ｋ・Ｔｃ＋Ｐβ・Ｔβ
＋Ｐγ・｛Ｔｃ・［ｎ・（ｎ−１）−ｋ・ｍ・（ｍ−１）］＋Ｔα・（１−ｋ）｝（６）【００６２】
ここで、式（６）の第１項と第２項は、処理を割り付けられたプロセッサの消費電力量であり、第３項と第４項は、遊休状態のプロセッサと、処理を割り付けられたが処理が完了して待ち状態であるため、遊休状態となっているプロセッサの消費電力量を示したものである。【００６３】
したがって、実行方式４と実行方式５の消費電力量の差Ｃ５−Ｃ３は、【００６４】
Ｃ５−Ｃ３＝Ｔｃ・｛２・ｋ・（ｍ−１）（Ｐβ−Ｐγ）−２・（ｎ−１）・（Ｐα−Ｐγ）｝
＋Ｔα・｛ｋ・（Ｐβ−Ｐγ）−（Ｐα−Ｐγ）｝  （７）【００６５】
となる。この式（７）を用いて、実行方式４と実行方式５との優劣を判定すればよい。なお、実行方式５の方が実行方式４よりも処理時間を要するとした場合も、式（６）は異なるが同じ式（７）が導出されることになる。【００６６】
最後に制御用プロセッサ１３は、ステップＳ１０９において決定した実行方式に基づいて演算用プロセッサ１４−１〜１４−Ｎにサブタスクを分配し、サブタスクの実行を指示する（ステップＳＴ１１０）。【００６７】
このように、この発明の実施の形態１の並列計算機によれば、タスクをサブタスクに分割し、サブタスクの依存関係に基づいて実行方式１〜実行方式４のいずれかの実行方式を選択してタスクを並列実行することとしたので、タスクの処理制約時間を満たしつつ複数のプロセッサにおける消費電力の総計を低減することができるのである。【００６８】
なお上述の説明において、制御用プロセッサ１３はサブタスクの分配を行う専用のプロセッサであるとしたが、制御用プロセッサ１３は演算用プロセッサ１４−１〜１４−Ｎに比べて負荷が低い場合もあるので、演算用プロセッサ１４−１〜１４−Ｎの機能を兼用させるように構成してもよい。
【産業上の利用可能性】
【００６９】
この発明は、複数の計算機をクラスタ構成とした並列計算機システム若しくは複数の演算命令処理部を有する並列処理プロセッサなど、並列演算を目的とする計算機処理システムに広く適用することが可能である。
【図１】
0004082439.tif 000002
【図２】
0004082439.tif 000003
【図３】
0004082439.tif 000004
【図４】
0004082439.tif 000005
【図５】
0004082439.tif 000006
【図６】
0004082439.tif 000007