JP2018055648A - アクセラレーションシステム及びアクセラレーション方法 - Google Patents
アクセラレーションシステム及びアクセラレーション方法 Download PDFInfo
- Publication number
- JP2018055648A JP2018055648A JP2016194864A JP2016194864A JP2018055648A JP 2018055648 A JP2018055648 A JP 2018055648A JP 2016194864 A JP2016194864 A JP 2016194864A JP 2016194864 A JP2016194864 A JP 2016194864A JP 2018055648 A JP2018055648 A JP 2018055648A
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- application
- processing
- specific
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Logic Circuits (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】再利用し易くしつつ特定用途向け回路を用いたデータ処理を高速化すること。【解決手段】所望の回路コンフィギュレーションデータに基づいて再構成可能回路を特定のデータ処理に特化した特定用途向け回路として機能させるアクセラレータサーバと、アクセラレータサーバに対して問い合わせを発行するアプリケーションが実行されるクライアントと、データが格納されたデータベースを管理する複数の異なるデータベース管理システムが実行されるデータベースサーバとを備えるアクセラレーションシステムにおけるアクセラレーション方法において、アクセラレータサーバが、特定用途向け回路に入力すべきデータのデータ量を調整した上で特定用途向け回路に調整後のデータ量ごとにデータを入力して特定のデータ処理を実行する。【選択図】図1
Description
本発明は、アクセラレーションシステム及びアクセラレーション方法に関し、特に、ハードウェア回路を用いてデータ処理を高速化するアクセラレーションシステム及びアクセラレーション方法に適用して好適なものである。
近年、センサ技術やデータ分析手法の発達により、大量データの分析が盛んに行われている。この際、大量データを高速に処理するために、汎用の演算装置の代わりに特定のデータ処理に特化したハードウェアアクセラレータによってデータ処理が行われることが多い。
高速なデータ処理を可能とするハードウェアアクセラレータとしては、ASIC(Application Specific Integrated Circuit)、GPU(Graphics Processing Unit)、FPGA(Field−Programmable Gate Array)などが存在している。これらのうち、高速化したい処理に合わせて柔軟に回路の開発を行えること及び製造コストの面で、FPGAがよく用いられる。
特許文献1では、ハードウェア回路の開発工数を削減するための技術として、高級プログラミング言語からハードウェア回路を合成する高位合成技術が提案されている。一方、特許文献2では、データベースを利用するアプリケーションのデータ処理をFPGAを用いて高速化するための技術が提案されている。
既に説明したように大容量のデータを高速に処理するためのハードウェアアクセラレータとしてFPGAが利用されており、FPGAは特定のデータ処理に特化した特定用途向け回路として開発される。このようなFPGAの処理性能は処理対象データの容量または型によって変わるため、データ処理を十分に高速化するためにFPGAに入力する処理対象データを操作する必要がある。
一般的にFPGAはデータを保持するメモリとしてSRAM及びDRAMを搭載する。SRAMは記憶容量が小さいが高速に動作する一方、DRAMは記憶容量が大きいが低速で動作する。FPGAによるデータ処理を高速化する場合、処理内容を考慮して参照頻度の高い処理結果データをSRAMに格納する必要がある。しかしながら、処理結果データはデータ処理中にも増加していくため、入力データを処理している最中に処理結果データがSRAMに格納しきれなくなるおそれがある。このように格納しきれない状態に至ると、FPGAのデータ処理性能が低下する。このように、FPGAを用いて高速なデータ処理を行うためにはFPGAのハードウェア特性を考慮する必要がある。
ところで、このようにFPGAを用いてデータ処理を行うためにはFPGAの回路設計を行う必要がある。FPGAは特定のデータ構造を持つデータのデータ処理に特化して開発されるが、非常に開発工数が掛かる。回路設計の工数を低減する技術としては、高級プログラミング言語からハードウェア回路記述を自動で作成する方法(高位合成技術)が存在しているが、このような高位合成技術は設計済みのFPGAのような特定用途向け回路の再利用を考慮した手法ではない。
本発明は以上の点を考慮してなされたもので、再利用し易くしつつ特定用途向け回路を用いたデータ処理を高速化することができるアクセラレーションシステム及びアクセラレーション方法を提案しようとするものである。
かかる課題を解決するため、本発明においては、所望の回路コンフィギュレーションデータに基づいて再構成可能回路を特定のデータ処理に特化した特定用途向け回路として機能させるアクセラレータサーバと、前記アクセラレータサーバに対して問い合わせを発行するアプリケーションが実行されるクライアントと、データが格納されたデータベースを管理する複数の異なるデータベース管理システムが実行されるデータベースサーバとを備え、前記アクセラレータサーバは、前記特定用途向け回路に入力すべきデータのデータ量を調整した上で前記特定用途向け回路に前記調整後のデータ量ごとに前記データを入力して前記特定のデータ処理を実行することを特徴とする。
また、本発明においては、所望の回路コンフィギュレーションデータに基づいて再構成可能回路を特定のデータ処理に特化した特定用途向け回路として機能させるアクセラレータサーバと、前記アクセラレータサーバに対して問い合わせを発行するアプリケーションが実行されるクライアントと、データが格納されたデータベースを管理する複数の異なるデータベース管理システムが実行されるデータベースサーバとを備えるアクセラレーションシステムにおけるアクセラレーション方法において、前記アクセラレータサーバが、前記特定用途向け回路に入力すべきデータのデータ量を調整した上で前記特定用途向け回路に前記調整後のデータ量ごとに前記データを入力して前記特定のデータ処理を実行することを特徴とする。
本発明によれば、再利用し易くしつつ特定用途向け回路を用いたデータ処理を高速化することができる。
以下、図面について、本発明の一実施の形態について詳述する。
(1)本実施の形態によるアクセラレーションシステムの構成
図1は、本実施の形態によるアクセラレーションシステムにおける構成例の概要について示した図であり、図2は、図1に示すアクセラレーションシステムの部的な構成例を示したブロック図である。
図1は、本実施の形態によるアクセラレーションシステムにおける構成例の概要について示した図であり、図2は、図1に示すアクセラレーションシステムの部的な構成例を示したブロック図である。
本実施の形態によるアクセラレーションシステムは、利用者がアプリケーション101を実行するクライアント1と、アプリケーション101の処理を高速に実行するアクセラレータサーバ2と、アプリケーション101が利用するデータが記録されているデータベース31と、データベース31を管理するデータベース管理システム(図示のDBMSに相当)32が動作するデータベースサーバ3(図示のDBサーバに相当)と、FPGA回路41を管理しているFPGA回路管理サーバ4とを備えている。クライアント1、アクセラレータサーバ2、データベースサーバ3及びFPGA回路管理サーバ4は、それぞれネットワーク5によって互いに接続されている。
アクセラレータサーバ2は、アプリケーション101の処理を高速に実行するFPGA21と、FPGA21を利用するためのアプリケーションソフトウェアであるアクセラレータプラットフォーム201が記録されているメモリ22と、アクセラレータプラットフォーム201を実行するCPU20とを備えている。
アクセラレータプラットフォーム201は、アプリケーション101からの問い合わせに対してFPGA21を用いて所定の速度以上で(「高速に」という)処理可能である場合にはFPGA21に処理を割り当てる一方、FPGA21を用いて高速に処理が不可能である場合にはデータベースサーバ3に処理を割り当てる。
FPGA回路管理サーバ4は、アクセラレータサーバ2に搭載されたFPGA21にダウンロードされる回路コンフィギュレーションデータとしてのFPGA回路41を管理している。FPGA回路41は、アクセラレータサーバ2のFPGA21にダウンロードされてコンフィグレーションが実施されることにより、特定用途向け回路として機能する。これらに関する情報はFPGA回路情報テーブル213において管理されている。
図3は、図1及び図2に示すDBスキーマ管理テーブル215の構成例を示す。DBスキーマ管理テーブル215は、そのカラムとして、ユーザが利用するDBMSを表すDBMS番号427と、DBMSに登録されているテーブル名を表すテーブル名428と、テーブル名428で表されるテーブルに属するカラムの名前であるカラム名429と、各カラムのデータがどのようなデータ型であるかを表すカラムのデータ型430と、を有する。
図4は、図1及び図2に示すDBデータ構造管理テーブル214の構成例を示す。DBデータ構造管理テーブル214は、そのカラムとして、ユーザが利用するデータベース管理システム32の名前を表すDBMS番号416と、DBMS番号416で利用できるデータ型を表すデータ型417と、データ型417のサイズを表すサイズ418と、データ型417が負数を扱えるか否かを表す負数419と、データ型417がどのような種類のデータであるかを表すデータ型識別子420と、DBMS番号416のバイトオーダを表すバイトオーダ421と、を有する。
図5は、FPGA回路情報テーブル213の構成例を示す。FPGA回路情報テーブル213は、そのカラムとして、各回路コンフィギュレーションデータのファイル名を示す回路ファイル名401と、各回路コンフィギュレーションデータのダウンロード先を示すダウンロード先402と、各回路コンフィギュレーションデータを一意に識別するための回路識別子403と、各回路コンフィギュレーションデータに基づく回路に対する入力データ数を示す入力数404と、入力データのサイズである入力データエントリサイズ405と、入力データのデータ型の種類を表す入力データ型識別子406と、入力データが数値である場合に、その数値の固定小数点の桁数を表す小数点桁数407と、入力データが数値である場合に、その数値が負数を許容するか否かを表す負数408と、各回路コンフィギュレーションデータに基づく回路の処理内容を表す処理内容409と、を有する。
入力データ型識別子406は、数値型データであることを表す「NUMBER」、文字列形データであることを表す「STRING」、及び、その他のデータ型であることを表す「BIT」のいずれかが登録される。
図6は、FPGAハードウェア情報テーブル211の構成例を示す。FPGAハードウェア情報テーブル211は、そのカラムとして、FPGA21の名前を表すFPGA番号422と、FPGA21を一意に特定するFPGA識別子423と、FPGA21のSRAM容量424と、FPGA21のDRAM容量425と、FPGA21のバイトオーダ426と、を有する。
図7は、入力データ中間結果データ管理テーブル212の構成例を示す。入力データ中間結果データ管理テーブル212は、そのカラムとして、回路識別子410と、入力データ型識別子411と、入力データ1つ分のサイズを表す入力データエントリサイズ412と、FPGA回路41での処理によって生成されるデータの数である中間結果データ数413と、FPGA回路41での処理後にFPGA21内のSRAMに保管されるデータの種類を表す中間結果データ型識別子414と、中間結果データ1つ分のサイズを表す中間結果データエントリサイズ415と、を有する。
(2)アクセラレーションシステムの動作例
本実施の形態によるアクセラレーションシステムの概要構成は以上のようであり、次にその動作例としてのアクセラレーション方法の一例について説明する。
本実施の形態によるアクセラレーションシステムの概要構成は以上のようであり、次にその動作例としてのアクセラレーション方法の一例について説明する。
図8は、本実施の形態によるアクセラレーションシステムにおける全体の処理の流れを示し、図9は、図8に示すステップS101の詳細を示す。図10は、図8に示すステップS102の詳細を示す。図11は、図8に示すステップS105の詳細を示す。図13は、図8のステップS108の詳細を示す。図14は、図8に示すステップS109の詳細を示す。図15は、図8に示すステップS110の詳細を示す。図16は、本実施の形態によるアクセラレーション処理を示すシーケンスチャートである。
図8のステップS101では、各テーブルへの登録処理が実行される。具体的には、データ処理の高速化に用いるFPGA21にコンフィギュレーションを実施したい回路コンフィギュレーションデータがFPGA回路情報テーブル213に登録される(図9のステップS111)。
次にデータ処理に用いる回路コンフィギュレーションデータに基づく回路の入力データと、FPGA回路41によって処理された後にFPGA21内のSRAMに保管される中間結果データとの関係が、入力データ中間結果データ管理テーブル212に登録される(図9のステップS112)。さらに、利用するデータベース管理システム32において使用可能なデータ型に関連する情報がDBデータ構造管理テーブル214に登録される(図9のステップS113)。
図8のステップS102では、FPGA情報登録・取得部216が、アクセラレータサーバ2に搭載されているFPGA21のハードウェア情報を取得し、FPGAハードウェア情報テーブル211に登録する。
具体的には、図10のステップS121ではまず、FPGA情報登録・取得部216が、アクセラレータサーバ2に接続されているFPGA21に関する情報を取得する。ステップS122では、FPGA情報登録・取得部216が、FPGA21に関する情報が全てFPGAハードウェア情報テーブル211で管理されているか否かを確認する。
FPGA21に関する情報が全てFPGAハードウェア情報テーブル211で管理されてない場合、FPGA情報登録・取得部216は、FPGAハードウェア情報テーブル211で管理されていないFPGA21に関する情報をFPGAハードウェア情報テーブル211に記録する(ステップS123)。
一方、FPGA21に関する情報が全てFPGAハードウェア情報テーブル211で管理されている場合、FPGA情報登録・取得部216は、FPGAハードウェア情報テーブル211から使用するFPGA21に関する情報としてSRAM容量を取得する(ステップS124)。
図8のステップS103では、アプリケーション101がアクセラレータプラットフォーム201に対してSQLを用いて問い合わせを発行する(図8のステップS103に相当)。
次にステップS104では、AP処理分割部217が、アプリケーション101によって発行されたSQLに応じて、例えばSQLの構文解析を実行したりSQLに対するDBMSの実行計画を解析する。AP処理分割部217は、そのSQLに応じて実行される全体処理をデータベース31によって実行可能な最小単位の処理に分割する(図16のステップS104にも相当)。以下、このように分割された各単位処理を「最小単位処理」と呼称する。
次にステップS105では、処理方法判断部218が、上述した最小単位処理の全てに関して、FPGA回路情報テーブル213及びDBデータ構造管理テーブル214を用いてFPGA21によって実行可能であるか否かについて最小単位処理ごとに判断する(図16のステップS105にも相当)。
具体的には、図11のステップS131では、処理方法判断部218が、分割された処理に対応する回路コンフィギュレーションデータがFPGA回路情報テーブル213内に記録されているか否かを判断する。
分割された処理に対応する回路がFPGA回路情報テーブル213内に記録されている場合、処理方法判断部218は、回路ダウンロード部219に、回路コンフィギュレーションデータのダウンロード先(図5に示すダウンロード先402に対応)を通知し、回路に関する情報、例えば図5に示す回路識別子403〜処理内容409を保存する(ステップS132)。一方、分割された処理に対応する回路コンフィギュレーションデータがFPGA回路情報テーブル213内に記録されていない場合、処理方法判断部218は、最小単位処理をデータベース管理システム32で実行するためのクエリを発行する(ステップS137)。
次に処理方法判断部218は、DBスキーマ管理テーブル215を参照して、分割された処理で用いるカラムのデータ型を取得する(図11のステップS133)。
次に処理方法判断部218は、図4に示すDBデータ構造管理テーブル214から、上述したステップS133において取得したデータ型417に対応するデータ型識別子420及びサイズ418を取得する(図11のステップS134)。
次に処理方法判断部218は、サイズ418と、回路の入力データエントリサイズ405とを比較する(図11のステップS135)。処理で用いるカラムの中間結果データエントリサイズ415が回路コンフィギュレーションデータに基づく回路の入力データエントリサイズ405のサイズ以下でない場合、処理方法判断部218は、最小単位処理をデータベース管理システム32で実行するためのクエリを発行する(ステップS137)。一方、処理で用いるカラムの中間結果データエントリサイズ415が回路の入力データエントリサイズ405のサイズ以下である場合、処理方法判断部218は、取得したデータ型識別子420と回路の入力データ型識別子406を比較する(図11のステップS136)。
取得したデータ型識別子420と回路の入力データ型識別子406とが一致している場合、処理方法判断部218は、対象単位処理に用いるカラムデータを取得するためのクエリと、処理対象カラム情報を取得するためのクエリとを発行する(図11のステップS138)。一方、取得したデータ型識別子420と回路の入力データ型識別子406とが一致していない場合、処理方法判断部218は、最小単位処理をデータベース管理システム32で実行するためのクエリを発行する(ステップS137)。
次に処理方法判断部218は、データ取得部220に対して既述のステップS137またはステップS138において発行したクエリの実行を依頼する(図11のステップS139)。
次に図8のステップS106では、回路ダウンロード部219が、処理方法判断部218から通知されたダウンロード先402において示されたダウンロード先から回路コンフィギュレーションデータをダウンロードし、FPGA21にコンフィギュレーションを実施する(図16のステップS106にも相当)。ダウンロード先402は、FPGA回路管理サーバ4上のFPGA回路41において各回路コンフィギュレーションデータを一意に特定可能なアドレスを指している。
次に図8のステップS107では、データ取得部220が、処理方法判断部218から通知された情報に従って、処理対象カラムデータをデータベース管理システム32から取得する(図16のステップS107に相当)。具体的には、図12のステップS141に示すようにデータ取得部220が、ステップS105において処理方法判断部218から通知されたクエリを実行し、データベース管理システム32から処理対象カラムデータを取得する。
次に図8のステップS108では、FPGA回路適合データ変換部221が、FPGA回路情報テーブル213、DBデータ構造管理テーブル214及びDBスキーマ管理テーブル215を用いて、データ取得部220によってデータベース管理システム32から取得されたデータを、FPGA21に入力可能なデータ形式に変換する(図16のステップ108に相当)。
具体的には、図13のステップS151では、FPGA回路適合データ変換部221が、DBデータ構造管理テーブル214から、データ取得部220がデータを読み出したデータベース管理システム32のバイトオーダを取得する。
次にFPGA回路適合データ変換部221が、ステップS151において取得したデータベース管理システム32のバイトオーダ421と、FPGA情報登録・取得部216がステップS121またはステップS122において取得したFPGA21のバイトオーダ426と、が同一であるか否かを判定する(ステップS152)。
バイトオーダ421がバイトオーダ426と同一である場合、FPGA回路適合データ変換部221が、データ取得部220によって取得されたデータが数値であるか否かを判定する(ステップS153)。一方、バイトオーダ421がバイトオーダ426と同一ではない場合、FPGA回路適合データ変換部221が、データのバイトオーダを回路のバイトオーダに合わせるようにデータの変換を行う(ステップS156)。
データ取得部220によって取得されたデータが数値である場合、図13のステップS154では、FPGA回路適合データ変換部221が、データが固定小数点であるか否かを判定する(ステップS154)。一方、データ取得部220によって取得されたデータが数値ではない場合は、FPGA回路適合データ変換部221が、データ取得部220によって取得されたデータのデータサイズが回路の入力信号線のビット幅と同一になるようにデータ取得部220によって取得されたデータを変換する(ステップS157)。
データ取得部220によって取得されたデータが固定小数点ではない場合、データ取得部220は取得したデータを固定小数点に変換する(ステップS158)。データ取得部220は、取得した固定小数点データ、またはステップS158において固定小数点に変換されたデータを、利用するFPGA回路の小数点桁数407に合わせて変換する(ステップS155)。
次に図8のステップS109では、データ分割部222が、FPGAハードウェア情報テーブル211及び入力データ中間結果データ管理テーブル212を用いて、FPGA回路41に入力するデータのエントリ数を決定する(図16のステップS109に相当)。
具体的には、データ分割部222が、取得した回路識別子410が入力データ中間結果データ管理テーブル212に存在するか否かを判定する(図14のステップS161)。
取得した回路識別子410が入力データ中間結果データ管理テーブル212に存在しないと判定した場合、データ分割部222はデータ分割処理を終了する。一方、取得した回路識別子410が入力データ中間結果データ管理テーブル212に存在すると判定した場合、データ分割部222は、入力データ中間結果データ管理テーブル212から、中間結果データのエントリサイズを取得する(ステップS162)。
次にデータ分割部222は、次のようなFPGA入力データエントリ数計算式(1)を用いて、FPGA回路41に入力するデータのエントリ数(以下「FPGA入力データエントリ数」ともいう)を計算する(ステップS163)。
FPGA入力データエントリ数=SRAM容量(ビット)/中間結果エントリサイズ(ビット) ・・・ (1)
このFPGA入力データエントリ数計算式(1)は、アクセラレーションシステムにおけるデータ分割部222の処理中にも実行されるFPGA21に入力するデータ量の計算方法の一例を示している。
図8のステップS110では、データ送信部223が、既述のステップS108においてFPGA回路適合データ変換部221によって変換されたデータを、ステップS163においてデータ分割部222によって算出された入力データエントリ数の分だけFPGA21に送信し、FPGA21を起動する(図16のステップS110に相当)。
具体的には、まずデータ送信部223が、データ分割部222によって入力データのエントリ数が算出されたか否かを判定する(図15のステップS171)。入力データのエントリ数が算出されていない場合、データ送信部223が、FPGA回路適合データ変換部221によって変換されたデータを全てFPGA21に送信する(ステップS172)。
一方、データ分割部222によって入力データのエントリ数が算出されていた場合、データ送信部223が、データ分割部222によって算出された入力データのエントリ数の分だけ、FPGA回路適合データ変換部221によって変換されたデータをFPGA21に送信する(ステップS173)。
データ送信部223は、FPGA回路適合データ変換部221によって変換されたデータを全てFPGA21に送信したか否かを判定する(ステップS174)。データ送信部223は、FPGA回路適合データ変換部221によって変換されたデータが全てFPGA21に送信されていない場合にはステップS173に戻ってこのステップS173を実行する一方、全て送信した場合にはデータ送信処理を終了する。
図8のステップS111では、FPGA21が、上述のように入力されたデータを処理する(図16のステップ111に相当)。次にステップS112では、結果受信部224が、FPGA21の処理結果データを取得する(図16のステップS112に相当)。ステップS113では、データ送信部223が、分割された全てのデータを送信し、FPGA21が全てのデータの処理を完了し、結果受信部224が処理結果を全て受信しているか否かを判定する(図16のステップS113に相当)。
分割された全てのデータについて処理が完了している場合には図8のステップS114が実行される一方、分割された全てのデータについて処理が完了していない場合には既述のステップS110に戻って実行される。
図8のステップS114では、処理方法判断部218が全ての処理について判断を完了しており、その処理に対する結果を結果受信部224が全て受信しているか否かが判定される(図16のステップS114に相当)。アクセラレータプラットフォーム201は、処理方法判断部218が全ての処理について判断を完了しており、その処理に対する結果を結果受信部224が全て受信している場合には処理を終了する一方、そうではない場合にはステップS105に戻ってこのステップS105を実行する。
(3)本実施の形態の作用効果
以上のように本実施の形態によれば、アクセラレータプラットフォーム201が、データベース管理システム32、データベース31及びアプリケーション101を改変することなく、データベース31から取得したデータを変換してFPGA21に入力するデータ量を調整することによりFPGA21を用いてデータ処理を高速化することができる。これにより、入力データが同様となるためFPGA21が再利用し易くなるとともに、好適なデータ量ずつデータが入力されるためFPGA21を用いたデータ処理を高速化することができる。
以上のように本実施の形態によれば、アクセラレータプラットフォーム201が、データベース管理システム32、データベース31及びアプリケーション101を改変することなく、データベース31から取得したデータを変換してFPGA21に入力するデータ量を調整することによりFPGA21を用いてデータ処理を高速化することができる。これにより、入力データが同様となるためFPGA21が再利用し易くなるとともに、好適なデータ量ずつデータが入力されるためFPGA21を用いたデータ処理を高速化することができる。
(4)その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
本発明は、ハードウェア回路を用いてデータ処理を高速化するアクセラレーションシステム及びデータベース統合アクセラレーション方法に広く適用することができる。
1……クライアント、2……アクセラレータサーバ、3……データベースサーバ、20……CPU、21……FPGA、22……メモリ、31……データベース、32……データベース管理システム、101……アプリケーション、201……アクセラレータプラットフォーム、211……FPGAハードウェア情報テーブル、212……入力データ中間結果データ管理テーブル、213……FPGA回路情報テーブル、214……DBデータ構造管理テーブル、215……DBスキーマ管理テーブル、216……FPGA情報登録・取得部、217……AP処理分割部、218……処理方法判断部、219……回路ダウンロード部、220……データ取得部、221……FPGA回路適合データ変換部、222……データ分割部、223……データ送信部、224……結果受信部。
Claims (8)
- 所望の回路コンフィギュレーションデータに基づいて再構成可能回路を特定のデータ処理に特化した特定用途向け回路として機能させるアクセラレータサーバと、
前記アクセラレータサーバに対して問い合わせを発行するアプリケーションが実行されるクライアントと、
データが格納されたデータベースを管理するデータベース管理システムが実行されるデータベースサーバとを備え、
前記アクセラレータサーバは、
前記特定用途向け回路に入力すべきデータのデータ量を調整した上で前記特定用途向け回路に前記調整後のデータ量ごとに前記データを入力して前記特定のデータ処理を実行する
ことを特徴とするアクセラレーションシステム。 - 前記アクセラレータサーバは、
前記特定用途向け回路を利用するためのプログラムであるアクセラレータプラットフォームが記録されているともに前記データベースのデータが記録されるメモリと、
前記アクセラレータプラットフォームを実行するプロセッサと、を備え、
前記アクセラレータプラットフォームは、
前記アプリケーションからの問い合わせに応じた一連の処理を前記データベース管理システムの実行計画上の最小単位処理に分割するアプリケーション処理分割部と、
前記最小単位処理を前記特定用途向け回路を用いて所定の速度以上で処理可能であるか判断する処理方法判断部と、
前記処理方法判断部が前記特定用途向け回路を用いて前記所定の速度以上で処理可能であると判断した場合に前記最小単位処理に対応する回路モジュールをダウンロードして前記特定用途向け回路にコンフィギュレーションを実施する回路ダウンロード部と、
前記データベースサーバから前記データを取得するデータ取得部と、
前記データを前記特定用途向け回路での処理に適したデータ形式に変換する回路適合データ変換部と、
前記特定用途向け回路のハードウェア情報を考慮しつつ前記データを分割するデータ分割部と、
前記分割したデータを前記特定用途向け回路に送信することにより処理実行依頼を行うデータ送信部と、
前記特定用途向け回路による処理結果を受信する結果受信部と、
を備えることを特徴とする請求項1に記載のアクセラレーションシステム。 - 前記処理方法判断部は、
前記特定用途向け回路にコンフィギュレーションを実施可能な回路モジュールの情報を管理する回路情報テーブルと、前記データベース管理システムに実装されている前記データのデータ型に関連した情報を管理するデータベースデータ構造テーブルと、を利用して前記最小単位処理のデータが前記特定用途向け回路を用いて前記所定の速度以上で処理可能であるか判断し、
前記データ取得部は、
前記処理方法判断部によって前記特定用途向け回路を用いて処理可能であると判断された前記最小単位処理にて処理されるデータを前記データベースから取得し、
前記回路適合データ変換部は、
前記回路情報テーブルと、前記データベースに組み込まれているデータ型の情報を記録するDBデータ構造管理テーブルと、前記データベースに登録されている前記データが記録されているテーブルのスキーマを記録するDBスキーマ管理テーブルと、を利用し、前記データを前記特定用途向け回路に入力可能な形式に変換し、
前記データ分割部は、
前記特定用途向け回路のSRAMの容量、DRAMの容量及びバイトオーダを記録したハードウェア情報テーブルと、前記特定用途向け回路に入力する前記データと前記特定用途向け回路での処理後に前記特定用途向け回路のSRAM内に保管される中間結果データとの関係を記録した入力データ中間結果データ管理テーブルとを利用して前記特定用途向け回路に入力する前記データのエントリ数を計算し、
前記データ送信部は、
前記データ分割部が計算した結果を用いて前記特定用途向け回路に前記データを入力して前記特定用途向け回路を起動し、
前記結果受信部は、
前記特定用途向け回路による処理結果のデータを受信し前記アプリケーションに適した前記データ形式に変換して前記アプリケーションに前記データ形式で前記データを送信することを特徴とする請求項2に記載のアクセラレーションシステム。 - 前記特定用途向け回路は、FPGA(Field−Programmable Gate Array)であることを特徴とする請求項1に記載のアクセラレーションシステム。
- 所望の回路コンフィギュレーションデータに基づいて再構成可能回路を特定のデータ処理に特化した特定用途向け回路として機能させるアクセラレータサーバと、
前記アクセラレータサーバに対して問い合わせを発行するアプリケーションが実行されるクライアントと、
データが格納されたデータベースを管理するデータベース管理システムが実行されるデータベースサーバとを備えるアクセラレーションシステムにおけるアクセラレーション方法において、
前記アクセラレータサーバが、
前記特定用途向け回路に入力すべきデータのデータ量を調整した上で前記特定用途向け回路に前記調整後のデータ量ごとに前記データを入力して前記特定のデータ処理を実行する
ことを特徴とするアクセラレーション方法。 - 前記アクセラレータサーバは、
前記特定用途向け回路を利用するためのプログラムであるアクセラレータプラットフォームが記録されているともに前記データベースのデータが記録されるメモリと、
前記アクセラレータプラットフォームを実行するプロセッサと、を備え、
前記アクセラレータプラットフォームは、
前記アプリケーションからの問い合わせに応じた一連の処理を前記データベース管理システムの実行計画上の最小単位処理に分割し、
前記最小単位処理を前記特定用途向け回路を用いて所定の速度以上で処理可能であるか判断し、その結果、前記特定用途向け回路を用いて前記所定の速度以上で処理可能であると判断した場合に前記最小単位処理に対応する回路モジュールをダウンロードして前記特定用途向け回路にコンフィギュレーションを実施し、
前記データベースサーバから前記データを取得し、前記データを前記特定用途向け回路での処理に適したデータ形式に変換し、
前記特定用途向け回路のハードウェア情報を考慮しつつ前記データを分割し、
前記分割したデータを前記特定用途向け回路に送信することにより処理実行依頼を行い、
前記特定用途向け回路による処理結果を受信することを特徴とする請求項5に記載のアクセラレーション方法。 - 前記アクセラレータプラットフォームは、
前記特定用途向け回路にコンフィギュレーションを実施可能な回路モジュールの情報を管理する回路情報テーブルと、前記データベース管理システムに実装されている前記データのデータ型に関連した情報を管理するデータベースデータ構造テーブルと、を利用して前記最小単位処理のデータが前記特定用途向け回路を用いて前記所定の速度以上で処理可能であるか判断し、
前記特定用途向け回路を用いて処理可能であると判断された前記最小単位処理にて処理されるデータを前記データベースから取得し、
前記回路情報テーブルと、前記データベースに組み込まれているデータ型の情報を記録するDBデータ構造管理テーブルと、前記データベースに登録されている前記データが記録されているテーブルのスキーマを記録するDBスキーマ管理テーブルと、を利用し、前記データを前記特定用途向け回路に入力可能な形式に変換し、
前記特定用途向け回路のSRAMの容量、DRAMの容量及びバイトオーダを記録したハードウェア情報テーブルと、前記特定用途向け回路に入力する前記データと前記特定用途向け回路での処理後に前記特定用途向け回路のSRAM内に保管される中間結果データとの関係を記録した入力データ中間結果データ管理テーブルとを利用して前記特定用途向け回路に入力する前記データのエントリ数を計算し、
前記計算された結果を用いて前記特定用途向け回路に前記データを入力して前記特定用途向け回路を起動し、
前記特定用途向け回路による処理結果のデータを受信し前記アプリケーションに適した前記データ形式に変換して前記アプリケーションに前記データ形式で前記データを送信することを特徴とする請求項6に記載のアクセラレーション方法。 - 前記特定用途向け回路は、FPGA(Field−Programmable Gate Array)であることを特徴とする請求項5に記載のアクセラレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016194864A JP2018055648A (ja) | 2016-09-30 | 2016-09-30 | アクセラレーションシステム及びアクセラレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016194864A JP2018055648A (ja) | 2016-09-30 | 2016-09-30 | アクセラレーションシステム及びアクセラレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018055648A true JP2018055648A (ja) | 2018-04-05 |
Family
ID=61835881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016194864A Pending JP2018055648A (ja) | 2016-09-30 | 2016-09-30 | アクセラレーションシステム及びアクセラレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018055648A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020098479A (ja) * | 2018-12-18 | 2020-06-25 | 株式会社日立製作所 | カラムストアデータベースシステム及びデータベース処理高速化方法 |
WO2024082670A1 (zh) * | 2022-10-20 | 2024-04-25 | 华为技术有限公司 | 通信方法、系统及服务器 |
-
2016
- 2016-09-30 JP JP2016194864A patent/JP2018055648A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020098479A (ja) * | 2018-12-18 | 2020-06-25 | 株式会社日立製作所 | カラムストアデータベースシステム及びデータベース処理高速化方法 |
JP7146611B2 (ja) | 2018-12-18 | 2022-10-04 | 株式会社日立製作所 | カラムストアデータベースシステム及びデータベース処理高速化方法 |
WO2024082670A1 (zh) * | 2022-10-20 | 2024-04-25 | 华为技术有限公司 | 通信方法、系统及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102407510B1 (ko) | 데이터 저장 및 조회 방법, 장치, 기기 및 매체 | |
CA2939915C (en) | Managing data profiling operations related to data type | |
CN108733639B (zh) | 一种配置参数调整方法、装置、终端设备及存储介质 | |
CN110325985B (zh) | 使用对高速缓存友好的存储器内散列索引的原子rdma读取的基于主键的高效查询的方法 | |
US10572442B2 (en) | Systems and methods for providing distributed tree traversal using hardware-based processing | |
US10242051B2 (en) | Efficient multi-tenant spatial and relational indexing | |
US10157234B1 (en) | Systems and methods for transforming datasets | |
CN107239485A (zh) | 数据库操作方法、装置及系统 | |
US11416458B2 (en) | Efficient indexing for querying arrays in databases | |
JP2018055648A (ja) | アクセラレーションシステム及びアクセラレーション方法 | |
US10936539B2 (en) | Source data assignment based on metadata | |
CN110674177B (zh) | 数据查询方法、装置、电子设备和存储介质 | |
US11200230B2 (en) | Cost-based optimization for document-oriented database queries | |
CN108334563A (zh) | 一种数据查询的方法及装置 | |
US11720630B2 (en) | Generating new and unique distributed graph ID | |
CN112052254B (zh) | 数据封装方法、电子设备及存储介质 | |
WO2024027830A1 (zh) | 一种元素绘制方法、装置、设备及存储介质 | |
CN116541455B (zh) | 接口数据集成方法、装置、计算机设备及存储介质 | |
WO2022209371A1 (ja) | 情報処理システム、情報処理方法および情報処理プログラム | |
CN110019212B (zh) | 一种数据处理方法、装置及数据库服务器 | |
US20230185808A1 (en) | Information processing apparatus, method and storage medium | |
CN114625745A (zh) | 基于数据库操作的数据处理方法及装置 | |
CN113050977A (zh) | 一种数据处理的方法及系统 | |
CN116226162A (zh) | 数据上报方法、装置、系统、电子设备、介质、程序产品 | |
EP3036663B1 (en) | Thin database indexing |