JP2591362B2 - データ選択処理方法 - Google Patents

データ選択処理方法

Info

Publication number
JP2591362B2
JP2591362B2 JP10722291A JP10722291A JP2591362B2 JP 2591362 B2 JP2591362 B2 JP 2591362B2 JP 10722291 A JP10722291 A JP 10722291A JP 10722291 A JP10722291 A JP 10722291A JP 2591362 B2 JP2591362 B2 JP 2591362B2
Authority
JP
Japan
Prior art keywords
data
storage device
array
shared storage
minimum value
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.)
Expired - Lifetime
Application number
JP10722291A
Other languages
English (en)
Other versions
JPH04336324A (ja
Inventor
孝之 早川
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP10722291A priority Critical patent/JP2591362B2/ja
Publication of JPH04336324A publication Critical patent/JPH04336324A/ja
Application granted granted Critical
Publication of JP2591362B2 publication Critical patent/JP2591362B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は記憶装置に格納され、相
互の順序関係が定められているデータの中から指定の順
序関係のデータを選択するデータ選択処理方法に関する
ものである。
【0002】
【従来の技術】本発明の先行技術としては、S.アクル
著(阿江 忠 他訳)1988年4月啓学出版「並列ソ
ーティングアルゴリズム」(175頁)に記載の方法が
ある。
【0003】図3はデータ選択処理装置の構成を示すブ
ロック図で、図において、31は対象データを記憶する
共有記憶装置、33〜35は共有記憶装置31を共有し
演算を行う演算装置、36〜38は演算装置33〜35
にそれぞれ付属しデータやプログラムを記憶する局所記
憶装置、32は共有記憶装置31と演算装置33〜35
とを結合する結合ネットワーク、39は演算装置33〜
35を制御する制御装置である。
【0004】共有記憶装置31は高速にアクセスできる
RAM等により構成され、全てのデータを格納すると共
に演算装置間のデータ転送手段としても用いられる。す
なわち一つの演算装置が共有記憶装置31にデータを書
き込み、続いてそのデータをもう一つの演算装置が読み
出すことによってデータの転送が行われる。異なる演算
装置が同時に共有記憶装置31をアクセスすることがで
きるが、複数の演算装置が同時に共通記憶装置31の同
一記憶番地に対して読み出し、または書き込みを行うこ
とはできない。
【0005】結合ネットワーク32は、共有記憶装置3
1と演算装置33〜35とを接続し、両装置間のデータ
の転送を行う。制御装置39は、単一制御命令を発行す
ることによって各演算装置33〜35を、同期を取って
制御する。各演算装置33〜35は、制御装置39の発
行する単一制御命令によってそれぞれ異なるデータの集
合に対して、同一の命令を実行する。局所記憶装置36
〜38は高速にアクセス可能なRAM等で構成され、プ
ログラムやデータを格納する。図3に示す装置はデータ
の選択処理を複数の演算装置に分散して実行するので、
分散データ選択処理方式という。
【0006】次に従来のデータ選択処理方法について説
明する。図4は従来の方法に用いられるアルゴリズムを
示す図である。|S|個のデータSの中から、k番目
(k≦|S|)のデータを選択するアルゴリズムを示
す。図4のステップ(N1)で、|S|<3であれば、
これは簡単で分散処理の必要はなく、1台の演算装置だ
けでk番目のデータを選択する。その他の場合は|S|
個のデータをそれぞれが|S|e 個のデータからなる|
S|1-e 個の部分列に分解し、各演算装置に割り当て
る。
【0007】図5は図4に示すアルゴリズムの実行例を
表し、符号51はデータSを示すもので、その個数は2
5個で5台の演算装置に割り当てると各演算装置には符
号52に示すように、各5個のデータが割り当てられ
る。図4のステップ(N2)では、各演算装置は割り当
てられた部分データの中から中央値mを見付けて共有記
憶装置31の配列Mのi番目の位置に書き込む。図5の
符号53は配列Mに書き込まれたデータを示す。図4の
ステップ(N3)で共有記憶装置31は配列M53の中
から中央値mを見付ける。図5の例ではm=24とな
る。
【0008】図4のステップ(N4)で共有記憶装置3
1はSを3つの部分データ、S1 ,S2 ,S3 に分割
し、それらの要素がそれぞれmより小さい、mと等し
い、およびmより大きいようにする。図5の符号54で
示すものがこの分割である。図4のステップ(N5)で
は、|S1 |>kであれば、並列選択アルゴリズムを再
帰的に呼び出してS1 の中からk番目のデータを見付
け、|S1 |>kでなくて|S1 |+|S2 |≧kであ
れば、mが求めるデータであり、|S1 |>kでなく、
且つ|S1 |+|S2 |≧kでなければ、並列選択アル
ゴリズムを再帰的に呼び出してS3 の中からk−|S1
|−|S2 |番目のデータを見付ける。
【0009】図5に示す例では、|S1 |>kであるか
ら、S1 について並列選択アルゴリズムを呼び出し、ス
テップ(N1)でS1 を符号55で示す3個の部分列に
分割し、3台の演算装置に割り当てて、ステップ(N
2)で各部分列の中央値が配列Mに符号56で示すよう
に書き込まれ、ステップ(N3)で中央値mが16と決
定され、ステップ(N4)で符号57の列が作られる
が、今回は、|S1 |>kでなく、|S1 |+|S2
≧kであるので、m=16が求めるデータである。
【0010】
【発明が解決しようとする課題】解決しようとする問題
点は、従来のデータ選択処理方法では、共有記憶装置3
1に格納されているデータを複数の演算装置33〜35
を用いて大まかに分類して特定データの選択を高速化し
ているが、共有記憶装置31中のデータのサイズが大き
い場合は、並列選択アルゴリズムを再帰的に呼び出すと
いう操作を何回か繰り返す必要があり、その都度大量の
データを演算装置33〜35に転送しなければならず、
結合ネットワーク32の負荷が大きくなり、転送に時間
がかかり、総合的な処理効率が低い点にある。本発明は
かかる課題を解決するためになされたもので、共有記憶
装置から局所記憶装置への大量のデータ転送を最初の1
回だけとするデータ選択処理方法を提供することを目的
としている。
【0011】
【課題を解決するための手段】本発明に係わるデータ選
択処理方法は、次のようなステップの繰り返しによって
特定データの選択を行うことを特徴としている。 ステップS0(初期化ステップ):共有記憶装置31内
の配列Mの記憶部分をリセットする。 ステップS1(分割ステップ):共有記憶装置31中の
データを複数の部分に分割する。 ステップS2(第1の転送ステップ):分割したデータ
を各局部記憶装置36〜38へ転送して各演算装置33
〜35に割り当てる。 ステップS3(最小値検索ステップ):各演算装置では
割り当てられたデータの中で共有記憶装置に転送されて
ないデータの中から最小値を検索する。 ステップS4(第2の転送ステップ):ステップS3で
得られたデータを共有記憶装置31に転送して一時記憶
する。 ステップS5(マージステップ):ステップS4で転送
されたデータの中に配列Mより小さいものがあればこれ
を配列Mにマージして、k個以上のデータは配列Mから
削除し、ステップS3に戻る。但し、kは求めるデータ
の順番を示す。 ステップS6(出力ステップ):ステップS4で転送さ
れたデータが全部配列Mのデータより大きければ配列M
のk番目のデータが求めるデータとなる。
【0012】
【作用】本発明のデータ選択処理方法においては、上述
のステップを繰り返すことにより、大量のデータの転送
はステップS2において1回実行すればよく、データ転
送によって処理時間が長くなることはない。
【0013】
【実施例】以下、本発明の一実施例を図面を用いて説明
する。図1は本発明の一実施例に係る動作を説明するア
ルゴリズムを示す図であり、S0〜S6は各プログラム
ステップを示す。図2は図1に示すアルゴリズムの実行
を数値例によって説明する図である。なお、本発明の方
法で使用される装置は従来の装置として説明した図3に
示す装置と同様である。
【0014】図2の符号21〜28は各記憶内容を示
し、共有記憶装置31はデータ記憶部21と配列Mの記
憶部22とを備え、データ記憶部21に対象データが書
き込まれると、配列Mの記憶部22をリセットする(ス
テップS0)。このリセットでは記憶部22のデータの
値が記憶部21のどのデータの値よりも十分に大きなも
のにする。図2に示す例では数値100にリセットされ
る。
【0015】ステップS1では記憶領域21のデータを
n個の部分データに分割する。この部分データは図2の
符号23で示す通りになる。ステップS2では、各演算
装置33〜35は制御装置39の命令で各分割データを
それぞれ対応する局所記憶装置36〜38に書き込む。
例えば局所記憶装置36にはデータ18,35,21,
24,29が書き込まれる。
【0016】ステップS3で、各演算装置は割り当てら
れた部分データの中で、まだ配列Mの記憶部22に転送
していないデータの中から最小値を検索する。符号24
でこれを示す。例えば局所記憶装置36に記憶するデー
タの最小値としては、18が検索され、その他の最小値
としては、13,11,12,14がそれぞれ検索され
る。ステップS4では、制御装置39は各演算装置33
〜35に検索した最小値を共有記憶装置31へ転送する
ように命ずる。
【0017】ステップS5で、共有記憶装置は、各演算
装置から今回転送された最小値の内で配列Mの記憶部2
2に格納されている各データより小さいものがあれば、
これを記憶部22のもとのデータとマージし、サイズが
kを越えたデータを削除し、ステップS3に戻る。
【0018】kは選択すべきデータの順番を示し、図2
に示す例ではk=6である。符号24のデータが送られ
る時点で配列Mの記憶部22の内容(すなわち配列M)
は、全部100であるから、符号24のデータをマージ
すると、符号25で示す通りになる。そして、次の2回
目のステップS4で転送されるデータは、符号26で示
すようになり、これを配列Mにマージすると符号27で
示すようになる。
【0019】第2回目のステップS5で配列Mにこれを
マージすると、符号27で示す通りになる。さらに、ス
テップS3に戻り、次の3回目のステップS4で転送さ
れるデータは符号28で示すようになる。符号28で示
すデータの中の各データは、全て符号27で示す配列M
より大きい。このことは、分割したどの部分のデータの
中にも配列Mより小さいデータは存在しないことを意味
するので、配列Mの中のk番目のデータが求めるデータ
であるということになる。
【0020】すなわち、今回、各演算装置から転送され
た全ての最小値が、配列Mの各データより大きければ、
ステップS6に入り、配列Mの中のk番目のデータを選
択すべきデータとする。図2の例では16が選択すべき
データとなり、これを記憶部29に書き込む。
【0021】
【発明の効果】以上説明したように本発明のデータ選択
処理方法によれば、特定データの選択処理において、共
有記憶装置から各局所記憶装置へのデータ転送を最初の
1回だけで済み、処理効率を向上させ、高速処理が可能
となる等の利点がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係る動作を説明するアルゴ
リズムを示す図である。
【図2】図1に示すアルゴリズムの実行例を示す図であ
る。
【図3】データ処理装置の構成を示すブロック図であ
る。
【図4】従来の方法に用いられるアルゴリズムを示す図
である。
【図5】図4に示すアルゴリズムの実行例を示す図であ
る。
【符号の説明】 31 共有記憶装置 32 総合ネットワーク 33〜35 演算装置 36〜38 局所記憶装置

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 順序関係を持つデータを記憶する共有記
    憶装置と、この共有記憶装置を共有し演算を行う複数の
    演算装置と、これらの演算装置にそれぞれ付属して当該
    演算装置で使用するデータやプログラムを記憶する局所
    記憶装置と、上記複数の演算装置を制御する制御装置と
    を用い、上記共有記憶装置中のデータから、指定した順
    番(k)のデータを選択して出力するデータ選択処理方
    法において、上記共有記憶装置内にk個のデータを記憶
    する配列Mの記憶部を設け、この記憶部に記憶される全
    てのデータの値が、上記順序関係を持つデータのどの順
    序の数値よりも大きくなるようリセットする初期化ステ
    ップ、上記共有記憶装置に記憶する順序関係を持つデー
    タを複数の部分データに分割する分割ステップ、この分
    割ステップで生成された複数の部分データを上記各演算
    装置に付属する各局所記憶装置に転送することで、複数
    の部分データを各演算装置に割り当てる第1の転送ステ
    ップ、この第1の転送ステップで転送された各局所記憶
    装置中の部分データで上記共用記憶装置に転送未済のデ
    ータ中の最小値を検索する最小値検索ステップ、この最
    小値検索ステップで得られた各部分データの各最小値を
    上記共有記憶装置に転送する第2の転送ステップ、この
    第2の転送ステップで転送された各最小値のうち上記配
    列Mのデータよりも小さいものは上記配列Mのデータに
    マージし、配列Mのデータで順番kを越えたデータを削
    除するマージステップ、このマージステップの後、最小
    値検索ステップ,第2の転送ステップを繰り返し、第2
    の転送ステップで転送された全ての最小値が配列Mのど
    のデータよりも大きい場合、配列Mのk番目のデータを
    選択出力する出力ステップ、を備えたことを特徴とする
    データ選択処理方法。
JP10722291A 1991-05-13 1991-05-13 データ選択処理方法 Expired - Lifetime JP2591362B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10722291A JP2591362B2 (ja) 1991-05-13 1991-05-13 データ選択処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10722291A JP2591362B2 (ja) 1991-05-13 1991-05-13 データ選択処理方法

Publications (2)

Publication Number Publication Date
JPH04336324A JPH04336324A (ja) 1992-11-24
JP2591362B2 true JP2591362B2 (ja) 1997-03-19

Family

ID=14453590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10722291A Expired - Lifetime JP2591362B2 (ja) 1991-05-13 1991-05-13 データ選択処理方法

Country Status (1)

Country Link
JP (1) JP2591362B2 (ja)

Also Published As

Publication number Publication date
JPH04336324A (ja) 1992-11-24

Similar Documents

Publication Publication Date Title
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
JPS6027964A (ja) メモリアクセス制御回路
US7386689B2 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
GB2165975A (en) Dynamically allocated local/global storage system
US4138720A (en) Time-shared, multi-phase memory accessing system
CN87103852A (zh) 部分写控制装置
US5923837A (en) Method of accessing data using approximate data structures
US20040250042A1 (en) Management of access to data from memory
JP2591362B2 (ja) データ選択処理方法
US6886088B2 (en) Memory that allows simultaneous read requests
US5740085A (en) Data processing apparatus for the modeling of logic circuitry
US5855010A (en) Data processing apparatus
US7000089B2 (en) Address assignment to transaction for serialization
US6463500B1 (en) Apparatus and method to access computer memory by processing object data as sub-object and shape parameter
US5134694A (en) Method and device for the processing of address words
JP3304445B2 (ja) プログラム生成処理装置
JPH03105452A (ja) ネットワーク構成データ処理装置の重み保持方式
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法
JPH03256130A (ja) 割込要因検索方式
US7249226B2 (en) Semiconductor system and memory sharing method
JP2839597B2 (ja) 荷電ビーム描画用データの作成装置
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPS59132483A (ja) アドレス変換装置
JPS6074074A (ja) 優先順位制御方式
JPS6168636A (ja) デ−タ処理装置