JPH04321158A - Distribution/collection processor for array data - Google Patents

Distribution/collection processor for array data

Info

Publication number
JPH04321158A
JPH04321158A JP3090146A JP9014691A JPH04321158A JP H04321158 A JPH04321158 A JP H04321158A JP 3090146 A JP3090146 A JP 3090146A JP 9014691 A JP9014691 A JP 9014691A JP H04321158 A JPH04321158 A JP H04321158A
Authority
JP
Japan
Prior art keywords
data
transfer
processor
array
divided
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
JP3090146A
Other languages
Japanese (ja)
Inventor
Hidetoshi Iwashita
英俊 岩下
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 JP3090146A priority Critical patent/JPH04321158A/en
Publication of JPH04321158A publication Critical patent/JPH04321158A/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PURPOSE:To obtain a means which can optionally divide and assign the array data in a simple and highly efficient way for a distribution/collection processor which divides and assigns the array data to plural processors through a parallel computer and then distributes automatically the array data in an optional transfer pattern. CONSTITUTION:A transfer table production means 11 produces a transfer table 16 which contains the information on each dimensional range in accordance with the blocks divided in one or more optional dimensional directions and to be assigned to each storage space or each processor 10. A data transfer means 12 transfers the data to each storage space or each processor 10 for each divided block by reference to the table 16. Thus the array data can be automatically distributed in an optional transfer pattern.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は,並列計算機で配列デー
タを複数のプロセッサに分割割付けする装置に係り,特
に任意の転送パターンによりデータを自動分配または自
動収集する配列データの分配/収集処理装置に関する。
[Field of Industrial Application] The present invention relates to a device for dividing and allocating array data to a plurality of processors in a parallel computer, and in particular, an array data distribution/collection processing device that automatically distributes or automatically collects data according to an arbitrary transfer pattern. Regarding.

【0002】巨大な配列データを処理するにあたって,
複数のプロセッサにデータを分割して割り付け,並列に
処理するシステムが用いられている。このようなデータ
の分割のしかたを任意に動的に切り替えて処理できるよ
うにするために,効率よくデータを再配置する技術が必
要とされる。
[0002] When processing huge array data,
Systems are used in which data is divided and allocated to multiple processors and processed in parallel. In order to be able to dynamically switch how data is divided and process it, a technology is needed to efficiently rearrange data.

【0003】0003

【従来の技術】並列計算機では,配列データを効率よく
扱うために,次元に沿った超直方体領域にブロック化し
,各ブロックのメモリ割付けを分離し,それぞれをプロ
セッサごとに担当して管理することが多い。
[Prior Art] In parallel computers, in order to efficiently handle array data, it is necessary to block it into hypercuboid areas along the dimensions, separate memory allocation for each block, and manage each block with each processor in charge. many.

【0004】図13はそのような配列データの分割例を
示している。図13に示す例では,3次元配列A(10
0,100,100)を分割している。(イ)は1次元
分割,(ロ)は多次元分割,(ハ)は多次元の不均等分
割の例を示しているが,(イ)に示すような板状分割は
,k方向に4分割すると同時に,i方向とj方向に対し
て1分割していると解釈することもできる。
FIG. 13 shows an example of such division of array data. In the example shown in Figure 13, the three-dimensional array A (10
0,100,100). (a) shows an example of one-dimensional partitioning, (b) shows an example of multidimensional partitioning, and (c) shows an example of multidimensional uneven partitioning. When dividing, it can also be interpreted as one division in the i direction and the j direction.

【0005】一般には,n次元配列A(M1,M2,…
, Mn)を,各次元に対してそれぞれ,p1,p2,
…,pn 部分(それぞれ1以上の整数)に切るなら,
(p1 ×…×pn)個の超直方体ブロックに分割する
ことができる。分散メモリ型の並列計算機であれば,各
プロセッサの処理手続きに都合のよいように,データを
分割配置することにより,計算中のデータ転送量を減ら
して効率の向上を図ることができる。共用メモリ型の並
列計算機の場合にも,同様の分割を行えば,メモリの競
合を減らして効率よく処理を進めることができる。
Generally, an n-dimensional array A (M1, M2,...
, Mn) for each dimension, p1, p2,
…, pn parts (each an integer greater than or equal to 1),
It can be divided into (p1×...×pn) hypercuboid blocks. A distributed memory type parallel computer can reduce the amount of data transferred during calculations and improve efficiency by dividing and arranging data to suit the processing procedures of each processor. In the case of a shared memory type parallel computer, similar partitioning can reduce memory contention and allow processing to proceed more efficiently.

【0006】また,ブロックごとに物理アドレスを分割
することにより,各プロセッサの担当データを物理的に
連続なアドレスに集めることができるため,ページ切り
替えやキャッシュメモリのミスヒットが少なくなるとか
,1プロセッサのアドレス空間に入り切らないような巨
大な配列データにもアドレス付けできるなどの効果があ
る。
[0006] Furthermore, by dividing the physical addresses for each block, the data handled by each processor can be collected in physically consecutive addresses, which reduces page switching and cache memory misses, and reduces the number of page switches and cache memory misses. It has the advantage of being able to address even huge array data that cannot fit into the address space of .

【0007】このように,配列の分割割付けは重要であ
るが,実際のアプリケーションプログラムでは,データ
の分割のしかたが固定的であることは稀であり,実行処
理中にデータ転送処理を伴う再分割割付けが頻繁に必要
となる。それは例えば次のような場合である。
[0007] As described above, partitioning and allocation of arrays is important, but in actual application programs, the method of partitioning data is rarely fixed, and repartitioning that involves data transfer processing during execution processing is important. Allocation is frequently required. This is the case, for example, as follows.

【0008】(a) データ相関方向の変化特に,AD
E(交互方向編集)がよく知られている。これは,ある
次元での板状分割から,別の次元での板状分割へと変更
する編集である。LU分解などの行列計算や多次元FE
Tなどで必要となるため,連続系の数値計算では多用さ
れる。プロセッサ数が多くなれば,多次元分割にせざる
を得なくなり,より複雑な転送パターンとなることは必
至である。例えば,配列A(100,100,100)
を,200プロセッサに割り付けるには,2次元以上で
分割するしかなく,その場合のADE転送はかなり複雑
になる。
(a) Change in data correlation direction, especially AD
E (alternating direction editing) is well known. This is an edit that changes from a plate-like division in one dimension to a plate-like division in another dimension. Matrix calculations such as LU decomposition and multidimensional FE
Since it is necessary for T, etc., it is frequently used in numerical calculations of continuous systems. As the number of processors increases, multidimensional partitioning becomes necessary, which inevitably leads to more complex transfer patterns. For example, array A(100,100,100)
In order to allocate this to 200 processors, the only way is to divide it into two or more dimensions, and in that case, ADE transfer becomes quite complicated.

【0009】(b) 細分化などの再分割割付け一般に
並列度が上がるほど,データ転送や同期などのオーバヘ
ッドが増えるため,手続きによって使用プロセッサ数の
最適値がある。それに伴って,並列効果の異なる手続き
の境界で,データ分割割付けの変更が必要になる場合が
ある。
(b) Re-division allocation such as subdivision In general, as the degree of parallelism increases, overheads such as data transfer and synchronization increase, so there is an optimal value for the number of processors used depending on the procedure. Accordingly, it may be necessary to change the data partitioning allocation at the boundary between procedures with different parallelism effects.

【0010】(c) 計算機の運用上の理由一部のプロ
セッサの故障,同時利用者数の変化などで,分割の変更
を伴うプロセッサ間データ移動が必要になることがある
(c) Reasons for computer operation Due to a failure of some processors, a change in the number of simultaneous users, etc., it may be necessary to move data between processors with a change in partitioning.

【0011】従来,ユーザがFORTRANやC言語な
どの計算機用記述言語を使って記述する場合,配列の添
字の計算には大変な手間がかかる上に,煩雑であるため
ミスが生じやすく,検証も難しかった。また,データ転
送のタイミングはユーザには予想しきれないことが多く
,効率化は困難であるという問題があった。
Conventionally, when a user writes a description using a computer description language such as FORTRAN or the C language, it takes a lot of time and effort to calculate the subscripts of an array. was difficult. Furthermore, there is a problem in that the timing of data transfer is often difficult for the user to predict, making it difficult to improve efficiency.

【0012】分割の形状や分割数などを制約すれば,比
較的簡単に実現できる可能性があり,特定の転送パター
ンの効率化を狙ったハードウェアを持つ計算機も考えら
れているが,アプリケーションの幅や運用形態で大きな
制約を受けることになる。特に,汎用性の高い計算機を
提供するためには,ユーザがどのような分割形状や転送
パターンを必要としても,それに対応できなければなら
ない。しかし,従来,任意の分割形状や転送パターンに
柔軟に対応できるような手段はなかった。
[0012] This may be achieved relatively easily by restricting the shape of the division, the number of divisions, etc., and computers equipped with hardware designed to improve the efficiency of specific transfer patterns are being considered, but There will be major restrictions in terms of width and operational format. In particular, in order to provide a highly versatile computer, it must be able to accommodate whatever division shape or transfer pattern the user requires. However, until now, there has been no means that can flexibly accommodate arbitrary division shapes and transfer patterns.

【0013】[0013]

【発明が解決しようとする課題】本発明は上記問題点の
解決を図り,配列データの任意の分割割付けを,手軽に
効率よく実現する手段を提供することを目的とする。す
なわち,ユーザはデータ転送の詳細な内容を明示的に意
識する必要がなく,分割形状と配列の範囲を指定するだ
けで,配列の分割割付けや分割の変更が可能になるよう
にすることを目的とする。
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above-mentioned problems and to provide means for easily and efficiently realizing arbitrary division and allocation of array data. In other words, the purpose is to enable the user to allocate and change the partitioning of an array by simply specifying the partition shape and array range without having to be explicitly aware of the details of data transfer. shall be.

【0014】また,本発明は,配列の次数や大きさ,分
割次元数や分割幅が均等か否かなどによる制約がなく,
広い範囲に適用できるデータの分配手段および収集手段
を提供することを目的とする。
[0014] Furthermore, the present invention is not limited by the order or size of the array, the number of division dimensions, whether the division width is equal, etc.
The purpose is to provide a means of distributing and collecting data that is widely applicable.

【0015】[0015]

【課題を解決するための手段】図1は本発明の原理構成
図である。図1において,10a,10b,…,10c
は各々独立したデータ処理機能を有するプロセッサ,1
1は転送テーブル作成手段,12はデータを分配または
収集するデータ転送手段,13は分割または収集するブ
ロックの分割区間番号を指定する分割区間番号指定手段
,14は各ブロックの分割区間上下限を指定する分割区
間上下限指定手段,15は各プロセッサからアクセス可
能となっている共用メモリ,16はデータの分配または
収集に用いる転送テーブル,17は分配するデータが格
納されている分配データ格納域,18は各プロセッサが
処理するデータを格納する転送先データ格納域,19は
収集したデータを格納する収集データ格納域,20は収
集対象となるデータが格納されている転送元データ格納
域を表す。
[Means for Solving the Problems] FIG. 1 is a diagram showing the basic configuration of the present invention. In FIG. 1, 10a, 10b,..., 10c
are processors each having an independent data processing function, 1
1 is a transfer table creation means, 12 is a data transfer means for distributing or collecting data, 13 is a division section number designating means for specifying the division section number of a block to be divided or collected, and 14 is a section for specifying the upper and lower limits of the division section of each block. 15 is a shared memory accessible from each processor; 16 is a transfer table used for data distribution or collection; 17 is a distribution data storage area in which data to be distributed is stored; 18 19 represents a transfer destination data storage area in which data to be processed by each processor is stored; 19 represents a collection data storage area in which collected data is stored; and 20 represents a transfer source data storage area in which data to be collected is stored.

【0016】請求項1記載の発明は,例えば(イ)に示
すような構成になっている。ある分割法で1ブロック内
に割り付けられている任意の部分配列を,別の分割法に
従って分割割付けする。そのため,プロセッサ10aは
,分割区間番号指定手段13から分割対象となるブロッ
クの分割区間番号を得て,その各分割区間番号に対応す
る分割ブロックの上下限の範囲を,分割区間上下限指定
手段14から得る。分割区間番号指定手段13および分
割区間上下限指定手段14は,入出力装置,外部記憶装
置またはプログラムなどのいずれの手段でもよい。
[0016] The invention recited in claim 1 has a configuration as shown in (a), for example. An arbitrary partial array that is allocated within one block using a certain partitioning method is partitioned and allocated according to another partitioning method. Therefore, the processor 10a obtains the division section number of the block to be divided from the division section number designation means 13, and determines the range of the upper and lower limits of the division block corresponding to each division section number from the division section upper and lower limit designation means 13. Get from. The division section number designating means 13 and the division section upper and lower limit designation means 14 may be any means such as an input/output device, an external storage device, or a program.

【0017】転送テーブル作成手段11は,分割区間番
号指定手段13および分割区間上下限指定手段14から
得た情報に基づいて,共用メモリ15における各転送先
データ格納域18への割り付け対象となる1以上の任意
の次元方向で分割した分割ブロックに対応して,各次元
ごとの範囲に関する情報を持つ転送テーブル16を作成
する。
The transfer table creation means 11 selects one to be allocated to each transfer destination data storage area 18 in the shared memory 15 based on information obtained from the division section number designation means 13 and the division section upper and lower limit designation means 14. A transfer table 16 having information regarding the range of each dimension is created corresponding to the divided blocks divided in the above arbitrary dimension directions.

【0018】データ転送手段12は,作成した転送テー
ブル16に基づいて,各分割ブロックごとにデータを各
記憶空間に転送する。すなわち,転送テーブル16に基
づいて分配データ格納域17のデータを各プロセッサに
対応して指定された転送先データ格納域18へ分配する
The data transfer means 12 transfers data to each storage space for each divided block based on the created transfer table 16. That is, based on the transfer table 16, the data in the distribution data storage area 17 is distributed to the transfer destination data storage area 18 designated corresponding to each processor.

【0019】図1の(イ)に示す例は,共用メモリ15
上でデータの分配を行っているが,分散メモリ型の計算
機では,各プロセッサが持つローカルメモリに対してそ
れぞれデータを転送する。請求項2記載の発明は,例え
ば(ロ)に示すような構成になっている。
In the example shown in FIG. 1(a), the shared memory 15
Data is distributed above, but in a distributed memory computer, data is transferred to the local memory of each processor. The invention recited in claim 2 has a configuration as shown in (b), for example.

【0020】ある分割法で分散して割り付けられている
配列からデータを収集し,別の分割法に基づく1ブロッ
ク内に属する任意の部分配列を収集する。そのため,プ
ロセッサ10aは,分割区間番号指定手段13から収集
対象となるブロックの分割区間番号を得て,その各分割
区間番号に対応する分割ブロックの上下限の範囲を,分
割区間上下限指定手段14から得る。
Data is collected from arrays that are distributed and allocated using one division method, and arbitrary partial arrays belonging to one block based on another division method are collected. Therefore, the processor 10a obtains the division section number of the block to be collected from the division section number designation means 13, and determines the range of the upper and lower limits of the division block corresponding to each division section number from the division section upper and lower limit designation means 13. Get from.

【0021】転送テーブル作成手段11は,分割区間番
号指定手段13および分割区間上下限指定手段14から
得た情報に基づいて,共用メモリ15における転送元デ
ータ格納域20へ分散して配置されている1以上の任意
の次元方向で分割した分割ブロックに対応して,収集す
べきデータの各次元ごとの範囲に関する情報を持つ転送
テーブル16を作成する。
The transfer table creation means 11 is arranged in a distributed manner in the transfer source data storage area 20 in the shared memory 15 based on the information obtained from the division section number designation means 13 and the division section upper and lower limit designation means 14. A transfer table 16 having information regarding the range of data to be collected for each dimension is created corresponding to the divided blocks divided in one or more arbitrary dimension directions.

【0022】データ転送手段12は,作成した転送テー
ブル16に基づいて,各分割ブロックごとの収集データ
を,各転送元データ格納域20から収集データ格納域1
9へ転送する。図1の(ロ)に示す例は,共用メモリ1
5上でデータの収集を行っているが,分散メモリ型の計
算機では,各プロセッサが持つローカルメモリから,そ
れぞれ収集するプロセッサのローカルメモリへデータを
転送する。
The data transfer means 12 transfers the collected data for each divided block from each transfer source data storage area 20 to the collected data storage area 1 based on the created transfer table 16.
Transfer to 9. In the example shown in (b) of Figure 1, the shared memory 1
In a distributed memory computer, data is transferred from the local memory of each processor to the local memory of the processor that collects the data.

【0023】[0023]

【作用】請求項1記載の発明では,例えばn次元配列A
(M1,M2,…, Mn)  (n≧1,Md は次
元dの寸法)の超直方体の部分配列 A(i1:j1, i2:j2, …, in:jn 
)(id, jdはそれぞれ次元dのインデックスの下
限,上限。0≦id≦jd≦Md−1)が1分割ブロッ
ク内にあるとき,これを別の分割法に従って分割割付け
する。
[Operation] In the invention as claimed in claim 1, for example, the n-dimensional array A
(M1, M2, ..., Mn) (n≧1, Md is the dimension d) subarray A (i1:j1, i2:j2, ..., in:jn
) (id, jd are the lower limit and upper limit of the index of dimension d, respectively. 0≦id≦jd≦Md−1) is within one divided block, this is divided and allocated according to another division method.

【0024】請求項2記載の発明では,逆に分割割付け
されている部分配列を別の分割法に従って1分割ブロッ
クに収集する。部分配列は,配列全体であってもよい。 説明の簡単化のため,各次元の配列のインデックスおよ
び分割区間番号は,0から数えるものとする。他の場合
(例えば1から数える場合)には,シフトさせて本発明
を適用すればよい。また,分割ブロックごとに,配列要
素A(k1,… ,kn)のメモリ割付けは,次式で示
されるアドレスに置くこととする。
In the second aspect of the invention, on the other hand, partial arrays that have been divided and allocated are collected into one divided block according to another division method. A subarray may be the entire array. To simplify the explanation, it is assumed that the array index and division section number of each dimension are counted from 0. In other cases (for example, when counting from 1), the present invention may be applied with a shift. Furthermore, for each divided block, the memory allocation of array element A (k1,...,kn) is assumed to be placed at the address shown by the following equation.

【0025】   (ベースアドレス)+(ワード長)×      
          (k1+m1×(k2+m2×(
 …m(n−1)×kn…)))       (式1
)分散メモリ型計算機では,分散ブロックとプロセッサ
の対応をテーブル等で管理する。
(Base address) + (word length) ×
(k1+m1×(k2+m2×(
...m(n-1)×kn...))) (Formula 1
) In distributed memory computers, the correspondence between distributed blocks and processors is managed using tables, etc.

【0026】この係数md(d=1,2,…,n−1)
 を,その分割ブロックの次元dの分割係数と呼ぶ。分
割係数は,その次元方向の分割幅(インデックス数)以
上の定数である。分割幅と等しい場合,ブロック内の配
列要素は連続アドレスに割り付けられる。
[0026] This coefficient md (d=1, 2,..., n-1)
is called the division coefficient of dimension d of the divided block. The division coefficient is a constant greater than or equal to the division width (index number) in the dimension direction. If equal to the partition width, the array elements within the block are allocated to consecutive addresses.

【0027】[1]共用メモリ型計算機の場合,ある分
割法Aで1ブロック内に割り付けられている任意の部分
配列を,他の分割法Bに従って分割割付けするときの分
配の手順は以下のようになる。 ■  プロセッサ10aは,分割区間番号指定手段13
により,すべての次元d=1,…,nについて,分割法
Bでid に対応する分割区間番号pd と,jd に
対応する分割区間番号qd を得る。これによって,分
割法Bの分割ブロックの範囲は,(p1:q1,…, 
pn:qn)であることがわかる。
[1] In the case of a shared memory type computer, the distribution procedure when an arbitrary partial array allocated in one block by a certain partitioning method A is divided and allocated according to another partitioning method B is as follows. become. ■ The processor 10a uses the division section number designation means 13
Thus, for all dimensions d=1, . . . , n, the division method B obtains the division section number pd corresponding to id and the division section number qd corresponding to jd. As a result, the range of divided blocks of division method B is (p1:q1,...,
pn:qn).

【0028】■  転送テーブル16の領域を,分割法
Bの分割ブロックに対応して,(q1−p1 +1)×
…× (qn −pn +1)個確保する。 ■  プロセッサ10aは,分割ブロック(r1,…r
n) (rd =pd,…qd;d=1,…,n)に対
応して,すべての転送テーブル16を,次のように完成
させる。
■ The area of the transfer table 16 is divided into (q1-p1 +1)×corresponding to the divided blocks of division method B.
…× (qn − pn +1) are secured. ■ The processor 10a divides the divided blocks (r1,...r
n) Corresponding to (rd = pd, ... qd; d = 1, ..., n), complete all transfer tables 16 as follows.

