JP2000305751A - 並列ソート装置及び該装置のプログラムを記録した記録媒体 - Google Patents
並列ソート装置及び該装置のプログラムを記録した記録媒体Info
- Publication number
- JP2000305751A JP2000305751A JP11420299A JP11420299A JP2000305751A JP 2000305751 A JP2000305751 A JP 2000305751A JP 11420299 A JP11420299 A JP 11420299A JP 11420299 A JP11420299 A JP 11420299A JP 2000305751 A JP2000305751 A JP 2000305751A
- Authority
- JP
- Japan
- Prior art keywords
- sort
- data
- processing
- main storage
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
憶領域上で行うことができ、また、入力ファイルの読み
込み処理中もソート処理の並列実行が可能な並列ソート
装置を提供する。 【解決手段】複数のプロセッサで共有可能な主記憶領域
5と、複数のソート処理スレッド1〜mからなり、各ス
レッドが主記憶領域5内の各ブロック毎にソート処理を
実行するソート処理手段3と、外部記憶装置からソート
対象の入力データ1を入力し、複数のブロックに分割し
て主記憶領域5に記憶するとともに、ソート処理手段3
の複数のスレッドによる主記憶領域5内の各ブロックに
対するソート処理を起動する入力処理スレッドを有する
データ入力処理手段2と、ソート処理が終了した主記憶
領域5内の全ブロックのデータに対してマージ処理を行
って、ソート結果を出力するマージ・データ出力処理手
段6とを備えている。
Description
して並列に実行する並列ソート装置に関する。
合わせ数に比例して増減する。したがって、1スレッド
でデータの入出力やソート処理を行っていた従来のソー
ト処理方式ではファイル内のデータが膨大になると、処
理時間がかかりすぎる問題があった。また、データの入
出力時にはデータのソート処理が行われていないため、
プロセッサが使用されていない状態が発生し、プロセッ
サの機能が有効に活用されない問題もあった。
鑑みて創案されたものとして、並列にソートを行う処理
方式が出てきた。例えば、特開平5−35444号公報
「ソート処理方式」では、図6のようにソート対象ファ
イルを4つに分割し、それぞれを仮想ファイルとする。
次に分割したファイルを4つのソートプログラムで同時
に多重に並列ソートし、さらにソートが行われたデータ
をマージプログラムでマージすることにより全データの
ソートが行われる。この従来技術Aには次のような欠点
がある。
トプログラムによって、各仮想ファイルの読み込みを行
うとともに、ソートを行い、仮想ファイルに書き込む。
次にソート済みの各仮想ファイルのマージを行う。この
時、各ソートプログラムとマージプログラムの受け渡し
は仮想ファイルによって行われるため、仮想ファイルが
外部記憶装置にある場合、主記憶領域と外部記憶装置の
間のデータ転送の時間の遅さによって全体のソートの時
間が遅くなる。また、仮想ファイルへの書き込みがデー
タ入出力用のキャッシュによって遅延書き込みされる場
合においても、キャッシュの空き容量がなくなると書き
込みを行ってキャッシュの空き領域ができるまで待たな
くてはならない。
第1の目的とし、ソートとマージ間でのデータの受け渡
しを主記憶領域上で行うことができる並列ソート装置を
提供する。
処理装置および方法」では次の従来技術Bが記載されて
いる。図7において、使用可能な2台以上のプロセッサ
が存在する場合には、ソート処理プログラムがコピーさ
れて子タスク102が生成され、入力ファイル151の
読み込み処理および作業領域内データのトーナメントツ
リー作成処理が親タスク101に割り当てられ、再トー
ナメント処理および作業ファイル152への書き込み処
理が子タスク102に割り当てられる。親タスク101
および子タスク102は、それぞれ異なる2台のプロセ
ッサによって実行される。メインメモリ13内の作業領
域は、作業領域131と132に2分割され、それらが
親タスク101および子タスク102によって、交互に
使用される。したがって、親タスク101と子タスク1
02の処理が並行して実行され、内部ソート処理を効率
よく並列実行することが可能となる。
スク101用のタスク制御ブロックであり、親タスク1
01と作業領域131,132、および入力バッファ1
33、134との結合を図るポインタや、そのタスクの
状態を管理するための種々の制御情報を持つものであ
る。また、符号105は、子タスク102用のタスク制
御ブロックであり、子タスク102と作業領域131,
132、および出力バッファ135,136との結合を
図るポインタや、そのタスクの状態を管理するための制
御情報を持つものである。
る。
ルの読み込み処理において、主記憶領域と外部記憶装置
との間のデータ転送時に外部記憶装置のデータ転送速度
が遅い場合、親タスクに割り当てられたプロセッサはデ
ータ転送が終わるまで、処理をしていない状態になり、
この間は実質2台のプロセッサにおいて並列実行が行わ
れていない。
を第2の目的とし、入力ファイルの読み込み処理中もソ
ート処理の並列実行が可能な並列ソート装置を提供す
る。
め、請求項1記載の発明は、複数のプロセッサを有し、
ソート処理を複数に分割して並列に実行し、終了後マー
ジ処理を行ってソート結果を出力する並列ソート装置に
おいて、複数のプロセッサで共有可能な主記憶領域を有
し、該領域にソート対象のデータを複数のブロックに分
割して記憶する主記憶手段と、並列実行可能な複数の処
理単位からなり、各処理単位が主記憶手段内の各データ
ブロック毎にソート処理を実行するソート処理手段と、
外部記憶装置からソート対象のデータを入力し、複数の
ブロックに分割して主記憶手段に記憶するとともに、ソ
ート処理手段の複数の処理単位に対して主記憶手段内の
各データブロック毎にソート処理を行わさせるデータ入
力処理手段と、ソート処理が終了した主記憶手段内の全
ブロックのデータにマージ処理を行って、ソート結果を
出力するマージ・データ出力処理手段とを備えることを
特徴としている。
入力処理手段が、1つのデータブロックを主記憶手段に
記憶する毎に、該記憶したデータブロックに対してソー
ト処理手段の1つの処理単位によるソート処理を起動す
ることによって、データの入力処理と複数のソート処理
とを並列実行することを特徴としている。また、請求項
3記載の発明は、分割したブロックのソート処理とソー
ト済みのブロックのマージ処理との間のデータの受け渡
しを前記主記憶領域を用いて行うことを特徴としてい
る。
3のいずれか1項に記載の並列ソート装置が、コンピュ
ータシステムとそれによって実行されるプログラムとか
ら実現されるものであって、該プログラムを記録したコ
ンピューター読み取り可能な記録媒体である。
処理単位(タスク、スレッド等)で並列に実行し、終了
後マージを行ってソートの結果を出す並列ソート装置に
おいて、主記憶領域を複数のプロセッサで共有でき、あ
らかじめ、1個以上のソート処理単位(以下、スレッド
とする)を用意し、データを複数のブロックに分けてお
き、データをブロック単位で主記憶領域に読み込み、読
み込んだブロックのソートはソート専用のスレッドで処
理することによって、データの読み込み処理と複数のソ
ート処理を並行に行うことを可能とする。この時、複数
のソート処理スレッドを用意することにより、データ入
力処理時に例えば周辺装置から主記憶領域へのデータ転
送待ちのプロセッサに、ソート処理を割り当てることが
可能になる。また、本発明によれば、ソート処理とマー
ジ処理の間のデータの受け渡しを主記憶領域で行う構成
を得ることができる。
施の形態について説明する。図1は、本発明による並列
ソート装置の構成を説明するためのブロック図である。
図1において、データ処理手段2、ソート処理手段3、
全ソート処理終了待ち手段4、およびマージ・データ出
力処理手段6は、それぞれ、複数のプロセッサを有する
コンピュータシステムにおいて管理・実行されるタスク
に対応する。ソート・マージ用主記憶領域5は、コンピ
ュータシステムの主記憶内で割り当てられた所定の記憶
領域であり、そこにはソート処理およびマージ処理の際
に用いられるデータがブロックに分割されて格納され
る。入力データ1と出力データ7は、そのコンピュータ
システムと、外部記憶装置との間で入出力されるデータ
である。なお、コンピュータシステムの主記憶領域は、
複数のプロセッサで共有でき、この場合、主記憶領域の
サイズは入力データ1のサイズより大きいものとする。
ず、記憶媒体、例えば外部ディスク装置に存在する入力
データ1をn個(nは自然数)のブロックに分割する。
また、ソート処理手段3内に、同時に起動可能な複数の
スレッドとして構成されるm個のソート処理スレッド1
〜m(mは自然数)を用意する。主記憶内には、図3に
示すように、ソート処理の実行状態を示す実行フラグか
らなるソート実行情報1〜m、当該スレッド処理を実行
可能かどうかを示す同期フラグからなる動作情報1〜
m、ソート・マージ用主記憶領域5内のソート対象のデ
ータブロックの開始位置を示す情報であるデータブロッ
クの開始位置1〜m、データブロックの終了位置を示す
情報であるデータブロックの終了位置1〜mを、各スレ
ッド1〜mごとに格納するソート処理スレッド管理テー
ブルが設定される。
ドからなり、ブロックごとにデータをソート・マージ用
主記憶領域5に格納する。各ブロックのデータがソート
・マージ用主記憶領域5に格納されたら、ソート処理手
段3により、空いているソート処理スレッドでブロック
ごとにソートを行わせる。例えば、データ入力処理手段
2によって入力データ1のブロック1を読み込んで、ソ
ート・マージ用主記憶領域5にデータを格納し、つぎ
に、ソート処理スレッド1を動かし、データ入力処理手
段2は、すぐ、次のブロックであるブロック2を読み込
み始める。データ入力処理手段2では読み込みブロック
がなくなるまで以上の動作を繰り返す。一方、ソート処
理手段3では、各ソート処理スレッド1〜mがデータ入
力処理手段2によって動かされるまで待機中になってい
て、動作状態になると、与えられたブロックのソートを
行い、終了するとまた待機中になる。
理手段3によるソート・マージ用主記憶領域5の各ブロ
ックのソートの終了を待つ。次にマージ・データ出力処
理手段6は、ソート済みの各ブロックデータをマージし
ながら、マージ後のデータを出力データ7として外部の
記憶装置に書き込む。
1において入力データ1をn個のブロックに分割し、デ
ータ入力処理手段2の入力処理スレッドによってブロッ
クごとに読み込んで、ソート処理手段3の待機中のソー
ト処理スレッドに渡す。待機中のソート処理スレッドは
入力処理スレッドによってソートの開始を起動され、与
えられたブロックのソートが終了すると、また、待機中
の状態になる。全てのブロックのソートが完了するとマ
ージ・データ出力処理手段6によって全ブロックのマー
ジ処理を行いながら出力データ7へ出力し、ソートを完
了する。
照して図1の実施の形態の動作について詳細に説明す
る。まず、記憶媒体、例えば外部ディスク装置に存在す
るソート対象データをn個のブロックに分割する。ま
た、m個のソート処理スレッド1〜mを用意する。
図4で説明をする。ステップS1において入力データ1
に未入力のブロックがあるかチェックし、あるならば、
ステップS2でソート・マージ用主記憶領域5へ読み込
む。ステップS3では、図3の各ソート処理スレッドを
管理するソート処理スレッド管理テーブルのソート実行
情報により実行中でないソート処理スレッドを検索す
る。もし、全てのソート処理スレッドが実行中であれ
ば、どれか1つが空きになるまで同期待ちを行う。空き
のスレッドが検索できたら(ここでは一例としてソート
処理スレッド1のソート実行情報1が実行中でなかった
とすると)、ステップS4で読み込んだブロックの開始
位置1とブロックの終了位置1の情報をソート処理スレ
ッド管理テーブルにセットする。ステップS5では、ソ
ート管理テーブルのソート実行情報1を実行状態にセッ
トし、動作情報1を動作可能状態にセットする。以上の
ステップS1からステップS5までの処理を未入力のブ
ロックがなくなるまで繰り返し続ける。そして、未入力
のブロックがなくなると全ソート終了待ち手段4へ処理
を移行する。
て図5を参照して説明する。ソート処理手段3ではあら
かじめ、それぞれが図5のように動作するソート処理ス
レッドをm個起動しておく。図5において、例えばソー
ト処理スレッド1の場合、ソート処理スレッド1は、ス
テップS6では最初にソート処理スレッド管理テーブル
の初期化を行い、ステップS7で動作情報1が動作可能
状態になるまで同期待ちを行う。そして、先に説明した
ようにデータ入力処理手段2によってブロックの読み込
みが行われ、ソートの準備が整うと、動作情報1が動作
可能状態にされ、ソート処理スレッド1は、次にステッ
プS8で読み込んだソート処理スレッド管理テーブルの
ブロックの開始位置1とブロックの終了位置1の各情報
に基づいてブロックのソートを行う。このときソート済
みの各ブロックのデータはソート・マージ用主記憶領域
5に格納されている。ソートが終了すると、ステップS
9でソート実行情報1を実行中でない状態にし、動作情
報1を動作できない状態にする。この後、また、ステッ
プS7で動作情報1が動作状態になるのを待ち、ステッ
プS7からステップS9までの処理を繰り返す。
2とソート処理手段3は、図2のようにデータ入力とソ
ート処理を並列に実行する。なお、図2は、ブロック数
nを4、スレッド数mを3とした場合を一例として示し
たものである。
スレッドのソート処理スレッド管理テーブルのソート実
行情報が全て実行状態でない状態になるまで同期待ちを
行う。そして実行フラグが全てオフになったらマージ・
データ出力処理手段6へ移行する。
ソート・マージ用主記憶領域5にあるソート済みの各ブ
ロック1〜nをマージし、出力データ7としてデータの
書き込みを行う。
のサイズより主記憶領域のサイズが大きいコンピュータ
システム上において、第一に、図2のようにデータ入力
処理スレッドとソート処理スレッドを並列で実行するた
め、入力処理とソート処理を非同期に実行でき、入力処
理時に外部記憶装置から主記憶領域へのデータ転送待ち
でプロセッサが空き状態なってもソート処理スレッドへ
プロセッサを割り当てることができる。 第2に、図1
のようにソート処理手段3とマージ・データ出力処理手
段6の間のデータの受け渡しはソート・マージ用主記憶
領域5を使用して行うため、外部記憶装置を使用してデ
ータの受け渡しを行う場合と比べて主記憶領域と外部記
憶装置との間のデータ転送の時間を削減できるので高速
にデータの受け渡しを行うことができる。以上の効果に
よってソート処理全体の高速化を図ることができる。
に限定されることなく、例えば、ソート処理を並列実行
するための処理単位を、スレッドではなく、タスクとす
る(すなわちソート処理手段自体を複数設ける)等、図
1の各手段2、3、4、および6をより分割したり、あ
るいは統合したりする等の変更が適宜可能である。ま
た、本発明による並列ソート装置は、コンピュータシス
テムとそれによって実行されるプログラムとによって実
現することができ、そのプログラムはコンピューター読
み取り可能な記録媒体に記録して配布することが可能で
ある。
置によれば、ソートとマージ間でのデータの受け渡しを
主記憶領域上で行うことができ、また、入力ファイルの
読み込み処理中もソート処理の並列実行が可能となるの
で、従来に比べ、ソート処理に要する時間の短縮やリソ
ースの低減を図ることができる。
のブロック図
レッドの動作を示すタイミング図
理スレッド管理テーブルを示す図
ローチャート
レッドの動作を示すフローチャート
Claims (4)
- 【請求項1】 複数のプロセッサを有し、ソート処理を
複数に分割して並列に実行し、終了後マージ処理を行っ
てソート結果を出力する並列ソート装置において、 複数のプロセッサで共有可能な主記憶領域を有し、該領
域にソート対象のデータを複数のブロックに分割して記
憶する主記憶手段と、 並列実行可能な複数の処理単位からなり、各処理単位が
主記憶手段内の各データブロック毎にソート処理を実行
するソート処理手段と、 外部記憶装置からソート対象のデータを入力し、複数の
ブロックに分割して主記憶手段に記憶するとともに、ソ
ート処理手段の複数の処理単位に対して主記憶手段内の
各データブロック毎にソート処理を行わさせるデータ入
力処理手段と、 ソート処理が終了した主記憶手段内の全ブロックのデー
タにマージ処理を行って、ソート結果を出力するマージ
・データ出力処理手段とを備えることを特徴とする並列
ソート装置。 - 【請求項2】 前記データ入力処理手段が、1つのデー
タブロックを主記憶手段に記憶する毎に、該記憶したデ
ータブロックに対してソート処理手段の1つの処理単位
によるソート処理を起動し、 データの入力処理と複数のソート処理とを並列に実行す
ることを特徴とする請求項1記載の並列ソート装置。 - 【請求項3】 分割したブロックのソート処理とソート
済みのブロックのマージ処理との間のデータの受け渡し
を前記主記憶領域を用いて行うことを特徴とする請求項
1記載の並列ソート装置。 - 【請求項4】 請求項1〜3のいずれか1項に記載の並
列ソート装置が、コンピュータシステムとそれによって
実行されるプログラムとから実現されるものであって、
該プログラムを記録したコンピューター読み取り可能な
記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11420299A JP3456443B2 (ja) | 1999-04-21 | 1999-04-21 | 並列ソート装置及び該装置のプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11420299A JP3456443B2 (ja) | 1999-04-21 | 1999-04-21 | 並列ソート装置及び該装置のプログラムを記録した記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000305751A true JP2000305751A (ja) | 2000-11-02 |
| JP3456443B2 JP3456443B2 (ja) | 2003-10-14 |
Family
ID=14631775
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11420299A Expired - Lifetime JP3456443B2 (ja) | 1999-04-21 | 1999-04-21 | 並列ソート装置及び該装置のプログラムを記録した記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3456443B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006215968A (ja) * | 2005-02-07 | 2006-08-17 | Fujitsu Ltd | データ処理装置、データ処理方法、データ処理プログラム、および記録媒体 |
| JP2007299216A (ja) * | 2006-04-28 | 2007-11-15 | Toshiba Corp | 不揮発性フラッシュメモリを用いる記憶装置とその制御方法 |
| JP2016157339A (ja) * | 2015-02-25 | 2016-09-01 | 富士通株式会社 | コンパイラプログラム、コンピュータプログラム及びコンパイラ装置 |
-
1999
- 1999-04-21 JP JP11420299A patent/JP3456443B2/ja not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006215968A (ja) * | 2005-02-07 | 2006-08-17 | Fujitsu Ltd | データ処理装置、データ処理方法、データ処理プログラム、および記録媒体 |
| JP2007299216A (ja) * | 2006-04-28 | 2007-11-15 | Toshiba Corp | 不揮発性フラッシュメモリを用いる記憶装置とその制御方法 |
| JP2016157339A (ja) * | 2015-02-25 | 2016-09-01 | 富士通株式会社 | コンパイラプログラム、コンピュータプログラム及びコンパイラ装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3456443B2 (ja) | 2003-10-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7545381B2 (en) | Interruptible GPU and method for context saving and restoring | |
| US7526634B1 (en) | Counter-based delay of dependent thread group execution | |
| US20090300324A1 (en) | Array type processor and data processing system | |
| US10402223B1 (en) | Scheduling hardware resources for offloading functions in a heterogeneous computing system | |
| JPH02183362A (ja) | コンピュータシステム | |
| US20070180161A1 (en) | DMA transfer apparatus | |
| CN106790599A (zh) | 一种基于多核无锁环形缓冲区的共生虚拟机通信方法 | |
| CN111124641B (zh) | 一种利用多线程的数据处理方法及系统 | |
| JP3098342B2 (ja) | 並列処理装置における処理順序指定方式 | |
| CN118642665B (zh) | 数据湖无锁写入方法、装置、设备、介质及产品 | |
| CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
| JPS62221732A (ja) | 情報処理装置 | |
| JPH0340868B2 (ja) | ||
| JP3456443B2 (ja) | 並列ソート装置及び該装置のプログラムを記録した記録媒体 | |
| WO2006123547A1 (ja) | 情報処理装置、システム、方法およびプロセッサ | |
| CN119645903A (zh) | 一种提高实时图像数据输入处理和输出效率的优化方法 | |
| JPH04120652A (ja) | 並列処理装置 | |
| JP4497445B2 (ja) | 単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品 | |
| JP2002014827A (ja) | プロセスの制御及び可視化方法 | |
| US20240249127A1 (en) | Neural network processing | |
| JP2006107004A (ja) | トレース制御回路、マイクロプロセッサ及びトレース制御方法 | |
| JP3002041B2 (ja) | データベース演算処理装置 | |
| CN121879993A (zh) | 任务处理方法、装置、设备、存储介质及程序产品 | |
| CN118378675A (zh) | 神经网络处理 | |
| CN120455687A (zh) | 一种高效视频解码方法、系统、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20030701 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070801 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080801 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080801 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090801 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090801 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100801 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130801 Year of fee payment: 10 |
|
| EXPY | Cancellation because of completion of term |