JP2015069518A - 処理の並列化装置、処理の並列化方法及びプログラム - Google Patents

処理の並列化装置、処理の並列化方法及びプログラム Download PDF

Info

Publication number
JP2015069518A
JP2015069518A JP2013204606A JP2013204606A JP2015069518A JP 2015069518 A JP2015069518 A JP 2015069518A JP 2013204606 A JP2013204606 A JP 2013204606A JP 2013204606 A JP2013204606 A JP 2013204606A JP 2015069518 A JP2015069518 A JP 2015069518A
Authority
JP
Japan
Prior art keywords
input
processing
processor
record
records
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
Application number
JP2013204606A
Other languages
English (en)
Other versions
JP6221584B2 (ja
Inventor
友章 佐川
Tomoaki Sagawa
友章 佐川
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 JP2013204606A priority Critical patent/JP6221584B2/ja
Publication of JP2015069518A publication Critical patent/JP2015069518A/ja
Application granted granted Critical
Publication of JP6221584B2 publication Critical patent/JP6221584B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】逐次処理を前提としたループ集計処理を、効率的に稼働する並列化処理に再構築することが可能な処理の並列化装置、処理の並列化方法及びプログラムを提供する【解決手段】並列化装置100は、複数のプロセッサ111と、少なくともキーとデータとを有する、複数の入力レコードを入力し、入力レコード夫々にかかる処理を、いずれかのプロセッサ111に割り当てる入力レコード分類手段101と、を有する。入力レコード分類手段101は、同一のキーを有する複数の入力レコードを、同一のプロセッサ111が処理するよう割り当てる。【選択図】図1

Description

本発明は処理の並列化装置、処理の並列化方法及びプログラムに関し、例えば逐次処理を前提としたループ集計処理を、効率的に稼働する並列化処理に再構築する技術に関する。
近時、コンピュータシステムの処理能力を増強するため、ハードウェアの台数を増加させて並列稼働させること(スケールアウト)がよく行われるようになった。このようなハードウェアのスケールアウトを見据えたとき、共有メモリ型並列計算機用のソフトウェアよりも、分散メモリ型並列計算機用のソフトウェアのほうが適しているとされる。
共有メモリ型並列計算機における並列処理では、各並列処理間でメモリ空間を共有できるメリットがある。その反面、ハードウェアのスケールアウトが困難である。一方、分散メモリ型並列計算機における並列処理では、各並列処理間でメモリ空間を共有できないためプロセス間で通信する必要がある。その反面、ハードウェアのスケールアウトが容易である。
従来、並列処理ソフトウェアを設計するに際しては、プログラマに対してこれらの特徴を踏まえた設計スキルが要求されており、その設計作業の負荷は大きいものであった。そのため、並列処理ソフトウェアを自動的に作成するための手法がいくつか提案されている。
特許文献1は、分散メモリ型並列計算機において、特にループ処理について、並列化可能な処理と逐次処理とを分けて異なる方式で処理を行う手法、及び並列化を徹底しつつ並列処理結果を都度プロセッサ間で通信して集計する手法を提案している。
また、特許文献2−3は、分散メモリ型並列計算機において、並列処理が可能な処理を効率的に実行するための種々の手法を提案している。
特開平06−231099号公報 特開平07−200498号公報 特開2001−005792号公報
しかしながら、特許文献1に記載の並列化可能な処理と逐次処理とを分けて異なる方式で処理を行う手法では、並行して行われる複数の処理と逐次で行われる1つの処理が併存するため、様々な弊害が発生する。また、並列化を徹底しつつ並列処理結果を都度プロセッサ間で通信して集計する手法では、プロセッサ間のデータの受け渡しを多数行う必要があるため、処理が非効率である。
また、特許文献2−3は、いずれも並列処理が可能であることが分かっている処理について、それを効率化する手法を提案するものであり、逐次処理を並列化することや、逐次処理と並列処理を併せた処理手法については、何ら言及していない。
本発明は、このような問題点を解決するためになされたものであり、逐次処理を前提とした処理、特にループ集計処理を、効率的に稼働する並列化処理に再構築することができる、処理の並列化装置、処理の並列化方法及びプログラムを提供することを目的とする。
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本発明にかかる並列化装置は、複数のプロセッサと、少なくともキーとデータとを有する、複数の入力レコードを入力し、前記入力レコード夫々にかかる処理を、いずれかの前記プロセッサに割り当てる入力レコード分類手段と、を有し、前記入力レコード分類手段は、同一の前記キーを有する複数の前記入力レコードを、同一の前記プロセッサが処理するよう割り当てるものである。
本発明にかかる並列化方法は、少なくともキーとデータとを有する、複数の入力レコードを入力するステップと、前記入力レコード夫々にかかる処理を、複数のプロセッサのいずれかに割り当てる入力レコード分類ステップと、を有し、前記入力レコード分類ステップでは、同一の前記キーを有する複数の前記入力レコードを、同一の前記プロセッサが処理するよう割り当てるものである。
本発明にかかるプログラムは、上記並列化方法をコンピュータに実行させるためのプログラムである。
本発明により、逐次処理を前提としたループ集計処理を、効率的に稼働する並列化処理に再構築することが可能な処理の並列化装置、処理の並列化方法及びプログラムを提供することができる。
本発明の実施の形態の構成を示す図である。 本発明の実施の形態における分散管理テーブルの構成を示す図である。 本発明の実施の形態の処理を示す図である。 本発明の実施の形態における入力及び出力の例を示す図である。 本発明の実施の形態における分散管理テーブルの例を示す図である。 本発明の実施の形態における入力の例を示す図である。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
はじめに、本実施の形態における並列化装置100の概要について説明する。並列化装置100は、ループ集計処理を並列化する処理を行う装置である。すなわち、並列化装置100は、逐次処理を前提として設計されたループ集計処理を、分散メモリ型並列計算機上において効率的に稼働するような並列化処理に再構築する処理を行うことに特徴を有するものである。ループ集計処理は、複数の入力レコード間に依存関係がないため各入力レコードを独立して処理できる部分と、各入力レコード間に依存関係がある処理と、の2種類の処理に分けることができる。前者は、例えば集計キーをIDとしたマスタ引き当て処理や、1レコード内の情報の加工処理がある。後者は、集計キーが同一のグループの複数の入力レコードに含まれる集計対象の集計処理や、入力レコード数のカウントアップ処理がある。本発明は、従来、主に逐次処理によって行われていた後者の処理を、効率的に並列化する手法に関する。
本実施の形態では、一例として、図4の表41のような、複数の入力レコードからなる入力データを、親キー及び子キーをソートキーとして使用して集計し、図4の表42のような集計結果を得る、ループ集計処理に本発明を適用する場合について説明する。すなわち、並列化装置100は、このループ集計処理を複数のプロセッサに効率的に並列処理させる手法に特徴を有するものである。
なお、ここでいう親キー及び子キーとは、例えば、店舗名(親キー)と、その店舗で売れた商品名(子キー)のような、集計対象(およそ「商品」)を分類するための互いに独立したキーとしての関係を有する。この例に則れば、図4の表41の1レコード目(親キー=X、子キー=A、データ=3)は、「店舗Xにおいて商品Aが3個売れた」ことを意味する。同様に、3レコード目(親キー=Y、子キー=B、データ=5)は、「店舗Yにおいて商品Bが5個売れた」ことを意味する。そして、集計処理とは、店舗(親キー)毎及び商品名(子キー)毎に、その商品が何個売れたのかを集計する処理をいう。集計結果である表42は、例えば、店舗Xにおいて商品が合計9個売れたこと、そのうち商品Aの販売数は5であったことを示している。
図1乃至図5を用いて、本実施の形態における並列化装置100の構成について説明する。
並列化装置100は、入力レコード分類手段101、複数のプロセッサ111、集計手段121の処理手段を有する。また、並列化手段100は、図示しない記憶領域上に、しきい値131、プロセッサ数132、分散管理テーブル102、入力ファイル等141、出力ファイル等142のデータを保持する。
入力レコード分類手段101は、ループ集計処理が処理される際に、入力ファイル141等から入力レコードを読み込み、各プロセッサに入力レコードの集計処理をさせる指示を出す処理を行う。具体的には、入力レコード分類手段101は、現在の処理環境において利用できるプロセッサの数を、プロセッサ数132の情報を読み込むことで認識し、指示を出力すべきプロセッサ数の上限値を決定する。また、入力レコード分類手段101は、分散管理テーブル102を参照することで、各入力レコードを処理するため最も効率が良いプロセッサを選択する。ここでいう効率を判断するための処理フローは後述するが、入力レコード分類手段101は、しきい値131の情報を読み込んでその判断に利用する。
図2に示すように、分散管理テーブル102は、プロセッサ番号21、子キー22、親キー23、処理レコード数24の各項目を管理する記憶手段である。ここで管理するプロセッサの数、すなわち分散管理テーブル102が管理するレコード数は、プロセッサ数132の情報に応じて決定される。
複数のプロセッサ111は、ループ集計処理を実際に実行する演算処理手段である。プロセッサ111の数はプロセッサ数132の情報により決定される。
集計手段121は、全プロセッサ111によるループ集計処理の集計処理(第1段階の集計処理)が完了するまで待ち合わせ、各プロセッサ111による第1段階の集計処理結果を集計する処理(第2段階の集計処理)を行う。なお、集計手段121による第2段階の集計処理は、最も効率よく複数のプロセッサ111に処理が分散された場合は行われない。すなわち、この場合は、プロセッサ111における第1段階の集計処理によってすべての処理が完了するので、集計手段121による第2段階の集計処理は必要ない。一方、分散が効率よくなされなかったときは、各プロセッサ111における第1段階の集計処理の結果を対象として、集計手段121が第2段階の集計処理を行うことで、集計が完了する。
しきい値131は、複数のプロセッサ111のうちどのプロセッサ111に処理を行わせれば効率が良いかを判断する際の判断基準となる数値である。しきい値131は、分散管理テーブル102での処理レコード数の標準偏差と比較される。なお、しきい値131は、事前に利用者によって任意の適切な値に設定されるべきパラメータである。しきい値131を小さくすると、処理の分散がなされやすくなり、多くのプロセッサ111が活用されるようになる。しきい値131を大きくすると、処理が集中されやすくなり、使用されるプロセッサ111が偏在するようになる。
プロセッサ数132は、現在の処理環境下において使用可能なプロセッサ111の数を示す数値である。
入力ファイル等141は、ループ集計処理の処理対象となる入力ファイル、DB(データベース)の表(テーブル)、またはメモリ上の複数のレコード等である。入力ファイル等141に含まれる複数のレコードは、必ずしも集計キーでソートされている必要はない。
出力ファイル等142は、ループ集計処理の処理結果の格納先となる出力ファイル、DB(データベース)の表(テーブル)、またはメモリ上の複数のレコード等である。一般に、出力ファイル等142には、明細レコードと集計結果となるレコードとが混在している。
つづいて、図3のフローチャートを用いて、並列化装置100の動作について説明する。ここでは、並列化装置100が、入力ファイル等141としての入力レコード41(図4)を入力し、入力レコード41に対する集計処理を実行する場合を例として説明する。
ここで、集計処理とは、入力レコード41の親キーおよび子キーをキーとしてレコードの名寄せを行い、データを合算する処理をいう。かかる集計処理の結果、並列化装置100は、出力ファイル等142としての出力レコード42(図4)を出力する。
なお、この集計処理の前提として、しきい値131は1.5に設定されているものとする。また、分散管理テーブル102として、図5に示す分散管理テーブル61乃至65を使用するものとする。
ステップ31:入力ファイル等141の1レコードを入力する。
入力レコード分類手段101が、入力レコード41の1レコード目を入力する。1レコード目の内容は、親キー=X、子キー=A、データ=3である。
ステップ32:入力レコードの子キーが分散管理テーブル102に存在するか確認する。
入力レコード分類手段101が、分散管理テーブル61(図5)を参照し、ステップ31で入力したレコードの子キーが、分散管理テーブル61に存在するか判定する。分散管理テーブルとは、あるプロセッサ111が、あるレコードを対象とする集計処理を行っている場合、そのレコードの子キー及び親キーの情報を、そのプロセッサ111のプロセッサ番号と紐付けて保持する役割を担うテーブルである。いま、分散管理テーブル61には、いずれのプロセッサ111にも、何らの子キーも紐付けられていない。すなわち、ステップ31で入力したレコードの子キー「A」と紐付けられたプロセッサ111は存在しない。これは、この時点で、子キー「A」を有するレコードを処理しているプロセッサ111が1つも存在しないことを意味している。この場合、ステップ34に移行する。
ステップ34:入力レコードの親キーが分散管理テーブル102に存在するか確認する。
入力レコード分類手段101が、分散管理テーブル61(図5)を参照し、ステップ31で入力したレコードの親キーが、分散管理テーブル61に存在するか判定する。いま、分散管理テーブル61には、いずれのプロセッサ111にも、何らの親キーも紐付けられていない。すなわち、ステップ31で入力したレコードの親キー「X」と紐付けられたプロセッサ111は存在しない。これは、この時点で、親キー「X」を有するレコードを処理しているプロセッサ111が1つも存在しないことを意味している。この場合、ステップ37に移行する。
ステップ37:負荷が最も低いプロセッサ111を選択。
入力レコード分類手段101は、現時点で最も処理負荷が低いプロセッサ111を1つ選択し、そのプロセッサ111を、ステップ31で入力したレコードの集計処理を行うべきプロセッサとして決定する。なお、最も処理負荷が低いプロセッサ111が複数存在する場合は、その中から任意の1つのプロセッサ111を選択する。例えば、複数のプロセッサ111に予め序列を付与しておき、最も序列の高いプロセッサ111を選択することができる。ここでは、入力レコード分類手段101によりプロセッサ「1」が選択されたものとする。
この時点で、入力レコード分類手段101は、分散管理テーブル61の内容を、分散管理テーブル62のように更新する。すなわち、選択されたプロセッサ111のプロセッサ番号「1」と、入力レコードの子キー「A」及び親キー「X」とを、紐付けて保持する。また、プロセッサ番号「1」が集計処理を行うべきレコード数を保持する。ここでは、処理レコード数は「1」となる。この後、ステップ31に移行する。
ステップ31(2回目):
入力レコード分類手段101が、入力レコード41の2レコード目を入力する。1レコード目の内容は、親キー=X、子キー=A、データ=2である。
ステップ32:
入力レコード分類手段101が、現時点の分散管理テーブル62を参照し、2回目の入力レコードの子キー「A」が、分散管理テーブル62に存在するか判定する。いま、分散管理テーブル62では、プロセッサ「1」と子キー「A」が紐付けられている。これは、この時点で、子キー「A」を有するレコードを、プロセッサ「1」が既に処理していることを意味している。この場合、ステップ33に移行する。
ステップ33:既に子キーを処理しているプロセッサ111を選択。
入力レコード分類手段101が、2レコード目をプロセッサ「1」で処理すべきことを決定する。これは、同じキーを持つレコードの集計処理は極力同一プロセッサで行う方が、プロセッサ間のデータ通信を削減でき、効率的だからである。
入力レコード分類手段101は、この時点で、分散管理テーブル62の内容を、分散管理テーブル63のように更新する。すなわち、プロセッサ番号「1」が集計処理を行うべきレコード数は「2」となる。この後、再びステップ31に移行する。
ステップ31(3回目):
入力レコード分類手段101が、入力レコード41の3レコード目を入力する。3レコード目の内容は、親キー=Y、子キー=B、データ=5である。
ステップ32:
入力レコード分類手段101が、現時点の分散管理テーブル63を参照し、3回目の入力レコードの子キー「B」が、分散管理テーブル63に存在するか判定する。この時点で、分散管理テーブル63には該当するレコードがない。これは、子キー「B」を有するレコードを処理しているプロセッサ111は存在しないことを意味している。この場合、ステップ34に移行する。
ステップ34:
入力レコード分類手段101が、現時点の分散管理テーブル63を参照し、3回目の入力レコードの親キー「Y」が、分散管理テーブル63に存在するか判定する。この時点で、分散管理テーブル63には該当するレコードがない。これは、親キー「Y」を有するレコードを処理しているプロセッサ111は存在しないことを意味している。この場合、ステップ37に移行する。
ステップ37:負荷が最も低いプロセッサ111を選択。
入力レコード分類手段101は、現時点で最も処理負荷が低いプロセッサ111を1つ選択し、そのプロセッサ111を、3レコード目を処理すべきプロセッサとして決定する。ここでは、入力レコード分類手段101によりプロセッサ「2」が選択されたものとする。
この時点で、入力レコード分類手段101は、分散管理テーブル63の内容を、分散管理テーブル64のように更新する。すなわち、選択されたプロセッサ111のプロセッサ番号「2」と、入力レコードの子キー「B」及び親キー「Y」とを、紐付けて保持する。また、プロセッサ「2」の処理レコード数は「1」となる。この後、再びステップ31に移行する。
ステップ31(4回目):
入力レコード分類手段101が、入力レコード41の4レコード目を入力する。4レコード目の内容は、親キー=X、子キー=C、データ=4である。
ステップ32:
入力レコード分類手段101が、現時点の分散管理テーブル64を参照し、4回目の入力レコードの子キー「C」が、分散管理テーブル64に存在するか判定する。この時点で、分散管理テーブル64には該当するレコードがない。これは、子キー「C」を有するレコードを処理しているプロセッサ111は存在しないことを意味している。この場合、ステップ34に移行する。
ステップ33:
入力レコード分類手段101が、現時点の分散管理テーブル64を参照し、4回目の入力レコードの親キー「X」が、分散管理テーブル64に存在するか判定する。いま、分散管理テーブル64では、プロセッサ「1」と親キー「X」が紐付けられている。これは、この時点で、親キー「X」を有するレコードを、プロセッサ「1」が既に処理していることを意味している。この場合、ステップ35に移行する。
ステップ35:しきい値判定
入力レコード分類手段101は、入力レコードをステップ33で発見したプロセッサ111に処理させるべきかを判断するため、しきい値判定を行う。しきい値判定の処理は次の通りである。まず、入力レコード分類手段101は、現在の分散管理テーブル64に対し、入力レコードと同一の親キーを既に処理しているプロセッサ111で入力レコードを処理すると仮定して、分散管理テーブル64の「処理レコード数」カラムを更新した状態を想定する。この例では、プロセッサ「1」の処理レコード数を「3」とした状態を想定する。その上で、処理レコード数の標準偏差を求める。この例では、標準偏差は1.24となり、しきい値1.5を超えない。この場合、入力レコード分類手段101は、入力レコードをステップ33で発見したプロセッサ111に処理させてよいと判断する。すなわち、4レコード目をプロセッサ「1」に割り当てることとする。この場合、ステップ36に移行する。
なお、処理レコード数の標準偏差が閾値を超えた場合は、入力レコード分類手段101は、入力レコードをステップ33で発見したプロセッサ111に処理させるべきでないと判断する。すなわち、4レコード目の処理をプロセッサ「1」以外のプロセッサ111に割り当てることとする。この場合、ステップ37に移行し、現時点で処理負荷が最も低いプロセッサに処理を割り当てる。
同じ親キーを持つレコードの集計処理は極力同一プロセッサで行う方が、プロセッサ間のデータ通信を削減できる点で効率的である。しかしながら、特定のプロセッサに処理が集中しすぎると、逆にシステム全体として処理効率が低下してしまう。そのため、本実施の形態ではプロセッサ111の分散を調整する役割を担うしきい値131を導入し、これを利用者により適宜調整可能として、最も優れた処理効率を求めることができるようにした。
ステップ36:既に親キーを処理しているプロセッサ111を選択。
入力レコード分類手段101は、4レコード目を、既に同一の親キー「X」処理しているプロセッサ「1」で処理すべきものと決定する。
この時点で、入力レコード分類手段101は、分散管理テーブル64の内容を、分散管理テーブル65のように更新する。すなわち、選択されたプロセッサ111のプロセッサ番号「1」と、入力レコードの子キー「C」及び親キー「Y」とを、紐付けて保持する。この結果、プロセッサ「1」に紐づけられる子キーは「A,C」となる。また、プロセッサ「1」の処理レコード数は累計「3」となる。この後、再びステップ31に移行する。
以下、入力レコード分類手段101は、入力レコード41の5レコード目から7レコード目についても、上述の処理と同様に、図3のフローチャートに沿って特定のプロセッサ111に割り当てる処理を行う。その結果、7レコード全てを処理した時点では、分散管理テーブル102は、分散管理テーブル66(図5)のようになる。
そして、各プロセッサ111は、入力レコード分類手段101によって自らに割り当てられた入力レコード41のレコードのみについて、それぞれ集計処理を行う。かかる集計処理により、図4の出力レコード42のように、プロセッサ1では親キー「X」の集計値「9」と子キー「A」「C」の集計値「5」「4」が得られ、プロセッサ2では親キー「Y」の集計値「11」と子キー「B」の集計値「11」が得られ、プロセッサ3で親キー「Z」の集計値「5」と子キー「D」「E」の集計値「3」「2」が得られる。
この例における集計処理の効率について検討するに、図5の分散管理テーブル66における処理レコード数の標準偏差は、0.47と低い。このことから、3つのプロセッサ「1」「2」「3」が偏りなく均等に利用されていることがわかる。また、各プロセッサ111で行われた集計処理において使用されたキーの数は、「X」「A」「C」「Y」「B」「Z」「D」「E」の8個と少ない。このことから、効率よく分散処理がなされていることがわかる。
なお、標準偏差は、以下の数1により求めることができる。ここで、n:分散管理テーブルのレコード数、i:プロセッサ番号、xi:プロセッサ番号iの処理レコード数、xa:処理レコード数の平均、を示す。
Figure 2015069518
ここで、仮に、本実施の形態にかかる手法を採用せず、単に各プロセッサ111を均等に利用することを重視する手法(例えば、ラウンドロビン等の公知の負荷分散手法)を採用し(これはしきい値131を0に近づけた場合と等価である)、上記7レコードを処理する場合を想定する。この場合、処理レコード数の標準偏差は0.47であり、本実施の形態と略同等である。しかしながら、各プロセッサ111で行われた集計処理において使用されるキーの数は、「X」「A」「Y」「Z」「B」「E」「X」「Z」「C」「D」の10個となり、本実施の形態よりも多い。これは、異なるプロセッサ111で、同じキーを有する異なるレコードの集計処理が、より多く行われていることを意味する。この場合、プロセッサ間の通信が増加する。加えて、複数のプロセッサ111で分散して集計された親キー「X」と「Z」については、集計手段121を使用して、最終的な集計処理(第2段階の集計処理)を実施する必要が生ずる。
また、仮に、本実施の形態にかかる手法を採用せず、単にプロセッサ間の通信を最小化することのみを重視し、親キーが同一のレコードをすべて同一プロセッサで処理することとした手法を採用し(これはしきい値131を∞に近づけた場合と等価である)、上記7レコードを処理する場合を想定する。この場合は、処理レコード数の標準偏差、及び各プロセッサ111で行われた集計処理において使用されたキーの数は、本実施の形態と同等となる。しかしながら、例えば入力ファイル等141として、図6の入力レコード71を使用した場合では、本実施の形態に示す手法では処理レコード数の標準偏差が0.47であるのに対し、親キーが同一のレコードをすべて同一プロセッサで処理する手法における標準偏差は2.05と比較的大きくなる。これは、後者の手法において、利用されないプロセッサがより多く現れることを示している。
本実施の形態によれば、入力レコード分類手段101が、入力レコードと同一のキーを有する他の入力レコードを既に処理しているプロセッサ111が無い場合、処理負荷が最も低いプロセッサ111に処理を割り当てる。これにより、利用可能なプロセッサ111を均等に利用し、並列処理を効果的に行うことができる。
また、本実施の形態によれば、入力レコード分類手段101が、同一のキーを有する複数の入力レコードの集計処理を、同一のプロセッサ111に処理させる。これにより、集計結果を得るために必要なプロセッサ間の通信量を最小限に抑制し、並列処理を効率的に行うことができる。
さらに、本実施の形態によれば、入力レコード分類手段101は、しきい値131の値に応じて、複数のプロセッサ111に処理を分散させる程度を変更することができる。これにより、入力レコードの傾向に即した最適な並列処理を行うことができる。
このように、本実施の形態によれば、従来の逐次処理を前提としたループ集計処理を、適切なしきい値を与えるだけで、効率的に稼働する並列化処理に再構築することが可能である。
<その他の実施の形態>
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では親キーを1つとした例を説明したが、親キーが2つ以上の場合も同様の考えで処理できる。この場合、しきい値131は親キーの数だけ別々に設定し、図2の分散管理テーブル102の親キーの列を親キーの数だけ増やし、かつ図3のフローチャートのステップ34:親キー判定処理を、親キーの数だけ実施することになる。
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
100 並列化装置
101 入力レコード分類手段
111 プロセッサ
121 集計手段
131 しきい値
132 プロセッサ数
102 分散管理テーブル
141 入力ファイル等
142 出力ファイル等

Claims (10)

  1. 複数のプロセッサと、
    少なくともキーとデータとを有する、複数の入力レコードを入力し、前記入力レコード夫々にかかる処理を、いずれかの前記プロセッサに割り当てる入力レコード分類手段と、を有し、
    前記入力レコード分類手段は、
    同一の前記キーを有する複数の前記入力レコードを、同一の前記プロセッサが処理するよう割り当てる
    並列化装置。
  2. 前記入力レコード分類手段は、
    予め定められたしきい値を参照し、
    複数の前記プロセッサに処理が割り当てられた前記入力レコードの数の偏りが、前記しきい値を超えない場合に、同一の前記キーを有する複数の前記入力レコードを、同一の前記プロセッサが処理するよう割り当てるものである
    請求項1記載の並列化装置。
  3. 前記入力レコード分類手段は、
    第1の入力レコードを入力した際、前記第1の入力レコードと同一の前記キーを有する他の前記入力レコードを処理している前記プロセッサが無い場合には、複数の前記プロセッサのうち負荷の低い前記プロセッサに、前記第1の入力レコードの処理を割り当てる
    請求項1又は2記載の並列化装置。
  4. 複数の前記プロセッサによる処理結果を集計する集計手段をさらに有する
    請求項1乃至3いずれか1項記載の並列化装置。
  5. 前記プロセッサ毎に、処理が割り当てられた前記入力レコードの数と、処理が割り当てられた前記入力レコード夫々が有する前記キーと、を保持する分散管理テーブルをさらに有する
    請求項1乃至4いずれか1項記載の並列化装置。
  6. 少なくともキーとデータとを有する、複数の入力レコードを入力するステップと、
    前記入力レコード夫々にかかる処理を、複数のプロセッサのいずれかに割り当てる入力レコード分類ステップと、を有し、
    前記入力レコード分類ステップでは、
    同一の前記キーを有する複数の前記入力レコードを、同一の前記プロセッサが処理するよう割り当てる
    並列化方法。
  7. 前記入力レコード分類ステップは、
    予め定められたしきい値を参照し、
    複数の前記プロセッサに処理が割り当てられた前記入力レコードの数の偏りが、前記しきい値を超えない場合に、同一の前記キーを有する複数の前記入力レコードを、同一の前記プロセッサが処理するよう割り当てるものである
    請求項6記載の並列化方法。
  8. 前記入力レコード分類ステップは、
    第1の入力レコードを入力した際、前記第1の入力レコードと同一の前記キーを有する他の前記入力レコードを処理している前記プロセッサが無い場合には、複数の前記プロセッサのうち負荷の低い前記プロセッサに、前記第1の入力レコードの処理を割り当てるものである
    請求項6又は7記載の並列化方法。
  9. 複数の前記プロセッサによる処理結果を集計する集計ステップをさらに有する
    請求項6乃至8いずれか1項記載の並列化方法。
  10. コンピュータに、請求項6乃至9いずれか1項の方法を実行させるためのプログラム。
JP2013204606A 2013-09-30 2013-09-30 処理の並列化装置、処理の並列化方法及びプログラム Active JP6221584B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013204606A JP6221584B2 (ja) 2013-09-30 2013-09-30 処理の並列化装置、処理の並列化方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013204606A JP6221584B2 (ja) 2013-09-30 2013-09-30 処理の並列化装置、処理の並列化方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015069518A true JP2015069518A (ja) 2015-04-13
JP6221584B2 JP6221584B2 (ja) 2017-11-01

Family

ID=52836084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013204606A Active JP6221584B2 (ja) 2013-09-30 2013-09-30 処理の並列化装置、処理の並列化方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6221584B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081392A (ja) * 2016-11-14 2018-05-24 富士通株式会社 情報処理装置、情報処理システム、および状態情報収集プログラム
CN112709785A (zh) * 2020-12-23 2021-04-27 中国人民解放军国防科技大学 一种惯质系数可变可双向旋转棘轮式滚珠丝杠惯容器
CN112728003A (zh) * 2020-12-23 2021-04-30 中国人民解放军国防科技大学 一种用于滚珠丝杠惯容的可双向旋转棘轮展开式飞轮

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08297643A (ja) * 1995-04-26 1996-11-12 Hitachi Ltd 複数cpuでの処理分散方式
JPH1097544A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd データベース処理システム
JP2006309777A (ja) * 2006-05-18 2006-11-09 Hitachi Ltd 負荷分散システム
JP2006352236A (ja) * 2005-06-13 2006-12-28 Toyota Motor Corp ゲートウェイ
JP2012247979A (ja) * 2011-05-27 2012-12-13 Fujitsu Ltd 処理プログラム、処理方法及び処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08297643A (ja) * 1995-04-26 1996-11-12 Hitachi Ltd 複数cpuでの処理分散方式
JPH1097544A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd データベース処理システム
JP2006352236A (ja) * 2005-06-13 2006-12-28 Toyota Motor Corp ゲートウェイ
JP2006309777A (ja) * 2006-05-18 2006-11-09 Hitachi Ltd 負荷分散システム
JP2012247979A (ja) * 2011-05-27 2012-12-13 Fujitsu Ltd 処理プログラム、処理方法及び処理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081392A (ja) * 2016-11-14 2018-05-24 富士通株式会社 情報処理装置、情報処理システム、および状態情報収集プログラム
CN112709785A (zh) * 2020-12-23 2021-04-27 中国人民解放军国防科技大学 一种惯质系数可变可双向旋转棘轮式滚珠丝杠惯容器
CN112728003A (zh) * 2020-12-23 2021-04-30 中国人民解放军国防科技大学 一种用于滚珠丝杠惯容的可双向旋转棘轮展开式飞轮
CN112709785B (zh) * 2020-12-23 2022-05-24 中国人民解放军国防科技大学 一种惯质系数可变可双向旋转棘轮式滚珠丝杠惯容器
CN112728003B (zh) * 2020-12-23 2022-06-21 中国人民解放军国防科技大学 一种用于滚珠丝杠惯容的可双向旋转棘轮展开式飞轮

Also Published As

Publication number Publication date
JP6221584B2 (ja) 2017-11-01

Similar Documents

Publication Publication Date Title
AU2023201414B2 (en) Systems and methods for performing data processing operations using variable level parallelism
JP6779231B2 (ja) データ処理方法及びシステム
JP6605573B2 (ja) 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ
US8595732B2 (en) Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme
US20110320460A1 (en) Efficient representation of data lineage information
US10733202B2 (en) Advanced database systems and methods for use in a multi-tenant system
US20150032680A1 (en) Parallel tree based prediction
US11106649B2 (en) Electronic apparatus, data chain archiving method, system and storage medium
CN108415912B (zh) 基于MapReduce模型的数据处理方法和设备
CN107729423A (zh) 一种大数据处理方法及装置
JP6221584B2 (ja) 処理の並列化装置、処理の並列化方法及びプログラム
US20160034528A1 (en) Co-processor-based array-oriented database processing
US20160125009A1 (en) Parallelized execution of window operator
Mestre et al. Adaptive sorted neighborhood blocking for entity matching with mapreduce
Han et al. Distme: A fast and elastic distributed matrix computation engine using gpus
US20160092279A1 (en) Distributed real-time computing framework using in-storage processing
JP7427896B2 (ja) データベースの分割システム、データベースの分割方法、及びデータベースの分割プログラム
US20230093911A1 (en) Systems and methods for performing data processing operations using variable level parallelism
Wangsom et al. Multi-objective scheduling for scientific workflows on cloud with peer-to-peer clustering
US20210216573A1 (en) Algorithm to apply a predicate to data sets
JP2012003733A (ja) 論理式変換プログラム、及びsat解法プログラム
JP6457290B2 (ja) グラフを剪定する方法、前記グラフを剪定する方法をコンピュータに行なわせる命令を記録している非一時的なコンピュータ可読記憶媒体、及びグラフの剪定を行うためのコンピュータシステム
US10402230B2 (en) System allocating links for data packets in an electronic system
CN110309177B (zh) 一种数据处理的方法以及相关装置
Garshasbi et al. Tasks scheduling on parallel heterogeneous multi-processor systems using genetic algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170622

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170918

R150 Certificate of patent or registration of utility model

Ref document number: 6221584

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150