【0029】 次元dの下限値は,rd =pd のとき,id 。 rd ≧pd のとき,分割区間rd の下限。 次元dの上限値は,rd =qd のとき,jd 。 rd ≧qd のとき,分割区間rd の上限。[0029] The lower limit value of dimension d is id when rd = pd. When rd≧pd, the lower limit of the division interval rd. The upper limit of dimension d is jd when rd = qd. When rd ≧ qd, the upper limit of the divided section rd.

【0030】■  プロセッサ10aは,すべての転送
テーブル16に従って,分配データ格納域17から指定
される配列要素を読み出し,転送先データ格納域18へ
書き込む。分割法A,分割法Bとも,アドレス計算は上
記(式1)による。転送テーブル16は,配列全体に対
応する数だけ,あらかじめ確保しておいてもよい。その
場合には,手順■は不要となる。
(2) The processor 10a reads out the specified array element from the distribution data storage area 17 according to all the transfer tables 16, and writes it to the transfer destination data storage area 18. In both division method A and division method B, the address calculation is based on the above (Equation 1). The number of transfer tables 16 corresponding to the entire array may be secured in advance. In that case, step ■ is not necessary.

【0031】[2]同じ処理を分散メモリ型計算機で実
現する場合,分割ブロックに対応するプロセッサ10b
,…10cへのデータ送信となる。最初の手順■〜■は
共用メモリ型と同様である。■では以下の処理を行う。 ■  データ転送手段12により,転送テーブル16ご
とにデータ転送を実行する。1ワード長ずつしか転送で
きない機構であれば,全次元について反復実行しながら
1配列要素ずつ転送する。連続アドレスが一度に転送で
きる機構であれば,第2次元以降について反復実行しな
がら第1次元の連続配列要素を一度に転送することが可
能である。インターバル付きアドレス指定が可能な機構
であれば,第3次元以降について反復実行しながら第1
,2次元の長方形領域の配列要素を一度に転送すること
が可能である。複数次元のインターバルが可能ならば,
さらに多くの配列要素を一度に転送できる。
[2] When implementing the same processing using a distributed memory computer, the processor 10b corresponding to the divided block
, . . . data is sent to 10c. The first steps ① to ② are similar to the shared memory type. In ③, the following processing is performed. (2) The data transfer means 12 executes data transfer for each transfer table 16. If the mechanism is capable of transferring only one word length at a time, it will transfer one array element at a time while repeating the process for all dimensions. If there is a mechanism that can transfer consecutive addresses at once, it is possible to transfer consecutive array elements of the first dimension at one time while repeating execution for the second and subsequent dimensions. If the mechanism allows addressing with intervals, the first
, it is possible to transfer array elements of a two-dimensional rectangular area at once. If multidimensional intervals are possible, then
More array elements can be transferred at once.

【0032】[3]共用メモリ型計算機において,分割
法Bによる1ブロック内に属する任意の部分配列を,分
割法Aで割り付けられている配列から収集し,分割法B
で割り付ける収集の手順は以下のようになる。 ■  プロセッサ10aは,分割区間番号指定手段13
により,すべての次元d=1,…,nについて,分割法
Aでid に対応する分割区間番号pd と,jd に
対応する分割区間番号qd を得る。これによって,分
割法Aの分割ブロックの範囲は,(p1:q1,…, 
pn:qn)であることがわかる。
[3] In a shared memory computer, collect arbitrary partial arrays belonging to one block using partitioning method B from the arrays allocated using partitioning method A, and use partitioning method B.
The collection procedure for allocation is as follows. ■ The processor 10a uses the division section number designation means 13
As a result, for all dimensions d=1, . . . , n, the division method A obtains the division section number pd corresponding to id and the division section number qd corresponding to jd. As a result, the range of divided blocks of division method A is (p1:q1,...,
pn:qn).

【0033】■  転送テーブル16の領域を,分割法
Aの分割ブロックに対応して,(q1−p1 +1)×
…× (qn −pn +1)個確保する。 ■  [1]の分配の場合と同様に,分割ブロックに対
応するすべての転送テーブル16を完成させる。
■ The area of the transfer table 16 is divided into (q1-p1 +1)×corresponding to the divided blocks of division method A.
…× (qn − pn +1) are secured. ■ As in the case of distribution [1], complete all transfer tables 16 corresponding to the divided blocks.

【0034】■  プロセッサ10aは,すべての転送
テーブル16に従って,転送元データ格納域20から指
定される配列要素を読み出し,収集データ格納域19へ
書き込む。分割法A,分割法Bとも,アドレス計算は上
記(式1)による。 [4]分散メモリ型計算機において収集を行う場合には
,分割ブロックを担当する各プロセッサ10b,…10
cからのデータ受信となる。
(2) The processor 10a reads out the specified array element from the transfer source data storage area 20 according to all the transfer tables 16, and writes it to the collected data storage area 19. In both division method A and division method B, the address calculation is based on the above (Equation 1). [4] When collecting on a distributed memory computer, each processor 10b,...10 in charge of a divided block
Data will be received from c.

【0035】[0035]

【実施例】図2は,分散メモリ型並列計算機に適用した
本発明の構成例を示している。図1に示す例では,各プ
ロセッサ10a〜10cがそれぞれ処理するデータを共
用メモリ15に分割して格納しているのに対し,図2に
示す例では,各プロセッサ10a〜10c対応に設けら
れている分散メモリ30のデータ格納域31に,データ
を分散させて格納する。この場合,データ転送手段12
は,各プロセッサの分散メモリ30間でデータを送受信
するバスまたは転送装置等で構成される。他の構成につ
いては,図1に示すものとほぼ同様である。
Embodiment FIG. 2 shows a configuration example of the present invention applied to a distributed memory parallel computer. In the example shown in FIG. 1, data to be processed by each of the processors 10a to 10c is divided and stored in the shared memory 15, whereas in the example shown in FIG. The data is distributed and stored in the data storage area 31 of the distributed memory 30. In this case, the data transfer means 12
is composed of a bus or a transfer device that transmits and receives data between the distributed memories 30 of each processor. The other configurations are almost the same as those shown in FIG.

【0036】図3は,本発明の実施例で用いる転送テー
ブルの構成例を示す。転送テーブル16は,最大の場合
,分割ブロック数まで必要であり,それぞれ図3に示す
ように,配列の各次元ごとにインデックスの下限を示す
整数値と,上限を示す整数値とを持つことにより,分割
割付けの範囲を示す。
FIG. 3 shows an example of the configuration of a transfer table used in the embodiment of the present invention. In the maximum case, the transfer table 16 is necessary for up to the number of divided blocks, and as shown in FIG. , indicates the range of split allocation.

