JPH05504644A - 超並列処理システム用の通信構成の生成 - Google Patents

超並列処理システム用の通信構成の生成

Info

Publication number
JPH05504644A
JPH05504644A JP3511775A JP51177591A JPH05504644A JP H05504644 A JPH05504644 A JP H05504644A JP 3511775 A JP3511775 A JP 3511775A JP 51177591 A JP51177591 A JP 51177591A JP H05504644 A JPH05504644 A JP H05504644A
Authority
JP
Japan
Prior art keywords
message
communication
processing
node
communication link
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
JP3511775A
Other languages
English (en)
Inventor
ダール,イー.デニング
Original Assignee
スィンキング マシンズ コーポレーション
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 スィンキング マシンズ コーポレーション filed Critical スィンキング マシンズ コーポレーション
Publication of JPH05504644A publication Critical patent/JPH05504644A/ja
Pending 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
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 超並列処理システム用の通信構成の生成発明の背景 本発明は、一般的には、超並列処理システムに関し、より具体的には、この種の システムにおける処理ノード間でデータを受け渡しするための通信構成に関する 。
コンピュータは一般的に1つまたは2つ以上のプロセッサ、メモリ、および入出 カシステムから構成されている。メモリはデータとそのデータを処理するための 命令をストアしている。プロセッサは命令に従ってデータを処理し、処理を終え たデータをメモリにストアする。人aカシステムはデータと命令をシステムにロ ードすることと、処理されたデータをシステムから取り出すことを容易にするも のである。
最新のコンピュータ・システムは大部分が「フォンノイマン」思想を基礎に設計 されている。つまり、各プロセッサはプログラム・カウンタをもち、プログラム ・カウンタは、その(つまり、プロセッサの)次の命令が入っているメモリ内の ロケーションを示している。ある命令の実行中に、プロセッサは次に処理すべき 命令のロケーションを示すようにプログラム・カウンタをインクリメントする。
このようなシステムにおけるプロセッサはデータや命令を共用することができる が、プロセッサ同士が望ましくない方法で干渉し合うのを防止するために、この ようなシステムは、プロセッサが別々の命令ストリーム、つまり、別々の命令列 を処理するような構成になっているのが代表的であり、プロセッサが秩序正しく データをアクセスできるようにする複雑なプロシージャを備えている場合もある 。
フォンノイマン型計算機では、ある命令ストリームの中の命令は、1つのデータ ・ストリームの中のデータを処理するために使用されている。この種の計算機は 、プロセッサが1つのときは、一般に5ISD (単一命令/単一データ)と呼 ばれ、プロセッサが複数のときは、MIMD (複数命令/複数データ)と呼ば れている。
データ配列の処理といったように、ある種の計算では、複数のデータ・ストリー ムの中のデータを処理するために同じ命令を使用することが可能である。このよ うな計算では、5ISD計算機は各データ・ストリームの中のデータについて同 じ演算または一連の演算を反復的に実行することになる。最近では、すべてのデ ータ・ストリームの中のデータを並列に処理する単一命令/複数データ(SIM D)計算機が開発されている。SIMD計算機はデータ・ストリームのすべてを 並列に処理するので、このような問題は5ISD計算機よりも高速に、MIMD 計算機よりも低コストで処理することができ、しかも同程度の並行処理が得られ る。
「メツセージ・パケットの経路指定方法と装置」に関する米国特許第4.598 .400号(1986年7月1日特許付与、W、 Daniel Hillis )および「並列プロセッサ」に関する米国特許第4,814,973号(198 9年3月21日特許付与、W、 Daniel Hillis)(以下、r H illis特許」という)は、ホスト・コンピュータ、マイクロ・コントローラ および処理要素のアレイからなり、各処理要素はビット・シリアル・プロセッサ とメモリを備えているSIMD計算機を開示している。この中で特に、ホスト・ コンピュータはマイクロ・コントローラに送られるコマンドを出力する。あるコ マンドの入力を受けると、マイクロ・コントローラはアレイに対して1つまたは ?J!数の]MD命令を送る。各々のSIMD命令は、各処理要素のメモリにス トアされているデータに対して処理要素のすべてが同じ演算を実行できるように 作用する。
Hillis特許に開示されているアレイは、さらに2つの通信構成を備え、処 理要素間のデータ転送を容易化している。一方の通信構成では、処理要素は、通 常のアレイ・パターンにおいて最寄りの隣接処理要素のうちの特定の処理要素に データを並列に送信できるようになっている。もう一方の通信構成は、処理要素 を多次元構造に実装している集積回路チップ相互間を接続するグローバル・ルー タと呼ばれており、任意の処理要素がシステム内の任意の他の処理要素にデータ を送信できるようにするものである。最初の通信構成はr NEWSJと呼ばれ 、この構成では、処理要素はアレイ(配列)に編成され、マイクロ・コントロー ラの制御のもとで、処理要素のすべてが次元の1つに沿ったある選択方向にビッ ト・シリアル・データを一斉に送信し、また、同じ次元に沿った反対方向に処理 要素から送られてきたビット・シリアル・データを受信できるようになっている 。
他方、グローバル・ルータでは、データはメツセージの形体で送信され、各メツ セージはデータを受信する処理要素を識別するアドレスを収めている。処理要素 は、マイクロ・コントローラの制御の下でグローバル・ルータを経由して、メツ セージをビット・シリアル形式で一斉に送信することができるが、マイクロ・コ ントローラは、NEWS構成のようには、メツセージの宛先を制(卸していない 。しかし、アドレスと、各メツセージに入れて送ることができる他のメツセージ ・プロトコル情報は、各メツセージの中のアドレスを解読してメツセージをその 宛先に送るために必要な時間と同様に、オーバヘッドなって、データを送信でき る速度低下の原因になっている。
発明の要約 本発明はプロセッサ・アレイ内の処理ノード間でブタを転送することを容易にす る通信構成を生成するシステムを提供するものである。
以下要約して説明すると、本発明は、通信パターン情報を生成するシステムを提 供し、超並列プロセッサを形成するように所定のパターンに通信リンクで相互に 結合された処理ノード間で通信を行うことを容易化することを目的としている。
システムはマツピング要素と通信パターン情報生成要素を備えている。マツピン グ要素は、問題グラフからの問題頂点を超並列プロセッサの処理ノード上にマツ ピング(写像)し、このマツピングは、それぞれの問題頂点がマツピングされた 処理ノード間の通信に関連する遅延を表した通信コスト関数との関係で行われる 。通信パターン情報生成要素は、処理ノード上にマツピングされた問題頂点に関 連する通信パターン情報を生成し、この情報は処理ノード間のメツセージ転送を 指示する際に使用されて、問題グラフで定義された通信リンクを経由して処理ノ ード間でメツセージを転送することを容易にするものである。
図面の簡単な説明 本発明の特許請求の範囲に記載されている通りである。本発明の上述した利点と その他の利点は、以下に添付図面を参照してもっと分かりやすく説明する。
法例図面において、 第1図ないし第4B図は、本発明に従って構築されたシステムの動作を理解しや すくするために示したブロック図、フローチャートおよびデータ構造図である。
第5八図ないし第6C図は、本発明に従って構築されたシステムによって実行さ れる操作を示したフローチャートである。
第7八図ないし第7C図は、第5A図ないし第6C図を参照して説明する動作を 理解しやす(するために示したデータ構造図である。
実施例の詳細な説明 1、序論 本発明による通信構成生成システムは、以前に引用したHillis特許で説明 されているシステムと同じように、超並列プロセッサにおける通信を向上させる ためのものである。
本発明によるシステムは、有限要素分析、流体の流れ分析、電子回路のシミュレ ーション、シミュレートしたニューラル・ネットワークといったように、配列要 素の固定パターンからとらえて問題を定義することができ、配列要素間の通信の ために定義された通信グラフが不規則であるが、固定的で、初めから分かってい るような問題の処理で利用すると、非常に便利なものである。
例えば、流体の流れ分析では、配列要素は空間中の固定点を表すことができ企の で、この分析によって、連続する時間の小刻みな変化における流体の流れの方向 と速度に関する情報を得ることができる。この連続する小刻みな時間変化を通し て分析を続けている間、空間中の上流点での処理結果は、下流点での処理に使用 される。下流点は、事実上、上流点に「依存」している。連続する時点での処理 を可能にするために、空間中の各点で生成された結果は、空間中の下流点を処理 する時に使用される。この種の分析での通信グラフは空間中の点間のパターンを 表し、このパターンは、事実上、流れ分析の対象となる点間に依存関係があるこ とを示している。
同様に、電子回路のシミュレーションでは、配列要素はシミュレートする回路内 の要素を表すことができるので、このシミュレーションによって、例えば、連続 する時点に回路要素の出力端子に現れる電圧や電流などの回路特性を得ることが できる。この連続する時点を通して分析を続けている間、各回路要素での処理結 果は、下流側の回路要素、すなわち、各回路要素の出力端子に接続された回路要 素の処理のために得られる。下流側の回路要素は、事実上、上流側の回路要素に 依存している。連続する時点での処理を可能にするために、各回路要素で生成さ れた結果は、下流側の回路要素の処理を容易にするために得られる。この種の分 析での通信グラフは、回路内の点間のパターンを表し、このパターンは、事実上 、シミュレーションの対象となる回路要素間に依存関係があることを示している 。
第1図は問題グラフ5であり、複数の問題頂点10A−10M (全体を符号1 0(i)で示している)がエツジ11A−11N (全体を符号11(j)で示 している)よって相互に結合されている状態を示している。各々の問題頂点10 (i)は、超並列プロセッサによる処理時に処理される配列内の点を表している 。例えば、流体の流れ分析例では、各問題頂点10(i)は、空間中の各点を表 している。同様に、電子回路のシミュレーション例では、各問題頂点10(i) は各回路要素を表している。
2つの問題頂点10(i)間の各エツジ11 (j)は、問題頂点10(i)で 表された配列転換の依存関係を表している。実際には、エツジ11(j)は処理 すべき配列の要素間のデータの通信を表している。例えば、流体の流れ分析では 、問題頂点10(i)は空間中の点を表し、エツジ11(j)は連続する時点に おける流体の流れ特性の判断を可能にするために必要な上流側の点と下流側の点 間のデータ通信のパターンを表している。同様に、電子回路のシミュレーション ではエツジ11(j)は連続する時点における必要な電気的特性の判断を可能に するそれぞれの回路素子間の通信パターンを表している。
前掲のHillis特許に説明されているように、このような処理を超並列プロ セッサで行うために、問題グラフ5の様々な要素がプロセッサ・アレイの各種処 理要素と関連づけられている。これは、問題グラフ5の要素をプロセッサ・アレ イ上に「マツピング」すると言われている。プロセッサ・アレイは、全体を符号 22(n)で示している通信リンクで相互に結合された複数の処理要素21A〜 21Q(全体を21(m)で示している)からなる配列20(第1図)で表され ている。
Hillis特許に記載されている超並列プロセッサでは、通信リンク22(n )は多次元立方体の形体になっている。
通信構成生成システムでは、問題頂点10(i)をプロセッサ・アレイの各種処 理要素にマツピングすることによって、通信リンク22 (n)経由の通信を効 率化し、プロセッサ・アレイによる処理を高速化している。ある場合には、エツ ジ11(j)で結合された問題頂点10(i)を隣接の処理要素21(m) 、 つまり、通信リンク22(n)で結合された処理要素にマツピングすることが可 能である。しかし、多くの場合は、問題頂点、10(i)は隣接していない処理 要素22 (m)と関連づけられるので、その処理要素に接続されたそれぞれの エツジ11 (j)は複数の通信リンク22(n)と中間の処理要素21(m) によって表されることになる。システムには、処理要素21(m)間で通信を行 うために各処理要素で使用されるテーブルが用意されている。各処理要素にある テーブルは、1または2以上のメツセージ転送サイクル期間中に各データ項目を 特定の通信リンクと関係づけて、データを連続する処理要素間で転送することを 可能にして依存関係を実現するための項目を含んでいる。
先に進む前に、理解を容易にするために、本発明の1実施例のシステムが使用さ れているプロセッサ・アレイについて詳しく説明する。
コンピュータ・システムはマイクロ・コントローラ35を備えており、これはホ スト36によって制御され、コントローラの方は処理ノードの配列を制御し、第 1図には、処理ノードの1つ、つまり、処理ノード40が示されている。処理を 遂行する時は、ホスト・コンピュータ36からコマンドがマイクロ・プロセッサ 35に送られる。コマンドを受けると、マイクロ・コンピュータ35は処理とそ の他の操作を並列に制御する1つまたは2つ以上の命令あるいはその他の制判信 号詳を、処理ノードのすべてに同時並行に送ることができる。さらに、いくつか の処理ノード40は前掲のHillis特許に記載されているように相互に結合 されて、処理ノード21(m)間のデータ転送を容易にしている。
第1図に示すように、処理ノード40は2つの処理要素(PE)チップ41Hと 41L(全体を41で示している)を備λており、これらのチップはデータ・バ ス43を介して接続されている。1実施例では、データ・バスは32本のデータ ・ラインD(31:0)からなり、これらは、PEチップ41Hに接続された上 位データD(31:16)とPEチップ41Lに接続された下位データD(45 :0)に分割されている。
各PEチップ41には、全体を44で示した1組のシリアアル・プロセッサと全 体を45で示したルータ・ノードが実装されている。シリアル・プロセッサはマ イクロ・プロセッサ35からSP lN5TRシリアル・プロセッサ命令を受け て動作して、メモリ42にストアされているデータの処理を行う。各シリアル・ プロセッサ44は全体を49で示した関連のコンテキスト・フラグをもち、シリ アル・プロセッサがSP lN5TRシリアル・プロセッサ命令信号によってイ ネーブルされる演算を実行するかどうかは、このフラグの条件によって決まる。
すなわち、シリアル・プロセッサによる処理は、関連のコンテキスト・フラグ4 9の条件に基づ(条件付きになっている。各コンテキスト・フラグ49の条件は 、例えば、関連のシリアル・プロセッサ44によるその前の処理によって設定さ れる。
マイクロ・コントローラ5は、各セットが各仮想プロセッサに関連づけられた複 数セットの各データ項目を各メモリ12に用意しておくことにより、シリアル・ プロセッサが多数の仮想プロセッサをエミュレートすることを可能にする。その 場合は、マイクロ・プロセッサ5はSP lN5TRシリアル・プロセッサ命令 信号をなん度も出して、シリアル・プロセッサ14(i)がデータ項目のセット を逐次に処理するように並列にイネーブルする。シリアル・プロセッサ14(i )は、プロセッサによってエミュレートされた各仮想プロセッサに関連づけられ たコテキスト・フラグをもっこともでき、特定のデータ・セットの処理をフラグ で条件づけることができる。
メモリ42は、メモリ42内の記憶場所を指定しているSEL MEM ADR S選択メモリ・アドレス信号とSEL !IIEMADR3選択メモリ・アドレ ス信号で指定された記憶場所にデータをストアするのか、その場所から取り出す のかを指定したMEM CTRLメモリ制御信号を受けて動作する。SEL M EM ADR3選択メモリ・アドレス信号はマルチプレクサ46から与えられ、 このマルチプレクサはマイクロ・コントローラ35からのMEM CTRLメモ リ制回信号の制(卸を受けて動作する。マルチプレクサ46はマイクロ・コント ローラ35からのMCMEM ADRSマイクロ・コントローラ・メモリ・アド レス信号またはIND ADR3選択メモリ・アドレス信号のどちらかをSEL  MEM ADR3選択メモリ・アドレス信号としてメモリ42に結合する。
ルータ・ノードも、マイクロ・コントローラ35からのRTRCTRLルータ制 御信号を受けて動作して、データを収めたメツセージを一方の処理ノード40か ら別の処理ノードに転送する。
本発明の1実施例では、各PEチップ41は16のシリアル・プロセッサ44を 備え、各プロセッサは、データ・バス43のデータ・ラインの1つに関連づけら れている。すなわち、各シリアル・プロセッサ44(i)はデータ・ラインD( i)ビi”はセット(31,、、、、O)からの整数である1の1つからデータ ・ビットを受け取り、そのデータ・ライン上にデータ・ビットを送出する。メモ リ42は32ビツト・スライスに編成された記憶場所をもち、各スライスは、マ ルチプレクサ46からのSEL ME!1!ADR5選択メモリ・アドレス信号 の特定のバイナリ・コード値によって識別される。SEL MEM ADR3選 択メモリ・アドレス信号の特定値によって識別されたメモリ内のスライスからデ ータを取り出して、送るときは、メモリ42かうそのスライスのビット61〜0 がそれぞれデータ・ラインD(31)〜D(0)上に送出される。他方、SEL  MEMADRS選択メモリ・アドレス信号の特定値によって識別されたメモリ 内のスライスにデータをロードするときは、メモリ42はビット61〜0をそれ ぞれデータ・ラインD(31)〜D(0)から受け取り、それらのビットをスラ イスのそれぞれのビットにロードする。
(以下余白) メモリ42内のデータの多重ビット・ワードに対する処理をシリアル・プロセッ サを使用して行うために、マイクロ・コントローラ35は、その値でメモリ42 内の連続する記憶場所を指定しているSEL MEM ADR3選択メモリ・ア ドレス信号、データのスライスを送信またはストアするようにメモリをイネーブ ルするHEM CTRL制御信号、およびそれぞれの関連データ・ラインD(i )上のビットに対する必要な演算を実行するようにシリアル・プロセッサ44を イネーブルするSP lN5TRシリアル・プロセッサ命令の生成を繰り返して イネーブルする。従って、メモリ42内のデータは2通りの見方で見ることがで きる。すなわち、(i)1つはスライスから見た見方であり、これは、”5LI CE”印の矢印で示されており、MEM ADRSメモリ・アドレス信号を受け て1つずつ、メモリ42からデータ・バス43上に送出される、あるいはデータ ・バス43からメモリ42によって受信されるデータの固定サイズ・ワード(「 データ・スライス」)を表している。(ii)もう1つはプロセッサから見た見 方であり、これは、”PRO(:ESSOR“印の矢印で示されており、個々の シリアル・プロセッサからアクセスできるデータ42のメモリ42内の編成を表 している。
各シリアル・プロセッサ44(i)と関連のメモリ42部分によって、前述した 処理要素21 (+a)の1つが構成されている(第2図)。
すべての処理ノード40のルータ・ノード45は配列を構成するプロセッサ・ノ ード間のメツセージ転送を容易にするように相互結合されている。各メツセージ はメツセージを受け取る宛先となる処理ノート40とシリアル・プロセッサ44 (i)を指定したアドレスとデータを含んでいる。本発明の1実施例では、前掲 のHillis特許に記載されているように、ルータ・ノードは多次元立方体の 形態に相互結合されている。各ルータ・ノード45Hと45Lは、マイクロ・コ ントローラ35からのRTRCTRLルータ制且信号の制御を受けて、他の処理 要素チップ41上の他のルータ・ノード45に、それぞれ符号HCCjH(11 :O)およびHC−0−L(11:O)で示した複数の通信リンクを経由してメ ツセージを送信する。
さらに、各ルータ・ノード45Hと451はそれぞれHCj−H(11:O)と HC−I−L(11:O)で示した通信リンクからメツセージを受信する。ルー タ・ノード45は、メツセージが処理ノード40上のシリアル・プロセッサ44 (i)あてであるかどうかを受信した各メツセージのアドレスから判断し、もし そうであれば、メツセージをデータ・バス43のデータ・ラインD(i)上に結 合し、そのデータ・バスを経由してメツセージを受け取るシリアル・プロセッサ はメモリ42をアクセスする。マイクロ・コントローラ35は、SEL MEM  ADRS選択メモリ・アドレス信号とMEM C丁RLメモリ制御信号の生成 をイネーブルして、メツセージからのデータをメモリ42にストアすることを可 能にする。
各処理ノード40に接続された各種通信リンクHC−CjH(11: O)、H C−0−L(11:0)、HC−I−L(11:0)およびHCj−L (l  l :O)は、従来と同じ方法で他の様々な処理ノードと結合されて、多次元相 互結合を実現している。従ッテ、符号HC−0−H(11:O)とHC−0−L (11:0)テ示した送出側通信リンクは、他の処理ノード40のルータ・ノー ド45側のHCj−H(11:O)とHC−I−L(11:0)で示した様々な 到来側通信リンクに対応している。本発明の1実施例では、ルータ・ノード45 Hと45Lの回路は前掲のHillis特許に記載の回路と類似しているので、 詳細は省略する。
ルータ・ノード45は、マイクロ・コントローラ35の制御を受けて、1または 2以上のメツセージ・サイクル期間にメツセージ転送を行う。すなわち、1つの メツセージ転送操作は、ホスト36からの1つのメツセージ転送コマンドを受け て開始された後、完了するまでに複数のメツセージ転送サイクルが必要になる。
各メツセージ転送サイクル期間に、各処理ノード4oは各々に接続された各通信 リンクを経由してメツセージを別の処理ノードに転送することができる。このよ うに転送された各メツセージごとに、宛先シリアル・プロセッサ44(i)が受 信側処理ノード40に置かれていれば、メツセージを受信したルータ・ノードは メツセージに入っているデータをそこに転送する。すなわち、ルータ・ノードは 45は、宛先シリアル・プロセッサに関連するデータ・ラインD(i)上にデー タを結合して、プロセッサ形式でそれをメモリ42にストアする。
他方、宛先シリアル・プロセッサ44(i)が受信側処理ノード40に置かれて いない場合は、その処理ノード40は、そのあとに続くメツセージ転送サイクル 期間にその処理ノードに接続された通信リンクを経由してメツセージを別の処理 ノード40に転送する。最終的に、メツセージ転送操作時に転送されたメツセー ジのすべてがそれぞれの宛先シリアル・プロセッサに到着すると、その時点でメ ツセージ転送操作は終了する。
各メツセージ転送サイクル時に、マイクロ・コントローラ35は、送出メツセー ジをストアすべきメモリ42内の同じ記憶場所を識別する。従って、理解される ように、前掲のHillis特許に記載のシステムでは、複数のメツセージの宛 先シリアル・プロセッサ44(i)が同じである場合、ルータ・ノード40が結 合操作を行わなければ、1つのメツセージ転送サイクル時に1つのメツセージし かそのシリアル・プロセッサに送ることができないので、後続のメツセージは後 続のメツセージ転送サイクル時に転送されることになる。
処理ノード40は、スライス形式またはプロセッサ形式に編成されたメモリ42 内のデータを処理する補助プロセッサ50と、補助プロセッサ50とデータ・バ ス43とのインタフェースとなるトランスポーザ・モジュール51をもつことも できる。補助プロセッサ50を、例えば浮動小数点数演算プロセッサにすれば、 浮動小数点データ形式のデータに対して算術論理演算を行うことができる。各種 処理ノード40に置かれた補助プロセッサ50とトランスポーザ・モジュール5 1はそれぞれマイクロ・コントローラ35からのP lN5TR補助プロセッサ 命令信号とXPOSERCTRL )−ランスポーザ制御信号を受けて動作する 。マイクロ・コントローラ35から出される他の制御信号の場合と同じように、 マイクロ・コントローラ35はAP lN5TR補助プロセッサ命令信号とXP O3ERCTRL )−ランスポーザ制御信号をすべての処理ノードの補助プロ セッサ50とトランスポーザ・モジュール51に同時に送って、これらが同じ? 寅算を同時に実行することを可能にする。
トランスポーザ・モジュール51はいくつかのトランスポーザ回路52A〜52 M(全体を52で示している)を備えている。各トランスポーザ52は入カマル チブレクサ54から入力データを受け取って、書込みポインタ・レジスタ55の 内容によって指定された複数のスロットの1つにそれをストアする。レジスタ5 5には、関連のトランスポーザ52内のスロットに各データ項目をストアする前 に、ポインタを入れておくことができる。別の方法として、いずれかのデータを 関連のトランスポーザ52にロードする前に初期値をレジスタにロードしておき 、後続の各データ項目がそこにロードされるつどインクリメントさせることも可 能である。入力マルチブレクサ54はXPOSER(:TRL トランスポーザ 制御信号の制御を受けて、データ・バス43またはバス56からのデータ信号を 選択的にトランスポーザ52に結合する。バス56には、補助プロセッサ50か らの処理済みデータを表しているAP IN(61:O)補助プロセッサ・イン 信号が搬送される。
トランスポーザ52は、XPOSERCTRL トランスポーザ制御信号を受け て動作し、そこにストアされているデータのトランスポジションを生成する。ト ランスポーザ・モジュール51は2つの出力マルチプレクサ60と61も備えて おり、これらもXPOSERCTRL トランスポーザ制御信号の制御を受けて 、トランスポーズされたデータをバス62上に転送するのを制御して、補助プロ セッサ50に送り、あるいはデータ・バス43上に転送するのを制(卸して、メ モリ42にまたはPEチップ41に送る。マルチプレクサ60はトランスポーザ 52の出力端子からデータ信号を受信し、トランスポーザの1つからの信号を選 択的にデータ・バス43上に結合する。同様に、マルチプレクサ61はトランス ポーザ52の出力端子からデータ信号を受信し、トランスポーザ52の1つから の信号を選択的にバス62上に結合して、補助プロセッサに送信する。
処理ノード40は、データ・バス43と補助プロセッサ50とを直接に結ぶ経路 (つまり、非トランスポーズ経路)も備λている。理解されるように、トランス ポーザ・モジュール51は、プロセッサ形式でメモリ42から送られてきて、デ ータ・バス43の別々のライン上をシリアルに送信されるデータを、補助プロセ ッサ50による処理に適した並列形式にトランスポーズすることを容易にする。
データがスライス形式でメモリにストアされているときは、トランスポーズを行 う必要はない。さらに、トランスポーザ・モジュール51は、補助プロセッサ5 0から処理済みデータを受信し、そのデータをプロセッサ形式でメモリ42にス トアする必要があるときは、データをトランスポーズしてデータ・バス43の所 定のライン上をシリアルに送信する。補助プロセッサ50からの処理済みデータ をスライス形式でメモリ42にストアする必要があるときは、データを補助プロ セッサ50から非トランスポーズ経路を経由してメモリ42に送ることができる 。
さらに、トランスポーザ・モジュール51は、マルチプレクサ46に結合される IND MEM ADR3間接メモリ・アドレス信号を出力するいくつかの構成 要素も備えている。この間接メモリ・アドレス指定機能によると、処理ノード4 0は、ローカルに判断されたメモリ・アドレスを独自のメモリ42に与えること ができるので、それぞれのメモリ内のアドレス指定される記憶場所を各種処理ノ ード40間で異なるものにすることができる。トランスポーザ・モジュール51 は、ベース・レジスタ63から送られてきたBASE信号とマルチプレクサ61 からの0FFSET信号を受けてIND MEM ADR5間接メモリ・アドレ ス信号を出力する加算器62を備えている。従って、0FFSET信号をトラン スポーザ52の1つの出力またはデータ・バス43上の信号に対応させろことが 可能である。ベース・レジスタ63と最大オフセット・レジスタ65には、マイ クロ・コントローラ35からのXPOSERCTRL トランスポーザ制御信号 を受けて、データ・バス43経由で送られてき値が別々に入る。
比較回路66は、マルチプレクサ61からのバイナリ・コード値がレジスタ65 からのMAX 0FFSET信号のバイナリ・コード値を越えているかどうかを 判断して、0FFSET信号から得たオフセットが最大オフセット・レジスタ6 5で示された最大オフセット以下であるかどうかを示すGOMP OK比較状況 信号を出力する。0FFSET信号の値が最大オフセット・レジスタ65に入っ ている最大オフセットを越えていることをCOMP OK比較状況信号が示して いるときは、マイクロ・コントローラ66は、IND MEM ADRS間接メ モリ・アドレス信号が示している記憶場所にストアすることを禁止する。
トランスポーザ・モジエール51は、最初にスライス形式でメモリにストアされ ていたトランスポーズ済みデータを得るためにも使用される。これは、処理要素 41のルータ・ノード45から送信されるもので、メツセージ転送サイクル時に ルータ・ノード45間を相互に結合している各種通信リンク経由で処理ノード4 0間でデータをスライス形式で転送できるようにする。この操作を可能にするた めに、マイクロ・コントローラ35は処理ノード40が送受信を同時にできるよ うにするので、各処理ノード40に置かれたトランスポーザ・モジュール51の トランスポーザの1つ、つまり、トランスポーザ52(i)は送信トランスポー ズと指名されて、送信用に使用され、別のトランスポーザ、つまり、トランスポ ーザ52(i)は受信トランスポーズと指名されて、受信用に使用される。
データ・スライスが処理ノード40間で転送されるときの操作について、それぞ れデータの送受信の説明図である第3A図と第3B図、およびそれぞれ送信トラ ンスポーズ52(i)と受信トランスポーズ52(jJ内のデータの編成を示し た図である第4A図と第4B図を参照して詳しく説明する。予備的に、処理ノー ド40間のデータ・スライスの転送は、一般的に4つのシーケンスで行われる。
最初は、マイクロ・コントローラ35は、一連の繰返しで、処理ノード40が一 斉に送信データ・ポインタをメモリ42からポインタ・トランスポーザ52 ( k) として示されている第3のトランスポーザに転送することを可能にする( 第3A図中のステップ101と102)。
送信データ・ポインタは、プロセッサ形式でメモリ42にストアされており、メ ツセージ転送時に転送されるデータからなるデータ転送バッファのメモリ42内 のスライスを指示している0本発明の1実施例では、各送信データ・ポインタは データ転送バッファのベースからのオフセットからなっている。
送信データ・ポインタがポインタ・トランスポーザ52(i)にロードされると 、マイクロ・コントローラ35は、処理ノードが一斉に送信データ・ポインタを 使用して、それぞれの送信トランスポーザ52(i)にロードすべきそれぞれの メモリ42内のスライスを繰り返して指定できるようにする(ステップ103と 104 > 、そのあと、マイクロ・コントローラ35は、処理ノード40がそ れぞれの送信トランスポーザ52(i)にあるデータを通信リンクを経由して繰 り返し送信し、同時に受信し、受信したデータを受信トランスポーザ52(i) にロードすることを可能にする(第3八図中のステップ105〜107および第 3B図中のステップ111〜114)。
受信トランスポーザ52 (i)がいっばいになると、マイクロ・コントローラ 35は、一連の繰り返しで、処理ノード40が受信トランスポーザ52(i)の 内容をそれぞれのメモリ42内の転送データ・バッファに転送することを可能に する(第3B図中のステップ116と117)。
各メツセージ転送サイクル時に、転送データ・バッファにストアされているデー タは、前のメツセージ転送サイクル時に使用されたアドレスより上のメモリ42 内のアドレスにストアされる。このシーケンスは、メツセージ転送操作が完了す るまで、連続するメツセージ転送サイクルの各々で繰り返される。
より具体的に説明すると、第2図と第3A図に示すように、初期状態では、メモ リ42には送信データ・ポインタじXMIT DATA PTR3”)のテーブ ルと送信すべきデータ・スライスがストアされている転送データ・バッファじX FERDATA”)が!かれている。送信データ・ポインタ・テーブルには、メ ツセージ転送サイクル時に送信トランスポーザ52(i)内のスロットと呼ばれ る連続する記憶場所にストアすべきスライスを収めている転送データ・バッファ 内の記憶場所を指しているポインタが入っている。第4A図を参照して以下に説 明するように、各メツセージ転送サイクル期間、転送データ・バッファからのス ライスが送信トランスポーザ52(i)のスロットにロードされるときの順序に よって、バス43のどのデータ・ラインD(il上で送信トランスポーザが各デ ータ・スライスを結合するかが事実上決まり、これによって、各データ・スライ スが送信される時の特定の通信リンクHC−0−H(11:O)またはHC−0 −L(11:O)が選択される。通信リンクは配列の中の異なるプロセッサに接 続されているので、メツセージ転送サイクル時に送信された送信データからなる 各データ・スライスを受信する処理ノードは、送信データ・ポインタによって事 実上選択される。
上述したように、マイクロ・コントローラ35は、ポインタ・トランスポーザ5 2 Fk)と送信トランスポーザ52(i)の両方のローディングを一連の繰り 返しで行うことを可能にする。ポインタ・トランスポーザ52(k)をローディ ングするときは、マイクロ・コントローラ35は、各繰返し時に、MCMEM  ADRSマイクロ・コントローラ・メモリ・アドレス信号、MEM CTRLメ モリ制御信号およびXPOSERCTRL トランスポーザ制御信号を発生し、 これらの信号により、各処理ノード40では、(1)メモリは送信データ・ポイ ンタからのスライスをデータ・バス43上に結合し、(2)トランスポーザ・モ ジュール51はデータ・バス43上のスライスをポインタ・トランスポーザ52  (k)の次のスロットにロードする(ステップ101)。各繰返し時、MCM EM ADRSマイクロ・コントローラ・メモリ・アドレス信号はメモリ42内 のスライスを指しており、MEM CTRLメモリ制御信号はマルチプレクサ4 6がMCMEM ADRSマイクロ・コントローラ・メモリ・アドレス信号をメ モリ42に対するSEL VIE!A ADR3選択メモリ・アドレス信号とし て結合するようにイネーブルする。
最初の繰返しでは、ステップ101時に、マイクロ・コントローラはポインタ・ トランスポーザ52(k)に関連するポインタ・レジスタ55(k)を初期化す るXPOSERCTRL信号を発生して、最初のスライスがポインタ・トランス ポーザ52(k+の最初のスロットにロードされるようにイネーブルする。後続 の繰返し時には、 XPOSERCTRL トランスポーザ制御信号は、連続す るスライスがポインタ・トランスポーザ52 (k)の連続するスロットにロー ドされるように、ポインタ・レジスタ55(k)の内容がインクリメントされる ようにイネーブルする。ステップ101に続いて、マイクロ・コントローラ35 は処理ノード40のポインタ・トランスポーザ52(k)がいっばいになったか どうかを判断する(ステップ102)。いっばいでなければ、マイクロ・コント ローラ35はステップ101に戻って、別の繰返しを実行する。理解されるよう に、マイクロ・コントローラ35はカウンタ(図示せず)をもっており、ステッ プ101を実行するたびにカウンタをインクリメントし、ポインタ・トランスポ ーザがいっばいであるかどうかをステップ102で判断する時にカワンタの値を 使用する。
(以下余白) ポインタ・トランスポーザがいっばいであるとマイクロ・コントローラ35がス テップ102で判断したときは、一連の繰返しを実行し、処理ノード4oにおい て並列に、それぞれのポインタ・トランスポーザの内容を使用して、それぞれの 送信トランスポーザ52 (i)をロードするようにイネーブルする。最初は、 マイクロ・コントローラは、処理ノード40がそれぞれのベース・レジスタ63 の中の転送データ・バッファのベースを指しているポインタを並列にロードする ことを可能にする。各繰返し時に、マイクロ・コントローラ35はMEM CT RLメモリ制御信号とXPOSERCTRL トランスポーザ制御信号を発生し 、これらの信号を受けると、各処理ノード40において、(1)ポインタ・トラ ンスポーザ52(k)は送信データ・ポインタを構成するトランスポーズ・ワー ドを加算器630入力に結合し、この加算器の出力は、それぞれのメモリ42の 転送データ・バッファにあるスライスの記憶場所を指示するIND ME!1I DR3間接メモリ・アドレス信号からなっている。(2)マルチプレクサ46は 、IND MEM ADR3間接メモリ・アドレス信号をSEL MEM AD R5選択メモリ・アドレス信号としてメモリに結合することにより、メモリ42 はその信号によって指定されたデータ・スライスをデータ・バス43上に結合す る。(3)トランスポーザ・モジュール42はデータ・バス上のスライスを送信 トランスポーザ52 (i)の次の記憶場所にロードする(ステップ1o3)。
データ・スライスを送信トランスポーザ52(i)にロードすることを可能にし た後、マイクロ・コントローラ35は、送信トランスポーザ52(i)がいっば いになったかどうかを判断する(ステップ104)。つまり、通信リンクHC− 0−H(11:0)とHC−0−L (11: 0)の各々上を送信できるデー タ・スライスが送信トランスポーザ52(i)にあるかどうかを判断する。もし なければ、マイクロ・コントローラはステップ103に戻り、別の繰返しを開始 する。送信トランスポーザがいっばいであるとマイクロ・コントローラ35が判 断した時は、ステップ105に進んでそこからデータを送信することを開始する 。
最初の繰返しでは、ステップ103において、マイクロ・コントローラ35は送 信トランスポーザ52 (i)に関連するポインタ・レジスタ55(i)を初期 化するXPOSERCTRL信号を発生し、最初のスライスが送信トランスポー ザ52(i)の最初のスロットにロードされるようにする。後続の繰返しでは、 XPOSERCTRL トランスポーザ制御信号を受けると、連続するスライス が送信トランスポータ52(i)の連続するスロットにロードされるように、ポ インタ・レジスタ55(i)の内容がインクリメントされる。以上から理解され るように、マイクロ・コントローラ35はカウンタ(図示せず)をもち、このカ ウンタはステップ103を実行するたびにインクリメントし、ポインタ・トラン スポーザがいっばいになったかどうかをステップ104で判断する際にカウンタ の値が使用される。
先に進む前に、理解を容易にするために、送信トランスポーザ52(i)がいっ ばいになった後のその内容について説明する。第4A図に示すように、送信トラ ンスポーザは一連のスロット70(0)〜70(31) (全体を70(i)で 示している)を備えており、各スロットはデータ・バス43を構成するデータ・ ライン(31:O)上を送られてきた1つのデータ・スライスをストアしている 。データ・スライスがストアされているスロット70(i)は送信書込みポイン タ・レジスタ55(i)にストアされているポインタによって指示されている。
上述したように、各繰返し時に、レジスタ55(i)に入っているポインタは、 ステップ101で初期化またはインクリメントされてから、ステップ103でス ロットのローディングが行われる。
本発明の1実施例では、送信トランスポーザ52(i)がいっばいになるのは、 大部分のスロット70(01〜70(11)とスロット70(16)〜70 ( 27)にデータ・スライスが入っている時である。各PEチップ41に置かれて いるルータ・ノード45Lと45Hの各々は24の出力通信リンクHC−0−L (11:0)とHC−0−H(11:O)に接続されているので、この実施例で は、スロット70 (0)〜70(11)および70(16)〜70(17)と いったように、24個のスロットだけからのデータ・スライスは同時に送信する ことができる。この場合は、送信トランスポーザ52 (i)は第4A図に示す ように、通信リンクの各々を経由して送信すべきデータ・スライスを収容してい る。データ・スライスが他のスロット50(i)にストアされている場合は、こ の実施例では送信されない。理解されるように、コンピュータ・システムでどの ような計算が実行されているかに応じて、送信トランスポーザ52(i)は「い っばいである」とみなされ、送信すべきデータ・スライスを収めているスロット がスロット50(0)〜50(11)および50(11)〜50(27)のすべ て以下であれば、その送信が行われる。
再び第3A図に示すように、送信トランスポーザがいっばいになったとマイクロ ・コントローラ35が判断すると、一連の繰返しを開始する。各繰返しはステッ プ105〜107からなり、通信リンクを経由して送信トランスポーザ52(i )からデータが送信される。この操作では、マイクロ・コントローラ35は送信 トランスポーザ52 (i)にストアされているデータ・スライスのすべてから 同時に順次ビットが送信されるように繰り返し制御する。すなわち、各繰返し“ i“時に、マイクロ・コントローラ35はXPOSERCTRL トランスポー ザ制御信号を発生し、この信号の制御を受けて、送信トランスポーザ52(i) は送信トランスポーズ・ワードをマルチプレクサ60を経由してデータ・バス・ ライン43上に結合する(ステップ106)。繰返し”i“時の送信トランスポ ーズ・ワードは送信トランスポーズ内のスロット50[)のすべてに入っている ”1番目”のビットからなっている。第4A図に示すように、各繰返し時に、ス ロット50(i)からのデータ・ビットはデータ・バス43のデータ・ラインD (i)上に送出される。
データがデータ・バス43上に送信されれると、マイクロ・コントローラ35は RTRCTRL制御信号を発生し、この信号により、ルータ・ノード45Hと4 5L(第2図)はラインD(11:0)とD(16:27)上のビットを通信リ ンクHC−0−L(11:0)とHC−0−H(1に〇)上に送出する(ステッ プ106)。そのあと、マイクロ・コントローラ35はデータのすべてが送信ト ランスポーザ52(i)から送出されたかどうかを判断する(ステップ107) 。もし送出されていなければ、ステップ104に戻って、次の送信トランスポー ズ・ワードの送信をイネーブルする。他方、データがすべて送信トランスポーザ から送イ言されたとマイクロ・コントローラ35が判断した時は、送信シーケン スを終了する(ステップ108)。
理解されるように、データを送信トランスポーザ52(i)から送信するために 必要になるステップ104〜107の繰返し回数は、送信トランスポーザ52( i)にストアされたデータ・スライスの中のビット数に対応している。送信トラ ンスポーザ52(i)から送信できる送信トランスポーズ・ワードの最大数は蓬 信されるデータ・スライスのビットの最大数に対応しており、本発明の1実施例 では32ビツトになっている。従って、データがすべて送信トランスポーザから 送信されたかどうかを判断する時(ステップ104)、マイクロ・コントローラ 35は繰返しカウンタを使用してステップ104〜107の繰返し回数をカウン トし、繰返しカウンタがデータ・スライスの中のビット数に対応する値までカウ ントしたとき、あるいは送信すべきビット数が全部でない場合には送信すべきビ ット数に対応する値までカウントしたとき終了することができる。
送信されたデータを受信した時マイクロ・コントローラ35によってイネーブル されるシーケンスを第3B図および第4B図を参照して説明する。図に示すよう に、マイクロ・コントローラ35は処理ノード40による送受信をインタリーブ 方式でイネーブルする。つまり、マイクロ・コントローラ35がある繰返し時に トランスポーズ・ワードのビットを通信リンクHCJ−H(11:0)とHC− 0−L(11:O)上に送信するように処理ノード40のルータ・ノード45H と4SLをイネーブルするときは、受信シーケンスの同じ繰返し時に通信リンク HC−I−H(11:0)とHC−I−L(11:O)からビットを受信するよ うに処理ノード40もイネーブルする。従って、第3B図に示す受信シーケンス の少な(とも一部は、第3A図に示す送信シーケンスと同時に行われることにな る。
第3B図に示すように、通信リンクからビットを処理ノード40が受信すること は、ステップ112〜115からなる一連の繰返しで行われる。すなわち、各受 信繰返しは、送信繰返し時にデータ・ビットが通信リンク上に結合された後行わ れる(第3A図中のステップ105〜107)。これにより、処理ノード40は 送信繰返し時にそこに送られてくるビットを受信することができる。後続の受信 繰返し時に、処理ノード40はそこに接続された他の処理ノードからデータ・ス ライスの後続のビットを受信する。連続する繰返しでは、各処理ノード40は通 常、受信トランスポーザ52(j)の連続するスロットにビットをストアする。
従って、初期状態では、マイクロ・コントローラ35はXPOSERCTRL  トランスポート制(和信号を発生し、この信号により、各処理ノード40に!か れたトランスポーズ・モジュールは、受信トランスポーザ52(j)の最初のス ロットを指すように、その書込みポインタ・レジスタ55(j)を初期化する( ステップ111)。
各処理ノード40の書込みポインタ・レジスタ55(j)の初期化を終えると、 マイクロ・コントローラ35は各々がステップ112〜115からなる順次受信 繰返しを開始し、受信したデータを受信トランスポーザ52 (j)にロードす る。各繰返し時に、マイクロ・コントローラ35はRTRCTRLルータ制御信 号を発生し、この信号によって、処理ノード40のルータ・ノード45Hと45 Lはそれぞれ通信リンクHCj−H(11:O)とHC−I−L (11: O )上のデータ・ビットを受信し、そのビットをデータ・バス43のラインD(2 7:16)とD(11:0)上に結合する(ステップ112)。そのあと、マイ クロ・コントローラ35はXPOSERCTRL制御信号を発生し、その信号に よって、マルチプレクサ54(j)はデータ・バス43のラインD(31:0) 上の信号を受信トランスポーザ52 (j)に結合し、受信トランスポーザ52 (j)は書込みポインタ・レジスタ55(j)の内容で指定された受信トランス ポーズ52(j)のスロットに信号をストアする(ステップ113)。
第4B図に示すように、送信トランスポーザ52(i)の場合と同じように、受 信トランスポーザ52(j)はスロット60(0)〜60(61) (全体を符 号60(i)で示している)で示した複数のスロットを備えている。受信トラン スポーザ52 (i)のスロット60(i)には、”1番目−の受信繰返し時に 受信されたデータ・ビットがロードされる。後続の繰り返しでは、通信リンクH Cj−H(11: O)とHC−I−L(11:0)の各々からのビットは連続 するスロット60内の連続するビット記憶場所に結合される。従って、第4B図 に示すように、そこに接続された処理ノード40からのデータ・スライスは受信 トランスポーザ52 (j)の連続するスロット内の同じビット記憶場所に入っ ている。理解されるように、受侶トランスポーザ52 (j)から送られる各ト ランスポーズ・ワードは連続するスロット60内の同じビット記憶場所からのビ ットからなり、これらは、上述したように、処理ノード40に送られたデータ・ スライスの連続するビットに対応している。従って、受信トランスポーザにあっ て、下述するように、受信側処理ノード4oのメモリ42にデータ・スライスと してストアされるトランスポーズ・ワードは、受信側処理ノードにデータ・スラ イスを送った処理ノード40のメモリ42に入っているデータ・スライスに対応 している。
再び第3B図に示すように、ステップ113を終えると、マイクロ・コントロー ラ35は、処理ノード40iI:fiかれた受信トランスポーザがいっばいにな ったかどうかを判断しくステップ114)、いっばいでなければ、処理ノード4 0がそのレジスタ55 (j)にストアされている受信書込みポインタをインク リメントするようにイネーブルする(ステップ115)。マイクロ・コントロー ラによってイネーブルされた受信繰返し回数がデータ・スライスの中のビット数 と一致した時、あるいはデータ・スライスのすべてのビット以下のビットが送信 される時、受信トランスポーザ52(j)はいっばいになる。受信トランスポー ザ52(j)がいっばいでないとマイクロ・コントローラ35が判断した時は、 ステップ112に戻って別の受信繰返しを開始する。
他方、メツセージ転送サイクル時にイネーブルした受信繰返し回数がデータ・ス ライスの中のデータ・ビット数に一致しているとマイクロ・コントローラ35が ステップ114で判断した時は、ステップ116とステップ117からなるシー ケンスに進み、処理ノード43がそれぞれの受信トランスポーザ52(j)の内 容をそのメモリ42に転送するようにイネーブルする。この操作では、マイクロ ・コントローラ35は(1)メモリのデータ受信領域の記憶場所を指定したMC MEM ADRSマイクロ・コンローラ・メモリ・アドレス信号、(2)受信ト ランスポーザ52(j)がトランスポーズ・ワードをマルチプレクサ60を経由 してデータ・バス43上に結合するようにイネーブルするXPOSERCTRL  トランスポート制御信号、および(3)マルチプレクサ46がMCMEM A DRSマイクロ・コントローラ・メモリ・アドレス信号をSEL MEM AD RS選択メモリ・アドレス信号としてメモリ42に結合し、データ・バス43の 信号によって表されたデータをSEL MEM ADR3選択メモリ・アドレス 信号で指定されたメモリ42内の記憶場所にストアするようにイネーブルするM EM CTRLメモリ制画信号を発生する(ステップ116)。次に、マイクロ ・コントローラ35は、処理ノード40の受信トランスポーザ52(j)からの トランスポーズ・ワードをすべてそれぞれのメモリ42にストアすることをイネ ーブルしたかどうかを判断する(ステップ117)、マイクロ・コントローラ3 5がステップ117で否定の判断をした時は、ステップ116に戻って、受信ト ランスポーザ52(j)からの次のトランスノーズ・ワードをそれぞれのメモリ 42にストアすることをイネーブルする。しかし、マイクロ・コントローラ35 がステップ117で肯定の判断をした時は、終了する(ステップ120)。
以上の説明から理解されるように、マイクロ・コントローラ35は第3A図およ び第3B図を参照して上述した操作が複数のメツセージ転送サイクルで繰返し実 行されるようにイネーブルし、メツセージが複数の処理ノード40を通って繰返 しリレーされて、1つの送信元処理ノード40から宛先の処理ノードに転送され て処理されるようにすることができる。
さらに理解されるように、処理ノード5oはスライス形式でデータを転送するも のと説明してきたが、データを最初はプロセッサ形式にしておき、転送を開始す る前にトランスポーザ・モジュール51によってスライス形式にトランスポーズ させることが可能である。
従って、シリアル・プロセッサによって処理され、メモリ42内ではプロセッサ 形式に編成されているデータは、トランスポーザ・モジニール51がそれをスラ イス形式にトランスポーズしてから転送を行う場合には、他の処理ノードに転送 することが可能である。
さらに、理解されるように、マイクロ・コントローラ35は、受信データを受信 トランスポーザ52(j)がら転送データ・バッファに転送することをイネーブ ルしている間に、トランスポーザ・モジュールの間接アドレス指定機能の使用を 可能にして、アドレス信号を直接に与λるのではなく、SEL MEM ADR 5選択メモリ・アドレス信号を出すことができる。その場合には、マイクロ・コ ントローラ35は、必要とする0FFSET信号を発生することができる。この 信号は、送信シーケンスで上述したように、転送データ・バッファのベースを指 すポインタが入っているベース・レジスタ62の内容に加えられる。従って、加 算器62からは、データ・スライスをストアすべき転送データ・バッファ内の記 憶場所を指定しているIND MEM ADRS間接メモリ・アドレス信号が得 られる。その場合は、マイクロ・コントローラ35は、マルチプレクサ46がI ND MEM ADR5間接メモリ・アドレス信号をSEL MEM ADRS 選択メモリ・アドレス信号としてメモリ42に結合することを可能にするMEM  CTRLメモリ制御信号も8カする。
2、通信構成生成システムの説明 この発明の背景として、通信構成生成システムは、2つのフェーズで動作するよ うにプログラムされたデジタル・コンピュータを備えている。最初のフェーズで は、システムは、問題グラフ5の中の問題頂点10(i)を超並列プロセッサか らなる配列20の中の処理要素21(m)にマツピングしたものを生成する。下 述するように、マツピング・フェーズ時に、システムは問題頂点10(i)を処 理要素21 (m)に割り当てて、問題グラフ5のために処理要素21(m)間 でメツセージを転送するために必要なサイクル数を少なくするので、問題グラフ 5のためのデータを処理できる速度が増加することになる。
マツピングを生成した後、システムは2番目のフェーズ、つまり、通信リンク割 当てを行う。このフェーズでは、システムは処理ノード40にマツピングされた 問題頂点10(i)によって生成すべきメツセージと、メツセージ転送操作の連 続するメツセージ転送サイクル期間中に、他の処理ノード40からその処理ノー ドに送られてきたメツセージを特定の通信リンク22(n)に割り当てる。割当 ての結果によって、メツセージは、第2図〜第4B図を参照して上述したように 、処理ノード40間で転送されることが可能になる。
割当てフェーズでは、システムは連続するメツセージ転送サイクルの各々で、送 信データ・ポインタのテーブルを作成する。このテーブルはメツセージを転送す る時に使用されるものである。
本発明の1実施例では、システムに使用されるコンピュータは、第2図を参照し て上述した超並列プロセッサを備えている。第5A図〜第5D図は、送信データ ・ポインタのテーブルを作る時に実行される操作を示し、第7A図〜第7C図は 、システムに関連して使用されるデータ横道を示している。
A、マツピング・フェーズ 一般的に、マツピング・フェーズでは、システムは問題頂点10(i)を処理ノ ード40にランダムにマツピングすること、つまり、割り当てることから始める 。初期割当ての後、システムはすべての問題頂点10(i)に関するメツセージ を処理ノード40間で転送するために必要な通信リンク22(j)の総数に関す る通信コスト関数を生成する。そのあと、システムは、通信コスト関数を全体的 に減少する改良マツピングを判断するために一連の繰返しを実行する。各繰返し で、システムは不安定なマツピングを生成する。つまり、問題頂点10(i)の 1つまたは2つ以上がいくつかの異なる処理ノードに割り当てられて、以前の繰 返しのマツピングと所定の程度だけ異なるようなマツピングを生成する。さらに 、システムは、各繰返し時に、通信コスト関数の変化を各再割当てについて判断 する。選択した再割当ての通信コスト関数の変化がしきい値以下であれば、この 不安定は許容されるが、その変化がしきい値を越えていれば、許容されない。後 続の繰返しで、しきい値は、終了基準に従って選択された値までになるまで減少 していく。最終的マツピングは、システムによって判断されるマツピングである が、しきい値が終了基準値に達した時に存在するマツピングである。
具体的には、第5A図に示すように、システム、特にホスト36は、最初に最大 占有値と初期しきい値を判断する(ステップ150)。マツピングを判断する時 、システムは、処理ノード40が複数の問題頂点10(i)を処理することを許 可するが、各処理ノード40によって処理された問題頂点10(i)の数が所定 の最大占有値を越えていないかを確かめる。最大占有値は、例えば、各処理ノー ド40におけるシリアル・プロセッサの数に対応づけることができるが、その場 合には、各シリアル・プロセッサ44には1つの問題頂点10(i)を割り当て ることができる。
ホストが最大占有値と初期しきい値を判断すると、問題頂点10(i)を処理ノ ード40にランダムにマツピングしたもの、つまり、割当てを生成する(ステッ プ151)。実施例では、処理配列の中の各シリアル・プロセッサ44(i)は 固有のID(識別名)をもっている。問題頂点10(i)をシリアル・プロセッ サに関連づける時、各問題頂点10(i)に固有の問題頂点IDが与えられるが 、この値はランダムに選択される。問題頂点IDは、その問題頂点10(i)が 関連づけられた処理ノード40を識別するために使用される。問題頂点IDには 、同じ処理ノード40に関連づけられた他の問題頂点10(i)間で問題頂点1 0(i)を固有に識別する部分を含めることが可能であり、その部分は、問題頂 点10(i)を処理ノード40内の特定のシリアル・プロセッサと関連づけるた めに使用することができる。ランダム・マツピングは、各処理ノード40には、 最大でも、最大占有値に対応する問題頂点10(i)の数が割り当てられるよう に拘束されている。ホスト36は、処理ノード40のすべてに割り当てられた問 題頂点10(i)の数が最大占有値に一致しているかどうかを判断する(ステッ プ152)。
問題頂点10(i)の数が最大占有値以下である処理ノード40については、ホ ストはゴースト頂点を生成して、各処理ノード40の問題頂点10(i)および ゴースト頂点の数が最大占有値に一致するようにする(ステップ153)。以下 で明らかにするように、ゴースト頂点は後続の繰返し時に使用され、各処理ノー ド40に割り当てられた問題頂点10(i)の数が最大占有値を越えていないか が確かめられる。同時に、ゴースト頂点は各不安定で判断された、あるいはそこ で変更された通信コスト関数には影響しない。他方、問題頂点10(i)の数が 大きくて、任意の処理ノード40に割り当てられた数が最大占有値を越えている 時は、シリアル・プロセッサ14 (i)は上述したように複数の仮想プロセッ サをエミュレートすることができ、仮想プロセッサの各々には、固有のIDを割 り当てることができ、問題頂点10(i)をそれぞれのIDに従って仮想プロセ ッサに割り当てることができ、ゴースト頂点を問題頂点が割り当てられていない どの仮想プロセッサにも割り当てることができる。
ホスト36は、問題頂点10(i)とゴースト頂点を各処環ノードに割り当てる と、次に、各々が問題頂点10 (i )またはゴースト頂点を表している問題 頂点トークン220(第7A図)を生成する(ステップ154)。処理ノード4 0はマツピング・フェーズ時の後続の処理の時に問題頂点トークン220を使用 する。問題頂点トークン220はトークンによって表された問題頂点またはゴー スト頂点、表された問題頂点問題グラフ5の中でエツジ11(J)によって結合 される問題頂点、および結合された問題頂点が割り当てられる配列2o内の処理 ノード40を指すポインタを識別する複数のフィールドをもっている。
さらに具体的に説明すると、第7A図に示すように、問題頂点トークン220は 割り当てられたプロセッサ・ポインタ・フィールド221、下流側ポインタ部分 222、および上流側ポインタ223からなっている。割り当てられたプロセッ サ・ポインタ・フィールド221は問題頂点10(i)が現在割り当てられてい る処理ノード40を指しているポインタを収めている。初期状態では、割り当て られたプロセッサ・ポインタ・フィールド221の内容は2つの値からなってい る。一方の値は問題頂点が割り当てられた処理ノード40のIDに対応しており 、もう一方の値は同じ処理ノード40に割り当てられた他の問題頂点のうちの1 つとして問題頂点を識別しており、これらの値の組合せによって、問題グラフ5 の中の問題頂点、1o(i)が固有に識別される。後続の繰返しでは、割り当て られたプロセッサ・ポインタ・フィールド221の内容は、上述するように問題 頂点割当ての中の不安定を反映するように変化する。問題頂点トークン220が ゴースト頂点を表している時は、割り当てられたプロセッサ・ポインタ・フィー ルド221には、それが割り当てられた処理ノード40を識別する選択値が入れ られる。
下流側ポインタ部分222と上流側ポインタ部分223は、問題グラフ5の中で それぞれ一下流側と上流側にある問題頂点10(i)を表している問題頂点トー クンを指しているポインタを収めている。理解されるように、問題グラフ5が各 エツジ上を問題頂点10(i)間を両方向にメツセージを転送できるようになっ ていれば、問題頂点トークン220は1つのポインタ部分を収めているだけで十 分である。
いずれの場合も、下流側ポインタ部分222は長さフィールド222と全体を符 号225(i)で示した複数の下流側ポインタからなっている。長さフィールド 222は下流側部分222に含まれる下流側ポインタ225(i)の数を示して いる。そこに接続されたエツジを通して問題頂点からメツセージが転送されない ように問題グラフ5がなっている場合は、下流側ポインタ部分222は空になっ ており、長さフィールド222は値がゼロになっている。長さフィールド222 に入っている値がゼロでないとき、トークン220は1つまたは2つ以上の下流 側ポインタ225(i)をもち、その各々は2つフィールド226 (i)と2 27(i)をもっている。フィールド226(i)は問題グラフ5の中で、問題 頂点トークン220によって表された問題頂点の下流側にある問題頂点のIDを 収めている。フィールド227(i)はフィールド226 (i)に示された問 題頂点の問題頂点トークン220が割り当てられている処理ノード40を配列2 0の中で指しているポインタを収めている。初期状態では、フィールド227  (i)の内容は問題頂点10(i)が割り当てら−れた処理ノード40を指して おり、後続の繰返し時に、その内容は他の処理ノード40への問題頂点10(i )の割当てを反映するように変更される。
本発明の実施例では、通信リンク22(m)は処理ノード40を多次元構造に相 互結合している。この実施例では、フィールド227(i)の中のポインタは特 定の問題頂点トークン220で表された問題頂点10(i)が割り当てられてい る処理ノード10から、フィールド226(i)に指定された問題頂点が割り当 てられている処理ノード4゜までの多次元構造における相対的変位、つまり、ア ドレスを表している。すなわち、フィールド227(i)の中のポインタは、問 題頂点10(i)が割り当てられた処理ノード40の特定のシリアル・プロセッ サ44(i)またはそれによってエミュレートされた仮想プロセッサを識別する 値と一緒に、多次元構造の寸法に対応するディジット位置の数を含んでおり、ポ インタの中の各ディジット位置は多次元構造の1次元に関連づけられている。
このようなポインタでは、多次元変位に関連づけられた各ディジット位置は、処 理ノード間を通る時横切る多次元構造の次元に関連する位置に「1」の値をもち 、逆の場合にはrOJの値をもっている。トークンの問題頂点10(i)が割り 当てられている処理要素21(n)から問題頂点10(i)がフィールド226 (i)の内容によって識別されている処理要素21(n)に通信リンク22(n l上を転送する必要のある回数は、ポインタの中の「1」の数に対応している。
この「1」の数は、2つの問題頂点LO(i)をそれぞれの処理ノード4Gに割 り当てる時の通信コストに対応している。
上流側ポインタ部分223は長さフィールド230と上流側ポインタ231 ( i)をもっている。これらは下流側ポインタ部分222の長さフィールド224 と下流側ポインタ225 (i)と似ている。上流側ポインタ231 (i)は フィールド232(i)と233 (i)をもち、これらも上述した下流側ポイ ンタ225 (i)のフィールド226 (i)と227(i)に似ているが、 フィールド226 (i)に示される問題頂点が、問題グラフ5において、問題 頂点トークン220に関連する問題頂点10(i)の上流側にある点が異なる。
さらに、問題頂点トークン220には、問題頂点10(i)を識別する問題頂点 10フイールド234を含めることが可能である。問題頂点IDフィールド23 4に入る値はシリアル・プロセッサまたはそれによってエミュレートされた特定 の仮想プロセッサのIDであり、問題頂点10(i)と関連づけられたものであ る。さらに、それぞれのフィールド226(i)と232(i)の内容はこれら の問題頂点10(i)と関連づけられた特定のシリアル・プロセッサ44 (i )を示している。
再び第5A図において、問題頂点トークン220を生成すると、次に、ホスト3 6はトークン220が関連づけられた処理ノード40にトークンを配列20がロ ードすることを可能にする(ステップ154)。この操作において、ホスト36 は問題頂点トークン220が処理ノード40のメモリ42にプロセッサ形式でロ ードされることを可能にし、問題頂点トークン220の連続するビットがメモリ 42内の連続するアドレス可能記憶場所にシリアルにロードされる。
そのあと、ホストは処理ノード40を各通信リンク22(m)に割り当て、その 通信リンク22(m)のランデブー・ノードとして動作させる(ステップ155 )。以下で詳しく説明するように、処理ノード40に対する問題頂点10(i) の割当てが不安定であると、ランデブー・ノードとして動作している処理ノード 40はその不安定に仲裁して、各処理ノードに割り当てられた問題頂点19(i )の数が最大占有値を越えないようにする。具体的には、図2に示す実施例では 、各処理ノード40は24の通信リンク22(m)に接続され、各PEチップ4 1のルータ・ノード45は12のリンク22(m)に接続されている。
ホスト36は各処理ノード40の12のシリアル・プロセッサ40を指定して、 上述するような仲裁操作を実行する。
次に、ホスト36は、処理ノード40、特にシリアル・プロセッサ44 (i) がランダム数を並列に生成することを可能にする。このランダム数は、関連の問 題頂点108i)の予想される再割当てで使用される通信リンク・ポインタとし て使用される(ステップ156)。つまり、各シリアル・プロセッサ44(i) によって生成されたランダム数の値は、シリアル・プロセッサの問題頂点10( i)が繰返し時に再割り当てされる可能性のある通信リンク22(m)を示して おり、その結果、問題頂点10(i)が新しい処理ノード40に再割り当てされ ることになる。
ステップ156生成された各通信リンク・ポインタは通信リンク22 (m)が 接続されている多次元構造の次元に対応するディジット位置の数をもっており、 ランダムに選択された位!は「1」に、その他は「0」になっている。ディジッ ト位置に「1」が入っている時は、予想される再割当てで割当てられた通信リン ク22 (m)を示している。通信リンク・ポインタは、問題頂点10(i)を 処理ノード40にマツピングすることが予想される不安定マツピングを判断する ために使用される。
問題頂点10 (i)が繰返し時に実際に再割当てされるかどうかは、マツピン グ・フェーズで後続する処理によって決まる。問題頂点10(i)が再割当てさ れた時は、対応する問題頂点トークン220のフィールド227(i)と233 (i)に入っていて、値rlJをもつ通信リンク・ポインタのディジット位置に 対応するポインタのディジット位置の桁の値は、補数がとられる。補数がとられ てディジット位置が「1」になると、隣接の問題頂点10(i)が割り当てられ る処理ノード40間の通信リンク22(n)の数は増加し、その結果通信コスト は増加することになる。
通信リンク・ポインタの生成をイネーブルする前に、ホスト36は処理ノード4 0、特にシリアル・プロセッサ44を並列にイネーブルして、ステップ156で 生成されたポインタが指示している通信リンクを介して問題頂点トークン220 が実際に再割り当てされた時に発生する通信コストの変化を判断させる(ステッ プ157)。通信コストの実際の変化を判断するためには、問題グラフ5の中で 直接に結合されている問題頂点10(i)が割り当てられている処理ノード40 間の予想される不安定マツピングに関する変化についての情報を広範に転送する 必要がある。単純化するために、各処理ノード40は、ホスト36の制御を受け て、そこに割り当てられた問題頂点の再割当ての効果を、それぞれの問題頂、屯 トークン220のフィールド227(i)と233(i)に入っているポインタ とステップ156で生成された通信リンク・ポインタを使用して判断することに より、通信コストの変化を予想する。
ステップ157を実行する時、ホスト36は処理ノード40、特にシリアル・プ ロセッサ44をイネーブルして、予想される再割当ての結果発生する通信コスト の変化を、問題頂点トークン220に関連する問題頂点10(i)の予想される 再割当ての結果として、「1」に変わるポインタ・フィールドの「ゼロ」の個数 と「ゼロ」に変わる「1」の個数を判断することによって、見積もらせる。「1 」に変わる「ゼロ」の個数は、問題頂点10(i)の予想される再割当ての結果 として発生する通信コストの増加を示し、「1」に変わる「ゼロ」は通信コスト の減少を示している。
各種のシリアル・プロセッサ44に割り当てられた問題頂点トークン220は、 ポインタ225(i)と230 (i)の個数が異なるので、この操作では、ホ スト36はそこに割り当てられた問題頂点トークン220の中のポインタのすべ てを処理した後、各シリアル・プロセッサをディスエーブルするためにコンテキ スト・フラグ49を使用するように処理ノード40をイネーブルすることができ る。理解されるように、ゴースト頂点に関連づけられた問題頂点トークン220 はポインタ225または230をもっていないので、そのために判断された通信 コスト変化値は値がゼロになる。
そのあと、ホスト36は、ステップ156で生成された通信リンク・ポインタで 指示された通信リンク22 (n)のランデブー・ノードと指定された処理ノー ドに送るメツセージを生成して転送するように処理ノード40をイネーブルする (ステップ160)。各メツセージは、特定の予想される再割当てに関連づけら れた識別番号、送信元識別番号、および再割当ての通信コスト変化値を含んでい る。処理ノード40によって受信されると、特定の通信リンク22(n)からの メツセージは、通信リンク22(n)に割り当てられたそれぞれのシリアル・プ ロセッサに関連するメモリ42の部分に、プロセッサ形式でロードされる。特定 の通信リンク22(n)について複数のメツセージが受信された時は、そのメツ セージ識別番号に基づいて、1つのメツセージがそのまま保存される。実施例で は、メツセージ識別番号はランダム数の値であり、保存されたメツセージはメツ セージ全体の識別番号が最大値になったメツセージである。
上述したように、ランデブー・ノードは、そこに割り当てられた通信リンクに接 続された処理ノード40間の問題頂点10fi)の予芯される再割当てを仲裁し て、問題頂点10(i)に関連するものとゴースト頂点に関連するものとを含む 、問題頂点トークンの個数が各処理ノード40において、最大占有値を越えてい ないかを確かめる。従って、メツセージの転送をイネーブルしたあと、ホスト3 6はランデブー・ノードとして動作する処理ノード40をイネーブルして、関連 の通信リンク22(n)に接続された両方の処理ノード40から予想される再割 当てに関連するメツセージを受信したかどうかを判断させる(ステップ161) 。
つまり、ステップ161では、ホスト36は通信リンク22(n)に関連するシ リアル・プロセッサ44を並列にイネーブルして、受信され、メモリ42内の関 連記憶場所にストアされたメツセージを探索させ、関連通信リンク22(n)の 両路端側の両方の処理ノード40がらメツセージを受信したかどうかを判断させ る。関連通信リンク22 (n)の両路端側の両方の処理ノード40から少なく とも1つのメツセージを受信したとシリアル・プロセッサ44が判断した時は、 そのコンテキスト・フラグ49をセットする(第2図)。そのあと、ホスト36 はセットされたコンテキスト・フラグをもつシリアル・プロセッサ44を並列に イネーブルして、割り当てられた通信リンク22 (n)の両路端側の処理ノー ド40の各々からのメツセージのうち1つをランダムに選択させる(ステップ1 62)。
(以下余白) 上述したように、ランデブー・ノードは、通信コストの変化が所定のしきい値以 下の時だけ問題頂1点10(i)の再割当てを可能にする。これを行うために、 ホストはランデブー・ノードとして動作する処理ノード40、具体的には、セッ トされたコンテキスト・フラグ49をもつシリアル・プロセッサ44をイネーブ ルして、選択したそれぞれのメツセージの中の通信コスト変化値を使用して総通 信コスト変化値を判断させる(ステップ163)。ステップ163では、コンテ キスト・フラグ49がセットされた各シリアル・プロセッサ44は、2つの選択 したメツセージからの通信コスト変化値の和を発生する。各シリアル・プロセッ サ44から得られた結果は、選択したメツセージに示された問題頂点10(i) の予想される再割当てが実際に起こった時に発生する通信コストの変化を示して いる。
次に、ホスト36はコンテキスト・フラグ49がセットされているシリアル・プ ロセッサ44(i)がしきい値を生成し、ステップ136で判断された総通信コ スト変化値とそのしきい値とを比較するようにイネーブルする(ステップ164 )、好ましくは、最初の繰返し時のしきい値は初期の繰返しで十分な量の問題頂 点10(i)の再割当てを可能にするだけの十分に大きな正の値に設定される。
これが望ましいのは、処理ノード40に対する問題頂点10(i)の最初の割当 てがランダムであるためである。後続の繰返しでは、ホスト36はその範囲を実 効的に縮小するように、しきい値を調整する。
本発明の実施例では、シリアル・プロセッサ44(i)によって生成されるしき い値と正の比較が得られるという見込みは、ホスト36によって得られる「温度 値」Tとそれぞれの総通信コスト変更値に関する「ボルツマン係数」Bに関係し ている。特に、 B :exp(−C/T) 上記において、「C」はそれぞれの総通信コスト変更値である。各再割当てはそ のボルツマン係数に等しい確率で受理されるか、拒否される。ホスト36は再割 当てが行われると判断したシリアル・プロセッサ44がそのコンテ干スト・フラ グ49をセット状態に維持するようにイネーブルし、他のシリアル・プロセッサ がそのコンテキスト・フラグ49をリセットするようにイネーブルする(ステッ プ1651.次に、ホスト36はコンテキスト・フラグ49がセットされている シリアル・プロセッサ44をイネーブルして、関連の通信リンク22(n)に接 続された処理ノード4oへ転送するための問題頂点再割当てイネーブル・メツセ ージを生成させて、再割当てができる問題頂点トークン220を識別させる(ス テップ166)、さらに、ホスト36はコンテキスト・フラグ49がセットされ ているシリアル・プロセッサがそれらをクリアするようにイネーブルする(ステ ップ167)。
この時点で、処理ノード4oは再割当てすべき問題頂点10(i)を示している メツセージをランデブー・ノードから受信している。次のい(つかのステップ1 70〜174で、ホスト36は処理ノード40がそれぞれのフィールド227( i)と233 (i)に入っているポインタを再割当てに照らして更新するよう にイネーブルする。これらの操作では、ホスト36は問題頂点再割当てイネーブ ル・メツセージを受信した処理ノード40、特に再割当てすべき問題頂点に関連 する処理ノード40がそのコンテキスト・フラグ49をセットするようにイネー ブルする。
次に、ホスト36は、処理ノード40、特にセットされたコンテキスト・フラグ 49をもつシリアル・ノード44(i)が再割当てすべき問題頂点10(i)と 再割当てのために生成された通信リンク・ポインタを示したメツセージを生成す ることをイネーブルする(ステップ171)、コンテキスト・フラグ49がセッ トされた各シリアル・プロセッサ44 (i)はそれによって維持されている問 題頂7点トークン220の中の各ポインタ225(i)と231 (i)につい て1つのメツセージを生成する。このことから理解されるように、シリアル・プ ロセッサ44(i)がゴースト頂点を処理している時は、このようなメツセージ を生成しない。これらのメツセージは、再割当ての問題頂点トークン220の中 にリストされている問題頭声、10(i)を処理しているシリアル・プロセッサ に通知するために使用されるので、これらのプロセッサはそれぞれフィールド2 27(i)または233(i)に入っているポインタを調整することができる。
ホスト36は、各メツセージのアドレス部分を生成する際に、シリアル・プロセ ッサ44(i)が問題頂点トークン内のフィールド226(i)または232( i)から問題頂点IDの内容を使用することを可能にする。特に、上述したよう に、メツセージの中のアドレスは相対変位であるので、アドレスを生成する時は 、ホスト36はシリアル・プロセッサ44(i)がそれぞれのフィールド226 (i)と232 (i)に入っているその識別名とシリアル・プロセッサ44( i)の識別名の多次元部分のビット向き排他的ORをとることを可能にする。ホ スト36は処理ノード40が生成されたメツセージを転送するようにイネーブル する(ステップ172)。
このようなメツセージを受信した処理ノード4oでは、メツセージはそのポイン タを再割当てに照らして調整する必要のある問題頂点トークン220を処理して いるシリアル・プロセッサ44(i)に関連するメモリ42の部分に、プロセッ サ形式でストアされる。次に、ホスト36は、そのようなメツセージが受信され たシリアル・プロセッサがフィールド227(i)と233(i)の中のポイン タを再割当てに照らして更新することを可能にする(ステップ173)。この操 作では、ホスト36はメツセージが受信された各シリアル・プロセッサ44を並 列にイネーブルして、ステップ172で受信されたメツセージに示されている問 題頂点に関連する問題頂点ポインタ225 (i)と230(ilを識別するこ とを可能にする。
次に、ホスト36は各シリアル・プロセッサがメツセージで受信された通イ言リ ンク・ポインタを使用して、値が「1」の通信リンク・ポインタのビットに対応 する、識別されたポインタのそれぞれのフィールド227(i)または233( i)の中の相対アドレスのビットの補数をとることを可能にする。ステップ17 3の結果は、各メツセージについて、問題頂点10(i)の再割当てを受け入れ るためにメツセージに示された問題頂点トークン220を指しているポインタ2 25(ilまたは230(i)の中の相対アドレスの値の更新値である。
さらに、ホスト36は、再割当てされた問題頂点10(i)に関連するシリアル ・プロセッサをイネーブルして、それぞれポインタ225(i)と230(i) のフィールド227(i)と233(i)の中の相対アドレスを再割当てに照ら して更新することを可能にする(ステップ174)。この操作では、ホスト36 は、再割当てすべき問題頂点10(i)をもっている各シリアル・プロセッサ4 4(つまり、セットされたコンテキスト・フラグ49をもつシリアル・プロセッ サ)を並列にイネーブルして、それぞれのポインタ225(i)と230(i) のすべてのフィールド227(i)と233(i)の相対アドレス内のビット位 置において、値が「1」の通信リンク・ポインタの中のビット位置に対応するビ ットの補数をとることを可能にする。ステップ174の結果は、問題頂点10  (i)の再割当てを受け入れるように更新された各問題頂点トークン220の中 の相対アドレスである。
同時に、ホスト36は、セットされたコンテキスト・フラグをもつシリアル・プ ロセッサ、つまり、再割当てすべき問題頂点10(i)の問題頂点トークン22 0をもつシリアル・プロセッサ44(i)をイネーブルして、問題頂点トークン 220に関連する問題頂点10(i)の再割当てを反映するように、それぞれの 割当てポインタ221の値を調整することを可能にする(ステップ175)。特 に、セットされたコンテキスト・フラグをもつシリアル・プロセッサ44(i) は、再割当てを示す通信リンク・ポインタの値を、割当てポインタ221の値に 加え、その結果は、問題頂点を割り当てるべき処理ノード40の識別名からなっ ている。
それぞれの問題頂点トークン220を再割当てに照らして調整することをイネー ブルしたあと、ホスト36は別の繰返しを実行すべきかどうかを判断する。本発 明の1実施例では、ホスト36はステップ164での繰返し時にしきい値を生成 する際にシリアル・プロセッサ44(i)が使用する値が所定の終了基準値以下 であるかどうかに基づいてこの判断を行う(ステップ176)。以下でなければ 、ホストは値を小さくシ(ステップ177)、ステップ156に戻って新しい繰 返しを開始する。ホスト36はステップ157〜177を繰返し実行し、各繰返 しの終了時にステップ177でしきい値を小さくしていき、これは、その繰返し で使用したしきい値が所定の終了基準値以下になる繰返しに達するまで続けられ 、以下になると、ホストはマツピング・フェーズを終了する(ステップ180) 。
上に示したように、好ましくは最初の繰返し時に、さらに好ましくは少なくとも 最初のいくつかの繰返し時に、問題を再割当てすべきかどうかを判断する際にス テップ165で使用されたしきい値は相対的に大きな正の数になっている。上述 したように、しきい値は、選択した問題頂点トークン220の交換を、その交換 の結果発生する通信コスト変化の値の和(前述した総通信コスト変化値)に照ら して処理ノード間の通信リンク22(n)を利用して行うことを許すべきかどう かを判断するために使用される。従って、すべての繰返しでしきい値をゼロが負 値に維持して、和を減少する場合にだけ再割当てが行われるようにする必要があ る。しかし、問題頂点トークン220の初期マツピングはランダムであるので( ステップ151)、しきい値を連続する繰返しで初期の正値から減少するように 変化させると、しきい値をゼロか負に維持する場合よりも、最終的なマツピング が良好になる。
B9通信リンク割当てフェーズ 上述したように、問題頂点10(i)を処理ノード40にマツピングしたものを 生成した後、システムはそこにマツピングされた問題頂点10(i)によって生 成されるメツセージと受信されるメツセージを、メツセージ転送操作の連続する メツセージ転送サイクルで特定の通信リンク22(n)に割り当てるフェーズを 実行する。これは、第2図〜第4B図を参照して上述したように、処理ノード4 0間でメツセージを転送することを可能にするものである。割当てフェーズでは 、システムは、一連の繰返しで、送信データ・ポインタのテーブルを生成する。
これらのポインタは、連続するメツセージ転送サイクルの各々でメツセージ転送 を行う時に使用されるものである。第6A図〜第6C図は割当てフェーズでシス テムが実行する操作を示している。
第6A図に示すように、ホスト36は最初に、マツピング・フェーズで生成され た問題頂点トークン220(第7A図)を、マツピング・フェーズで判断された マツピングに従って処理ノード40に入れるようにイネーブルする(ステップ2 00)。各問題頂点トークン220はポインタ225(i)と230 (i)を 含んでおり、その相対アドレスは、マツピング・フェーズ時に下流側と上流側の 問題頂点10(i)がマツピングされた処理ノード40を示している。このこと から理解されるように、システムがマツピング・フェーズから通信リング割当て フェーズに1接に移り、問題頂点トークン220がすでに正しい処理ノード40 にロードされている場合には、ホストはステップ200を実行する必要はない。
そのあと、ホストは処理ノード40をイネーブルして全体を符号241 (i) で示した1つまたは2つ以上のトークン(第7B図)を含むメツセージ・リスト (第7B図)を設定することを可能にする。メツセージ・トークン241 (i )はそれぞれの処理ノード40で生成し、送信できるすべてのメツセージを示し ている(ステップ201)。
送信データ・ポインタが最初のメツセージ転送サイクルのために生成される最初 の繰返しの開始時、処理ノード40によって送1言されるメツセージは、そこに 割り当てられた問題頂点10(i)の処理時に生成されるメツセージである。こ の時点で、各処理ノード40についてメツセージ・トークン・リスト240は処 理ノード40にマツピングされたすべての問題頂点トークン220に入っている 各下流側ポインタ225(i)のメツセージ・トークン241 (i)をもって いる。送信データ・ポインタ・テーブルが後続のメツセージ転送サイクルで生成 される後続の繰返しでは、処理ノード40から送信されるメツセージは、他の処 理ノードから受信したメツセージを含んでいる場合があるので、メツセージ・ト ークン・リストはそのようなメツセージのメツセージ・トークン241 (i) を含んでいる。
先に進む前に、理解を容易にするために、メツセージ・トークン・リスト240 の構造について説明する。
第7B図に示すように、メツセージ・トークン・リストは複数のメツセージ・ト ークン241 (i)と、そのリスト240に含まれるメツセージ・トークン2 41(ilの個数を示したカウント・フィールド242とからなっている。
各メツセージ・トークンは2つのフィールド、つまり問題頂点IDフィールド2 43 (i)と通信リンク・ポインタ・フィールド244 (i)を含んでいる 。問題頂点IDフィールド243(i)の内容は、メツセージ・トークン24N i)によって表されたメツセージの送信元からなる問題頂、点10(i)を示し ている。通信リンク・ポインタ・フィールド244(i)の内容は、処理ノード 40から、問題頂点10 (i)がそこにマツピングされ、メツセージ・トーク ン241 (i)で表されたメツセージを受信する予定の処理ノード40への相 対アドレスを示している。
また、ホスト36は処理ノードをイネーブルし、メツセージを搬送するために割 り当てられる通信リンク22 (n)を選択する際に使用するメツセージ・トー クン241 (i)と通信リンク22(n)に関する情報がストアされるテーブ ル260を作成することを可能にする(ステップ202)。第7C図はテーブル 260の構造を示している。第6C図に示すように、テーブル260は行と列に 配列された複数のエントリ(以下、項目ともいう)2[11fi) (j)から なる配列を含んでいる。各行のエントリ261 (ilはメツセージ・トークン 241 (i)の1つと関連づけられ、各列のエントリ261 (i) (j) は通信リンク22(n)と関連づけられている。
テーブル260を作成する際、ホスト36は処理ノード40をイネーブルして、 配列内の各エントリ261 (i) (j)に、配列エントリ261 (i)  (j)と関連づけられたメツセージ・トークン214(i)と通信リンク22( n)の接続度を示した接続度値をロードすることを可能にする。
本発明の実施例では、接続度値は、(a)メツセージ・トークン241 (i) に関連する行と、関連メツセージが送信される通信リンク22 (n)に関連す る列の各エントリ261 (i) (j)ごとに、メツセージ・トークン241  (i)の相対アドレスの中の「1」の個数と、配列エントリ261 (i)  (j)に関連する通信リンクを示したメツセージ・トークン241 (i)の個 数の和と、(b)他のすべてのエントリ261 (i) (j)については、ゼ ロからなっている。
メツセージ・トークン241(i)の相対アドレスの中の「1」の個数は、処理 ノード40に接続され、関連メツセージが送信される通信リンク22(n)の個 数と、通信リンク22 (n)を示すメツセージ・トークンの個数と、メツセー ジ転送サイクル時にその通信リンク経由の送信を競合するメツセージの個数を示 している。従って、本実施例では、接続度値は、一般的に、(i)メツセージは 少ない通信リンクを経由してのみ送信できるので、メツセージ転送サイクル時に メツセージを通信リンクに割り当てる困難度と、(ii)通信リンクがメツセー ジ転送サイクル時に使用される確率とを結合した尺度である。テーブル260の 中の最低値を使用すると、システムはメツセージ転送サイクル時に通信リンクの 数を最大にする確率を向上する。
メツセージ・トークン・リスト240とテーブル260を作成すると、次に、ホ ストは各々がステップ203〜206からなる一連の繰返しを実行して、メツセ ージ転送サイクル時に通信リンク22 (n)をメツセージ・トークン241  (i)に割り当てる。各繰返し時に、ホスト26は処理ノード40をイネーブル して、メツセージ転送サイクル時に使用されるエントリを送信データ・ポインタ ・テーブルの中に作成する。特に、ホストは各処理ノードをイネーブルして、テ ーブル260の中で最低値をもつ配列エントリ261 (i) (j)を選択す ることを可能にする(ステップ203)。次に、ホストは処理ノードをイネーブ ルして、メツセージ転送サイクル時に使用されるエントリを送信データ・ポイン タ・テーブル(第2図)を作成することを可能にする。送信データ・ポインタは 、配列エントリ261 (i) (j)に関連する問題頂点が割り当てられたシ リアル・プロセッサ44を、配列エントリ261 (i) (j)に関連する特 定の通信リンク22 (n)に関係づけている。
そのあと、ホスト36は処理ノード40をイネーブルして、割り当てたばかりの メツセージ・トークン241(i)に関連する行の中の配列エントリ261 ( i) (j)の内容を削除することと、割り当てたばかりの通信リンク22(n )に関連する列の中の配列エントリ261 (i) (j)の内容を削除するこ とを可能にする(ステップ205)。次に、ホスト36は処理ノード40をイネ ーブルして、テーブル260がすべて空であるかどうかを判断することを可能に する(ステップ206)。処理ノード40に空でないテーブル260がある時は 、ホスト36はステップ203に戻り、別の繰返しを開始して別の通信リンク2 2(n)をメツセージ・トークン241(i)に割り当てる。
そこで、ホスト36は処理ノード40をイネーブルしてステップ203〜206 を繰返し実行して、メツセージ転送サイクルでのテーブル内の送信データ・ポイ ンタを作成することを可能にする。これは、テーブル260の中のエントリ26 1 (i) (j)のすべてが空になるまで続けられ、空になると、ステップ2 10に進む。このことから理解されるように、割り当てることができる通信リン ク22 (n)の数は処理ノード40に接続された通信リンク22 (n)の数 になる。ステップ206を実行する代わりに、ホスト36はカウンタ(図示せず )を保持することも可能であり、その場合は、各繰返しごとにカウンタをインク リメントし、テストして、カウンタが処理ノードに接続された通信リンク22  (n)の数に対応する値までカウントしたときにステップ210に進むことにな る。
(以下余白) いずれの場合も、ステップ203〜206からなるループから呂ると、ホスト3 6は処理ノード40をイネーブルして、連続する繰返しのステップ203で選択 したエントリ261 (i) (j)に関連するメツセージ・トークン241  (i)の中の相対アドレスを変更して、メツセージ転送サイクル時に転送できる ようにする(ステップ210)。次に、ホスト36は処理ノード40をイネーブ ルして、フィールド2448i)の中の相対アドレスがすべてゼロであるメツセ ージ・トークンをメツセージ・トークン・リスト203から削除することを可能 にする(ステップ211)。これにより、メツセージ転送サイクル時に最終的宛 先に送られるメツセージに関連するメツセージ・トークン・リストからメツセー ジ・トークン24(i)が削除される。
次に、ホスト36は処理ノード40をイネーブルして、相対アドレスがすべてゼ ロでないメツセージ・トークン241 (i)があるかどうかを判断することを 可能にする。このようなメツセージ・トークン241(i)はメツセージ転送サ イクル時に最終宛先に到着しないメツセージに関連づけられている。そうであれ ば、ホスト36は処理ノードをイネーブルして、メツセージ転送サイクル時に通 信リンク22(n)に割り当てられたメツセージの削除されなかったメツセージ ・トークンを、メツセージが割り当てられた通信リンク22(n)に転送するこ とを可能にしくステップ213)、ステップ201に戻って、後続のメツセージ 転送サイクルのための処理を開始する。この処理では、処理ノード40は、そこ に割り当てられた問題頂点10(i)によって生成されたメツセージに関連する メツセージ・トークン241 (i)の場合とまったく同じように、メツセージ ・トークン・リスト240の中で受信したメツセージ・トークン241(i)を 含んでいる。
以上から理解されるように、ステップ212の処理の途中で、処理ノード40の すべては、すべての残りのメツセージ・トークン241 (i)に関連するフィ ールド244 (i)に入っている相対アドレスがゼロの値になっているかどう かを判断する。その場合には、残りのメツセージはすべて、その送信データ・ポ インタ・テーブルが完成したばかりの最終宛先にメツセージ転送サイクル時に転 送される。この時点で、ホストはステップ214に進んで、終了する。
G、まとめ システムは、その通信が一定のパターンに従った問題を超並列プロセッサが処理 する時の効率を向上する。特に、システムによれば、処理ノード間で転送される メツセージの中にアドレスを生成して、送る必要がなくなる。送信データ・ポイ ンタは、メツセージ転送操作の後続のメツセージ転送サイクル時にメツセージが 通過する経路を実効的に示している。従って、メツセージに必要とするビットが 実効的に少なくなる。これは、アドレスを含める必要がなく、従って、ルータ・ ノード15(第2図)を高速に通過できるからである。さらに、前掲のHill Ls特許に記載されているように、アドレス・ビットを解読するために必要な回 路はメツセージ転送で使用する必要がないので メツセージ転送はさらに高速化 される。
上述したように、システムは前掲のHillis特許に記載された超並列プロセ ッサが、通信が不規則で、一定のパターンに従った問題を処理する場合に使用す ると、多くの利点が得られる。Hillis特許に記載された超並列プロセッサ では、規則的で、最寄りの隣接通信メカニズムが用意され、”NEWS”通信構 成と呼ばれる規則的なパターンで通信が行われる。このようなプロセッサでは、 通信が規則的なパターンに従う問題ではシステムが必要でない場合がある。しか し、規則的な通信パターンでも、このようなプロセッサにシステムが使用できる ので、このような通信メカニズムをもたないプロセッサに関係する問題で使用す ると、大きな利点が得られる。
さらに、システムは超並列プロセッサ・アレイからなるコンピュータを備えてい ると説明してきたが、並列または非並列多重プロセッサの動作モードで動作する 適当なプログラム記憶式シリアル・プロセッサまたは多重プロセッサ・コンピュ ータを備えることも可能である。
これまでに述べてきた説明は本発明の特定の実施例に限定されるものではない。
種々変更または改良することが可能であり、その場合でも、本発明の利点の一部 または全部を達成することができる。従って、請求の範囲に記載した目的には、 本発明の精神と範囲に属するすべての変更および改良が含まれることは勿論であ る。
FIG、5B FIG、5C F IG、 5D−1 FIG、5D−2 FIG、6A FIG、6B FIG、6C 藺題頂セ、)−77220 メ、ヒージ1−クンリスト240 FIG、7B FIG、7C 要約書 予め定めたパターンで通信リンク(22n)を介して相互接続された処理ノード (21n、 40)間での通信を容易にするための通信パターン情報を生成して 超並列プロセッサを構成するシステムであって、このシステムはマツピング要素 および通信パターン情報生成要素を含む。マツピング要素は、各問題頂点(10 i)がマツピングされた処理ノード(21n、 40)間での通信に関連する遅 延を表わす通信コスト関数に関連して、問題頂点(10i)を問題グラフから超 並列プロセッサの処理ノードにマツピングする。通信パターン情報生成要素は、 処理ノード(21n、 40)にマツピングされた問題頂点(10i)に関連す る通信パターン情報を生成し、この情報を処理ノード(21n)間でのメツセー ジ転送を指示する際に使用されて、問題グラフで定義された通信リンク(22n )を介して処理ノード(21n、 40)間でメツセージを転送することを容易 にする。
国際調査報告

Claims (1)

  1. 【特許請求の範囲】 1.所定のパターンで通信リンクを通して相互に結合されて超並列プロセッサを 構成する処理ノード間で通信を容易にするために通信パターン情報を生成するシ ステムであって、 (A)それぞれの問題頂点がマッピングされた処理ノード間の通信に関連する遅 延を表している通信コスト関数に関して超並列プロセッサの処理ノード上に問題 グラフから問題頂点をマッピングするマッピング要素と、 (B)問題グラフで定義された通りに、通信リンクを通して処理ノード間のメッ セージ転送を容易にするために、処理ノード間のメッセージ転送を指示する際に 使用することを目的として、処理ノード上にマッピングされた問題頂点に関する 通信パターン情報を生成する通信パターン情報生成要素と を備えたことを特徴とするシステム。 2.前記マッピング要素は、 (A)前記問題頂点が選択的に前記処理ノードに割り当てられている現在の初期 マッピングを生成する初期マッピング生成手段と、 (B)現在のマッピングを受けて予想される不安定を生成する予想される不安定 生成手段であって、各々の不安定は問題頂点を前記処理ノードの別の処理ノード に予想される再割当てを行う予想される不安定生成手段と、 (C)前記予想される不安定生成手段に関係する通信コスト関数の変化に応じて 、該不安定生成手段によって生成された予想される不安定を選択する不安定セレ クタと、 (D)前記予想される不安定生成手段と不安定セレクタによる操作を複数の繰返 しで制御する制御要素とを備えたことを特徴とする請求の範囲第1項に記載のシ ステム。 3.前記マッピング要素は、前記予想される不安定生成手段によって生成された 予想される不安定であって、前記不安定セレクタによって選択されたものを受け ると、新しい現在のマッピングを生成するように制御要素によって制御される不 安定生成手段をさらに備えたことを特徴とする請求の範囲第2項に記載のシステ ム。 4.各々の予想される不安定は、問題頂点を前記処理ノードの1つから、通信リ ンクによって直接にそこに接続された前記処理ノードの別のものに予想される再 割当てを行うことからなることを特徴とする請求の範囲第2項に記載のシステム 。 5.(A)前記制御要素は初期状態の時最大占有値を生成し、 (B)該初期マッピング生成手段は、処理ノードに割り当てられた問題頂点とゴ ースト頂点の個数が前記最大占有値に一致するように、ゴースト頂点を前記処理 ノードに割り当てることを特徴とする請求の範囲第2項に記載のシステム。 6.前記不安定セレクタは、各々が前記処理ノードの所定のものと関連づけられ た複数のランデブー・ノードを含んでおり、各ランデブー・ノードはその関連の 処理ノードに割り当てられた問題頂点に関して前記予想される不安定生成手段よ って生成された予想される不安定を選択し、各ランデブー・ノードは予想される 不安定に関して各ランデブー・ノードに関係する通信コスト関数の変化を判断し 、その変化に応じて選択的に予想される不安定をイネーブルすることを特徴とす る請求の範囲第2項に記載のシステム。 7.各々の予想される不安定はある通信リンクを通してある処理ノードから隣接 の通信リンクに問題頂点を予想される再割り当てすることを示しており、さらに (A)前記制御要素は初期状態の時最大占有値を生成し、 (B)前記初期マッピング生成手段は、処理ノードに割り当てられた問題頂点と ゴースト頂点の個数が前記最大占有値に一致するように、ゴースト頂点を前記処 理ノードに割り当て、 (C)前記予想される不安定生成手段は前記ゴースト頂点に関して予想される不 安定マッピングも生成し、(D)各々のランデブー・ノードは通信リンクによっ て相互に結合された2つの処理ノードに関連づけられており、各々のランデブー ・ノードは、各処理ノードに割り当てられた問題頂点とゴースト頂点の個数を最 大占有値に一致するように維持するために、その関連処理ノードから同数の予想 される不安定を選択することを特徴とする請求の範囲第6項に記載のシステム。 8.各々のランデブー・ノードはその関連処理ノードの各々から1つの予想され る不安定を選択することを特徴とする請求の範囲第7項に記載のシステム。 9.各々のランデブー・ノードは、 (A)1対の予想される不安定を選択する予想される不安定セレクタであって、 その1対はその関連処理ノードの各々からの予想される不安定からなる予想され る不安定セレクタと、 (B)予想される不安定セレクタによって選択された予想される不安定の対に応 じて、通信コスト変化値を判断する通信コスト変化要素と を備えたことを特徴とする請求の範囲第7項に記載のシステム。 10.前記制御要素はしきい値を生成し、前記ランデブー・ノードはさらに、通 信コスト変化要素によって生成された前記通信コスト変化値を前記しきい値と比 較し、それに応じて予想される不安定をイネーブルするコンパレータを備えたこ とを特徴とする請求の範囲第9項に記載のシステム。 11.制御要素は各繰返しごとに新しいしきい値を生成することを特徴とする請 求の範囲第10項に記載のシステム。 12.前記マッピング要素は、 (A)所定のパターンに通信リンクによって相互に結合された複数の処理ノード を備えた超並列プロセッサと、 (B)マッピング要素制御部分とを備え、該マッピング要素制御部分は、 (i)前記問題頂点が選択的に前記処理ノードに割り当てられている現在の初期 マッピングを生成する初期マッピング生成手段であって、該初期マッピング生成 手段は前記問題頂点を表している問題頂点トークンを生成し、各問題頂点トーク ンがその割り当てられた処理ノードにロードされるようにイネーブルする初期マ ッピング生成手段と、 (ii)前記処理ノードをイネーブルして、現在のマッピングに応じて予想され る不安定を生成することを可能にする予想される不安定生成手段であって、各予 想される不安定は問題頂点トークンを前記処理ノードに予想される再割当てをす る予想される不安定生成手段と、 (iii)前記処理ノードをイネーブルして、前記予想される不安定生成手段に 応じて、さらにそれに関係する通信コスト関数の変化に応じて、処理時に生成さ れた予想される不安定を選択することを可能にする繰返し不安定セレクタと、( iv)予想される不安定生成手段と不安定生成手段に応じて、複数の繰返しで処 理を制御する繰返し制御要素と を備えたことを特徴とする請求の範囲第1項に記載のシステム。 13.前記マッピング要素制御部分はさらに不安定マッピング生成手段を備えて おり、該不安定マッピング生成手段は繰返し制御要素によって制御され、処理ノ ードをイネーブルして、選択された予想される不安定を相互結合通信リンクを介 して処理ノード間で再割当てすることを可能にして、後続の繰返しの処理の時に 使用する新しい現在のマッピングを生成することを特徴とする請求の範囲第12 項に記載のシステム。 14.前記不安定セレクタに応じて処理を行う時、複数の処理ノードをランデブ ー・ノードとして動作するようにイネーブルし、各ランデブー・ノードは該処理 ノードのうち所定の処理ノードに関連づけられ、ランデブー・ノードはその関連 処理ノードに割り当てられた問題頂点について予想される不安定生成手段に応じ て処理する時に生成された予想される不安定を選択し、各ランデブー・ノードは それに関係する通信コスト関数の変化を、予想される不安定に関して判断して、 その判断に応じて予想される不安定をイネーブルすることを特徴とする請求の範 囲第12項に記載のシステム。 15.各予想される不安定は、問題頂点を1つの通信リンクを通してある処理ノ ードから隣接の通信リンクに予想される再割当てをすることを示し、(A)前記 マッピング制御要素は初期状態の時最大占有値を生成し、 (B)前記初期マッピング生成手段はさらにゴースト頂点トークンを生成し、処 理ノードにロードされる問題頂点トークンとゴースト頂点トークンの数が前記最 大占有値に一致するように、ゴースト頂点トークンが前記処理ノードにロードさ れるようにイネーブルし、(C)前記予想される不安定生成手段は前記処理ノー ドをイネーブルして、前記ゴースト頂点に関して予想される不安定マッピングを 生成することを可能にし、(D)各ランデブー・ノードは通信リンクによって相 互に結合された2つの処理ノードに関連づけられており、各ランデブー・ノード は、各処理ノードに割り当てられた問題頂点とゴースト頂点の数を最大占有値に 一致するように、同数の予想される不安定をその関連処理ノードから選択するこ とを特徴とする請求の範囲第14項に記載のシステム。 16.各ランデブー・ノードはその関連処理ノードの各々から1つの予想される 不安定を選択することを特徴とする請求の範囲第15項に記載のシステム。 17.ランデブー・ノードは、 (A)予想される不安定がランデブー・ノードとなるように選択された処理ノー ドをイネーブルして1対の予想される不安定であって、その1対がその関連処理 ノードの各々からの予想される不安定からなるものを選択することを可能にする 部分をイネーブルしたとき、 (B)通信コスト変更がランデブー・ノードとなるように選択された処理ノード をイネーブルして対の選択された予想される不安定を受けて通信コスト変更値を 判断することを可能にする部分をイネーブルしたとき動作することを特徴とする 請求の範囲第15項に記載のシステム。 18.前記マッピング要素制御部分はしきい値を生成し、前記ランデブー・ノー ドは、さらに、ランデブー・ノードとなるように選択された処理ノードをイネー ブルして、通信コスト変更要素によって生成された通信コスト変更値をしきい値 と比較することを可能にし、その比較を受けて予想される不安定をイネーブルす る部分をコンパレータがイネーブルしたとき動作することを特徴とする請求の範 囲第17項に記載のシステム。 19.マッピング要素制御部分は各繰返しごとに新しいしきい値を生成すること を特徴とする請求の範囲第18項に記載のシステム。 20.通信パターン情報生成要素は、 (A)選択された通信リンクを通して各処理ノードからメッセージの転送を容易 にするために対応づけを生成するメッセージ/通信リンク対応づけ要素と、(B )一連の通信リンク繰返しで前記メッセージ/通信リンク対応づけ要素を制御し 、各繰返し時にメッセージ転送サイクルのために複数の通信リンクの1つの対応 づけの生成をイネーブルする通信パターン制御要素と を備えたことを特徴とする請求の範囲第1項に記載のシステム。 21.前記メッセージ/通信リンク対応づけ要素は、各処理ノードについて、 (A)各々がメッセージ転送サイクル時に処理ノードによる転送のために使用で きるメッセージに関連する複数のエントリ(項目)からなるメッセージ・リスト と、 (B)前記メッセージ・リストの中の各エントリに関連する優先度値を生成する 優先度設定要素と、(C)前記優先度設定要素によって生成された優先度値を使 用して、前記メッセージ・リストの中のエントリを前記処理ノードに接続された 通信リンクと関連づけ、その関連づけに応じて前記通信パターン情報を生成する ための通信リンク割当て要素と を備えたことを特徴とする請求の範囲第20項に記載のシステム。 22.各処理ノードにおいて、各メッセージは各処理ノードに接続された通信リ ンクのうち選択された通信リンクを経由して送信することができ、前記優先度設 定要素は、(i)そこを経由してエントリのメッセージを送信できる通信リンク の数、および(ii)その通信リンクを経由して送信できるメッセージの数に関 して、各エントリと通信リンクの優先度値を生成することを特徴とする請求の範 囲第21項に記載のシステム。 23.優先度設定要素によって生成される優先度値は、(i)そこを経由してエ ントリのメッセージを送信できる通信リンクの数、および(ii)通信リンクを 経由して送信できるメッセージの数の和に対応しており、通信リンク割当て要素 はエントリおよび通信リンクと低優先度値との関連づけに関するパターン情報を 生成することを特徴とする請求の範囲第22項に記載のシステム。 24.前記通信パターン制御要素は、さらに、前記メッセージ/通信リンク対応 づけ要素を一連のメッセージ転送サイクルの繰返しで制御し、各繰返しは複数の 通信リンク繰返しからなり、それによって複数のメッセージ転送サイクルの対応 づけの生成をイネーブルすることを特徴とする請求の範囲第20項に記載のシス テム。 25.前記メッセージ/通信リンク対応づけ要素は、各処理ノードについて、 (A)前のメッセージ転送サイクル時に転送されると判断されたメッセージを含 めて、各々がメッセージ転送サイクル時に処理ノードが転送のために使用できる メッセージに関連づけられた複数のエントリからなるメッセージ・リストと、 (B)前記メッセージ・リストの中の各エントリに関連づけられた優先度値を生 成する優先度設定要素と、 (C)前記優先度設定要素によって生成された優先度値を使用して、前記メッセ ージ・リストの中のエントリを前記処理ノードに接続された通信リンクと関連づ け、その関連づけに応じて前記通信パターン情報を生成する通信リンク割当て要 素と を備えたことを特徴とする請求の範囲第24項に記載のシステム。 26.各処理ノードにおいて、各メッセージは各処理ノードに接続された通信リ ンクのうち選択された通信リンクを経由して送信することができ、前記優先度設 定要素は、(i)そこを経由してエントリのメッセージを送信できる通信リンク の数、および(ii)通信リンクを経由して送信できるメッセージの数に関して 各エントリと通信リンクの優先度値を生成することを特徴とする請求の範囲第2 5項に記載のシステム。 27.優先度設定要素によって生成される優先度値は(i)そこを経由してエン トリのメッセージを送信できる通信リンクの数、および(ii)通信リンクを経 由して送信できるメッセージの数の和に対応し、通信リンク割当て要素はエント リおよび通信リンクと低優先度値との関連付けに関する通信パターン情報を生成 することを特徴とする請求の範囲第26項に記載のシステム。 28.通信パターン情報生成要素は、 (A)通信リンクによって所定のパターンに相互結合された複数の処理ノードを 含んでいる超並列プロセッサと、 (B)通信パターン制御部分とを備え、該通信パターン制御部分は、 (i)各処理ノードから選択した通信リンクを経由してメッセージを転送するこ とを容易にするために、前記処理ノードをイネーブルして対応づけを生成するこ とを可能にするメッセージ/通信リンク対応づけ要素と、 (ii)一連の通信リンク繰返しで前記メッセージ/通信リンク対応づけ要素が 各繰返し時にメッセージ転送サイクルのために複数の通信リンクの1つの対応づ けの生成をイネーブルしたことを受けて、前記処理ノードをイネーブルして前記 処理を制御することを可能にする通信パターン制御要素と を備えたことを特徴とする請求の範囲第1項に記載のシステム。 29.前記メッセージ/通信リンク対応づけ要素は、(A)各々がメッセージ転 送サイクル時に処理ノードが転送のために使用できるメッセージに関連づけられ た複数のエントリを含んでいるメッセージ・リストを生成することを可能にする ために前記処理ノードをイネーブルするメッセージ・リスト生成部分と、(B) 前記処理ノードをイネーブルして、前記メッセージ・リストの中の各エントリに 関連する優先度値を生成することを可能にする優先度設定要素と、(C)前記処 理ノードをイネーブルして、前記優先度設定要素によって生成された優先度値を 使用して、前記メッセージ・リストの中のエントリを該処理ノードに接続された 通信リンクと関連づけ、その関連づけに応じて前記通信パターン情報を生成する ことを可能にする通信リンク割当て要素と を備えたことを特徴とする請求の範囲第28項に記載のシステム。 30.各処理ノードにおいて、各メッセージは処理ノードに接続された通信リン クのうち選択した通信リンクを経由して送信することができ、前記優先度設定要 素は該処理ノードをイネーブルして、(i)そこを経由してエントリのメッセー ジを送信できる通信リンクの数および(ii)通信リンクを経由して送信できる メッセージの数に関して、各エントリと通信リンクの優先度値を生成することを 可能にすることを特徴とする請求の範囲第29項に記載のシステム。 31.優先度設定要素によって制御される処理に応じて生成される優先度値は、 (i)そこを経由してエントリのメッセージを送信できる通信リンクの数、およ び(ii)通信リンクを経由して送信できるメッセージの数の和に対応しており 、通信リンク割当て要素は前記処理ノードをイネーブルして、エントリおよび通 信リンクと低優先度値との関連づけに関するパターン情報を生成することを可能 にすることを特徴とする請求の範囲第30項に記載のシステム。 32.前記通信パターン制御要素に応じて行われる処理は、さらに前記処理ノー ドをイネーブルして、一連のメッセージ転送サイクルで前記メッセージ/通信リ ンク対応づけ要素を処理することを可能にし、各繰返しは複数の通信リンク繰返 しからなり、それによって複数のメッセージ転送サイクルの対応づけの生成をイ ネーブルすることを特徴とする請求の範囲第28項に記載のシステム。 33.前記メッセージ/通信リンク対応づけ要素は、(A)前のメッセージ転送 サイクル時に転送されるものと判断されたメッセージに関連するメッセージ・ト ークンを含めて、前記処理ノードをイネーブルして、各々がメッセージ転送サイ クル時に処理ノードが転送するために使用できるメッセージに開運するメッセー ジ・トークンを含んでいる複数のエントリからなるメッセージ・リストを生成す ることを可能にするメッセージ・リスト生成部分と、 (B)前記メッセージ・リストの中の各エントリに関連づけられた優先度値を生 成する優先度設定要素と、 (C)前記優先度設定要素によって生成された優先度値を使用して、前記メッセ ージ・リストの中のエントリを前記処理ノードに接続された通信リンクと関連づ け、その関連づけに応じて前記通信パターン情報を生成する通信リンク割当て要 素と を備えたことを特徴とする請求の範囲第32項に記載のシステム。 34.各処理ノードにおいて、各メッセージは処理ノードに接続された通信リン クのうち選択した通信リンクを経由して送信することができ、前記優先度設定要 素は前記処理ノードをイネーブルして、(i)そこを経由してエントリのメッセ ージを送信できる通信リンクの数、および(ii)通信リンクを経由して送信で きるメッセージの数に関して、各エントリと通信リンクの優先度値を生成するこ とを可能にすることを特徴とする請求の範囲第33項に記載のシステム。 35.優先度設定要素によって制御される処理を受けて生成される優先度値は、 (i)そこを経由してエントリのメッセージを送信できる通信リンクの数、およ び(ii)通信リンクを経由して送信できるメッセージの数の和に対応しており 、通信リンク割当て要素は前記処理ノードをイネーブルして、エントリおよび通 信リンクと低優先度値との関連づけに関する通信パターン情報を生成することを 可能にすることを特徴とする請求の範囲第34項に記載のシステム。 36.メッセージ/通信リンク対応づけ要素は、メッセージ転送サイクルのため に関連づけが生成されたあと、処理ノードをイネーブルして、その処理ノードに 関連づけられた通信リンクを経由してメッセージ・トークンを転送することを可 能にするメッセージ・トークン転送要素をさらに備えたことを特徴とする請求の 範囲第33項に記載のシステム。 37.各メッセージ・トークンは宛先ポインタをもち、該メッセージ・トークン 転送要素は処理ノードをイネーブルして、そこを経由してメッセージ・トークン を転送する通信リンクに関してポインタの値を調整することを可能にすることを 特徴とする請求の範囲第36項に記載のシステム。 38.それぞれの問題頂点にマッピングされた処理ノード間の通信に関連する遅 延を表した通信コスト関数に関して、問題頂点を問題グラフから超並列プロセッ サの処理ノードにマッピングするシステムであって、(A)前記問題頂点が前記 処理ノードに選択的に割り当てられている現在の初期マッピングを生成する初期 マッピング生成手段と、 (B)現在のマッピングに応じてそれそれの不安定を生成し、各不安定が問題頂 点を前記処理ノードの別の処理ノードに予想される再割当てすることからなる予 想されるマッピング生成手段と、 (C)予想される不安定に関係する通信コスト関数が変化すると、それを受けて 前記予想される不安定生成手段によって生成された予想される不安定を選択する 不安定セレクタと、 (D)前記予想される不安定生成手段と不安定セレクタによる操作を複数の繰返 しで制御する制御要素とを備えたことを特徴とするシステム。 39.前記マッピング要素は、前記予想される不安定生成手段によって生成され 、前記不安定セレクタによって選択された予想される不安定に応じて、新しい現 在のマッピングを生成するように制御要素によって制御される不安定マッピング 生成手段を更に備えたことを特徴とする請求の範囲第38項に記載のシステム。 40.各予想される不安定は、問題頂点を前記処理ノードの1つから通信リンク によって直接にそこに接続された前記処理ノードの別の処理ノードに予想される 再割当てすることを特徴とする請求の範囲第38項に記載のシステム。 41.(A)前記制御要素は初期状態の時最大占有値を生成し、 (B)前記初期マッピング生成手段は、処理ノードに割り当てられた問題頂点と ゴースト頂点の個数が前記最大占有値に一致するように、ゴースト頂点を前記処 理ノードに割り当てることを特徴とする請求の範囲第38項に記載のシステム。 42.前記不安定セレクタは、各々が前記処理ノードのうち所定の処理ノードに 関連づけられた複数のランデブー・ノードを含んでおり、各ランデブー・ノード はその関連処理ノードに割り当てられた問題頂点に関して前記不安定生成手段に よって生成された予想される不安定を選択し、各ランデブー・ノードは予想され る不安定に関してランデブー・ノードに関係する通信コスト関数の変化を判断し 、その判断に応じて予想される不安定を選択的にイネーブルすることを特徴とす る請求の範囲第38項に記載のシステム。 43.各予想される不安定は通信リンクを経由してある処理ノードから問題頂点 を隣接の通信リンクに予想される再割当てをすることからなり、 (A)前記制御要素は初期状態の時最大占有値を生成し、 (B)前記初期マッピング生成手段は、処理ノードに割り当てられた問題頂点と ゴースト頂点の数が前記最大占有値に一致するように、ゴースト頂点を前記処理 ノードに割り当て、 (C)前記予想される不安定生成手段は前記ゴースト頂点に関して予想される不 安定マッピングも生成し、(D)各ランデブー・ノードは通信リンクによって相 互結合された2つの処理ノードに関連づけられており、各ランデブー・ノードは 、各処理ノードに割り当てられた問題頂点とゴースト頂点の個数を最大占有値に 一致するように維持するために、その関連処理ノードから同数の予想される不安 定を選択することを特徴とする請求の範囲第42項に記載のシステム。 44.各ランデブー・ノードはその関連処理ノードの1つから1つの予想される 不安定を選択することを特徴とする請求の範囲第43項に記載のシステム。 45.各ランデブー・ノードは、 (A)対の予想される不安定であって、その対はその関連処理ノードの各々から の予想される不安定からなるものを選択する予想される不安定セレクタと、(B )予想される不安定セレクタによって選択された対の予想される不安定に応じて 、通信コスト変化値を判断する通信コスト変化要素と を備えたことを特徴とする請求の範囲第43項に記載のシステム。 46.前記制御要素はしきい値を生成し、前記ランデブー・ノードは通信コスト 変化要素によって生成された前記通信コスト変更値を前記しきい値と比較し、そ の結果に応じて予想される不安定をイネーブルするコンパレータをさらに備えて いることを特徴とする請求の範囲第45項に記載のシステム。 47.制御要素は各繰返しごとに新しいしきい値を生成することを特徴とする請 求の範囲第46項に記載のシステム。 48.それぞれの問題頂点にマッピングされた処理ノード間の通信に関連する遅 延を表した通信コスト関数に関して、問題頂点を問題グラフから超並列プロセッ サの処理ノード上にマッピングするシステムであって、 (A)通信リンクによって所定パターンに相互結合された複数の処理ノードを備 えた超並列プロセッサと、 (B)マッピング要素制御部分とを備え、該マッピング要素制御部分は、 (i)前記問題頂点が前記処理ノードに選択的に割り当てられている現在の初期 マッピングを生成する初期マッピング生成手段であって、該初期マッピング生成 手段は前記問題頂点を表した問題頂点トークンを生成し、各問題頂点をイネーブ ルしてその割当て処理ノードにロードされることを可能にする初期マッピング生 成手段と、 (ii)前記処理ノードをイネーブルして、現在のマッピングに応じて予想され る不安定を生成することを可能にする予想される不安定生成手段であって、該予 想される不安定は問題頂点を前記処理ノードの別の処理ノードに予想される再割 当てをする予想される不安定生成手段と、(iii)前記処理ノードをイネーブ ルして、前記予想される不安定に応じて、さらにそれに関係する通信コスト関数 の変化に応じて、処理時に生成された予想される不安定を選択することを可能に する不安定セレクトと、 (iv)予想される不安定生成手段と不安定セレクタに応じて処理を複数の繰返 しで制御する繰返し制御要素とを備えた ことを特徴とするシステム。 49.前記マッピング要素制御部分は、処理ノードをイネーブルして、選択した 予想される不安定を相互結合通信リンクを通して処理ノード間で再割当てするこ とを可能にするために繰返し制御要素によって制御されて、後続の繰返しの処理 時に使用するための新しい現在のマッピングを生成する不安定マッピング生成手 段をさらに備えたことを特徴とする請求の範囲第48項に記載のシステム。 50.前記不安定セレクタに応じて処理が行われるとき、複数の処理ノードはラ ンデブー・ノードとして動作するようにイネーブルされ、各ランデブー・ノード は前記処理ノードのうち選択された処理ノードに関連づけられ、ランデブー・ノ ードはその関連処理ノードに割り当てられた問題頂点に関して予想される不安定 生成手段に応じて、処理時に生成された予想される不安定を選択し、各ランデブ ー・ノードは予想される不安定に関してランデブー・ノードに関係する通信コス ト関数の変化を判断し、それに応じて予想される不安定を選択的にイネーブルす ることを特徴とする請求の範囲第48項に記載のシステム。 51.各予想される不安定は、問題頂点を通信リンクを通してある処理ノードか ら隣接の通信リンクに予想される再割当てすることからなり、 (A)前記マッピング要素制御部分は初期状態のとき最大占有値を生成し、 (B)前記初期マッピング生成手段は、さらにゴースト頂点トークンを生成し、 処理ノードにロードされた問題頂点トークンとゴースト頂点の個数が前記最大占 有値に一致するように、ゴースト頂点トークンが前記処理ノードされるようにイ ネーブルし、(C)前記予想される不安定生成手段は前記ゴースト頂点に関して 前記処理ノードもイネーブルして、予想される不安定マッピングを生成すること を可能にし、(D)各ランデブー・ノードは通信リンクによって相互結合された 2つの処理ノードに関連づけられており、各ランデブー・ノードは各処理ノード に割り当てられた問題頂点とゴースト頂点の数を最大占有値に一致するように維 持するために、その関連処理ノードから同数の予想される不安定を選択すること を特徴とする請求の範囲第50項に記載のシステム。 52.各ランデブー・ノードはその関連処理ノードの各々から1つの予想される 不安定を選択することを特徴とする請求の範囲第51項に記載のシステム。 53.ランデブー・ノードは、 (A)ランデブー・ノードとなるように選択された処理ノードをイネーブルして 、1対の予想される不安定を選択する予想される不安定のイネーブル部分であっ て、その1対がその関連処理ノードの各々からの予想される不安定からなるとき 、 (B)ランデブー・ノードとなるように選択された処理ノードをイネーブルして 、対の選択された予想される不安定に応じて通信コスト変化を判断することを可 能にする部分をイネーブルしたとき、それを受けてランデブー・ノードが動作す ることを特徴とする請求の範囲第51項に記載のシステム。 54.前記マッピング要素制御部分はしきい値を生成し、ランデブー・ノードと なるように選択された処理ノードをイネーブルして、通信コスト変化要素によっ て生成された通信コスト変化値をしきい値と比較することを可能にし、その比較 に応じて予想される不安定をイネーブルする部分をコンパレータがイネーブルし たとき、それを受けて前記ランデブー・ノードがさらに動作することを特徴とす る請求の範囲第53項に記載のシステム。 55.マッピング要素制御部分は各繰返しごとに新しいしきい値を生成すること を特徴とする請求の範囲第54項に記載のシステム。 56.通信リンクを通して所定のパターンに相互に結合されて超並列プロセッサ を構成する処理ノード間でメッセージ転送を指示し、問題グラフで定義されたパ ターンに処理ノード上にマッピングされた問題頂点間の通信を容易にするシステ ムであって、(A)選択した通信リンクを経由して各処理ノードからメッセージ を転送することを容易にするためのメッセージ/通信リンク対応づけ要素と、 (B)前記メッセージ/通信リンク対応づけ要素を一連の通信リンク繰返しで制 御し、各繰返し時にメッセージ転送サイクルのための複数の通信リンクの1つの 対応づけの生成をイネーブルする通信パターン制御要素と を備えたことを特徴とするシステム。 57.前記メッセージ/通信リンク対応づけ要素は、各処理ノードについて、 (A)メッセージ転送サイクル時に処理ノードが転送のために使用できるメッセ ージに各々が関連づけられている複数のエントリからなるメッセージ・リストと 、 (B)前記メッセージ・リストの中の各エントリに関連する優先度値を生成する 優先度設定要素と、(C)前記優先度設定要素によって生成された優先度値を使 用して、前記メッセージ・リストの中のエントリを前記処理ノードに接続された 通信リンクに関連づけ、その関連づけに応じて前記通信パターン情報を生成する 通信リンク割当て要素と を備えたことを特徴とする請求の範囲第55項に記載のシステム。 58.各処理ノードにおいて、各メッセージは処理ノードに接続された通信リン クの1つを通して送信することができ、前記優先度設定要素は(i)そこを経由 してエントリのメッセージを送信できる通信リンクの数、および(ii)通信リ ンクを通して送信できるメッセージの数に関して、各エントリと通信リンクの優 先度値を生成することを特徴とする請求の範囲第57項に記載のシステム。 59.優先度設定要素によって生成される優先度値は(i)そこを経由してエン トリのメッセージを送信できる通信リンクの数、および(ii)通信リンクを通 して送信できるメッセージの数の和に対応しており、通信リンク割当て要素はエ ントリおよび通信リンクと低優先度値との関連づけに関する通信パターン情報を 生成することを特徴とする請求の範囲第58項に記載のシステム。 50.前記通信パターン制御要素は、さらに、前記メッセージ/通信リンク対応 づけ要素を一連のメッセージ転送サイク繰返しで制御し、各々の繰返しは複数の 通信リンク繰返しからなり、これによって複数のメッセージ転送サイクルの対応 づけの生成をイネーブルすることを特徴とする請求の範囲第56項に記載のシス テム。 61.前記メッセージ/通信リンク対応づけ要素は、各処理ノードについて、 (A)前にメッセージ転送サイクル時に転送されたと判断されたメッセージを含 めて、メッセージ転送サイクル時に処理ノードが転送ために使用できるメッセー ジに各々が関連づけられた複数のエントリからなるメッセージ・リストと、 (B)前記メッセージ・リストの中の各エントリに関連づけられた優先度値を生 成する優先度設定要素と、 (C)前記優先度設定要素によって生成された優先度値を使用して、前記メッセ ージ・リストの中のエントリを前記処理ノードに接続された通信リンクに関連づ け、その関連づけに応じて前記通信パターン情報を生成する通信リンク割当て要 素と を備えたことを特徴とする請求の範囲第60項に記載のシステム。 62.各処理ノードにおいて、各メッセージは処理ノードに接続された通信リン クの1つを通して送信することができ、前記優先度設定要素は(i)そこを経由 してエントリのメッセージを送信できる通信リンクの数、および(ii)通信リ ンクを通して送信できるメッセージの数に関して、各エントリと通信リンクの優 先度値を生成することを特徴とする請求の範囲第61項に記載のシステム。 63.優先度設定要素によって生成される優先度値は(i)そこを経由してエン トリのメッセージを送信できる通信リンクの数、および(ii)通信リンクを通 して送信できるメッセージの数の和に対応しており、通信リンク割当て要素はエ ントリおよび通信リンクと低優先度値との関連づけに関する通信パターン情報を 生成することを特徴とする請求の範囲第52項に記載のシステム。 64.通信リンクを通して所定のパターンに相互に結合されて超並列プロセッサ を構成する処理ノード間でメッセージ転送を指示し、問題グラフで定義されたパ ターンに処理ノード上にマッピングされた問題頂点間の通信を容易にするシステ ムであって、(A)通信リンクによって所定のパターンに相互に結合された複数 の処理ノードからなる超並列プロセッサと、 (B)通信パターン制御部分とを備え、該通信パターン制御部分は、 (i)各処理ノードから選択した通信リンクを経由してメッセージを転送するこ とを容易にするために、前記処理ノードをイネーブルして対応づけを生成するこ とを可能にするメッセージ/通信リンク対応づけ要素と、 (ii)一連の通信リンク繰返しで前記メッセージ/通信リンク対応づけ要素が 各繰返し時にメッセージ転送サイクルのために複数の通信リンクの1つの対応づ けの生成をイネーブルしたことを受けて、前記処理ノードをイネーブルして前記 処理を制御することを可能にする通信パターン制御要素と を備えたことを特徴とするシステム。 65.前記メッセージ/通信リンク対応づけ要素は、(A)前記処理ノードをイ ネーブルして、各々がメッセージ転送サイクル時に処理ノードが転送するために 使用できるメッセージに関連づけられた複数のエントリからなるメッセージ・リ ストを生成することを可能にするメッセージ・リスト生成部分と、(B)前記処 理ノードをイネーブルして、前記メッセージ・リストの中の各エントリに関連づ けられた優先度値を生成することを可能にする優先度設定要素と、 (C)前記処理ノードをイネーブルして、前記優先度設定要素によって生成され た優先度値を使用して前記メッセージ・リストの中のエントリを該処理ノードに 接続された通信リンクに関連づけ、その関連づけに応じて前記通信パターン情報 を生成することを可能にする通信リンク割当て要素と を備えたことを特徴とする請求の範囲第64項に記載のシステム。 66.各処理ノードにおいて、各メッセージは処理ノードに接続された通信リン クの1つを通して送信することができ、前記優先度設定要素は(i)そこを経由 してエントリのメッセージを送信できる通信リンクの数、および(ii)通信リ ンクを通して送信できるメッセージの数に関して、各エントリと通信リンクの優 先度値を生成することを特徴とする請求の範囲第65項に記載のシステム。 67.優先度設定要素によって生成される優先度値は(i)そこを経由してエン トリのメッセージを送信できる通信リンクの数、および(ii)通信リンクを通 して送信できるメッセージの数の和に対応しており、通信リンク割当て要素はエ ントリおよび通信リンクと低優先度値との関連づけに関する通信パターン情報を 生成することを特徴とする請求の範囲第66項に記載のシステム。 68.前記通信パターン制御要素に応じて行われる処理は、さらに前記処理ノー ドをイネーブルして、一連のメッセージ転送サイクルで前記メッセージ/通信リ ンク対応づけ要素を処理することを可能にし、各繰返しは複数の通信リンク繰返 しからなり、それによって複数のメッセージ転送サイクルの対応づけの生成をイ ネーブルすることを特徴とする請求の範囲第64項に記載のシステム。 69.前記メッセージ/通信リンク対応づけ要素は、(A)前のメッセージ転送 サイクル時に転送されるものと判断されたメッセージに関連するメッセージ・ト ークンを含めて、前記処理ノードをイネーブルして、各々がメッセージ転送サイ クル時に処理ノードが転送するために使用できるメッセージに関連するメッセー ジ・トークンを含んでいる複数のエントリからなるメッセージ・リストを生成す ることを可能にするメッセージ・リスト生成部分と、 (B)前記メッセージ・リストの中の各エントリに関連づけられた慶先度値を生 成する優先度設定要素と、 (C)前記優先度設定要素によって生成された優先度値を使用して、前記メッセ ージ・リストの中のエントリを前記処理ノードに接続された通信リンクと関連づ け、その関連づけに応じて前記通信パターン情報を生成する通信リンク割当て要 素とを備えたことを特徴とする請求の範囲第68項に記載のシステム。 70.各処理ノードにおいて、各メッセージは処理ノードに接続された通信リン クの1つを適して送信することができ、前記優先度設定要素は(i)そこを経由 してエントリのメッセージを送信できる通信リンクの数、および(ii)通信リ ンクを通して送信できるメッセージの数に関して、各エントリと通信リンクの優 先度値を生成することを特徴とする請求の範囲第69項に記載のシステム。 71.優先度設定要素によって生成される優先度値は(i)そこを通してエント リのメッセージを送信できる通信リンクの数、および(ii)通信リンクを通し て送信できるメッセージの数の和に対応しており、通信リンク割当て要素はエン トリおよび通信リンクと低優先度値との関連づけに関する通信パターン情報を生 成することを特徴とする請求の範囲第70項に記載のシステム。 72.メッセージ/通信リンク対応づけ要素は、さらに、あるメッセージ転送サ イクルについて関連づけが生成されたあと、処理ノードをイネーブルして、処理 ノードに関連する通信リンクを通してメッセージ・トークンを転送することを可 能にするメッセージ・トークン転送要素を備えたことを特徴とする請求の範囲第 69項に記載のシステム。 73.各メッセージ・トークンは宛先ポインタをもち、前記メッセージ・トーク ン転送要素は処理ノードをイネーブルして、そこを通してメッセージ・トークン を転送する通信リンクに関してポインタの値を調整することを可能にすることを 特徴とする請求の範囲第72項に記載のシステム。
JP3511775A 1990-06-14 1991-06-14 超並列処理システム用の通信構成の生成 Pending JPH05504644A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/538,184 US5247694A (en) 1990-06-14 1990-06-14 System and method for generating communications arrangements for routing data in a massively parallel processing system
US538,184 1990-06-14

Publications (1)

Publication Number Publication Date
JPH05504644A true JPH05504644A (ja) 1993-07-15

Family

ID=24145863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3511775A Pending JPH05504644A (ja) 1990-06-14 1991-06-14 超並列処理システム用の通信構成の生成

Country Status (6)

Country Link
US (1) US5247694A (ja)
EP (1) EP0533835A4 (ja)
JP (1) JPH05504644A (ja)
AU (1) AU667797B2 (ja)
CA (1) CA2083255A1 (ja)
WO (1) WO1991020024A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233815A (ja) * 2006-03-02 2007-09-13 Hitachi Ltd 情報処理システムおよび情報処理装置の割当管理方法
JP2011053876A (ja) * 2009-09-01 2011-03-17 Fujitsu Ltd 並列計算システムおよび通信制御プログラム
WO2014006735A1 (ja) * 2012-07-06 2014-01-09 株式会社日立製作所 転送方法およびグラフ処理システム

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
US5715391A (en) * 1991-11-15 1998-02-03 International Business Machines Corporation Modular and infinitely extendable three dimensional torus packaging scheme for parallel processing
WO1994003860A1 (en) * 1992-08-07 1994-02-17 Thinking Machines Corporation Massively parallel computer including auxiliary vector processor
US5859981A (en) * 1995-07-12 1999-01-12 Super P.C., L.L.C. Method for deadlock-free message passing in MIMD systems using routers and buffers
US5924112A (en) * 1995-09-11 1999-07-13 Madge Networks Limited Bridge device
JPH09330304A (ja) * 1996-06-05 1997-12-22 Internatl Business Mach Corp <Ibm> プロセッサ間の通信スケジュールを決定する方法
US6044080A (en) * 1996-11-19 2000-03-28 Pluris, Inc. Scalable parallel packet router
US5931915A (en) 1997-05-13 1999-08-03 International Business Machines Corporation Method for processing early arrival messages within a multinode asynchronous data communications system
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6119215A (en) * 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6356548B1 (en) 1998-06-29 2002-03-12 Cisco Technology, Inc. Pooled receive and transmit queues to access a shared bus in a multi-port switch asic
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6728839B1 (en) 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6321344B1 (en) * 1998-12-10 2001-11-20 Lucent Technologies Inc. Reliable distributed processing system
US6385747B1 (en) 1998-12-14 2002-05-07 Cisco Technology, Inc. Testing of replicated components of electronic device
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US20040111590A1 (en) * 2002-07-23 2004-06-10 Klein Robert C. Self-configuring processing element
EP1660993B1 (en) * 2003-08-28 2008-11-19 MIPS Technologies, Inc. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7525978B1 (en) 2005-04-15 2009-04-28 Altera Corporation Method and apparatus for scheduling in a packet buffering network
US8768612B2 (en) * 2007-06-01 2014-07-01 International Business Machines Corporation Stream processing based intelligent transport systems
US8959516B2 (en) * 2007-07-30 2015-02-17 International Business Machines Corporation Methods and systems for coordinated financial transactions in distributed and parallel environments
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
GB2457309A (en) * 2008-02-11 2009-08-12 Picochip Designs Ltd Process allocation in a processor array using a simulated annealing method
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
CN115333965A (zh) * 2022-07-19 2022-11-11 广西电网有限责任公司电力科学研究院 一种高压开关的sv数据处理方法和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4247892A (en) * 1978-10-12 1981-01-27 Lawrence Patrick N Arrays of machines such as computers
US4267892A (en) * 1979-04-30 1981-05-19 Cooper Industries, Inc. Positioning control system for rock drill support apparatus
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4972314A (en) * 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4730322A (en) * 1985-09-27 1988-03-08 California Institute Of Technology Method and apparatus for implementing a maximum-likelihood decoder in a hypercube network
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US4933933A (en) * 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
US4922413A (en) * 1987-03-24 1990-05-01 Center For Innovative Technology Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data
GB8720715D0 (en) * 1987-09-03 1987-10-07 Active Memory Technology Ltd Data routing in processor arrays
US4920487A (en) * 1988-12-12 1990-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method of up-front load balancing for local memory parallel processors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233815A (ja) * 2006-03-02 2007-09-13 Hitachi Ltd 情報処理システムおよび情報処理装置の割当管理方法
JP2011053876A (ja) * 2009-09-01 2011-03-17 Fujitsu Ltd 並列計算システムおよび通信制御プログラム
WO2014006735A1 (ja) * 2012-07-06 2014-01-09 株式会社日立製作所 転送方法およびグラフ処理システム
JP5826390B2 (ja) * 2012-07-06 2015-12-02 株式会社日立製作所 転送方法およびグラフ処理システム

Also Published As

Publication number Publication date
AU8184791A (en) 1992-01-07
US5247694A (en) 1993-09-21
WO1991020024A1 (en) 1991-12-26
EP0533835A1 (en) 1993-03-31
CA2083255A1 (en) 1991-12-15
EP0533835A4 (en) 1995-02-22
AU667797B2 (en) 1996-04-18

Similar Documents

Publication Publication Date Title
JPH05504644A (ja) 超並列処理システム用の通信構成の生成
AU732586B2 (en) Data packet router
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
EP0460599B1 (en) Massively parallel processor including queue-based message delivery system
US5721819A (en) Programmable, distributed network routing
US5682479A (en) System and method for network exploration and access
US5797035A (en) Networked multiprocessor system with global distributed memory and block transfer engine
US5093920A (en) Programmable processing elements interconnected by a communication network including field operation unit for performing field operations
US10713202B2 (en) Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
EP0200780A1 (en) PROCESSING METHOD AND NxM SWITCHING NODE WITH MULTIPLE HANGING LINES AND SWITCHED PACKETS.
WO1986002512A1 (en) PACKET SWITCHED MULTIPORT MEMORY NxM SWITCH NODE AND PROCESSING METHOD
JPH0589066A (ja) 多次元並列処理システム
JPH0856230A (ja) スイッチングシステム
US20030195918A1 (en) System and method of scalable transaction processing
JPH05241947A (ja) 分散クロスバー・スイッチ・アーキテクチャにおける交換接続の配列。
CN117176638A (zh) 一种路由路径确定方法及相关组件
JPH08235143A (ja) クラスタ構成の並列計算機
CN104052686B (zh) 用于对互连访问进行仲裁的系统和方法
US11704270B2 (en) Networked computer with multiple embedded rings
CN100422978C (zh) 具有多个互相通信的数字信号处理器的集成电路
EP0341406B1 (en) Methods and circuit for implementing an arbitrary graph on a polymorphic mesh
JPH01500306A (ja) マルチプロセッサコンピュータ用メモリアーキテクチャ
JPH01105642A (ja) 並列計算機のためのデータ転送ネットワーク
JP2878160B2 (ja) 競合調停装置
JP2966051B2 (ja) プロセッサ装置