JPH04227589A - データフロープログラムの割付け装置および割付け方法 - Google Patents

データフロープログラムの割付け装置および割付け方法

Info

Publication number
JPH04227589A
JPH04227589A JP12147391A JP12147391A JPH04227589A JP H04227589 A JPH04227589 A JP H04227589A JP 12147391 A JP12147391 A JP 12147391A JP 12147391 A JP12147391 A JP 12147391A JP H04227589 A JPH04227589 A JP H04227589A
Authority
JP
Japan
Prior art keywords
data flow
processor
allocation
task
flow 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
JP12147391A
Other languages
English (en)
Inventor
Kazuhiko Yoda
和彦 依田
Shinichi Yoshida
芳田 真一
Toshiya Okamoto
俊弥 岡本
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP12147391A priority Critical patent/JPH04227589A/ja
Publication of JPH04227589A publication Critical patent/JPH04227589A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は複数のプロセッサから
なるデータフロー型情報処理装置においてデータフロー
プログラムを複数の部分に分割して各部分を各プロセッ
サに割付ける割付け装置および割付け方法に関する。
【0002】
【従来の技術】従来のコンピュータは、プログラムとし
て種々の命令をプログラムメモリに記憶し、プログラム
カウンタによってプログラムメモリのアドレスを逐次指
定して順次命令を読出し、その命令を実行するというノ
イマン型計算機が大部分である。
【0003】一方、データフロー型情報処理装置は、プ
ログラムカウンタによる逐次的な命令の実行という概念
を持たない非ノイマン型計算機の一種である。このよう
なデータフロー型情報処理装置は、命令が並列に実行さ
れることを前提にしたアーキテクチャに従っている。そ
して演算の対象になるデータが揃い次第、命令の実行が
可能となり、データによって複数の命令を同時に駆動す
るため、データの自然な流れに従って並列にプログラム
が実行される。その結果、演算の所要時間が大幅に短縮
できることになる。
【0004】このようなデータフロー型情報処理装置に
おいては、単一のプロセッサで単位時間に実行すること
ができる命令の数には限界がある。そこで、ネットワー
クにより接続された複数のプロセッサにおいてプログラ
ムの各部分を並列に実行すれば、単位時間に実行するこ
とのできる命令の数が増加することになる。その結果、
すべてのプログラムを単一のプロセッサで実行するより
もプログラムの各部分を複数のプロセッサにおいて並列
に実行する方が処理時間が短縮される。
【0005】
【発明が解決しようとする課題】上記のように、プログ
ラムの各部分を複数のプロセッサで並列に実行する場合
には、必ずネットワークによる各プロセッサ間の通信が
行なわれることになる。データフロー型情報処理装置の
プロセッサ内部のデータはタグを持ったパケットとして
伝送され、ネットワークによるプロセッサ間の通信にお
いてもパケットの形でデータが伝送される。
【0006】このような通信処理には、パケットがネッ
トワークに出力されるのに要する時間、パケットのネッ
トワーク上の移動時間、およびパケットが行先のプロセ
ッサへ入力されるのに要する時間が、通信時間として必
要となる。したがって、ネットワークによる通信処理が
行なわれるパケットの処理時間としては、プロセッサの
内部での処理時間に加えて通信処理による処理時間が必
要となる。これを通信処理によるオーバヘッドと呼ぶ。
【0007】またデータフロープログラムの割付け方法
によって、データフロープログラム全体の並列度に比べ
て、各プロセッサに割付けられたデータフロープログラ
ムの並列度が低いと、プロセッサ内部の処理回数に比べ
て通信回数が多くなる。そのため、プロセッサの並列処
理による処理時間の短縮が、通信処理によるオーバヘッ
ドを解消することができず、かえって処理時間が長くな
る場合もある。なお、並列度とは同時に実行することの
できる命令数の割合である。
【0008】以上から、複数のプロセッサからなるデー
タフロー型情報処理装置におけるデータフロープログラ
ムの処理時間は、複数の部分に分割されたデータフロー
プログラムの並列度と、通信回数の大小とにより決定さ
れる。
【0009】このように、データフロープログラムの各
プロセッサへの割付け方法により、データフロープログ
ラムの処理時間が異なる。したがって、データフロープ
ログラムの処理時間が最も短縮されるようにデータフロ
ープログラムの各部分を複数のプロセッサに割付ける方
法が必要となる。
【0010】本発明の目的は、複数のプロセッサからな
るデータフロー型情報処理装置において、データフロー
プログラムの処理時間が最も短くなるようにプログラム
の各部分を複数のプロセッサに割付ける装置および方法
を提供することである。
【0011】この発明の他の目的は、複数のプロセッサ
からなるデータフロー型情報処理装置において、データ
フロープログラムの処理時間が最も短くなるように複数
のタスクを複数のプロセッサに割付ける装置および方法
を提供することである。
【0012】
【課題を解決するための手段】第1の発明にかかるデー
タフロープログラムの割付け装置は、ネットワークを用
いた通信処理に要する処理時間および複数のプロセッサ
における並列処理により短縮される処理時間を算出する
算出手段と、通信処理により要する処理時間および並列
処理により短縮される処理時間に基づいてデータフロー
プログラムの各部分の複数のプロセッサへの割付けを決
定する割付け手段とを備える。
【0013】第2の発明にかかるデータフロープログラ
ムの割付け方法は、ネットワークを用いた通信処理に要
する処理時間と複数のプロセッサにおける並列処理によ
り短縮される処理時間とに基づいてデータフロープログ
ラムの各部分を複数のプロセッサに割付けるものである
【0014】第3の発明にかかるデータフロープログラ
ムの割付け装置は、各プロセッサについて最大効率で同
時に実行することができるタスクの数を記憶する記憶手
段と、記憶手段に記憶された数のタスクを各プロセッサ
にそれぞれ割付ける割付け手段とを備える。
【0015】データフロープログラムは他のタスクから
分岐するタスクを含み、第4の発明にかかるデータフロ
ープログラムの割付け装置では、割付け手段は、記憶手
段に記憶された数の範囲内で前記分岐するタスクを前記
他のタスクと同じプロセッサに割付ける。
【0016】第5の発明にかかるデータフロープログラ
ムの割付け方法は、各プロセッサについて最大効率で同
時に実行することができるタスクの数を決定し、決定さ
れた数のタスクを各プロセッサにそれぞれ割付けるもの
である。
【0017】データフロープログラムは他のタスクから
分岐するタスクを含み、第6の発明にかかるデータフロ
ープログラムの割付け方法では、決定された数のタスク
を各プロセッサにそれぞれ割付ける。
【0018】
【作用】第1および第2の発明にかかるデータフロープ
ログラムの割付け装置および割付け方法においては、ネ
ットワークを用いた通信処理に要する時間と複数のプロ
セッサにおける並列処理により短縮される処理時間とに
基づいてデータフロープログラムの各部分の割付けが行
なわれるので、データフロープログラムが最短時間で実
行されるようにデータフロープログラムを各プロセッサ
に最適に割付けることが可能となる。
【0019】第3ないし第6の発明にかかるデータフロ
ープログラムの割付け装置および割付け方法においては
、各プロセッサに同時に実行することができる複数のタ
スクが割付けられるので、各プロセッサが最大効率で動
作することになる。これにより、通信処理に要する処理
時間が短縮され、データフロープログラムが最短時間で
実行される。
【0020】また、第4および第6の発明にかかるデー
タフロープログラムの割付け装置および割付け方法にお
いては、タスク間の依存関係に基づいて各タスクが割付
けられるプロセッサが決定されるので、データフロープ
ログラム最短時間で実行されるように複数のタスクを複
数のプロセッサに最適に割付けることが可能となる。
【0021】
【実施例】以下、この発明の実施例を図面を参照しなが
ら詳細に説明する。
【0022】図1は、この発明の一実施例を示すブロッ
ク図である。データフロー型情報処理装置は、複数のプ
ロセッサP1,P2,…,Pmおよびそれらを接続する
ネットワークからなる。最適割付け装置1は、以下に説
明するコスト計算に基づいて、データフロープログラム
2に含まれる各命令を複数のプロセッサP1〜Pmのい
ずれかに最適に割付ける。
【0023】図1の実施例では、複数のプロセッサP1
〜Pmを接続するネットワークの一例としてループ状の
ネットワークが示されている。
【0024】最適割付け装置および最適割付け方法につ
いて説明する前に、データフロー型情報処理装置に含ま
れるプロセッサの構成および動作を説明する。
【0025】図2はデータフロー型情報処理装置に含ま
れるプロセッサの一例を示すブロック図である。また、
図3はそのプロセッサにより処理されるデータパケット
のフィールド構成の一例を示す図である。
【0026】図3に示されるデータパケットは、行先フ
ィールド、命令フィールド、データ1フィールドおよび
データ2フィールドを含む。行先フィールドには行先情
報が格納され、命令フィールドには命令情報が格納され
、データ1フィールドまたはデータ2フィールドにはオ
ペランドデータが格納される。
【0027】図2において、プログラム記憶部10には
、図4に示されるデータフロープログラム2が記憶され
ている。データフロープログラム2の各行は、行先情報
および命令情報からなる。プログラム記憶部10は、入
力されたデータパケットの行先情報に基づいたアドレス
指定によって、図4に示すように、データフロープログ
ラムの行先情報および命令情報を読出し、その行先情報
および命令情報をデータパケットの行先フィールドおよ
び命令フィールドにそれぞれ格納し、そのデータパケッ
トを出力する。
【0028】対データ検出部20は、プログラム記憶部
10から出力されるデータパケットの待ち合わせを行な
う。すなわち、同じ行先情報を有する異なる2つのデー
タパケットを検出し、それらのデータパケットのうち一
方のデータパケットのオペランドデータ(図3における
データ1フィールドの内容)を、他方のデータパケット
のデータ2フィールドに格納し、その他方のデータパケ
ットを出力する。
【0029】演算処理部30は、対データ検出部20か
ら出力されるデータパケットに対して、命令情報に基づ
く演算処理を行ない、その結果をデータパケットのデー
タ1フィールドに格納してそのデータパケットを分岐部
40に出力する。
【0030】分岐部40は、そのデータパケットを合流
部50に与えるかあるいは外部のネットワーク60に出
力する。合流部50は、分岐部40から与えられるデー
タパケットあるいは外部のネットワーク60から与えら
れるデータパケットをプログラム記憶部10に先着順に
出力する。
【0031】データパケットが、プログラム記憶部10
、対データ検出部20、演算処理部30、分岐部40、
合流部50およびプログラム記憶部10を順に回り続け
ることにより、プログラム記憶部10に記憶されたデー
タフロープログラム2に基づく演算処理が進行する。
【0032】プログラム記憶部10、対データ検出部2
0および演算処理部30により構成されるリングは、プ
ロセッサどうしを結合させるネットワーク60とは異な
り、プロセッサ内の複数段からなる巡回パイプラインと
なっている。そのため、命令の読出し、データ制御およ
び演算処理はそれぞれ独立かつ並列に実行される。
【0033】一般に、1つのプロセッサで同時に実行さ
れる命令の数が多くなるに従ってそのプロセッサの処理
効率は上昇する。しかし、1つのプロセッサで同時に実
行できる命令の数には限界があるので、1つのプロセッ
サで同時に実行される命令の数が一定の数を越えると、
そのプロセッサの処理効率が低下する。
【0034】このような場合、複数の命令を複数のプロ
セッサにより並列に実行すると、同時に実行できる命令
の数が多くなる。したがって、特に、通常の大規模なプ
ログラムの実行の際に、複数のプロセッサによる並列処
理を行なうと、処理時間が短縮される。また、巡回パイ
プライン上を流れることのできるデータパケットの量に
制限があるために単一のプロセッサでは命令を実行でき
ない場合もある。この場合には、複数のプロセッサで並
列処理を行なう必要がある。
【0035】並列処理において、各プロセッサで処理さ
れたデータパケットは、ネットワーク60を介して別の
プロセッサに送られる。この場合には、並列処理による
処理時間の短縮と通信処理による処理時間の増加とのト
レードオフを考慮して、データフロープログラム2の各
命令を各プロセッサに割付ける必要がある。
【0036】次に、図5、図6および図7を参照しなが
らこの実施例の最適割付け装置および最適割付け方法を
説明する。図1に示される最適割付け装置1は、図5の
ブロック図に示されるハードウェアおよび図6および図
7のフローチャートに示されるソフトウェアにより構成
される。
【0037】まず図5を参照する。最適割付け装置1の
ハードウェアは、CPU(中央演算処理装置)11、R
OM(リードオンリメモリ)、RAM(ランダムアクセ
スメモリ)13、ハードディスク14、ディスプレイ1
5、キーボード16およびI/O(入出力インタフェー
ス回路)17を含む。ROM12にはCPU11を制御
するための制御プログラムが記憶される。また、ROM
12またはハードディスク14には、図6および図7の
フローチャートに従うプログラムが記憶される。また、
RAM13またはハードディスク14には割付けの対象
となるデータフロープログラムが記憶される。
【0038】キーボード16により各種データがCPU
11に入力される。ディスプレイ15により入力データ
、出力データ、割付け結果等の各種表示が行なわれる。 データフロープログラムの各部分はCPU11から入出
力インタフェース回路17を介してそれぞれ複数のプロ
セッサP1〜Pmに入力される。
【0039】この実施例では、各プロセッサに割付けら
れた命令の処理時間と、通信によるオーバヘッドとを比
較し、各命令が割付けられるべきプロセッサを決定する
。まず、次の計算式により、ネットワーク移動通信コス
トCn、出力通信コストCo、入力通信コストCiおよ
び並列処理コストCpを算出する。
【0040】
【数1】
【0041】ここで、njは命令単位を表わし、“0”
または“1”に設定される。また、Nは命令の総数であ
る。tcn,tco,tci,tcpはそれぞれのコス
トのコスト係数(重み)であり、対応する命令が割付け
られたプロセッサ、ネットワーク、命令どうしのつなが
りなどの状況により命令ごとに異なる。
【0042】ネットワーク移動通信コストCnとは、デ
ータパケットがネットワーク上を目的プロセッサまで移
動するのに要する時間、出力通信コストCoとは、デー
タパケットがプロセッサからネットワーク上に出力され
るのに要する時間、入力通信コストCiとは、データパ
ケットがネットワークから目的プロセッサ内に入力され
るのに要する時間である。また、並列処理コストCpと
は、命令を実行するのに要する時間である。
【0043】ここでは、図8のデータフローグラフによ
り表わされるデータフロープログラムを図1の最適割付
け装置1により各プロセッサに割付けた場合を説明する
【0044】図8において、n1 〜nn はデータフ
ロープログラムの基本的な命令を表わす。
【0045】最初に図6に示される初期割付け処理アル
ゴリズムが実行され、その後、図7に示される漸近割付
け処理アルゴリズムが実行される。
【0046】初期割付け処理では、命令n1 〜nn 
を順に各プロセッサに割付ける。割付け順序としては、
上位の命令n1 から下位の命令nn に向かう順序(
実行順序)あるいはその逆の順序などが考えられる。
【0047】各命令の割付けの際には、まずその命令を
各プロセッサに割付けた場合の総コストをそれぞれ計算
する(ステップS1)。総コストとは、ネットワーク移
動通信コスト、出力通信コスト、入力通信コストおよび
並列処理コストの合計である。初期割付け処理における
総コストの計算では、すでに割付けられている命令のみ
が対象となる。
【0048】そして、総コストが最小となるプロセッサ
を選択し(ステップS2)、選択されたプロセッサにそ
の命令を割付ける(ステップS3)。命令ごとに、ステ
ップS1〜S3の処理を行ない(ステップS4)、すべ
ての命令を順にプロセッサのいずれかに割付ける。
【0049】たとえば、図8において、まず命令n1 
がプロセッサP1に割付けられているものとする。次に
、命令n2 の割付けの際に、命令n2 をプロセッサ
P1に割付けた場合の総コスト,命令n2をプロセッサ
P2に割付けた場合の総コスト,…,命令n2 をプロ
セッサPmに割付けた場合の総コストをそれぞれ計算す
る。命令n2 をプロセッサP1に割付けた場合には、
命令n1 の並列処理コストに命令n2 の並列処理コ
ストが加算される。命令n2 をプロセッサP2に割付
けた場合には、命令n1 の並列処理コストに、プロセ
ッサP1からの出力通信コスト、プロセッサP1からプ
ロセッサP2へのネットワーク移動通信コストおよびプ
ロセッサP2への入力通信コストが加算される。
【0050】このように、単一のプロセッサに多くの命
令を割付けると、割付けられたプロセッサの処理速度が
遅くなる。この場合、並列処理コストが増加し、総コス
トが増加することになる。
【0051】また、複数のプロセッサに命令を割付ける
と、通信時間が必要となる。この場合、通信処理による
コストが増加し、総コストが増加する。
【0052】初期割付け処理が終了すると、次に漸近割
付け処理が行なわれる。漸近割付け処理では、初期割付
け処理により割付けられた各命令n1 〜nn を順に
各プロセッサに再割付けする。
【0053】各命令の割付けの際には、初期割付け処理
の場合と同様に、その命令を各プロセッサに割付けた場
合の総コストをそれぞれ計算する(ステップS6)。初
期割付け処理ですべての命令が割付けられているので、
漸近割付け処理における総コストの計算では、すべての
命令が対象となる。次に、総コストが最小となるプロセ
ッサを選択し(ステップS2)、選択されたプロセッサ
にその命令を再割付けする(ステップS8)。命令ごと
にステップS6〜S8の処理を行ない(ステップS9)
、すべての命令n1 〜nn を割付ける。
【0054】たとえば、図8において、命令n1 およ
びn4 がプロセッサP1に割付けられているものとす
る。 命令n2 の割付けの際には、命令n2 をプロセッサ
P1に割付けた場合の総コスト,命令n2 をプロセッ
サP2に割付けた場合の総コスト,…,命令n2 をプ
ロセッサPmに割付けた場合の総コストをそれぞれ計算
する。
【0055】命令n2 をプロセッサP1に割付けた場
合には、ネットワーク移動通信コスト、出力通信コスト
および入力通信コストは不要となり、プロセッサP1に
おける命令n2 の並列処理コストのみが加算される。
【0056】命令n2 をプロセッサP2に割付けた場
合には、プロセッサP1における命令n2 の並列処理
コストは不要となり、プロセッサP1からの出力通信コ
スト、プロセッサP1からプロセッサP2 へのネット
ワーク移動通信コスト、プロセッサP2への入力通信コ
スト、プロセッサP2における命令n2 の並列処理コ
スト,プロセッサP2からの出力通信コスト、プロセッ
サP2からプロセッサP1へのネットワーク移動通信コ
ストおよびプロセッサP1への入力通信コストが加算さ
れる。
【0057】また、命令n2 をプロセッサPmに割付
けた場合には、各通信コストおよび各プロセッサにおけ
る命令n2 の並列処理コストの値が上記の場合とは異
なる。
【0058】このようにして命令n2 を各プロセッサ
に割当てた場合の総コストをそれぞれ計算し、総コスト
が最小となるプロセッサを選択する。そしてその選択さ
れたプロセッサにその命令n2 を割付ける。
【0059】すべての命令n1 〜nn の割付けが終
了すると、総コストCi を算出する(ステップS10
)。この場合の総コストの算出では、すべての命令n1
 〜nn が対象となるので、その総コストはより正確
に実行時間を反映している。
【0060】ステップS11において、今回の総コスト
Ci を前回の総コストCi − 1 と比較する。今
回の総コストCi が前回の総コストCi − 1 よ
りも小さい場合には、ステップS12に進む。ステップ
S12では、前回の総コストCi − 1 と今回の総
コストCi との差ΔCを所定の終了値Eと比較する。 総コストの差ΔCが終了値Eよりも小さい場合には、漸
近割付け処理を終了する。 総コストの差ΔCが終了値Eよりも小さくない場合には
、ステップS5に戻り、ステップS6〜S10の再割付
け処理を繰返す。
【0061】ステップS11において、今回の総コスト
Ci が前回の総コストCi − 1 よりも小さい場
合には、前回の割付け結果を採用し(ステップS13)
、漸近割付け処理を終了する。
【0062】このようにして、総コストが最小となるよ
うに、データフロープログラムの各命令が割付けられる
【0063】したがって、通信処理によるオーバヘッド
が解消され、同時に、複数のプロセッサへの割付けによ
る負担も均等となる。その結果、データフロープログラ
ムの処理時間が最短となる。
【0064】次に、図9および図10を参照しながらこ
の発明の他の実施例の最適割付け装置および最適割付け
方法を説明する。この実施例が適用されるデータフロー
型情報処理装置の構成は図1に示される構成と同様であ
り、各プロセッサの構成および動作は図2〜図4に示さ
れる構成および動作と同様である。また、この実施例の
最適割付け装置のハードウェアの構成は図5に示される
構成と同様である。
【0065】ここでは、図10のデータフローグラフに
より表わされるデータフロープログラムを図9のフロー
チャートに従って複数のプロセッサに割付けた場合を説
明する。
【0066】図10において、N0〜N11はデータフ
ロープログラムの基本的な命令、すなわちノードを表わ
す。このデータフロープログラムは3つのタスクT0,
T1,T2に分割されている。タスクT0はノードN0
〜N5を含み、タスクT1はノードN6〜N9を含み、
タスクT2はノードN10,N11を含む。データフロ
ープログラムの各ノードには実行ランクが与えられてい
る。実行ランクとは各命令単位(ノード)が実行される
時間的順序を表わす。タスクT1は実行ランクR2でタ
スクT0から分岐する。タスクT2は実行ランクR3で
タスクT1から分岐する。タスクT0のスタート位置の
ノード(スタートノード)は実行ランクR1のノードN
0である。タスクTの1スタートノードは実行ランクR
2のノードN6であり、タスクT2のスタートノードは
実行ランクR3のノードN10である。
【0067】タスクT1のスタートノードN6について
の呼出し元ノードはタスクT0のノードN0である。ま
たタスクT2のスタートノードN10についての呼出し
元ノードはタスクT1のノードN6である。
【0068】この実施例では、各プロセッサについて最
大効率で同時に実行することができるタスクの数の範囲
内で、各タスクをそのタスクについての呼出し元ノード
が割付けられているプロセッサへ割付けることにより、
通信時間が減らされる。
【0069】同時に実行されるタスクが、プロセッサ内
の巡回パイプラインを満たしたときに最大効率か得られ
る。
【0070】各プロセッサについて同時に実行できるタ
スクの数はRAM13またはハードディスク14に記憶
される。なお、最大効率で同時に実行できるタスクの数
は、プロセッサの構成により異なる。
【0071】ここでは、説明を簡単にするために、タス
クT0〜T2が割付けられるプロセッサの数を2個とし
、各プロセッサにおいて最大効率で同時に実行できるタ
スクの数を2個とする。
【0072】図9のフローチャートでは、実行ランクの
上位から、つまりデータフローグラフの上の方から順に
ノードを観察する。そして、各タスクのスタートノード
に着目してそのタスクを割付けるべきプロセッサを決定
する。
【0073】まず、ランクRkからスタートするタスク
Tj内のスタートノードについて呼出し元ノードが存在
するかどうかを判別する(ステップS21)。ここで、
kは0以上の整数を表わす。また、jも0以上の整数を
表わす。呼出し元ノードが存在しないときには、タスク
を割付けることができる最小番号のプロセッサにタスク
Tjを割付ける(ステップS25)。
【0074】ステップS21において呼出し元ノードが
存在すると、呼出し元ノードが割付けられているプロセ
ッサPiに実行ランクRkでタスクTjを割付けること
ができるかどうかを判断する(ステップS22)。ここ
で、iは正の整数を表わしている。
【0075】ステップS22でプロセッサPiにタスク
Tjを割付けることができるならば、プロセッサPiに
タスクTjを割付ける(ステップS23)。ステップS
22でプロセッサPiにタスクTjを割付けることがで
きないならば、タスクを割付けることができる最小番号
のプロセッサにタスクTjを割付ける(ステップS25
)。
【0076】すべてのタスクについて上記の処理を繰返
し、すべてのタスクがプロセッサP1,P2,…,Pm
のいずれかに割付けられると処理を終了する(ステップ
S24)。
【0077】図9に示される処理を図10のデータフロ
ーグラフにより表わされるデータフロープログラムの割
付けに適用する。まず、実行ランクR1からスタートす
るタスクT0を観察する。タスクT0のスタートノード
N0については呼出し元ノードが存在しないので、タス
クを割付けることができる最小番号1のプロセッサP1
にタスクT0を割付ける。タスクT0は実行ランクR1
から実行ランクR8までに影響を与える。そのため、プ
ロセッサP1は実行ランクR1〜R8について1タスク
分ふさがることになる。
【0078】次に、実行ランクR2からスタートするタ
スクT1を観察する。タスクT1のスタートノードN6
については呼出し元ノードN0が存在する。呼出し元ノ
ードN0はプロセッサP1に割付けられている。実行ラ
ンクR2の時点でプロセッサP1には1つのタスクT0
のみが割付けられいてる。同時に実行することができる
タスクの数は2であるので、プロセッサP1にはもう1
つのタスクを割付けることができる。したがって、タス
クT1をプロセッサP1へ割付ける。
【0079】最後に、実行ランクR3からスタートする
タスクT2を観察する。タスクT2のスタートノードN
10については呼出し元ノードN6が存在する。呼出し
元ノードN6はプロセッサP1に割付けられている。し
かしながら、プロセッサP1には、実行ランクR3の時
点で同時に実行することができる2つのタスクがすでに
割付けられている。したがって、タスクT2は、タスク
を割付けることができる最小番号2のプロセッサP2へ
割付けられる。
【0080】図10の例では、同時に実行することがで
きる2つのタスクがプロセッサP1に割付けられ、通信
回数が1回だけに抑えられる。
【0081】上記実施例によれば、プロセッサのほとん
どが最高効率で動作し、かつ通信回数も少なくなるよう
にデータフロープログラム内の各タスクが複数のプロセ
ッサに割付けられるので、データフロープログラムの処
理時間が最短となる。
【0082】
【発明の効果】以上のように第1および第2の発明によ
れば、データフロープログラムの実行時間が最短となる
ように、データフロープログラムの各部分を最適に割付
けることができる。
【0083】また、通信処理による通信時間の計算によ
り、ネットワーク形状を反映させた割付けを行なうこと
も可能となる。
【0084】第3ないし第6の発明によれば、各プロセ
ッサが最高効率で動作しかつ通信回数も少なくなるよう
に割付けが行なわれるので、データフロープログラムの
実行時間が最短となるように、データフロープログラム
の各タスクを最適に割付けることができる。
【図面の簡単な説明】
【図1】この発明の一実施例を示すブロック図である。
【図2】データフロー型情報処理装置を構成するプロセ
ッサを示すブロック図である。
【図3】図2のプロセッサにより処理されるデータパケ
ットのフィールド構成の一例を示す図である。
【図4】図2のプロセッサのプログラム記憶部に記憶さ
れるデータフロープログラムの一部を示す図である。
【図5】最適割付け装置のハードウェアの構成を示すブ
ロック図である。
【図6】最適割付け方法における初期割付け処理アルゴ
リズムを示すフローチャートである。
【図7】最適割付け処理方法における漸近割付け処理ア
ルゴリズムを示すフローチャートである。
【図8】最適割付け方法を説明するためのデータフロー
グラフを示す図である。
【図9】この発明の他の実施例による最適割付け方法を
示すフローチャートである。
【図10】最適割付け方法を説明するためのデータフロ
ーグラフを示す図である。
【符号の説明】
1…最適割付け装置 2…データフロープログラム P1,P2,Pm…プロセッサ 10…プログラム記憶部 20…対データ検出部 30…演算処理部 60…ネットワーク 11…CPU 12…ROM 13…RAM 14…ハードディスク 15…ディスプレイ 16…キーボード 17…I/O T0,T1,T2…タスク R0,R1,R2…実行ランク N0,N1,N11…ノード なお、各図中、同一符号は同一または相当部分を示す。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】  ネットワークにより接続された複数の
    プロセッサからなるデータフロー型情報処理装置におい
    てデータフロープログラムを複数の部分に分割して各部
    分を各プロセッサに割付ける割付け装置であって、前記
    ネットワークを用いた通信処理に要する処理時間および
    複数のプロセッサにおける並列処理による短縮される処
    理時間を算出する算出手段と、前記通信処理に要する処
    理時間および前記並列処理により短縮される処理時間に
    基づいて前記データフロープログラムの各部分の前記複
    数のプロセッサへの割付けを決定する割付け手段とを備
    えた、データフロープログラムの割付け装置。
  2. 【請求項2】  ネットワークにより接続された複数の
    プロセッサからなるデータフロー型情報処理装置におい
    てデータフロープログラムを複数の部分に分割して各部
    分を各プロセッサに割付ける割付け方法において、前記
    ネットワークを用いた通信処理に要する処理時間と複数
    のプロセッサにおける並列処理により短縮される処理時
    間とに基づいて前記データフロープログラムの各部分を
    前記複数のプロセッサのいずれかに割付けることを特徴
    とするデータフロープログラムの割付け方法。
  3. 【請求項3】  ネットワークにより接続された複数の
    プロセッサからなるデータフロー型情報処理装置におい
    てデータフロープログラムを複数のタスクに分割して各
    タスクを各プロセッサに割付ける装置であって、各プロ
    セッサについて最大効率で同時に実行することができる
    タスクの数を記憶する記憶手段と、前記記憶手段に記憶
    された数のタスクを各プロセッサにそれぞれ割付ける割
    付け手段とを備えた、データフロープログラムの割付け
    装置。
  4. 【請求項4】  前記データフロープログラムは他のタ
    スクから分岐するタスクを含み、前記割付け手段は、前
    記記憶手段に記憶された数の範囲内で前記分岐するタス
    クを前記他のタスクと同じプロセッサに割付ける、請求
    項3に記載のデータフロープログラムの割付け装置。
  5. 【請求項5】ネットワークにより接続された複数のプロ
    セッサからなるデータフロー型情報処理装置においてデ
    ータフロープログラムを複数のタスクに分割して各タス
    クを各プロセッサに割付ける割付け方法において、各プ
    ロセッサについて最大効率で同時に実行することができ
    るタスクの数を決定し、決定された数のタスクを各プロ
    セッサにそれぞれ割付けることを特徴とするデータフロ
    ープログラムの割付け方法。
  6. 【請求項6】  前記データフロープログラムは他のタ
    スクから分岐するタスクを含み、前記決定された数の範
    囲内で前記分岐するタスクを前記他のタスクと同じプロ
    セッサに割付ける、請求項5に記載のデータフロープロ
    グラムの割付け方法。
JP12147391A 1990-08-10 1991-05-27 データフロープログラムの割付け装置および割付け方法 Pending JPH04227589A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12147391A JPH04227589A (ja) 1990-08-10 1991-05-27 データフロープログラムの割付け装置および割付け方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-213100 1990-08-10
JP21310090 1990-08-10
JP12147391A JPH04227589A (ja) 1990-08-10 1991-05-27 データフロープログラムの割付け装置および割付け方法

Publications (1)

Publication Number Publication Date
JPH04227589A true JPH04227589A (ja) 1992-08-17

Family

ID=26458830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12147391A Pending JPH04227589A (ja) 1990-08-10 1991-05-27 データフロープログラムの割付け装置および割付け方法

Country Status (1)

Country Link
JP (1) JPH04227589A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131478A (ja) * 1992-10-16 1994-05-13 Japan Radio Co Ltd マルチデータフロープロセッサ装置
JP2009537908A (ja) * 2006-05-16 2009-10-29 アビニシオ ソフトウェア エルエルシー グラフ型計算における計算リソースの管理法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131478A (ja) * 1992-10-16 1994-05-13 Japan Radio Co Ltd マルチデータフロープロセッサ装置
JP2009537908A (ja) * 2006-05-16 2009-10-29 アビニシオ ソフトウェア エルエルシー グラフ型計算における計算リソースの管理法

Similar Documents

Publication Publication Date Title
US6401155B1 (en) Interrupt/software-controlled thread processing
JPH0463430B2 (ja)
JPH02149156A (ja) 通信プロセッサ装置
JP2020098602A (ja) テンソルデータにアクセスするための方法および装置
US8370842B2 (en) Portioning and routing of work in a multiple processor system
WO2021067057A1 (en) Neural network training in a distributed system
JPH0319986B2 (ja)
JPS60136870A (ja) ベクトル処理装置
JP5671050B2 (ja) ランダムアクセスメモリの動的管理
JPH04227589A (ja) データフロープログラムの割付け装置および割付け方法
JPS6123276A (ja) デ−タ処理装置
CN115563050A (zh) 众核计算芯片及数据访问方法
CN111913812A (zh) 一种数据处理方法、装置、设备及存储介质
JP2008102599A (ja) プロセッサ
JPH08235135A (ja) 通信レジスタ付並列計算機
JPS6240737B2 (ja)
JPH1153327A (ja) マルチプロセッサシステム
JPH0511328B2 (ja)
JPH06266860A (ja) ベクトル処理プロセッサ
JPS5938854A (ja) タスク待行列管理装置
WO1996028783A1 (en) Method and system for storing instructions in computer memory
JPH06332508A (ja) プログラマブルコントローラ
JPH08272411A (ja) ラダー命令処理装置
JPH0354665A (ja) ベクトル処理装置
JPH0319983B2 (ja)

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010306