JPH08249294A - 並列計算機システム及びプロセッサ数制御方法 - Google Patents

並列計算機システム及びプロセッサ数制御方法

Info

Publication number
JPH08249294A
JPH08249294A JP7050790A JP5079095A JPH08249294A JP H08249294 A JPH08249294 A JP H08249294A JP 7050790 A JP7050790 A JP 7050790A JP 5079095 A JP5079095 A JP 5079095A JP H08249294 A JPH08249294 A JP H08249294A
Authority
JP
Japan
Prior art keywords
processors
parallel
computer system
program
parallel program
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.)
Pending
Application number
JP7050790A
Other languages
English (en)
Inventor
Norinobu Nakao
教伸 中尾
Hiroshi Date
博 伊達
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7050790A priority Critical patent/JPH08249294A/ja
Publication of JPH08249294A publication Critical patent/JPH08249294A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】並列プログラムの処理時間を最小にするように
使用プロセッサ数を制御する。 【構成】並列プログラム制御手段104によってプロセ
ッサ107〜109を用いて並列プログラムを起動す
る。実行状況監視手段105はその実行状況を監視し、
使用プロセッサ数決定手段106に入力する。使用プロ
セッサ数決定手段は実行状況から望ましい使用プロセッ
サ数を決定し、並列プログラム制御手段によって使用プ
ロセッサ数を変更後、並列プログラムを再開する。以上
の処理を繰り返すことにより、処理時間を最小にするプ
ロセッサ数に到達する。 【効果】本発明によれば、並列プログラムの処理時間を
短縮するように使用プロセッサ数を制御する並列計算機
システムを提供することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサとこ
れらのプロセッサ間の通信手段をもつ並列計算機システ
ムに関し、特に並列プログラムを実行する際の使用プロ
セッサ数制御機能をもつ並列計算機システムに関するも
のである。
【0002】
【従来の技術】従来、並列プログラムを実行する際に使
用プロセッサ数を決定する方法としては、使用プロセッ
サ数と処理時間の関係を統計的に求める方法と、ユーザ
が入力データ規模や並列プログラムの並列度・プロセッ
サ間通信の頻度を考慮して経験的に決定する方法があ
る。また、並列プログラムの最適プロセッサ数を求める
理論式が与えられている場合には、個々の入力データに
対し、理論式に現われるパラメータを推定することによ
り最適プロセッサ数を決定している。
【0003】
【発明が解決しようとする課題】上記の統計的に使用プ
ロセッサ数を決定する方法では、同じ入力データに対
し、幾通りかの使用プロセッサ数を用いて並列プログラ
ムを実行する必要があり、最適なプロセッサ数を決定す
るまでに時間を要するという問題があった。また、上記
の経験的に決定する方法では、決定されたプロセッサ数
が必ずしも望ましい使用プロセッサ数ではないという問
題がある。最適プロセッサ数の理論式が与えられている
場合でも、パラメータの推定が必要になるため、同様の
問題が生ずる。
【0004】本発明は上記問題点に鑑み、入力データ情
報や実行状況から使用プロセッサ数を制御することによ
り、並列プログラムの処理時間を短縮する、並列計算機
システムを提供することを目的とする。
【0005】
【課題を解決するための手段】前記目的達成のために本
発明は、任意個のプロセッサを使用可能な並列プログラ
ムを制御する並列プログラム制御手段と,並列プログラ
ム実行時の処理状況を監視する実行状況監視手段と,実
行状況監視手段から得られた情報より使用プロセッサ数
を決定する使用プロセッサ数決定手段を備える。
【0006】
【作用】上記のように構成された並列計算機システムの
作用を説明する。入力装置より入力された情報に基づい
て、並列プログラム制御手段により並列プログラムを起
動する。実行状況監視手段によって実行状況を監視し、
その情報を使用プロセッサ数決定手段に伝達する。使用
プロセッサ数決定手段はその情報を利用して、並列処理
の処理時間が短縮されるように使用プロセッサ数を決定
し、その使用プロセッサ数を並列プログラム制御手段に
伝達する。並列プログラム制御手段は実行中の並列プロ
グラムを中断し、使用プロセッサ数を使用プロセッサ数
決定手段で決定された使用プロセッサ数に変更し、並列
プログラムを再実行する。以上の処理を繰り返すことに
より、処理時間を最小にするプロセッサ数に到達し、並
列プログラムの処理時間を短縮できる。
【0007】
【実施例】以下、本発明に係わる並列計算機システムの
一実施例について説明する。
【0008】図1に、本実施例に係わる並列計算機シス
テムの構成例を示す。
【0009】図示するように、本実施例に係わる並列計
算機システムは、処理に必要な情報を入力する入力装置
101と,処理の結果を出力する出力装置102と,複
数のプロセッサ及び、これらのプロセッサ間を通信する
ための通信手段を用いて計算処理を行う計算装置103
から構成される。この計算装置103は、任意個のプロ
セッサを使用可能な並列プログラムを制御する並列プロ
グラム制御手段104と,並列プログラム実行時の処理
状況を監視する実行状況監視手段105と,実行状況監
視手段から得られた情報より使用プロセッサ数を決定す
る使用プロセッサ数決定手段106と,並列プログラム
の処理に使用される複数のプロセッサ107,108,
109から構成される。
【0010】入力装置101では、使用プロセッサ数制
御機能のパラメータや実行する並列プログラム名,実行
パラメータ,実行プログラムの扱うデータを入力する。
計算装置103の構成としては、密結合型ネットワーク
でもよいし、複数のワークステーションをイーサネット
で接続したネットワークのような疎結合型ネットワーク
でも構わない。また、ローカルメモリ型の並列計算機シ
ステムに限らず、共有メモリ型の並列計算機システムで
もよい。前記並列プログラム制御手段104,前記実行
状況監視手段105,前記使用プロセッサ数決定手段1
06は、計算装置内の一つあるいは複数のプロセッサに
対応してよい。複数のプロセッサ107,108,10
9の中で並列プログラム全体の管理を行うプロセスを持
つマスタープロセッサと,前記マスタープロセスを持た
ないスレーブププロセッサの区別があってもよい。
【0011】並列プログラム制御手段104は、並列プ
ログラムの起動・中断・再開などの制御,使用プロセッ
サ数の変更に関する処理を行う。これらの処理は、並列
プログラムを実行しているプロセスに向けて発せられる
ソフトウェア割り込みを用いて実現する方が望ましい。
また、並列プログラム制御手段104,実行状況監視手
段105は、並列計算機システムのオペレーティングシ
ステムあるいは並列プログラムを実行するプロセスとは
異なるプロセスにより行われる方が望ましい。ここで、
任意個のプロセッサを使用可能な並列プログラムについ
て説明する。この並列プログラムは、プログラム実行時
のパラメータによってユーザがプロセッサ数を指定でき
るプログラムで、プログラム起動時のみプロセッサ数を
指定可能な並列プログラムと、プログラム実行中でもユ
ーザあるいはプログラム外部よりプロセッサ数を変更可
能な並列プログラムがある。後者の実行中プロセッサ数
変更可能な並列プログラムは、プロセッサ数変更後にプ
ログラムを続行しても支障がないプログラムである。
【0012】以下に、従来の並列プログラムから、実行
中プロセッサ数を変更可能な並列プログラムに変換する
方法の一例を説明する。同期を取りながら処理を進める
並列プログラムの場合、変換前のプログラムに対し、同
期時にマスタープロセスがソフトウェア割り込み信号の
有無を確認し、使用プロセッサ数変更要求があれば使用
プロセッサの集合を変更後、使用プロセッサにデータを
分配、タスク割当てを行う処理を付加する。また、マス
タープロセスが非同期的にスレーブプロセスにタスクを
与え、処理結果を報告させる並列プログラムの場合、変
換前のプログラムに対し、マスタープロセスが定期的に
割り込み信号の有無を確認することにより、前記同期型
並列プログラムと同様に、実行中プロセッサ数変更可能
な並列プログラムに変換することができる。なお、この
従来の並列プログラムから実行中プロセッサ数を変更可
能な並列プログラムに変換する処理は、並列プログラム
コンパイル時に自動的に行うのが望ましい。
【0013】本実施例によれば、並列プログラムをコー
ディングする際に、使用プロセッサ数制御のための特別
なコーディングをする必要がないという効果がある。
【0014】図2に、本実施例における計算装置103
における処理手順の一例をフローで示す。
【0015】まず、ステップ201で、入力装置101
より使用プロセッサ数制御機能のパラメータや実行する
並列プログラム名,実行パラメータ,並列プログラムの
扱うデータを入力する。ステップ202で、使用プロセ
ッサ数の初期値を決定し、ステップ203で、並列プロ
グラム制御手段104によって並列プログラムを起動す
る。ステップ204で、並列プログラム実行中、実行状
況監視手段105によってプログラム実行状況を監視す
る。ステップ205で、実行状況監視手段105より得ら
れた情報を用いて使用プロセッサ数決定手段106によ
り次回プロセッサ数を決定する。ステップ206で使用
プロセッサ数を変更する必要があるか判定する。変更の
必要がない場合はステップ207に進み、並列プログラ
ムを続行し、以後プログラムが終了するまでプロセッサ
数を変更しない。使用プロセッサ数変更の必要がある場
合はステップ208に進み、並列プログラム制御手段10
4により実行中の並列プログラムを強制的に終了させ
る。ステップ209で使用プロセッサ数を変更後、ステ
ップ203に戻り新しい使用プロセッサ数を用いてプロ
グラムを再実行する。以後は、ステップ203,20
4,205,206,208,209を繰り返す。
【0016】なお、ステップ205の並列プログラムの
実行状況を監視する期間の基準としては、実行時間ある
いは区切りの良い処理単位が望ましい。
【0017】本実施例によれば、使用する並列計算機シ
ステムと、任意個のプロセッサを使用可能な並列プログ
ラムと、入力するデータに応じて、処理時間をほぼ最小
にするプロセッサ数を短時間で自動的に発見することが
できるため、並列プログラムの処理時間を短縮するとい
う効果がある。
【0018】図3に、本実施例における計算装置103
における処理手順の別の例として、実行中に使用プロセ
ッサ数変更可能な並列プログラムを対象にした場合の例
をフローで示す。
【0019】まず、ステップ301で、入力装置101
より使用プロセッサ数制御機能のパラメータや実行する
並列プログラム名,実行パラメータ,並列プログラムの
扱うデータを入力する。ステップ302で、使用プロセ
ッサ数の初期値を決定し、ステップ303で、並列プロ
グラム制御手段104によって並列プログラムを起動す
る。ステップ304で、並列プログラム実行中、実行状
況監視手段105によってプログラム実行状況を監視す
る。ステップ305で、実行状況監視手段105より得ら
れた情報を用いて使用プロセッサ数決定手段106によ
り次回プロセッサ数を決定する。ステップ306で使用
プロセッサ数を変更する必要があるか判定する。変更の
必要がない場合はステップ307に進み、並列プログラ
ムを続行し、以後プログラムが終了するまでプロセッサ
数を変更しない。使用プロセッサ数変更の必要がある場
合はステップ308に進み、並列プログラム制御手段20
1により実行中の並列プログラムを中断する。ステップ
309で使用プロセッサ数を変更、及び、使用プロセッ
サ数変更に伴うデータの再分配の処理を行った後、ステ
ップ310で新しい使用プロセッサ数を用いてプログラ
ムを再開する。以後は、ステップ304,305,30
6,308,309,310を並列プログラムが終了す
るまで繰り返す。
【0020】なお、ステップ306で、使用プロセッサ
数の変更が必要ない場合でも、ステップ304に戻り、
並列プログラムが終了するまで使用プロセッサ数の制御
を行ってもよい。
【0021】本実施例によれば、使用する並列計算機シ
ステムと、実行中使用プロセッサ数変更可能な並列プロ
グラムと、入力するデータに応じて、処理時間をほぼ最
小にする使用プロセッサ数を処理中に発見することがで
きるため、並列プログラムの処理時間を短縮するという
効果がある。また、並列プログラムの処理能率が実行中
に変化する場合には、並列プログラムが終了するまで使
用プロセッサ数を制御することによって、一定のプロセ
ッサ数を使う場合よりも処理時間が短縮できるという効
果がある。
【0022】図4に、本実施例に係わる使用プロセッサ
数決定手段106における処理手順の一例をフローで示
す。
【0023】ステップ401で、実行状況監視手段10
5により得られた現行プロセッサ数での処理量,処理時
間を入力する。ステップ402で、現行プロセッサ数で
の単位時間当たりの処理量を表す現行処理能率を計算す
る。ステップ403で、現行処理能率と前回プロセッサ
数での単位時間当たりの処理量を表す前回処理能率の差
が、あらかじめ与えられた誤差許容値Eより小さけれ
ば、ステップ404に進み、次回プロセッサ数を現行プ
ロセッサ数に決定する。そうでなければ、ステップ40
5に進み、現行処理能率と前回処理能率の大小関係を比
較する。現行処理能率が前回処理能率より大きい場合、
ステップ406に進み、次回プロセッサ数を前回使用プ
ロセッサ数変更と同符号の変更を行った値、即ち、前回
使用プロセッサ数変更で使用プロセッサ数を増加させて
いる場合には次回プロセッサ数を現行プロセッサ数より
増加させて、そうでない場合には次回プロセッサ数を現
行プロセッサ数より減少させた値に決定する。現行処理
能率が前回処理能率より小さい場合、ステップ407に
進み、次回プロセッサ数を前回使用プロセッサ数変更と
異符号の変更を行った値に決定する。
【0024】なお、処理量の例としては、プログラムの
ループ部分を繰り返す処理の場合には、繰り返し回数の
全使用プロセッサに関する和が考えられる。ループ繰り
返し回数以外では、プログラムで使用される関数やサブ
ルーチンに処理の重さを反映した値を与えておき、実行
された関数・サブルーチンに与えられた値の全使用プロ
セッサに関する和も考えられる。
【0025】また、ステップ406,407における使
用プロセッサ数の変更数は、現行処理能率と前回処理能
率の差を反映する方が望ましい。さらに、ステップ40
7における使用プロセッサ数の変更数は前回使用プロセ
ッサ数変更の変更数を越えないことが望ましい。
【0026】前回処理能率の初期値と前回プロセッサ数
変更の初期値として、例えば、それぞれ「0」,「使用
プロセッサ数1増加」としておけばよい。前回処理能率
の初期値に関して、使用プロセッサ数と処理能率の関係
が統計的にわかっている場合は、初期使用プロセッサ数
に対応する処理能率とすればよい。前回プロセッサ数変
更の初期値に関しては、使用プロセッサ数増加の幅はい
くつであってもよいし、減少させてもよい。
【0027】本実施例によれば、短時間で並列処理の効
率を正しく評価できるという効果と、それにより正確な
最適プロセッサ数を求めることができるという効果があ
る。図5に、本実施例に係わる使用プロセッサ数決定手
段106における処理手順の別の例をフローで示す。
【0028】ステップ501で、実行状況監視手段10
5により得られた現行プロセッサ数での処理時間、プロ
セッサ間通信時間を入力する。ステップ502で、現行
プロセッサ数での通信時間が処理時間に占める割合を表
す通信オーバーヘッド率を計算する。ステップ503
で、通信オーバーヘッド率とあらかじめ与えられた基準
値との差が、あらかじめ与えられた誤差許容値Eより小
さければ、ステップ504に進み、次回プロセッサ数を現
行プロセッサ数に決定する。そうでなければ、ステップ
505に進み、現行通信オーバーヘッド率と基準値の大
小関係を比較する。通信オーバーヘッド率が基準値より
小さい場合、ステップ506に進み、次回使用プロセッ
サ数を現行使用プロセッサ数より増加させる。通信オー
バーヘッド率が基準値より大きい場合、ステップ507
に進み、次回使用プロセッサ数を現行使用プロセッサ数
より減少させる。
【0029】なお、ステップ506,507における使
用プロセッサ数の変更数は、通信オーバーヘッド率と基
準値との差を反映する方が望ましい。
【0030】前記通信時間には、プロセッサ間で通信す
る時間と、送信・受信に使用されるCPU時間も含む。
したがって前記通信時間として、処理時間から、全ての
プロセッサのCPU時間の平均を引いたものと定義する
のが望ましい。
【0031】ここで、前記通信オーバーヘッド率を利用
した使用プロセッサ数決定方法の妥当性と、ステップ5
03における基準値の与え方について論ずるために、最
適プロセッサ数に関する解析を行う。
【0032】nを問題のサイズ、p(p>1)をプロセ
ッサ数とするとき、S(n)を逐次プログラムによるCP
U時間,D(n,p)を同じ処理を複数のプロセッサ上
で行うオーバーヘッド分のCPU時間の合計時間,C
(n,p)をプロセッサ間通信時間,L(n,p)を負
荷バランスのくずれによるオーバーヘッドの時間とす
る。なお、ここでの「時間」は、サイズnであるすべて
の入力に対して、プロセッサ数pで処理する際に必要な
時間の平均値あるいはその近似値が望ましい。
【0033】このとき並列プログラムの処理時間は、
【0034】
【数1】
【0035】で表される。さらに解析を単純化するため
に、次の仮定をおく。
【0036】
【数2】
【0037】
【数3】
【0038】
【数4】
【0039】数2,数3はD(n,p),C(n,p)
をpに関して一次関数で近似したものである。また、数
4は各プロセッサに対する負荷が均等に分散されている
という、理想的な状況を仮定している。
【0040】以上の仮定の下でnを固定したとき、T
(n,p)を最小にするプロセッサ数poptは、
【0041】
【数5】
【0042】で与えられる。これは問題のサイズが与え
られたときの最適なプロセッサ数を表す。
【0043】そのときの処理時間は、
【0044】
【数6】
【0045】である。
【0046】また、C2(n)+D1(n)及びD2(n)がS
(n)に比べて十分に小さいならば、最適プロセッサ数
における台数効果SP(n,popt(n))は
【0047】
【数7】
【0048】で近似される。これはどのような問題のサ
イズに対しても、台数効果の最大値が最適プロセッサ数
のほぼ半分であることを主張している。
【0049】さらに、通信時間と総処理時間の比
【0050】
【数8】
【0051】はnを固定した場合、pの単調増加関数
で、C2(n)及びC2(n)+D1(n)に比べて十分に小さ
いならば、pが最適なプロセッサ数の時、
【0052】
【数9】
【0053】と近似できる。
【0054】以上の並列プログラムの最適プロセッサ数
に関する解析により、並列プログラムを実行させた時の
通信時間と総処理時間との比、即ち、通信オーバーヘッ
ド率を求めることで、その際に使用したプロセッサ数が
最適かどうかを数9を用いて判定できる。
【0055】また、ステップ503における通信オーバ
ーヘッド率の判定基準値は、数9より、約0.5 とすれ
ば良いことが分かる。数8がpの単調増加関数であるこ
とから、通信オーバーヘッド率が基準値より小さければ
使用プロセッサ数pが最適プロセッサ数より小さいこ
と、逆に通信オーバーヘッド率が基準値より大きければ
使用プロセッサ数pが最適プロセッサ数より大きいこと
が分かる。
【0056】なお、基準値としては、0.5 よりやや小
さい値、例えば、0.3から0.5の間の適当な値を選択
するのが望ましい。なぜなら、使用プロセッサ数が最適
プロセッサ数前後の場合、プロセッサ間を結ぶ通信手段
の状況が通信時間に影響を与えやすく、使用プロセッサ
数が最適プロセッサ数より小さい場合よりも処理時間が
増加する可能性があるためである。一方、誤差許容値E
は、0.01から0.05の間の適当な値を選択するのが望
ましい。
【0057】本実施例によれば、実行状況監視手段10
5における監視すべき情報の入手が容易であるという効
果と、アプリケーション,並列計算機のハードウェアに
依存せず適用できるという効果がある。
【0058】ここで、前記最適プロセッサ数に関する解
析の妥当性を、論理回路の故障を検出するテストパター
ン生成問題を解く並列プログラムを例に検証する。並列
プログラムは、テストパターンを生成できない故障であ
る冗長故障を指摘する冗長故障判定プログラムと、各故
障に対してその故障を検出するパターンを求めるテスト
パターン生成プログラムの2種類である。
【0059】まず、図6に冗長故障判定プログラムの処
理手順の一例を示す。
【0060】各スレーブプロセスは回路全体の情報を保
持するとする。ステップ601で、マスタープロセスが
回路の信号線の集合を分割し、スレーブプロセスに割り
当てる。ステップ602,603で、各スレーブプロセ
スは割り当てられた信号線が固定値信号線かどうかを判
定する処理を並列に行う。ステップ604で、スレーブ
プロセスは固定値信号線判定結果をマスタープロセスに
報告し、マスタープロセスは報告された結果を集計し、
集計結果をスレーブプロセスに伝達する。ステップ60
5で、固定値信号線が新規に検出されたかどうかを判定
し、新規に検出されていれば、各スレーブプロセスはス
テップ602,603に戻り、上記の処理を繰り返す。
固定値信号線が新規に検出されていない場合、ステップ
606に進み、マスタープロセスが固定値信号線検出結
果を利用して冗長故障を指摘し、プログラムを終了す
る。
【0061】前記固定値信号線とは、すべての入力パタ
ーン列に対し、信号線の論理値が0あるいは1に固定さ
れる信号線である。ステップ602あるいはステップ6
03における、固定値信号線を判定する処理は、信号線
に論理値0あるいは1を設定し、その論理値設定により
順次論理値が決定される信号線を特定する操作を行い、
その操作の過程で矛盾が生じた場合に、論理値を設定し
た信号線が設定した論理値の否定値に固定される固定値
信号線と判定する、という手順で行う。このとき、他の
固定値信号線が検出されていないと検出できない固定値
信号線が存在することから、検出可能な全ての固定値信
号線を検出するためには、各プロセスの判定結果を他の
プロセスに伝達しなければならない。そのため、ステッ
プ604,605の処理が必要となる。
【0062】ステップ606における冗長故障の指摘
は、検出した固定値信号線に対応する故障を次のように
冗長と判定する。論理値が1に固定される固定値信号線
の場合、その信号線の論理値が1に固定される故障であ
る1縮退故障は正常時と故障時の区別がつかないため、
冗長と判定する。論理値が0に固定される信号線の場合
も同様に、その信号線の論理値が0に固定される故障で
ある0縮退故障を冗長と判定する。
【0063】なお、我々が作成した並列プログラムで
は、1つのスレーブプロセスを1つのプロセッサに対応
させ、マスタープロセスは前記スレーブプロセスをもつ
プロセッサの中の1つのプロセッサに割り当てた。
【0064】図7に、冗長故障判定の並列プログラムを
実行した際の、プロセッサ数と台数効果の関係を表した
グラフを示す。ここで、台数効果とは、冗長故障判定の
処理を1つのプロセッサ,逐次プログラムで実行した場
合の処理時間を、複数のプロセッサ、並列プログラムで
実行した場合の処理時間で割った値である。対象とした
論理回路は、1989年の回路とシステム国際シンポジ
ウム(ISCAS'89)の特別セッション「順序回路の
テスト生成」のために用意されたベンチマーク・データ
回路の中の3つの順序回路である。回路s9234で
は、プロセッサ数15までプロセッサ数の増加に従って
台数効果も増加しているが、回路s5378では、プロセッ
サ数14前後で台数効果が飽和しており、最適プロセッ
サ数は14前後と言える。同様に、回路s838でも台
数効果は飽和しており、最適プロセッサ数は6から11
の間と言える。
【0065】図8に、前記3つの回路に対する使用プロ
セッサ数と通信オーバーヘッド率の関係をグラフで示
す。どの回路も、前記最適プロセッサ数に関する解析で
示した通り、プロセッサ数の増加とともに通信オーバー
ヘッド率も増加している。プロセッサ数15までは台数
効果の飽和していない回路s9234では、通信オーバ
ーヘッド率が最大でも0.3 を越えていない。一方、回
路s5378ではプロセッサ数15で通信オーバーヘッ
ド率が0.5 を越えており、回路s838でもプロセッ
サ数9で通信オーバーヘッド率が0.5 を越える。この
通信オーバーヘッド率が0.5 を越えるプロセッサ数
は、図7に示した最適プロセッサ数にほぼ一致する。
【0066】以上の冗長故障判定プログラムの実験結果
から、通信オーバーヘッド率を利用した使用プロセッサ
数決定方法によって、使用プロセッサ数を最適プロセッ
サ数の近似値に設定できることを検証した。
【0067】図9にテストパターン生成プログラムの処
理手順の一例を示す。
【0068】各スレーブプロセスは回路全体の情報と検
出すべき故障の全部を保持するとする。ステップ901
で、マスタープロセスが回路の故障集合を分割し、スレ
ーブプロセスに割り当てる。ステップ902,903
で、各スレーブプロセスは、割り当てられた故障に対し
てテストパターンを生成する処理を並列に行い、生成し
たパターンに対して故障シミュレーションの処理を並列
に行う。ステップ904で、スレーブプロセスは故障検
出結果をマスタープロセスに報告し、マスタープロセス
は報告された結果を集計し、集計結果をスレーブプロセ
スに伝達する。ステップ905で、テスト生成終了条件
を達成したかどうかを判定し、終了条件を達成していな
ければ、各スレーブプロセスはステップ902,903
に戻り、上記の処理を繰り返す。終了条件を達成した場
合、プログラムを終了する。
【0069】前記故障シミュレーションとは、生成した
パターン列に対し、検出した故障を全て指摘する処理で
ある。このとき、各スレーブプロセスにおける故障シミ
ュレーションは異なるパターン系列に対して処理するた
め、検出される故障も異なる。また他のスレーブプロセ
スに割り当てられた故障を検出することも生じるので、
できるだけテスト生成処理の重複を避けるため、各プロ
セスの故障検出結果を他のプロセスに伝達しなければな
らない。そのため、ステップ904,905の処理が必
要となる。
【0070】なお、我々が作成した並列プログラムで
は、1つのスレーブプロセスを1つのプロセッサに対応
させ、マスタープロセスは前記スレーブプロセスをもつ
プロセッサの中の1つのプロセッサに割り当てた。
【0071】図10に、テストパターン生成の並列プロ
グラムを実行した際の、プロセッサ数と台数効果の関係
を表したグラフを示す。対象とした論理回路は、ISC
AS'89 ベンチマーク回路の中の2つの順序回路であ
る。回路s713では、プロセッサ数15までプロセッ
サ数の増加に従って台数効果も増加しているが、回路s
208では、プロセッサ数8前後で台数効果が飽和して
おり、最適プロセッサ数は8前後と言える。
【0072】図11に、前記2つの回路に対する使用プ
ロセッサ数と通信オーバーヘッド率の関係をグラフで示
す。どちらの回路も、前記最適プロセッサ数に関する解
析で示した通り、プロセッサ数の増加とともに通信オー
バーヘッド率も増加している。プロセッサ数15までは
台数効果の飽和していない回路s713では、通信オー
バーヘッド率が最大でも0.4 を越えていない。一方、
回路s713ではプロセッサ数8で通信オーバーヘッド
率が0.5 を越える。この通信オーバーヘッド率が0.
5 を越えるプロセッサ数は、図10に示した最適プロ
セッサ数にほぼ一致する。
【0073】従ってテストパターン生成プログラムの実
験結果からも、通信オーバーヘッド率を利用した使用プ
ロセッサ数決定方法によって、使用プロセッサ数を最適
プロセッサ数の近似値に設定できることを検証した。
【0074】以上、冗長故障判定プログラムとテストパ
ターン生成プログラムについて、最適プロセッサ数と通
信オーバーヘッド率との関係が前記最適プロセッサ数に
関する解析に従うことを検証したが、他の並列プログラ
ムでも同様の結果が得られる。また、同期型並列プログ
ラムに限らず、非同期型並列プログラムであっても構わ
ない。
【0075】図12に、最適プロセッサ数記憶手段を持
つ並列計算機システムの計算装置103のブロック図を
示す。
【0076】本実施例における計算装置103は、入力
データ情報と最適プロセッサ数の関係を記憶する最適プ
ロセッサ数記憶手段1201と,任意個のプロセッサを
使用可能な並列プログラムを制御する並列プログラム制
御手段104と,並列プログラム実行時の処理状況を監
視する実行状況監視手段105と,実行状況監視手段か
ら得られた情報より使用プロセッサ数を決定する使用プ
ロセッサ数決定手段106と,並列プログラムの処理に
使用される複数のプロセッサ107,108,109か
ら構成される。
【0077】前記入力データ情報は、並列プログラムに
おける通信周期等、最適プロセッサ数に影響を及ぼす実
行パラメータと,並列プログラムの対象とするデータ及
びそのサイズが一般的である。
【0078】前記最適プロセッサ数記憶手段は、前記実
行パラメータ毎に、前記データのサイズと最適プロセッ
サ数の組を記憶したもの、あるいは、最適プロセッサ数
を前記データのサイズの関数として表したものを記憶す
るのが一般的である。もちろん、最適プロセッサ数を、
複数の前記実行パラメータと前記データのサイズを変数
にもつ多変数関数として表してもよい。
【0079】図13に、本実施例に係わる最適プロセッ
サ数記憶手段1201における処理手順の一例をフロー
で示す。
【0080】実行パラメータ毎に、データサイズを変数
とする最適プロセッサ数の関数を決定する場合について
説明する。ステップ1301で、データサイズを変数と
する最適プロセッサ数の関数を初期化する。ステップ1
302で、入力データ及びそのサイズと実行パラメータ
を入力する。ステップ1303で、並列プログラム制御
手段104によって複数のプロセッサ107,108,
109を制御しながら並列プログラムを実行し、実行状
況監視手段105と使用プロセッサ数決定手段106を
用いて、使用プロセッサ数を最適化する。ステップ13
04で、データサイズと最適プロセッサ数の組を記憶す
る。ステップ1305で、既に記憶されているデータサ
イズと最適プロセッサ数の複数の組を用いて、データサ
イズを変数とする最適プロセッサ数の関数を補正する。
ステップ1306で、データサイズを変数とする最適プ
ロセッサ数の関数の精度があらかじめ与えられた目標精
度を達成していれば、最適プロセッサ数関数の補正を終
了し、固定された最適プロセッサ数関数を記憶する。そ
うでなければ、目標精度が達成されるまで、ステップ1
302からステップ1305を繰り返す。
【0081】データサイズと最適プロセッサ数の複数の
組から、データサイズを変数とする最適プロセッサ数の
関数を与える方法の一例を述べる。まず、データサイズ
の値を複数の階級に分割し、階級値、即ち各階級に対す
る最適プロセッサ数の平均値を求める。それらの階級値
をスプライン関数あるいは折れ線関数などで補間する。
最適プロセッサ数の関数を与える別の方法としては最急
降下法を用いることが考えられる。関数を複数の定数を
含む形で予め決めておき、誤差関数も与えておく。デー
タサイズと最適プロセッサ数の新しい組が与えられる毎
に、その関数に現われる定数を誤差関数が最小となるよ
うに変化させる。
【0082】本実施例によれば、並列計算機システム,
アプリケーション毎に、最適プロセッサ数を与える関数
を自動的に生成するという効果がある。
【0083】初期における最適プロセッサ数の関数を与
える方法を、冗長故障判定プログラムを例に述べる。前
記最適プロセッサ数に関する解析において、データサイ
ズに対する最適プロセッサ数の評価式を数5で与えた。
データサイズを回路のゲート数とする場合、この式に現
われる逐次プログラムによるCPU時間S(n),プロセ
ッサ間通信時間をプロセッサ数の関数と見做したときの
1次の係数C1(n),同じ処理を複数のプロセッサ上で
行うオーバーヘッド分のCPU時間の合計D2(n)を、
前記ISCAS'89ベンチマーク回路14品種を用い
た実験により推定すると、それぞれnの1.6乗,1
乗,1.6乗のオーダーである。これらのオーダーを数
5に適用すると、最適プロセッサ数はnの0.3 乗のオ
ーダーであることを導くことができる。さらに、図7の
s5378における最適プロセッサ数の結果を利用する
と、回路ゲート数nに対して最適プロセッサ数p
opt(n)は、次の数10で近似できる。
【0084】
【数10】
【0085】以上、冗長故障判定プログラムについて、
最適プロセッサ数の近似方法を述べたが、他の並列プロ
グラムでも同様の方法を適用できる。また、同期型並列
プログラムに限らず、非同期型並列プログラムであって
も構わない。
【0086】本実施例によれば、最適プロセッサ数を与
える関数に対して、早い段階で精度のよい近似が得られ
るという効果がある。また、最適プロセッサ数を与える
関数を補正しない場合でも、精度のよい近似が得られる
という効果がある。
【0087】図14に、並列プログラム実行状況を表示
方法の一例を示す。
【0088】1401は、プロセッサ間通信時間と処理
時間に関する情報を表示するウィンドウの例で、横軸1
402に時刻,縦軸1403に前記通信オーバーヘッド
率をとったグラフである。領域1404の高さによって
通信オーバーヘッド率を表しており、ある一定時間毎に
最新の情報を追加表示していく。なお、表示内容は実行
状況監視手段105により得られた情報であれば何でも
よいし、ウィンドウによる表示でなくてコンソール画面
に表示させてもよい。
【0089】本実施例によれば、並列プログラム実行状
況をリアルタイムに把握できるという効果がある。
【0090】
【発明の効果】以上のように、本発明によれば、並列プ
ログラムの処理時間を短縮するように使用プロセッサ数
を制御する並列計算機システムを提供することができ
る。
【図面の簡単な説明】
【図1】本発明の一実施例に係わる並列計算機システム
の構成を示す説明図である。
【図2】本発明の一実施例に係わる並列計算機システム
の処理手順を示すフロー図である。
【図3】本発明の一実施例に係わる並列計算機システム
の処理手順を示すフロー図である。
【図4】本発明の一実施例に係わる使用プロセッサ数決
定手段の処理手順を示すフロー図である。
【図5】本発明の一実施例に係わる使用プロセッサ数決
定手段の処理手順を示すフロー図である。
【図6】冗長故障判定プログラムの処理手順を示すフロ
ー図である。
【図7】冗長故障判定プログラムにおけるプロセッサ数
と台数効果の関係を示すグラフである。
【図8】冗長故障判定プログラムにおけるプロセッサ数
と通信オーバーヘッド率の関係を示すグラフである。
【図9】テストパターン生成プログラムの処理手順を示
すフロー図である。
【図10】テストパターン生成プログラムにおけるプロ
セッサ数と台数効果の関係を示すグラフである。
【図11】テストパターン生成プログラムにおけるプロ
セッサ数と通信オーバーヘッド率の関係を示すグラフで
ある。
【図12】本発明の一実施例に係わる並列計算機システ
ムの構成を示す説明図である。
【図13】本発明の一実施例に係わる並列計算機システ
ムの処理手順を示すフロー図である。
【図14】本発明の一実施例に係わる実行状況の表示例
である。
【符号の説明】
101…入力装置、102…出力装置、103…計算装
置、104…並列プログラム制御手段、105…実行状
況監視手段、106…使用プロセッサ数決定手段、10
7〜109…プロセッサ、1201…最適プロセッサ数
記憶手段。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサとこれらのプロセッサ間
    の通信手段をもつ並列計算機システムに関し、 任意個のプロセッサを使用可能な並列プログラムを制御
    する並列プログラム制御手段と,並列プログラム実行時
    の処理状況を監視する実行状況監視手段と,実行状況監
    視手段から得られた情報より使用プロセッサ数を決定す
    る使用プロセッサ数決定手段を備えることを特徴とする
    並列計算機システム。
  2. 【請求項2】請求項1記載の並列計算機システムであっ
    て、 前記並列プログラム制御手段として、並列プログラム実
    行中に中断,使用プロセッサ数を変更することを特徴と
    する並列計算機システム。
  3. 【請求項3】請求項1または請求項2記載の並列計算機
    システムであって、 前記使用プロセッサ数決定手段として、並列プログラム
    実行時に前記実行状況監視手段から得られる処理量と処
    理時間を用いて、使用プロセッサ数の変更量を決定する
    手段を備えることを特徴とする並列計算機システム。
  4. 【請求項4】請求項1または請求項2記載の並列計算機
    システムであって、 前記使用プロセッサ数決定手段として、並列プログラム
    実行時に前記実行状況監視手段から得られるプロセッサ
    間通信時間と,前記実行状況監視手段から得られる処理
    時間を用いて、使用プロセッサ数の変更量を決定する手
    段を備えることを特徴とする並列計算機システム。
  5. 【請求項5】請求項1または請求項2記載の並列計算機
    システムであって、 入力データに関する情報と,処理時間を最短にするある
    いは望ましいプロセッサ数である最適プロセッサ数との
    関係を記憶する最適プロセッサ数記憶手段を備え、前記
    実行状況監視手段,前記使用プロセッサ数決定手段,前
    記並列プログラム制御手段,前記最適プロセッサ数記憶
    手段を繰り返し実行することにより、入力データに関す
    る情報と最適プロセッサ数との関係の精度を高めること
    を特徴とする並列計算機システム。
  6. 【請求項6】請求項5記載の並列計算機システムであっ
    て、 予め前記最適プロセッサ数記憶手段に記憶されている入
    力データに関する情報と最適プロセッサ数との関係を用
    いて、並列プログラム起動時の使用プロセッサ数を決定
    することを特徴とする並列計算機システム。
  7. 【請求項7】請求項6記載の並列計算機システムであっ
    て、 前記最適プロセッサ数記憶手段で記憶する入力データに
    関する情報と最適プロセッサ数との関係として、並列プ
    ログラムに対応する逐次プログラムの入力データ情報と
    処理時間との関係、及び、入力データ情報・使用プロセ
    ッサ数とプロセッサ間通信時間との関係,入力データ情
    報・使用プロセッサ数と並列処理時に複数のプロセッサ
    により多重処理されるオーバーヘッドに要する時間との
    関係,入力データ情報・使用プロセッサ数と負荷分散の
    乱れによるオーバーヘッドに要する時間との関係、の全
    部又は一部から導出された関係を用いることを特徴とす
    る並列計算機システム。
  8. 【請求項8】複数のプロセッサとこれらのプロセッサ間
    の通信手段をもつ並列計算機システム上で実行する並列
    プログラムの使用プロセッサ数制御方法に関し、 任意個のプロセッサを使用可能な並列プログラムに対
    し、並列プログラム実行時の処理状況から得られた情報
    より使用プロセッサ数を決定し、使用プロセッサ数を変
    更後、並列プログラムを再度最初から実行、あるいは、
    並列プログラム中断時点から再開することを特徴とする
    使用プロセッサ数制御方法。
  9. 【請求項9】請求項8記載の使用プロセッサ数制御方法
    に関し、 並列プログラム実行時の処理状況から得られた情報とし
    て、処理量と処理時間から使用プロセッサ数を決定する
    ことを特徴とする使用プロセッサ数制御方法。
  10. 【請求項10】請求項8記載の使用プロセッサ数制御方
    法に関し、 並列プログラム実行時の処理状況から得られた情報とし
    て、プロセッサ間通信時間と処理時間から使用プロセッ
    サ数を決定することを特徴とする使用プロセッサ数制御
    方法。
  11. 【請求項11】複数のプロセッサとこれらのプロセッサ
    間の通信手段をもつ並列計算機システム上で実行する並
    列プログラムの使用プロセッサ数決定方法に関し、 並列プログラムに対応する逐次プログラムの入力データ
    情報と処理時間との関係、及び、入力データ情報・使用
    プロセッサ数とプロセッサ間通信時間との関係,入力デ
    ータ情報・使用プロセッサ数と並列処理時に複数のプロ
    セッサにより多重処理されるオーバーヘッドに要する時
    間との関係,入力データ情報・使用プロセッサ数と負荷
    分散の乱れによるオーバーヘッドに要する時間との関
    係、の全部あるいは一部から、入力データに関する情報
    と最適プロセッサ数との関係を導出することを特徴とす
    る使用プロセッサ数決定方法。
  12. 【請求項12】複数のプロセッサとこれらのプロセッサ
    間の通信手段をもつ並列計算機システムに関し、 並列プログラム実行中に、プロセッサ間通信時間と処理
    時間に関する情報を表示することを特徴とする並列計算
    機システム。
JP7050790A 1995-03-10 1995-03-10 並列計算機システム及びプロセッサ数制御方法 Pending JPH08249294A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7050790A JPH08249294A (ja) 1995-03-10 1995-03-10 並列計算機システム及びプロセッサ数制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7050790A JPH08249294A (ja) 1995-03-10 1995-03-10 並列計算機システム及びプロセッサ数制御方法

Publications (1)

Publication Number Publication Date
JPH08249294A true JPH08249294A (ja) 1996-09-27

Family

ID=12868609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7050790A Pending JPH08249294A (ja) 1995-03-10 1995-03-10 並列計算機システム及びプロセッサ数制御方法

Country Status (1)

Country Link
JP (1) JPH08249294A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235551A (ja) * 1999-02-17 2000-08-29 Pfu Ltd データベース並列検索制御方法および記録媒体
US6438553B1 (en) 1998-12-28 2002-08-20 Nec Corporation Distributed job integrated management system and method
JP2009104373A (ja) * 2007-10-23 2009-05-14 Nec Corp 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP2011197846A (ja) * 2010-03-18 2011-10-06 Fujitsu Ltd 情報処理装置、並列計算制御方法、プログラム及び並列計算システム
WO2012025959A1 (ja) * 2010-08-25 2012-03-01 富士通株式会社 ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム
JP2012168732A (ja) * 2011-02-14 2012-09-06 Fujitsu Ltd 演算処理装置、計算ノード、並列計算機システム、演算処理方法および演算処理プログラム
WO2019167859A1 (ja) * 2018-02-27 2019-09-06 日本電信電話株式会社 見積り装置および見積り方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438553B1 (en) 1998-12-28 2002-08-20 Nec Corporation Distributed job integrated management system and method
JP2000235551A (ja) * 1999-02-17 2000-08-29 Pfu Ltd データベース並列検索制御方法および記録媒体
JP2009104373A (ja) * 2007-10-23 2009-05-14 Nec Corp 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP2011197846A (ja) * 2010-03-18 2011-10-06 Fujitsu Ltd 情報処理装置、並列計算制御方法、プログラム及び並列計算システム
WO2012025959A1 (ja) * 2010-08-25 2012-03-01 富士通株式会社 ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム
JP2012168732A (ja) * 2011-02-14 2012-09-06 Fujitsu Ltd 演算処理装置、計算ノード、並列計算機システム、演算処理方法および演算処理プログラム
US8966225B2 (en) 2011-02-14 2015-02-24 Fujitsu Limited Reducing number of processing units generating calculation result when communication time to another node takes longer than calculation time
WO2019167859A1 (ja) * 2018-02-27 2019-09-06 日本電信電話株式会社 見積り装置および見積り方法

Similar Documents

Publication Publication Date Title
US7568028B2 (en) Bottleneck detection system, measurement object server, bottleneck detection method and program
US8494806B2 (en) Method, program and apparatus for optimizing configuration parameter set of system
US7797598B1 (en) Dynamic timer for testbench interface synchronization
CN115115030A (zh) 系统监控方法、装置、电子设备及存储介质
US4811276A (en) Virtual computer diagnostic system with comparative monitoring of timestamped controller check signals and timestamped commands of individual virtual machines
JPH08249294A (ja) 並列計算機システム及びプロセッサ数制御方法
CN112329366A (zh) 一种提高仿真效率的soc系统验证方法、装置及系统
US20030074605A1 (en) Computer system and method for program execution monitoring in computer system
US6748444B1 (en) Transmission system of short time lag
US20100146322A1 (en) Method for overclocking central processing unit of computer motherboard
Alonso et al. Assessment of timing properties of family products
JP2861962B2 (ja) コンピュータプログラムのシミュレーション装置および方法
JP5387083B2 (ja) ジョブ管理システムおよび方法
KR20080052343A (ko) 리눅스 커널 실시간 성능 측정 장치 및 방법
JP2005250937A (ja) マイクロコンピュータソフトウェアのプログラム検証装置
JPH0612276A (ja) プログラム制御方式
JPH05250186A (ja) タスク生成スケジューリング方式
JPH064318A (ja) エラー検出方式
JP2924154B2 (ja) 時間計測方式
JPH08255139A (ja) 分散演算機推奨装置
JPH11345135A (ja) 情報処理装置のプロセッサ負荷による割込方法とその制御回路
US20050066329A1 (en) Method for determining priority-dependent computing-time distribution in a priority-controlled multiprocess computing system
JP6855861B2 (ja) 仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラム
JPH1145196A (ja) Cpu負荷率測定方法およびcpu負荷率予測方法
JPH02109145A (ja) 診断実行時間測定方式

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 13

Free format text: PAYMENT UNTIL: 20081206

LAPS Cancellation because of no payment of annual fees