JP3975975B2 - 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム - Google Patents

並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム Download PDF

Info

Publication number
JP3975975B2
JP3975975B2 JP2003178399A JP2003178399A JP3975975B2 JP 3975975 B2 JP3975975 B2 JP 3975975B2 JP 2003178399 A JP2003178399 A JP 2003178399A JP 2003178399 A JP2003178399 A JP 2003178399A JP 3975975 B2 JP3975975 B2 JP 3975975B2
Authority
JP
Japan
Prior art keywords
quick sort
management table
processing thread
sort processing
processing
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 - Fee Related
Application number
JP2003178399A
Other languages
English (en)
Other versions
JP2005018158A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2003178399A priority Critical patent/JP3975975B2/ja
Publication of JP2005018158A publication Critical patent/JP2005018158A/ja
Application granted granted Critical
Publication of JP3975975B2 publication Critical patent/JP3975975B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラムに関し、特に対称型マルチプロセッサ(SMP;Symmetric Multiple Processor)システム上で共用メモリに載せたデータを複数のブロックに分け複数のクイックソート処理スレッドを利用して並列にクイックソートを行う並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラムに関する。
【0002】
【従来の技術】
データを複数のブロックに分割して並列にソートを行う方式の従来技術として、データ入力中に並行してソートを実行可能とする技術がある(例えば、特許文献1参照)。この技術では、図7に示すように、データ入力処理手段72が入力データ71を入力し複数のブロックに分割してソート・マージ用主記憶領域75に記憶するとともにソート処理手段73の複数のスレッドによるソート・マージ用主記憶領域75内の各ブロックに対するソート処理を起動し、ソート処理手段73の各スレッドがソート・マージ用主記憶領域75内の各ブロック毎にソート処理を実行し、全ソート処理終了待ち手段74が全ソート処理の終了を待ち合わせ、マージ・データ出力処理手段76がソート処理が終了したソート・マージ用主記憶領域75内の全ブロックのデータに対してマージ処理を行ってソート結果を出力する。
【0003】
また、基準値を使用して複数のブロックに分割する方式の従来技術がある(例えば、特許文献2参照)。この技術は、図8に示すように、プロセッサP2,…に、下位のプロセッサの個数Nを判断する判断回路86と、(N−1)個のデータを基準データとして入力データの中から選出する選出回路87と、(N−1)個の基準データを基に残りの入力データをN個のグループに分類する比較分類回路89とを装備して、下位のプロセッサの個数に応じて入力データを分類することにより、各プロセッサP2,…が多分木形式に結合されて、そのネットワークを有効に利用した並列クイックソート処理を行えるようにしたものである。
【0004】
【特許文献1】
特開2000-305751号公報(第3−4頁、図1)
【特許文献2】
特開平04-264621号公報(第3頁、図1)
【0005】
【発明が解決しようとする課題】
特許文献1記載の技術には、データ入力と並行にソートを実行できることがメリットとならない環境において、例えば、入力データを主記憶領域に格納する処理が高速に終わる場合、または最初から主記憶領域上にデータがある場合は、分割した各ブロック間で負荷にばらつきがあるときに、各ブロックの処理が完了するまで、最後のブロックのマージ処理を実行できないため、プロセッサの使用効率が下がる可能性があるという問題点がある。
【0006】
また、特許文献2記載の技術には、基準値によるブロックの分割の長所を生かせない仕組みとなっているという問題点がある。すなわち、特許文献2記載の技術では、各プロセッサは固定で結合されているため、下位のプロセッサ以外の他のプロセッサを利用できない構造となっており、プロセッサ全体の使用効率は良くならなかった。また、下位のプロセッサが別用途で利用されている場合は、2重の負荷を掛けることになっていた。さらに、再帰的に実行する仕組みをもたないため、1つしかプロセッサがない場合、ソート処理を実行できなかった。
【0007】
本発明の目的は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分割することを再帰的に繰り返すことにより、プロセッサの使用効率を向上させるようにした並列クイックソート装置を提供することにある。
【0008】
本発明の他の目的は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分割することを再帰的に繰り返すことにより、プロセッサの使用効率を向上させるようにした並列クイックソート方法を提供することにある。
【0009】
本発明の別の目的は、対称型マルチプロセッサシステム上で上記並列クイックソート方法を実現する並列クイックソート用プログラムを提供することにある。
【0010】
【課題を解決するための手段】
本発明の並列クイックソート装置は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート装置において、1つ以上のクイックソート処理スレッドが用意されたスレッドプールと、入力データを主記憶領域に格納するデータ入力処理手段と、前記データ入力処理手段により前記主記憶領域に入力データが格納された後に前記スレッドプールにある任意のクイックソート処理スレッドを起動するスレッド起動処理手段と、前記スレッド起動処理手段の実行後に全てのクイックソート処理スレッドが待機状態になるまで待ち合わせるソート処理終了待ち手段と、前記ソート処理終了待ち手段により全てのクイックソート処理スレッドが待機状態になったことが判断された後に前記主記憶領域上のソート済データを出力データとして出力するデータ出力処理手段とを備え、前記クイックソート処理スレッドが、ソート対象ブロックに対して基準値を選出し、ソート対象ブロック内のレコードをさらに複数のブロックに振り分け、振り分けられた各ブロックを処理するクイックソート処理スレッドを決定する一連の処理を再帰的に繰り返すことを特徴とする。
【0011】
また、本発明の並列クイックソート装置は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート装置において、実行フラグ,開始位置,終了位置,スタックカウンタおよびスタック領域からなるクイックソート処理スレッド管理テーブルをもち、初期処理手段,基準値選出処理手段,分類処理手段,ブロック処理スレッド決定手段,再帰処理手段および待機処理手段を含む1つ以上のクイックソート処理スレッドを用意するスレッドプールと、入力データを主記憶領域に格納するデータ入力処理手段と、前記データ入力処理手段により前記主記憶領域に入力データが格納された後に前記スレッドプールにある任意のクイックソート処理スレッドを起動するスレッド起動処理手段と、前記スレッド起動処理手段の実行後に全てのクイックソート処理スレッドが待機状態になるまで待ち合わせるソート処理終了待ち手段と、前記ソート処理終了待ち手段により全てのクイックソート処理スレッドが待機状態になったことが判断された後に前記主記憶領域上のソート済データを出力データとして出力するデータ出力処理手段とを備え、前記クイックソート処理スレッドが、ソート対象ブロックに対して基準値を選出し、ソート対象ブロック内のレコードをさらに複数のブロックに振り分け、振り分けられた各ブロックを処理するクイックソート処理スレッドを決定する一連の処理を再帰的に繰り返すことを特徴とする。
【0012】
さらに、本発明の並列クイックソート装置は、前記スレッド起動処理手段が、前記スレッドプールにある任意のクイックソート処理スレッドを1つ選択し、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルに前記主記憶領域に格納した入力データの開始位置および終了位置をセットし、当該クイックソート処理スレッド管理テーブルの実行フラグをオンにして当該クイックソート処理スレッドを起動させることを特徴とする。
【0013】
さらにまた、本発明の並列クイックソート装置は、前記初期処理手段が、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックし、レコード数が1以下ならば当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、レコード数が1より大きいならば当該クイックソート処理スレッド管理テーブルのスタックカウンタを0にすることを特徴とする。
【0014】
また、本発明の並列クイックソート装置は、前記基準値選出処理手段が、当該クイックソート処理スレッド管理テーブルの開始位置から終了位置までのブロック内にある任意のレコードを基準値として選出することを特徴とする。
【0015】
さらに、本発明の並列クイックソート装置は、前記分類処理手段が、前記基準値選出処理手段により選出された基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分けることを特徴とする。
【0016】
さらにまた、本発明の並列クイックソート装置は、前記ブロック処理スレッド決定手段が、各クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグを確認して待機中のクイックソート処理スレッドがあるかどうかをチェックし、待機中のクイックソート処理スレッドがない場合は、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にブロックの開始位置および終了位置をセットしてスタックカウンタを1増やし、待機中のクイックソート処理スレッドがある場合は、起動する別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグをオンにして別のクイックソート処理スレッドを起動し、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットすることを特徴とする。
【0017】
また、本発明の並列クイックソート装置は、前記再帰処理手段が、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、レコード数が1以下の場合は当該クイックソート処理スレッド管理テーブルのスタックカウンタをチェックし、スタックカウンタが0の場合は当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、スタックカウンタが1以上の場合は、当該クイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にある開始位置および終了位置を当該クイックソート処理スレッド管理テーブルの開始位置および終了位置にセットしてスタックカウンタの値を1減らし、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックすることを特徴とする。
【0018】
さらに、本発明の並列クイックソート装置は、前記待機処理手段が、当該クイックソート処理スレッド管理テーブルの実行フラグがオンになるまで待機し、実行フラグがオンになると前記初期処理手段に制御を移行することを特徴とする。
【0019】
一方、本発明の並列クイックソート方法は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート方法において、複数のブロックへの分割を任意の基準値を使用して再帰的に行い、分割された複数のブロックの個別のクイックソート処理について、同一のクイックソート処理スレッドで行うか、別々のクイックソート処理スレッドで行うかをプロセッサの負荷の状況に合わせて選択することを特徴とする。
【0020】
また、本発明の並列クイックソート方法は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート方法において、スレッドプールに1つ以上のクイックソート処理スレッドを用意する工程と、データ入力処理手段により入力データを主記憶領域に格納する工程と、スレッド起動処理手段によりスレッドプールにある任意のクイックソート処理スレッドを起動する工程と、クイックソート処理スレッドにより、ソート対象ブロックに対して基準値を選出し、ソート対象ブロック内のレコードをさらに複数のブロックに振り分け、振り分けられた各ブロックを処理するクイックソート処理スレッドを決定する一連の処理を再帰的に繰り返す工程と、ソート処理終了待ち手段により全てのクイックソート処理スレッドが待機状態になるまで待ち合わせる工程と、データ出力処理手段により主記憶領域上のソート済データを出力データとして出力する工程とを含むことを特徴とする。
【0021】
さらに、本発明の並列クイックソート方法は、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート方法において、スレッドプールに、実行フラグ,開始位置,終了位置,スタックカウンタおよびスタック領域からなるクイックソート処理スレッド管理テーブルをもち、初期処理手段,基準値選出処理手段,分類処理手段,ブロック処理スレッド決定手段,再帰処理手段および待機処理手段を含む1つ以上のクイックソート処理スレッドを用意する工程と、データ入力処理手段により入力データを主記憶領域に格納する工程と、スレッド起動処理手段により、スレッドプールにある任意のクイックソート処理スレッドを1つ選択し、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルに主記憶領域に格納した入力データの開始位置および終了位置をセットし、当該クイックソート処理スレッド管理テーブルの実行フラグをオンにして当該クイックソート処理スレッドを起動させる工程と、初期処理手段により、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックし、レコード数が1以下ならば当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、レコード数が1より大きいならば当該クイックソート処理スレッド管理テーブルのスタックカウンタを0にする工程と、基準値選出処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置から終了位置までのブロック内にある任意のレコードを基準値として選出する工程と、分類処理手段により、基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分ける工程と、ブロック処理スレッド決定手段により、各クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグを確認して待機中のクイックソート処理スレッドがあるかどうかをチェックし、待機中のクイックソート処理スレッドがない場合は、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にブロックの開始位置および終了位置をセットしてスタックカウンタを1増やし、待機中のクイックソート処理スレッドがある場合は、起動する別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグをオンにして別のクイックソート処理スレッドを起動し、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットする工程と、再帰処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、レコード数が1以下の場合は当該クイックソート処理スレッド管理テーブルのスタックカウンタをチェックし、スタックカウンタが0の場合は当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、スタックカウンタが1以上の場合は、当該クイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にある開始位置および終了位置を当該クイックソート処理スレッド管理テーブルの開始位置および終了位置にセットしてスタックカウンタの値を1減らし、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックする工程と、待機処理手段により、当該クイックソート処理スレッド管理テーブルの実行フラグがオンになるまで待機し、実行フラグがオンになると初期処理手段に制御を移行する工程と、ソート処理終了待ち手段により、全てのクイックソート処理スレッドが待機状態になるまで待ち合わせる工程と、データ出力処理手段により、主記憶領域上のソート済データを出力データとして出力する工程とを含むことを特徴とする。
【0022】
他方、本発明の並列クイックソートプログラムは、対称型マルチプロセッサシステムにおいて、共用メモリに載せたデータの複数のブロックへの分割を任意の基準値を使用して再帰的に行い、分割された複数のブロックの個別のクイックソート処理について、同一のクイックソート処理スレッドで行うか、別々のクイックソート処理スレッドで行うかをプロセッサの負荷の状況に合わせて選択することを実行させることを特徴とする。
【0023】
また、本発明の並列クイックソートプログラムは、対称型マルチプロセッサシステムに、スレッドプールに1つ以上のクイックソート処理スレッドを用意する工程と、データ入力処理手段により入力データを主記憶領域に格納する工程と、スレッド起動処理手段によりスレッドプールにある任意のクイックソート処理スレッドを起動する工程と、クイックソート処理スレッドにより、ソート対象ブロックに対して基準値を選出し、ソート対象ブロック内のレコードをさらに複数のブロックに振り分け、振り分けられた各ブロックを処理するクイックソート処理スレッドを決定する一連の処理を再帰的に繰り返す工程と、ソート処理終了待ち手段により全てのクイックソート処理スレッドが待機状態になるまで待ち合わせる工程と、データ出力処理手段により主記憶領域上のソート済データを出力データとして出力する工程とを実行させることを特徴とする。
【0024】
さらに、本発明の並列クイックソートプログラムは、対称型マルチプロセッサシステムに、スレッドプールに、実行フラグ,開始位置,終了位置,スタックカウンタおよびスタック領域からなるクイックソート処理スレッド管理テーブルをもち、初期処理手段,基準値選出処理手段,分類処理手段,ブロック処理スレッド決定手段,再帰処理手段および待機処理手段を含む1つ以上のクイックソート処理スレッドを用意する工程と、データ入力処理手段により入力データを主記憶領域に格納する工程と、スレッド起動処理手段により、スレッドプールにある任意のクイックソート処理スレッドを1つ選択し、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルに主記憶領域に格納した入力データの開始位置および終了位置をセットし、当該クイックソート処理スレッド管理テーブルの実行フラグをオンにして当該クイックソート処理スレッドを起動させる工程と、初期処理手段により、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックし、レコード数が1以下ならば当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、レコード数が1より大きいならば当該クイックソート処理スレッド管理テーブルのスタックカウンタを0にする工程と、基準値選出処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置から終了位置までのブロック内にある任意のレコードを基準値として選出する工程と、分類処理手段により、基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分ける工程と、ブロック処理スレッド決定手段により、各クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグを確認して待機中のクイックソート処理スレッドがあるかどうかをチェックし、待機中のクイックソート処理スレッドがない場合は、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にブロックの開始位置および終了位置をセットしてスタックカウンタを1増やし、待機中のクイックソート処理スレッドがある場合は、起動する別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグをオンにして別のクイックソート処理スレッドを起動し、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットする工程と、再帰処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、レコード数が1以下の場合は当該クイックソート処理スレッド管理テーブルのスタックカウンタをチェックし、スタックカウンタが0の場合は当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、スタックカウンタが1以上の場合は、当該クイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にある開始位置および終了位置を当該クイックソート処理スレッド管理テーブルの開始位置および終了位置にセットしてスタックカウンタの値を1減らし、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックする工程と、待機処理手段により、当該クイックソート処理スレッド管理テーブルの実行フラグがオンになるまで待機し、実行フラグがオンになると初期処理手段に制御を移行する工程と、ソート処理終了待ち手段により、全てのクイックソート処理スレッドが待機状態になるまで待ち合わせる工程と、データ出力処理手段により、主記憶領域上のソート済データを出力データとして出力する工程とを実行させることを特徴とする。
【0025】
本発明では、対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のクイックソート処理スレッドを利用して並列にソートを行う並列クイックソート装置において、複数のブロックへの分割を任意の基準値を使用して行い、また、このブロックの分割処理を再帰的に行う。そして、分割された複数のブロックの個別のクイックソート処理について、同一のクイックソート処理スレッドで行うか、別々のクイックソート処理スレッドで行うかをプロセッサの負荷の状況に合わせて選択できる。
【0026】
本発明では、特許文献1記載の技術の問題点に対して、ブロックの分割を再帰的に行うため、処理の各段階においてクイックソート処理スレッドの待機状態をチェックして起動することが可能になり、プロセッサの使用効率が向上する。
【0027】
また、本発明では、特許文献2記載の技術の問題点に対して、複数のクイックソート処理スレッドを用意しクイックソート処理スレッドを任意のプロセッサ上で実行させるため、プロセッサが固定的に利用されるような問題が発生しない。また、生成するクイックソート処理スレッドの数をあらかじめ変更できるため、プロセッサの負荷状況に合わせてクイックソート処理がプロセッサにかける負荷の度合いをコントロールすることが可能となる。
【0028】
なお、本発明では、スタックを使用することにより、1つのクイックソート処理スレッドで処理することが可能である。また、これにより、他のプロセッサが負荷が高い状態においても同一のプロセッサで処理することが可能となり、より柔軟なプロセッサの利用が可能となる。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【0030】
[第1の実施の形態]
図1を参照すると、本発明の第1の実施の形態に係る並列クイックソート装置は、データ入力処理手段2と、スレッド起動処理手段3と、スレッドプール4と、主記憶領域5と、ソート処理終了待ち手段6と、データ出力処理手段7とから、その主要部が構成されている。なお、図1中、符号1は入力データを、8は出力データをそれぞれ示す。
【0031】
主記憶領域5を複数のプロセッサ(図示せず)で共有でき、入力データ1より主記憶領域5のサイズが大きい対称型マルチプロセッサシステム上で、図1に示すように、スレッドプール4にm(1≦mの整数)個のクイックソート処理スレッドx1〜xmを用意する。
【0032】
各クイックソート処理スレッドx1〜xmは、初期処理手段11と、基準値選出処理手段12と、分類処理手段13と、ブロック処理スレッド決定手段14と、再帰処理手段15と、待機処理手段16とを含んで構成されている。各クイックソート処理スレッドx1〜xmは、起動時に待機処理手段16を実行中とする。
【0033】
データ入力処理手段2は、記憶媒体、例えば外部ディスク装置に存在する入力データ1を主記憶領域5に格納する。
【0034】
スレッド起動処理手段3は、待機中のクイックソート処理スレッドの内の任意の1つのクイックソート処理スレッドxi(iは1≦i≦mの整数)を起動し、待機処理手段16から初期処理手段11に制御を移行させる。
【0035】
クイックソート処理終了待ち手段6は、スレッド起動処理手段3を実行後、全てのクイックソート処理スレッドx1〜xmが待機状態になるまで待ち合わせる。
【0036】
データ出力処理手段7は、クイックソート処理終了待ち手段6により、全てのクイックソート処理スレッドx1〜xmが待機状態になったと判定されたならば、クイックソート処理が完了したので、主記憶領域5上のソート済データを出力データ8として記憶媒体、例えば外部ディスク装置などに出力する。
【0037】
クイックソート処理スレッドx1〜xm内では、スレッド起動処理手段3や他のクイックソート処理スレッドのブロック処理スレッド決定手段14により起動されるまで待機処理手段16で待機する。
【0038】
初期処理手段11は、クイックソート処理スレッドx1〜xmの起動後、初期処理を行う。詳しくは、初期処理手段11は、ソート対象ブロックのレコード数をチェックし、レコード数が1より大きい場合は、スタックカウンタを0にして、基準値選出処理手段12に制御を移行する。レコード数が1以下ならば、実行フラグをOFFにして、待機処理手段16に制御を移行する。
【0039】
基準値選出処理手段12は、ソート対象ブロック内の任意のレコードの値をクイックソートの基準値に選出する。
【0040】
分類処理手段13は、ソート対象ブロック内のレコード群を基準値より大きいレコード群と小さいレコード群との2つのブロックに分ける。
【0041】
ブロック処理スレッド決定手段14は、分類処理手段13により2つに分けられた各ブロックについて、処理を行うクイックソート処理スレッドを決定する。詳しくは、まず、分けられたブロックの一方をソート対象ブロックとして同一のクイックソート処理スレッドxi内で処理するか、または別のクイックソート処理スレッドxj(jは1≦j≦m,j≠iの整数)で処理するかをプロセッサの負荷の状況に合わせて決定する。プロセッサの負荷の状況は、スレッドプール4に待機中のクイックソート処理スレッドがあるかどうかで確認する。待機中のクイックソート処理スレッドがある場合は、その待機中のクイックソート処理スレッドを起動し、ソート対象ブロックの処理をさせる。また、待機中のクイックソート処理スレッドがない場合は、後に同一のクイックソート処理スレッドxi内で処理できるようにソート対象ブロックの開始位置および終了位置をクイックソート処理スレッド管理テーブルyi(図2参照)のスタック領域にセットする。次に、ブロック処理スレッド決定手段14は、分けられたブロックの他方を引き続き同一のクイックソート処理スレッドxi内で処理するために、再帰処理手段15を実行する。
【0042】
再帰処理手段15は、ソート対象ブロックのレコード数をチェックし、レコード数が1より大きい場合は、基準値選出処理手段12に制御を移行する。レコード数が1以下ならば、再帰処理手段15は、クイックソート処理スレッド管理テーブルyiのスタック領域よりブロックの開始位置および終了位置を取り出し、別のブロックの処理を実行する。このとき、スタック領域よりブロックの開始位置および終了位置を取り出した別のブロックのレコード数が1以下ならば、スタック領域からブロックの開始位置および終了位置の取り出しを再度行い、レコード数が1より大きい場合は、基準値選出処理手段12に制御を移行する。
【0043】
以上の処理をクイックソート処理スレッドが待機処理手段16に制御を移行し待機状態になるまで繰り返す。
【0044】
図2を参照すると、各クイックソート処理スレッドx1〜xmごとのクイックソート処理スレッド管理テーブルy1〜ymは、実行フラグ,開始位置,終了位置,スタックカウンタ,およびスタック領域から構成されている。スタック領域には、各ブロックの開始位置および終了位置を表すブロック位置情報がスタックカウンタ値の数だけ格納される。
【0045】
次に、このように構成された第1の実施の形態に係る並列クイックソート装置の動作について、図1および図2,ならびに図3〜図5のフローチャートを参照して詳細に説明する。
【0046】
まず、対称型マルチプロセッサシステム上でスレッドプール4中にm個のクイックソート処理スレッドx1〜xmを用意する。各クイックソート処理スレッドx1〜xmは、図2で示すクイックソート処理スレッド管理テーブルy1〜ymをもつものとする。
【0047】
次に、データ入力処理手段2は、入力データ1の記憶媒体、例えば外部ディスク装置に存在するソート対象データを主記憶領域5に格納し、スレッド起動処理手段3に制御を移行する。
【0048】
スレッド起動処理手段3は、スレッドプール4にある任意のクイックソート処理スレッドxiを1つ選択し、主記憶領域5におけるソート対象ブロックの開始位置および終了位置をクイックソート処理スレッド管理テーブルyiにセットし、クイックソート処理スレッド管理テーブルyiの実行フラグをONにして、クイックソート処理スレッドxiを起動させる。
【0049】
ソート処理終了待ち手段6は、スレッド起動処理手段3によりクイックソート処理スレッドxiが起動されると、主記憶領域5に格納された入力データ1に対するクイックソート処理が完了し、全てのクイックソート処理スレッドx1〜xmが待機状態になるまで待ち合わせる。クイックソート処理が終了し全てのクイックソート処理スレッドx1〜xmが待機状態になると、ソート処理終了待ち手段6は、データ出力処理手段7に制御を移行する。
【0050】
データ出力処理手段7は、主記憶領域5に作成されたソート済データを出力データ8として記憶媒体、例えば外部ディスク装置に書き込む。
【0051】
次に、クイックソート処理スレッドxi内の動作について説明する。
【0052】
クイックソート処理スレッドxiは、クイックソート処理スレッド管理テーブルyi内の実行フラグがOFFの状態で生成され、待機処理手段16が最初に実行されるものとする。
【0053】
待機処理手段16は、実行フラグがONになるまで待機する。実行フラグがONになると、待機処理手段16は、初期処理手段11に制御を移行する。
【0054】
初期処理手段11の動作について、図3を参照しながら説明する。
【0055】
初期処理手段11は、クイックソート処理スレッド管理テーブルyiの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックする(ステップA1)。レコード数が1より大きい場合は、初期処理手段11は、クイックソート処理スレッド管理テーブルyiのスタックカウンタを0にして(ステップA2)、基準値選出処理手段12に制御を移行する。また、レコード数が1以下ならば、初期処理手段11は、ソートを行う必要がないので、クイックソート処理スレッド管理テーブルyiの実行フラグをOFFにして(ステップA3)、待機処理手段16に制御を移行する。
【0056】
基準値選出処理手段12は、クイックソート処理スレッド管理テーブルyiの開始位置から終了位置までのブロック(ソート対象ブロック)内にある任意のレコードを基準値として選出し、分類処理手段13に制御を移行する。
【0057】
分類処理手段13は、基準値選出処理手段12により選出された基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分ける。ここで、基準値より大きいレコード群をブロックb1に、小さいレコード群をブロックb2に振り分けるものとする。この後、分類処理手段13は、ブロック処理スレッド決定手段14に制御を移行する。
【0058】
ブロック処理スレッド決定手段14の動作について、図4を参照しながら説明する。
【0059】
まず、ブロック処理スレッド決定手段14は、各クイックソート処理スレッドx1〜xmのクイックソート処理スレッド管理テーブルy1〜ymの実行フラグを確認し、待機中のクイックソート処理スレッドがあるかどうかをチェックする(ステップB1)。
【0060】
待機中のクイックソート処理スレッドがない場合は、ブロック処理スレッド決定手段14は、実行中のクイックソート処理スレッドxi内でブロックb1の処理を行うための準備をする。詳しくは、ブロック処理スレッド決定手段14は、実行中のクイックソート処理スレッドxiのクイックソート処理スレッド管理テーブルyiのスタックカウンタが指すスタック領域位置にブロックb1の開始位置および終了位置をセットし、スタックカウンタを1増やす(ステップB2)。
【0061】
待機中のクイックソート処理スレッドがある場合は、ブロック処理スレッド決定手段14は、現時点で待機中の別のクイックソート処理スレッドでブロックb1の処理を行う準備をする。ここで、待機中の別のクイックソート処理スレッドをクイックソート処理スレッドxjとする。詳しくは、ブロック処理スレッド決定手段14は、クイックソート処理スレッドxjのクイックソート処理スレッド管理テーブルyjの開始位置および終了位置にブロックb1の開始位置および終了位置をセットする(ステップB3)。次に、ブロック処理スレッド決定手段14は、クイックソート処理スレッドxjのクイックソート処理スレッド管理テーブルyjの実行フラグをONにして、クイックソート処理スレッドxjを起動する(ステップB4)。
【0062】
ステップB2またはステップB4の後、ブロック処理スレッド決定手段14は、ブロックb2の処理の準備を行う。詳しくは、ブロック処理スレッド決定手段14は、実行中のクイックソート処理スレッドxiのクイックソート処理スレッド管理テーブルyiの開始位置および終了位置にブロックb2の開始位置および終了位置をセットし(ステップB5)、再帰処理手段15に制御を移行する。
【0063】
再帰処理手段15の動作について、図5を参照しながら説明する。
【0064】
まず、再帰処理手段15は、クイックソート処理スレッド管理テーブルyiの開始位置および終了位置に基づいてソート対象ブロックのレコード数を計算してチェックする(ステップC1)。
【0065】
ソート対象ブロックのレコード数が1より大きい場合は、再帰処理手段15は、基準値選出処理手段12へ制御を移行する。
【0066】
ソート対象ブロックのレコード数が1以下の場合は、再帰処理手段15は、クイックソート処理スレッド管理テーブルyiのスタックカウンタをチェックする(ステップC2)。
【0067】
スタックカウンタが0の場合は、再帰処理手段15は、実行フラグをOFFにして(ステップC3)、待機処理手段16へ制御を移行する。
【0068】
スタックカウンタが1以上の場合は、再帰処理手段15は、クイックソート処理スレッド管理テーブルyiのスタックカウンタを1減らし、クイックソート処理スレッド管理テーブルyiのスタックカウンタが指すスタック領域位置にあるブロック位置情報(ブロックの開始位置および終了位置)をクイックソート処理スレッド管理テーブルyiの開始位置および終了位置にセットする(ステップC4)。
【0069】
次に、再帰処理手段15は、クイックソート処理スレッド管理テーブルyiの開始位置および終了位置に基づいてソート対象ブロックのレコード数を計算してチェックする(ステップC5)。
【0070】
レコード数が1以下の場合は、再帰処理手段15は、ステップC2に制御を戻す。
【0071】
レコード数が1より大きい場合は、再帰処理手段15は、基準値選出処理手段12に制御を移行する。
【0072】
以上の処理を、全てのクイックソート処理スレッドx1〜xmが待機処理手段16へ制御を移行して待機状態になるまで繰り返す。
【0073】
なお、第1の実施の形態では、基準値が1つの場合を例にとって説明したが、基準値を2個以上選出して1回の分割で3個以上のブロックに分けることもできる。
【0074】
[第2の実施の形態]
図6は、本発明の第2の実施の形態に係る並列クイックソート装置の構成を示すブロック図である。本実施の形態に係る並列クイックソート装置は、図1に示した第1の実施の形態に係る並列クイックソート装置を実現する対称型マルチプロセッサシステム100に対して、並列クイックソートプログラム200を付加するようにした点だけが異なる。したがって、その他の特に言及しない部分には同一符号を付して、それらの詳しい説明を省略する。
【0075】
並列クイックソートプログラム200は、対称型マルチプロセッサシステム100に読み込まれ、対称型マルチプロセッサシステム100の動作を、並列クイックソート装置(データ入力処理手段2,スレッド起動処理手段3,スレッドプール4,主記憶領域5,ソート処理終了待ち手段6,およびデータ出力処理手段7)として制御する。並列クイックソートプログラム200の制御による対称型マルチプロセッサシステム100の動作は、第1の実施の形態に係る並列クイックソート装置の動作と全く同様になるので、その詳しい説明を割愛する。
【0076】
【発明の効果】
第1の効果は、複数のクイックソート処理スレッドが並列してクイックソート処理を行うため、高速な処理が可能となることである。
【0077】
第2の効果は、ブロックの分割を再帰的に行うため、処理の各段階においてクイックソート処理スレッドの待機状態をチェックして起動することが可能になり、プロセッサの使用効率が向上することである。
【0078】
第3の効果は、全てのブロックのクイックソート処理が終わると全体のクイックソート処理も完了するため、ブロックのマージ処理など、全体のクイックソートを完了させるためにクイックソート以外の処理を行う必要がなくなることである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る並列クイックソート装置の構成を示すブロック図である。
【図2】図1中の各クイックソート処理スレッドがもつクイックソート処理スレッド管理テーブルの構成を示す図である。
【図3】図1中の初期処理手段の動作を示すフローチャートである。
【図4】図1中のブロック処理スレッド決定手段の動作を示すフローチャートである。
【図5】図1中の再帰処理手段の動作を示すフローチャートである。
【図6】本発明の第2の実施の形態に係る並列クイックソート装置の構成を示すブロック図である。
【図7】従来の並列クイックソート装置の一例を示すブロック図である。
【図8】従来の並列クイックソート装置の他の例を示すブロック図である。
【符号の説明】
1 入力データ
2 データ入力処理手段
3 スレッド起動処理手段
4 スレッドプール
5 主記憶領域
6 ソート処理終了待ち手段
7 データ出力処理手段
8 出力データ
11 初期処理手段
12 基準値選出処理手段
13 分類処理手段
14 ブロック処理スレッド決定手段
15 再帰処理手段
16 待機処理手段
x1〜xm イックソート処理スレッド
y1〜ym クイックソート処理スレッド管理テーブル

Claims (3)

  1. 対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート装置において、
    実行フラグ,開始位置,終了位置,スタックカウンタおよびスタック領域からなるクイックソート処理スレッド管理テーブルをもち、初期処理手段,基準値選出処理手段,分類処理手段,ブロック処理スレッド決定手段,再帰処理手段および待機処理手段を含む1つ以上のクイックソート処理スレッドを用意するスレッドプールと、
    入力データを主記憶領域に格納するデータ入力処理手段と、
    前記データ入力処理手段により前記主記憶領域に入力データが格納された後に前記スレッドプールにある任意のクイックソート処理スレッドを1つ選択し、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルに前記主記憶領域に格納した入力データの開始位置および終了位置をセットし、当該クイックソート処理スレッド管理テーブルの実行フラグをオンにして当該クイックソート処理スレッドを起動するスレッド起動処理手段と、
    前記スレッド起動処理手段の実行後に全てのクイックソート処理スレッドが待機状態になるまで待ち合わせるソート処理終了待ち手段と、
    前記ソート処理終了待ち手段により全てのクイックソート処理スレッドが待機状態になったことが判断された後に前記主記憶領域上のソート済データを出力データとして出力するデータ出力処理手段とを備え、
    前記クイックソート処理スレッドが、ソート対象ブロックに対して基準値を選出し、ソート対象ブロック内のレコードをさらに複数のブロックに振り分け、振り分けられた各ブロックを処理するクイックソート処理スレッドを決定する一連の処理を再帰的に繰り返し、前記初期処理手段が、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックし、レコード数が1以下ならば当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、レコード数が1より大きいならば当該クイックソート処理スレッド管理テーブルのスタックカウンタを0にし、
    前記基準値選出処理手段が、当該クイックソート処理スレッド管理テーブルの開始位置から終了位置までのブロック内にある任意のレコードを基準値として選出し、
    前記分類処理手段が、前記基準値選出処理手段により選出された基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分け、
    前記ブロック処理スレッド決定手段が、各クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグを確認して待機中のクイックソート処理スレッドがあるかどうかをチェックし、待機中のクイックソート処理スレッドがない場合は、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にブロックの開始位置および終了位置をセットしてスタックカウンタを1増やし、待機中のクイックソート処理スレッドがある場合は、起動する別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグをオンにして別のクイックソート処理スレッドを起動し、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、
    前記再帰処理手段が、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、レコード数が1以下の場合は当該クイックソート処理スレッド管理テーブルのスタックカウンタをチェックし、スタックカウンタが0の場合は当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、スタックカウンタが1以上の場合は、当該クイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にある開始位置および終了位置を当該クイック ソート処理スレッド管理テーブルの開始位置および終了位置にセットしてスタックカウンタの値を1減らし、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、
    前記待機処理手段が、当該クイックソート処理スレッド管理テーブルの実行フラグがオンになるまで待機し、実行フラグがオンになると前記初期処理手段に制御を移行することを特徴とする並列クイックソート装置。
  2. 対称型マルチプロセッサシステム上で共用メモリに載せたデータを複数のブロックに分け複数のスレッドを利用して並列にクイックソートを行う並列クイックソート方法において、
    スレッドプールに、実行フラグ,開始位置,終了位置,スタックカウンタおよびスタック領域からなるクイックソート処理スレッド管理テーブルをもち、初期処理手段,基準値選出処理手段,分類処理手段,ブロック処理スレッド決定手段,再帰処理手段および待機処理手段を含む1つ以上のクイックソート処理スレッドを用意する工程と、
    データ入力処理手段により入力データを主記憶領域に格納する工程と、
    スレッド起動処理手段により、スレッドプールにある任意のクイックソート処理スレッドを1つ選択し、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルに主記憶領域に格納した入力データの開始位置および終了位置をセットし、当該クイックソート処理スレッド管理テーブルの実行フラグをオンにして当該クイックソート処理スレッドを起動させる工程と、
    初期処理手段により、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックし、レコード数が1以下ならば当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、レコード数が1より大きいならば当該クイックソート処理スレッド管理テーブルのスタックカウンタを0にする工程と、
    基準値選出処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置から終了位置までのブロック内にある任意のレコードを基準値として選出する工程と、
    分類処理手段により、基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分ける工程と、
    ブロック処理スレッド決定手段により、各クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグを確認して待機中のクイックソート処理スレッドがあるかどうかをチェックし、待機中のクイックソート処理スレッドがない場合は、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にブロックの開始位置および終了位置をセットしてスタックカウンタを1増やし、待機中のクイックソート処理スレッドがある場合は、起動する別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグをオンにして別のクイックソート処理スレッドを起動し、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットする工程と、
    再帰処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、レコード数が1以下の場合は当該クイックソート処理スレッド管理テーブルのスタックカウンタをチェックし、スタックカウンタが0の場合は当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、スタックカウンタが1以上の場合は、当該クイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にある開始位置および終了位置を当該クイックソート処理スレッド管理テーブルの開始位置および終了位置にセットしてスタックカウンタの値を1減らし、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックする工程と、
    待機処理手段により、当該クイックソート処理スレッド管理テーブルの実行フラグがオンになるまで待機し、実行フラグがオンになると初期処理手段に制御を移行する工程と、
    ソート処理終了待ち手段により、全てのクイックソート処理スレッドが待機状態になるまで待ち合わせる工程と、
    データ出力処理手段により、主記憶領域上のソート済データを出力データとして出力する工程と
    を含むことを特徴とする並列クイックソート方法。
  3. 対称型マルチプロセッサシステムに、スレッドプールに、実行フラグ,開始位置,終了位置,スタックカウンタおよびスタック領域からなるクイックソート処理スレッド管理テーブルをもち、初期処理手段,基準値選出処理手段,分類処理手段,ブロック処理スレッド決定手段,再帰処理手段および待機処理手段を含む1つ以上のクイックソート処理スレッドを用意する工程と、データ入力処理手段により入力データを主記憶領域に格納する工程と、スレッド起動処理手段により、スレッドプールにある任意のクイックソート処理スレッドを1つ選択し、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルに主記憶領域に格納した入力データの開始位置および終了位置をセットし、当該クイックソート処理スレッド管理テーブルの実行フラグをオンにして当該クイックソート処理スレッドを起動させる工程と、初期処理手段により、当該クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてソート対象ブロックのレコード数をチェックし、レコード数が1以下ならば当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、レコード数が1より大きいならば当該クイックソート処理スレッド管理テーブルのスタックカウンタを0にする工程と、基準値選出処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置から終了位置までのブロック内にある任意のレコードを基準値として選出する工程と、分類処理手段により、基準値を中心にソート対象ブロック内の各レコードをさらに2つのブロックに振り分ける工程と、ブロック処理スレッド決定手段により、各クイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグを確認して待機中のクイックソート処理スレッドがあるかどうかをチェックし、待機中のクイックソート処理スレッドがない場合は、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にブロックの開始位置および終了位置をセットしてスタックカウンタを1増やし、待機中のクイックソート処理スレッドがある場合は、起動する別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットし、別のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの実行フラグをオンにして別のクイックソート処理スレッドを起動し、実行中のクイックソート処理スレッドのクイックソート処理スレッド管理テーブルの開始位置および終了位置にブロックの開始位置および終了位置をセットする工程と、再帰処理手段により、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックし、レコード数が1以下の場合は当該クイックソート処理スレッド管理テーブルのスタックカウンタをチェックし、スタックカウンタが0の場合は当該クイックソート処理スレッド管理テーブルの実行フラグをオフにし、スタックカウンタが1以上の場合は、当該クイックソート処理スレッド管理テーブルのスタックカウンタが指すスタック領域位置にある開始位置および終了位置を当該クイックソート処理スレッド管理テーブルの開始位置および終了位置にセットしてスタックカウンタの値を1減らし、当該クイックソート処理スレッド管理テーブルの開始位置および終了位置に基づいてレコード数を計算してチェックする工程と、待機処理手段により、当該クイックソート処理スレッド管理テーブルの実行フラグがオンになるまで待機し、実行フラグがオンになると初期処理手段に制御を移行する工程と、ソート処理終了待ち手段により、全てのクイックソート処理スレッドが待機状態になるまで待ち合わせる工程と、データ出力処理手段により、主記憶領域上のソート済データを出力データとして出力する工程とを実行させるための並列クイックソートプログラム。
JP2003178399A 2003-06-23 2003-06-23 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム Expired - Fee Related JP3975975B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003178399A JP3975975B2 (ja) 2003-06-23 2003-06-23 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003178399A JP3975975B2 (ja) 2003-06-23 2003-06-23 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム

Publications (2)

Publication Number Publication Date
JP2005018158A JP2005018158A (ja) 2005-01-20
JP3975975B2 true JP3975975B2 (ja) 2007-09-12

Family

ID=34180043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003178399A Expired - Fee Related JP3975975B2 (ja) 2003-06-23 2003-06-23 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム

Country Status (1)

Country Link
JP (1) JP3975975B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5304251B2 (ja) * 2006-12-22 2013-10-02 日本電気株式会社 並列ソート装置、方法、およびプログラム
JP4966175B2 (ja) * 2007-12-04 2012-07-04 日本電信電話株式会社 分散インデックス結合方法及びシステム

Also Published As

Publication number Publication date
JP2005018158A (ja) 2005-01-20

Similar Documents

Publication Publication Date Title
CN103098014B (zh) 存储系统
CN1238793C (zh) 分布式存储器控制和带宽优化
CN110728578A (zh) 区块链交易的并行执行方法、系统及存储介质
US8996464B2 (en) Efficient partitioning techniques for massively distributed computation
US6886082B1 (en) Information processing system
JP3250861B2 (ja) ディスク装置システム
US5671405A (en) Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts
CN110333911A (zh) 一种文件包读取方法及装置
EP1760580A1 (en) Processing operation information transfer control system and method
JP3975975B2 (ja) 並列クイックソート装置,並列クイックソート方法および並列クイックソートプログラム
US7096341B1 (en) System and method for reference count regeneration
EP0363174A2 (en) Branch on bit processing
CN1262922C (zh) 数据处理装置及控制数据处理装置的方法
US9460034B2 (en) Structured block transfer module, system architecture, and method for transferring
CN113672373A (zh) 一种线程绑定的方法、装置及电子设备
JP2003256193A (ja) 並列ソート装置及び並列ソート方法並びにプログラム
US7130983B1 (en) System and method for reference count regeneration
CN1097783C (zh) 数据处理的系统和方法以及带有这类系统的通信系统
JPH07191827A (ja) スペース適応方式でシーケンシャル・リストを安定的にソート、又はマージするための方法、及び装置
CN113448962B (zh) 数据库数据管理方法和装置
EP3797361B1 (en) Warming up index files
JP2923952B2 (ja) マージ処理方法
CN114546943A (zh) 基于多进程调用的数据库文件排序优化方法及装置
JP2000305751A (ja) 並列ソート装置及び該装置のプログラムを記録した記録媒体
JPH04320572A (ja) データ処理装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061115

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070118

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: 20070529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070611

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

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

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: 20100629

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees