JPH08305678A - 並列ソート方式 - Google Patents

並列ソート方式

Info

Publication number
JPH08305678A
JPH08305678A JP7105211A JP10521195A JPH08305678A JP H08305678 A JPH08305678 A JP H08305678A JP 7105211 A JP7105211 A JP 7105211A JP 10521195 A JP10521195 A JP 10521195A JP H08305678 A JPH08305678 A JP H08305678A
Authority
JP
Japan
Prior art keywords
sort
elements
processing
sorting
parallel
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
JP7105211A
Other languages
English (en)
Other versions
JP3525960B2 (ja
Inventor
Kazutaka Ogiwara
一隆 荻原
Riichiro Take
理一郎 武
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 JP10521195A priority Critical patent/JP3525960B2/ja
Publication of JPH08305678A publication Critical patent/JPH08305678A/ja
Application granted granted Critical
Publication of JP3525960B2 publication Critical patent/JP3525960B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 並列計算機システムにおけるソート処理に関
し、プロセッサエレメント間の通信量を減らし、また任
意の個数のエレメントによってソート処理を実行するこ
とを目的とする。 【構成】 ソート対象要素を格納する手段1と、すべて
のエレメントが保持する要素を行列の要素に対応させた
とき、エレメント間で行列の転置に相当する要素の交換
を行う手段2と、エレメント内に保持されている要素の
併合ソート処理を行う手段3と、手段2と手段3の動作
を制御する手段4とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサエレ
メント(処理装置)が汎用のネットワークによって結合
された並列計算機システムにおけるソート処理、例えば
複数のソート対象要素を一定の順序に従って並べるソー
ト処理方式に関し、更に詳しくはプロセッサエレメント
の間での通信量を減少させ、また任意の個数のプロセッ
サエレメントを用いて実行することができる並列ソート
方式に関する。
【0002】
【従来の技術】並列ソート処理においては、並列計算機
システムを構成する各プロセッサエレメントはネットワ
ークを介して2つのソート対象要素の入力を受け取り、
それを主記憶に格納した後、格納した2つの要素の比較
を行い、要素の大小に従って得られたソート結果を他の
プロセッサエレメントに送り出す。2つの入力要素の主
記憶への格納、その比較を繰り返すことにより、全ての
プロセッサエレメントの主記憶装置に格納された要素間
に大小関係をつけることにより、ソート処理が実行され
る。
【0003】従来のソート方式を例を挙げて説明する。
図22は、処理装置4台の場合の従来のソート方法の説
明図である。4台の処理装置(処理装置0〜処理装置
3)が、それぞれ、データ(2,6,10)、(1,
7,8)、(4,5,11)、(0,3,9)をもつ、
これらの数値についてソート処理を行う。例えばデータ
(2,6,10)は1つのベクタを表すものと考えるこ
ともできる。
【0004】処理装置と処理装置を結ぶ矢印付きの線
は、交換・併合を行う処理装置の組みと(線で結ばれた
2処理装置)、併合後のデータを前半部、後半部に分割
したのち、どちらを格納するかを示す(矢印の向きは大
きな方、すなわち、後半部を格納する処理装置を示
す)。
【0005】まず、処理装置0および処理装置1間でデ
ータの交換および併合分割処理を行い、処理装置0に前
半部を、処理装置1に後半部を格納する。まず、交換併
合により、処理装置0および処理装置1に両データが併
合され、データ(1,2,6,7,8,10)が生成さ
れる。この後、分割処理により、前半部のデータ(1,
2,6)が処理装置0に、後半部のデータ(7,8,1
0)が処理装置1に格納される。
【0006】一方、処理装置0および処理装置1による
交換併合分割処理に並行して、処理装置2と処理装置3
の間でも同様の交換併合分割処理を実行する。すなわ
ち、処理装置2のデータ(4,5,11)と処理装置3
のデータ(0,3,9)が交換併合され、データ(0,
3,4,5,9,11)が生成された後、処理装置3に
前半部(0,3,4)が、処理装置2に後半部(5,
9,11)が格納される。
【0007】以上の処理により、第1段階の交換併合分
割処理が終了する(ステージ0)。次に、別の組みの処
理装置間で同様に交換併合分割処理を実行する。すなわ
ち、処理装置0と処理装置2、処理装置1と処理装置3
を組みとして処理を行う。処理装置0と処理装置2間で
は、交換併合によりデータ(1,2,5,6,9,1
1)が生成され、前半部(1,2,5)が処理装置0
に、後半部(6,9,11)が処理装置2に格納され
る。一方、処理装置1と処理装置3間では、交換併合に
よりデータ(0,3,4,7,8,10)が生成され、
前半部(0,3,4)が処理装置1に、後半部(7,
8,10)が処理装置3に格納される。
【0008】さらに、処理装置0と処理装置1間、処理
装置2と処理装置3間で同様の交換併合分割処理を実行
すると、処理装置0には(0,1,2)、処理装置1に
は(3,4,5)、処理装置2には(6,7,8)、処
理装置3には(9,10,11)が格納され、ソート処
理が完了する。
【0009】次に、このソート方式を一般化して式とし
て表す。まず、処理装置の数をN=2n とし、各処理装
置PをP0 ,P1 ,・・・、PN-1 とする。ソートの対
象となるデータVは、各処理装置にN分割して持たせ
る。処理装置Pi のもつデータをVi とする。
【0010】まず、処理装置Pi が、保有するデータV
i を独自にソートする。次に、以下に示す通りに処理装
置間でネットワークを用いてベクタの交換併合分割処理
を繰り返す。交換併合分割処理はlog2N回、すなわちn
回のステージで行い、各ステージをS0 ,S1 ,・・
・,Sn-1 とする。各ステージSj はj+1回のサブステ
ージをもつ。各ステージをsj0,sj1,・・・,sjj
する。
【0011】1つのサブステージで1回の交換併合分割
処理を行う。サブステージsjKにおいて、処理装置Pi
は、A(i,j,k)で表せる処理装置とベクタを交換し、持
っていたベクタVi と受信したベクタを併合し、前半部
と後半部に分割する。分割後に、関数B(i,j,k)=0で
あれば併合結果の前半部を残して後半部を捨て、関数B
(i,j,k)=1であれば併合結果の後半部を残して前半部
を捨てる。
【0012】A,Bの関数は、
【0013】
【数1】
【0014】である。ここで、ij は、iの2進数表現
(bn-1 ,bn-2 ,・・・,bj ,・・・,b1
0 )でのbj の値(0または1)を示す。以上の方法
により、Sn-1 ステージのsjjサブステージを終了した
段階で、ソートされたベクタを得ることができる。
【0015】図22の4台の処理装置の場合、N=22
=4であり、2ステージでソート処理が完了する。ここ
で前述の(1) 、および(2) 式の意味について更に説明す
る。例えばプロセッサエレメントの数が4個の時、ステ
ージとしてはS0 、およびS1 の2つのステージがあ
り、サブステージはS00、およびS10,S11となる。
(1) 式におけるA(i,j,k)は、前述のように、エレメン
ト番号iのエレメントがサブステージS jKにおいて保持
しているデータ、例えばベクタを交換する相手のプロセ
ッサ番号を与えるものであり、サブステージS00におけ
る番号0のエレメントがベクタを交換する相手のエレメ
ント番号は1となり、また番号3のエレメントのベクタ
の交換相手は番号2のエレメントとなる。例えばエレメ
ント番号3は2進数に直すものとし、3と1のEXOR
としては2進数としての11と01とのビット毎のEX
ORを計算することにより10、すななわち10進数と
しての2が得られる。
【0016】(2) 式で与えられるB(i,j,k)は、前述の
ように、番号iのエレメントがサブステージSjKにおい
て併合処理結果の前半部を捨てるか、後半部を捨てるか
を表すもので、Bの値が1である時には、併合結果の前
半部を切り捨て、0である時には後半部を切り捨てるこ
とを意味する。図23はエレメントの数が4個の場合の
各サブステージにおけるAとBの値を、それぞれのプロ
セッサエレメントに対して表したものである。各プロセ
ッサエレメントに対して左則の数値がAの値を、また右
側の数値はBの値を表す。
【0017】
【発明が解決しようとする課題】従来の方式では、処理
装置数N=2n とするとき、ステージ数はnであり、各
ステージのサブステージ数は1,2,・・・,nであ
る。1回のサブステージに1回の通信処理が必要であ
り、ソート処理全体を通じては1+2+・・・+n回、
すなわち、n(n+1)/2回の通信処理が必要であ
る。これをNで表すと、log2N(log2N+1)/2回と
なる。通信量としては、これにソートするベクタの要素
数を掛けた量になる。
【0018】この通信回数Mは、N=4ではM=3、N
=8ではM=6であるが、処理装置数が増えると非常に
大きくなる。すなわち、N=256=28 ではM=3
6、N=1024=210ではM=55と多くなる。この
ソート処理のなかで、通信処理にかかる手間が非常に大
きくなるのが従来方式の問題である。
【0019】また、汎用の結合網で行われる従来のソー
ト方式は、処理装置が持つソートされたベクタ全体を交
換した上、併合する処理を行うので、同じ併合処理が2
つの処理装置で重複して行われ、無駄な処理を要すると
ともに、併合後に持つべきデータ量の2倍のデータ量を
入力とする処理を行うために時間がかかるという問題も
ある。
【0020】更に従来方式では、処理装置の間でベクタ
を交換して処理を行うために、処理装置の必要台数が2
のべき乗個に限られると言う問題点もあった。本発明
は、通信量を減少させることと、併合時の入力データを
減らすことにより、並列ソートにかかる時間を短くする
ことを目的とする。また、並列ソートに必要とされる処
理装置の台数を2のべき乗個に限定することなく、任意
の自然数の処理装置を用いて並列ソート処理を実行可能
とすることを目的とする。
【0021】
【課題を解決するための手段】図1は第1の発明の原理
ブロック図である。同図は、ネットワークによって相互
に結合された複数の処理装置(プロセッサエレメント)
の間でソート要素を交換して、要素のソートを行う並列
ソート方式の原理ブロック図である。同図において、本
発明の並列方式におけるそれぞれの処理装置はソート要
素格納手段1、転置手段2、併合ソート手段3、および
制御手段4によって構成される。
【0022】ソート要素格納手段1は、例えばプロセッ
サエレメントの主記憶装置であり、ソート対象の要素を
格納するものである。転置手段2は、全ての処理装置の
ソート要素格納手段1に格納されている要素を行列の要
素に対応させた時、その行列の主対角線に対してお互い
に対称の位置にある要素を、それらの要素を保持する処
理装置間で交換して、結果として転置行列の要素を全て
の処理装置のソート要素格納手段1に格納するようにす
るものであり、例えばスイッチボックスとネットワーク
インタフェースによって構成される。
【0023】併合ソート手段3は例えば併合装置であ
り、ソート要素格納手段1に格納されている要素の全て
を併合してソートする全要素併合ソート処理と、格納さ
れている要素を分割し、分割後の要素をそれぞれ併合し
てソートする部分的併合ソート処理を行うものである。
更に制御手段4は例えば制御装置であり、転置手段2に
よる他の処理装置との間でのソート要素の交換処理、お
よび併合手段3による併合ソート処理を制御するもので
ある。
【0024】本発明においては、例えばソート要素格納
手段1にそれ自体がすでにソートされているソート列が
格納されている時、転置手段2による第一次転置処理、
併合ソート手段3による部分的併合ソート処理、転置手
段2による第2の転置処理、併合ソート手段3による全
要素併合ソート処理の4つの処理が順次実行される処理
が繰り返され、ソート対象要素の並列ソートが行われ
る。なお、一般にはソート要素格納手段1に最初に格納
されているデータがソート済みのことは少ないので、そ
の場合には内部ソート手段5によって最初に内部ソート
が実行される。
【0025】
【作用】図2は第2の発明の機能ブロック図である。同
図は、ネットワークによって相互に結合された複数の処
理装置の間でソート要素を交換して、要素のソートを行
う並列ソート方法の機能ブロック図である。同図におい
ては、前述のように第一次転置処理6、部分的併合ソー
ト処理7、第二次転置処理8、および全要素併合ソート
処理9がこの順序で繰り返される。
【0026】まず前述のように、並列計算機システムを
構成する全ての処理装置が保持している要素を行列の要
素に対応させた時、その行列の主対角線に対してお互い
に対称の位置にある要素を、それらの要素を保持する処
理装置の間で交換し、結果として転置行列の要素を各処
理装置が保持するようにする第一次転置処理6が行われ
る。
【0027】次に、この第一次転置処理6の結果として
各処理装置内に保持された要素を対象とする処理であっ
て、第k回の処理では保持された要素を2k個毎に分割
し、分割された要素を2k個毎に大→小、小→大、大→
小、・・・または小→大、大→小、小→大、・・・と順
次ソートする部分的併合ソート処理7が行われる。
【0028】そして、この部分的併合ソート処理7の結
果に基づいて、前述の第一次転置処理6と同一の処理と
しての第二次転置処理8が行われ、続いてその第二次転
置処理8の結果に基づいて各処理装置内に保持された要
素を対象として、自処理装置内に保持されている要素の
全てを併合してソートする全要素併合ソート処理9が行
われる。この全要素併合ソート処理9においては、前述
の部分的併合ソート処理のk回のkの値に応じて、一部
の処理装置では大→小、その他の処理装置では小→大の
ソート処理が行われる。
【0029】この第一次転置処理6から全要素併合ソー
ト処理9までの処理が、部分的併合ソート処理7におけ
る分割時の要素の数としての2k個が各処理装置内に保
持されている要素の全てを含むようになるまで繰り返さ
れ、並列ソート処理が行われる。
【0030】以上のように、本発明においては処理装置
間でのソート要素の交換を、結果として行列の転置を行
うために必要なだけに止めることにより、処理装置間で
の通信量を減少させることができる。また併合ソート処
理においては、処理結果のソート列を構成する要素の数
と同じだけの要素数の入力によって処理が行われる。更
に行列の転置処理に相当する通信を行うに必要な数だけ
の処理装置があればよく、その個数は2のべき乗個に限
定されることはない。
【0031】
【実施例】図3は本発明の並列ソート方式を実行する並
列計算機システムの第1実施例のシステム構成ブロック
図である。同図において、それぞれ主記憶装置と、後述
する内部ソート処理を行うソート装置、および併合ソー
ト処理を行う併合装置とを備えたN台の処理装置P0
N-1 ,10-0〜10-N-1がネットワーク11を介して
相互に接続されている。ここで本発明においては、従来
例におけるシステムが2台の処理装置(エレメント)の
間でソート要素の交換を行うために処理装置の台数が2
のべき乗個でなくてはならなかったのに対して、そのよ
うな制限はなく、任意の数の処理装置を用いることがで
きる。
【0032】ソートすべき全ての要素群VはN2 個の要
素群、すなわちベクタに分割され、任意のエレメントP
i はN個のベクタを保持する。Pi が保持するN個のベ
クタを Ei0,Ei1,Ei2,・・・,EiN-1 とし、Vを構成するベクタ全体を行列に対応させること
にする。図4はエレメントの数が8である場合のベクタ
の配置図である。P0 〜P7 の8個のエレメントに対し
て、それぞれ8個のベクタが割り当てられている。ここ
で、それぞれのベクタは複数個の要素の集合とみなすこ
とができるが、ベクタの代わりに要素1個だけと考えて
もよいことは当然である。
【0033】図5は本発明の並列ソート方式を実行する
並列計算機システムにおける1つの処理装置(エレメン
ト)の詳細構成ブロック図である。同図において、1つ
のプロセッサエレメントはN個のベクタ(または単一の
要素)をそれぞれ格納するN個のブロックからなる主記
憶装置15、後述する内部ソート処理を行うソート装置
16、併合ソート処理を行う併合装置17、他のエレメ
ントとの間でソート要素の交換としての通信を行うため
のネットワークインタフェース18、主記憶装置15と
ソート装置16、併合装置17、およびネットワークイ
ンタフェース18の間でソート要素の入出力を行うため
のスイッチボックス19、ソート装置16、併合装置1
7、ネットワークインタフェース18、およびスイッチ
ボックス19の動作を制御する制御装置20から構成さ
れている。
【0034】図6は図5におけるソート装置16によっ
て実行される内部ソート処理のフローチャートである。
ここで内部ソートとは内部メモリ、例えば主記憶装置上
にあるデータだけを対象としてソート対象要素のソート
を行うものであり、外部メモリ、例えば二次記憶装置上
にあるデータを対象としてソートを行うものを外部ソー
トと言う。そこで内部ソートではソート対象データの全
てを、あるメモリ上にのせて、その状態でソートが行わ
れる。
【0035】図6において、ステップS1で図5のソー
ト装置16は制御装置20に対して、ソート対象全ての
データを、例えば主記憶装置15から受け取ることを要
求し、ステップS2で受け取った要素を例えば大きい
順、または小さい順にソートし、ステップS3でそのソ
ート結果を制御側、例えば制御装置20の制御のもとに
主記憶装置15に渡すことになる。
【0036】次に併合ソート処理を説明する。ここで併
合ソートとは、複数のすでにソートされた要素の列とし
てのソート列をまとめて1本のソート列を作成する処理
である。この併合ソートは内部ソート、および外部ソー
トのいずれにおいても実行することができる。すなわち
ソート対象要素が内部メモリ上だけの場合であっても、
二次記憶装置上にある場合であっても、同様にしてソー
ト処理を実行することができる。
【0037】併合ソート処理について、具体例を用いて
説明する。次の2つのソート列A,Bの併合ソート処理
を行うものとする。 (1,10,26,35,41,50,68,72,89,90)・・・A (3,13,23,32,48,54,62,76,88,95)・・・B 小さいものから要素をソートする場合には、併合ソート
処理では先ずそれぞれのソート列の先頭要素を比較して
小さい方の要素を取り出し、取り出された方のソート列
においては次の要素を先頭にし、再度要素の比較を行う
処理を繰り返し、全てのソート列が取り出されるまで処
理が行われる。
【0038】図7はソート列A,Bの併合ソート処理の
説明図である。まず先頭の要素1と3が比較され、小さ
い方の要素1が取り出され、ソート列Aでは次の10が
先頭の要素とされる。
【0039】次に10と3が比較され、小さい方の要素
3が取り出され、ソート列Bにおいては次の要素13が
先頭の要素とされる。図7には最終結果まで示していな
いが、このような比較と取出し、先頭要素の変更が繰り
返され、最終結果として、次のソート列が得られる。
【0040】(1,3,10,13,23,26,3
2,35,41,48,50,54,62,68,7
2,76,88,89,90,95) この場合の比較回数は19回である。この比較回数は内
部ソートであっても、外部ソートであっても同じであ
る。前述の2本のソート列がメモリ上にあると仮定し
て、内部ソートの代表の1つとしてのクイックソートに
おける処理を併合ソート処理と比較する。クイックソー
ト処理においては、何らかの方法で基準値を決め、この
基準値をソート対象となる全要素と比較し、その基準よ
り大きいものと小さいものに分割し、基準値の決定と分
割を繰り返して、ソート列を順次小さな集合と大きな集
合に分解し、最後にソート結果を得るという処理が行わ
れる。ここでメモリ上に、前述のように次のようなソー
ト対象要素が存在するものとする。
【0041】(1,10,26,35,41,50,6
8,72,89,90,3,13,23,32,48,
54,62,76,88,95) 基準値として50を選んで分割処理を行うと、次のよう
な分割結果が得られる。
【0042】(1,10,26,35,41,3,1
3,23,32,48,50,68,72,89,9
0,54,62,76,88,95) 続いて、50の右側と左側に対して再度クイックソート
を行うことになるが、50を基準値とする分解において
要素の比較はすでに19回行われている。このためクイ
ックソートにおける比較回数は併合ソートに比べてかな
り多くなる。また、2本のソート列の要素がメモリ上に
全て乗り切らない場合には、クイックソートを使用した
ソートを行うことはできない。
【0043】一般的に、並列計算機システムの各エレメ
ントが持つ要素がすでにソートされているということは
ないので、最初のソートとして併合ソートを行うことは
できないが、2回目以降のソートではある程度ソートさ
れたものがソート対象となるため、併合ソートを用いる
ことにより他のソート方式を用いる場合に比べて、高速
にソート処理を行うことができる。
【0044】図8はこのような併合ソート処理の詳細フ
ローチャートである。同図において、ステップS5で制
御装置20に対して、例えば主記憶装置15からのソー
ト列Aの先頭要素の入力が要求され、またステップS6
でソート列Bの先頭要素の入力が要求される。そしてス
テップS7で、ソート列Aの要素がBの要素より小さい
か否かが判定され、小さい場合にはステップS8で制御
側にソート列Aの入力要素が渡され、ステップS9で制
御装置に対してソート列Aの次の要素の入力が要求され
る。
【0045】これに対して、ステップS7でソート列A
の要素がソート列Bの要素より小さくない時には、ステ
ップS10で制御側にソート列Bの要素が渡され、ステ
ップS11で制御装置に対してソート列Bの次の要素の
入力が要求される。
【0046】ステップS9、またはS11の処理の後
に、ステップS12においてソート列AおよびBの間で
比較すべきデータがあるか否かが判定され、未だある場
合にはステップS7以降の処理が繰り返される。そして
比較すべきデータがないと判定されると、ステップS1
3で残っている要素が制御側に渡されて処理を終了す
る。
【0047】図9は本発明の並列ソート方式によるソー
ト処理の具体例の説明図である。ここでは最終的に昇順
のソートを行うものとして処理を説明するが、説明文中
の昇順と降順とを入れ替えることによって、最終的に降
順のソートを行うこともできる。
【0048】図9において、初期状態では各プロセッサ
エレメントP0 〜P3 の内部、例えば主記憶装置に保持
されているソート要素は未だソートされていない状態で
あり、各エレメントの内部で内部ソート処理が行われ、
この時各エレメントPi においてiが偶数の時は昇順、
奇数の時は降順の内部ソートを行うものとする。内部ソ
ートの結果は図9の最上段右側に示すようになり、ここ
で矢印はソート結果の要素の大きいものから小さいもの
に向かうように付けられている。
【0049】この内部ソートの結果を行列に対応させ、
主対角線上の要素はそのままとして、主対角線に対して
対称な位置にある要素同志の交換が各プロセッサ間での
通信によって行われ、実質的に行列の転置処理が行われ
る。この転置の結果、図9の上から2段目の右側に示す
ように、4つのエレメントにまたがってソート列が並ぶ
ことになる。
【0050】次に、各エレメントの内部で部分的な併合
ソートが行われる。部分的な併合ソートは、全体のソー
ト処理の中で一般に複数回行われるが、k回目の部分的
な併合ソート処理においては2k個のベクタ、または要
素を対象として併合ソート処理が行われる。すなわち、
各エレメントの内部のベクタ、または要素が2k個毎に
分割され、昇順、降順、昇順・・・と、交互に併合ソー
ト処理が行われる。例えば、エレメントP0 においては
上の2つの要素は昇順、下の2つの要素は降順にソート
される。ここで各エレメントは4個のベクタではなく、
4個の単一要素をそれぞれ保持するため、併合ソートと
言ってもその用語は必ずしも適切ではないが、一般的に
ベクタである場合には、図14に示すように併合ソート
処理が行われる。
【0051】この部分的併合ソート処理が終了すると、
プロセッサエレメント間で行列の転置に相当するソート
要素の交換が再び行われる。その結果、図9、3段目の
左側に示すように、エレメントP0 とP1 にまたがって
昇順のソート列、P2 とP3とにまたがって降順のソー
ト列が、それぞれ4つづつ格納されることになる。
【0052】この転置処理の後に、各エレメントにおい
てエレメント内の要素全てをソートする全要素併合ソー
ト処理が行われる。この全要素併合ソート処理がk回目
である時には、プロセッサ番号iを2のk乗で割り、小
数点以下を切り捨てた値が偶数であれば昇順に、奇数な
らば降順に併合ソートが行われる。ここではk=1であ
り、エレメントP0 およびP1 では昇順に、P2 および
3 では降順に併合ソートが行われる。
【0053】このような第一次転置、部分的併合ソー
ト、第二次転置、および全要素併合ソートの連続する処
理を1回として、部分的併合ソートにおける分割が不可
能になり、エレメント内の全ての要素を対象とする部分
的併合ソートが行われるまで繰り返される。
【0054】すなわち図9において、4段目の右側に示
すように2回目の第一次転置処理が行われ、その結果に
基づいて4段目の左側で部分的併合ソート処理が行われ
る。この部分的併合ソート処理においてはk=2であ
り、2k個、すなわち4個の要素を1組として部分的併
合ソートが行われるため、この部分的併合ソートに含ま
れる要素はエレメント内の全ての要素となる。そして、
この併合ソートにおいては、各エレメントにおいて昇順
に併合ソートが行われる。
【0055】更に図9の第5段目に示すように、2回目
の第二次転置処理が行われ、その転置処理の結果に基づ
いて、各エレメント内の全要素併合ソート処理が行わ
れ、最終的に並列ソート処理が終了する。
【0056】図10はエレメント数が3個の場合の並列
ソート処理の具体例の説明図である。この場合には、プ
ロセッサ数の3個に対応して行列の転置に対応する交換
処理を行うために、各エレメントが保持するソート要素
の数はそれぞれ3個となる。処理の流れは図9における
と同様であるが、例えば2段目の左側で行われる1回目
の部分的併合ソート処理において、各エレメント内の3
番目の要素はソートすべき相手が存在しないことにな
り、第一次転置処理の結果をそのままコピーすることに
なる。いずれにしても、本実施例においては、プロセッ
サエレメントの数が2のべき乗に限定されないことにな
る。
【0057】図9および図10で示した具体例に対応し
て、並列処理方式の実施例における一般的な手順を以下
に説明する。以下の説明で、(1) の手順は図9、および
図10における最初の処理としての内部ソート処理、
(2) は第一次転置処理、(3) は部分的併合ソート処理、
(4) は第二次転置処理、(5) はプロセッサエレメント内
の全要素併合ソート処理に相当する。従って(1) の処理
が行われた後に、(2) 〜(5) の処理が複数回実行され
る。
【0058】本発明では、以下の手順でソートが行われ
る。ここで説明するソートは昇順のソートであるが、説
明文中の昇順と降順を入れ換えることにより、降順のソ
ートを行うこともできる。説明文中でceil( ) は小数点
以下切り上げ、trucn( )は小数点以下切り捨てを意味す
る。 (1) 各エレメントPi は、保持する要素を内部でソート
する。ただしiが偶数の時は昇順、奇数の時は降順にソ
ートする。以下、(2) 〜(5) の操作をn=ceil(log
2 N)回のステージ(S1 ,S2 ,・・・,Sn )を繰
り返す。 (2) エレメント間で要素の転置を行う。転置では全対全
通信を用いる。Pi が持つベクタを転置前をVi =(E
i0, i1, ・・・, EiN-1)、転置後をV′i =(E′
i0, E′i1, ・・・, E′iN-1)とすると、E′i0=E
0i,E′i1=E1i,・・・,E′iN-1=EN-1iとする。 (3) 処理装置内部で処理を行う。この時のステージをS
k とし、Pi が保持しているベクタをV′i
(E′i0,E′i1,・・・,E′iN-1)とすると、k*
2個ごとにV′i を分割し、昇順、降順、昇順・・・と
交互に併合ソートを行う。分割という言葉を用いたが、
従来の方式のようにサブステージに分ける必要はなく、
連続して併合処理が行われる。併合ソートを行った後に
結果の一部を捨てるということは必要ない。
【0059】k=1ならば、V′i =((E′i0,E′
i1),(E′i2,E′i3),・・・)と分割し、E′i0
とE′i1を昇順に併合ソート、E′i2とE′i3は降順に
併合ソート、・・・を行う。k=2ならば、V′i
((E′i0,E′i1,E′i2,E′i3),・・・)と分割
し、併合ソートを行う。このときjを4の整数倍にする
と、E′ijとE′ij+1は昇順に既にソートされている状
態であり、E′ij+3とE′ij+2は降順にすでにソートさ
れた状態である。このように併合ソートを行う時にソー
ト対象となる要素の前半部は昇順であり、後半部は降順
となる。よって併合ソートを行う際の入力順序は決定さ
れている。Nが2のべき乗数でない時は、ベクタV′i
の分割時に端数が生じてしまうが、端数の部分では併合
時のデータの入力が少なくなるだけであり、特殊な処理
は必要ない。
【0060】また、ステージSn (最終ステージ)の時
に昇順に併合ソートを行うとP0 に最も小さい要素が集
まり、PN-1 に最も大きい要素が集まる。反対に降順に
併合ソートを行うとPN-1 に最も小さい要素が集まり、
0 に最も大きい要素が集まる。 (4) エレメント間で要素の転置を行う。 (5) Pi が持つ全要素ベクタを対象とする併合ソートを
行う。(4) の転置が行われた後、各エレメントが持って
いる要素はバイトニック列となる。そのため容易に併合
ソートを行える。ステージがSk のとき、trunc (i/
2k ) が偶数なら昇順に、奇数なら降順に併合ソートす
る。併合ソートを行った後に結果の一部を捨てるという
ことは必要ない。
【0061】図11はこの一般的手順をフローチャート
化したものである。同図において処理が開始されると、
まずステップS20で前述の(1) の処理に相当する内部
ソート処理が行われ、ステップS21で前述の回数、ま
たはステージを表す変数kの値が1とされ、その後前述
の(2) 〜(5) の処理が、ステップS22からS27にお
いて繰り返される。
【0062】まずステップS22で、プロセッサエレメ
ント間で第一次の転置処理に相当するソート要素の交換
が行われ、ステップS23でk回目、すなわちkステー
ジにおける2k個毎のソート要素の部分的併合ソート処
理が行われる。このステップS23は前述の(3) の処理
に相当する。
【0063】その後ステップS24で、エレメント間で
第二次の転置処理(4) に相当するソート要素の交換が行
われ、ステップS25でk回目、すなわちステージkに
おけるエレメント内での全要素併合ソート処理が行われ
る。この処理は前述の(5) の処理に相当する。その後ス
テップS26でkの値がインクリメントされ、ステップ
S27でkの値が繰り返すべき回数、すなわちlog2Nよ
り小さいか否かが判定され、小さい場合にはステップS
22以降の処理が繰り返され、小さくないと判定された
時点で処理を終了する。
【0064】図12は図11のステップS23、すなわ
ち部分的併合ソート処理におけるソート要素の入力順序
の説明図である。前述の一般的な手順(3) において併合
ソートを行う場合、ソート対象となる要素の前半部は昇
順であり、後半部は降順であるために、併合ソートを行
う際の入力順序は決定されていることを述べたが、図1
2でこの入力順序について更に説明する。
【0065】前述のように、この部分的併合ソート処理
では、ソート対象のソート列はエレメント内で昇順、降
順、昇順、降順、・・・と交互に並んでおり、部分的併
合ソート処理では最初の昇順と降順の組を昇順にソート
し、次の昇順と降順の組を降順にソートし、・・・と言
う処理を行う。併合ソート処理では、ソートされた列を
対象とするソートが行われるため、入力されるデータの
順序は決定されている。
【0066】例えば図12に示すようにA+BおよびC
+Dという2つのソート列を昇順に併合ソートする場合
に、最初に入力されるソート列はAとDであり、Aのソ
ート列の全ての要素に対する処理が終了した時点でBの
要素の処理に移り、またDの全ての要素の処理が終わっ
た後にCの要素の処理に移ると言うように、処理の順序
はA→B,D→Cであって、この順序を変えることはで
きない。下半分も同様であり、処理の順序はE→F,H
→Gの順序となる。
【0067】図13はプロセッサエレメントの第2の実
施例の構成ブロック図である。同図を図5の第1の実施
例と比較すると、主記憶装置の各ブロックN0 〜NN-1
が、それぞれ単一のソート要素でなく、複数のソート要
素としての集合であるベクタを格納する点のみが異なっ
ている。
【0068】図14は、図13の第2の実施例によって
実行される並列ソート処理の具体例の説明図である。プ
ロセッサエレメント内の主記憶装置の各ブロックが2個
づつのソート要素を格納している点を除けば、実行され
る処理は例えば図9におけると同様であるが、相違する
点を中心に処理を説明する。
【0069】まず、初期状態において、ここでは各エレ
メント内のベクタは昇順にソートされているために、こ
の初期状態に対して実行される内部ソートにおいては、
プロセッサ番号iが奇数のエレメントだけベクタの並び
を逆順にする、内部ソートと言うよりもむしろ単なる置
き換えの処理が実行される。
【0070】また、例えば第一次転置後に、図14の2
段目の右側から左側に対して行われる部分的併合ソート
処理では、例えばエレメントP1 内で上の2つのベクタ
に対しては昇順の併合ソート処理が行われるが、その結
果上から並んでいた(11,16),(14,22)の
ベクタは(11,14),(16,22)のように変化
する。更に例えば、上から3段目の第二次転置処理の結
果に対する全要素併合ソート処理において、例えばエレ
メントP0 の内部では最も小さい要素を持つベクタ
(1,2)は一番上、最も大きい要素を持つベクタ(1
1,14)は一番下に格納されている。
【0071】図15はプロセッサエレメントの第3の実
施例の構成ブロック図である。同図は、図13における
と同様に主記憶装置の各ブロックが複数のソート対象要
素の集合としてのベクタをそれぞれ格納する点で、第2
の実施例と類似しているが、それに加えて二次記憶媒体
25に格納されているソート対象要素を、プロセッサエ
レメント内部の二次記憶制御装置26を用いて読み書き
し、二次記憶媒体25上に格納されているソート対象要
素のソートを行うものである。
【0072】図15の第3の実施例は後述する図16、
および図17で説明するように、ソート対象の要素が大
量であり、エレメント内の主記憶装置にそれらの要素全
て格納できない場合の処理を行うものであり、本実施例
では併合ソートを用いることにより、このような場合の
並列ソートが可能となる。併合ソートでは主記憶装置に
ソート対象要素が全て格納できない場合にも、ソートが
可能であることを図14の具体例に対しても説明するこ
とができる。
【0073】前述の図14の説明では、初期状態におい
て全てのソート対象要素が各プロセッサエレメントP0
〜P3 に格納されることを暗黙の前提として処理を説明
したが、例えば図13における主記憶装置のブロックが
0 とM1 の2つしかない場合にも、図14の処理を実
行することができる。
【0074】例えば、初期状態に対する内部ソートの処
理においては、例えばプロセッサエレメントP1 におい
て主記憶装置の2つのブロックに(1,4)と(23,
26)を二次記憶媒体から読み込み、二次記憶上での位
置を交換して書き戻し、その次に(9,10)と(1
4,22)とを2つのブロックに読み込んで、二次記憶
上での位置を交換して書き戻しを行うことにより、図1
4の1段目の右側のエレメントP1 に対するソート結果
が二次記憶上に格納される。
【0075】また転置処理においては、二次記憶媒体か
ら主記憶装置の1ブロック分のデータを読み込んで他の
プロセッサに送信し、また他のプロセッサから1ブロッ
ク分のデータを受け取って、二次記憶媒体上に格納す
る。
【0076】更に併合ソートでは、前述のようにデータ
を読み込む順序は決まっているため、その順序に従って
データを二次記憶媒体から読み込み、ソート結果を出力
する。図14の4段目、右から左へのエレメントP0
おける部分的併合ソート(実際には全体の併合ソート)
では、二次記憶上のデータ(1,2)と(15,17)
をまず主記憶装置の2つのブロックに読み込み、併合ソ
ート処理を行い、(1,2)のソート列に対する処理を
終わった場合には、(16,21)のソート列の処理を
行い、また(15,17)のソート列に対する処理を終
わったら、(29,32)のソート列を読み込んで処理
を実行する。
【0077】図16、および図17は、図15の第3の
実施例を用いた並列ソート処理の具体例の説明図であ
る。図16は各プロセッサエレメントに割り当てられる
べきデータであり、図15の二次記憶媒体25に格納さ
れているデータを順次読み込むことによって処理が行わ
れる。ここでは、各プロセッサエレメントの主記憶装置
上に格納可能なソート対象要素が4個だけであるものと
して、処理を説明する。
【0078】まず図16では、各プロセッサエレメント
に最初の4個のソート対象要素を読み込んで、それらの
要素の並列ソート処理を図9と全く同様に実行する。こ
こで最初の4つの要素に対しては、エレメントP0 から
3 にまたがって昇順でソートが行われ、図9の最終結
果に示したようなソート結果が、各エレメント内で最初
の4つの要素に対して得られる。次の4つの要素に対し
ては、逆に降順でエレメントP0 からP3 にまたがるソ
ート結果が得られる。同様にして3番目の4つの要素に
対しては昇順、最後の4つの要素に対しては降順のソー
ト処理が行われ、各プロセッサエレメントに対応して二
次記憶媒体上に格納されるデータは図16の下側に示す
ようになる。
【0079】図17は、図16の処理によって得られた
結果に対して、各エレメントの主記憶装置の各ブロック
が格納するデータをベクタとして、図14と同様の処理
を行った結果を示している。但し、ここでは図14の最
初の内部ソートおよび第一次転置は不要であり、図14
では2段目右側に相当する状態からソート処理が行われ
る。なおここでは、各プロセッサエレメントの主記憶装
置の大きさは2つのブロック分だけでもよく、また4つ
のブロック分あってもよい。但し、1つのブロックに
は、4個のソート対象要素の集合としてのベクタが格納
可能であるものとする。
【0080】図18はプロセッサエレメントの第4の実
施例の構成ブロック図である。同図において、プロセッ
サエレメントは汎用の疎結合型並列計算機の1つのエレ
メントであり、基本的に中央処理装置(CPU)30、
主記憶装置31、およびネットワークインタフェース3
2によって構成される。主記憶装置31には、一般的に
ブロック化されたN個のベクタとCPU30のためのプ
ログラムが格納され、このプログラムによってCPU3
0はネットワークインタフェース32を制御し、他のエ
レメントと交換すべきベクタの通信を行う。ネットワー
クは、ネットワーク固有の制御手段により、エレメント
相互間でベクタの交換による行列の転置に対応する処理
ができるように設定され、CPU30はネットワークイ
ンタフェース32を介してネットワークから入力された
データを主記憶装置31に格納し、内部処理を実行す
る。
【0081】図19は本発明の並列ソート方式を実行す
る並列計算機システムの第2の実施例の構成ブロック図
である。同図において、図3の第1の実施例におけると
同様に、複数のプロセッサエレメント(処理装置)10
がネットワーク11を介して相互に接続されているが、
このネットワーク11は多段結合ネットワークとしての
バイナリnキューブのネットワークである。このネット
ワークは全対全通信を行う機能を持つものであり、また
プロセッサエレメント10の内部は、例えば図18と同
様にN個のベクタとCPUのためのプログラムを格納す
る主記憶装置と、ネットワークインタフェースと、ネッ
トワークインタフェースを制御し、他のプロセッサエレ
メントとの間でデータを交換する処理などを実行するC
PUなどを備えている。
【0082】図20は並列計算機システムの第3の実施
例の構成ブロック図である。同図において、黒丸はそれ
ぞれ処理装置(プロセッサエレメント)を表し、各プロ
セッサエレメントは、例えば図18と同様の構成を持
つ。ネットワークは全対全通信を行う機能を有するハイ
パーキューブのネットワークであり、キューブの内部で
は稜線によって表されるように結合され、キューブの間
では曲線で表されている経路によって相互に接続されて
いる。
【0083】図21は並列計算機システムの第4の実施
例の構成ブロック図である。同図において、複数のプロ
セッサエレメント10(処理装置)は二次元トーラスネ
ットワークによって結合されている。このネットワーク
は他の実施例と同様に全対全通信を行う機能を持つ。1
つのプロセッサエレメントの構成は例えば図18と同様
であり、主記憶装置、CPU、およびネットワークイン
タフェースの動作も、図18におけると同様である。
【0084】最後に本発明のソート方式における通信
量、ソート時間などを従来例と比較する。1つのプロセ
ッサエレメント当たりのソート要素の数をD、エレメン
ト台数をNとすると、従来の方式では前述のように Dlog2N(log2N+1)/2 の通信量が必要であったが、本発明においては必要な通
信量が 2D×ceil(log2N) となる。従って今回の発明における通信量をその最大値
2Dlog2Nと見積もっても、通信量は従来と比較して4
/(log2N+1)となり、エレメントが16台の場合に
は4/5,64台の場合には4/7の通信量で済むこと
になる。
【0085】次にデータ量について比較すると、従来例
において併合ソートを用いるとしても、図22、図23
で説明したようにソート結果の前半部、または後半部を
捨てるために、本発明で併合しなければならないデータ
量をDとすると、従来例は2Dとなる。従って、前述の
通信量の比較結果を用いて処理全体で併合にかかる時間
の比を考えると、その比は2/(log2N+1)となり、
エレメントが16台の場合には2/5、64台の場合に
は2/7となる。
【0086】更に従来の方式では、エレメントの数とし
て2のべき乗の台数を用意する必要があったが、本発明
ではエレメントの数は任意のものでよく、エレメントの
台数として2のべき乗ではない数字を選ぶこともでき
る。また二次記憶装置上のデータを次々と読み込んで併
合ソート処理を行うことにより、更にエレメントの数に
柔軟性を持たせることもできる。
【0087】
【発明の効果】以上、詳細に説明したように、本発明に
よれば従来の方式では全て通信として行われていたソー
ト要素の交換・併合に相当する処理を転置に相当する処
理のみに限定することにより、必要な通信量を減少させ
ることができる。また、併合ソートの対象となるデータ
量を減少させることにより、並列ソート処理を高速に実
行することが可能となる。更にプロセッサエレメントの
数としては、2のべき乗個に限定することはなく、任意
の自然数のプロセッサエレメントを使用することがで
き、システムとしての柔軟性が向上し、並列ソート方式
の効率化に寄与するところが大きい。
【図面の簡単な説明】
【図1】第1の発明の原理構成を示すブロック図であ
る。
【図2】第2の発明の機能ブロック図である。
【図3】本発明の並列ソート方式を実行する計算機シス
テムの第1の実施例のシステム構成ブロック図である。
【図4】エレメントの数が8である場合のベクタの配置
図である。
【図5】1つの処理装置(エレメント)の第1の実施例
の詳細構成を示すブロック図である。
【図6】内部ソート処理のフローチャートである。
【図7】2つのソート列の併合ソート処理の説明図であ
る。
【図8】併合ソート処理の詳細フローチャートである。
【図9】本発明の並列ソート方式によるソート処理の具
体例の説明図である。
【図10】エレメント数が3個の場合の並列ソート処理
の具体例の説明図である。
【図11】本発明の並列ソート方法の詳細フローチャー
トである。
【図12】部分的併合ソート処理におけるソート要素の
入力順序の説明図である。
【図13】プロセッサエレメントの第2の実施例の構成
を示すブロック図である。
【図14】図13の実施例によって実行される並列ソー
ト処理の具体例の説明図である。
【図15】プロセッサエレメントの第3の実施例の構成
を示すブロック図である。
【図16】図15の第3の実施例を用いた並列ソート処
理の具体例の説明図(その1)である。
【図17】図15の第3の実施例を用いた並列ソート処
理の具体例の説明図(その2)である。
【図18】プロセッサエレメントの第4の実施例の構成
を示すブロック図である。
【図19】本発明の並列ソート方式を実行する並列計算
機システムの第2の実施例の構成を示すブロック図であ
る。
【図20】並列計算機システムの第3の実施例の構成を
示すブロック図である。
【図21】並列計算機システムの第4の実施例の構成を
示すブロック図である。
【図22】並列ソート方法の従来例の説明図である。
【図23】従来例における各プロセッサエレメントに対
するAとBの値を表す図である。
【符号の説明】
1 ソート要素格納手段 2 転置手段 3 併合ソート手段 4 制御手段 5 内部ソート手段 6 第一次転置処理 7 部分的併合ソート処理 8 第二次転置処理 9 全要素併合ソート処理 10 処理装置(プロセッサエレメント) 11 ネットワーク 15,31 主記憶装置 16 ソート装置 17 併合装置 18,32 ネットワークインタフェース 19 スイッチボックス 20 制御装置 25 二次記憶媒体 26 二次記憶制御装置 30 中央処理装置(CPU)

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークによって相互に結合された
    複数の処理装置の間でソート要素を交換して要素のソー
    トを行う並列ソート方式において、 前記各処理装置が、 ソート対象の要素を格納するソート要素格納手段と、 全ての処理装置のソート要素格納手段に格納されている
    全ての要素を行列の要素に対応させた時、該行列の主対
    角線に対してお互いに対称の位置にある要素を該当要素
    を保持する処理装置間で交換して、結果として転置行列
    の要素を各処理装置が格納するようにする転置手段と、 該ソート要素格納手段に格納されている要素の全てを併
    合してソートする全要素併合ソート処理と、該格納され
    ている要素を分割し、分割後の要素をそれぞれ部分的に
    併合してソートする部分的併合ソート処理とを行う併合
    ソート手段と、 該転置手段、および併合ソート手段の動作を制御する制
    御手段とを備えたことを特徴とする並列ソート方式。
  2. 【請求項2】 前記各処理装置が、前記ソート要素格納
    手段に格納されている要素のソートを行う内部ソート手
    段を更に備えたことを特徴とする請求項1記載の並列ソ
    ート方式。
  3. 【請求項3】 前記ソート要素格納手段が、複数のソー
    ト対象要素を1つの組とするベクタとして、該各ベクタ
    をそれぞれブロック化された領域に格納し、 該各ブロック領域に格納された要素を対象としてソート
    処理を行うことを特徴とする請求項1、または2記載の
    並列ソート方式。
  4. 【請求項4】 前記ソート要素格納手段が、前記データ
    処理装置の主記憶装置によって構成されることを特徴と
    する請求項1、または2記載の並列ソート方式。
  5. 【請求項5】 前記ネットワークが多段結合網によって
    構成されることを特徴とする請求項1、または2記載の
    並列ソート方式。
  6. 【請求項6】 前記ネットワークがハイパーキューブ状
    の構成であることを特徴とする請求項1、または2記載
    の並列ソート方式。
  7. 【請求項7】 前記ネットワークがトーラス状の構成で
    あることを特徴とする請求項1、または2記載の並列ソ
    ート方式。
  8. 【請求項8】 前記並列ソート方式において、 読出し/書込み可能な二次記憶装置に、前記各処理装置
    に割当て可能な形式でそれぞれ個別にソートされている
    要素をソート対象とすることを特徴とする請求項1、ま
    たは2記載の並列ソート方式。
  9. 【請求項9】 前記並列ソート方式において、 読出し/書込み可能な二次記憶装置にある要素をソート
    対象とすることを特徴とする請求項1、または2記載の
    並列ソート方式。
  10. 【請求項10】 ネットワークによって相互に結合され
    た複数の処理装置の間でソート要素を交換して要素のソ
    ートを行う並列ソート方法において、 該各処理装置において、全ての処理装置に保持されてい
    る全ての要素を行列の要素に対応させた時、該行列の主
    対角線に対してお互いに対称の位置にある要素を該当要
    素を保持する処理装置間で交換して、結果として転置行
    列の要素を各処理装置が格納するようにする第一次転置
    処理を行い、 該第一次転置処理の結果として各処理装置内に保持され
    た要素を対象とする処理であって、第k回の処理では該
    保持された要素を2k個毎に分割し、該分割された要素
    2k個毎に大→小、小→大、大→小、・・・または小→
    大、大→小、小→大、・・・と順次ソートする部分的併
    合ソート処理を行い、 該部分的併合ソート処理の結果に基づいて、前記第一次
    転置処理と同一の処理としての第二次転置処理を行い、 該第二次転置処理の結果として各処理装置内に保持され
    た要素を対象として、自処理装置内に保持されている要
    素の全てを併合してソートする全要素併合ソート処理を
    行い、 該全要素併合ソート処理の結果を用いて、前記第一次転
    置処理から全要素併合ソート処理までの処理を、前記部
    分的併合ソート処理における分割時の2k個が各処理装
    置内に保持されている要素の全てを含むようになるまで
    繰り返すことを特徴とする並列ソート方法。
  11. 【請求項11】 前記並列ソート方法において、 第1回目の前記第一次転置処理に先立って、各処理装置
    内で自処理装置が保持する要素の内部ソートを行うこと
    を特徴とする請求項10記載の並列ソート方法。
JP10521195A 1995-04-28 1995-04-28 並列ソート方式 Expired - Fee Related JP3525960B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10521195A JP3525960B2 (ja) 1995-04-28 1995-04-28 並列ソート方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10521195A JP3525960B2 (ja) 1995-04-28 1995-04-28 並列ソート方式

Publications (2)

Publication Number Publication Date
JPH08305678A true JPH08305678A (ja) 1996-11-22
JP3525960B2 JP3525960B2 (ja) 2004-05-10

Family

ID=14401338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10521195A Expired - Fee Related JP3525960B2 (ja) 1995-04-28 1995-04-28 並列ソート方式

Country Status (1)

Country Link
JP (1) JP3525960B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234323A (ja) * 2007-03-20 2008-10-02 Hitachi Ltd システムリソース制御装置及び制御方法
JP2019008648A (ja) * 2017-06-27 2019-01-17 富士通株式会社 情報処理システム及び情報処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234323A (ja) * 2007-03-20 2008-10-02 Hitachi Ltd システムリソース制御装置及び制御方法
JP2019008648A (ja) * 2017-06-27 2019-01-17 富士通株式会社 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
JP3525960B2 (ja) 2004-05-10

Similar Documents

Publication Publication Date Title
Nathanson Additive Number Theory The Classical Bases
Kumar et al. An efficient implementation of Batcher's odd-even merge algorithm and its application in parallel sorting schemes
JP3202074B2 (ja) 並列ソート方式
Nath et al. Efficient VLSI networks for parallel processing based on orthogonal trees
Lin et al. 1xn pattern for pruning convolutional neural networks
EP0736205B1 (en) Method and apparatus for performing a fast hadamard transform
CN105051679A (zh) 用于支持矢量排序算法和其他算法的具有树状结构的功能单元
CN111562898B (zh) 一种基于fpga实现的多级归并排序方法
CN112286864B (zh) 加速可重构处理器运行的稀疏化数据处理方法及***
Chen et al. Computer generation of high throughput and memory efficient sorting designs on FPGA
CN113608717B (zh) 一种数论变换计算电路、方法及计算机设备
CN112015366B (zh) 数据排序方法、数据排序装置及数据库***
KR20230155417A (ko) 하드웨어에서의 희소 행렬 곱셈
Brown Dynamic programming in computer science
EP3842954A1 (en) System and method for configurable systolic array with partial read/write
JP3525960B2 (ja) 並列ソート方式
CN115115044A (zh) 基于通道融合的可配置稀疏卷积硬件加速方法和***
Du et al. Quasi-Laguerre iteration in solving symmetric tridiagonal eigenvalue problems
Barada et al. Systolic architecture for matrix triangularisation with partial pivoting
Colombet et al. Parallel matrix-vector product on rings with a minimum of communications
Krizanc Integer sorting on a mesh-connected array of processors
CN116755663A (zh) 高层级合成hls库
Schafer et al. A fast computer implementation of adding and arithmetic multi-polarity transforms for logic design
WO2020039522A1 (ja) 情報処理装置、情報処理方法及びプログラム
CN115759270A (zh) 一种基于量子线路的高效模拟方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees