JPWO2005041067A1 - 情報処理方法及び情報処理システム - Google Patents
情報処理方法及び情報処理システム Download PDFInfo
- Publication number
- JPWO2005041067A1 JPWO2005041067A1 JP2005514953A JP2005514953A JPWO2005041067A1 JP WO2005041067 A1 JPWO2005041067 A1 JP WO2005041067A1 JP 2005514953 A JP2005514953 A JP 2005514953A JP 2005514953 A JP2005514953 A JP 2005514953A JP WO2005041067 A1 JPWO2005041067 A1 JP WO2005041067A1
- Authority
- JP
- Japan
- Prior art keywords
- value
- processing module
- values
- list
- global
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
(1)データ表はサイズが巨大化しやすく、しかも例えば項目毎等に(物理的に)分割することが困難である。実際上、集計・検索のためにデータ表をメモリなどの高速な記憶装置上に展開することは困難である。
(2)データ表は、各項目値を同時にソートした形で保持できない。
(3)データ表には、同一値が何度も出現する。
[第1の課題:巨大配列の分掌管理]
「分散メモリ型」の第1の課題は、データの分掌管理の問題である。
巨大なデータ(一般的には配列なので、以降、配列で説明する)は、1つのプロセッサの所有するローカルメモリに収容できるものではなく、必然的に複数のローカルメモリに分掌管理される。効率的かつ柔軟な分掌管理メカニズムを導入しないと、プログラムの開発および実行に際してさまざまな障害を抱え込むことになることは明らかである。
分散メモリ型システムの各プロセッサが、巨大配列にアクセスしようとすると、自己の所有するローカルメモリ上の配列要素に対しては速やかにアクセスできるものの、他のプロセッサが所有する配列要素へのアクセスはプロセッサ間通信を必須とする。このプロセッサ間通信はローカルメモリとの通信に比べ、極端にパフォーマンスが低く、最低でも100クロックかかると言われている。このため、ソート実施時には、巨大配列全域にわたる参照が実施され、プロセッサ間通信が多発するため、パフォーマンスが極端に低下する。
このため、「分散メモリ型」のマルチプロセッサシステムでは、プロセッサ数は多いのに、シングルプロセッサ(共有メモリ型)よりも100倍遅くなることになりかねない。
「分散メモリ型」の第3の課題は、多数のプロセッサにどうやってプログラムを供給するか、という問題である。
非常に多数のプロセッサに、別々のプログラムをロードし、全体を協調動作させる方式(MIMD:Multiple Instruction Stream, Multiple Data Stream)では、プログラムの作成、コンパイル、配信のために多大な負荷を要する。
本発明の更なる目的は、順序付きの値のリストを格納しているメモリをそれぞれに有する複数の処理モジュールが論理的に環状に接続されている情報処理システムにおいて、集計処理を高速に実現するため、各処理モジュールで個別に順序付けされている値に複数の処理モジュール間で共通の順序番号を付与する情報処理方法を提供することである。
また、本発明は、上記の情報処理方法を実現するためコンピュータによって実行されるプログラムの提供を目的とする。
各処理モジュールは、情報の項目に対応した項目値を含むレコードの配列として表される表形式データを、項目値に対応した項目値番号の順序に該項目値が格納されている値リスト、及び、レコードの順番に項目値番号を指定する情報が格納されたポインタ配列の形式で記憶するメモリを具備している、情報処理システムにおいて、
複数の処理モジュールに格納されている項目値を集計する情報処理方法であって、
各処理モジュールが、自処理モジュール内のレコードに対して複数の処理モジュール間で一意に割り当てられたグローバル・レコード番号と、自処理モジュール内の項目値に対して複数の処理モジュール間で順序付けられたグローバル項目値番号とをメモリに記憶するステップと、
各処理モジュールが、自処理モジュール内で、少なくとも1個以上の指定された項目のグローバル項目値番号の組によって順序付けられた順番でレコードをソートするステップと、
各処理モジュールが、レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番を表す次元値番号を付与してメモリに格納するステップと、
各処理モジュールが、他の処理モジュールからグローバル項目値番号の組を相互に取得し、自処理モジュール内のグローバル項目値番号の組よりも前に順序付けされる組の個数をカウントし、自処理モジュール内のグローバル項目値番号の組の次元値番号をカウントされた個数分だけ引き上げることにより、グローバル項目値番号の組に対して、複数の処理モジュール間で共通のグローバル次元値番号を付けるステップと、
各処理モジュールが、グローバル項目値番号の組毎に、所定の情報の項目の項目値を所定の規則に従って集計することによりローカル集計値を算出するステップと、
各処理モジュールが、他の処理モジュールからグローバル項目値番号の組毎のローカル集計値を取得し、取得された集計値をグローバル項目値番号の組毎に集計することにより集計値を算出するステップと、
を有する情報処理方法により達成される。
各処理モジュールは、情報の項目に対応した項目値を含むレコードの配列として表される表形式データを、項目値に対応した項目値番号の順番に該項目値が格納されている値リスト、及び、レコードの順番に項目値番号を指定する情報が格納されたポインタ配列の形式で記憶するメモリを具備している、情報処理システムであって、
各処理モジュールは、自処理モジュール内のレコードに対して複数の処理モジュール間で一意に割り当てられたグローバル・レコード番号、及び、自処理モジュール内の項目値に対して複数の処理モジュール間で順序付けられたグローバル項目値番号を更にメモリに記憶し、
各処理モジュールは、
自処理モジュール内で少なくとも1個以上の指定された項目のグローバル項目値番号の組によって順序付けられた順番でレコードをソートするローカル・ソート手段と、
レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番に次元値番号を付与してメモリに格納する次元値番号付け手段と、
他の処理モジュールからグローバル項目値番号の組を相互に取得し、自処理モジュール内のグローバル項目値番号の組よりも前に順序付けされる組の個数をカウントし、自処理モジュール内のグローバル項目値番号の組の次元値番号をカウントされた個数分だけ引き上げることにより、グローバル項目値番号の組に対して、複数の処理モジュール間で共通のグローバル次元値番号を付けるグローバル次元値番号付け手段と、
グローバル項目値番号の組毎に、所定の情報の項目の項目値を所定の規則に従って集計することによりローカル集計値を算出する集計手段と、
他の処理モジュールからグローバル項目値番号の組毎のローカル集計値を取得し、取得された集計値をグローバル項目値番号の組毎に集計することにより集計値を算出するグローバル集計手段と、
を有する情報処理システムである。
また、本発明の目的は、複数の処理モジュールが論理的に環状に接続され、
各処理モジュールは、情報の項目に対応した項目値を含むレコードの配列として表される表形式データを、項目値に対応した項目値番号の順番に該項目値が格納されている値リスト、及び、レコードの順番に項目値番号を指定する情報が格納されたポインタ配列の形式で記憶するメモリを具備している、情報処理システムにおいて、
処理モジュールのコンピュータに、
自処理モジュール内のレコードに対して複数の処理モジュール間で一意に割り当てられたグローバル・レコード番号と、自処理モジュール内の項目値に対して複数の処理モジュール間で順序付けられたグローバル項目値番号とをメモリに記憶するステップと、
自処理モジュール内で少なくとも1個以上の指定された項目のグローバル項目値番号の組によって順序付けられた順番でレコードをソートするステップと、
レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番に次元値番号を付与してメモリに格納するステップと、
他の処理モジュールからグローバル項目値番号の組を相互に取得し、自処理モジュール内のグローバル項目値番号の組よりも前に順序付けされる組の個数をカウントし、自処理モジュール内のグローバル項目値番号の組の次元値番号をカウントされた個数分だけ引き上げることにより、グローバル項目値番号の組に対して、複数の処理モジュール間で共通のグローバル次元値番号を付けるステップと、
グローバル項目値番号の組毎に、所定の情報の項目の項目値を所定の規則に従って集計することによりローカル集計値を算出するステップと、
各処理モジュールが、他の処理モジュールからグローバル項目値番号の組毎のローカル集計値を取得し、取得された集計値をグローバル項目値番号の組毎に集計することにより集計値を算出するステップと、
を実行させるためのプログラムによって達成される。
各処理モジュールで個別に順序付けされている値に複数の処理モジュール間で共通の順序番号を付与する情報処理方法であって、
各処理モジュールが自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納するステップと、
各処理モジュールが自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する第1の送信ステップと、
各処理モジュールが、自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第1の更新ステップと、
各処理モジュールが受信した値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する第2の送信ステップと、
各処理モジュールが、自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した更なる値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第2の更新ステップと、
各処理モジュールが第1の送信ステップにおいて論理的に次の段に接続された処理モジュールへ送信した値のリストが、論理的に環状に接続された他の処理モジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、第2の送信ステップと第2の更新ステップを繰り返し実行するステップと、
を有する情報処理方法によって達成される。
各処理モジュールは、
自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納し、自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する初期化手段と、
論理的に前の段に接続された処理モジュールから値のリストを受信する受信手段と、
自処理モジュール内の値のリスト中の各値に対し、受信手段によって受信された値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する更新手段と、
受信手段によって受信された値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する送信手段と、
初期手段を起動し、初期化手段によって送信した値のリストが、論理的に環状に接続された他のモジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、受信手段、更新手段及び送信手段を繰り返し動作させる制御手段と、
を有する、
情報処理システムである。
自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納するステップと、
自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する第1の送信ステップと、
自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第1の更新ステップと、
受信した値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する第2の送信ステップと、
自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した更なる値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第2の更新ステップと、
第1の送信ステップにおいて論理的に次の段に接続された処理モジュールへ送信した値のリストが、論理的に環状に接続された他の処理モジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、第2の送信ステップと第2の更新ステップを繰り返し実行するステップと、
を実行させる。
以下、添付図面を参照して、本発明の実施の形態につき説明を加える。図3は、本発明の実施の形態にかかる情報処理システムの概略を示すブロックダイヤグラムである。この実施形態では、処理モジュールは、プロセッサ付きメモリモジュール(以下、「PMM」と称する)により構成される。図3に示すように、この実施の形態においては、複数の処理モジュールを論理的に環状に接続するため、複数のプロセッサ付きメモリモジュールPMM32−0、PMM32−1、PMM32−2、・・・がリング状に配置され、隣接するメモリモジュール間を、時計回りにデータを伝達する第1のバス(たとえば、符号34−0、34−1参照)、および、反時計回りにデータを伝達する第2のバス(たとえば、符号36−0、36−1参照)が接続している。第1のバスおよび第2のバスでは、PMM間のパケット通信が実行される。本実施の形態において、このパケット通信が実行される伝送路(パケット伝送路)を、第1のバスおよび第2のバスと称する。
メモリ44は、複数のバンクBANK0、1、・・・、n(符号46−0、・・・、n)を有し、それぞれに、後述する所定の配列を記憶できるようになっている。
また、制御回路40は、外部の他のコンピュータ等とのデータ授受が可能である。また、他のコンピュータが、バスアービトレーションにより、メモリの所望のバンクにアクセスできるようにしても良い。
本実施の形態における集計とは、例えば、情報の項目に対応した項目値を含むレコードの配列として表される表形式データから、ある項目(次元)のある項目値(次元値)毎に、別の項目の項目値(メジャー)を集計することである。メジャーの集計とは、メジャーの個数をカウントしたり、メジャーの総和を算出したり、メジャーの平均値を算出したりすることである。また、次元数は、2次元以上でも構わない。例えば、図5は、ある保育園における園児の性別・年齢・身長の論理的な表形式データである。ここで、性別・年齢別に身長の合計値を求める処理は、本実施の形態における集計処理である。
図5に示された表形式データは、上述の国際公開第WO00/10103号に提案したデータ管理機構を用いることにより、単一コンピュータ内では図6に示されるようなデータ構造として記憶される。
他のレコードに対しても、また、年齢及び身長に関しても同様に項目値を取得することができる。
そこで、本実施の形態においては、複数のPMMが、重なることなくレコードのデータを分掌把握し、PMM同士のパケット通信により、高速な集計を実現している。
図7は、本実施の形態によるデータ記憶構造の説明図である。同図では、図5及び図6によって示された表形式のデータが、一例として、PMM−0、PMM−1、PMM−2及びPMM−3の4個の処理モジュールに分散配置され、分掌把握されている。説明の便宜上、処理モジュールの個数は4個であるが、本発明は処理モジュールの個数によって限定されるものではない。
各PMMのグローバル・レコード番号GOrd及びグローバル項目値番号GVNoは、予め各PMMの外部で計算して各PMMに設定することができるが、後述のコンパイル処理によって各PMM自体が設定することも可能である。
次に、本実施の形態による集計処理を説明する。本実施の形態による集計アルゴリズムは、すべての処理モジュールで同じ処理を実行できるように構成されている。また、この集計アルゴリズムは、単一の集計処理命令を複数の処理モジュールへ与えることにより、複数の処理モジュールが並列に動作して集計処理を実行できるように構成されている。すべての処理モジュールは、同じ動作を実行するので、一つのプログラムを作成するだけで、並列処理を実現できる。
更に、各処理モジュールは、レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番に次元値番号を付与してメモリに格納する(ステップ803)。
ここで、図7に示されたようなデータに対して、「性別・年齢別に身長の合計値を求める」という集計処理を適用する。ここで、性別及び年齢はディメンジョン(次元)であり、身長はメジャー(測度)である。
(0,82)
(3,69)
(4,78)
を他の処理モジュールPMM−1、PMM−2及びPMM−3へ送信する。また、処理モジュールPMM−0は、処理モジュールPMM−1から送信された2個の組、
(1,91)
(2,82)
と、処理モジュールPMM−2から送信された2個の組、
(2,154)
(3,84)
と、処理モジュールPMM−3から送信された2個の組、
(1,87)
(4,80)
を伝送路1604を介して受け取る。処理モジュールPMM−1、PMM−2及びPMM−3についても同様に自処理モジュールのローカル集計結果を他のモジュールへ送信すると共に、他の処理モジュールからローカル集計結果を受信する。
本実施の形態による情報処理システムのように、順序付きの値のリストを格納しているメモリをそれぞれに有する複数の処理モジュールが論理的に環状に接続されている情報処理システムでは、各処理モジュールで個別に順序付けされている値に複数の処理モジュール間で共通の順序番号を付与する情報処理方法、即ち、順序番号付与方法が必要である。
例えば、図12を参照して説明したように、グローバル次元値番号を付与する際には、各処理モジュールで個別に順序付けされている値に、複数の処理モジュール間で共通の順序番号を付与する順序番号付与処理が使用される。また、この順序番号付与処理は、グローバル次元値番号を付与する場合の他に、後述のコンパイル処理において、グローバル項目値番号を設定する場合にも使用される。
また、この順序番号付与方法は、他の処理モジュールからの値のリストの受信順に影響されないので、処理モジュール間の物理的な接続形態に全く依存しない。したがって、伝送路と順序番号更新回路を多重化することによって、更なる高速化を実現することができる。
ステップ3の終了時点で、各PMMは、他のすべての処理モジュールからの値のリストを受信することができる。この時点で、自処理モジュールが保持している値のリストと、受信した値のリストを合わせることにより、すべての値の順序を決めることができる。更に、ステップ4の終了時点では、すべての値を重複無く受信できることが分かる。
コンパイル処理は、各処理モジュールでデータを管理するために使用するグローバル・レコード番号GOrdとグローバル項目値番号GVNoを設定するための処理である。グローバル・レコード番号GOrdは、上述のオフセット値OFFSETを使用することにより簡単に設定することができる。一方、グローバル項目値番号GVNoは、各処理モジュールが個別に保持している値リストに基づいて、すべての処理モジュール間で共通に順序付けされる番号である。
ローカル・ソート処理は、図9を参照して説明したように、グローバルな集計処理の一部として、或いは、グローバルなソート処理の一部として実行される処理である。本実施の形態では、ローカル・ソート処理が各処理モジュールで独立に行われるので、このローカル・ソート処理を高速化することにより、集計処理の処理速度を高速化することができる。
上記ステップ3101〜3107の処理が、配列OrdSet中の全ての値について、順次実行される(ステップ3108、3109参照)。
(m−1)*(2*n/m)
になる。最初の項(m−1)は、各コンピュータが他のコンピュータから受け取って処理しなければならない回数を表し、2番目の項(2*n/m)は、n/m個の2つの昇順リストを比較する際に、平均的に発生する比較の回数である。mが大きければ、
2*n
となり、グローバル・ソートのステップ数は、O(n)になる。即ち、比較を行うソートO(n*log(n))よりも効率がよい。これは、昇順のリストを比較することにより、効率化されたためと考えることができる。一方、mが消えていることは、コンピュータの台数が増えても、グローバル・ソートにおける1台あたりの処理量は変わらないことを意味している。
上述のローカル・ソート処理は、各処理モジュールを並列に動作させ得る点で優れている。しかし、ローカル・ソート処理は、他の方式でも実現できる。例えば、コンピュータの台数mがデータの個数nに匹敵する場合には、上述の順序番号付与処理の考え方を用いてローカル・ソート処理を実現してもよい。
年齢と性別でソートする例では、各PMMにおいて、レコード毎に性別GVNo、年齢GVNo、及び、GOrdの3次元の配列を作り、この3次元の配列に一気に順序番号を付与すれば、上述のローカル・ソート処理と同じ結果が得られる。図35A〜Fは、それぞれ、順序番号付与処理を使用するローカル・ソート処理の説明図である。
A[0]=(1,2,0)
A[1]=(0,0,1)
A[2]=(1,1,2)
である。
次に、図35Cに示されるように、順序番号を付与する。本例では、A[0]をOrdSet1へ送り、A[1]をOrdSet2へ送り、A[2]をOrdSet0へ送り、自分の保持する3次元配列と送られてきた配列を比較し、順序番号を付与する。
このような順序番号付与処理の結果として、図35Eに示されるような結果が得られる。図35Fには、順序番号の順に入れ替えた結果が示されている。図35Fに示されている結果は、図9に示されているローカル・ソートの結果と一致している。
並列化のアルゴリズムが稚拙である場合、SIMDを採用して所望の結果を得るためのプログラムの開発が困難であり、開発できたとしても、そのプログラムの自由度は低い。そこで、SIMDを採用するためには、SIMDに適した優れたアルゴリズムを開発する必要がある。この点、本実施の形態によるアルゴリズムは、
(1)処理の実行にあたって条件分岐がない。但し、検索処理の場合には、条件分岐が行われる可能性があるが、単純な条件分岐である。
(2)昇順のリストを相互に比較するなど、1つの命令で実行できる処理(ステップ数、クロック数)の占める割合が高い。
(3)すべての処理モジュールが平等に同じ役割を持つ。処理モジュール毎に違う役割があると、単一命令で処理を実現できない。
という点でデータ構造及びアルゴリズムが優れている。したがって、本実施の形態では、SIMDを採用する際にプログラムが簡単化され、プログラムの開発の容易性やプログラムの高い自由度を確保することができる。
本発明にかかる情報処理システムは、例えば、フロントエンドとなる端末装置と、リング状のチャネルを介して接続され、端末装置からの命令を、それぞれのPMMが受理することにより、PMMにおいて、上述したコンパイル、ソート、集計の処理が実行できる。また。各PMMはパケットを何れかのバスを利用して送出すればよく、PMM間の同期等を外部から制御する必要もない。
次に、本実施の形態にて導入した配列GOrdおよび配列GVNoの意義について説明する。グローバル順序集合配列GOrdは、各PMMが掌握するローカルな表形式データを集合させたグローバルな表形式データ中、各PMMの掌握する表形式データの各レコードの位置(順位)を示している。即ち、本実施の形態では、グローバル順序集合配列GOrd及び順序集合配列OrdSetにより、レコードの位置情報を、グローバルな成分とローカルな成分とに分離し、これにより、グローバルな表形式データを扱うことが可能となるとともに、各PMMが単独で処理を実行することも可能となる。
例えば、本実施の形態においてコンパイルが終了した状態(例えば、図25参照)で、グローバル順序集合配列GOrdの値の順序で、各項目の項目値を取り出していくことにより、表形式データ全体のビューを作成することができる。
単一のパーソナルコンピュータに複数の情報処理ユニットを設けるような構成を採用することで、以下のように、本発明を利用することができる。たとえば、札幌支社、東京支社、福岡支社の3つの表形式データを用意し、通常は、各支社の単位で、検索、集計、ソートなどを実行する。さらに、3つの支社を統合したグローバルな表形式データを考えて、各支社の表形式データが、全体表のうちの部分表であるとみなし、グローバルな表形式データに関する検索、ソートおよび集計を実現することができる。
無論、複数のパーソナルコンピュータをネットワークにて接続した場合にも、同様に、パーソナルコンピュータにて分掌されるローカルな表形式データに関する処理、および、グローバルな表形式データに関する処理を実現することもできる。
34 第1のバス
36 第2のバス
40 制御回路
42 バスI/F
44 メモリ
46 バンク
Claims (10)
- 複数の処理モジュールが論理的に環状に接続され、
各処理モジュールは、情報の項目に対応した項目値を含むレコードの配列として表される表形式データを、項目値に対応した項目値番号の順序に該項目値が格納されている値リスト、及び、レコードの順番に項目値番号を指定する情報が格納されたポインタ配列の形式で記憶するメモリを具備している、情報処理システムにおいて、
複数の処理モジュールに格納されている項目値を集計する情報処理方法であって、
各処理モジュールが、自処理モジュール内のレコードに対して複数の処理モジュール間で一意に割り当てられたグローバル・レコード番号と、自処理モジュール内の項目値に対して複数の処理モジュール間で順序付けられたグローバル項目値番号とをメモリに記憶するステップと、
各処理モジュールが、自処理モジュール内で、少なくとも1個以上の指定された項目のグローバル項目値番号の組によって順序付けられた順番でレコードをソートするステップと、
各処理モジュールが、レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番を表す次元値番号を付与してメモリに格納するステップと、
各処理モジュールが、他の処理モジュールからグローバル項目値番号の組を相互に取得し、自処理モジュール内のグローバル項目値番号の組よりも前に順序付けされる組の個数をカウントし、自処理モジュール内のグローバル項目値番号の組の次元値番号をカウントされた個数分だけ引き上げることにより、グローバル項目値番号の組に対して、複数の処理モジュール間で共通のグローバル次元値番号を付けるステップと、
各処理モジュールが、グローバル項目値番号の組毎に、所定の情報の項目の項目値を所定の規則に従って集計することによりローカル集計値を算出するステップと、
各処理モジュールが、他の処理モジュールからグローバル項目値番号の組毎のローカル集計値を取得し、取得された集計値をグローバル項目値番号の組毎に集計することにより集計値を算出するステップと、
を有する情報処理方法。 - 各処理モジュールが、集計値を算出するステップの後に、グローバル項目値番号の組から項目値の組を復元し、項目値の組、及び、項目値の組に対応した集計値を含む結果テーブルを生成するステップを更に有する、請求項1に記載の情報処理方法。
- 複数の処理モジュールが論理的に環状に接続され、
各処理モジュールは、情報の項目に対応した項目値を含むレコードの配列として表される表形式データを、項目値に対応した項目値番号の順番に該項目値が格納されている値リスト、及び、レコードの順番に項目値番号を指定する情報が格納されたポインタ配列の形式で記憶するメモリを具備している、
情報処理システムであって、
各処理モジュールは、自処理モジュール内のレコードに対して複数の処理モジュール間で一意に割り当てられたグローバル・レコード番号、及び、自処理モジュール内の項目値に対して複数の処理モジュール間で順序付けられたグローバル項目値番号を更にメモリに記憶し、
各処理モジュールは、
自処理モジュール内で少なくとも1個以上の指定された項目のグローバル項目値番号の組によって順序付けられた順番でレコードをソートするローカル・ソート手段と、
レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番に次元値番号を付与してメモリに格納する次元値番号付け手段と、
他の処理モジュールからグローバル項目値番号の組を相互に取得し、自処理モジュール内のグローバル項目値番号の組よりも前に順序付けされる組の個数をカウントし、自処理モジュール内のグローバル項目値番号の組の次元値番号をカウントされた個数分だけ引き上げることにより、グローバル項目値番号の組に対して、複数の処理モジュール間で共通のグローバル次元値番号を付けるグローバル次元値番号付け手段と、
グローバル項目値番号の組毎に、所定の情報の項目の項目値を所定の規則に従って集計することによりローカル集計値を算出する集計手段と、
他の処理モジュールからグローバル項目値番号の組毎のローカル集計値を取得し、取得された集計値をグローバル項目値番号の組毎に集計することにより集計値を算出するグローバル集計手段と、
を有する情報処理システム。 - 各処理モジュールは、グローバル集計手段に接続され、グローバル項目値番号の組から項目値の組を復元し、項目値の組、及び、項目値の組に対応した集計値を含む結果テーブルを生成する手段を更に有する、請求項3に記載の情報処理システム。
- 複数の処理モジュールが論理的に環状に接続され、
各処理モジュールは、情報の項目に対応した項目値を含むレコードの配列として表される表形式データを、項目値に対応した項目値番号の順番に該項目値が格納されている値リスト、及び、レコードの順番に項目値番号を指定する情報が格納されたポインタ配列の形式で記憶するメモリを具備している、情報処理システムにおいて、
処理モジュールのコンピュータに、
自処理モジュール内のレコードに対して複数の処理モジュール間で一意に割り当てられたグローバル・レコード番号と、自処理モジュール内の項目値に対して複数の処理モジュール間で順序付けられたグローバル項目値番号とをメモリに記憶するステップと、
自処理モジュール内で少なくとも1個以上の指定された項目のグローバル項目値番号の組によって順序付けられた順番でレコードをソートするステップと、
レコードに対応したグローバル項目値番号の組を、ソートされたレコードの順番に次元値番号を付与してメモリに格納するステップと、
他の処理モジュールからグローバル項目値番号の組を相互に取得し、自処理モジュール内のグローバル項目値番号の組よりも前に順序付けされる組の個数をカウントし、自処理モジュール内のグローバル項目値番号の組の次元値番号をカウントされた個数分だけ引き上げることにより、グローバル項目値番号の組に対して、複数の処理モジュール間で共通のグローバル次元値番号を付けるステップと、
グローバル項目値番号の組毎に、所定の情報の項目の項目値を所定の規則に従って集計することによりローカル集計値を算出するステップと、
各処理モジュールが、他の処理モジュールからグローバル項目値番号の組毎のローカル集計値を取得し、取得された集計値をグローバル項目値番号の組毎に集計することにより集計値を算出するステップと、
を実行させるためのプログラム。 - 処理モジュールのコンピュータに、集計値を算出するステップの後に、グローバル項目値番号の組から項目値の組を復元し、項目値の組、及び、項目値の組に対応した集計値を含む結果テーブルを生成するステップを更に実行させるための請求項5に記載のプログラム。
- 順序付きの値のリストを格納しているメモリをそれぞれに有する複数の処理モジュールが論理的に環状に接続されている情報処理システムにおいて、
各処理モジュールで個別に順序付けされている値に複数の処理モジュール間で共通の順序番号を付与する情報処理方法であって、
各処理モジュールが自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納するステップと、
各処理モジュールが自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する第1の送信ステップと、
各処理モジュールが、自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第1の更新ステップと、
各処理モジュールが受信した値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する第2の送信ステップと、
各処理モジュールが、自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した更なる値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第2の更新ステップと、
各処理モジュールが第1の送信ステップにおいて論理的に次の段に接続された処理モジュールへ送信した値のリストが、論理的に環状に接続された他の処理モジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、第2の送信ステップと第2の更新ステップを繰り返し実行するステップと、
を有する情報処理方法。 - 順序付きの値のリストを格納しているメモリをそれぞれに有する複数の処理モジュールと、複数の処理モジュールを論理的に環状に接続する伝送路と、を含み、各処理モジュール内の値のリスト中の値に複数の処理モジュール間で共通の順序番号を付与する情報処理システムであって、
各処理モジュールは、
自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納し、自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する初期化手段と、
論理的に前の段に接続された処理モジュールから値のリストを受信する受信手段と、
自処理モジュール内の値のリスト中の各値に対し、受信手段によって受信された値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する更新手段と、
受信手段によって受信された値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する送信手段と、
初期手段を起動し、初期化手段によって送信した値のリストが、論理的に環状に接続された他のモジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、受信手段、更新手段及び送信手段を繰り返し動作させる制御手段と、
を有する、
情報処理システム。 - 順序付きの値のリストを格納しているメモリをそれぞれに有する複数の処理モジュールが論理的に環状に接続されている情報処理システムにおいて、
処理モジュールのコンピュータに、
自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納するステップと、
自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する第1の送信ステップと、
自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第1の更新ステップと、
受信した値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する第2の送信ステップと、
自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した更なる値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第2の更新ステップと、
第1の送信ステップにおいて論理的に次の段に接続された処理モジュールへ送信した値のリストが、論理的に環状に接続された他の処理モジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、第2の送信ステップと第2の更新ステップを繰り返し実行するステップと、
を実行させるためのプログラム。 - 値のリストを格納しているメモリをそれぞれに有する複数の処理モジュールが論理的に環状に接続されている情報処理システムにおいて、
各処理モジュールで個別に保持されている値に複数の処理モジュール間で共通の順序番号を付与する情報処理方法であって、
各処理モジュールが自処理モジュール内の値のリスト中の各値の順序番号の初期値をメモリに格納するステップと、
各処理モジュールが自処理モジュールのメモリに格納されている値のリストを論理的に次の段に接続された処理モジュールへ送信する第1の送信ステップと、
各処理モジュールが、自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第1の更新ステップと、
各処理モジュールが受信した値のリスト中の値から自処理モジュール内の値のリスト中の値と一致する値を除いた更なる値のリストを論理的に次の段に接続された処理モジュールへ送信する第2の送信ステップと、
各処理モジュールが、自処理モジュール内の値のリスト中の各値に対し、論理的に前の段に接続された処理モジュールから受信した更なる値のリストの中から該各値よりも前に順序付けされる値の個数をカウントし、自処理モジュール内の値のリスト中の各値の順序番号をカウントされた個数分だけ引き上げることにより、自処理モジュール内の値のリスト中の各値の順序番号を更新し、更新された順序番号をメモリに格納する第2の更新ステップと、
各処理モジュールが第1の送信ステップにおいて論理的に次の段に接続された処理モジュールへ送信した値のリストが、論理的に環状に接続された他の処理モジュールを介して、論理的に前の段に接続された処理モジュールによって受信されるまで、第2の送信ステップと第2の更新ステップを繰り返し実行するステップと、
を有する情報処理方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003365643 | 2003-10-27 | ||
JP2003365643 | 2003-10-27 | ||
PCT/JP2004/015439 WO2005041067A1 (ja) | 2003-10-27 | 2004-10-19 | 分散メモリ型情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005041067A1 true JPWO2005041067A1 (ja) | 2007-04-26 |
JP4511469B2 JP4511469B2 (ja) | 2010-07-28 |
Family
ID=34510182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005514953A Expired - Fee Related JP4511469B2 (ja) | 2003-10-27 | 2004-10-19 | 情報処理方法及び情報処理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US7849289B2 (ja) |
JP (1) | JP4511469B2 (ja) |
CN (1) | CN100452032C (ja) |
WO (1) | WO2005041067A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007034878A (ja) * | 2005-07-29 | 2007-02-08 | Turbo Data Laboratory:Kk | 情報処理方法、情報処理装置および情報処理プログラム |
JP4881435B2 (ja) * | 2007-06-21 | 2012-02-22 | 株式会社ターボデータラボラトリー | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 |
JP5208117B2 (ja) * | 2007-08-28 | 2013-06-12 | 株式会社ターボデータラボラトリー | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム |
WO2010013320A1 (ja) * | 2008-07-30 | 2010-02-04 | 株式会社ターボデータラボラトリー | 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム |
JP5598279B2 (ja) * | 2010-11-16 | 2014-10-01 | 日本電気株式会社 | 分散メモリデータベースシステム、フロントデータベースサーバ、データ処理方法およびプログラム |
JP5382383B2 (ja) * | 2011-03-24 | 2014-01-08 | 日本電気株式会社 | データベース処理装置、データベース処理方法、プログラム及びデータベースのデータ構造 |
WO2014045320A1 (ja) * | 2012-09-21 | 2014-03-27 | 富士通株式会社 | 制御プログラム、制御方法および制御装置 |
CN105940367B (zh) * | 2014-02-07 | 2017-07-11 | 三菱电机株式会社 | 信息处理装置以及信息处理方法 |
US9268863B2 (en) * | 2014-06-03 | 2016-02-23 | International Business Machines Corporation | Hierarchical in-memory sort engine |
CN108696559B (zh) * | 2017-04-11 | 2021-08-20 | 华为技术有限公司 | 流处理方法及装置 |
CN112416319B (zh) * | 2020-11-12 | 2021-07-30 | 北京和德宇航技术有限公司 | 卫星系统变量保护方法、装置、电子设备及存储介质 |
CN115525795B (zh) * | 2021-06-25 | 2024-01-30 | 中科寒武纪科技股份有限公司 | 一种在多核处理器中对数据进行排序的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000010103A1 (fr) * | 1998-08-11 | 2000-02-24 | Shinji Furusho | Procede et dispositif de recuperation, de stockage et de triage de donnees formatees en tableaux |
JP2001092796A (ja) * | 1999-09-17 | 2001-04-06 | Taabo Data Laboratory Kk | 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット |
JP2001147800A (ja) * | 1999-11-22 | 2001-05-29 | Taabo Data Laboratory Kk | 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336180B1 (en) * | 1997-04-30 | 2002-01-01 | Canon Kabushiki Kaisha | Method, apparatus and system for managing virtual memory with virtual-physical mapping |
AUPO648397A0 (en) * | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6934785B2 (en) * | 2000-12-22 | 2005-08-23 | Micron Technology, Inc. | High speed interface with looped bus |
-
2004
- 2004-10-19 JP JP2005514953A patent/JP4511469B2/ja not_active Expired - Fee Related
- 2004-10-19 WO PCT/JP2004/015439 patent/WO2005041067A1/ja active Application Filing
- 2004-10-19 CN CNB200480034920XA patent/CN100452032C/zh not_active Expired - Fee Related
- 2004-10-19 US US10/595,542 patent/US7849289B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000010103A1 (fr) * | 1998-08-11 | 2000-02-24 | Shinji Furusho | Procede et dispositif de recuperation, de stockage et de triage de donnees formatees en tableaux |
JP2001092796A (ja) * | 1999-09-17 | 2001-04-06 | Taabo Data Laboratory Kk | 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット |
JP2001147800A (ja) * | 1999-11-22 | 2001-05-29 | Taabo Data Laboratory Kk | 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2005041067A1 (ja) | 2005-05-06 |
CN100452032C (zh) | 2009-01-14 |
JP4511469B2 (ja) | 2010-07-28 |
US20070245124A1 (en) | 2007-10-18 |
CN1886739A (zh) | 2006-12-27 |
US7849289B2 (en) | 2010-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893018B2 (en) | Dispersing data and parity across a set of segments stored via a computing system | |
JP4339381B2 (ja) | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 | |
JP4511469B2 (ja) | 情報処理方法及び情報処理システム | |
US9420036B2 (en) | Data-intensive computer architecture | |
Jain et al. | Input/output in parallel and distributed computer systems | |
JP4758429B2 (ja) | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 | |
Petersohn et al. | Flexible rule-based decomposition and metadata independence in modin: a parallel dataframe system | |
JP4673299B2 (ja) | 情報処理方法及び情報処理システム | |
CN114185895A (zh) | 数据导入导出方法、装置、电子设备及存储介质 | |
CN114443680A (zh) | 数据库管理系统、相关装置、方法和介质 | |
US20120290608A1 (en) | Data management in relational databases | |
JP4620593B2 (ja) | 情報処理システムおよび情報処理方法 | |
JP4772506B2 (ja) | 情報処理方法、情報処理システムおよびプログラム | |
JP4511464B2 (ja) | 情報処理システムおよび情報処理方法 | |
JP4559971B2 (ja) | 分散メモリ型情報処理システム | |
JPWO2009044486A1 (ja) | 表形式データをソートする方法、マルチコア型装置、及び、プログラム | |
JP4995724B2 (ja) | 情報処理システムおよび情報処理方法 | |
WO2010013320A1 (ja) | 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム | |
Riha et al. | An Adaptive Hybrid OLAP Architecture with optimized memory access patterns | |
JP5208117B2 (ja) | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム | |
CN118829977A (zh) | 在列存储数据库上对行存储表达式求值 | |
CN117708060A (zh) | 数据仓的文件处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071009 |
|
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: 20100427 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100506 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130514 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4511469 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160514 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |