JPH02227725A - 区画分割方法及び装置 - Google Patents
区画分割方法及び装置Info
- Publication number
- JPH02227725A JPH02227725A JP2003656A JP365690A JPH02227725A JP H02227725 A JPH02227725 A JP H02227725A JP 2003656 A JP2003656 A JP 2003656A JP 365690 A JP365690 A JP 365690A JP H02227725 A JPH02227725 A JP H02227725A
- Authority
- JP
- Japan
- Prior art keywords
- elements
- list
- partition
- boundary
- lists
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Machine Translation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、ソートされた複数のリストを複数の処理装置
を使ってマージする方式、特にリストの最終的なソート
及びマージの間に全ての処理装置を利用するための、ソ
ートされたリストの効率的な分割に関する。
を使ってマージする方式、特にリストの最終的なソート
及びマージの間に全ての処理装置を利用するための、ソ
ートされたリストの効率的な分割に関する。
B、従来技術
ソート過程全体の間に複数の処理装置を最大限に利用し
てリストを昇順又は降順にソートする事は、多くの研究
の対象になってきた。P個の処理装置の各々で個々にソ
ートを行なうために、N個の要素のリストをP個のほぼ
等しいサイズのリストに最初に分割するのは比較的単純
なプロセスである。これらのリストがソートされると、
それらは1つのリストにマージされなければならない。
てリストを昇順又は降順にソートする事は、多くの研究
の対象になってきた。P個の処理装置の各々で個々にソ
ートを行なうために、N個の要素のリストをP個のほぼ
等しいサイズのリストに最初に分割するのは比較的単純
なプロセスである。これらのリストがソートされると、
それらは1つのリストにマージされなければならない。
このマージを行なうのに必要な時間は処理装置の数Pに
関して線形である(即ち2台の処理装置は1台の処理装
置の2倍の性能を示し、4台の処理装置は1台の処理装
置の4倍の性能を示す)事が望ましい。言い換えると、
P個の処理装置を用いて全部でN個の要素をマージすべ
き場合、マージするための時間はN/Pに比例すべきで
ある。これは、従来技術が陥った一つの困難である。最
も効率的な従来の方法を用いてマージを行なう時間はN
/ P *log2Pに比例している。説明のために
、コンピュータ・システムが2処理装置から4処理装置
に増強された時にマージ性能になにが起きるかを考察す
る。もしマージ性能が線形であれば、2倍の性能の増加
によりマージ時間はN/2からN/4になるであろう。
関して線形である(即ち2台の処理装置は1台の処理装
置の2倍の性能を示し、4台の処理装置は1台の処理装
置の4倍の性能を示す)事が望ましい。言い換えると、
P個の処理装置を用いて全部でN個の要素をマージすべ
き場合、マージするための時間はN/Pに比例すべきで
ある。これは、従来技術が陥った一つの困難である。最
も効率的な従来の方法を用いてマージを行なう時間はN
/ P *log2Pに比例している。説明のために
、コンピュータ・システムが2処理装置から4処理装置
に増強された時にマージ性能になにが起きるかを考察す
る。もしマージ性能が線形であれば、2倍の性能の増加
によりマージ時間はN/2からN/4になるであろう。
もしマージ性能がN/P*Iog2Pであれば、マージ
時間はN / 2 *l 0g22N/2*1 =
N/2からN/4”’log24 = N/4*2 =
N/2に変化し、2つの付加的な処理装置が使われた
にもかかわらず、性能の向上は存在しない。
時間はN / 2 *l 0g22N/2*1 =
N/2からN/4”’log24 = N/4*2 =
N/2に変化し、2つの付加的な処理装置が使われた
にもかかわらず、性能の向上は存在しない。
Akl、 S、 G、、及び5antroo、 N−+
著”OptimalParallel Mergin
g and Sorting Without
MemoryConflicts”、 IEEE
Trans、 on Computers、 Vo
l。
著”OptimalParallel Mergin
g and Sorting Without
MemoryConflicts”、 IEEE
Trans、 on Computers、 Vo
l。
C36,No、 11. Nov、 1987. pp
、 1367−69は、同時に2つのリストに作用し、
2つのリスト中のある値よりも小さな要素の数の和が2
つのリスト中のその値よりも大きな要素の数の和に等し
いような値を見つけ出す事を開示している。従って、2
つのリストをその値の所で分割し、その分割点以下のリ
ストの組合せを1つの処理装置がソートし、その分割点
以上のリストの組合せを他の処理装置がソートするよう
にする事は単純な事である。2つのリストは、次に、正
しい順序にソートされた新しいリストを形成するために
連結される。もし一 2よりも多くのリストが存在するならば、処理は各リス
ト対に関して同時に行なわれ、半数のリストがそのまま
残される。これらのリストは、再び分割され、」1記の
ようなリストの2つの対を生成するが、マージすべきリ
ストの数は元の半分なので、リストの2つの対の各々は
さらに他の時間に分割されなければならず、従ってリス
トの十分な対が、全ての処理装置をビジーに保つのため
に利用可能である。リストの対は最初に半分に分割され
、次りこ各々の半分は1/4及び3/4の分割を生成す
るように分割される。従って、各処理装置はマージすべ
きリストの対を有する。最終的にソートされたリストを
形成するためには複数のマージ・フェーズが必要なので
、これは明らかに不十分である。もし各処理装置が1回
だけのマージ・フェーズを行なう事ができるように全て
のリストを1回でP個の区画に分割する事が可能であれ
ば、大幅な性能の改善が生じ、マージされた区画の1回
の連結により、所望のソートされたリストを形成する事
ができる。これは、サンプル・ソート・キーに基ずいて
分割を行なう事により試みられてきた。他の参考文献Q
uinn、 M、 J、、 ”ParallelSor
ting Algorithms for Ti
ghtly CoupledMulti−proce
ssors、 Parallel CompuLi
ng、 6゜198g、 pp、 349−367は
、マージすべき最初のリストから、分割キー値を、それ
らのキーが最初のリストをP個の区画に分割するように
、選択する。
、 1367−69は、同時に2つのリストに作用し、
2つのリスト中のある値よりも小さな要素の数の和が2
つのリスト中のその値よりも大きな要素の数の和に等し
いような値を見つけ出す事を開示している。従って、2
つのリストをその値の所で分割し、その分割点以下のリ
ストの組合せを1つの処理装置がソートし、その分割点
以上のリストの組合せを他の処理装置がソートするよう
にする事は単純な事である。2つのリストは、次に、正
しい順序にソートされた新しいリストを形成するために
連結される。もし一 2よりも多くのリストが存在するならば、処理は各リス
ト対に関して同時に行なわれ、半数のリストがそのまま
残される。これらのリストは、再び分割され、」1記の
ようなリストの2つの対を生成するが、マージすべきリ
ストの数は元の半分なので、リストの2つの対の各々は
さらに他の時間に分割されなければならず、従ってリス
トの十分な対が、全ての処理装置をビジーに保つのため
に利用可能である。リストの対は最初に半分に分割され
、次りこ各々の半分は1/4及び3/4の分割を生成す
るように分割される。従って、各処理装置はマージすべ
きリストの対を有する。最終的にソートされたリストを
形成するためには複数のマージ・フェーズが必要なので
、これは明らかに不十分である。もし各処理装置が1回
だけのマージ・フェーズを行なう事ができるように全て
のリストを1回でP個の区画に分割する事が可能であれ
ば、大幅な性能の改善が生じ、マージされた区画の1回
の連結により、所望のソートされたリストを形成する事
ができる。これは、サンプル・ソート・キーに基ずいて
分割を行なう事により試みられてきた。他の参考文献Q
uinn、 M、 J、、 ”ParallelSor
ting Algorithms for Ti
ghtly CoupledMulti−proce
ssors、 Parallel CompuLi
ng、 6゜198g、 pp、 349−367は
、マージすべき最初のリストから、分割キー値を、それ
らのキーが最初のリストをP個の区画に分割するように
、選択する。
次に、それらのキーは、残りのリストを可能な限りサン
プル・キー値に近く分割するために使われる。これは、
近似的な分割による処理装置間の負荷の不平衡を生じ、
またそれに対応して線形のマージ性能からの劣化を生じ
る。さらに、もしリスト中のデータがランダムな分布か
らずれている場合(これはリレーショナル・データベー
スの操作において普通に生しる)、結果的に得られた近
似的な分割はサイズが大きく異なっている可能性が有り
、従って負荷の不平衡の問題を悪化させる。
プル・キー値に近く分割するために使われる。これは、
近似的な分割による処理装置間の負荷の不平衡を生じ、
またそれに対応して線形のマージ性能からの劣化を生じ
る。さらに、もしリスト中のデータがランダムな分布か
らずれている場合(これはリレーショナル・データベー
スの操作において普通に生しる)、結果的に得られた近
似的な分割はサイズが大きく異なっている可能性が有り
、従って負荷の不平衡の問題を悪化させる。
またランダムに分布されたデータの場合であっても、i
oooo件のレコードをソートする時、10以上の処
理装置を用いても性能が向上しない事が文献に示されて
いる。これは近似的な分割区画化から生じる不平衡によ
るものである。
oooo件のレコードをソートする時、10以上の処
理装置を用いても性能が向上しない事が文献に示されて
いる。これは近似的な分割区画化から生じる不平衡によ
るものである。
C6発明が解決しようとする課題
本発明の目的は、マルチ・プロセッサ・システムに於い
てデータをソート又はマージする時、処理装置の台数に
比例して性能が向上するような方式及び装置を提供する
事である。
てデータをソート又はマージする時、処理装置の台数に
比例して性能が向上するような方式及び装置を提供する
事である。
00課題を解決するための手段
任意の数のソートされたリストがP個のリスト(区画)
に効果的に分割される。但しPは、その結果得られたリ
スト(区画)をソートするのに利用可能な処理装置の数
を表す。ソートすべき大規模なリストが与えられた時、
そのリストは、最初にP個のリス1−に分割され、各処
理装置がそれらのリストの各々一つをソートする。次に
本発明に従ってリストが分割(区画化)される時、それ
により形成された新しいリスト(区画)中の要素の各々
は、それ以前の区画中のどの要素よりも小さくない値を
値を有し、又それ以後の区画中のどの要素よりも大きく
ない値を有する。次に各区画中のリストはP個の処理装
置によりマージされ且つ単に連結されて、全要素のソー
トされたリストを提供する。
に効果的に分割される。但しPは、その結果得られたリ
スト(区画)をソートするのに利用可能な処理装置の数
を表す。ソートすべき大規模なリストが与えられた時、
そのリストは、最初にP個のリス1−に分割され、各処
理装置がそれらのリストの各々一つをソートする。次に
本発明に従ってリストが分割(区画化)される時、それ
により形成された新しいリスト(区画)中の要素の各々
は、それ以前の区画中のどの要素よりも小さくない値を
値を有し、又それ以後の区画中のどの要素よりも大きく
ない値を有する。次に各区画中のリストはP個の処理装
置によりマージされ且つ単に連結されて、全要素のソー
トされたリストを提供する。
第1の区画は、ある値よりも小さな全リストの全ての要
素より成り、N/P個の要素を含む区画を生しる。第2
の区画は、第1の値以上であって、第2の、より高い値
よりも小さな全ての要素より成り、再びN/P個の要素
を含む区画を生じる。
素より成り、N/P個の要素を含む区画を生しる。第2
の区画は、第1の値以上であって、第2の、より高い値
よりも小さな全ての要素より成り、再びN/P個の要素
を含む区画を生じる。
これは最も高い値の、N/P個の要素を含むP番目の区
画まで、継続する。区画中のリストは単一の処理装置し
こよりマージされ、P個の処理装置の各々が一つの区画
中のリストをマージするタスクに割当てられる。マージ
処理が終了すると、マージされたリストは単に連結され
、最終的なソートされたリストを形成する。時間のかか
るマージ操作は、従来技術におけるようにいくつかの区
画及びマージ操作においてではなく、全ての利用可能な
処理装置により同時に実行される。また各区画はほぼ同
じサイズなので、従来のような処理装置の負荷の不平衡
は起こらない。
画まで、継続する。区画中のリストは単一の処理装置し
こよりマージされ、P個の処理装置の各々が一つの区画
中のリストをマージするタスクに割当てられる。マージ
処理が終了すると、マージされたリストは単に連結され
、最終的なソートされたリストを形成する。時間のかか
るマージ操作は、従来技術におけるようにいくつかの区
画及びマージ操作においてではなく、全ての利用可能な
処理装置により同時に実行される。また各区画はほぼ同
じサイズなので、従来のような処理装置の負荷の不平衡
は起こらない。
良好な実施例において、区画の境界を決定するために、
空リストの集合で開始する。各リストのほぼ中央の要素
を見出す計算が行なわれ、この行が各リスト中の単一の
要素に先行する初期区画と共に考慮のために付加えられ
る。選択される最初の要素の行は、最長のリスト中の要
素の数よりも少ない最大の2のべき乗の整数値であるイ
ンデックスを有する。各リスト中に於いて区画の直前の
要素の内最大の要素が決定される。この最大要素よりも
小さい区画の直後の要素の数も決定される。
空リストの集合で開始する。各リストのほぼ中央の要素
を見出す計算が行なわれ、この行が各リスト中の単一の
要素に先行する初期区画と共に考慮のために付加えられ
る。選択される最初の要素の行は、最長のリスト中の要
素の数よりも少ない最大の2のべき乗の整数値であるイ
ンデックスを有する。各リスト中に於いて区画の直前の
要素の内最大の要素が決定される。この最大要素よりも
小さい区画の直後の要素の数も決定される。
この値は、上側の区画の全ての要素が下側の区画の全て
の要素よりも小さい事を保証するように下側の区画から
上側の区画に移動させなければならない要素の数である
。この基準は、以降、大きさの要求と呼ぶことにする。
の要素よりも小さい事を保証するように下側の区画から
上側の区画に移動させなければならない要素の数である
。この基準は、以降、大きさの要求と呼ぶことにする。
次に、区画のサイズが正しい比率になる事を保証するた
めに下側区画から上側区画に移動しなければならない要
素の数を決定する。この基準は、以降、区画サイズの要
求と呼ぶ。これら2つの値、即ち大きさの要求を保証す
るために移動しなければならない要素の数、及び区画サ
イズの要求を保証するために移動しなければならない要
素の数が比較される。この比較は、大きさの要求及び区
画サイズの要求の両者を保証するために上側区画から下
側区画へ又はその逆に要素を移動する必要があるか否か
を決定する。もし要素を上側の区画から下側へ移動する
必要があるならば、上側の区画から適当な数の最も大き
な要素が下側に移動されるように区画が調整される。も
し要素を下側の区画から上側へ移動する必要があるなら
ば、下側の区画から適当な数の最も小さな要素が上側に
移動されるように区画が調整される。この時、区画は、
現在リスト中で考慮されている要素に関しては正しい。
めに下側区画から上側区画に移動しなければならない要
素の数を決定する。この基準は、以降、区画サイズの要
求と呼ぶ。これら2つの値、即ち大きさの要求を保証す
るために移動しなければならない要素の数、及び区画サ
イズの要求を保証するために移動しなければならない要
素の数が比較される。この比較は、大きさの要求及び区
画サイズの要求の両者を保証するために上側区画から下
側区画へ又はその逆に要素を移動する必要があるか否か
を決定する。もし要素を上側の区画から下側へ移動する
必要があるならば、上側の区画から適当な数の最も大き
な要素が下側に移動されるように区画が調整される。も
し要素を下側の区画から上側へ移動する必要があるなら
ば、下側の区画から適当な数の最も小さな要素が上側に
移動されるように区画が調整される。この時、区画は、
現在リスト中で考慮されている要素に関しては正しい。
次のステップで、さらに2つの行、最初の行と中間の行
との間の行、及びの最後の行と中間の行との間の行が、
考慮のために付は加えられる。そして、区画境界の直前
のこれらの要素の最大値が再び決定される。このプロセ
スは上述のように継続し、その結果は、リスト中で現在
考慮中の要素に関する正しい区画である。継続するプロ
セスの各々の間に、新しい行が考慮のために付は加えら
れ、最終的に、I o g2 nのステップ(但しnは
区画化されるべき最長のリスト中の要素の数である)の
後に、全ての行が付は加えられる。この最後の反復の後
、最終的に区画が決定される。
との間の行、及びの最後の行と中間の行との間の行が、
考慮のために付は加えられる。そして、区画境界の直前
のこれらの要素の最大値が再び決定される。このプロセ
スは上述のように継続し、その結果は、リスト中で現在
考慮中の要素に関する正しい区画である。継続するプロ
セスの各々の間に、新しい行が考慮のために付は加えら
れ、最終的に、I o g2 nのステップ(但しnは
区画化されるべき最長のリスト中の要素の数である)の
後に、全ての行が付は加えられる。この最後の反復の後
、最終的に区画が決定される。
P−1個の区画境界を見出し、それにより各々1つ以上
のマージすべきリストを含むP個の区画を定義するため
に、P−1個の処理装置が並列にこの動作を実行する。
のマージすべきリストを含むP個の区画を定義するため
に、P−1個の処理装置が並列にこの動作を実行する。
P個の区画の各々は元のソートされたリストの1つ以上
からの要素を含む事がある。動作は、各処理装置におい
て同一であるが、サイズの要求に対して重み因子が加え
られ、各処理装置はステップの各々に於いて異なった要
素を移動して終了する。従って、結果的に得られる計算
された区画境界は異なっている。
からの要素を含む事がある。動作は、各処理装置におい
て同一であるが、サイズの要求に対して重み因子が加え
られ、各処理装置はステップの各々に於いて異なった要
素を移動して終了する。従って、結果的に得られる計算
された区画境界は異なっている。
各々の結果的に生じる区画中の要素の数は他のものと高
々1要素だけしか異なっていないので、最終的なマージ
・フェーズに関して処理装置間で作業は均等に分割され
る。最終的なマージ・フェーズに於いて、P個の処理装
置の各々がその区画中のリストをマージして、P個のソ
ートされたリストを形成する。次に、リストは、単に連
結されて、最終的なソートされたリストを形成する。処
理装置が最大限に利用されるので、さらに処理装置を付
は加えた時にソート時間のほぼ線形の改善が得られる。
々1要素だけしか異なっていないので、最終的なマージ
・フェーズに関して処理装置間で作業は均等に分割され
る。最終的なマージ・フェーズに於いて、P個の処理装
置の各々がその区画中のリストをマージして、P個のソ
ートされたリストを形成する。次に、リストは、単に連
結されて、最終的なソートされたリストを形成する。処
理装置が最大限に利用されるので、さらに処理装置を付
は加えた時にソート時間のほぼ線形の改善が得られる。
E、実施例
本発明の高水準の記述を最初に述べる。また1つの処理
装置において、どのようにして段階的に区画化が行なわ
れるかを示す例について述べる。
装置において、どのようにして段階的に区画化が行なわ
れるかを示す例について述べる。
いくつかのソートされたリストを分割区画化する方法を
利用できる一つのコンピュータ・システムが第1図の1
0に一般的に示されている。12.14及び16の番号
を付けられた複数の処理装置P1、P2・・・PNが、
I10バス18に結合されているように示されている。
利用できる一つのコンピュータ・システムが第1図の1
0に一般的に示されている。12.14及び16の番号
を付けられた複数の処理装置P1、P2・・・PNが、
I10バス18に結合されているように示されている。
各処理装置は、直接結合又はI10バス18経由のいず
れかにより主記憶20に対するアクセスを有している。
れかにより主記憶20に対するアクセスを有している。
ソートすべきリストより成るデータは、やはりバス18
に接続された種々の直接アクセス記憶装置DA5D26
及び28に記憶されている。各処理装置は、主記憶20
に転送すべきデータをDASDから要求する。本発明は
ある特定の構成に依存せず、他の並列処理装置アーキテ
クチャも本発明の実施に同様に適している事が認められ
る。各々がそれ自身の別個の主記憶又はキャッシュ付の
一連の主記憶を有する疎結合された処理装置も本発明を
実施するための候補者である。
に接続された種々の直接アクセス記憶装置DA5D26
及び28に記憶されている。各処理装置は、主記憶20
に転送すべきデータをDASDから要求する。本発明は
ある特定の構成に依存せず、他の並列処理装置アーキテ
クチャも本発明の実施に同様に適している事が認められ
る。各々がそれ自身の別個の主記憶又はキャッシュ付の
一連の主記憶を有する疎結合された処理装置も本発明を
実施するための候補者である。
複数の処理装置により大規模なリストをソートする時、
その目的は、最短の時間でソートを行なう事である。こ
れは、複数の処理装置の間でできるだけ等しく作業を分
割する事によって最も良く達成される。第1のステップ
は、リストを複数の等しいサイズのリストに分割する事
である。もし項目がアドレスによって表されているなら
ば、通常、1つの処理装置が他の処理装置の各々にアド
レスのリストを提供する。そのようなリストの数は利用
可能な処理装置の数に等しくあるべきである。次に、各
処理装置はリストを取得し、リスト中の全ての項目が所
望の順序に配列するように通常のリストのソートを行な
う。一つのそのまうな順序は、項目のディジタル表現の
値に基づいた昇順である。多くのそのようなソート・ル
ーチンが今日一般に実用されており、従ってこれ以上は
説明しない。
その目的は、最短の時間でソートを行なう事である。こ
れは、複数の処理装置の間でできるだけ等しく作業を分
割する事によって最も良く達成される。第1のステップ
は、リストを複数の等しいサイズのリストに分割する事
である。もし項目がアドレスによって表されているなら
ば、通常、1つの処理装置が他の処理装置の各々にアド
レスのリストを提供する。そのようなリストの数は利用
可能な処理装置の数に等しくあるべきである。次に、各
処理装置はリストを取得し、リスト中の全ての項目が所
望の順序に配列するように通常のリストのソートを行な
う。一つのそのまうな順序は、項目のディジタル表現の
値に基づいた昇順である。多くのそのようなソート・ル
ーチンが今日一般に実用されており、従ってこれ以上は
説明しない。
ソート・プロセスの第2の段階は、リストを区画に分割
する事である。区画の各々はほぼ同じ数の要素又は項目
を含んでいる。各々の利用可能な処理装置毎に1つの要
素の区画が存在すべきである。
する事である。区画の各々はほぼ同じ数の要素又は項目
を含んでいる。各々の利用可能な処理装置毎に1つの要
素の区画が存在すべきである。
第1の区画は元のリストの多くからの要素を含むが、そ
のような要素の全ては次の区画中の要素よりも小さいで
あろう。これは、後続の区画の各々に関しても真である
。
のような要素の全ては次の区画中の要素よりも小さいで
あろう。これは、後続の区画の各々に関しても真である
。
区画の境界を見つける事が区画化を行う処理装置のタス
クである。区画の境界は、リスト識別子、及びリストの
各々に関するリストへのインデックス値によって識別さ
れる。例えば、各々21の要素を持つ3つのリストを想
定すると、区画の境界は、リスト1、インデックス7;
リスト2、インデックス9;リスト3、インデックス5
として識別しうる。これは、第1のリスト中の7番目の
要素を含んでそれよりも大きな全ての要素、第2のリス
ト中の9番目の要素を含んでそれよりも大きな全ての要
素、及び第3のリスト中の5番目の要素を含んでそれよ
りも大きな全ての要素が第1の区画中にある事を意味す
る。これは要素の1/3を第1の区画中に置く事になる
。というのは、区画境界は区画の最後の要素を定義する
からである。
クである。区画の境界は、リスト識別子、及びリストの
各々に関するリストへのインデックス値によって識別さ
れる。例えば、各々21の要素を持つ3つのリストを想
定すると、区画の境界は、リスト1、インデックス7;
リスト2、インデックス9;リスト3、インデックス5
として識別しうる。これは、第1のリスト中の7番目の
要素を含んでそれよりも大きな全ての要素、第2のリス
ト中の9番目の要素を含んでそれよりも大きな全ての要
素、及び第3のリスト中の5番目の要素を含んでそれよ
りも大きな全ての要素が第1の区画中にある事を意味す
る。これは要素の1/3を第1の区画中に置く事になる
。というのは、区画境界は区画の最後の要素を定義する
からである。
第1の区画中には21の要素が存在し、次の2つの区画
の各々の中には21の要素が存在する。
の各々の中には21の要素が存在する。
2つだけの区画境界を決定する必要があり、ソート全体
を実行するのに3つの処理装置が利用可能である時、区
画化を実行するのに2つの処理装置しか必要でない。第
1の区画境界を決定する第1の処理装置は、区画定義を
、第2の境界を決定する第2の処理装置に渡す。これは
、第2の処理装置が第2の境界を決定した時、第2の処
理装置に第2の区画を明瞭に定義する。さらに第2の処
理装置は、第2の境界定義を、第3の区画を定義する第
3の処理装置に渡す。2つの境界の決定はほぼ同時に起
きるべきである。というのは、両方の決定における多く
のステップが実質的に同一であり、両方の処理装置が並
行して動作しているからである。
を実行するのに3つの処理装置が利用可能である時、区
画化を実行するのに2つの処理装置しか必要でない。第
1の区画境界を決定する第1の処理装置は、区画定義を
、第2の境界を決定する第2の処理装置に渡す。これは
、第2の処理装置が第2の境界を決定した時、第2の処
理装置に第2の区画を明瞭に定義する。さらに第2の処
理装置は、第2の境界定義を、第3の区画を定義する第
3の処理装置に渡す。2つの境界の決定はほぼ同時に起
きるべきである。というのは、両方の決定における多く
のステップが実質的に同一であり、両方の処理装置が並
行して動作しているからである。
次に3つの処理装置の各々がマージ動作を実行する。こ
の共通の動作は、本質的には、その区画のリストの1つ
からの全ての要素を用いて開始し、区画中の残りのリス
トからの要素を適当な順序で挿入する事より成る。
の共通の動作は、本質的には、その区画のリストの1つ
からの全ての要素を用いて開始し、区画中の残りのリス
トからの要素を適当な順序で挿入する事より成る。
リストを区画するために使われる方法は、例を用いて説
明するのが最も良い。正確な一般的方法は本明細書の実
施例の説明の末尾に記載されている。一般的には、事前
にソートされたリストから選択された要素に対して多数
の反復的ステップが実行される。各ステップは、考察中
の既存の要素の間に、リストからの要素を付加える。こ
のようにして、上側の区画中の新しい要素は常に」二側
の区画中に属する。というのは、それらは常に、以前の
反復動作による区画境界要素よりも大きくないからであ
る。問題の要素は区画境界のすぐ隣のものである。とい
うのは、それらは、上側区画の境界要素よりも小さいか
もしれないからである。
明するのが最も良い。正確な一般的方法は本明細書の実
施例の説明の末尾に記載されている。一般的には、事前
にソートされたリストから選択された要素に対して多数
の反復的ステップが実行される。各ステップは、考察中
の既存の要素の間に、リストからの要素を付加える。こ
のようにして、上側の区画中の新しい要素は常に」二側
の区画中に属する。というのは、それらは常に、以前の
反復動作による区画境界要素よりも大きくないからであ
る。問題の要素は区画境界のすぐ隣のものである。とい
うのは、それらは、上側区画の境界要素よりも小さいか
もしれないからである。
この方法は、各リスト中の1つ要素から始まる。
これらの小さな新しいリストは区画化され、次に現在の
要素の間に新しい要素が付加えられる。次に、このラン
は区画化され新しい要素がこれらの現在の要素の間に付
加される。この反復的プロセスは、各系列中の全ての要
素が処理されてしまうまで継続する。区画化の間、境界
は、以前の区画境界の上又は下の要素を含むように移動
される。
要素の間に新しい要素が付加えられる。次に、このラン
は区画化され新しい要素がこれらの現在の要素の間に付
加される。この反復的プロセスは、各系列中の全ての要
素が処理されてしまうまで継続する。区画化の間、境界
は、以前の区画境界の上又は下の要素を含むように移動
される。
要素は、それらの大きさに基づき、また既に区画中に存
在する要素の数に基づき、移動される。最後の特性は、
複数の区画を確立する事を可能にするものである。要素
の数の因子は、単に、区画中の所望の要素の数に基づき
修正される。2ウ工イ区画の場合、2分の1の倍数が用
いられる。3ウ工イ区画の場合、1/3が最初の区画の
ために用いられ、2/3が第2の区画のために用いられ
る。
在する要素の数に基づき、移動される。最後の特性は、
複数の区画を確立する事を可能にするものである。要素
の数の因子は、単に、区画中の所望の要素の数に基づき
修正される。2ウ工イ区画の場合、2分の1の倍数が用
いられる。3ウ工イ区画の場合、1/3が最初の区画の
ために用いられ、2/3が第2の区画のために用いられ
る。
同じ事が、多数の区画に関しても成り立つ。
リストa、b及びCの次の系列を想定する。
インデックス a b cl
1 6 6 G 6 7 リストはサイズが等しくはない事に注意されたい。これ
は、元のリストの選択的なソートを行なっている以前の
ソート動作が原因となって起きる可能性がある。リスト
は、最終のソートされたリスト中に含まれる事が望まし
くない要素を有している可能性もある。1/2の区画が
見出されるべきである。初めに、何も付加されていない
ので、考察すべき要素は存在しない。最初の計算は、ど
のリストからのどの要素が考慮されるべきかを判定する
ために行なわれる。リストaは12個の要素を有し、リ
ストbは3個の要素を有し、そしてリストCは13個の
要素を有している。要素は、以前の要素の間の半分の所
に考察のために付加えられるので各リスト中の8番目の
要素が付加される。8番目の要素は、それが2のべき乗
であるので、最初に選択された。リストの少なくとも1
つには8個以上の要素が存在するが、全リスト中には1
6個よりも少ない要素しか存在していない。
1 6 6 G 6 7 リストはサイズが等しくはない事に注意されたい。これ
は、元のリストの選択的なソートを行なっている以前の
ソート動作が原因となって起きる可能性がある。リスト
は、最終のソートされたリスト中に含まれる事が望まし
くない要素を有している可能性もある。1/2の区画が
見出されるべきである。初めに、何も付加されていない
ので、考察すべき要素は存在しない。最初の計算は、ど
のリストからのどの要素が考慮されるべきかを判定する
ために行なわれる。リストaは12個の要素を有し、リ
ストbは3個の要素を有し、そしてリストCは13個の
要素を有している。要素は、以前の要素の間の半分の所
に考察のために付加えられるので各リスト中の8番目の
要素が付加される。8番目の要素は、それが2のべき乗
であるので、最初に選択された。リストの少なくとも1
つには8個以上の要素が存在するが、全リスト中には1
6個よりも少ない要素しか存在していない。
2のべき乗に基づき、さらに要素を含める事は容易であ
る。第2のリストC中には3つの要素しか存在しないの
で、この時点ではリストC中の要素を考慮する必要はな
い。
る。第2のリストC中には3つの要素しか存在しないの
で、この時点ではリストC中の要素を考慮する必要はな
い。
最初の要素が考慮のために付加えられる時、それらは下
側区画の一部として付加される。例えば、区画境界は、
下記のように線で表される。
側区画の一部として付加される。例えば、区画境界は、
下記のように線で表される。
a b c上側の区画中
で考察される最大の要素が見出される。これは、上側の
区画中にどれ位の数の要素が置かれなければならないか
を決定するために必要である。というのは、それらは現
在そこに存在している最大値よりも小さいからである。
で考察される最大の要素が見出される。これは、上側の
区画中にどれ位の数の要素が置かれなければならないか
を決定するために必要である。というのは、それらは現
在そこに存在している最大値よりも小さいからである。
上側区画中には要素が存在しないので、最大値はマイナ
スの無限大又はより具体的には計算機で表現できる最小
の値であると考えられる。現在の境界の下には、境界の
上側の最大値よりも小さな考慮中の要素は存在しない。
スの無限大又はより具体的には計算機で表現できる最小
の値であると考えられる。現在の境界の下には、境界の
上側の最大値よりも小さな考慮中の要素は存在しない。
従って、大きさの要求Sにより要素を移動させる必要性
はない。Sはゼロに等しい。次に、区画のサイズを等し
くするために上側区画に移動しなければならない要素の
数nが計算される。nは、1であることが見出される。
はない。Sはゼロに等しい。次に、区画のサイズを等し
くするために上側区画に移動しなければならない要素の
数nが計算される。nは、1であることが見出される。
S及びnの相対的な値は、区画境界をどのようにして移
動させるかを決定するために使われている。境界を移動
するのに、場合1、場合2、及び場合3=21 の3つの異なった方法が存在する。slJ<nよりも小
さい時、場合3が実行される。他の場合の動作は、この
例の中で出会った時に説明する。場合3は、上側区画中
にに下側区画からの最小S個の要素を含んでいる。次に
、下側区画中のn−8個の最小の要素が下側区画から追
出され、上側区画中に置かれる。Sはゼロなので、下側
区画から何の要素も上側区画に付加されない。n−sは
1なので、リストから値8が上側区画に上昇する。区画
は、この時、次のようになる。
動させるかを決定するために使われている。境界を移動
するのに、場合1、場合2、及び場合3=21 の3つの異なった方法が存在する。slJ<nよりも小
さい時、場合3が実行される。他の場合の動作は、この
例の中で出会った時に説明する。場合3は、上側区画中
にに下側区画からの最小S個の要素を含んでいる。次に
、下側区画中のn−8個の最小の要素が下側区画から追
出され、上側区画中に置かれる。Sはゼロなので、下側
区画から何の要素も上側区画に付加されない。n−sは
1なので、リストから値8が上側区画に上昇する。区画
は、この時、次のようになる。
a b c
第2の繰返しの場合、再びリストa及びbだけが関係す
る。この結論に到達するために行なわれる計算は実施例
の説明の末尾に示されている。各リス)・からインデッ
クス4及び12の要素が考察のために付加えられる。こ
れらの要素は、現在考察中の要素の中間にある。リスト
Cにおける区画境界は値17よりも上にあるように考え
られ、第1の繰返しの後で事実上マイナス無限大である
。
る。この結論に到達するために行なわれる計算は実施例
の説明の末尾に示されている。各リス)・からインデッ
クス4及び12の要素が考察のために付加えられる。こ
れらの要素は、現在考察中の要素の中間にある。リスト
Cにおける区画境界は値17よりも上にあるように考え
られ、第1の繰返しの後で事実上マイナス無限大である
。
従って、値7は境界の下に付加えられる。
a b c
区画よりも上の最大の値は8であり、現在考察中の区画
の下に1つのより小さな要素7が存在する事がわかる。
の下に1つのより小さな要素7が存在する事がわかる。
従って、大きさの要求及びs=1を満足させるために7
が上側の区画に移動されなければならない。また、区画
サイズの要求、従ってn−1を満足させるために1つの
要素が上側の区画に移動しなければならない。
が上側の区画に移動されなければならない。また、区画
サイズの要求、従ってn−1を満足させるために1つの
要素が上側の区画に移動しなければならない。
s=nは、場合1の状況である。@合1は、下側の区画
からの最小のS個の要素を上側の区画中に含める。これ
が行なう必要のある全てである。
からの最小のS個の要素を上側の区画中に含める。これ
が行なう必要のある全てである。
というのは、大きさの要求を満足させるためにS個の要
素が上側の区画中に置かれなければならず、そして区画
のサイズを等しくするために同数の要素がそこに置かれ
る必要があるからである。」二連のように、S及びnは
両方1なので、1つの要素が上側の区画に移動されなけ
ればならず、結果的に得られる区画は下記のようになる
。
素が上側の区画中に置かれなければならず、そして区画
のサイズを等しくするために同数の要素がそこに置かれ
る必要があるからである。」二連のように、S及びnは
両方1なので、1つの要素が上側の区画に移動されなけ
ればならず、結果的に得られる区画は下記のようになる
。
a b c
次の繰返し中しこ、インデックス2.6及び10の要素
が考察のために付加えら九る。再び、既に考察中の要素
の中間に要素が存在する。これは考察中の要素を生じ、
境界は下記のようになる。
が考察のために付加えら九る。再び、既に考察中の要素
の中間に要素が存在する。これは考察中の要素を生じ、
境界は下記のようになる。
a b c
よりも上の最大値は、リストa、インデックス8中の8
である。Sは2であり、これは大きさの要求を満足させ
るために2つの要素が」二側の区画しこ移動されなけれ
ばならない事を示す。これらの要素は、b2の6c6の
7である。nは1であり、これは区画サイズの要求を満
足させるために上側区画に1つの付加的な要素が必要で
ある事を示している。Sはnよりも大きく、従ってこれ
は場合2の例である。2つの要素が上側の区画に移動さ
れ、s−nの要素、1つの要素が下側の区画に移動され
る。区画は、この時、次のようLこなる。
である。Sは2であり、これは大きさの要求を満足させ
るために2つの要素が」二側の区画しこ移動されなけれ
ばならない事を示す。これらの要素は、b2の6c6の
7である。nは1であり、これは区画サイズの要求を満
足させるために上側区画に1つの付加的な要素が必要で
ある事を示している。Sはnよりも大きく、従ってこれ
は場合2の例である。2つの要素が上側の区画に移動さ
れ、s−nの要素、1つの要素が下側の区画に移動され
る。区画は、この時、次のようLこなる。
a b c
この時、リストbが区画リストに加わる。区画最後は、
最終の繰返しの時である。というのは、この時、全ての
要素が考察されるからである。付区画は次のようになる
。
最終の繰返しの時である。というのは、この時、全ての
要素が考察されるからである。付区画は次のようになる
。
b c
8 、 18区画より上の
最大の値は7であり、現在考察中の区画の下にはそれよ
り小さな要素はない事がわかる。また、区画の上下の要
素の数も等しいので、どの要素も移動させる必要はない
。5=O1及びn=oである。s”nなので、これはも
う1つの、場合1の状況である。S及びnは両方Oなの
で、区画に変更を行なう必要はない。
最大の値は7であり、現在考察中の区画の下にはそれよ
り小さな要素はない事がわかる。また、区画の上下の要
素の数も等しいので、どの要素も移動させる必要はない
。5=O1及びn=oである。s”nなので、これはも
う1つの、場合1の状況である。S及びnは両方Oなの
で、区画に変更を行なう必要はない。
この時、上側の区画は14個の要素を含んでおり、その
全ては、14個の要素の下側の区画の最低の値の要素よ
りも小さいか又は等しい。この時、1つの処理装置が上
側の区画中の要素を取り出し、リストb1インデックス
1及び2からの2つの「6」がリストaにマージされ、
次にリストc1インデックス1〜6からの3つの「6」
及び3つの「7」がリストaにマージされる。同様のプ
ロセスは下側区画に関しても起き、2つのマージされた
区画が連結されて、最終的なソートされたリストが形成
される。
全ては、14個の要素の下側の区画の最低の値の要素よ
りも小さいか又は等しい。この時、1つの処理装置が上
側の区画中の要素を取り出し、リストb1インデックス
1及び2からの2つの「6」がリストaにマージされ、
次にリストc1インデックス1〜6からの3つの「6」
及び3つの「7」がリストaにマージされる。同様のプ
ロセスは下側区画に関しても起き、2つのマージされた
区画が連結されて、最終的なソートされたリストが形成
される。
大きさS及びサイズnの要求を決定するために使われる
プロセスは、実施例の説明の末尾に詳述されている。一
般的に、それらは、必要な記憶装置活動の量を最小化す
るように設計されている。
プロセスは、実施例の説明の末尾に詳述されている。一
般的に、それらは、必要な記憶装置活動の量を最小化す
るように設計されている。
あるリストは非常に大きく、共有記憶域内に完全には入
り切らない。それらは、定期的に主記憶との間でページ
ングしなければならない。もしこれが避けられるならば
、時間が節約され、資源が他の処理装置に使えるように
なる。反復処理は以前の区画のいずれかの側に少数の項
目しか付は加えず、またしばしばリストからの要素が含
まれていない事があるので、どの要素を実際に見る必要
があるかをプロセスが決定する。従って、実際に主記憶
中に存在しなければならない要素の数が減少する。また
、処理装置の各々は異なった区画上で作業を行なってい
るので、データのアクセスにおけるコンフリクトは少し
しか存在しない。
り切らない。それらは、定期的に主記憶との間でページ
ングしなければならない。もしこれが避けられるならば
、時間が節約され、資源が他の処理装置に使えるように
なる。反復処理は以前の区画のいずれかの側に少数の項
目しか付は加えず、またしばしばリストからの要素が含
まれていない事があるので、どの要素を実際に見る必要
があるかをプロセスが決定する。従って、実際に主記憶
中に存在しなければならない要素の数が減少する。また
、処理装置の各々は異なった区画上で作業を行なってい
るので、データのアクセスにおけるコンフリクトは少し
しか存在しない。
区画化を行なう時、区画境界の直後に続くP個の要素が
、各反復時に検査される必要がある。例えば、上記の例
の最後の反復において、要素(1゜3.5.7.8.8
1がリストaから付加され、要素(6,221がリスト
bから付加され、要素(6,6,7,16,18,18
,221がリストcから付加される。付加された15個
の要素のうち、区画境界の直後の要素(7,22,18
)のみが実際にページングされる必要がある。残りの要
素は全く検査又はページングの必要はない。
、各反復時に検査される必要がある。例えば、上記の例
の最後の反復において、要素(1゜3.5.7.8.8
1がリストaから付加され、要素(6,221がリスト
bから付加され、要素(6,6,7,16,18,18
,221がリストcから付加される。付加された15個
の要素のうち、区画境界の直後の要素(7,22,18
)のみが実際にページングされる必要がある。残りの要
素は全く検査又はページングの必要はない。
それらは既に適当な区画中にある事がわかっている。区
画化のための時間は、P*(1+10g2(P)Clo
g2(N/ P )に比例する。但し、Nはソートされ
るべき要素の総数である。N>Pというソート動作に典
型的な場合、区画化のコストは重要なものではなく、マ
ージのコストに較べれば無視する事ができる。従って、
この方法は正確なリストの区画化を生じるので、処理装
置の負荷の不平衡は存在せず、マージ時間はN/Pにほ
ぼ比例する。
画化のための時間は、P*(1+10g2(P)Clo
g2(N/ P )に比例する。但し、Nはソートされ
るべき要素の総数である。N>Pというソート動作に典
型的な場合、区画化のコストは重要なものではなく、マ
ージのコストに較べれば無視する事ができる。従って、
この方法は正確なリストの区画化を生じるので、処理装
置の負荷の不平衡は存在せず、マージ時間はN/Pにほ
ぼ比例する。
複数の区画の形成に関して、プロセスをより良く理解す
るために、2つの境界、従って3つの区画を形成するた
めに2つの処理装置により行なわれる反復動作を並置し
て説明する。最大値s、n及び場合(CASE)番号が
示されている。再び、nは、所望の区画境界に依存する
値である。それは、特定の処理装置によって見出される
区画境界よりも上に含まれるべき要素のパーセンテージ
の関数である。この例では、処理装置1が、境界の上側
に約33%の要素を有するような境界を見出し、処理装
置2が境界の上側に66%の要素を有するよ反復2 要素の付加 うな次の境界を見出す。
るために、2つの境界、従って3つの区画を形成するた
めに2つの処理装置により行なわれる反復動作を並置し
て説明する。最大値s、n及び場合(CASE)番号が
示されている。再び、nは、所望の区画境界に依存する
値である。それは、特定の処理装置によって見出される
区画境界よりも上に含まれるべき要素のパーセンテージ
の関数である。この例では、処理装置1が、境界の上側
に約33%の要素を有するような境界を見出し、処理装
置2が境界の上側に66%の要素を有するよ反復2 要素の付加 うな次の境界を見出す。
処理装置Y
処理装置2
1/3区画
2/3区画
反復1
要素の付加
S:O
Nニー1
kSE2
S二〇
N二1
ASE3
max=8
max4
新しい区画の形成
S:0
N=1
ASE3
S二〇
N=1
ASE 3
max ”
新しい区画の形成
反復3
要素の付加
反復4
要素の付加
N=1
ASE3
S=1
N=1
CへSEI
max=4
max=13
新しい区画の形成
N=1
ASE3
N=1
CへSIE3
max=6
max”13
最終区画の形成
処理装置1が区画境界を見つけるプロセスを終了すると
、それは区画境界の識別子を、リスト、インデックスの
形で(この場合はa7、bo、co)、処理装置2に渡
す。そこで処理装置2は第2の区画が、a8、bl、c
lがら、それが見つけた境界a8、b2、c5までより
成る事を知る。
、それは区画境界の識別子を、リスト、インデックスの
形で(この場合はa7、bo、co)、処理装置2に渡
す。そこで処理装置2は第2の区画が、a8、bl、c
lがら、それが見つけた境界a8、b2、c5までより
成る事を知る。
処理装置2は第2の区画定義を第3の処理装置に渡し、
そこで第3の処理装置はそれがマージしなければならな
い要素が何かを知る。処理装置の各々は次にマージ動作
を行なって、リストを得る。
そこで第3の処理装置はそれがマージしなければならな
い要素が何かを知る。処理装置の各々は次にマージ動作
を行なって、リストを得る。
これらは−緒になって最終的なソートされたリストを形
成するストリングでありうる。
成するストリングでありうる。
上記の記述から、本発明は殆ど任意のサイズのリストを
並列に効果的に区画化する事が理解できる。処理装置の
付加により全体的なソート時間が大幅に改善される。と
いうのは、ステップの各々に複数の処理装置が関与し、
区画化フェーズは最大のリストのサイズが与えられると
、限られた数の所定の数のステップしか関係しないから
である。
並列に効果的に区画化する事が理解できる。処理装置の
付加により全体的なソート時間が大幅に改善される。と
いうのは、ステップの各々に複数の処理装置が関与し、
区画化フェーズは最大のリストのサイズが与えられると
、限られた数の所定の数のステップしか関係しないから
である。
下記の表1は区画化方法をコーディングするための良好
な方式を示している。第1にソートされたリストが取得
され、必要な反復の回数が計算される。次に、考察すべ
き要素s、nが付加され、考察すべき要素に関するma
xが計算され、場合番号が決定されそこに分岐が行なわ
れる。次に、以前の説明に従って要素が移動される。こ
れは全ての要素が考察されるまで反復される。表1は本
発明を実施しうる1つの方法を示しているだけであって
、他のコーディングも可能である。ハードウェアにまる
実施も可能であり、ずっと高速である。
な方式を示している。第1にソートされたリストが取得
され、必要な反復の回数が計算される。次に、考察すべ
き要素s、nが付加され、考察すべき要素に関するma
xが計算され、場合番号が決定されそこに分岐が行なわ
れる。次に、以前の説明に従って要素が移動される。こ
れは全ての要素が考察されるまで反復される。表1は本
発明を実施しうる1つの方法を示しているだけであって
、他のコーディングも可能である。ハードウェアにまる
実施も可能であり、ずっと高速である。
複数の処理装置を用いてリストをソートする方法のブロ
ック図が第2A図及び第2B図に示されている。複数の
処理装置1.2、・・・・P−1、Pが図面の上部に示
されており、それによって行なわれる動作は各処理装置
の下側の列に示されている。処理装置の1つ、処理装置
1は、N個の要素を含むソートすべきリストを取得する
。それはソート情報を他の処理装置に渡し、リストのど
の要素が各処理装置によりソートされるべきかを識別す
る。もし各処理装置が、リストのサイズを与えられた時
、所定の部分を探索するように前もってプログラムされ
ているならば、各処理装置によって、ソートすべき要素
を決定する事もできる。
ック図が第2A図及び第2B図に示されている。複数の
処理装置1.2、・・・・P−1、Pが図面の上部に示
されており、それによって行なわれる動作は各処理装置
の下側の列に示されている。処理装置の1つ、処理装置
1は、N個の要素を含むソートすべきリストを取得する
。それはソート情報を他の処理装置に渡し、リストのど
の要素が各処理装置によりソートされるべきかを識別す
る。もし各処理装置が、リストのサイズを与えられた時
、所定の部分を探索するように前もってプログラムされ
ているならば、各処理装置によって、ソートすべき要素
を決定する事もできる。
次に、各処理装置はリストの部分をソートし、他の処理
装置がそのソートを完了するのを待機する。リストは、
クイックソート、トーナメント木等の従来のソート方法
を用いてソートされる。ソートに続いて、処理装置のP
−1が区画境界を決定し、区画情報を処理装置に渡す。
装置がそのソートを完了するのを待機する。リストは、
クイックソート、トーナメント木等の従来のソート方法
を用いてソートされる。ソートに続いて、処理装置のP
−1が区画境界を決定し、区画情報を処理装置に渡す。
それらは次の区画境界を決定する。区画化の間に処理装
置は、反復プロセスの間にどの要素が境界を移動するか
を決定するためにソートも行なう必要がある。上述と同
様のソート方法を使用しうる。リストは既に個々にソー
トされているので、ソートの量は最小限である。
置は、反復プロセスの間にどの要素が境界を移動するか
を決定するためにソートも行なう必要がある。上述と同
様のソート方法を使用しうる。リストは既に個々にソー
トされているので、ソートの量は最小限である。
処理装置は、先行する処理装置からの区画境界情報を待
機する。両方の境界が識別されると、処理装置の各々は
境界により定義された区画の1つをマージする。指定さ
れた処理装置(この場合、処理装置1)は、他の処理装
置がその各々の区画のマージを完了するのを待機し、次
にマージされた区画を連結する。その結果は実際のリス
トである。この結果は単に正しい順序の要素のアドレス
のリストであっても、又正しい順序に実際に記憶装置中
に再配置された要素でも良い。
機する。両方の境界が識別されると、処理装置の各々は
境界により定義された区画の1つをマージする。指定さ
れた処理装置(この場合、処理装置1)は、他の処理装
置がその各々の区画のマージを完了するのを待機し、次
にマージされた区画を連結する。その結果は実際のリス
トである。この結果は単に正しい順序の要素のアドレス
のリストであっても、又正しい順序に実際に記憶装置中
に再配置された要素でも良い。
E−2,アルゴリズムの説明
ar−ar、1+ ar、2+ ar、3+ ”
”+ ar、Nrをm個の昇順の系列(シーケンス)
であるとする。但し、1515mであり、Nr−lla
、Ifである。課題は、下記の条件を満足するirを見
出す事である。但し、1≦r≦mであり、a、r’=a
r、1+ ar、2+ar、3+ ””+ ar、
lr<lr二〇はa 、 rが空の系列である事を意味
する。)であって1 、但し0≦f≦1 (区画サイズの要求)2、xl、s
≦V t、 u 、但しX r、 sEa r’+ V t、 uEa
t+1≦r≦m、0≦S≦ir、1≦t≦m。
”+ ar、Nrをm個の昇順の系列(シーケンス)
であるとする。但し、1515mであり、Nr−lla
、Ifである。課題は、下記の条件を満足するirを見
出す事である。但し、1≦r≦mであり、a、r’=a
r、1+ ar、2+ar、3+ ””+ ar、
lr<lr二〇はa 、 rが空の系列である事を意味
する。)であって1 、但し0≦f≦1 (区画サイズの要求)2、xl、s
≦V t、 u 、但しX r、 sEa r’+ V t、 uEa
t+1≦r≦m、0≦S≦ir、1≦t≦m。
i、t<u≦Nえ(大きさの要求)
任意の分数fを許容しているので、区画サイズの要求は
】の差までは満足させる事ができる。
】の差までは満足させる事ができる。
(ar、1≦r≦m)のf次の区画化関数を(i、。
1≦r≦m)と表す。
RBは、p−○、kmaX−max
1≦、5m(k、)にお
いて、基本ステップが与えられた時に、p−0゜1.2
,3.・・・、に□8X−1に関して順次に解(i、−
p。
,3.・・・、に□8X−1に関して順次に解(i、−
p。
1515m)を得る事によって解決される。但し、k、
=f1oor(log2(N、))+1及び(i、p、
1≦r≦m)は選択された系列の選択された部分系列の
1次の区画化関数である。反復のp番目のステップに於
いて、少なくとも2**(kmaX−p−1)個の要素
を持つ系列だけが考察される。形式的に、系列(arp
+ 1≦r≦m)を考える。(**はべき乗を表す) q、″>Oに関して次の事が定義される。但し、q、’
=p−に、、、−、を十に、である。
=f1oor(log2(N、))+1及び(i、p、
1≦r≦m)は選択された系列の選択された部分系列の
1次の区画化関数である。反復のp番目のステップに於
いて、少なくとも2**(kmaX−p−1)個の要素
を持つ系列だけが考察される。形式的に、系列(arp
+ 1≦r≦m)を考える。(**はべき乗を表す) q、″>Oに関して次の事が定義される。但し、q、’
=p−に、、、−、を十に、である。
・M、−2:ζ*(kr)、系列rに属する要素に関す
る最大の可能なインデックス ・M(p)−2**(km、X−p)、この反復中に考
察されている系列a、からの要素間の間隔・N、’−M
、−M(p)ceil((M、−N、)/M(p))こ
れはp番目の反復中に考察される系列a、からの実際の
最後の要素を定義する。
る最大の可能なインデックス ・M(p)−2**(km、X−p)、この反復中に考
察されている系列a、からの要素間の間隔・N、’−M
、−M(p)ceil((M、−N、)/M(p))こ
れはp番目の反復中に考察される系列a、からの実際の
最後の要素を定義する。
・ar”””ar、M(p)+ ar、2M(p)+
ar、3M(c+)+ ”’a r 、 N”。
ar、3M(c+)+ ”’a r 、 N”。
これはこの反復中考察される系列の実際の要素である。
全ての系列が考察されるわけではない。あまりに少ない
要素しか含まないものは、次のように除外される。即ち
、q 、D≦0の場合、arpは空系列であり、N、’
、M(p)、M、は定義されない。
要素しか含まないものは、次のように除外される。即ち
、q 、D≦0の場合、arpは空系列であり、N、’
、M(p)、M、は定義されない。
この方法は、(i、’、1≦r≦m)から(irp−1
1≦r≦m)を○(mlogm)の時間及びO(m)の
■10で導き出す技術である。M(p)−2M(p+1
)隔たった少なくとも2 **(k m−Xp 2
)個の要素を含む部分系列の区画から、M(p+1)だ
け等しく隔離した少なくとも2;跡(k、na、 −p
−L )個の要素を含む部分系列に関するf次の区画
化が回出される。
1≦r≦m)を○(mlogm)の時間及びO(m)の
■10で導き出す技術である。M(p)−2M(p+1
)隔たった少なくとも2 **(k m−Xp 2
)個の要素を含む部分系列の区画から、M(p+1)だ
け等しく隔離した少なくとも2;跡(k、na、 −p
−L )個の要素を含む部分系列に関するf次の区画
化が回出される。
50=(r:lqr”≧0.1≦r≦m)をステップp
で考察されるべき系列のインデックスの集合であるとす
る。以前のステップのf次の区画化の先行区画において
少なくとも1つの要素を有するものと考えられる系列に
関するインデックスの部分集合は、5l−(rヨirp
>O,rESo)として定義される。
で考察されるべき系列のインデックスの集合であるとす
る。以前のステップのf次の区画化の先行区画において
少なくとも1つの要素を有するものと考えられる系列に
関するインデックスの部分集合は、5l−(rヨirp
>O,rESo)として定義される。
もしlls’1l=oならば、a、n諜−o。
もしlls’11≠0ならば、
a、。娶−rnaX (a ’D)
rES” r、lr
a m axはこのステップにおけるf次の区画化の最
大の境界要素である。それは繰返し中に0(1)時間で
見出す事ができる。
大の境界要素である。それは繰返し中に0(1)時間で
見出す事ができる。
これらから、f次の区画化中にその部分系列全体が含ま
れている系列を次のように区別する必要がある。
れている系列を次のように区別する必要がある。
52=(r 3 i 、p< N6−1. r ESo
)以前のステップの境界要素よりも大きいと考えられる
新しい要素の数は次のように計数される。
)以前のステップの境界要素よりも大きいと考えられる
新しい要素の数は次のように計数される。
S3−(rヨa < a l’naMl r
C32)r、 i rvIv”’) s”’S3 もし以前のステップの先行区画を取り、区画中の2つの
要素の間の等距離の1つの新しい要素を考察すると、下
記のように、区画サイズの要求を満足させるのに近い状
態になる。
C32)r、 i rvIv”’) s”’S3 もし以前のステップの先行区画を取り、区画中の2つの
要素の間の等距離の1つの新しい要素を考察すると、下
記のように、区画サイズの要求を満足させるのに近い状
態になる。
「Es。
S3で識別されるような以前の最大の境界要素よりも小
さい境界要素の次の要素を含め、新しい区画を形成する
。次に、区画サイズの要求を検査する。新しい候補の先
行区画中の全ての要素が以前の最大境界要素よりも大き
く、反復p−)i中に考察される他の全ては同じ要素よ
りも小さくないので、大きさの要求は満足される。
さい境界要素の次の要素を含め、新しい区画を形成する
。次に、区画サイズの要求を検査する。新しい候補の先
行区画中の全ての要素が以前の最大境界要素よりも大き
く、反復p−)i中に考察される他の全ては同じ要素よ
りも小さくないので、大きさの要求は満足される。
場合1:s=n
区画化要求は満足されている。
rES3ならば、ir””” = l r” M (p
+1 )r#s3ならば、lr″″″1;irc′場
合2:s>n 候補の新しい先行区画はs−nの多すぎる要素を有して
おり、区画サイズの要求を満足させるために次のように
最大のs−nを除去する必要がある。
+1 )r#s3ならば、lr″″″1;irc′場
合2:s>n 候補の新しい先行区画はs−nの多すぎる要素を有して
おり、区画サイズの要求を満足させるために次のように
最大のs−nを除去する必要がある。
°°°゛・ar、 t、”・・rES”rES3ならば
、t r””−1rp+ M (p +1 )rES0
Δr*s3ならば、j r’=” = l rp中のs
−nの最大の要素の1つ) 上記計算はO(m)のIlo及びO(mlogm)のC
PU時間を上限としうる。
、t r””−1rp+ M (p +1 )rES0
Δr*s3ならば、j r’=” = l rp中のs
−nの最大の要素の1つ) 上記計算はO(m)のIlo及びO(mlogm)のC
PU時間を上限としうる。
S、”(jヨjE(O,M(p+1)、2M(p+1)
。
。
3MCp+1)、=−、t、。′″1)へ(r 、 j
)f’s’)、rESO rESoならば、lrp″″1=max(Sr’)rf
lii!S0ならば、1 rp−1” l r”場合3
: sin 候補の新しい先行区画はn−sの少なすぎる要素を有し
ており、区画サイズの要求を満足させるために次のよう
に、部分系列の残りから最大のn−5個を除去し、それ
らを候補先行区画に付加する必要がある。
)f’s’)、rESO rESoならば、lrp″″1=max(Sr’)rf
lii!S0ならば、1 rp−1” l r”場合3
: sin 候補の新しい先行区画はn−sの少なすぎる要素を有し
ており、区画サイズの要求を満足させるために次のよう
に、部分系列の残りから最大のn−5個を除去し、それ
らを候補先行区画に付加する必要がある。
” ”’ ar、t、、、、 I r E 53rES
3ならば、t、”= i、p+M(p+1)rESOA
r#S3ならば、trp′″1=ir。
3ならば、t、”= i、p+M(p+1)rESOA
r#S3ならば、trp′″1=ir。
S6=((r、j)ヨ
ができる。
中のn−sの最小要素の1つ)
上記計算はO(m)のIlo及びO(mlogm)のC
PU時間を上限としうる。
PU時間を上限としうる。
S、7=(jヨjε(O,M(p+1)、2M(p+1
>。
>。
3M(p+1)、−、t、”)V(r、j)εS6)。
rε5O
rESoならば、l r’=” = maX (S r
7)r1580ならば、l r””” = 1 rpも
し上述の方法通りにインダクションが行なわれたならば
、i=i k”′であることが証明できる。
7)r1580ならば、l r””” = 1 rpも
し上述の方法通りにインダクションが行なわれたならば
、i=i k”′であることが証明できる。
r
上記の手続は空系列から開始した。最初の反復時には、
考察される各系列から1つの要素を取り出し、それらを
分割する。p==Qにおけるこの手続に関する基本ステ
ップはi、、。=Oである。
考察される各系列から1つの要素を取り出し、それらを
分割する。p==Qにおけるこの手続に関する基本ステ
ップはi、、。=Oである。
F0発明の効果
本発明を用いれば、複数の処理装置を用いて、効率的に
マージ及びソートを行なう事ができ、処理装置の台数に
比例してその性能を向上させる事表1
マージ及びソートを行なう事ができ、処理装置の台数に
比例してその性能を向上させる事表1
第1図は本発明の区画化方法を実行するためのマルチプ
ロセッサーシステムのブロック図、第2A図及び第2B
図は複数プロセッサを用いたソート・プロセス全体の流
れ図である。 出願人 インターナショナル・ビジネスーマシーンズ・
コーポレーション
ロセッサーシステムのブロック図、第2A図及び第2B
図は複数プロセッサを用いたソート・プロセス全体の流
れ図である。 出願人 インターナショナル・ビジネスーマシーンズ・
コーポレーション
Claims (4)
- (1)P個のソートされたリストをL−1個の処理装置
によりL個の区画に分割する方法であって、上記Pは3
以上の数、上記Lは2以上の数であり、各々の後続した
区画は先行する区画の全ての要素よりも大きな値の要素
を含むものであって、a)上記リストから少なくとも1
行の要素を考察のために選択し、 b)要素の中間の行付近に区画の境界を定め、c)区画
境界の上側の考察中の全ての要素の最大値を決定し、 d)上記最大値よりも小さい、上記区画境界の下側の考
察中の要素を決定し、 e)区画のサイズ及び考察中の要素の値に基ずき、上記
境界に関して要素を移動し、 f)継続した行が考察され且つ区画が各々ほぼ等しい数
の要素を含むようになるまで、上記ステップa、c、d
及びeを繰返す区画分割方法。 - (2)P個の処理装置を用いて、N個の要素のリストを
ソートする方法であって、上記Pは3以上の数であり、
上記処理装置が協同して並列に、ソートされたリストを
提供する方法であって、 a)リストをほぼN/P個の要素を含むサブリストP個
に分割し、 b)上記各処理装置で各サブリストをソートし、c)P
−1個の区画境界であって、各境界がP−1個の処理装
置の1つにより定められ、上記境界がリストをほぼ等し
い区画に分割し、区画中の要素が後続の区画中の全要素
よりも小さな値を有するような区画境界を定め、 d)上記各処理装置で上記区画の各々をマージするステ
ップを含む ソート方法。 - (3)複数の事前にソートされた要素のリストを区画化
する装置であって、 事前にソートされたリストを含む記憶装置に対して各々
アクセスを有する複数の処理装置と、リストから区画化
リストに要素を選択的及び反復的に付加する手段と、 区画化リストに関して初期の区画境界を選択する手段と
、 区画境界の上側の要素の所望の数と区画境界の上側の要
素の実際の数との関係に基ずいてサイズの変更因子を決
定する手段と、 区画境界の上側の最大の要素の大きさよりも小さな、区
画境界の下側の要素の数に基ずき大きさの変更因子を決
定する手段と、 要素の各反復的付加に引続いてサイズ変更因子と大きさ
変更因子の関数として区画境界を変更する手段とを有す
る 複数の事前にソートされた要素のリストを区画化する装
置。 - (4)複数の事前にソートされた要素のリストを区画化
する装置であって、 事前にソートされたリストを含む記憶装置に対して各々
アクセスを有する複数の処理装置と、リストから区画化
リストに要素を選択的及び反復的に付加する手段と、 区画化リストに関して初期の区画境界を選択する手段と
、 サイズの変更因子を決定する手段と、 大きさの変更因子を決定する手段と、 要素の各反復的付加に引続いてサイズ変更因子と大きさ
変更因子の関数として区画境界を変更する手段とを有す
る 複数の事前にソートされた要素のリストを区画化する装
置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/297,634 US5179699A (en) | 1989-01-13 | 1989-01-13 | Partitioning of sorted lists for multiprocessors sort and merge |
| US297634 | 1989-01-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02227725A true JPH02227725A (ja) | 1990-09-10 |
| JPH0782428B2 JPH0782428B2 (ja) | 1995-09-06 |
Family
ID=23147124
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003656A Expired - Lifetime JPH0782428B2 (ja) | 1989-01-13 | 1990-01-12 | 区画分割方法及び装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5179699A (ja) |
| EP (1) | EP0378038A3 (ja) |
| JP (1) | JPH0782428B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05216696A (ja) * | 1991-05-31 | 1993-08-27 | Internatl Business Mach Corp <Ibm> | 高速併合装置及び併合方法 |
| JP2007133576A (ja) * | 2005-11-09 | 2007-05-31 | Hitachi Information & Communication Engineering Ltd | ソート処理方法及びプログラム |
| WO2019156060A1 (ja) * | 2018-02-08 | 2019-08-15 | 日本電気株式会社 | 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体 |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07104871B2 (ja) * | 1989-08-31 | 1995-11-13 | 三菱電機株式会社 | リレーショナル・データベースにおけるジョイン処理方式 |
| US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
| US5283893A (en) * | 1990-04-24 | 1994-02-01 | Rolm Company | Method for sorting objects in a sequentially addressed array |
| US5465371A (en) * | 1991-01-29 | 1995-11-07 | Ricoh Company Ltd. | Sorter for sorting data based on a plurality of reference value data |
| DE69232425T2 (de) * | 1991-07-10 | 2002-10-10 | Hitachi, Ltd. | Sortierverfahren in einer verteilten Datenbank und Zugangsverfahren dazu |
| US5355478A (en) * | 1991-12-23 | 1994-10-11 | International Business Machines Corporation | Method for avoiding cache misses during external tournament tree replacement sorting procedures |
| JP2868141B2 (ja) * | 1992-03-16 | 1999-03-10 | 株式会社日立製作所 | ディスクアレイ装置 |
| JPH0628322A (ja) * | 1992-07-10 | 1994-02-04 | Canon Inc | 情報処理装置 |
| JP3202074B2 (ja) * | 1992-10-21 | 2001-08-27 | 富士通株式会社 | 並列ソート方式 |
| US5845113A (en) * | 1992-10-27 | 1998-12-01 | International Business Machines Corporation | Method for external sorting in shared-nothing parallel architectures |
| JPH0728624A (ja) * | 1993-07-13 | 1995-01-31 | Mitsubishi Electric Corp | ソート装置及びソート方法 |
| JP3415914B2 (ja) * | 1993-10-12 | 2003-06-09 | 富士通株式会社 | 並列マージソート処理方法 |
| US5579514A (en) * | 1993-10-22 | 1996-11-26 | International Business Machines Corporation | Methodology for increasing the average run length produced by replacement selection strategy in a system consisting of multiple, independent memory buffers |
| US5765146A (en) * | 1993-11-04 | 1998-06-09 | International Business Machines Corporation | Method of performing a parallel relational database query in a multiprocessor environment |
| DE4438652A1 (de) * | 1993-11-19 | 1995-05-24 | Hewlett Packard Co | Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise |
| US5440736A (en) * | 1993-11-24 | 1995-08-08 | Digital Equipment Corporation | Sorter for records having different amounts of data |
| US6658488B2 (en) | 1994-02-28 | 2003-12-02 | Teleflex Information Systems, Inc. | No-reset option in a batch billing system |
| US7412707B2 (en) * | 1994-02-28 | 2008-08-12 | Peters Michael S | No-reset option in a batch billing system |
| US5999916A (en) * | 1994-02-28 | 1999-12-07 | Teleflex Information Systems, Inc. | No-reset option in a batch billing system |
| US5668993A (en) * | 1994-02-28 | 1997-09-16 | Teleflex Information Systems, Inc. | Multithreaded batch processing system |
| US6708226B2 (en) | 1994-02-28 | 2004-03-16 | At&T Wireless Services, Inc. | Multithreaded batch processing system |
| CA2184368A1 (en) * | 1994-02-28 | 1995-08-31 | Michael S. Peters | Method and apparatus for processing discrete billing events |
| US5727200A (en) * | 1994-03-07 | 1998-03-10 | Nippon Steel Corporation | Parallel merge sorting apparatus with an accelerated section |
| GB2291571A (en) * | 1994-07-19 | 1996-01-24 | Ibm | Text to speech system; acoustic processor requests linguistic processor output |
| JP3560690B2 (ja) * | 1995-06-14 | 2004-09-02 | 富士通株式会社 | 並列プロセッサ装置 |
| US5671405A (en) * | 1995-07-19 | 1997-09-23 | International Business Machines Corporation | Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts |
| US5852826A (en) * | 1996-01-26 | 1998-12-22 | Sequent Computer Systems, Inc. | Parallel merge sort method and apparatus |
| US5826262A (en) * | 1996-03-22 | 1998-10-20 | International Business Machines Corporation | Parallel bottom-up construction of radix trees |
| US6144986A (en) * | 1997-03-27 | 2000-11-07 | Cybersales, Inc. | System for sorting in a multiprocessor environment |
| US6366911B1 (en) * | 1998-09-28 | 2002-04-02 | International Business Machines Corporation | Partitioning of sorted lists (containing duplicate entries) for multiprocessors sort and merge |
| US6968359B1 (en) * | 2000-08-14 | 2005-11-22 | International Business Machines Corporation | Merge protocol for clustered computer system |
| US6839752B1 (en) | 2000-10-27 | 2005-01-04 | International Business Machines Corporation | Group data sharing during membership change in clustered computer system |
| US7185099B1 (en) | 2000-11-22 | 2007-02-27 | International Business Machines Corporation | Apparatus and method for communicating between computer systems using a sliding send window for ordered messages in a clustered computing environment |
| US7769844B2 (en) | 2000-12-07 | 2010-08-03 | International Business Machines Corporation | Peer protocol status query in clustered computer system |
| US7024401B2 (en) * | 2001-07-02 | 2006-04-04 | International Business Machines Corporation | Partition boundary determination using random sampling on very large databases |
| US7028054B2 (en) * | 2001-07-02 | 2006-04-11 | International Business Machines Corporation | Random sampling as a built-in function for database administration and replication |
| US7231461B2 (en) * | 2001-09-14 | 2007-06-12 | International Business Machines Corporation | Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system |
| WO2007068148A1 (en) * | 2005-12-17 | 2007-06-21 | Intel Corporation | Method and apparatus for partitioning programs to balance memory latency |
| US8463820B2 (en) * | 2009-05-26 | 2013-06-11 | Intel Corporation | System and method for memory bandwidth friendly sorting on multi-core architectures |
| US8959094B2 (en) * | 2010-05-28 | 2015-02-17 | Oracle International Corporation | Early return of partial sort results in a database system |
| US8935232B2 (en) | 2010-06-04 | 2015-01-13 | Yale University | Query execution systems and methods |
| US8886631B2 (en) | 2010-06-04 | 2014-11-11 | Yale University | Query execution systems and methods |
| US9336263B2 (en) * | 2010-06-04 | 2016-05-10 | Yale University | Data loading systems and methods |
| US9495427B2 (en) | 2010-06-04 | 2016-11-15 | Yale University | Processing of data using a database system in communication with a data processing framework |
| US9418089B2 (en) * | 2013-05-13 | 2016-08-16 | Microsoft Technology Licensing, Llc | Merging of sorted lists using array pair |
| KR102247890B1 (ko) * | 2014-05-27 | 2021-05-04 | 에스케이플래닛 주식회사 | 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법 |
| WO2015182833A1 (ko) * | 2014-05-27 | 2015-12-03 | 에스케이플래닛 주식회사 | 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법 |
| KR102247032B1 (ko) * | 2014-05-27 | 2021-04-30 | 에스케이플래닛 주식회사 | 아이템 그룹의 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법 |
| CN106462386B (zh) * | 2014-05-30 | 2019-09-13 | 华为技术有限公司 | 排序分布式输入数据的排序方法和处理系统 |
| US10296612B2 (en) | 2015-09-29 | 2019-05-21 | At&T Mobility Ii Llc | Sorting system |
| US10416959B2 (en) | 2015-10-27 | 2019-09-17 | At&T Mobility Ii Llc | Analog sorter |
| US10496370B2 (en) | 2015-12-02 | 2019-12-03 | At&T Intellectual Property I, L.P. | Adaptive alphanumeric sorting apparatus |
| US10261832B2 (en) | 2015-12-02 | 2019-04-16 | At&T Mobility Ii Llc | Sorting apparatus |
| US10334011B2 (en) * | 2016-06-13 | 2019-06-25 | Microsoft Technology Licensing, Llc | Efficient sorting for a stream processing engine |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63229522A (ja) * | 1987-03-19 | 1988-09-26 | Fujitsu Ltd | 並列ソ−ト処理方法 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4210961B1 (en) * | 1971-10-08 | 1996-10-01 | Syncsort Inc | Sorting system |
| US4030077A (en) * | 1975-10-16 | 1977-06-14 | The Singer Company | Multistage sorter having pushdown stacks for arranging an input list into numerical order |
| US4595995A (en) * | 1983-02-17 | 1986-06-17 | At&T Bell Laboratories | Sort circuit and method using multiple parallel sorts of the sorted items |
| US4575798A (en) * | 1983-06-03 | 1986-03-11 | International Business Machines Corporation | External sorting using key value distribution and range formation |
| US4799152A (en) * | 1984-10-12 | 1989-01-17 | University Of Pittsburgh | Pipeline feedback array sorter with multi-string sort array and merge tree array |
| US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
| US4797815A (en) * | 1985-11-22 | 1989-01-10 | Paradyne Corporation | Interleaved synchronous bus access protocol for a shared memory multi-processor system |
| NL8600028A (nl) * | 1986-01-09 | 1987-08-03 | Philips Nv | Werkwijze en inrichting voor het sorteren van objekten die voorzien zijn van een parameter, volgens de waarde van deze parameter. |
| US4951193A (en) * | 1986-09-05 | 1990-08-21 | Hitachi, Ltd. | Parallel computer with distributed shared memories and distributed task activating circuits |
| US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
| US4991134A (en) * | 1988-03-30 | 1991-02-05 | International Business Machines Corporation | Concurrent sorting apparatus and method using FIFO stacks |
| US4920487A (en) * | 1988-12-12 | 1990-04-24 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Method of up-front load balancing for local memory parallel processors |
-
1989
- 1989-01-13 US US07/297,634 patent/US5179699A/en not_active Expired - Fee Related
- 1989-12-06 EP EP19890480181 patent/EP0378038A3/en not_active Withdrawn
-
1990
- 1990-01-12 JP JP2003656A patent/JPH0782428B2/ja not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63229522A (ja) * | 1987-03-19 | 1988-09-26 | Fujitsu Ltd | 並列ソ−ト処理方法 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05216696A (ja) * | 1991-05-31 | 1993-08-27 | Internatl Business Mach Corp <Ibm> | 高速併合装置及び併合方法 |
| JP2007133576A (ja) * | 2005-11-09 | 2007-05-31 | Hitachi Information & Communication Engineering Ltd | ソート処理方法及びプログラム |
| WO2019156060A1 (ja) * | 2018-02-08 | 2019-08-15 | 日本電気株式会社 | 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体 |
| JPWO2019156060A1 (ja) * | 2018-02-08 | 2021-01-14 | 日本電気株式会社 | 並列ユニオン制御装置、並列ユニオン制御方法、および並列ユニオン制御用プログラム |
| US11200056B2 (en) | 2018-02-08 | 2021-12-14 | Nec Corporation | Parallel union control device, parallel union control method, and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| US5179699A (en) | 1993-01-12 |
| JPH0782428B2 (ja) | 1995-09-06 |
| EP0378038A2 (en) | 1990-07-18 |
| EP0378038A3 (en) | 1991-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02227725A (ja) | 区画分割方法及び装置 | |
| US7558802B2 (en) | Information retrieving system | |
| Eppstein et al. | Iterated nearest neighbors and finding minimal polytopes | |
| Davidson et al. | Efficient parallel merge sort for fixed and variable length keys | |
| CN106055563B (zh) | 一种基于网格划分的并行空间查询方法及其系统 | |
| US7194456B2 (en) | Method of querying a structure of compressed data | |
| EP3289484B1 (en) | Method and database computer system for performing a database query using a bitmap index | |
| EP0522488A2 (en) | Method of sorting on distributed database system and method of accessing thereto | |
| Awad et al. | Dynamic graphs on the GPU | |
| SE516562C2 (sv) | Förfarande för extrahering av information från en databas | |
| Korf et al. | Optimal Sequential Multi-Way Number Partitioning. | |
| US8793257B2 (en) | Method for improving the effectiveness of hash-based data structures | |
| CN113515674A (zh) | 时序图随机游走的采样方法及装置 | |
| Bose et al. | Succinct geometric indexes supporting point location queries | |
| Bender et al. | Modern hashing made simple | |
| CN112015366B (zh) | 数据排序方法、数据排序装置及数据库系统 | |
| CN106649385A (zh) | 基于HBase数据库的数据排序方法和装置 | |
| CN112860734A (zh) | 地震数据多维度范围查询方法及装置 | |
| US20010034749A1 (en) | Spatial median filter | |
| CN114490799B (zh) | 单个图的频繁子图挖掘方法及装置 | |
| US20070094313A1 (en) | Architecture and method for efficient bulk loading of a PATRICIA trie | |
| US20160253405A1 (en) | Algorithm to apply a predicate to data sets | |
| US20210248142A1 (en) | Dual filter histogram optimization | |
| Chen et al. | Parallel algorithms for partitioning sorted sets and related problems | |
| Krusche et al. | Parallel longest increasing subsequences in scalable time and memory |