【0037】ADE転送に関する実施例として,10台
のプロセッサを持つ分散メモリ型並列計算機で,2次元
配列A(30,50)およびB(30,50)が使われ
,図4に示すように分割配置されている具体的な例につ
いて説明する。配列Aから配列Bへ全要素を代入する。
As an example regarding ADE transfer, two-dimensional arrays A(30,50) and B(30,50) are used in a distributed memory parallel computer with 10 processors, and are divided as shown in FIG. A specific example of the arrangement will be explained. Assign all elements from array A to array B.

【0038】各プロセッサは担当するAの部分配列全域
を,Bへ分配する。例えばプロセッサP0は,A(0:
29, 0:4)を,次の手順でBの対応する要素へ送
信する。 ■  配列A,Bについて,インデックスと分割区間番
号の対に関する情報を,例えば図5に示す分割情報テー
ブルを使って保持する。または計算式の形で保持する。 これをプロセッサで参照または計算することにより,分
割区間の範囲を認識する。図1に示す分割区間番号指定
手段13および分割区間上下限指定手段14は,このよ
うな分割情報テーブル等を得る手段である。
Each processor distributes the entire partial array of A for which it is responsible to B. For example, processor P0 is A(0:
29, 0:4) to the corresponding element of B using the following procedure. (2) For arrays A and B, information regarding pairs of indexes and division section numbers is held using, for example, the division information table shown in FIG. Or keep it in the form of a calculation formula. By referencing or calculating this in a processor, the range of the divided interval is recognized. The division section number designation means 13 and the division section upper and lower limit designation means 14 shown in FIG. 1 are means for obtaining such a division information table and the like.

【0039】■  次元1の区間0:29,次元2の区
間0:4から,転送先となる配列Bの部分は,分割ブロ
ック(0,0)から(9,0)までの10ブロックにま
たがっていることがわかる。 ■  分割ブロックに対応して,転送テーブル16を1
0個用意する。
■ From interval 0:29 of dimension 1 and interval 0:4 of dimension 2, the part of array B that is the transfer destination spans 10 blocks from divided blocks (0,0) to (9,0). It can be seen that ■ The transfer table 16 is set to 1 corresponding to the divided block.
Prepare 0 pieces.

【0040】■  転送テーブル16を,図6に示す転
送テーブル16−0,…,16−9のように完成させる
。 ■  転送装置に対し,必要なパラメータを与えて起動
する。例えば自プロセッサのインターバル付きアドレス
区間から,他プロセッサのインターバル付きアドレス区
間へ送受信するハードウェアを用いるなら,block
(1,0)に関しては,次のようなパラメータをセット
し起動する。
(2) Complete the transfer table 16 as transfer tables 16-0, . . . , 16-9 shown in FIG. ■ Give the necessary parameters to the transfer device and start it. For example, if you are using hardware that sends and receives data from the address interval with intervals of its own processor to the address interval with intervals of another processor, block
For (1,0), set the following parameters and start.

【0041】 (a) 転送データ数    N    (5−3+1
)×(4−0+1)=15(b) 転送先プロセッサP
    プロセッサP1(c) 転送元 先頭アドレスb1    A(3,0)のアドレス連続
データ数w1    5−3+1=3      イン
ターバルi1    30(d) 転送先 先頭アドレスb2    B(3,0)のアドレス連続
データ数w2    5−3+1=3インターバルi2
    3 転送データ数Nは,図6に示す転送テーブル16−1か
ら計算できる。転送元の先頭アドレスb1は,転送テー
ブル16−1の下限値から決める。連続データ数w1と
インターバルi1は,それぞれ転送テーブル16−1の
次元1方向の連続長と,図5に示すテーブルの次元1方
向の分割幅から決める。転送先についても同様である。
(a) Number of transferred data N (5-3+1
)×(4-0+1)=15(b) Transfer destination processor P
Processor P1(c) Transfer source start address b1 Number of address continuous data of A(3,0) w1 5-3+1=3 Interval i1 30(d) Transfer destination start address b2 Number of address continuous data of B(3,0) w2 5-3+1=3 intervals i2
3. The number of transferred data N can be calculated from the transfer table 16-1 shown in FIG. The transfer source head address b1 is determined from the lower limit value of the transfer table 16-1. The continuous data number w1 and the interval i1 are determined from the continuous length of the transfer table 16-1 in the first dimension direction and the division width of the table shown in FIG. 5 in the first dimension direction. The same applies to the transfer destination.

【0042】パラメータを受け取った転送装置は,例え
ば図10に従って後述する手順により,転送元アドレス
を得ながらN個のデータをメモリから読み,パラメータ
N,b2,w2,i2とともにプロセッサP1等の受信
装置へ送信する。プロセッサP1等の受信装置は,同様
に図10に示す手順で転送先アドレスを得ながらN個の
データを順次書き込む。
The transfer device that has received the parameters reads N pieces of data from the memory while obtaining the transfer source address, for example according to the procedure described later in accordance with FIG. Send to. Similarly, the receiving device such as the processor P1 sequentially writes N pieces of data while obtaining the transfer destination address using the procedure shown in FIG.

【0043】この結果,図7の配列Aのように各プロセ
ッサP0〜P9に分割割付けされていたデータは,配列
Bのように再配置されることになる。以上の例では,分
配によって配列Aのデータを配列Bのように再配置して
いるが,分散配置されているデータを収集することによ
って,同様に再配置することも可能である。この場合,
各プロセッサP0〜P9は,担当する配列Bの部分配列
全体を,配列Aから収集する。例えばプロセッサP0は
,部分配列B(0:2,0:49)を,配列Aの対応す
る要素から受信する。その手順は以下のとおりである。
As a result, the data that was divided and allocated to each of the processors P0 to P9 as shown in array A in FIG. 7 is rearranged as shown in array B. In the above example, data in array A is rearranged as array B by distribution, but it is also possible to rearrange data in the same way by collecting distributed data. in this case,
Each processor P0 to P9 collects the entire partial array of array B for which it is responsible, from array A. For example, processor P0 receives partial array B (0:2, 0:49) from the corresponding element of array A. The procedure is as follows.

【0044】■  上記分配のときの■と同様である。 ■  転送元となる配列Aの部分は,分割ブロック(0
,0)から(0,9)までまたがっている。 ■  分割ブロックに対応して転送テーブル16を10
個用意する。
(2) This is the same as (2) in the above distribution. ■ The part of array A that is the transfer source is a divided block (0
,0) to (0,9). ■ Transfer table 16 is set to 10 in correspondence with the divided blocks.
Prepare one.

【0045】■  転送テーブルを,図8および図9に
示す手順により埋める。 ■  上記分配の場合と同様であるが,各プロセッサに
対して自分へのデータ転送を要求し,応答を待つ。 以上の手順における転送テーブル16の作成処理は,図
8および図9に示すように行う。なお,この例は3次元
配列のデータを分割する場合の例である。以下の説明に
おける(a) 〜(z) は,図8および図9に示す(
a) 〜(z) に対応する。
■ Fill the transfer table according to the procedure shown in FIGS. 8 and 9. ■ Same as in the case of distribution above, but requests each processor to transfer data to itself and waits for a response. The process of creating the transfer table 16 in the above procedure is performed as shown in FIGS. 8 and 9. Note that this example is an example of dividing data in a three-dimensional array. (a) to (z) in the following explanation are shown in FIGS. 8 and 9 (
a) Corresponds to ~(z).

