JPH10143380A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH10143380A
JPH10143380A JP8295185A JP29518596A JPH10143380A JP H10143380 A JPH10143380 A JP H10143380A JP 8295185 A JP8295185 A JP 8295185A JP 29518596 A JP29518596 A JP 29518596A JP H10143380 A JPH10143380 A JP H10143380A
Authority
JP
Japan
Prior art keywords
processing
program
parallel
degree
processors
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
JP8295185A
Other languages
English (en)
Inventor
Kazumi Funakoshi
和己 舟越
Shigeru Tamura
田村  滋
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
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
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, Hitachi Information and Control Systems Inc filed Critical Hitachi Ltd
Priority to JP8295185A priority Critical patent/JPH10143380A/ja
Publication of JPH10143380A publication Critical patent/JPH10143380A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 逐次型プログラムを高速CPUと低速CPU
とに割り付けて、効率的な処理をはかりたい。 【解決手段】 1台の高速CPU1と複数台の低速CP
U2、3、4と、共通バス9、共有メモリ10とより成
るマルチプロセッサシステムより成る。高速CPU1と
低速CPU2、3、4とに処理プログラム11のプロセ
スP1〜Pnを並列動作度の大小及び処理時間の大小に応
じて割り付ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子計算機に係わ
り、特に複数のプロセッサを備え1つの演算処理を並列
に高速処理するマルチプロセッサシステムに関する。
【0002】
【従来の技術】マルチプロセッサシステムは、逐次型言
語(例えばFORTRANやC言語)を用いて作成されたプログ
ラムに対し、自動並列化コンパイラ等により並列処理可
能な処理を決め、プログラムを実行している。例えば1
つのプログラム中に繰り返し処理であるDOループが存
在する場合、このDOループを複数のCPUで処理して
いる。例えば、処理プログラム中に DO I=1、40 A(I) =B(I)+C(I) なる演算がある場合、I=1〜10、I=1〜20、I
=21〜30、I=31〜40の演算を各々別のCPU
(例えば別の4つのCPU)に割り当て、並列処理して
いる。
【0003】また、さらに進んだ方式では、最初から並
列処理用言語を使用して複数プロセスの並列性記述によ
りプログラムを作成し、自動並列化コンパイラで対応困
難なプロセス間の並列処理を実現している。並列処理用
言語は、例えば、「並列処理技術、1991年、コロナ
社発行」の第105頁から第113頁において論じられ
ているように、並列実行可能プロセスの記述等をコンパ
イラだけに頼らずに積極的にプログラマの知見を利用し
効率良い並列処理を実現しようとするアプローチであ
る。前記で作成されたプロセスをマルチプロセッサへ割
り付ける方法としては、従来のマルチプロセッサシステ
ムでは、複数あるCPUの稼働率を高めるため、逐次処
理を行うCPUや並列処理を行うCPUを常にダイナミ
ックに変えている。
【0004】また、別の従来のマルチプロセッサシステ
ムでは、ある1つのプログラムを実行中だけ、逐次処理
ならばn個中の任意の1個のCPUに固定し、並列処理
ならば並列処理を行うCPUを固定的に割り当て、逐次
処理と並列処理が動作するタイミングをフラグによりと
る(逐次処理実行中は並列処理は動作せず、並列処理が
全て終了するまでは次の逐次処理は動作しないというこ
とをフラグにより管理)ことにより、ハード量が少なく
オーバーヘッドの小さいマルチプロセッサシステムを実
現している。ここで、マルチプロセッサは、同じ性能の
n個のプロセッサからなっている。この従来例として
は、特開平2−144657号がある。
【0005】
【発明が解決しようとする課題】まず第1に並列可能な
処理の決定について、上記従来技術の自動並列化コンパ
イラは、DOループの並列処理化には有効であるが、プ
ロセス間の並列処理化に対しては適していない。これに
対しては、並列処理用言語によるプログラミングがある
が、この方法では従来の逐次型言語のプログラムをその
ままでは使用できない。次に、プロセスをCPUへ配分
する方式については、上記従来技術のように、逐次処理
を行うCPUや並列処理を行うCPUを常にダイナミッ
クに変えるように構成すると、CPUの稼働率は高くな
るが、ダイナミックに変動させるためのハード量が増大
してしまい、また各CPUの同期用のハード量も増大し
てしまうという問題が生じる。さらに、オーバーヘッド
が大きくなるという不都合も生じる。
【0006】また、プログラムを実行する間だけそれを
行うCPUを固定する方法は、オーバーヘッドは少ない
が、実行するCPUの選択は空いているCPUが選ばれ
るのみなので、以下の理由により当該プログラムを実行
するのに適切なCPU資源が選ばれるとは限らない。プ
ログラムで対象とする通常の業務処理は、逐次処理と並
列処理が混在している場合が一般的である。例えば、電
力系統の長期計画業務(例:年間計画)では、期間内の
潮流図を日付を変えて繰り返し作成する処理(並列可能
な処理)と、この結果に対して系統解析を行う処理(逐
次処理)とに分けられる。この場合、逐次処理は1台の
CPUで実行されるので出来るだけ高速なCPUがよ
い。一方において、並列処理は、複数CPUで実行され
るので高速でなくても台数効果が出せる。従って、従来
の同じ性能のマルチプロセッサ構成よりもCPUの性能
を逐次用の高速プロセッサと並列用の複数のプロセッサ
にしたマルチプロセッサ構成の方が有効である。
【0007】本発明の目的は、従来の逐次型言語のプロ
グラムをそのまま使用してプロセス間の並列処理を容易
に実現するマルチプロセッサシステムを提供するもので
ある。さらに本発明の目的は、逐次処理と並列処理が混
在するプログラムを逐次用の高速プロセッサと並列用の
複数のプロセッサという2種類のハード資源に有効に配
分可能にして、トータルとして効率的なプロセッサ管理
や効率的なプログラム処理の実現をはかるマルチプロセ
ッサシステムを提供することにある。
【0008】
【課題を解決するための手段】本発明は、逐次処理用の
高速プロセッサと並列処理用の複数のプロセッサを持
ち、プログラムを構成するプロセスの並列動作度及び処
理時間の大小によりプロセスの各プロセッサへの配分を
行うことを特徴とするマルチプロセッサシステムを開示
する。
【0009】更に本発明は、逐次処理用の高速プロセッ
サと並列処理用の複数のプロセッサを持ち、プログラム
を構成するプロセスの並列動作度及び処理時間をオフラ
インで求めてメモリに登録しておき、プログラム実行時
に上記プロセスの並列動作度及び処理時間の大小によ
り、プロセスの各プロセッサへの配分を行うものとした
ことを特徴とするマルチプロセッサシステムを開示す
る。
【0010】さらに本発明は、プログラムを構成するプ
ロセスの並列動作度及び処理時間は、すべてのプロセス
の対について、2つのプロセッサで同時実行して求めた
並列処理可能度及び実行頻度とから得るものとしたマル
チプロセッサシステムを開示する。
【0011】更に本発明は、逐次処理用の高速プロセッ
サと並列処理用の複数のプロセッサを持つマルチプロセ
ッサシステムにおいて、逐次型言語で作成されたプログ
ラムについて、そのプログラムを構成するプロセスの並
列動作度及び処理時間の大小により、プロセスの各プロ
セッサへの配分の割り付けを行うマルチプロセッサシス
テムを開示する。
【0012】更に本発明は、逐次処理用の高速プロセッ
サと並列処理用の複数のプロセッサとを持ち、逐次型言
語で作成されたプログラムを実行するマルチプロセッサ
システムにおいて、プログラムを構成するプロセスにつ
いて求めた並列動作度及び処理時間をメモリに格納して
おき、上記プログラムのプロセス実行待ちキューの中の
先頭のプロセスについて、メモリに格納してあるプロセ
スの並列動作度から得られる並列度の大小を比較し、小
であれば高速プロセッサが空くのを待って当該プロセス
を高速プロセッサに割り付け、大であればプロセッサ数
の並列度大のプロセスをキューより取り出しその各プロ
セッサについての上記メモリに格納してある処理時間を
参照して実行させるべき並列度大のプロセスを処理時間
順に並べ、全プロセッサが空くのを待って、処理時間が
最長のプロセスを高速プロセッサに割り当て、残りを並
列プロセッサに割り当てるものとしたマルチプロセッサ
システムを開示する。
【0013】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、本発明の実施の形態に関
するマルチプロセッサシステムの構成図である。本実施
の形態のマルチプロセッサシステムは、逐次処理と並列
処理を効率的に実行できるハード構成を目的として逐次
処理用の高速プロセッサ(CPU)1と並列処理用の複
数のプロセッサ(CPU)2〜4から成る。高速CPU
1と3つの低速CPU2、3、4は各々、キャッシュメ
モリ5、6、7、8を介して共通バス9に接続されてい
る。低速CPU2、3、4は同一機構(又は同一構成)
より成るものとする。
【0014】このバス9には、共有メモリ10が接続さ
れている。共有メモリ10には、処理プログラム11と
並列動作度テーブル作成プログラム12及びプロセス割
り付けプログラム13と並列動作度テーブル14が格納
されている。また、プロセス実行頻度の情報として、プ
ロセス実行頻度作成プログラム15とプロセス実行頻度
テーブル16が格納されている。
【0015】ここで共通メモリ10内のプログラム1
1、12、13、15、及びテーブル14、16につい
て簡単に説明する。詳細は追って説明する。処理プログ
ラム11…マルチプロセッサシステムの処理対象とする
プログラムのことであり、逐次型言語で作成されたプロ
グラムを指す。このプログラム11は複数のプロセスA
1〜Anから成る。プロセス割り付け判定プログラム13
…プロセスの並列動作度テーブル14(図5の14)を
参照して、上記処理プログラムを構成するプロセスA1
〜Anについて、マルチプロセッサシステムのCPU1
〜4への割り付けを行う。ここで割り付けとは、該当の
CPUでプロセスを実行させることであり、プロセスの
スケジューリング機能に相当する。並列動作度テーブル
作成プログラム12…プロセスの並列動作度テーブル1
4(図5の14)を事前に作成するためのプログラムで
ある。並列動作度テーブル14…並列動作度テーブル作
成プログラム12によって作られた並列動作度を、プロ
セス対応にテーブル化して記憶したものである。プロセ
ス実行頻度テーブル16…プロセス対応に、あるカウン
ト時間内での実行回数を記録したテーブルである。この
テーブル16は、処理プログラム10の実際の実行に先
立って、得たものであり、並列動作度テーブル14の作
成のために使う。具体例としての図3のテーブル16が
該当する。プロセス実行頻度作成プログラム15…プロ
セス実行頻度テーブル16を作成するためのプログラム
である。このプログラム15は、処理プログラム10の
実際の実行に先立ち動作させる。
【0016】次に、図1のマルチプロセッサシステムの
全体動作を説明する。 (1)、並列動作度テーブル14の作成…処理プログラ
ム11の動作に先立って並列動作度テーブル14を作成
する。この並列動作度テーブル14は、2段階で作成さ
れるものであり、先ずプロセス実行頻度作成プログラム
15によってプロセス実行頻度テーブル16を作成し、
次いで並列動作度テーブル作成プログラム12によっ
て、テーブル16を利用して並列動作度テーブル14を
作成することになる。 (2)、処理プログラム11を構成するプロセスのマル
チCPU1〜4への割り付け…プロセス割り付け判定プ
ログラム13が(1)で算出した並列動作度テーブル1
4を参照して、マルチCPU1〜4へ、処理プログラム
11を構成するプロセスA1〜Anを割り付ける。割り付
け終了後に、割り付けたプロセスを、割り付け先のキャ
ッシュメモリ5〜8に対応ずけて送り格納する。 (3)、処理プログラム11の実行…(2)の割り付け
結果に従って、マルチCPU1〜4の動作により逐次処
理、並びに並列処理がなされ、プログラム11の実行を
はかる。
【0017】並列動作度作成プログラム12の起動の時
期は任意であり、オフライン的な処理で行う。また、図
1のマルチプロセッサシステムを利用して作成してもよ
く、図1とは異なる他のマルチプロセッサシステムによ
って作成しても良い。要は、図1のマルチプロセッサシ
ステムとしての立ち上げ前に行えばよい。図2には、そ
うした一例を示し、図1のマルチプロセッサシステムを
利用して並列動作度を自動作成する時の、並列動作度作
成プログラム12の動作時期と動作内容とを示す計算機
モード(マルチプロセッサシステムとしての計算機モー
ドの意味)図である。ここで、図2の中でフロー24と
25とが、並列動作度作成プログラム12である。
【0018】図2において、計算機が立ち上げ処理21
を完了すると、フロー22に移り、並列動作度テーブル
作成モードに入るか否かが表示画面に表示され、操作者
はこれをみて、並列動作度テーブル作成モードに入るか
否かの指示を行う。並列動作度テーブル作成モードにす
ると、並列動作度テーブル14の作成24を行い、次い
でフロー25に移り、作成した並列動作度テーブル14
の内容を磁気ディスク等の外部記憶装置に保存する。こ
こで作成した並列動作度テーブル14は、通常モード
(フロー26)においてプロセスの並列度判定に用いら
れる。フロー22で、並列動作度テーブル作成モードに
しなければ、外部記憶装置に保存されているすでに作成
(フロー24、25によって)ずみの並列動作度テーブ
ル14を共有メモリ10に展開し、通常モードの処理2
6へ遷移する。通常モードでは、処理プログラム11に
よる計算機の本来の業務処理を行う。以上の2つのモー
ドの終了は計算機停止処理27により行う。並列度作成
モードから通常モードへの切り替え(又はその逆)は、
一旦、計算機を停止させる(フロー27)が、並列動作
度作成モードはしばしば行うものではないので、この方
式で十分である。
【0019】図3(a)は、プロセス実行頻度作成プロ
グラム15の処理フロー、図3(b)はプロセス実行頻
度テーブル16を示す図である。処理プログラム11の
シミュレーションによる処理を行って各プロセスA
i(i=1〜n)についてプロセスが実行される毎にプ
ロセスの実行回数をカウントし(フロー31)、プロセ
ス実行頻度テーブル16の中味を更新する(フロー3
2)。プロセス実行頻度テーブル16は、プロセス毎の
実行回数のカウント数rとカウント期間W(カウント開
始時刻tS及びカウント終了時刻teとの差分)から成
る。カウント時間Wの期間中にそのプロセスAiが何回
実行されたかをカウント数rで示している。
【0020】図4は、図2の並列動作度作成プログラム
12の中の処理フロー24の詳細フローである。並列動
作度テーブル作成モードでは、まず、フロー41によっ
て、プロセスA1〜Anにおける2つのプロセスのすべて
の組合せのそれぞれについて、2つの同一機構(又は同
一機種。例えば図1のCPU2と3)のプロセッサで同
時に実行できる度合いを示す並列処理可能度λij(i=
1〜n、j=1〜n、i≠j)を求める。このようにし
て任意の2つのプロセス並列処理可能度λijは、2つの
プロセスを同時に2つのプロセッサでモニタランさせる
ことにより求める。このようにして求めた並列処理可能
度λijに対して図3(b)のプロセスの実行頻度を考慮
することにより、各プロセスをプロセッサ1〜4へ配分
する際の指標となる並列動作度λiを求める(フロー4
2、43)。図5(a)は並列処理可能度λij、及び図
5(b)は並列動作度λiを示す図である。
【0021】次に、図5を用いて並列処理可能度λ
ij(図5(a))及び並列動作度λi(図5(b))に
ついて説明する。図5において、ユーザプログラム5の
プロセスをA1、A2、…、Anとする。プロセスAiを
単独に実行させた時の処理時間をtiとする。またこれ
らのAi、Aj(1≦i、j≦n)からなるプロセスの組
合せ52を考え、このプロセスAi、Ajを2つのプロセ
ッサで同時に動作させる。この時のAiの処理時間をt
ijとする。プロセスAiを単独に実行させた時の処理時
間tiと、他のプロセスAjと同時に実行させた時の処理
時間tijを比較した場合、その比ti/tijは1以下の
値であり、この値が1に近いほど並列処理可能度が高い
と考えられる。一般に他のプロセスと同時に実行したと
きは処理時間が長くなる(ti≦tij)ためである。そ
こで、プロセスAiのプロセスAjに対する並列処理可能
度λijを次の式により定義する。
【数1】λij=ti/tij こうして求めた並列処理可能度λijが図5(a)の内容
である。
【0022】また、プロセスAjの実行頻度(単位時間
内での実行回数)μjは、プロセス実行頻度テーブル3
3の実行回数rjとカウント期間(ts〜te)より、下
記で算出する。
【数2】μj=rj/(ts〜te) 次に、プロセスAiをプロセッサへ配分する際の指標と
なる並列動作度λiは、他のプロセスが動作している時
にプロセスAiが動作可能な度合いなので、上記、プロ
セスAiのプロセスAjに対する並列処理可能度λijとプ
ロセスAjの実行頻度μjの関数として、例えば、次のよ
うに定義する。
【数3】 こうして求めた並列動作度λiを処理時間tiと共に示し
たものが図5(b)である。ここで、実行頻度μjが逆
数(1回の実行時間となる)として扱われている理由
は、プロセスの実行頻度が低いと他のプロセスが実行で
きる割合が高くなり、逆に、実行頻度が高いと他のプロ
セスが実行できる割合が低くなるからである。
【0023】図5(b)において、並列動作度λiから
以下の如き意味を持たせる。プロセスAiが並列度大と
は、λiがしきい値ρ以上となることを云う。プロセス
iが並列度小とは、λiがしきい値ρ以下となることを
云う。ρの値は、プロセスの並列動作度λiとプロセッ
サの台数mから以下のようにして決める。{λ1、…、
λn}をλiの降順(小さい値順)に並べたものをλ1
≧…≧λ′とする時、この値が上位(1/m)・10
0(%)に入るλ′が高速プロセッサで処理する対象と
なるので、上位(1/m)・100(%)に入るλ′の
最小の値をρとする。本実施の形態では、m=4である
からρは上位25%に入るλ′の最小値となる。
【0024】図6は、プロセス割り付け判定プログラム
13の処理フローである。このプロセス割り付けとはプ
ログラムの実際の処理を行う過程での動的な割り付けを
指す。プロセスが実行される時、プロセス割り付け判定
プログラム13は、実行するプロセスをキュー(図6フ
ロー601。いわゆる待行列のこと)より取得する。例
えばキューの先頭にあるプロセスを取得する。この時、
当該プロセスの並列動作度テーブル14の情報(動作度
の大小)を参照して(フロー603)並列度が小であれ
ば高速プロセッサが空くのを待って、プロセスを高速プ
ロセッサに割り付ける(フロー604)。並列度が大で
あれば、プロセッサ数分の並列度大のプロセス(本実施
の形態では、4個)をキュー(待行列)より取り出し
(フロー605〜フロー611)、並列動作度テーブル
14の処理時間を参照して、実行させる並列度大のプロ
セスを処理時間順に並べ、全プロセッサが空くのを待っ
て、処理時間が最長のプロセスを高速プロセッサへ、残
りを高速でないプロセッサへ割り付ける(フロー61
2)。
【0025】図7は、ある処理プログラム11(メイン
プログラム)の概略構成図である。この図は、図6に基
づき、逐次形と並列形とに割り付けた結果を示す図であ
る。メインプログラム11は、逐次処理プログラムS
と、この逐次処理プログラム終了後に実行される並列処
理プログラムP1〜P4と、この並列処理プログラム終了
後に実行される逐次処理プログラムS2で構成されてい
る。各プログラムS1、P1〜P4、S2は、前述のプロセ
スAi(i=1〜6)に相当する。ここでプロセスと
は、プログラムの実行単位のことで、プログラムを実行
するのに必要な情報(CPUが機械語の命令列として解
釈できるテキストとデータ等)から成る。
【0026】各プログラムS1、S2、P1〜P4の並列処
理可能度λijは、プログラムS1、S2が逐次プログラ
ム、プログラムP1〜P4が並列プログラムとした場合、
以下のようになる(又は、なるものとする)。尚、λij
の代わりに、印字の関係上λ(S、P)やλ(P、
P)、λ(P、S)、λ(S、S)で示すことにする。
当然にカッコ内の手前の英字がi、後ろの英字がjを示
す。 λ(S1、P1)=λ(S1、P2)=λ(S1、P3)=λ
(S1、P4)=λ(S1、S2)=0 λ(P1、S1)=λ(P1、S2)=0 λ(P1、P2)=λ(P1、P3)=λ(P1、P4)=1 λ(P3、S1)=λ(P2、S2)=0 λ(P2、P1)=λ(P2、P3)=λ(P2、P4)=1 λ(P3、S1)=λ(P3、S2)=0 λ(P3、P1)=λ(P3、P2)=λ(P3、P4)=1 λ(P4、S1)=λ(P4、S2)=0 λ(P4、P1)=λ(P4、P2)=λ(P4、P3)=1 また、各プログラムの実行頻度μは、下記の如くすべて
のプロセッサで全て等しいとする。 μ(S1)=μ(P1)=μ(P2)=μ(P3)=μ(P
4)=μ(S2)=μ0 このとき、各プログラムの並列動作度は、各々以下のよ
うになる。 λ(S1)=λ(S2)=0 λ(P1)=λ(P2)=λ(P3)=λ(P4)=4 この場合のしきい値は、ρ=4となる。従って、このプ
ログラム11は、並列動作度作成プログラムにより並列
度小(λi<ρ)の逐次処理プログラムS1、S2と並列
度大(λi≧ρ)の並列処理プログラムP1〜P4に分類
される。
【0027】図8は、図1に示した4個のCPU1〜4
(CPU1は高速)でメインプログラム11を実行する
時の、各プロセスCPUへの配分を説明する図である。
今、並列処理プログラムP1〜P4の処理時間t1〜t4
3≦t1≦t2≦t4とする。プロセス割り付け処理は、
プロセスの並列度の大小と処理時間の長短により行うの
で高速プロセッサCPU1には、逐次処理プログラムS
1、S2及び処理時間の長い並列処理プログラムP4、プ
ロセッサCPU2〜CPU4には、処理時間の短い並列
処理プログラムP1〜P3が割り付けられる。これによ
り、逐次処理と並列処理が混在するプログラムをそれを
処理するのに適切なプロセッサに配分でき、全体として
処理性を上げることができる。
【0028】具体的な処理例としては、電力系統の計画
支援業務がある。電力系統に送電線停止等の事故が起き
たことを想定した場合、その復旧手順(系統のどのルー
トから回復したら良いか等)は複数の手段があり、計算
機ではそれに対応して複数の復旧方針作成プログラム
(例:系統の切り替えによる復旧、発電機の調整による
復旧等)がある。このプログラムは前処理から計算に必
要なデータをもらうと並列に処理できるので、 ・逐次処理プログラム1(S1)…前処理(事故の特
定、復旧範囲の決定) ・並列処理プログラム1(P1)…復旧方針作成プログ
ラム1 ・並列処理プログラム2(P2)…復旧方針作成プログ
ラム2 ・並列処理プログラム3(P3)…復旧方針作成プログ
ラム3 ・並列処理プログラム4(P4)…復旧方針作成プログ
ラム4 ・逐次処理プログラム2(S2)…後処理(結果の比
較、評価) となる。4つの復旧方針作成プログラムの中では、処理
の複雑なものが処理時間がかかるので、この処理が高速
プロセッサに割り当てられる。
【0029】図9は、メインプログラム11を従来の構
成のCPU(4個の同じ性能のCPU)で従来手法のプ
ロセス配分を行った場合を示す。従来手法は、CPUの
性能が同じなので逐次処理S1及びS2がCPU1で動作
している間、他のCPU2〜CPU4の空き時間が逐次
用の高速プロセッサを使用する構成に比べて大きい。ま
た、並列処理プログラムP1〜P4の実行においてもCP
U性能が同じため、並列処理時間のばらつきを考慮して
いないので、CPU資源の無駄が生じる。この現象は、
逐次処理の処理時間が長いほど、又、並列処理時間のば
らつきが大きいほど顕著になる。
【0030】尚、上記実施の形態では、高速1台、低速
複数台としたが、高速2台以上の例での配分例へも拡張
できる。また、低速複数台は同一機構又は同一構成とし
たが、そうでない例もあり、そうした能力に応じた割り
付けを行ってもよい。また、逐次を高速、並列を低速に
割り当てるものとしたが、低速と高速との区分をせず
に、逐次を1台、並列を残りのものに割り当てる如きや
り方もある。
【0031】
【発明の効果】本発明によれば、従来の逐次型言語のプ
ログラムをそのまま使用してプロセス間の並列処理を容
易に実現し、逐次処理と並列処理が混在するプログラム
を高速プロセッサと並列処理用の複数プロセッサの2種
類のハード資源に有効に配分でき、トータルとして効率
的なマルチプロセッサシステムができるという効果があ
る。
【図面の簡単な説明】
【図1】本発明のマルチプロセッサシステムの構成例図
である。
【図2】並列動作度作成プログラムの動作を含む計算モ
ードのフローチャート図である。
【図3】プロセス実行頻度作成プログラムでの処理フロ
ー及びプロセス実行頻度テーブルを示す図である。
【図4】並列動作度テーブル作成プログラムの処理フロ
ー例図である。
【図5】並列処理可能度テーブル、並列動作度テーブル
のデータ例図である。
【図6】プロセス割り付け処理フロー図である。
【図7】プログラム割り付け例図である。
【図8】CPUへのプログラム割り付け例図である。
【図9】従来例によるプログラム割り付け例図である。
【符号の説明】
1 高速CPU 2、3、4 低速CPU 5、6、7、8 キャッシュメモリ 9 共通バス 10 共有メモリ 11 処理プログラム 12 並列動作度テーブル作成プログラム 13 プロセス割り付け判定テーブル 14 並列動作度 15 プロセス実行頻度作成プログラム 16 プロセス実行頻度テーブル

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 逐次処理用の高速プロセッサと並列処理
    用の複数のプロセッサを持ち、プログラムを構成するプ
    ロセスの並列動作度及び処理時間の大小によりプロセス
    の各プロセッサへの配分を行うことを特徴とするマルチ
    プロセッサシステム。
  2. 【請求項2】 逐次処理用の高速プロセッサと並列処理
    用の複数のプロセッサを持ち、プログラムを構成するプ
    ロセスの並列動作度及び処理時間をオフラインで求めて
    メモリに登録しておき、プログラム実行時に上記プロセ
    スの並列動作度及び処理時間の大小により、プロセスの
    各プロセッサへの配分を行うものとしたことを特徴とす
    るマルチプロセッサシステム。
  3. 【請求項3】 請求項1又は2において、プログラムを
    構成するプロセスの並列動作度及び処理時間は、すべて
    のプロセスの対について、2つのプロセッサで同時実行
    して求めた並列処理可能度及び実行頻度とから得るもの
    としたマルチプロセッサシステム。
  4. 【請求項4】 逐次処理用の高速プロセッサと並列処理
    用の複数のプロセッサを持つマルチプロセッサシステム
    において、逐次型言語で作成されたプログラムについ
    て、そのプログラムを構成するプロセスの並列動作度及
    び処理時間の大小により、プロセスの各プロセッサへの
    配分の割り付けを行うマルチプロセッサシステム。
  5. 【請求項5】 逐次処理用の高速プロセッサと並列処理
    用の複数のプロセッサとを持ち、逐次型言語で作成され
    たプログラムを実行するマルチプロセッサシステムにお
    いて、 プログラムを構成するプロセスについて求めた並列動作
    度及び処理時間をメモリに格納しておき、上記プログラ
    ムのプロセス実行待ちキューの中の先頭のプロセスにつ
    いて、メモリに格納してあるプロセスの並列動作度から
    得られる並列度の大小を比較し、小であれば高速プロセ
    ッサが空くのを待って当該プロセスを高速プロセッサに
    割り付け、大であればプロセッサ数の並列度大のプロセ
    スをキューより取り出しその各プロセッサについての上
    記メモリに格納してある処理時間を参照して実行させる
    べき並列度大のプロセスを処理時間順に並べ、全プロセ
    ッサが空くのを待って、処理時間が最長のプロセスを高
    速プロセッサに割り当て、残りを並列プロセッサに割り
    当てるものとしたマルチプロセッサシステム。
  6. 【請求項6】 高速プロセッサと、複数の低速プロセッ
    サと、各プロセッサ対応のキャッシュメモリと、キャッ
    シュメモリに接続された共通バスと、この共通バスに接
    続された共有メモリと、を有すると共に、共通メモリ上
    でプログラムを構成するプロセスの並列化の度合いを示
    すテーブルをオフライン的に作成し、このプロセスの並
    列度の度合い及び処理時間の大小によりプロセスをプロ
    セッサに割り当て対応キャッシュメモリにその旨の連絡
    及び対応データを送出するものとしたマルチプロセッサ
    システム。
JP8295185A 1996-11-07 1996-11-07 マルチプロセッサシステム Pending JPH10143380A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8295185A JPH10143380A (ja) 1996-11-07 1996-11-07 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8295185A JPH10143380A (ja) 1996-11-07 1996-11-07 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH10143380A true JPH10143380A (ja) 1998-05-29

Family

ID=17817316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8295185A Pending JPH10143380A (ja) 1996-11-07 1996-11-07 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH10143380A (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110249A (ja) * 2002-09-17 2004-04-08 Hitachi Ltd プログラム割当制御方法とプログラムおよびプログラム割当制御システム
JP2006065460A (ja) * 2004-08-25 2006-03-09 Seiko Epson Corp 画像処理を並列処理で実行する際の負荷の割り付け
JP2006309586A (ja) * 2005-04-28 2006-11-09 Fujitsu Ltd バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
US7356666B2 (en) 2003-06-27 2008-04-08 Kabushiki Kaisha Toshiba Local memory management system with plural processors
US7418705B2 (en) 2003-06-27 2008-08-26 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
US7464379B2 (en) 2003-08-14 2008-12-09 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
JP2009146243A (ja) * 2007-12-17 2009-07-02 Hitachi Ltd 基板バイアス制御を活用する電力性能最適化コンパイラ及びプロセッサシステム
US7657890B2 (en) 2003-06-27 2010-02-02 Kabushiki Kaisha Toshiba Scheduling system and method in which threads for performing a real-time operation are assigned to a plurality of processors
US7685599B2 (en) 2003-09-26 2010-03-23 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
DE112009001700T5 (de) 2008-07-22 2011-06-01 Toyota Jidosha Kabushiki Kaisha Multikernsystem, fahrzeugseitige elektronische Steuerungseinheit und Aufgabenumschaltverfahren
JP2012048545A (ja) * 2010-08-27 2012-03-08 Lenovo Singapore Pte Ltd 特定のプロセスを短時間で処理する方法およびコンピュータ
KR101222800B1 (ko) * 2008-01-18 2013-01-16 쿠카 로보테르 게엠베하 컴퓨터 시스템, 기계용, 특히 산업용 로봇용 제어 장치, 및 산업용 로봇
JP2013037290A (ja) * 2011-08-10 2013-02-21 Canon Inc 情報処理システム、情報処理方法、及びプログラム
US8495651B2 (en) 2003-07-22 2013-07-23 Kabushiki Kaisha Toshiba Method and system for performing real-time operation including plural chained tasks using plural processors
JP2016218503A (ja) * 2015-05-14 2016-12-22 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置
JP7012905B1 (ja) * 2020-12-28 2022-01-28 三菱電機株式会社 スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110249A (ja) * 2002-09-17 2004-04-08 Hitachi Ltd プログラム割当制御方法とプログラムおよびプログラム割当制御システム
US8171477B2 (en) 2003-06-27 2012-05-01 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
US7356666B2 (en) 2003-06-27 2008-04-08 Kabushiki Kaisha Toshiba Local memory management system with plural processors
US7418705B2 (en) 2003-06-27 2008-08-26 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
CN100416540C (zh) * 2003-06-27 2008-09-03 株式会社东芝 信息处理系统和存储器管理方法
US7657890B2 (en) 2003-06-27 2010-02-02 Kabushiki Kaisha Toshiba Scheduling system and method in which threads for performing a real-time operation are assigned to a plurality of processors
US7739457B2 (en) 2003-06-27 2010-06-15 Kabushiki Kaisha Toshiba Local memory management system with plural processors
US8495651B2 (en) 2003-07-22 2013-07-23 Kabushiki Kaisha Toshiba Method and system for performing real-time operation including plural chained tasks using plural processors
US7464379B2 (en) 2003-08-14 2008-12-09 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
US8087020B2 (en) 2003-08-14 2011-12-27 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
US7685599B2 (en) 2003-09-26 2010-03-23 Kabushiki Kaisha Toshiba Method and system for performing real-time operation
JP2006065460A (ja) * 2004-08-25 2006-03-09 Seiko Epson Corp 画像処理を並列処理で実行する際の負荷の割り付け
JP4555145B2 (ja) * 2005-04-28 2010-09-29 富士通株式会社 バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
US8407709B2 (en) 2005-04-28 2013-03-26 Fujitsu Limited Method and apparatus for batch scheduling, and computer product
JP2006309586A (ja) * 2005-04-28 2006-11-09 Fujitsu Ltd バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
JP2009146243A (ja) * 2007-12-17 2009-07-02 Hitachi Ltd 基板バイアス制御を活用する電力性能最適化コンパイラ及びプロセッサシステム
KR101222800B1 (ko) * 2008-01-18 2013-01-16 쿠카 로보테르 게엠베하 컴퓨터 시스템, 기계용, 특히 산업용 로봇용 제어 장치, 및 산업용 로봇
DE112009001700T5 (de) 2008-07-22 2011-06-01 Toyota Jidosha Kabushiki Kaisha Multikernsystem, fahrzeugseitige elektronische Steuerungseinheit und Aufgabenumschaltverfahren
US8856196B2 (en) 2008-07-22 2014-10-07 Toyota Jidosha Kabushiki Kaisha System and method for transferring tasks in a multi-core processor based on trial execution and core node
JP2012048545A (ja) * 2010-08-27 2012-03-08 Lenovo Singapore Pte Ltd 特定のプロセスを短時間で処理する方法およびコンピュータ
JP2013037290A (ja) * 2011-08-10 2013-02-21 Canon Inc 情報処理システム、情報処理方法、及びプログラム
JP2016218503A (ja) * 2015-05-14 2016-12-22 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置
JP7012905B1 (ja) * 2020-12-28 2022-01-28 三菱電機株式会社 スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム
WO2022144973A1 (ja) * 2020-12-28 2022-07-07 三菱電機株式会社 スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム

Similar Documents

Publication Publication Date Title
US20200409768A1 (en) Autoscaling using file access or cache usage for cluster machines
JPH10143380A (ja) マルチプロセッサシステム
Menascé et al. Static and dynamic processor scheduling disciplines in heterogeneous parallel architectures
US7689996B2 (en) Method to distribute programs using remote Java objects
JP3678414B2 (ja) 多重プロセッサ・システム
JP2882475B2 (ja) スレッド実行方法
JPS6275739A (ja) タスク割当て方法
JP2007140710A (ja) タスク割り当て方法およびタスク割り当て装置
JP4912927B2 (ja) タスク割当装置、及びタスク割当方法
Zhang et al. Impact of workload and system parameters on next generation cluster scheduling mechanisms
CN109840149B (zh) 任务调度方法、装置、设备及存储介质
US7032099B1 (en) Parallel processor, parallel processing method, and storing medium
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
CN109739634A (zh) 一种原子任务执行方法及装置
JPH06243112A (ja) マルチプロセッサ装置
EP2840513B1 (en) Dynamic task prioritization for in-memory databases
Hsiao et al. A usage-aware scheduler for improving MapReduce performance in heterogeneous environments
Tsog et al. Static allocation of parallel tasks to improve schedulability in cpu-gpu heterogeneous real-time systems
CN109656716A (zh) 一种Slurm作业调度方法及系统
Fu et al. Run-time compilation for parallel sparse matrix computations
KR101332839B1 (ko) 병렬 컴퓨팅 프레임워크 기반 클러스터 시스템의 호스트 노드 및 메모리 관리 방법
Xue et al. V10: Hardware-Assisted NPU Multi-tenancy for Improved Resource Utilization and Fairness
Jones NAS requirements checklist for job queuing/scheduling software
JP7122299B2 (ja) 処理タスクを実行するための方法、装置、デバイス、および記憶媒体
Ma et al. A dynamic load balancer for a parallel branch and bound algorithm