JPH04348451A - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JPH04348451A
JPH04348451A JP3139065A JP13906591A JPH04348451A JP H04348451 A JPH04348451 A JP H04348451A JP 3139065 A JP3139065 A JP 3139065A JP 13906591 A JP13906591 A JP 13906591A JP H04348451 A JPH04348451 A JP H04348451A
Authority
JP
Japan
Prior art keywords
cluster
data transfer
data
bus
transfer
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.)
Granted
Application number
JP3139065A
Other languages
English (en)
Other versions
JP2770603B2 (ja
Inventor
Shingo Tsujimichi
辻道 信吾
Tomomasa Kondo
近藤 倫正
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3139065A priority Critical patent/JP2770603B2/ja
Publication of JPH04348451A publication Critical patent/JPH04348451A/ja
Priority to US08/641,947 priority patent/US5649106A/en
Application granted granted Critical
Publication of JP2770603B2 publication Critical patent/JP2770603B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数のプロセッサを
備えた並列計算機に関するものである。
【0002】
【従来の技術】図11は例えば「中田ほか:並列回路シ
ミュレーションマシンCenju,情報処理,VOL.
31,NO.5,通巻303号,pp.593−601
」に示された従来の並列計算機を示すシステム構成図で
あり、図において、1はプロセッサ(PE)であり、2
はクラスタ内のPEを接続するクラスタバス、3はクラ
スタ間を接続する多段接続ネットワーク、4はクラスタ
間のデータ転送を補助するネットワークプロセッサ、5
は同じくクラスタ間のデータ転送を補助するネットワー
クアダプタである。図においてメモリは各PEに分散配
置され、かつ、それぞれがシステム全体でユニークなア
ドレスを持つ、分散共有メモリ方式である。
【0003】また、図12は図11におけるクラスタ内
の構成を示す。図において、1はPE(プロセッサ)で
あり、8は各PEに分散配置されローカルメモリの性質
を持ちながら、かつそれぞれがシステム全体でユニーク
なアドレスを持つ分散共有メモリである。2はPE1お
よび分散共有メモリ8を接続するクラスタバスである。 ここで、分散共有メモリ8と直接接続しているPE1を
そのメモリの所有者、クラスタバス2によって接続して
いるPE1を非所有者と呼ぶ。
【0004】次に動作について説明する。図11のシス
テムにおいて、PE1間のデータ転送は分散共有メモリ
を経由して行なう。各PE1がクラスタ内の他のPE1
のメモリにアクセスする場合はクラスタバス2を経由し
て直接アクセスするのに対して、他のクラスタのPE1
のメモリをアクセスする場合はクラスタバス2を経由し
てネットワークプロセッサ4とネットワークアダプタ5
に依頼を出し、更に多段接続ネットワーク3を経由して
アクセスすることになる。どちらの転送形態もハードウ
ェア及び基本ソフトウェアのサポートによりアプリケー
ションプログラムからの見かけは変わらないが、実際の
アクセス速度は大きく異なる。
【0005】次に図12の動作について説明する。この
システムにおいて、各PE1は、自分が所有する分散共
有メモリ8に格納されたデータに対して演算を行なう場
合は、直接高速にメモリをアクセスできるが、他のPE
1の分散共有メモリ8に格納されたデータに対して演算
を行なう場合は、クラスタバス2を経由して分散共有メ
モリ8をアクセスする必要がある。この例の場合分散共
有メモリ8に2ポートメモリを使用しているので、各P
E1は分散共有メモリ8の所有者のメモリアクセスを妨
げる事なく、他者の分散共有メモリ8をアクセスできる
。しかし、非所有PE1間で同時に分散共有メモリ8を
アクセスしようとした場合は、クラスタバス2が競合す
るからクラスタバス2を使用する順序についての調停が
必要になり、メモリアクセスに待ちが生じる。そして、
この方式では演算とデータ転送を一つのPE1が時分割
で行なうので、データ転送時にオーバヘッドが増えれば
演算に影響を与え、性能が低下する。
【0006】
【発明が解決しようとする課題】図11の従来のクラス
タ構成を持つ並列計算機では、クラスタ内に閉じた並列
処理とクラスタ間にまたがった並列処理でデータ転送な
ど性質が異なる為、各クラスタに割り付けるアプリケー
ションプログラムの負荷が変動した場合に、柔軟に対応
できずクラスタ内のPEを遊ばせてしまうか、または逆
に、データ転送性能を桁違いに低下させながら他クラス
タのPEを利用するしかなかった。
【0007】また図11においてクラスタ数が多い場合
、あるいは、クラスタ間にまたがった処理が多い場合は
、多段接続ネットワークを経由してアクセスすることが
多くなりクラスタによる多段接続ネットワークの競合が
起きる。したがって、あるときには、スムーズに多段接
続ネットワークを経由して処理が実行できたり、別なと
きには、多段接続ネットワークがあくのを待たされたり
して、同一処理に費やす処理時間が異なってくることが
あった。リアルタイムの処理においては、処理時間が一
定でないことにより結果が異なる場合があり、処理時間
を所定の時間で終了する必要があることが多く、同一処
理は、どのようなタイミングであっても、処理を一定時
間で終了できるシステムが必要であった。
【0008】以上のように、図11の従来の並列計算機
では、PEを有効に利用できなかったり、クラスタ間の
独立性という利点を確保できずにリアルタイム性の保証
が困難になったり、データ転送効率を落としたりという
問題点があった。
【0009】従来の図12における並列計算機でも、同
時に複数の非所有PEが分散共有メモリをアクセスしよ
うとした場合は、クラスタバスが競合するから待ちが生
ずる。この待ちの制御をハードウェアで行なう場合でも
、ソフトウェアで行なう場合でも、各PEは余分のオー
バヘッドを負うことになる。また、データ転送をデータ
が発生した時、またはデータが必要になってから行なう
という基本的な性質から、データ転送が集中する場合が
ある。それらの結果、PEを有効に利用できなかったり
、クラスタバスのデータ転送性能を落としたりという問
題点があった。
【0010】この発明は、クラスタ構成を計算機の稼働
中に再構成可能とすることによって、各クラスタに割り
付けられるアプリケーションプログラムの負荷の変動に
あわせてクラスタ内のPE数を変更することにより、資
源(PE)を有効活用するとともに、クラスタ間の独立
性という利点を確保してリアルタイム性および再現性を
保証することができ、また、バス等のデータ転送性能の
低下を防止することができる並列計算機を得ることを目
的としている。
【0011】またこの発明は、クラスタバスを介したP
Eと分散共有メモリの間でのデータ転送を、PEとは別
に設けたデータ転送用PEに任せることにより、PEの
転送オーバヘッドを減少させ、またデータの転送をデー
タが発生した時点、およびデータが必要とされた時点か
ら独立させ、データ転送タイミングの選択の自由度を向
上させることによって、クラスタバスの実質的なデータ
転送性能向上を目的としている。
【0012】また、この発明は転送用PEの同期待ちオ
ーバヘッドを減少させ、データ転送効率を向上させるこ
とを目的としている。
【0013】また、この発明はコンパイラにより、新し
いアーキテクチャで必要となるデータ転送用プログラム
の作成を容易にすることを目的としている。
【0014】
【課題を解決するための手段】この発明に係る並列計算
機は、以下の要素を有するものである。(a)  情報
を処理する複数のプロセッサ手段、(b)  上記の各
プロセッサ手段に接続可能な複数のデータ転送手段、(
c)  上記の各プロセッサ手段に対応して設けられ、
各プロセッサ手段に接続可能な複数のデータ転送手段の
中からひとつのデータ転送手段を選択してプロセッサ手
段に接続するセレクタ手段。
【0015】また、この発明に係る並列計算機は、以下
の要素を有するものである。(a)  クラスタ内にあ
る複数のプロセッサ、(b)  上記各プロセッサに接
続されたローカルメモリ、(c)  上記各プロセッサ
間のデータ転送を行うデータ転送路、(d)  上記各
プロセッサ間のデータ転送制御を行うデータ転送制御用
プロセッサ。
【0016】また、この発明に係る並列計算機は、以下
の要素を有するものである。(a)  あるプロセッサ
から他のプロセッサに転送するデータを格納するバッフ
ァメモリ、(b)  任意のタイミングで上記バッファ
メモリをアクセスし、転送するデータが上記バッファメ
モリに格納されていない場合、割り込み処理により上記
バッファメモリを再アクセスするデータ転送制御用プロ
セッサ。
【0017】また、この発明に係るコンパイラは以下の
要素を有するものである。 (a)  ソースプログラムから演算部分とデータ転送
部分を分離する手段、(b)  上記演算部分と上記デ
ータ転送制御部分に同期・通信制御機能を追加し、独立
した演算用プログラムとデータ転送用プログラムを作成
する手段。
【0018】
【作用】この発明における並列計算機は、セレクタ手段
により、計算機稼働中の適当なタイミングで各プロセッ
サ手段(PE)と複数のデータ転送手段の接続関係を変
更できるので、各アプリケーションプログラムの負荷量
が変動したときに、計算機全体のクラスタ構成を再構成
でき、各アプリケーションプログラムを適当な演算パワ
ーを持ったクラスタで実行できる。
【0019】またこの発明における並列計算機は、デー
タ転送制御をPEと別に設けた転送用PEが行なう。ま
た、データ転送はデータが発生した時点またはデータを
必要とする時点とは別のタイミングで行われ、転送が不
成功の場合は再転送する。
【0020】また、ソースプログラムからデータ転送部
分を自動的に抽出し、演算用プログラムとデータ転送用
プログラムを分離、再構成する。
【0021】
【実施例】
実施例1.以下、この発明の一実施例を図について説明
する。図1において、1はプロセッサ(PE)、2はク
ラスタ内のデータ転送を受け持つクラスタバス(データ
転送手段)で、21は第一のクラスタバスで、22は第
二のクラスタバスである。第一のクラスタバス21は、
サブクラスタバス21a、21b、21c、21d、・
・を有し、第二のクラスタバス22は、サブクラスタバ
ス22a、22b、22c、・・を有している。そして
、各PEが2本のクラスタバス21、22に接続可能な
ように配置されており、図に示すようにサブクラスタバ
スは、互い違いに切断されている。各サブクラスタバス
は4個のPEに接続可能であり、各PEは2本のサブク
ラスタバスに接続可能である。
【0022】6はPEを2本のクラスタバス21、22
の内どちらのバスに接続するかを切り替えるためのセレ
クタ(セレクタ手段)である。7はシステム全体を接続
するシステムバスでクラスタ間のデータ転送を受け持つ
。8はメモリであり、9はプロセッサ(PE)1とメモ
リ8を有するプロセッサ手段である。
【0023】次に動作について説明する。たとえば、本
システムではセレクタの切り替えは、システム内の全セ
レクタについて一斉に行なう。逆に言えば、システムの
一部分についてのみセレクタの切り替えを行なうことは
できないし、また、1データの転送ごとにセレクタの切
り替えを許すものでもない。このセレクタの切り替えタ
イミングをシステム再構成タイミングと呼ぶ。
【0024】この再構成タイミングは本システムで同時
に実行される複数のリアルタイムプロセスの開始、終了
のタイミングから適切に規定される。本システムでは各
PEは2本のバスに接続可能になっているが、どちらの
バスに接続するかを検討し、実際に接続を変更するのは
システム再構成タイミングにおいてのみである。それ以
外のタイミングでは、各PEは2本のクラスタバス21
、22のどちらか一方のバスに固定的に接続されており
、その結果、システムのクラスタ構成は固定であり、ク
ラスタ内の各PEは1本のバスで接続されている。
【0025】再構成された各クラスタはクラスタバスに
関しては互いに独立であり、他のクラスタでの処理内容
や処理状況に影響されない。図1の例の場合、各サブク
ラスタバスは4個のPEに接続可能であり、各PEは2
本のサブクラスタバスに接続可能である。このクラスタ
バスとPEの接続関係を変更することによりシステムの
クラスタ構成を変更することができる。
【0026】このクラスタバスとPEの接続関係を変更
することによりシステムのクラスタ構成を変更した例を
、図2、及び図3に示す。図2は、サブクラスタバス2
1aによりプロセッサ手段2個からなるクラスタaを構
成し、サブクラスタバス22aによりプロセッサ手段1
個からなるクラスタbを構成し、サブクラスタバス21
bによりプロセッサ手段3個からなるクラスタcを構成
し、サブクラスタバス22bによりプロセッサ手段2個
からなるクラスタdを構成し、サブクラスタバス21c
によりプロセッサ手段1個からなるクラスタeを構成し
、サブクラスタバス22cによりプロセッサ手段3個か
らなるクラスタfを構成した例を示すものである。図2
に示すように、2重に張られたクラスタバスを活用する
と各クラスタ内のPE数を1個から4個の範囲で変更す
ることができる。
【0027】また、全てのクラスタバスを利用する必要
はなく、例えば、図3のようにクラスタバス21をまっ
たく使用せず、クラスタバス22のみでクラスタを構成
してもよい。図3は、サブクラスタバス22aによりプ
ロセッサ手段4個からなるクラスタaを構成し、サブク
ラスタバス22bによりプロセッサ手段4個からなるク
ラスタbを構成し、サブクラスタバス22cによりプロ
セッサ手段4個からなるクラスタcを構成した例を示す
ものである。この場合、各クラスタに最大数の4個のP
Eを接続することができる。ただし、この場合は、クラ
スタバス21は使用されないので無駄になる。なお、図
2及び図3には図示していないが、本実施例でもリアル
タイム性の要求が低いような場合はシステムバス7を経
由したクラスタ間のデータ転送が可能である。
【0028】図2及び図3に示したように、各クラスタ
a、b、c、・・は、与えられた処理がそのクラスタ内
で他のクラスタから独立して実行できるように構成され
る。この構成はセレクタ6が所定のサブクラスタバスを
選択することにより達成される。
【0029】このように、実行されるプロセスに先立っ
て、クラスタを再構成しておくと各プロセスは、他のク
ラスタをまったくアクセスすることなく自分自身のクラ
スタ内だけで処理を実行し終了することができる。たと
えば、プロセスa、b、c、d、e、fが並列実行可能
で、かつ、それぞれのプロセスがプロセッサを2個、1
個、3個、2個、1個、3個必要としている場合、あら
かじめセレクタが図2に示すクラスタ構成を取るように
切り替えられる。したがって、プロセスa、b、c、d
、e、fは、他のクラスタをまったくアクセスすること
なく自分自身のクラスタ内だけで処理を実行し終了する
ことができる。
【0030】このように、プロセスa、b、c、d、e
、fの実行前に、図2に示すような構成にすることで、
プロセスの動作環境は常に一定し、処理時間及び処理結
果の再現が可能になり、従来の並列計算機で問題とされ
ていた、PEを有効に利用できなかったり、クラスタ間
の独立性という利点を確保できずに、リアルタイム性の
保証が困難になったり、データ転送効率を落としたりと
いう問題点が解消できる。
【0031】実施例2.また、上記実施例ではクラスタ
バスを2重に張る場合について説明したが、図4に示す
ように3重に張ってもよいし、更に4重、5重にしても
よい。この様にすると、システム内のクラスタ数や、各
クラスタ内のPE数の変動幅を大きくすることができ、
全体としてクラスタ構成の自由度を高くすることができ
る。
【0032】実施例3.また、上記実施例ではクラスタ
バスを4個のプロセッサごとに切断してサブクラスタバ
スを構成した場合をしめしたが、更に2個、3個、5個
、6個、・・・にしてもよい。また、この数は一定でな
くてもよく、2個、3個、5個、6個、・・ごとに区切
られたクラスタが混在してもよい。この様にすると、シ
ステム内のクラスタ数や、各クラスタ内のPE数の変動
幅を大きくすることができ、全体としてクラスタ構成の
自由度を高くすることができる。
【0033】実施例4.また、上記実施例1ではクラス
タバスは、互い違いに切断されている場合を示したが、
図5に示すように、クラスタバス21とクラスタバス2
2は切断されていなくてもよい。そして、このように切
断のない状態で、更にバスを4重、5重にしてもよい。 この様にすると、システム内のクラスタ数や、各クラス
タ内のPE数の変動幅を大きくすることができ、全体と
してクラスタ構成の自由度を高くすることができる。あ
るいは、図示しないが、クラスタバス21は切断されて
いて、クラスタバス22は切断されていない場合でもよ
い。
【0034】実施例5.また、上記実施例1ではクラス
タバスは、互い違いに切断されている場合を示したが、
図6に示すように、サブクラスタバスとサブクラスタバ
スを結合するバス結合器10を設けてもよい。バス結合
器10は、図示したように隣り合うサブクラスタバスを
結合するだけでなく、図示しないが離れたサブクラスタ
バスを結合できるようにしてもよく、こうすることによ
りクラスタ構成の自由度を高くすることができる。また
、同じクラスタバス内のサブクラスタバスを結合するだ
けでなく他のクラスタバスのサブクラスタバスを結合で
きるようにしてもよい。
【0035】実施例6.また、上記実施例ではクラスタ
内の接続バスをバスとしたが、その他の形式のネットワ
ークでもよい。
【0036】実施例7.更に、上記実施例ではローカル
メモリの性質を強く保持した分散共有メモリ方式だが、
完全な共有メモリ方式でもよいし、完全なローカルメモ
リ方式でもよい。
【0037】実施例8.更に、上記実施例ではシステム
の再構成をシステム全体を対象として一斉に行なったが
、システムの一部分を対象にした再構成を許し、その結
果、飛び飛びに生じる未利用PEを再利用するために、
適当な間隔でガーベッジコレクション、すなわちシステ
ム全体を対象にした再構成を行なってもよい。
【0038】以上、上記実施例では、クラスタ構造を持
つ並列計算機において、プロセッサ間を接続してクラス
タを構成するための、プロセッサごとに準備された複数
のデータ転送手段(クラスタバス)と、複数のデータ転
送手段のうちの一つを各プロセッサごとに計算機稼働中
に選択するセレクタ手段とを備え、データ転送手段の選
択及び固定をアプリケーションプログラム群の要求にあ
わせて再構成できるように、計算機稼働中の適当なタイ
ミングで制御する手段を備えた並列計算機を説明した。
【0039】なお、特開昭61−148564号公報に
、「並列処理計算機」として、複数のプロセッサを2次
元配列し、各々の行及び列でプロセッサ間を結合してな
る並列処理計算機において、任意数の異なる行または列
のプロセッサ間を直列接続する機能を持つバス接続機構
を設けたことを特徴とする並列計算機が開示されている
が、この技術は、発明の構成の点から、プロセッサを2
次元配列した計算機に応用したものであること、及び、
あらかじめ定まった行または列のプロセッサ間を直列接
続するためのものであり、行または列のプロセッサ内に
おいては、プロセッサの接続形態が変更できないこと等
の点でこの発明にかかる並列計算機とは異なり、また、
発明の目的及び以下に述べる効果においてもこの発明に
かかる並列計算機とは異なるものである。
【0040】実施例9.図7にクラスタ内における実施
例を示す。図7において、1はPE、8はローカルメモ
リの性質を強く持った分散共有メモリ、2はクラスタ内
のデータ転送を受け持つクラスタバス、31はPE1間
のデータ転送制御用の転送用PE、32は転送用PE3
1のデータ転送動作を規定する転送用プログラムを格納
するプログラムメモリ、33は他のPE1に転送すべき
出力データを格納するFIFOレジスタである。
【0041】次に図8はFIFOレジスタのデータ転送
タイミング制御手段の具体的実施例を示す図である。図
8において、41はFIFOレジスタのデータ格納部で
ある2ポートメモリ、42は2ポートメモリへの書き込
み用アドレスカウンタ、43は2ポートメモリからの読
み出し用アドレスカウンタ、44は転送用PE31がデ
ータが準備される前にFIFOをアクセスした場合に割
込信号を発生する割込信号生成回路、45は転送用PE
4からのリードストローブ信号、46は割込信号生成回
路44が出力する割込信号である。
【0042】また、図9はデータ転送用プログラム抽出
機能付きコンパイラの機能図である。図9において、5
1は並列言語で記述した並列型ソースプログラム、52
は並列型ソースプログラム51を自動的に並列型演算用
ソースプログラムと転送用ソースプログラムに分離する
転送用ソースプログラム抽出分離用プリプロセッサ、5
3はプリプロセッサ52が出力する並列型演算用ソース
プログラム、54はプリプロセッサ52が出力する転送
用ソースプログラム、55は従来の並列言語用コンパイ
ラ、56は並列言語用コンパイラ55が出力する演算用
オブジェクトプログラム、57は並列言語用コンパイラ
55が出力する転送用オブジェクトプログラムである。
【0043】また、図10はプリプロセッサ52の機能
を説明する図である。図10において、61はPE1間
のデータ転送に関わる部分を抽出する抽出部、62は演
算用プログラムと転送用プログラムを分離・再構成する
分離・再構成部である。
【0044】次に動作について説明する。図7の4個の
PE1がひとまとまりの処理を分担して並列処理する場
合、PE1間(その分散共有メモリ8間)でデータ転送
が必要になる。その場合に各PE1は出力するデータを
自分の出力用FIFOレジスタ33に出力する。そこか
ら先の相手先PE1(その分散共有メモリ8)への転送
は、転送用PE31が担当し以下のように実行する。
【0045】このアーキテクチャでは、あるまとまった
処理を行なっている間は、PE1間での処理の分担法や
処理手順を変更しないというスタティックスケジューリ
ングの考え方を前提としている。つまりプログラムを作
成する時点で、PE1への分割法と同期タイミングを一
意に規定する。そこで、データ転送が発生する大まかな
タイミングがわかるし、各PE1からデータが出力され
る順序は完全に規定される。また、それぞれのデータが
どこに転送されるかもあらかじめわかっている。
【0046】そこでデータ転送を受け持つプログラムを
あらかじめ作成することができる。この転送用プログラ
ムは演算用プログラムと同じ時に作成され、同じ時に転
送用PE31のプログラムメモリ32にローディングさ
れる。転送用PE31はこのプログラムに従いFIFO
33からデータを読みだし、それを指定のPE1の分散
共有メミリ8に転送する。
【0047】あるFIFO33からデータを読み出す順
序は、そのFIFO33のPE1がデータを出力した順
である。また、複数のFIFO33のうち次にどのFI
FO33をアクセスするかは、上でのべたように、あら
かじめプログラム作成時に規定しておき、実行時に順序
を変更することはない。
【0048】この様にしてデータ転送を実施する場合、
FIFO33にデータが格納されていることが必要だが
、この同期制御を高速に行なうデータ転送タイミング制
御手段を図7,図8を参照して説明する。
【0049】まず、PE1は演算用プログラムに従がい
演算を行い、その結果をFIFO33に格納する。一方
、転送用PE31は自分のプログラムの進行状態にのみ
従い、FIFO33へのアクセスを実行する。この際、
当然FIFO33にデータが準備されていないこともあ
りえる。そこで、この状態をFIFO33から転送用P
E31に通知する為に、割り込み信号を利用する。 FIFO33は図8のように構成されており、割込信号
生成回路44は、書き込み用アドレスカウンタ42と読
み出し用アドレスカウンタ43を比較して、条件によっ
て割込信号を生成する比較回路を供えている。
【0050】転送用PE31がFIFO33をアクセス
してデータを読み出そうとすると、転送用PE31から
のリードストローブ信号45により、FIFO33は読
みだし動作を検出し比較回路のチェックを行なう。そし
て読み出し用アドレスカウンタ43の方が大きい場合、
FIFO33はデータがまだ準備されていないと判断し
て割り込み信号46を出力し、転送用PE31に通知す
る。転送用PE31はこの割り込み信号46を受け付け
たら、今実行したデータ転送に失敗したと判断し、割り
込み処理プログラムにより読み出し動作を再実行する。 割り込み信号46が発生しなかった場合、データ転送が
正常に実行されたものと判断し、データ転送プログラム
に従い次のFIFOアクセスを行なう。
【0051】以上のように、転送用PE31が、FIF
O33にデータが準備されていることを仮定して転送動
作を開始し、失敗した場合だけ割り込み処理により再実
行を行なうことにより、オーバヘッドを減らすことがで
きる。以上説明したように、この方式によるデータ転送
は転送用PE31が制御するため、データの発生にも、
PE1からのデータの要求にも無関係に行われるが、デ
ータ転送能力を十分に持たせれば、ほぼデータ発生のタ
イミングで転送を行なうことができる。その結果、デー
タ転送のタイミングの自由度が大きくなり、バスを有効
に活用することができる。
【0052】また、プログラマが上で述べたようなデー
タ転送用プログラムを作成することはもちろん可能であ
るが、従来無かった作業になるので、ある程度負担が大
きい作業であると考えられる。そこで、転送用ソースプ
ログラム抽出分離用プリプロセッサ52を利用する。こ
のプリプロセッサ52は並列言語コンパイラと組合わせ
て用いる。その場合の処理の流れについて図9によって
説明する。
【0053】まず、プログラマは従来の並列言語によっ
てプログラムを記述する。このプログラムをプリプロセ
ッサ52に通すと、演算部とPE1間データ転送部が自
動的に分離され、並列型演算用ソースプログラム53と
転送用ソースプログラム54が生成される。これらをそ
れぞれ従来の並列言語用コンパイラ55に通すことによ
って、演算用オブジェクトプログラム56と転送用オブ
ジェクトプログラム57が生成される。
【0054】次に、プリプロセッサ52の機能を図10
により説明する。プリプロセッサ52はまず、抽出部6
1がメモリのリード、ライトを全てチェックして他のP
E1の分散共有メモリ8をアクセスしている部分を検出
する。次に分離・再構成部62において、抽出部61で
検出したPE1間データ交換に関わる部分を分離して、
FIFO33を用いたデータ転送機構用のプログラムに
再構成する。また、残った演算用プログラムも他のPE
1の分散共有メモリ8へのアクセスを、自分の分散共有
メモリ8からの読みだし、または自分のFIFO33へ
の書き込みに変更して再構成する。同時に、転送用、演
算用のそれぞれに対して必要な同期制御命令を追加する
【0055】実施例10.また、上記実施例9ではクラ
スタ内のPEが4個の場合について説明したが、2個以
上の任意の個数でよい。
【0056】実施例11.また、上記実施例9ではクラ
スタ内の接続パスをバスとしたが、その他の形式のネッ
トワークでもよい。
【0057】実施例12.更に、上記実施例9ではロー
カルメモリの性質を強く保持した分散共有メモリ方式だ
が、完全なローカルメモリ方式でもよい。
【0058】実施例13.また、上記実施例9ではFI
FOを用いたが、別の方式のデータバッファリングを行
なっても良い。その一例として、分散共有メモリ自体に
出力データを置いても良く、その場合も、アドレスは予
め既知のものとして転送用プログラムを作成することが
できる。
【0059】実施例14.また、上記実施例9ではプリ
プロセッサを並列言語コンパイラと組合わせたが、自動
抽出、分離、再構成機能を並列言語コンパイラ、または
、自動並列化コンパイラに組み込んでも良い。
【0060】
【発明の効果】以上のように、この発明によれば並列計
算機のクラスタ構成を、計算機の稼働中の適当なタイミ
ングに再構成できるように構成したので、各クラスタに
割り当てられたアプリケーションプログラムの負荷量の
変動に合わせて各クラスタ内のPE数を変更することが
でき、計算機資源を有効に活用できるとともに、各アプ
リケーションプログラムの実行環境の独立性を保持する
ことができ、その結果、各アプリケーションプログラム
のリアルタイム実行の保証及び結果の再現性の保証が得
られるという効果がある。
【0061】以上のように、この発明によれば各PE間
のデータ転送を転送用PEが行なうように構成したので
、PEの転送に関わるオーバヘッドを削減することがで
きるという効果がある。また、データの発生またはデー
タの要求から直接規定されないタイミングでデータ転送
を行なうことができ、PEに余分なオーバヘッドを追加
することなく、その演算タイミングに影響を与えずにデ
ータ転送タイミングを変更することができ、その結果、
全体としての実質的データ転送能力を向上させることが
できるという効果がある。
【0062】以上のように、この発明によれば準備でき
ていないデータをアクセスした場合に割り込み信号が発
生するように構成したので、データが準備できているこ
とを仮定して転送動作を開始することができ、転送が不
成功の場合だけデータの到着を待つことができ、その結
果、正常転送時の転送用PEのオーバヘッドを削減し、
転送効率を上げることができるという効果がある。
【0063】以上のように、この発明によれば、コンパ
イラがデータ転送プログラムを演算用プログラムから自
動的に抽出できるように構成したので、プログラマは特
殊なアーキテクチャを意識せずにプログラムを記述する
ことができ、その結果、プログラムの作成が容易になる
という効果がある。
【図面の簡単な説明】
【図1】この発明の実施例1による並列計算機のシステ
ム構成図である。
【図2】この発明の実施例1におけるクラスタ構成の一
例図である。
【図3】この発明の実施例1におけるクラスタ構成の別
の一例図である。
【図4】この発明の実施例2におけるバスを三重に張っ
た場合の実施例図である。
【図5】この発明の実施例4におけるクラスタ構成の別
の一例図である。
【図6】この発明の実施例5におけるクラスタ構成の別
の一例図である。
【図7】この発明の実施例9による並列計算機のシステ
ム構成図である。
【図8】この発明の実施例9における割込信号発生機能
付きFIFOレジスタの構成図である。
【図9】この発明の実施例9におけるコンパイラの機能
系統図である。
【図10】この発明の実施例9におけるプリプロセッサ
の機能説明図である。
【図11】従来の並列計算機のシステム構成図である。
【図12】従来の並列計算機のクラスタ内の構成図であ
る。
【符号の説明】
1  プロセッサ(PE) 2  クラスタバス(データ転送手段)6  セレクタ
(セレクタ手段) 7  システムバス 8  メモリ 9  プロセッサ手段 10  バス結合器 21  第一のクラスタバス 21a  第一のクラスタバスのサブクラスタバス21
b  第一のクラスタバスのサブクラスタバス21c 
 第一のクラスタバスのサブクラスタバス21d  第
一のクラスタバスのサブクラスタバス22  第二のク
ラスタバス 22a  第二のクラスタバスのサブクラスタバス22
b  第二のクラスタバスのサブクラスタバス22c 
 第二のクラスタバスのサブクラスタバス31  転送
用PE 33  FIFO 44  割込信号生成回路 52  プリプロセッサ 61  抽出部 62  分離・再構成部

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】  以下の要素を有する並列計算機(a)
      情報を処理する複数のプロセッサ手段、(b)  
    上記の各プロセッサ手段に接続可能な複数のデータ転送
    手段、(c)  上記の各プロセッサ手段に対応して設
    けられ、各プロセッサ手段に接続可能な複数のデータ転
    送手段の中からひとつのデータ転送手段を選択してプロ
    セッサ手段に接続するセレクタ手段。
  2. 【請求項2】  以下の要素を有する並列計算機(a)
      クラスタ内にある複数のプロセッサ、(b)  上
    記各プロセッサに接続されたローカルメモリ、(c) 
     上記プロセッサ間のデータ転送を行うデータ転送路、
    (d)  上記各プロセッサ間のデータ転送制御を行う
    データ転送制御用プロセッサ。
  3. 【請求項3】  以下の要素を有する請求項第2項記載
    の並列計算機 (a)  上記あるプロセッサから上記他のプロセッサ
    に転送するデータを格納するバッファメモリ、(b) 
     任意のタイミングで上記バッファメモリをアクセスし
    、転送するデータが上記バッファメモリに格納されてい
    ない場合、割り込み処理により上記バッファメモリを再
    アクセスする上記データ転送制御用プロセッサ。
  4. 【請求項4】  以下の要素を有するコンパイラ(a)
      複数のプロセッサを保有する並列計算機に使用する
    プログラムから、演算部分とデータ転送部分を分離する
    手段、(b)  上記演算部分と上記データ転送制御部
    分に同期・通信制御機能を追加し、独立した演算用プロ
    グラムとデータ転送用プログラムを作成する手段。
JP3139065A 1991-03-14 1991-06-11 並列計算機 Expired - Fee Related JP2770603B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3139065A JP2770603B2 (ja) 1991-03-14 1991-06-11 並列計算機
US08/641,947 US5649106A (en) 1991-03-14 1996-05-02 Parallel computer with reconstruction of processor clusters

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4956591 1991-03-14
JP3-49565 1991-03-14
JP3139065A JP2770603B2 (ja) 1991-03-14 1991-06-11 並列計算機

Publications (2)

Publication Number Publication Date
JPH04348451A true JPH04348451A (ja) 1992-12-03
JP2770603B2 JP2770603B2 (ja) 1998-07-02

Family

ID=26389984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3139065A Expired - Fee Related JP2770603B2 (ja) 1991-03-14 1991-06-11 並列計算機

Country Status (2)

Country Link
US (1) US5649106A (ja)
JP (1) JP2770603B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304568B1 (en) 1997-01-27 2001-10-16 Samsung Electronics Co., Ltd. Interconnection network extendable bandwidth and method of transferring data therein
JP2006157285A (ja) * 2004-11-26 2006-06-15 Fujitsu Ltd サーバ装置
US9418044B2 (en) 2002-12-16 2016-08-16 Sony Interactive Entertainment Inc. Configuring selected component-processors operating environment and input/output connections based on demand

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717950A (en) * 1994-01-11 1998-02-10 Hitachi, Ltd. Input/output device information management system for multi-computer system
SE502485C2 (sv) * 1994-07-22 1995-10-30 Integrated Vision Prod Anordning vid en bildbehandlingsprocessor
US5802295A (en) * 1994-09-12 1998-09-01 Canon Kabushiki Kaisha Information processing method and system therefor
JP3573546B2 (ja) * 1995-10-27 2004-10-06 富士通株式会社 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
US5790788A (en) * 1996-07-23 1998-08-04 International Business Machines Corporation Managing group events by a name server for a group of processors in a distributed computing environment
US5931938A (en) * 1996-12-12 1999-08-03 Sun Microsystems, Inc. Multiprocessor computer having configurable hardware system domains
KR100207598B1 (ko) * 1997-01-27 1999-07-15 윤종용 상호연결망으로서 파이브 채널을 사용한 클러스터시스템
FR2773239A1 (fr) * 1997-12-30 1999-07-02 Bull Sa Configuration d'un systeme informatique multinodal
US6092174A (en) * 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
JP3976432B2 (ja) * 1998-12-09 2007-09-19 エヌイーシーコンピュータテクノ株式会社 データ処理装置およびデータ処理方法
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6807557B1 (en) 2000-05-31 2004-10-19 International Business Machines Corporation Method, system and program products for providing clusters of a computing environment
JP4570962B2 (ja) * 2002-12-30 2010-10-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 処理システム
US7827455B1 (en) * 2007-05-01 2010-11-02 Unisys Corporation System and method for detecting glitches on a high-speed interface
CN103186501A (zh) * 2011-12-29 2013-07-03 中兴通讯股份有限公司 一种多处理器共享存储方法及系统
US10769241B1 (en) * 2013-02-07 2020-09-08 Cerner Innovation, Inc. Discovering context-specific complexity and utilization sequences
US11894117B1 (en) 2013-02-07 2024-02-06 Cerner Innovation, Inc. Discovering context-specific complexity and utilization sequences
WO2014135233A1 (en) * 2013-03-05 2014-09-12 Zf Friedrichshafen Ag Data processing technique
US9477628B2 (en) * 2013-09-28 2016-10-25 Intel Corporation Collective communications apparatus and method for parallel systems
EP3144820A1 (en) 2015-09-18 2017-03-22 Stichting IMEC Nederland Inter-cluster data communication network for a dynamic shared communication platform

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61117644A (ja) * 1984-10-31 1986-06-05 Fujitsu Ltd クラスタ・システムにおける問合せ端末の二重問合せ防止方式
JPS62169851U (ja) * 1986-04-17 1987-10-28
JPH023845A (ja) * 1988-06-17 1990-01-09 Fujitsu Ltd 通信プロトコル処理方式
JPH02501791A (ja) * 1987-10-16 1990-06-14 ディジタル イクイプメント コーポレーション データ処理装置クラスターに使用するコンピュータ相互結合カプラ
JPH02257249A (ja) * 1989-02-01 1990-10-18 Nec Corp 情報処理システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648064A (en) * 1976-01-02 1987-03-03 Morley Richard E Parallel process controller
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
DE3276916D1 (en) * 1981-09-18 1987-09-10 Rovsing As Christian Multiprocessor computer system
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
JPS6049465A (ja) * 1983-08-30 1985-03-18 Fanuc Ltd マイクロコンピユ−タ間のデ−タ転送方法
US4897784A (en) * 1985-06-10 1990-01-30 Nay Daniel L Multi-level bus access for multiple central processing unit
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US5086498A (en) * 1987-01-23 1992-02-04 Hitachi, Ltd. Parallel computer with asynchronous communication facility
US4918686A (en) * 1987-07-27 1990-04-17 Hitachi, Ltd. Data transfer network suitable for use in a parallel computer
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US4985830A (en) * 1988-09-27 1991-01-15 Universities Research Association, Inc. Interprocessor bus switching system for simultaneous communication in plural bus parallel processing system
US5182801A (en) * 1989-06-09 1993-01-26 Digital Equipment Corporation Apparatus and method for providing fast data transfer between multiple devices through dynamic reconfiguration of the memory space of the devices
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5361363A (en) * 1990-10-03 1994-11-01 Thinking Machines Corporation Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes
JPH0581216A (ja) * 1991-09-20 1993-04-02 Hitachi Ltd 並列プロセツサ
JPH05181816A (ja) * 1992-01-07 1993-07-23 Hitachi Ltd 並列データ処理装置及びマイクロプロセッサ
JP3199205B2 (ja) * 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61117644A (ja) * 1984-10-31 1986-06-05 Fujitsu Ltd クラスタ・システムにおける問合せ端末の二重問合せ防止方式
JPS62169851U (ja) * 1986-04-17 1987-10-28
JPH02501791A (ja) * 1987-10-16 1990-06-14 ディジタル イクイプメント コーポレーション データ処理装置クラスターに使用するコンピュータ相互結合カプラ
JPH023845A (ja) * 1988-06-17 1990-01-09 Fujitsu Ltd 通信プロトコル処理方式
JPH02257249A (ja) * 1989-02-01 1990-10-18 Nec Corp 情報処理システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304568B1 (en) 1997-01-27 2001-10-16 Samsung Electronics Co., Ltd. Interconnection network extendable bandwidth and method of transferring data therein
US9418044B2 (en) 2002-12-16 2016-08-16 Sony Interactive Entertainment Inc. Configuring selected component-processors operating environment and input/output connections based on demand
JP2006157285A (ja) * 2004-11-26 2006-06-15 Fujitsu Ltd サーバ装置

Also Published As

Publication number Publication date
JP2770603B2 (ja) 1998-07-02
US5649106A (en) 1997-07-15

Similar Documents

Publication Publication Date Title
JPH04348451A (ja) 並列計算機
US5056000A (en) Synchronized parallel processing with shared memory
US5367690A (en) Multiprocessing system using indirect addressing to access respective local semaphore registers bits for setting the bit or branching if the bit is set
US5263169A (en) Bus arbitration and resource management for concurrent vector signal processor architecture
JP2577865B2 (ja) ベクトル処理装置及びその制御方法
JPH0550022B2 (ja)
JP2826028B2 (ja) 分散メモリ型プロセッサシステム
CA2018865C (en) Multiprocessor system with vector pipelines
JP2884831B2 (ja) 処理装置
US7155540B2 (en) Data communication method in shared memory multiprocessor system
JP3219974B2 (ja) 同期タイプ入出力命令の多重処理方法
KR100294314B1 (ko) 데이터처리시스템및방법과그런시스템과의통신시스템
JPS6097440A (ja) 仮想多重プロセツサ装置
JPS6049464A (ja) マルチプロセッサ計算機におけるプロセッサ間通信方式
JPS6240737B2 (ja)
JPH1153327A (ja) マルチプロセッサシステム
JPH02129724A (ja) プログラム実行方式
JPH04302352A (ja) マルチプロセッサシステム
JPH0290331A (ja) 仮想計算機システムのためのプロセツサ間通信命令処理装置
JPS60178538A (ja) マイクロプログラム制御方式
JPS6259345B2 (ja)
JPH0535507A (ja) 中央処理装置
JPH0329049A (ja) マルチプロセッサシステム
JPH03182945A (ja) 主記憶内データ転送方式
Koczela Study of spaceborne multiprocessing, phase 2 Quarterly report

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees