JPH0570866B2 - - Google Patents

Info

Publication number
JPH0570866B2
JPH0570866B2 JP17814088A JP17814088A JPH0570866B2 JP H0570866 B2 JPH0570866 B2 JP H0570866B2 JP 17814088 A JP17814088 A JP 17814088A JP 17814088 A JP17814088 A JP 17814088A JP H0570866 B2 JPH0570866 B2 JP H0570866B2
Authority
JP
Japan
Prior art keywords
stream
data
time
written
detection means
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.)
Expired - Lifetime
Application number
JP17814088A
Other languages
English (en)
Other versions
JPH0228862A (ja
Inventor
Satoshi Hosoi
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP17814088A priority Critical patent/JPH0228862A/ja
Publication of JPH0228862A publication Critical patent/JPH0228862A/ja
Publication of JPH0570866B2 publication Critical patent/JPH0570866B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔概要〕 並列論理型言語におけるデータ転送方式に関
し、 プロセツサ間通信の効率化を目的とし、 データを送り出す側の生産者プロセスを実行す
るプロセツサが、データを受け取る側の消費者プ
ロセスを実行するプロセツサとの通信に用いるバ
ツフアメモリであるストリームの大きさを有限長
として、該有限ストリームの生成された時刻を記
入する領域と、最終要素に最終を示す記号を設け
ると共に、生産者プロセスに、現在のストリーム
が生成された時刻と新しくデータを書き込む時刻
との差が予め定められた時間に達したことを監視
する時刻監視手段と、データが終端に達したかを
検出するデータ終端検出手段と、データを書き込
むべきストリームの要素位置が最後であることを
検出し新たな有限長ストリームに延長するストリ
ーム最終検出手段を備え、時間監視手段による時
間超過検出、終端検出手段によるデータ終端検出
ならびにストリーム最終検出手段によるストリー
ム最終の検出により、供給駆動的に、消費者プロ
セスにデータを転送するように構成する。
〔産業上の利用分野〕
本発明は並列論理型言語におけるデータ転送方
式に関する。
並列論理型言語とは、一つの問題を複数のプロ
セツサに並列に処理させるよう問題を並列処理可
能な要素に分解するために記述し易い言語のこと
である。本発明は、このような並列論理言語によ
るプログラムを、ネツトワークにより接続された
マルチプロセツサにより処理する際のプロセツサ
間通信の効率化に関するものである。
〔従来の技術〕
並列論型言語では、プロセスが処理の基本単位
となる。実行中に多くのプロセスが生成されるの
で、それらを統一的に管理してやる必要がある。
そこで、第5図に示すように、レデイキユーとい
うキユー(待ち行列)に全てのプロセスをつなげ
て管理する。このレデイキユーからプロセスを一
つ取り出して実行可能な間だけ実行する。実行を
中断する必要が生じたら、レデイキユーの最後に
つなげて別のプロセスを取り実行する。
いま、第6図に示すように、プロセスPがプロ
セスCに、1、2、3、…というデータを送ると
いう場合を考える。一般に、Pのようにデータを
送り出すプロセスを生産者プロセス、Cのように
データを受け取るプロセスを消費者プロセスと呼
ぶ。
このようなプロセス同士のデータのやりとり
(プロセス間通信)は、第7図のように実現され
る。即ち、生産者プロセスPがストリームという
バツフアにデータを書き込んでいき、消費者プロ
セスCがそれを読み出していく。プロセスPとC
は並列に実行され得るので、Pがデータを書き込
むより早くに、Cがデータを読みにいこうとする
ことがある。そこで、ストリームの各要素は、最
初「未定義」に初期化されており、従つて、Cの
読出しがPの書込みより早い場合には、Cは「未
定義」を読み出すことになる。その時点で、Cは
「次はこの未定義のところを読み出せばよい」と
いうことを覚えておいて処理を中断し、レデイキ
ユーの最後につなげる。このように、プロセスが
その実行を中断する際には次のストリームのどの
位置から読み込み或いは書き込むかを覚えてお
く。
〔発明が解決しようとする課題〕
上記のようなプロセス間通信を特徴とする並列
論理型言語を、第8図に示すように、プロセツサ
間結合が疎で、大きさが任意に変えられる(スケ
ーラブルと呼ばれる)構造のマルチプロセツサ上
で実行する場合を考える。第8図において、PE
はプロセツサ・エレメントであり、中央処理装置
(CPU)とメモリ(MEM)からなる。各PEはネ
ツトワークを介して結合されており、他のPEの
メモリ(MEM)には直接アクセスすることはで
きない。
いま、第9図に示すように、生産者プロセスP
と消費者プロセスCとが別のPEで実行されてい
る場合を考える。消費者プロセスCが生産者プロ
セスPからデータを受け取るためには、以下の手
順を踏むことが必要である。
(PE2側)PE1側へデータ転送要求のメツセ
ージを送る。
(PE1側)メツセージを受け取ると、ストリ
ームの中のデータ(未定義の前までのデータ)
をPE2側へ送る。
(PE2側)データを受け取ると、自分の側の
ストリームにそのデータをコピーして、プロセ
スCの実行を開始する。
(PE2側)プロセスCがデータを読み出して
いて、未定義にぶつかれば、再び引き続くデー
タの転送要求のメツセージを送る。
以後、プロセスCがデータの終端にぶつかるま
で、即ちプロセスPの実行が終わるまでこれを繰
り返す。
比較的小規模なプログラムではこの手法でも構
わない。しかし、より規模の大きい、一般的な問
題をこの並列論理型言語を用いてプログラミング
すると、実行中に生成されるプロセスの数も一段
と増え、各々のプロセスはそれほど続けては実行
できない。即ち、プロセスはデータを少し書き込
み或いは読み出しては中断し、ということを繰り
返しながら実行が進んでいく。生産者プロセスと
消費者プロセスとが別々のPEにある場合では、
わざわざネツトワークを介してデータを転送要求
のメツセージを送つても、ストリーム中には2、
3のデータしかないことが多く、消費者プロセス
の実行終了までは何回もデータ転送要求およびデ
ータ転送をしなければならない。PE内の処理に
比べて、ネツトワークを介してのデータ転送は、
相互に拘束されて効率が悪く、これが頻発するこ
とは好ましくない。
本発明が解決しようとする課題は、このような
従来の問題点を解消したデータ転送方式を提供す
ることにある。
〔課題を解決するための手段〕
第1図は、本発明の並列論理型言語におけるデ
ータ転送方式の原理ブロツク図である。
図において、1はプロセツサ・エレメント
(PE)であり、CPU11およびメモリ(MEM)
12よりなる。
2はPEであり、CPU21およびメモリ
(MEM)22よりなる。
3はネツトワークであり、PE間を結合する。
4はPE1が実行中の生産者プロセスである。
5はPE2が実行中の消費者プロセスである。
6は生産者プロセス4が消費者プロセス5への
データ転送に使用するストリームである。ストリ
ーム6は、有限長とし、この有限長ストリームの
生成された時刻を記入する領域と、最終の要素に
最終を示す記号を設けてある。
7は消費者プロセス5側のストリームである。
41は時間監視手段であり、現在のストリーム
が生成された時刻と新しくデータを書き込む時刻
との差が予め定めた時間に達したことを監視す
る。
42はデータ終端検出手段であり、データの終
端に達したことを検出する。
43はストリーム最終検出手段であり、データ
を書き込むべきストリームの要素位置が最終であ
ることを検出した新たな有限長ストリームに延長
する。
〔作用〕
本発明の構成によれば、生産者プロセスと消費
者プロセスが別々のプロセツサで行われていると
き、通常行われているように消費者プロセスから
データ転送要求のメツセージを要求駆動的に送る
のではなく、生産者プロセスが「ある程度」デー
タをストリームに書き込んだところで、生産者プ
ロセスから消費者プロセスへ供給駆動的にデータ
を送つてやるものである。
そのため、本発明では第2図に示すように、生
産者プロセス4のストリームを有限長とする。そ
して、ストリームの最後の要素には、有限長スト
リームの最後の要素を示す例えば「ストリーム最
終」を、「未定義」の代わりに入れておく。また、
この有限長ストリームの生成された時刻を記入す
る「時刻領域」を設ける。
また、生産者プロセス4に、時間監視手段41
とデータ終端検出手段42とストリーム最終検出
手段43を設け、生産者プロセス4が有限長スト
リームにデータを書き込むに際して、時刻監視
手段41が、データを書込むときの時刻と「時刻
領域」の値との差が予め定めた一定値を越えかこ
とを検出したとき、データ終端検出手段42が
データの書込み終了を検出したとき、およびス
トリーム最終検出手段43が「ストリーム最終」
にぶつかつたことを検出したときに、データを消
費者プロセス5側へ転送してやる。
このように、供給駆動的にデータを転送するこ
とにより、ネツトワークを介してのデータ転送頻
度を減らすことができる。「時刻領域」を設ける
のは、長時間にわたつてストリーム中にデータが
たまらない場合に対処するためである。
〔実施例〕
以下第3図および第4図に示す実施例により、
本発明をさらに具体的に説明する。
第3図は、本発明の一実施例における生産者プ
ロセスの有限長ストリームの延長を示す図であ
る。
本実施例における生産者プロセスPの有限長ス
トリームには、第3図aに示すように、ストリー
ムの最初の要素に、ストリームの生成時刻を記入
する「タイム領域」を設け、ストリームの最終の
要素には「未定義」の代わりに、最終を示す「未
定義2」を入れておく。
生産者プロセスからストリームへのデータ書込
みのために書込みポインタが設けられ1要素のデ
ータ書込み毎に歩進されると共に保持され、消費
者プロセスへ転送する際の読出しのために読出し
ポインタが設けられ1要素のデータ読出し毎に歩
進されると共に保持される。
生産者プロセスPは、「未定義2」にぶつかつ
たならば、第3図bに示すように、新たな有限長
ストリームを割りつけて、そちらにデータを書
き、「未定義2」にはそのデータへのポインタ
(新たなストリームの先頭アドレス)を書き込む。
第4図は、本発明の一実施例における生産者プ
ロセスの処理を示すフローチヤートである。
以下、フローチヤートのステツプに従つて生産
者プロセスの動作を説明する。
生産者プロセスは、データの最後に達したな
らば特定の終端記号を有限長ストリーム中に書
き込んでステツプへ飛ぶ。(消費者プロセス
の方でも終端記号を読み込でデータ転送の終了
を知る。)データの最後でなければステツプ
へ進む。
データを書き込もうとする時刻tと、有限長
ストリームの時刻領域の値(ストリームの消費
者プロセスへ未転送のデータが最初に書き込ま
れた時刻t0(「タイム領域」の値)との差が一定
時間Tより大きいかどうかを判断し、大きけれ
ばステツプへ飛び、そうでなければステツプ
へ進む。
次のデータを書き込むべきストリームの要素
が「未定義2」であるかを判断し、「未定義2」
であれば、ステツプへ飛び、そうでなければ
ステツプへ進む。
データをストリームに書き込み、ステツプ
へ戻る。
終端記号を書き込み、データを消費者プロセ
スへ転送し、処理を終わる。
データを書き込むべきストリームの要素が
「未定義2」であるかを判断し、そうでなけれ
ばステツプへ進み、「未定義2」であればス
テツプへ飛ぶ。
データをストリームに書き込み、データを消
費者プロセスへ転送し、「タイム領域」の時刻
を現在時刻に更新し、ステツプへ戻る。
ストリームを延長し(新たな有限長のストリ
ームを獲得して該新しいストリームのデータ書
込み領域の先頭から続けてデータを書き込み)、
元のストリームの最終要素に書き込まれた「未
定義2」を「新たなストリームへのポインタ」
に書き替え(第3図b参照)、該新しいストリ
ームの「タイム領域」に現在時刻を書き込み、
元のストリームのデータを消費者プロセスに転
送して、ステツプへ戻る。(ストリームの前
記読出しポインタは「新たなストリームへのポ
インタ」に達したら該ポインタの示す新たなス
トリームの先頭アドレスに飛ぶ。データの転送
を終わつたストリームは新たなストリームとし
て再利用することができる。) 〔発明の効果〕 以上説明のように本発明によれば、ネツトワー
クを介してのデータ転送の頻度を減らすことがで
き、疎結合のマルチプロセツサ上での並列論理型
言語の実行を効率化に寄与する効果はきわめて大
である。
【図面の簡単な説明】
第1図は本発明の原理ブロツク図、第2図は本
発明によるPE間通信を示す図、第3図は本発明
の一実施例における有限長ストリームの延長を示
す図、第4図は本発明の一実施例における生産者
プロセスの処理を示すフローチヤート、第5図は
レデイキユーを示す図、第6図はプロセス間通信
の概念を示す図、第7図はプロセス間通信の実現
を示す図、第8図はマルチプロセツサシステム例
を示す図、第9図はPE間通信を示す図である。 図面において、1,2はプロセツサ・エレメン
ト、3はネツトワーク、4生産者プロセス、5は
消費者プロセス、6,7はストリーム、11は
CPU、12はメモリ(MEM)、41は時間監視
手段、42はデータ終端検出手段、43はストリ
ーム最終検出手段、をそれぞれ示す。

Claims (1)

  1. 【特許請求の範囲】 1 並列論理型言語で記述されたプログラムを、
    複数のプロセツサがネツトワークを介して結合さ
    れたマルチプロセツサ上において実行するシステ
    ムにおいて、 データを送り出す側の生産者プロセス4を実行
    するプロセツサ1が、データを受け取る側の消費
    者プロセス5を実行するプロセツサ2との通信に
    用いるバツフアメモリであるストリーム6の大き
    さを有限長とすると共に、該ストリーム6内に転
    送すべきデータの書き込まれた時刻を書き込む領
    域を設け、且つ該ストリーム6の最終要素に最終
    を示す記号を書き込んでおき、 前記生産者プロセス4に、 前記ストリーム6の前記時刻領域から読み出し
    た時刻と現在の時刻との差が予め定めた時間に達
    したか否かを監視する時刻監視手段41と、 前記転送すべきデータが終端に達したかを検出
    するデータ終端検出手段42と、 前記転送すべきデータを書き込むべきストリー
    ムの要素の前記最終記号を読み最終要素であるこ
    とを検出したとき新たな有限長ストリームに延長
    するストリーム最終検出手段43を備え、 前記時間監視手段41による時間超過検出、前
    記終端検出手段42によるデータ終端検出ならび
    に前記ストリーム最終検出手段43によるストリ
    ーム最終の検出の何れかがあつたときだけ、供給
    駆動的に、消費者プロセス5にデータを転送する
    ように構成したことを特徴とする並列論理型言語
    におけるデータ転送方式。
JP17814088A 1988-07-19 1988-07-19 並列論理型言語におけるデータ転送方式 Granted JPH0228862A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17814088A JPH0228862A (ja) 1988-07-19 1988-07-19 並列論理型言語におけるデータ転送方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17814088A JPH0228862A (ja) 1988-07-19 1988-07-19 並列論理型言語におけるデータ転送方式

Publications (2)

Publication Number Publication Date
JPH0228862A JPH0228862A (ja) 1990-01-30
JPH0570866B2 true JPH0570866B2 (ja) 1993-10-06

Family

ID=16043342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17814088A Granted JPH0228862A (ja) 1988-07-19 1988-07-19 並列論理型言語におけるデータ転送方式

Country Status (1)

Country Link
JP (1) JPH0228862A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05302085A (ja) * 1992-04-27 1993-11-16 Mitsubishi Gas Chem Co Inc ピリミジン系液晶物質
JP4749431B2 (ja) * 2005-03-04 2011-08-17 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. パイプラインスループットを促進するための方法及び装置

Also Published As

Publication number Publication date
JPH0228862A (ja) 1990-01-30

Similar Documents

Publication Publication Date Title
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
JPH01131949A (ja) 処理依頼機能を持つ並列計算機
JP2001209549A (ja) 文脈切換えを実施する装置とその方法
JP3442932B2 (ja) 情報処理システム
US6418497B1 (en) Method and system for interrupt handling using system pipelined packet transfers
JP5213485B2 (ja) マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム
JPH0570866B2 (ja)
US8359602B2 (en) Method and system for task switching with inline execution
JP3684579B2 (ja) 分散型並列計算機のプロセッサエレメント
JPH01106158A (ja) プロセツサ間のデータ通信制御方式
JPS6336023B2 (ja)
JPH09218859A (ja) マルチプロセッサ制御システム
JPH0496167A (ja) マルチプロセッサシステムの割込み方式
JP2000155738A (ja) データ処理装置
JPH02166548A (ja) 共通バス制御方式
JPS61101864A (ja) プログラム制御方式
JPH05134997A (ja) コマンド処理方法
JP2560312B2 (ja) 情報処理システム
JPH06266630A (ja) トレース機能付き入出力制御装置
JPH06295252A (ja) 計算機
JPS61267850A (ja) 共通バス制御方式
JPH03116335A (ja) 非特権cpuから特権cpuヘの乗り移り方式
JPH0154737B2 (ja)
JPH0573471A (ja) マルチプロセツサシステム
JPH0479022B2 (ja)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term