【0046】(a) 部分配列の次元1のインデックス
の下限と上限を変数i1,j1にセットする。同様に,
次元2のインデックスの下限と上限を変数i2,j2に
,次元3のインデックスの下限と上限を変数i3,j3
にセットする。また,p1,q1,p2,q2,p3,
q3に,それぞれi1,j1,i2,j2,i3,j3
に対応する分割区間番号をセットする。
(a) Set the lower and upper limits of the index of dimension 1 of the partial array to variables i1 and j1. Similarly,
The lower and upper limits of the index of dimension 2 are set as variables i2 and j2, and the lower and upper limits of the index of dimension 3 are set as variables i3 and j3.
Set to . Also, p1, q1, p2, q2, p3,
q3, i1, j1, i2, j2, i3, j3 respectively
Set the division section number corresponding to .

【0047】(b) 変数r1にp1をセットする。 (c) すべてのr2=p2,…,q2;r3=p3,
…,q3について,転送テーブル table(r1,
r2,r3)の次元1の下限値として,i1の値を設定
する。
(b) Set p1 to variable r1. (c) All r2=p2,...,q2; r3=p3,
..., q3, transfer table table(r1,
The value of i1 is set as the lower limit value of dimension 1 of (r2, r3).

【0048】(d) r1=q1ならば,処理(i) 
へ進む。 (e) 次元1の分割区間r1の上限値を,変数top
に設定する。 (f) すべてのr2=p2,…,q2;r3=p3,
…,q3について,転送テーブル table(r1,
r2,r3)の次元1の上限値として,topの値を設
定する。
(d) If r1=q1, process (i)
Proceed to. (e) The upper limit of the division interval r1 of dimension 1 is set as the variable top
Set to . (f) All r2=p2,...,q2; r3=p3,
..., q3, transfer table table(r1,
The value of top is set as the upper limit value of dimension 1 of (r2, r3).

【0049】(g) r1に1を加算する(h) すべ
てのr2=p2,…,q2;r3=p3,…,q3につ
いて,転送テーブル table(r1,r2,r3)
の次元1の上限値として,top+1の値を設定する。 その後,処理(d) へ戻る。
(g) Add 1 to r1 (h) For all r2 = p2,..., q2; r3 = p3,..., q3, transfer table table (r1, r2, r3)
The value of top+1 is set as the upper limit value of dimension 1 of . Thereafter, the process returns to process (d).

【0050】(i) すべてのr2=p2,…,q2;
r3=p3,…,q3について,転送テーブル tab
le(r1,r2,r3)の次元1の上限値として,j
1の値を設定する。 (j) 変数r2にp2をセットする。
(i) All r2=p2,...,q2;
For r3=p3,...,q3, transfer table tab
As the upper limit of dimension 1 of le (r1, r2, r3), j
Set the value to 1. (j) Set p2 to variable r2.

【0051】(k) すべてのr1=p1,…,q1;
r3=p3,…,q3について,転送テーブル tab
le(r1,r2,r3)の次元2の下限値として,i
2の値を設定する。 (l) r2=q2ならば,処理(q) へ進む。
(k) All r1=p1,...,q1;
For r3=p3,...,q3, transfer table tab
As the lower limit of dimension 2 of le (r1, r2, r3), i
Set the value of 2. (l) If r2=q2, proceed to process (q).

【0052】(m) 次元2の分割区間r2の上限値を
,変数topに設定する。 (n) すべてのr1=p1,…,q1;r3=p3,
…,q3について,転送テーブル table(r1,
r2,r3)の次元2の上限値として,topの値を設
定する。
(m) Set the upper limit value of the division interval r2 of dimension 2 to the variable top. (n) All r1=p1,...,q1; r3=p3,
..., q3, transfer table table(r1,
The value of top is set as the upper limit value of dimension 2 of r2, r3).

【0053】(o) r2に1を加算する(p) すべ
てのr1=p1,…,q1;r3=p3,…,q3につ
いて,転送テーブル table(r1,r2,r3)
の次元2の上限値として,top+1の値を設定する。 その後,処理(l) へ戻る。
(o) Add 1 to r2 (p) For all r1 = p1, ..., q1; r3 = p3, ..., q3, transfer table table (r1, r2, r3)
The value of top+1 is set as the upper limit value of dimension 2 of . Then, return to process (l).

【0054】(q) すべてのr1=p1,…,q1;
r3=p3,…,q3について,転送テーブル tab
le(r1,r2,r3)の次元2の上限値として,j
2の値を設定する。 (r) 変数r3にp3をセットする。
(q) All r1=p1,...,q1;
For r3=p3,...,q3, transfer table tab
As the upper limit of dimension 2 of le (r1, r2, r3), j
Set the value of 2. (r) Set p3 to variable r3.

【0055】(s) すべてのr1=p1,…,q1;
r2=p2,…,q2について,転送テーブル tab
le(r1,r2,r3)の次元3の下限値として,i
3の値を設定する。 (t) r3=q3ならば,処理(y) へ進む。
(s) all r1=p1,...,q1;
For r2=p2,...,q2, transfer table tab
As the lower limit of dimension 3 of le(r1, r2, r3), i
Set the value of 3. (t) If r3=q3, proceed to process (y).

【0056】(u) 次元3の分割区間r3の上限値を
,変数topに設定する。 (v) すべてのr1=p1,…,q1;r2=p2,
…,q2について,転送テーブル table(r1,
r2,r3)の次元3の上限値として,topの値を設
定する。
(u) Set the upper limit value of the divided section r3 of dimension 3 to the variable top. (v) All r1=p1,...,q1; r2=p2,
..., q2, transfer table table(r1,
The value of top is set as the upper limit value of dimension 3 of r2, r3).

【0057】(w) r3に1を加算する(x) すべ
てのr1=p1,…,q1;r2=p2,…,q2につ
いて,転送テーブル table(r1,r2,r3)
の次元2の上限値として,top+1の値を設定する。 その後,処理(t) へ戻る。
(w) Add 1 to r3 (x) For all r1 = p1, ..., q1; r2 = p2, ..., q2, transfer table table (r1, r2, r3)
The value of top+1 is set as the upper limit value of dimension 2 of . Thereafter, the process returns to process (t).

【0058】(y) すべてのr1=p1,…,q1;
r2=p2,…,q2について,転送テーブル tab
le(r1,r2,r3)の次元3の上限値として,j
3の値を設定し,転送テーブルの作成を完了する。デー
タを転送する転送装置は,図10に示す処理論理■〜■
により転送元または転送先のアドレスを決定する。
(y) all r1=p1,...,q1;
For r2=p2,...,q2, transfer table tab
As the upper limit of dimension 3 of le (r1, r2, r3), j
Set the value of 3 and complete the creation of the transfer table. The transfer device that transfers data has the processing logic shown in Figure 10.
The forwarding source or forwarding destination address is determined by

【0059】■  データ数をN,先頭アドレスをb,
連続データ数をw,インターバルをiとする。 ■  変数k0に0,変数dに(i−w),アドレスa
ddrにbを設定する。 ■  変数k1に0を設定する。
■ The number of data is N, the start address is b,
Let w be the number of continuous data and i be the interval. ■ 0 in variable k0, (i-w) in variable d, address a
Set b to ddr. ■ Set variable k1 to 0.

【0060】■  変数k0がNになったならば,処理
を終了する。 ■  アドレスaddrをアクセスする。転送元の場合
,読み出し(Read),転送先の場合,書き込み(W
rite)を行う。 ■  アドレスaddrを1歩進する。変数k0,k1
にそれぞれ1を加算する。
■ When the variable k0 becomes N, the process ends. ■ Access address addr. For the transfer source, read (Read), for the transfer destination, write (W)
rite). ■ Advance address addr by one step. Variables k0, k1
Add 1 to each.

【0061】■  変数k1がwになるまで,■へ戻っ
て処理を繰り返す。 ■  変数k1がwになったならば,アドレスaddr
にdを加えた後,■へ戻って同様に処理を繰り返す。デ
ータを転送する転送装置は,以上の処理論理によってア
ドレスを決定するハードウェアによって容易に構成でき
る。または,各プロセッサにおけるソフトウェアによっ
て構成することも可能である。
■ Return to ■ and repeat the process until the variable k1 becomes w. ■ If variable k1 becomes w, address addr
After adding d to , return to step 3 and repeat the process. A transfer device that transfers data can be easily constructed using hardware that determines addresses using the above processing logic. Alternatively, it can also be configured by software in each processor.

【0062】分割配列の初期化に本発明を適用する場合
,以下のように行う。ファイルやオブジェクトコードに
書かれている値での分割配列の初期化は,これらの初期
化データ列を1×…×1に分割された配列とみなし,各
プロセッサによる分配または収集を行うことで実現する
ことができる。ただし,シーケンシャルファイルからの
入力の場合には,プロセッサ間で逐次化の処理が必要で
ある。排他処理が必要な場合もある。
When the present invention is applied to the initialization of a divided array, it is performed as follows. Initialization of a divided array with values written in a file or object code is achieved by regarding these initialization data strings as an array divided into 1×...×1, and distributing or collecting them by each processor. can do. However, when inputting from a sequential file, serialization processing is required between processors. Exclusive processing may be necessary.

【0063】分割配列の出力に本発明を適用する場合,
以下のように行う。ファイルやプリンタへの分割配列の
出力は,これらの出力先を1×…×1に分割された配列
とみなし,各プロセッサで本発明による分配を適用する
ことで実現することができる。ただし,シーケンシャル
ファイルへの出力や,出力順序に意味のあるプリンタ出
力の場合には,プロセッサ間で逐次化の処理が必要であ
る。排他処理が必要な場合もある。
When applying the present invention to the output of a divided array,
Do as follows. Outputting a divided array to a file or printer can be achieved by regarding these output destinations as an array divided into 1×...×1, and applying the distribution according to the present invention to each processor. However, when outputting to a sequential file or outputting to a printer where the output order is meaningful, serialization processing is required between processors. Exclusive processing may be necessary.

【0064】図11および図12は,本発明の適用対象
となる分割割付けの例と実際のメモリにおけるデータの
配置例を示している。例えば図11の(イ)に示す2次
元配列X(8,12)の長方形型の部分配列X(1:6
,1:7)を,第1次元方向に順に区間幅2,3,3,
第2次元方向に順に区間幅4,4,4で分割すると,そ
の分割イメージは,図11の(ロ)に示すようになる。
FIGS. 11 and 12 show an example of divisional allocation to which the present invention is applied and an example of data arrangement in actual memory. For example, a rectangular partial array X (1:6) of the two-dimensional array X (8, 12) shown in FIG.
, 1:7) in the first dimension direction with interval widths 2, 3, 3,
When divided in the second dimension direction by interval widths 4, 4, 4, the divided image becomes as shown in (b) of FIG.

【0065】この3×3ブロックに分割された各ブロッ
ク内のデータを,メモリ上の連続アドレスに割り付ける
ようにすると,メモリ割付けは,図12に示す(イ)〜
(ヘ)に示すような状態になる。部分配列は,6つのブ
ロックにまたがって,一見不規則なアドレスに分散配置
される形になる。しかし,分散メモリ型の場合などに,
各プロセッサは分割法に応じたメモリ割付けを意識し,
効率よくデータを処理することが可能である。
If the data in each block divided into 3×3 blocks is allocated to consecutive addresses on the memory, the memory allocation will be as shown in FIG.
The situation will be as shown in (f). The partial array spans six blocks and is distributed at seemingly irregular addresses. However, in cases such as distributed memory type,
Each processor is aware of memory allocation according to the partitioning method,
It is possible to process data efficiently.

【0066】[0066]

【発明の効果】以上説明したように,本発明によれば,
分割形状の異なる配列間の転送や,分割配列への入出力
処理を,統一的に簡単かつ効率よく行うことができる。 特に,分散メモリ型並列計算機でのデータ転送処理の効
率化も可能であり,ユーザプログラム等の負担軽減に大
きな効果がある。
[Effect of the invention] As explained above, according to the present invention,
Transfers between arrays with different partition shapes and input/output processing to partition arrays can be performed easily and efficiently in a unified manner. In particular, it is possible to improve the efficiency of data transfer processing in distributed memory parallel computers, which has a great effect on reducing the burden on user programs.

【図面の簡単な説明】[Brief explanation of drawings]

【図1】本発明の原理構成図である。FIG. 1 is a diagram showing the principle configuration of the present invention.

【図2】本発明の他の構成例を示す図である。FIG. 2 is a diagram showing another configuration example of the present invention.

【図3】本発明の実施例に係る転送テーブルの構成例を
示す図である。
FIG. 3 is a diagram showing a configuration example of a transfer table according to an embodiment of the present invention.

【図4】本発明の一実施例による再分配説明図である。FIG. 4 is an explanatory diagram of redistribution according to an embodiment of the present invention.

【図5】本発明の一実施例で用いる分割情報テーブルの
例を示す図である。
FIG. 5 is a diagram showing an example of a division information table used in an embodiment of the present invention.

【図6】本発明の一実施例に係る転送テーブルの例を示
す図である。
FIG. 6 is a diagram showing an example of a transfer table according to an embodiment of the present invention.

【図7】本発明の一実施例によるメモリ割付けの例を示
す図である。
FIG. 7 is a diagram illustrating an example of memory allocation according to an embodiment of the present invention.

【図8】本発明の一実施例による転送テーブル作成処理
説明図である。
FIG. 8 is an explanatory diagram of transfer table creation processing according to an embodiment of the present invention.

【図9】本発明の一実施例による転送テーブル作成処理
説明図である。
FIG. 9 is an explanatory diagram of transfer table creation processing according to an embodiment of the present invention.

【図10】本発明の一実施例によるデータ転送制御説明
図である。
FIG. 10 is an explanatory diagram of data transfer control according to an embodiment of the present invention.

【図11】本発明に関係する分割割付けの例を示す図で
ある。
FIG. 11 is a diagram showing an example of divisional allocation related to the present invention.

【図12】本発明に関係するメモリ割付けの例を示す図
である。
FIG. 12 is a diagram showing an example of memory allocation related to the present invention.

【図13】並列計算機における配列データの分割例を示
す図である。
FIG. 13 is a diagram showing an example of dividing array data in a parallel computer.

【符号の説明】[Explanation of symbols]

10a〜10c  プロセッサ 11      転送テーブル作成手段12     
 データ転送手段 13      分割区間番号指定手段14     
 分割区間上下限指定手段15      共用メモリ 16      転送テーブル 17      分配データ格納域 18      転送先データ格納域 19      収集データ格納域 20      転送元データ格納域
10a to 10c Processor 11 Transfer table creation means 12
Data transfer means 13 Division number designation means 14
Divided section upper and lower limit designation means 15 Shared memory 16 Transfer table 17 Distribution data storage area 18 Transfer destination data storage area 19 Collection data storage area 20 Transfer source data storage area

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】  複数のプロセッサ(10)がそれぞれ
自装置に割り付けられたデータを処理する計算機であっ
て,入力装置から入力したデータまたは記憶装置に格納
されている配列データの全部または一部を分割して各記
憶空間または各プロセッサ(10)に割り付ける配列デ
ータの分配/収集処理装置において,各記憶空間または
各プロセッサ(10)への割り付け対象となる1以上の
任意の次元方向で分割した分割ブロックに対応して,各
次元ごとの範囲に関する情報を持つ転送テーブル(16
)を作成する転送テーブル作成手段(11)と,作成し
た転送テーブル(16)に基づいて,各分割ブロックご
とにデータを各記憶空間または各プロセッサ(10)に
転送するデータ転送手段(12)とを備え,任意の転送
パターンによりデータを自動分配するようにしたことを
特徴とする配列データの分配/収集処理装置。
Claim 1: A computer in which a plurality of processors (10) each process data allocated to its own device, the computer processing all or part of data input from an input device or array data stored in a storage device. In a distribution/collection processing device for array data that is divided and allocated to each storage space or each processor (10), partitioning is performed in one or more arbitrary dimension directions to be allocated to each storage space or each processor (10). Corresponding to the block, a transfer table (16
); and data transfer means (12) that transfers data for each divided block to each storage space or each processor (10) based on the created transfer table (16). 1. An array data distribution/collection processing device, characterized in that the data is automatically distributed according to an arbitrary transfer pattern.
【請求項2】  複数のプロセッサ(10)がそれぞれ
自装置に割り付けられたデータを処理する計算機であっ
て,各記憶空間または各プロセッサ(10)に分散して
配置されているデータの全部または一部を,ある記憶空
間または1つのプロセッサ(10)に収集する配列デー
タの分配/収集処理装置において,各記憶空間または各
プロセッサ(10)へ分散して配置されている1以上の
任意の次元方向で分割した分割ブロックに対応して,収
集すべきデータの各次元ごとの範囲に関する情報を持つ
転送テーブル(16)を作成する転送テーブル作成手段
(11)と,作成した転送テーブル(16)に基づいて
,各分割ブロックごとの収集データを,ある記憶空間ま
たは1つのプロセッサ(10)に転送するデータ転送手
段(12)とを備え,任意の転送パターンによりデータ
を自動収集するようにしたことを特徴とする配列データ
の分配/収集処理装置。
2. A computer in which a plurality of processors (10) each process data allocated to its own device, wherein all or part of the data distributed in each storage space or each processor (10) is processed. In an array data distribution/collection processing device that collects parts into a certain storage space or one processor (10), one or more arbitrary dimensional directions are distributed and arranged in each storage space or each processor (10). a transfer table creation means (11) for creating a transfer table (16) having information regarding the range of each dimension of data to be collected corresponding to the divided blocks divided by; and based on the created transfer table (16). The present invention is characterized in that it is equipped with a data transfer means (12) for transferring collected data for each divided block to a certain storage space or one processor (10), and is configured to automatically collect data according to an arbitrary transfer pattern. Array data distribution/collection processing device.
JP3090146A 1991-04-22 1991-04-22 Distribution/collection processor for array data Pending JPH04321158A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3090146A JPH04321158A (en) 1991-04-22 1991-04-22 Distribution/collection processor for array data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3090146A JPH04321158A (en) 1991-04-22 1991-04-22 Distribution/collection processor for array data

Publications (1)

Publication Number Publication Date
JPH04321158A true JPH04321158A (en) 1992-11-11

Family

ID=13990363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3090146A Pending JPH04321158A (en) 1991-04-22 1991-04-22 Distribution/collection processor for array data

Country Status (1)

Country Link
JP (1) JPH04321158A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262946A (en) * 1985-05-17 1986-11-20 Fujitsu Ltd Data transfer system for dispersed data base system
JPH01320551A (en) * 1988-06-13 1989-12-26 Internatl Business Mach Corp <Ibm> File transfer
JPH02176822A (en) * 1988-09-19 1990-07-10 Hitachi Ltd File system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262946A (en) * 1985-05-17 1986-11-20 Fujitsu Ltd Data transfer system for dispersed data base system
JPH01320551A (en) * 1988-06-13 1989-12-26 Internatl Business Mach Corp <Ibm> File transfer
JPH02176822A (en) * 1988-09-19 1990-07-10 Hitachi Ltd File system

Similar Documents

Publication Publication Date Title
US8589468B2 (en) Efficient matrix multiplication on a parallel processing device
US5103393A (en) Method of dynamically allocating processors in a massively parallel processing system
Kalns et al. Processor mapping techniques toward efficient data redistribution
EP0313788A2 (en) An aperiodic mapping method to enhance power-of-two stride access to interleaved devices
JPS62237547A (en) Address conversion system
JP2000187617A (en) Cache memory managing method for disk array system
CN100357913C (en) Data transfer device, transfer program and transfer method of multidimensional memory
CN111708894B (en) Knowledge graph creation method
Thakur et al. Compiler and runtime support for out-of-core HPF programs
US6128639A (en) Array address and loop alignment calculations
JPH0792790B2 (en) Vector parallel computer
US5900023A (en) Method and apparatus for removing power-of-two restrictions on distributed addressing
JPH04321158A (en) Distribution/collection processor for array data
JP2002163247A (en) Multi-dimensional fourier transform parallel processing method in shared memory scalar parallel computer
EP0313787A2 (en) A hardware mechanism for the dynamic customization of permutation using bit-matrix multiplication
JP4083660B2 (en) Storage system and control method thereof
JP4117621B2 (en) Data batch transfer device
Darte et al. Synthesizing systolic arrays: Some recent developments
JPH02148237A (en) Method of storing and operating block of data
RU2164037C2 (en) Address generation method
JPH0522238B2 (en)
JPH0324644A (en) Automatic expansion system for file in multivolume
JPH0926941A (en) Data processor
JPH04127339A (en) Cache memory system
Dekker Methodology based parallel digital processors

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19971021