JP2770603B2 - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JP2770603B2
JP2770603B2 JP3139065A JP13906591A JP2770603B2 JP 2770603 B2 JP2770603 B2 JP 2770603B2 JP 3139065 A JP3139065 A JP 3139065A JP 13906591 A JP13906591 A JP 13906591A JP 2770603 B2 JP2770603 B2 JP 2770603B2
Authority
JP
Japan
Prior art keywords
cluster
data transfer
data
sub
processor
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 - Fee Related
Application number
JP3139065A
Other languages
English (en)
Other versions
JPH04348451A (ja
Inventor
信吾 辻道
倫正 近藤
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

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

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 情報を処理する複数のプロセッサ手段と
    上記複数のプロセッサ手段をa個(a≧2)のプロセッ
    サ手段群に分割し、該プロセッサ手段群に対応して、各
    プロセッサ手段群内のプロセッサ手段を相互に接続可能
    とするように設けられたa本のサブデータ転送路からな
    る第1のデータ転送路および上記複数のプロセッサ手段
    をb個(b≧1)のプロセッサ手段群に分割し、該プロ
    セッサ手段群に対応して、各プロセッサ手段群内のプロ
    セッサ手段を相互に接続可能とするように設けられたb
    本のサブデータ転送路からなる第n(n≧2)のデータ
    転送路と上記各プロセッサ手段に対応して設けられ、
    記サブデータ転送路のいずれかを選択して上記各プロセ
    ッサ手段に接続するセレクタ手段を備え、上記セレクタ手段は、所要の上記プロセッサ手段が相互
    にデータ転送可能であるクラスタを構成するように、上
    記各プロセッサ手段を接続する上記サブデータ転送路を
    選択する ことを特徴とする並列計算機。
  2. 【請求項2】 上記クラスタの構成を変更する際に、上
    記サブデータ転送路を相互に接続するサブデータ転送路
    接続手段を設けたことを特徴とする請求項1記載の並列
    計算機。
  3. 【請求項3】 上記各プロセッサ手段に接続されて、
    記同一クラスタ内の他のプロセッサ手段に転送する転送
    用データを格納するバッファメモリと、 上記各バッファメモリから上記転送用データを読み出し
    て、上記サブデータ転送路を通じて上記同一クラスタ内
    の他のプロセッサ手段へのデータ転送を行うデータ転送
    制御用プロセッサを備え、 上記データ転送制御用プロセッサは、任意のタイミング
    で上記バッファメモリをアクセスすることを特徴とする
    請求項1記載の並列計算機。
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 JPH04348451A (ja) 1992-12-03
JP2770603B2 true 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)

Families Citing this family (37)

* 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
KR100259276B1 (ko) 1997-01-27 2000-06-15 윤종용 대역폭확장이 가능한 상호연결망
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 エヌイーシーコンピュータテクノ株式会社 データ処理装置およびデータ処理方法
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
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
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
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
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
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
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
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
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
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
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
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
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
US6807557B1 (en) 2000-05-31 2004-10-19 International Business Machines Corporation Method, system and program products for providing clusters of a computing environment
JP4542308B2 (ja) 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
AU2003283777A1 (en) * 2002-12-30 2004-07-22 Koninklijke Philips Electronics N.V. Processing system
JP4677222B2 (ja) * 2004-11-26 2011-04-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 中兴通讯股份有限公司 一种多处理器共享存储方法及***
US11894117B1 (en) 2013-02-07 2024-02-06 Cerner Innovation, Inc. Discovering context-specific complexity and utilization sequences
US10769241B1 (en) * 2013-02-07 2020-09-08 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

Family Cites Families (27)

* 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
WO1983001135A1 (en) * 1981-09-18 1983-03-31 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 マイクロコンピユ−タ間のデ−タ転送方法
JPS61117644A (ja) * 1984-10-31 1986-06-05 Fujitsu 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
JPS62169851U (ja) * 1986-04-17 1987-10-28
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
US4887076A (en) * 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
JPH023845A (ja) * 1988-06-17 1990-01-09 Fujitsu Ltd 通信プロトコル処理方式
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
JPH02257249A (ja) * 1989-02-01 1990-10-18 Nec Corp 情報処理システム
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
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
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
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

Also Published As

Publication number Publication date
US5649106A (en) 1997-07-15
JPH04348451A (ja) 1992-12-03

Similar Documents

Publication Publication Date Title
JP2770603B2 (ja) 並列計算機
US5056000A (en) Synchronized parallel processing with shared memory
US5072373A (en) Real-time data processing system
JP3645281B2 (ja) 共用メモリを有するマルチプロセッサ・システム
US6363453B1 (en) Parallel processor with redundancy of processor pairs
JP2577865B2 (ja) ベクトル処理装置及びその制御方法
JPH0550022B2 (ja)
JPH0241553A (ja) データ処理システム及び同期方法
JPS6353678A (ja) ベクトル処理装置
JPH07253954A (ja) 並列コンピュータ
US5333320A (en) Electronic computer system and processor element used with the computer system
US5581732A (en) Multiprocessor system with reflective memory data transfer device
US20030177273A1 (en) Data communication method in shared memory multiprocessor system
JP2004507836A (ja) ビット順次手法により大容量並列プロセッサアレイをメモリアレイに接続する方法及び装置
JPH05274279A (ja) 並列処理装置及び方法
JPH07271744A (ja) 並列計算機
JPH01214939A (ja) シングルチップマイクロコンピュータ
JP2986930B2 (ja) 対称型マルチプロセッサのタスクスケジューリング方式
JPS61134863A (ja) デ−タ処理装置
JPS62200448A (ja) 処理装置間通信システム
JP2687716B2 (ja) 情報処理装置
JP2643116B2 (ja) 主記憶制御装置
JPS62152064A (ja) シングルチツプマイクロコンピユ−タ
JPS6352240A (ja) デ−タ処理装置
JP2504535B2 (ja) バスユニットの構成方法

Legal Events

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