JPH07253954A - 並列コンピュータ - Google Patents

並列コンピュータ

Info

Publication number
JPH07253954A
JPH07253954A JP6042322A JP4232294A JPH07253954A JP H07253954 A JPH07253954 A JP H07253954A JP 6042322 A JP6042322 A JP 6042322A JP 4232294 A JP4232294 A JP 4232294A JP H07253954 A JPH07253954 A JP H07253954A
Authority
JP
Japan
Prior art keywords
node
data
processor
processing
processor element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6042322A
Other languages
English (en)
Other versions
JP3290798B2 (ja
Inventor
Tatsuyuki Ootsuka
竜志 大塚
Hideki Yoshizawa
英樹 吉沢
Katsuto Fujimoto
克仁 藤本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP04232294A priority Critical patent/JP3290798B2/ja
Priority to US08/381,399 priority patent/US5715471A/en
Publication of JPH07253954A publication Critical patent/JPH07253954A/ja
Application granted granted Critical
Publication of JP3290798B2 publication Critical patent/JP3290798B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 ネットワーク構成を変更しても実行時のプロ
セッサへの処理プログラムの再割り付け、データの再配
置を不要とし、高速に処理を行うこと。 【構成】 各ノード1〜nに少なくとも2個以上のプロ
セッサPE1,PE2 を設ける。また、データの転送方向
とは対応づけず、ノード1〜nの順番にプロセッサPE
1,PE2 に処理プログラムを割り付け、各プロセッサP
E1,PE2 に対応付けてデータを配置する。そして、各
プロセッサPE1,PE2 にデータが転送された際、各プ
ロセッサは各プロセッサに配置されたデータと転送デー
タの演算を行い、行列の積を求める等の処理を行う。ノ
ードの順番にプロセッサを割り付けているので、ネット
ワーク構成の変更を容易に行うことができる。またネッ
トワーク構成を変更しても、実行時のデータの再配置が
不要となり、高速に処理することが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、各ノードの持つデータ
を転送して処理を行う、各ノードを往路と復路が通過す
るリング型ネットワークにおいて、効率的に処理を実現
するための並列コンピュータに関する。
【0002】
【従来の技術】図11は本発明の前提となる並列コンピ
ュータを備えたシステムの構成を示す図であり、同図に
おいて、CPU1はリング型ネットワークを備えた並列
コンピュータ、CPU2はホストコンピュータ、1はホ
ストコンピュータのプロセッサ、2はホストコンピュー
タCPU2の主記憶装置、3はインタフェースである。
【0003】並列コンピュータCPU1のプロセッサ・
エレメントPE1,PE2 はプロセッサとメモリから構成
され、並列演算の1つの計算処理単位となる。また、ノ
ードNode1 ,…,Nodex は2個のプロセッサ・エレメン
トPE1,PE2 から構成され、これがリング型ネットワ
ークのデータ転送単位となる。並列コンピュータCPU
1は上記ノードNode-1,…,Node-xをリング型ネットワ
ークで結合し、各プロセッサ・エレメントPE1,PE2
で演算処理を施しながらリングRING上をデータを循環さ
せることで最終的な結果を得る。
【0004】また、ホストコンピュータCPU2は並列
コンピュータCPU1の各プロセッサ・エレメントPE
1,PE2 に直結したホストバス4を持ち、並列コンピュ
ータCPU1に対してデータの設定、データの読み出
し、演算処理の制御を行う。そして、計算すべき課題は
ホストコンピュータCPU2が受け付け、プログラムや
データを並列コンピュータCPU1内の各プロセッサ・
エレメントPE1,PE2 のメモリmem にローディングし
た後、並列コンピュータCPU1で実行する。
【0005】実行した結果は、演算終了後、各プロセッ
サ・エレメント内のメモリmem からホストコンピュータ
CPU2側のメモリ2に読み出した後、出力される。図
12は本発明の前提となる上記した並列コンピュータC
PU1における、往路と復路が通過するリング型ネット
ワークの構成を示す図である。同図において、Node-1,
…,Node-nはリング型ネットワークの各ノードであり、
各ノードNode-1,…,Node-nには2個のプロセッサ・エ
レメントが用意され、各ノードのプロセッサ・エレメン
トは同図に示すようにリング状に接続されている。ま
た、各プロセッサ・エレメントにはネットワークの物理
的な順序に従いPE1 からPE2nの番号が付けられてお
り、データもこの順に各プロセッサ・エレメントに分散
して配置される。
【0006】図13,図14は(1)式に示す行列演算
を行う場合に、各プロセッサ・エレメントへのデータ配
置を行うための処理を示すフローチャートである。な
お、同図はフローチャートを簡略化するため、n,mは
何方も偶数の場合を示している。n,mが奇数の場合に
は、空きプロセッサ・エレメントを割り出す例外処理が
追加されるだけて本質的には上記フローチャートと変わ
らない。
【0007】
【数1】
【0008】図13,図14のフローチャートにより、
従来における各プロセッサ・エレメントへのデータ配置
について説明する。なお、以下の説明においては、分か
りやすくするため、m=6,n=4の行列を例にとり説
明するが、m,nは6,4に限定されるものではない。
図13のステップS1において、i=1、および、mn
=max(m,n)、すなわち、mnをm,n内の大き
い方の値、この場合には6に設定する。ステップS2に
おいて、i<=mn/2か否か判別し、i<=mn/2
の場合には、ステップS3において、n1=i,p1=
1に設定し、また、i>mn/2の場合、すなわち、i
が3より大きくなった場合には、ステップS4におい
て、n1=mn−i+1,p1=2に設定する。
【0009】ついで、ステップS5において、i<=n
であるか否かを判別し、i>nの場合には、図14のス
テップS12に行き後述する処理を行う。また、i<=
nの場合には、ステップS6に行き、j=1に設定し、
ステップS7に行き、i+j−1<=mか否かを判断す
る。そして、i+j−1<=mの場合には、ステップS
8に行き、NODE(n1),PE(p1),mem(j)=a(i,i+j-1) とす
る。すなわち、まず、ノードNode-1のプロセッサ・エレ
メントPE1 のメモリmem の第1番目の領域にa1,1 の
データを配置する。以上の処理が終わると、図14のス
テップS10に行き、j=j+1として、ステップS1
1において、j<=mか否かを判断し、j<=mの場合
には、ステップS7に戻り上記処理を行う。
【0010】これにより、ノードNode-1のプロセッサ・
エレメントPE1 のメモリmem の第2番目の領域にa1,
2 が配置される。同様に以上の処理を繰り返し、j=6
になるとノードNode-1のプロセッサ・エレメントPE1
のメモリmem の第6番目の領域にa1,6 が配置される。
以上の処理により、ノードNode-1のプロセッサ・エレメ
ントPE1 のメモリmem の1〜6番目の領域にa1,1 、
a1,2 、a1,3 、a1,4 、a1,5 、a1,6 のデータが配
置される。
【0011】そして、ステップS10でj=j+1とす
ると、jは6を越えるので、ステップS11からステッ
プS12に行き、i<=mか否かを判別する。この場合
には、i<=mであるので、ステップS13に行き、NO
DE(n1),PE(p1),mem(x)=x(i)とする。すなわち、ノードN
ode-1のプロセッサ・エレメントPE1 のメモリmemのx
の領域にx1 のデータを配置する。
【0012】ついで、ステップS14において、i=i
+1とし、ステップS15において、i<=mnである
か否かを判別し、i<=mnの場合には、ステップS2
に戻り、上記処理を繰り返し、ノードNode-2のプロセッ
サ・エレメントPE1 のメモリmem の各領域に、上記の
ようにデータを配置する。ここで、i=2でj=6にな
ったとき、ステップS7でi+j−1>mとなるので、
ステップS9に行き、NODE(n1),PE(p1),mem(j)=a(i,i+j
-m-1) とする。すなわち、ノードNode-2のプロセッサ・
エレメントPE1 のメモリmem の第6番目の領域にはa
2,1 のデータが配置される。
【0013】以上の処理により、ノードNode-2のプロセ
ッサ・エレメントPE1 のメモリmem の1〜6番目の領
域にa2,2 、a2,3 、a2,4 、a2,5 、a2,6 、a2,1
が配置され、メモリmem のxの領域にx2 のデータが配
置される。同様な処理を行うことにより、ノードNode-3
のプロセッサ・エレメントPE1のメモリmem の1〜6
番目の領域にa3,3 、a3,4 、a3,5 、a3,6 、a3,1
、a3,2 が配置され、メモリmem のxの領域にx3 の
データが配置される。
【0014】そして、ステップS2において、i>mn
/2、すなわち、i=4となると、ステップS4に行
き、n1=mn−i+1、すなわち、n1=3、p1=
2に設定し、ステップS5からS11において、j=1
からj=6まで上記処理を繰り返す。これにより、ノー
ドNode-3のプロセッサ・エレメントPE2 のメモリmem
の1〜6番目の領域にa4,4 、a4,5 、a4,6 、a4,1
、a4,2 、a4,3 が配置され、メモリmem のxの領域
にx4 のデータが配置される。
【0015】以上の処理を行ったのち、ステップS14
でiを1増加し(iは5となる)、n1=mn−i+1
=2、P1=2に設定した後、ステップS5に行くと、
i>n(この場合はnは4)となるので、ノードNode-2
のプロセッサ・エレメントPE2 のメモリmem の1〜6
番目の領域にはデータを配置せず、ステップS12に行
き、ノードNode-2のプロセッサ・エレメントPE2 のメ
モリmem のxの領域にx5 のデータを配置する。
【0016】同様に、i=6になると、ノードNode-1の
プロセッサ・エレメントPE2 のメモリmem のxの領域
にx6 のデータを配置し、i<mnとなるので、ステッ
プS15からendに行き終了する。以上の処理を行う
ことにより、ノードNode-1〜 Node-3 のプロセッサ・エ
レメントPE1 と、ノードNode-3のプロセッサ・エレメ
ントPE2 のメモリmem の第1〜第6の領域に、それぞ
れ、a1,1 〜a1,6 、a2,2 〜a2,1 、a3,3 〜a3,2
、a4,4 〜a4,3 のデータが配置され、ノードNode-1
〜 Node-3 のプロセッサ・エレメントPE1 と、ノード
Node-3〜 Node-1 のプロセッサ・エレメントPE2 のメ
モリmem のxの領域に、それぞれ、x1 〜x6 のデータ
が配置される。
【0017】次に、上記リング型ネットワークによる並
列計算の一例として、2n行、2n列の要素を持つ行列
Wと2n個の要素を持つベクトルxの積和計算Wxにつ
いて示す。まず、各プロセッサ・エレメントには、図1
5に示すように、Wの各行の要素Wij(i=1,…,2
n,j=1,…,2n)を持たせ、リング上にxの各要
素xj (j=1,…,2n)を配置し、次の手順で演算
を行う。 各プロセッサ・エレメントは図16に示すようにリ
ング上のデータを取り込み、内部に持つWijと積算し、
内部のワークエリアに書き込む。 リング上のデータを全体に一段シフトする。その結
果、リング上のデータ配置は図17に示すようになる。 再度、プロセッサ・エレメントはリング上のデータ
を取り込み、図18に示すように内部にもつWijの次の
要素と積算し、内部のワークエリアに書き込まれた前回
の結果に加算する。 以下、全データに渡って上記処理を繰り返す。
【0018】
【発明が解決しようとする課題】図12においては、n
個のノードを通るリング型ネットワークを構成し、2n
個のプロセッサ・エレメントにより処理を行っている
が、往路と復路が通過する図12に示すようなリング型
ネットワークの特徴として、リングを通過するノード数
を変更することが可能であり、これにより、例えば、大
きさの異なった行列を次々に計算することができる。
【0019】図12に示したリング型ネットワークのノ
ード数を変更し、m個のノードを通るリングを構成した
場合、プロセッサ・エレメントの割り付けは図19に示
すようになる。同図に示すように、この場合にはプロセ
ッサ・エレメントの番号はPE1 からPE2mとなり、P
En+1 からPE2mまでのプロセッサ番号はネットワーク
を変更する前と後ろで異なったものとなる。
【0020】したがって、図15に示したプロセッサ・
エレメントに処理プログラムを割り付け、データ配置処
理をした後、ネットワークの構成を図19に示すように
変更する場合には、その時点でプロセッサ番号の移動に
伴うデータの再配置が必要となる。以上のように、従来
の技術においては、演算規模が変わってネットワーク構
成が変更されるとき、ネットワーク上を通るデータがプ
ロセッサ・エレメントに投入される順序が変わるため、
データの再配置をしなければならない。これは、全ての
データを把握しているホストコンピュータCPU2でし
か行えないため、並列コンピュータCPU1側の演算を
中断し、一つもしくは少数のホストコンピュータ内のプ
ロセッサでプロセッサ・エレメントのメモリを更新しな
れければならず、並列コンピュータの高速性能が犠牲に
なる。
【0021】上記のような問題を避けるため、一連の演
算の中で、最も規模の大きい場合のプロセッサ・エレメ
ント数を通るようにネットワーク構成を固定してしまう
方法もあるが、演算規模が小さいときも全てのプロセッ
サ・エレメント上をデータが通過しなければならず、転
送時間の無駄が生ずる。したがって、往路と復路が各ノ
ードを通過する本発明の前提となるリング型ネットワー
クにおいて、その特徴を生かすために演算途中でプロセ
ッサ構成が変わってもデータの再配置が不要となるプロ
セッサへの処理プログラムの割り付けが望ましい。
【0022】なお、各ノードに一つのプロセッサ・エレ
メントしかもたず、復路がプロセッサ・エレメントを通
過しないリング型ネットワークのように、ネットワーク
構成が可変にできない通常の1通りリングの場合には、
上記問題点は生じない。本発明は上記した従来技術の問
題点を考慮してなされたものであって、ネットワーク構
成を変更しても実行時のデータの再配置を不要とするこ
とにより、高速に処理を行うことができる並列コンピュ
ータを提供することを目的とする。
【0023】
【課題を解決するための手段】図1は本発明の原理図で
ある。同図において、ノードNode-1, …,Node-n は往路
と復路が通過するリング型ネットワークにおけるノー
ド、PE1,PE2 は各ノードに設けられたプロセッサ・
エレメントであり、各ノードNode-1, …,Node-nには、
プロセッサ・エレメントPE1,PE2 が少なくとも2個
以上設けられている。
【0024】上記課題を解決するため、本発明の請求項
1の発明は、各ノードNode-1, …,Node-n に少なくとも
2個のプロセッサ・エレメントPE1,PE2を備え、
各ノードを往路と復路が通過するリング型ネットワーク
で構成され、各ノードNode-1, …,Node-n のプロセッサ
・エレメントPE1,PE2が持つデータを各プロセッ
サ・エレメントPE1,PE2間で転送して、各プロセ
ッサ・エレメントPE1,PE2により処理を行う並列
コンピュータにおいて、ノードNode-1, …,Node-n の順
番に、当該ノードに備えられたプロセッサ・エレメント
PE1,PE2から順次ネットワーク上を転送されるデ
ータを処理する処理プログラムを割り付けたものであ
る。
【0025】本発明の請求項2の発明は、各ノードNode
-1, …,Node-n に少なくとも2個のプロセッサ・エレメ
ントPE1,PE2を備え、各ノードを往路と復路が通
過するリング型ネットワークで構成され、各ノードNode
-1, …,Node-n のプロセッサ・エレメントPE1,PE
2が持つデータを各プロセッサ・エレメントPE1,P
E2間で転送して、各プロセッサ・エレメントPE1,
PE2により処理を行う並列コンピュータにおいて、ノ
ードNode-1, …,Node-n の順番に、当該ノードに備えら
れたプロセッサ・エレメントPE1,PE2から順次、
ネットワーク上を転送されるデータを処理する処理プロ
グラムを割り付け、ノードNode-1, …,Node-n の順番
に、当該ノードに備えられた各プロセッサ・エレメント
PE1,PE2から順次データを配置したものである。
【0026】
【作用】図1に示すリング型ネットワークにおいて、各
ノードに少なくとも2個以上のプロセッサ・エレメント
PE1,PE2 を設ける。また、データ転送方向が同図矢
印に示す方向の場合、ノードNode-1, …,Node-n の順番
に、当該ノードに備えられたプロセッサ・エレメントP
E1,PE2から順次ネットワーク上を転送されるデー
タを処理する処理プログラムを割り付ける。
【0027】そして、同図に示す転送方向で各プロセッ
サ・エレメントPE1,PE2 にデータが転送された際、
各プロセッサ・エレメントPE1,PE2 は各プロセッサ
・エレメントに配置されたデータと転送データの演算を
行い、例えば、行列の積を求める等の所定の処理を行
う。なお、上記のようにノードNode-1, …,Node-n の順
番に、当該ノードに備えられたプロセッサ・エレメント
PE1,PE2から順次ネットワーク上を転送されるデ
ータを処理する処理プログラムを割り付けることによ
り、リング上から見たプロセッサ番号が不連続となり、
転送されるデータが順番に並ばなくなるが、プロセッサ
・エレメントPE1,PE2 が内部に持つデータおよび計
算順序を予め再配置しておけば、この問題は解決でき
る。これは、従来のような実行時のデータ再配置ではな
いので、処理時間に及ぼす影響は無視できる。
【0028】本発明の請求項1の発明においては、上記
のように、ノードNode-1, …,Node-n の順番に、当該ノ
ードに備えられたプロセッサ・エレメントPE1,PE
2から順次ネットワーク上を転送されるデータを処理す
る処理プログラムを割り付けているので、リング型ネッ
トワークにおいて、ネットワーク構成によらずに、プロ
セッサの割り付けを一意に決定することができる。
【0029】本発明の請求項2の発明においては、ノー
ドNode-1〜Node-nの順番にプロセッサ・エレメントPE
1,PE2 ,…を割り付け、ノードNode-1, …,Node-n の
順番に、当該ノードに備えられたプロセッサ・エレメン
トPE1,PE2から順次ネットワーク上を転送される
データを処理する処理プログラムを割り付け、ノードNo
de-1, …,Node-n の順番に、当該ノードに備えられた各
プロセッサ・エレメントPE1,PE2から順次データ
を配置しているので、ネットワーク構成を変更しても、
実行時のデータの再配置が不要となり、高速に処理する
ことが可能となる。
【0030】
【実施例】図2は本発明の第1の実施例の処理プログラ
ムの割り付けを示す図であり、同図において、Node-1か
らNode-nのノードには、2個のプロセッサ・エレメント
が割り付けられており、ノードNode-1にはプロセッサ・
エレメントPE1 〜PE2が、また、ノードNode-2には
プロセッサ・エレメントPE3 〜PE4 というように、
ノードの順番にPE1 からPE2nのプロセッサに処理プ
ログラムが割り付けられている。
【0031】図3、図4、図5は本実施例において、式
(1)に示す行列演算を行うため、各ノードのプロセッ
サ・エレメントにデータ配置を行う処理を示すフローチ
ャートであり、同図はフローチャートを簡略化するた
め、従来例の場合と同様、n,mは何方も偶数の場合を
示している。図3,図5のフローチャートにより、本実
施例における各プロセッサ・エレメントへのデータ配置
について説明する。なお、この場合においても、分かり
やすくするため、m=6、n=4の場合について説明す
る。
【0032】図3のステップS1において、i1=1,
i2=max(m,n)、j=1に設定し、ステップS
2において、table(i1)=j、table(i
2)=j+1に設定する。ついで、ステップS3におい
て、i1=i1+1,i2=i2−1、j=j+2とし
て、ステップS4において、i1<i2であるか否か判
断し、i1<i2の場合には、ステップS2に戻り、上
記処理を繰り返す。
【0033】その結果、m=6、n=4の場合、tab
leは次のように設定される。 table(1)=1,table(2)=3,tab
le(3)=5 table(4)=6,table(5)=4,tab
le(6)=2 次に、ステップS5に行き、i1=1,mn=max
(m,n)に設定し、ステップS6において、i<=m
n/2であるか否か判別する。そして、i<=mn/2
の場合には、ステップS7に行き、i1=table
(i)、n1=i、p1=1に設定する。また、後述す
るように、iが増加してi>mn/2、すなわち、iが
4以上となると、i1=table(i)、n1=mn
−i+1、p1=2に設定する。したがって、最初は、
i1=1、n1=1、p1=1に設定される。
【0034】ついで、図4のステップS9に行き、i1
<=nか否かを判別し、i1>nになると後述するよう
に図5のステップS16に行く。i1<=nの場合に
は、ステップS10に行き、j=1とし、ステップS1
1において、i+j−1<=mか否かを判断する。そし
て、i+j−1<=mの場合には、ステップS12に行
き、NODE(n1),PE(p1),mem(j)=a(i1,table(i+j-1)) とす
る。すなわち、table(i+j−1)=table
(1)=1であるので、まず、ノードNode-1のプロセッ
サ・エレメントPE1 のメモリmem の第1番目の領域に
a1,1 のデータを配置する。
【0035】ついで、ステップS14に行き、j=j+
1とし、ステップS15において、j<=mであるか否
かを判別し、j<=mの場合には、ステップS11に戻
り上記処理をj=6まで繰り返す。これにより、ノード
Node-1のプロセッサ・エレメントPE1 のメモリmem の
第1〜6番目の領域にそれぞれ、a1,1 、a1,3 、a1,
5 、a1,6 、a1,4 、a1,2 のデータが配置される。
【0036】そして、ステップS14でj=j+1とす
ると、jは6を越えるので、ステップS15から図5の
ステップS16に行き、i<=mか否かを判別する。こ
の場合には、i<=mであるので、ステップS17に行
き、NODE(n1),PE(p1),mem(x)=x(i) とする。すなわち、
ノードNode-1のプロセッサ・エレメントPE1 のメモリ
mem のxの領域にx1 のデータを配置する。
【0037】以上の処理により、ノードNode-1のプロセ
ッサ・エレメントPE1 のメモリmem の1〜6番目の領
域に上記のようなa1,1 〜a1,2 のデータが配置され、
メモリmem のxの領域にx1 のデータが配置される。つ
いで、ステップS18において、i=i+1とし、ステ
ップS19において、i<=mnであるか否かを判別
し、i<=mnの場合には、ステップS6に戻る。
【0038】今度は、i=2となっているので、i1=
3、n1=2、p1=1に設定され、ノードNode-2のプ
ロセッサ・エレメントPE1 のメモリmem の領域にデー
タが配置される。つまり、i+j−1<=mの場合に
は、ステップS11からステップS12に行き、NODE(n
1),PE(p1),mem(j)=a(i1,table(i+j-1)) とする。すなわ
ち、table(i+j−1)=table(2)=3
であるので、ノードNode-2のプロセッサ・エレメントP
E1 のメモリmem の第1番目の領域にa3,3 のデータを
配置する。
【0039】ついで、ステップS14に行き、j=j+
1とし、ステップS15において、j<=mであるか否
かを判別し、j<=mの場合には、ステップS11に戻
り上記処理をj=5まで繰り返す。これにより、ノード
Node-2のプロセッサ・エレメントPE1 のメモリmem の
第2〜5番目の領域には、a3,5 、a3,6 、a3,4 、a
3,2 のデータが配置される。
【0040】j=6になると、i+j−1>mになるの
で、ステップS13に行き、NODE(n1),PE(p1),mem(j)=a
(i1,table(i+j-1-m)) とする。すなわち、table
(i+j−1−m)=table(1)=1であるの
で、ノードNode-2のプロセッサ・エレメントPE1 のメ
モリmem の第6番目の領域にa3,1 のデータを配置す
る。そして、ステップS14でj=j+1とすると、j
は6を越えるので、ステップS15から図5のステップ
S16に行き、i<=mか否かを判別する。この場合に
は、i<=mであるので、ステップS17に行き、NODE
(n1),PE(p1),mem(x)=x(i) とする。すなわち、ノードNo
de-2のプロセッサ・エレメントPE1 のメモリmem のx
の領域にx3 のデータを配置する。
【0041】以上の処理により、ノードNode-2のプロセ
ッサ・エレメントPE1 のメモリmem の1〜6番目の領
域に上記のようなa3,3 〜a3,1 のデータが配置され、
メモリmem のxの領域にx3 のデータが配置される。以
上の処理を行ったのち、ステップS18でiを1増加し
(iは3となる)、ステップS19でi<mnが否か判
別し、ステップS6に戻る。
【0042】そして、ステップS7において、i1=t
able(3)=5、n1=3、p1=1に設定し、ス
テップS9に行く。今度は、i1=5であり、i1はn
(この場合は4)を越えるので、ステップS16におい
て、i1<mであるか否かを判別し、i1<mの場合に
は、ステップS17に行き、NODE(n1),PE(p1),mem(x)=x
(i) とする。すなわち、ノードNode-3のプロセッサ・エ
レメントPE1 のメモリmem の1〜6番目の領域にはデ
ータを配置せず、ノードNode-3のプロセッサ・エレメン
トPE1 のメモリmem のxの領域にx5 のデータを配置
する。
【0043】そして、ステップS18において、iを1
増加し(iは4となる)、ステップS19でi<mnが
否か判別し、ステップS6に戻る。ステップS6におい
て、i<=mn/2を判別すると、iは4でmn/2=
3を越えるので、ステップS8に行き、i1=tabl
e(4)=6、n1=mn−i+1=3、p2=2に設
定する。ついで、ステップS9に行き、i1<=nであ
るか否かを判別すると、i1はnを越える(この場合n
は4)、ステップS16に行き、前記と同様、ノードNo
de-3のプロセッサ・エレメントPE2 のメモリmem の1
〜6番目の領域にはデータを配置せず、ノードNode-3の
プロセッサ・エレメントPE2 のメモリmem のxの領域
にx6 のデータを配置する。
【0044】ついで、ステップS18において、i=i
+1とし、ステップS19において、i<=mnである
か否かを判別し、i<=mnの場合には、ステップS6
に戻る。今度は、i=5となっているので、ステップS
8において、i1=4、n1=2、p1=2に設定さ
れ、ノードNode-2のプロセッサ・エレメントPE2 のメ
モリmem の領域にデータが配置される。
【0045】そして前記と同様、ノードNode-2のプロセ
ッサ・エレメントPE2 のメモリmem の第1〜6番目の
領域には、a4,4 、a4,2 、a4,1 、a4,3 、a4,5 、
a4,6 が配置され、メモリmem のxの領域にx4 のデー
タが配置される。そして、i=6となると、ノードNode
-1のプロセッサ・エレメントPE2 のメモリmem の第1
〜6番目の領域には、a2,2 、a2,1 、a2,3 、a2,5
、a2,6、a2,4 が配置され、メモリmem のxの領域に
x2 のデータか配置される。
【0046】そして、ステップS18でiを1増加する
と、i>mとなるので、ステップS19からendに行
き終了する。以上の処理を行うことにより、ノードNode
-1のプロセッサ・エレメントPE1, PE2 とノードNod
e-2のプロセッサ・エレメントPE1 とPE2 のメモリm
emの第1〜第6の領域に、それぞれ、上記したようにa
1,1 〜a1,2 、a2,2 〜a2,4 、a3,3 〜a3,1 、a4,
4 〜a4,6 のデータが配置され、ノードNode-1〜 Node-
3 のプロセッサ・エレメントPE1 と、ノードNode-3〜
Node-1 のプロセッサ・エレメントPE2 のメモリmem
のxの領域に、それぞれ、x1 〜x6 のデータが配置さ
れる。
【0047】図6は図2に示したプロセッサへ処理プロ
グラムの割り付けを行ったリング型ネットワークにおい
て、上記した処理により、前記した2n行、2n列の要
素を持つ行列Wと2n個の要素を持つベクトルxのデー
タ配置を示す図である。同図に示すように、本実施例に
おいては、各プロセッサ・エレメントPE1 からPE2n
に、行列Wijの各行の要素Wij(i=1,…,2n,j
=1,…,2n)を各プロセッサ・エレメントPE1 〜
PE2nの番号に対応させて配置し、また、リング上のx
の各要素xj (j=1,…,2n)を同様に各プロセッ
サ・エレメントPE1 〜PE2nの番号に対応させて配置
する。
【0048】そして、2n行、2n列の要素を持つ行列
Wと2n個の要素を持つベクトルxの積和計算Wxを求
める場合には、図15から図18に示した場合と同様、
リング上のデータを取り込み、内部に持つWijと積算し
て内部のワークエリアに書込み、リンク上のデータを全
体にシフトしながらそれらの和を求める。以上の処理を
行うことにより、図15から図18に示した従来例とは
演算の順序は若干異なるが、同一の結果を得ることがで
きる。
【0049】図7は上記実施例において、ネットワーク
の構成を変更しノード数をnからmにした場合を示して
いる。ノード数を変更した場合、ノードNode-1からNode
-nについての処理プログラムの割り付けは図2の場合と
同一であり、ノードNode-n+1からNode-mについて、新た
にノードの順番にプロセッサ・エレメントが割り付けら
れる。
【0050】したがって、図6に示したような行列Wと
ベクトルxの積和計算Wxを行った後、大きさが異なっ
た行列とベクトルの積和を求める場合には、プロセッサ
・エレメントはノードNode-n+1からNode-mについて割り
付ければよく、また、データについても、ノードNode-n
+1からNode-mのプロセッサ・エレメントに新たに配置す
ればよい。
【0051】すなわち、ノードNode-1からNode-nについ
ては図2の場合と同一であり、ノードNode-n+1からNode
-mについて、プロセッサへの処理プログラムの割り付
け、データの配置をすればよいので、従来方法のように
ネットワーク全体のプロセッサへの処理プログラムの再
割り付けおよびデータの再配置を行う必要がない。図8
は従来方法と、本実施例の方法における処理プログラム
の割り付け、データの配置を示す図である。同図は、入
力データがx1 ,x2 ,…,x6 の6個、出力データが
y1 ,y2 ,…,y4 の4個の次の式(2)示す行列演
算を行う場合の処理プログラムの割り付けとデータの配
置を示しており、同図(a)は従来方法による場合、
(b)は本実施例の方法による場合を示している。
【0052】
【数2】
【0053】ここで、演算開始前のデータの配置を見る
限り2つの方法に優劣はない。しかし、演算結果のy1
,y2 ,…,y4 について、次の式(3)の演算を行
う場合に決定的な差が生ずる。
【0054】
【数3】
【0055】図9は式(2)の演算結果を示す図であ
り、同図(a)は従来例の場合、(b)は本実施例の場
合を示している。同図に示すように、従来方法の場合に
は、出力データはノードNode-1からNode-3のPE1とノ
ードNode-3のPE2に配置され、本実施例の方法の場合
には、出力データはノードNode-1からNode-2のPE1と
PE2に配置される。
【0056】図9に示すように、従来例においては、ノ
ードNode-3にy3 ,y4 が残されるため、ノードNode-2
までの4つのプロセッサ・エレメントで演算できる処理
であっても、ノードNode-3まで含めた6つのプロセッサ
・エレメントで処理するか、さもなくば、一旦データを
ホストプロセッサで読み出した後、再度、式(3)の行
列データb11,…,b24とともに前記した図13、図1
4のフローチャートに従ってノードNode-1とNode-2に再
配置しなければならない。
【0057】これに対して、本実施例では、y1 ,y2
,…,y4 も、最初のデータx1 ,x2 ,…,x6 と
本質的に同じであるため、予め行列データb11,…,b
24を配置しておくことにより計算処理を短縮することが
できる。図10は本発明の第2の実施例を示す図であ
り、本実施例は各ノードに4個のプロセッサ・エレメン
トを設け、最大8個のノード間をリングで接続したリン
グ型ネットワークを示している。
【0058】本実施例においても、ノードNode-1からNo
de-8へのプロセッサ・エレメントPE1 〜PE32の割り
付けは図2に示した第1の実施例と同様にノード順に割
り付けられる。そして、図6に示したような行列とベク
トルの積和を求める場合には、図6と同様に、各プロセ
ッサ・エレメントPE1 からPE32に、行列Wijの各行
の要素を各プロセッサ・エレメントPE1 〜PE32の番
号に対応させて配置し、また、リング上のxの各要素を
同様に各プロセッサ・エレメントPE1 〜PE32の番号
に対応させて配置する。
【0059】これにより、前記した場合と同様な手順で
行列とベクトルの積和を求めることができる。以上のよ
うに、各ノードに2以上のプロセッサ・エレメントを配
置した場合にも第1の実施例と同様、本発明を適用する
ことが可能である。
【0060】
【発明の効果】以上説明したように、本発明において
は、データの転送方向とは対応づけず、ノードの順番に
プロセッサ・エレメントへ処理プログラムを割り付けて
いるので、リング型ネットワークにおいて、ネットワー
ク構成の変更を容易に行うことができる。また、ノード
の順番に各プロセッサ・エレメントにデータを配置する
ことにより、ネットワーク構成を変更しても、実行時の
データの再配置が不要となり、高速に処理することが可
能となる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の第1の実施例の処理プログラムの割り
付けを示す図である。
【図3】本実施例におけるデータ配置処理のフローチャ
ートである。
【図4】本実施例におけるデータ配置処理のフローチャ
ート(続き)である。
【図5】本実施例におけるデータ配置処理のフローチャ
ート(続き)である。
【図6】本実施例におけるデータ配置を示す図である。
【図7】本実施例において構成を変更したリング型ネッ
トワークを示す図である。
【図8】従来方法と本実施例の方法におけるデータの配
置を示す図である。
【図9】従来方法と本実施例の方法における演算の結果
を示す図である。
【図10】本発明の第2の実施例を示す図である。
【図11】本発明の前提となるシステムの構成を示す図
である。
【図12】本発明の前提となるリング型ネットワークの
構成を示す図である。
【図13】従来例におけるデータ配置処理のフローチャ
ートである。
【図14】従来例におけるデータ配置処理のフローチャ
ート(続き)である。
【図15】従来のリング型ネットワークにおけるデータ
配置を示す図である。
【図16】従来のリング型ネットワークにおける積算処
理を示す図である。
【図17】従来のリング型ネットワークにおける転送処
理を示す図である。
【図18】従来のリング型ネットワークにおける次段の
積算処理を示す図である。
【図19】従来例において構成を変更したリング型ネッ
トワークを示す図である。
【符号の説明】
Node-1〜Node-n ノード PE1 〜PE2m, PE2n プロセッサ・エ
レメント CPU1 並列コンピュー
タ CPU2 ホストコンピュ
ータ 1 プロセッサ 2 主記憶装置 3 インタフェース

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 各ノード(Node-1,…,Node-n)に少なくと
    も2個のプロセッサ・エレメント(PE1,PE2) を備え、各
    ノードを往路と復路が通過するリング型ネットワークで
    構成され、 各ノード(Node-1,…,Node-n)のプロセッサ・エレメント
    (PE1,PE2) が持つデータを各プロセッサ・エレメント(P
    E1,PE2) 間で転送して、各プロセッサ・エレメント(PE
    1,PE2) により処理を行う並列コンピュータにおいて、 ノード(Node-1,…,Node-n)の順番に当該ノードに備えら
    れたプロセッサ・エレメント(PE1,PE2, …) から順次ネ
    ットワーク上を転送されるデータを処理する処理プログ
    ラムが割り付けられていることを特徴とする並列コンピ
    ュータ。
  2. 【請求項2】 各ノード(Node-1,…,Node-n)に少なくと
    も2個のプロセッサ・エレメント(PE1,PE2) を備え、各
    ノードを往路と復路が通過するリング型ネットワークで
    構成され、 各ノード(Node-1,…,Node-n)のプロセッサ・エレメント
    (PE1,PE2) が持つデータを各プロセッサ・エレメント(P
    E1,PE2) 間で転送して、各プロセッサ・エレメント(PE
    1,PE2) により処理を行う並列コンピュータにおいて、 ノード(Node-1,…,Node-n)の順番に当該ノードに備えら
    れたプロセッサ・エレメント(PE1,PE2) から順次ネット
    ワーク上を転送されるデータを処理する処理プログラム
    が割り付けられており、ノード(Node-1,…,Node-n)の順
    番に当該ノードに備えられた各プロセッサ・エレメント
    (PE1,PE2) から順次データが配置されていることを特徴
    とする並列コンピュータ。
JP04232294A 1994-03-14 1994-03-14 並列コンピュータ Expired - Fee Related JP3290798B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04232294A JP3290798B2 (ja) 1994-03-14 1994-03-14 並列コンピュータ
US08/381,399 US5715471A (en) 1994-03-14 1995-01-31 Parallel computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04232294A JP3290798B2 (ja) 1994-03-14 1994-03-14 並列コンピュータ

Publications (2)

Publication Number Publication Date
JPH07253954A true JPH07253954A (ja) 1995-10-03
JP3290798B2 JP3290798B2 (ja) 2002-06-10

Family

ID=12632783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04232294A Expired - Fee Related JP3290798B2 (ja) 1994-03-14 1994-03-14 並列コンピュータ

Country Status (2)

Country Link
US (1) US5715471A (ja)
JP (1) JP3290798B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090769A (ja) * 2006-10-05 2008-04-17 Nippon Telegr & Teleph Corp <Ntt> 並列演算方法、演算装置、および演算装置用プログラム
JP2020519979A (ja) * 2017-05-12 2020-07-02 グーグル エルエルシー 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (6)

* 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
BG35575A1 (en) * 1982-04-26 1984-05-15 Kasabov Multimicroprocessor system
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4763247A (en) * 1984-12-26 1988-08-09 Vmei "Lenin" Multiprocessor system formed by microprocessor matrix
US5274832A (en) * 1990-10-04 1993-12-28 National Semiconductor Corporation Systolic array for multidimensional matrix computations
FR2686175B1 (fr) * 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090769A (ja) * 2006-10-05 2008-04-17 Nippon Telegr & Teleph Corp <Ntt> 並列演算方法、演算装置、および演算装置用プログラム
JP2020519979A (ja) * 2017-05-12 2020-07-02 グーグル エルエルシー 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク

Also Published As

Publication number Publication date
US5715471A (en) 1998-02-03
JP3290798B2 (ja) 2002-06-10

Similar Documents

Publication Publication Date Title
JP3290798B2 (ja) 並列コンピュータ
JP7315317B2 (ja) プロセッサおよびプロセッサのデータ転送方法
JP2770603B2 (ja) 並列計算機
CN108470009B (zh) 处理电路及其神经网络运算方法
CN112506567B (zh) 数据读取方法和数据读取电路
KR100280854B1 (ko) 데이타 처리 장치 및 데이타 처리 방법
WO2019082859A1 (ja) 推論装置、畳み込み演算実行方法及びプログラム
CN110377874B (zh) 卷积运算方法及系统
US5659714A (en) Data processor including memory for associating data elements of two-dimensional array which are numbered in spiral order with element numbers thereof
JP3982634B2 (ja) トーラス区画化を容易にするために並列コンピュータのプロセッサを相互接続する方法およびシステム
WO2018139265A1 (ja) プロセッサ、情報処理装置及びプロセッサの動作方法
Merigot et al. A pyramidal system for image processing
JPH07271744A (ja) 並列計算機
JPS6347835A (ja) パイプライン計算機
JP3304445B2 (ja) プログラム生成処理装置
US20210117352A1 (en) Semiconductor device and method of controlling the same
EP0273051B1 (en) Parallel processing computer
JPH0926941A (ja) データ処理装置
JP2591362B2 (ja) データ選択処理方法
Stojcev et al. Data reordering converter: an interface block in a linear chain of processing arrays
Mathur et al. Data parallel algorithms for the finite element method
JPS58159169A (ja) 並列処理方式
JPH09179840A (ja) 並列計算機におけるプロセッサ間結合網
JPH05324584A (ja) ハイパーキューブの割当方法
JPH0156421B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020312

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080322

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090322

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100322

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100322

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110322

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110322

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120322

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees