JP7313123B2 - 演算システムおよび演算方法 - Google Patents

演算システムおよび演算方法 Download PDF

Info

Publication number
JP7313123B2
JP7313123B2 JP2018100858A JP2018100858A JP7313123B2 JP 7313123 B2 JP7313123 B2 JP 7313123B2 JP 2018100858 A JP2018100858 A JP 2018100858A JP 2018100858 A JP2018100858 A JP 2018100858A JP 7313123 B2 JP7313123 B2 JP 7313123B2
Authority
JP
Japan
Prior art keywords
arithmetic
slave
information
computing
storage
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.)
Active
Application number
JP2018100858A
Other languages
English (en)
Other versions
JP2019204433A (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.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan 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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2018100858A priority Critical patent/JP7313123B2/ja
Publication of JP2019204433A publication Critical patent/JP2019204433A/ja
Application granted granted Critical
Publication of JP7313123B2 publication Critical patent/JP7313123B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、演算システムおよび演算方法に関する。
従来、演算装置が実行する各種の演算処理を効率化するために、様々な対策が実施されている。このような技術の一例として、複数のサブ処理ユニットを用いて処理を実行する際に、サブ処理ユニットでエラーが検出された場合は、各サブ処理ユニットの負荷に基づいて、エラーが検出されたサブ処理ユニットが実行していた処理を他のサブ処理ユニットに再割り当てする技術が知られている。
特開2005-332402号公報
"分散処理技術「Hadoop」とは"<インターネット>https://oss.nttdata.com/hadoop/hadoop.html(平成30年5月1日検索) "FPGAのしくみと開発に使うソフトとハード",丹下 昌彦<インターネット>http://toragi.cqpub.co.jp/Portals/0/backnumber/2009/03/p096-097.pdf(平成30年5月1日検索)
しかしながら、上述した技術では、単一の演算装置内で実行される処理に過ぎず、複数の演算装置が協調して処理を実行する際の効率を改善する余地がある。
本願は、上記に鑑みてなされたものであって、複数の演算装置による処理の効率を改善することを目的とする。
本願に係る演算システムは、異なる種類の論理回路の組み合わせを変更可能な演算装置であって、追加可能な演算装置と、当該演算装置がアクセス可能な記憶装置との組を複数含む演算システムであって、前記演算装置は、前記論理回路を組み合わせることで、処理対象となる情報を示す指示情報に基づいて、自装置がアクセス可能な記憶装置が有する記憶領域のうち当該情報を格納する記憶領域のアドレスを特定する処理と、特定されたアドレスを用いて、前記記憶装置にアクセスする処理とを実行することを特徴とする。
実施形態の一態様によれば、複数の演算装置による処理の効率を改善することができる。
図1は、実施形態に係る演算システムの一例を示す図である。 図2は、実施形態に係る演算装置の構成例を示す図である。 図3は、実施形態に係るファイルデータベースに登録される情報の一例を示す図である。 図4は、実施形態に係る演算装置データベースに登録される情報の一例を示す図である。 図5は、実施形態に係る演算装置が演算処理の結果を集約する処理の一例を示す図である。 図6は、実施形態に係る判定処理の流れの一例を説明するシーケンス図である。 図7は、実施形態に係る演算装置が実行するメモリアクセスの一例を示す図である。 図8は、実施形態に係る演算システムが実行する処理の流れの一例を示すフローチャートである。
以下に、本願に係る演算システムおよび演算方法を実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る演算システムおよび演算方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
[実施形態]
〔1-1.演算システムの一例〕
まず、図1を用いて、演算システム1が実行する演算処理の一例について説明する。なお、以下の説明では、演算システム1が複数の演算装置100a~100e(以下、「演算装置100」と総称する場合がある。)を用いて所定の処理を実行する処理の一例について説明する。
図1は、実施形態に係る演算システムの一例を示す図である。図1では、演算システム1は、情報処理装置10と、複数の演算装置100を有する。
情報処理装置10は、例えば、PC(Personal Computer)やサーバ装置等により実現される情報処理装置である。また、情報処理装置10は、各種のネットワークを介して、各演算装置100と通信可能に接続されており、各演算装置100との間で情報の送受信を行う。
演算装置100は、以下に説明する演算処理を実行する演算装置である。ここで、演算装置100は、製造後に利用者が内部の論理回路を定義あるいは変更することができる集積回路であり、所謂PLD(Programmable Logic Device)である。より具体的には、演算装置100は、FPGA(Field-Programmable Gate Array)により実現される。また、演算装置100は、所定の記憶装置を有し、情報処理装置10から提供される情報を記憶することができる。
〔1-2.演算処理の一例〕
図1に示す演算システム1において、各演算装置100は、所定のファイルを分割したデータを冗長性を保持した状態で管理する。そして、各演算装置100は、各演算装置ごとに保持する情報を用いた演算処理を実行し、実行結果を集約することで、所定のファイルに対する演算処理を実現する。また、各演算装置100は、このようなデータの管理および演算を、内部の論理回路を定義することにより実現する。
例えば、情報処理装置10は、処理対象となるファイルを複数のデータA~データCに分割する(ステップS1)。そして、情報処理装置10は、各演算装置の記憶領域に分割したデータA~データCを冗長化した状態で分散登録する(ステップS2)。例えば、情報処理装置10は、演算装置100a、100c、100eにデータAを保持させ、演算装置100b、100c、100dにデータBを保持させ、演算装置100b、100d、100eにデータCを提供する。また、情報処理装置10は、どの演算装置100a~100eに対してどのデータを保持させたかを示すメタデータを演算装置100fに提供する。
このような場合、各演算装置100a~eは、演算装置内の記憶領域にデータを保持し、キーバリュー方式によりデータの管理を実行する(ステップS3)。そして、演算装置100fは、演算装置100a~100eが故障したか否かを判定し、いずれかの演算装置100a~100eが故障した場合は、故障した演算装置と同じデータを他の演算装置から参照して処理を実行するように、故障していない演算装置を制御する(ステップS4)。
例えば、データA~データCを用いた演算処理を実行する処理の一例について説明する。例えば、マスタとなる演算装置100fは、ファイルに対する処理をデータA~データCに対する複数のタスクA~タスクCに分割する。また、演算装置100fは、メタデータを参照し、各演算装置100a~100eが保持するデータを特定する。そして、演算装置100fは、特定したデータに対する処理のタスクを、各演算装置100a~100cに対して割り当てる。このような場合、演算装置100a~100eは、自装置の記憶装置に保持されたデータを用いて、演算装置100fから受付けたタスクを実行する。
ここで、演算装置100fは、各演算装置100a~100eからハートビートと呼ばれる信号を定期的に受信している。そして、演算装置100fは、例えば、演算装置100aから所定の期間の間ハードビートを受信しなくなった場合は、演算装置aが故障したと判定する。このような場合、演算装置100fは、演算装置aに実行させていたタスクを特定するとともに、演算装置aが保持していたデータAと同じデータを保持する演算装置100c、100eを特定する。そして、演算装置100fは、演算装置aに実行させていたタスクを、演算装置100cもしくは演算装置100eに実行させる。
また、演算装置100fは、各演算装置100a~100eによるタスクの実行結果を集約する。例えば、演算装置100fは、キーバリュー方式で実行結果を取得する。このような場合、演算装置100fは、同じキーが付与されたバリューの値を集約することで、全体としての処理結果、すなわち、データA~データCの元となるファイルに対する所定の処理の結果を取得する。
すなわち、演算システム1においては、各演算装置100が、内部の演算回路を定義することにより、所謂HADOOP的に処理を実行する。例えば、各演算装置100は、HDFS(Hadoop Distributed File System)やHadoop MapReduceに従って、データの保持および管理を実行する。また、各演算装置はCPU、GPU、FPGAなどの異なる複数種類を組み合わせることができ、後から追加も可能になるため、スケーラビリティの向上につながる。なお、演算システム1においては、演算装置の追加を行う際、その演算装置がアクセス可能なメモリ等の主記憶装置の追加を行ってもよく、行わずともよい。すなわち、演算システム1においては、演算装置と主記憶装置との組単位で、演算装置の追加を行ってもよく、演算装置のみの追加を行ってもよい。また、各演算装置が主記憶装置にアクセスする手法については、イリノイプロトコル等任意のプロトコルが採用可能である。
〔2.演算装置の構成〕
以下、上記した演算処理を実現する演算装置100が有する機能構成の一例について説明する。図2は、実施形態に係る演算装置の構成例を示す図である。図2に示す例では、マスタとして動作する演算装置の一例について記載した。
例えば、演算装置100は、プロセッサ110、入出力装置120、メモリコントローラ130、記憶部140およびFPGA150を有する。プロセッサ110は、演算装置100が有するプロセッサであり、例えば、ARMアーキテクチャやPOWERアーキテクチャを採用したプロセッサ若しくはマイクロプロセッサである。そして、プロセッサ110は、FPGA150と連携することで、各種の演算処理を実行する。
例えば、プロセッサ110は、プロセッサコア111とキャッシュメモリ112とを有する。プロセッサコア111は、論理演算や四則演算を実現する所謂コアであり、ALU(Arithmetic Logic Unit)から構成される算術論理演算装置により実現される。キャッシュメモリ112は、プロセッサ110が有する補助記憶装置である。より具体的には、キャッシュメモリ112は、主記憶装置200よりもプロセッサコア111が高速にアクセスすることができる記憶装置であり、所謂キャッシュメモリである。
入出力装置120は、演算装置100と情報処理装置10や他の演算装置100との間の通信を中継する装置であり、所謂I/O(Input Output)装置である。例えば、入出力装置120は、USB(Universal Serial Bus)、イーサーネット、SD(Secure Digital)、UART(Universal Asynchronous Receiver/Transmitter)、SPI(Serial Peripheral Interface)、I2C、GPIO(General-purpose input/output)等、各種の通信規格に沿って外部装置OAとの間の通信を制御する各種の入出力装置により実現される。
メモリコントローラ130は、演算装置100による記憶部140へのメモリアクセスを制御する。より具体的には、メモリコントローラ130は、ページング方式により主記憶装置200に格納されたデータの読み出しや書込みを行う。
記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置によって実現される。記憶部140は、ファイルデータベース141および演算装置データベース142が登録されている。なお、演算装置100がマスタとして動作する場合は、ファイルデータベース141は、登録されていなくともよい。また、演算装置100がスレーブとして動作する場合は、演算装置データベース142は、登録されていなくともよい。
ファイルデータベース141は、処理対象となるファイルを分割したデータが登録される。例えば、図3は、実施形態に係るファイルデータベースに登録される情報の一例を示す図である。なお、図3には、記憶部140が有する記憶領域を示すアドレスと、そのアドレスが示す記憶領域に登録されるデータの一例について記載した。
例えば、図3に示す例では、アドレスが「アドレス#1」である記憶領域に「データ#1」が登録されている。ここで、演算装置100は、キーバリュー方式でデータの管理を行う。このため、例えば、データ#1に対応するキーの値が「キー値#1」である場合、「キー値#1」に対して所定の関数f(例えば、ハッシュ関数等)を適用した値がアドレス#1となっている。
なお、図3に示す例では、「アドレス#1」や、「キー値#1」といった概念的な値を記載したが、実際には、記憶領域を示す各種の数値や文字列、キー値を構成する数値や文字列等が採用されることとなる。また、図3に示す例では、「データ#1」といった概念的な値を記載したが、実際には、処理対象となるファイルを分割したデータが登録されることとなる。
図2に戻り、説明を続ける。演算装置データベース142は、所謂メタデータであり、各演算装置100に関する情報が登録される。例えば、図4は、実施形態に係る演算装置データベースに登録される情報の一例を示す図である。図4に示すように、演算装置データベース142には、「演算装置ID(Identifier)」、「マスタ情報」、「演算装置情報」、「振り分けタスク」、および「振り分けデータ」が対応付けて登録されている。
ここで、「演算装置ID」とは、演算装置100の識別子である。「マスタ情報」とは、どの演算装置がマスタであるかを示す情報である。また、「演算装置情報」とは、対応付けられた演算装置IDが示す演算装置に関する各種の情報である。また、「振り分けタスク」とは、対応付けられた演算装置IDが示す演算装置に対して割り当てられたタスクを示す情報である。また、「振り分けデータ」とは、対応付けられた演算装置IDが示す演算装置に対して振り分けられたデータの識別子である。
図4に示す例では、演算装置データベース142には、演算装置ID「100a」、マスタ情報「0」、演算装置情報「情報#1」、振り分けタスク「タスクA」、および振り分けデータ「データA」が対応付けて登録されている。このような情報は、例えば、演算装置ID「100a」が示す演算装置(例えば、演算装置100a)が、スレーブであり、演算装置情報が「情報#1」である旨を示す。また、このような情報は、演算装置100aに対して、「タスクA」の実行が振り分けられており、「データA」が示すデータが振り分けられている旨を示す。
図2に戻り、説明を続ける。FPGA150は、外部装置OAから受付けたHDL(Hardware Description Language)に従って回路を構成することで、以下の機能を実現する。そして、FPGA150は、以下の機能を発揮することで、HADOOP的に、データの管理および処理を実現する。例えば、FPGA150は、取得部161、通信部162、判定部163、特定部164、および演算制御部165として動作する。
例えば、演算装置100がスレーブとして動作する場合、取得部161は、処理対象となるデータを取得する。例えば、取得部161は、情報処理装置10から分割されたデータを取得する。より具体的には、取得部161は、キーバリュー形式で、分割されたデータを取得する。このような場合、取得部161は、キー値を所定の関数fでアドレスに変換し、記憶部140が有する記憶領域のうち変換後のアドレスが示す記憶領域にデータを格納する。
また、例えば、演算装置100がマスタとして動作する場合、取得部161は、どの演算装置にどのデータを振り分けたかを示すメタデータを取得する。例えば、取得部161は、情報処理装置10からメタデータを取得する。このような場合、取得部161は、演算装置データベース142を記憶部140内に生成し、メタデータが示す演算装置100とその演算装置100に振り分けられたデータを示す識別子との組を、演算装置データベース142に登録する。
通信部162は、演算装置100間の通信を制御する。例えば、演算装置100がマスタとして動作する場合、通信部162は、他の演算装置100から送信されるハートビートを受信する。また、演算装置100がスレーブとして動作する場合、通信部162は、マスタとなる演算装置100に対して所定の時間間隔でハートビートを送信する。
判定部163は、他の演算装置に故障が生じたか否かを判定する。例えば、演算装置100がマスタとして動作する場合、判定部163は、他の演算装置100からハートビートが所定の時間間隔で受信されているか否かを判定する。そして、判定部163は、いずれかの演算装置100からハートビートが受信されなくなってから所定の時間が経過した場合は、その演算装置100が故障したと判定する。なお、演算装置100がスレーブとして動作する場合、FPGA150は、判定部163を構成せずともよい。
特定部164は、他の演算装置に故障が生じたと判定された場合は、その演算装置100がアクセス可能な記憶装置に格納された分散情報を特定する。また、特定部164は、特定された分散情報と同じ分散情報が格納された記憶装置にアクセス可能な演算装置100を特定する。
例えば、特定部164は、判定部163により演算装置100aが故障したと判定された場合は、演算装置データベース142を参照し、演算装置100aに対して割り当てられていたタスクと振り分けデータとを特定する。続いて、演算装置データベース142は、特定した振り分けデータと同じデータが振り分けられている演算装置であって、故障していない演算装置(例えば、演算装置100c)を特定する。なお、演算装置100がスレーブとして動作する場合、FPGA150は、特定部164を構成せずともよい。
演算制御部165は、各演算装置100に対して振り分けられたデータを用いて、各種の演算処理を実行する。例えば、演算制御部165は、演算装置100がスレーブとして動作する場合、以下の処理を実行する。まず、演算制御部165は、処理対象となる情報を示す指示情報に基づいて、自装置がアクセス可能な記憶装置が有する記憶領域のうち当該情報を格納する記憶領域のアドレスを特定する。そして、演算制御部165は、特定されたアドレスを用いて、記憶装置にアクセスし、記憶装置に格納された分割情報を用いて、所定の演算を行う。
例えば、演算制御部165は、演算装置100に割り当てられたタスクが処理対象とするデータのキー値を特定する。続いて、演算制御部165は、キー値を所定の関数fによりアドレスに変換し、記憶部140に登録されているデータのうち、変換後のアドレスが示す記憶領域に登録されていたデータを読み出す。そして、演算制御部165は、読み出したデータとタスクとをプロセッサ110に提供し、タスクが示す処理をプロセッサ110に実行させる。その後、演算制御部165は、プロセッサ110による演算結果をマスタとなる演算装置100へと送信する。
一方、演算制御部165は、演算装置100がマスタとして動作する場合、以下の処理を実行する。まず、演算制御部165は、他の演算装置100による演算の結果を収集する。そして、演算制御部165は、各演算装置100による演算の結果を集約する。例えば、図5は、実施形態に係る演算装置が演算処理の結果を集約する処理の一例を示す図である。図5に示すように、演算制御部165は、MapReduceジョブにより、演算処理の結果を集約する。
例えば、演算制御部165は、スレーブとなる演算装置100から受信した演算結果に対し、所定の処理を実行することで、キーバリュー形式のデータに変換するMap処理を実行する。続いて、演算制御部165は、変換後のデータを同一のキーごとに集約したデータを生成し、生成したデータに対して所定の処理を実行するReduce処理を実行する。そして、演算制御部165は、Reduce処理の結果を、分割前のファイルに対する処理の結果として出力する。
図2に戻り、説明を続ける。また、演算制御部165は、演算装置100がマスタとして動作する場合、特定部164により特定された演算装置100に対し、故障が生じたと判定された他の演算装置100が実行していた演算を実行させる。例えば、演算制御部165は、演算装置100aが故障したと判定され、特定部164が演算装置100cを特定した場合、演算装置100cに対してタスクAを実行させる。そして、演算制御部165は、演算装置100cからタスクAの実行結果を収集し、収集したタスクAの実行結果を他のタスクの実行結果と共に集約する。
なお、上述した例では、情報処理装置10によりファイルの分割が行われる例について記載したが、実施形態は、これに限定されるものではない。例えば、マスタとして動作する演算装置100が有するFPGA150が、ファイルの分割および割り当てを実現してもよい。
例えば、図6は、実施形態に係る判定処理の流れの一例を説明するシーケンス図である。なお、図6に示す例では、演算装置100aがマスタとして動作する例について記載した。例えば、演算装置100aは、割り当て対象となる処理を複数のデータA~Dに分割し(ステップS10)、分割した各データ、すなわち、各配列の部分を各演算装置100b~100cに割り当てる(ステップS11)。ここで、演算装置100aは、スレーブとなる演算装置100b~100cのみならず、マスタである演算装置100aにも、配列の割り当てを行ってもよい。
このような場合、各演算装置100a~100dは、それぞれ割り当てられた配列の処理を実行する。例えば、演算装置100aは、データAの合計を求める計算を実行し(ステップS12)、演算装置100bは、データBの合計を求める計算を実行し(ステップS13)、演算装置100cは、データCの合計を求める計算を実行し(ステップS14)、演算装置100dは、データDの合計を求める計算を実行する(ステップS15)。
また、演算装置100aは、演算装置100b~100cによる計算結果を収集する。そして、演算装置100aは、演算装置100a~100dによる計算の結果を集約する。例えば、演算装置100aは、ステップS12~S15による部分合計の合計を算出し(ステップS16)、処理を終了する。
〔3.演算装置が実行するメモリアクセスの一例〕
次に、図7を用いて、演算装置100が実行するメモリアクセスの一例について説明する。図7は、実施形態に係る演算装置が実行するメモリアクセスの一例を示す図である。例えば、演算装置100は、図7中(A)に示すように、キー値から算出されたアドレス「0x1000」、「0x4000」、「0x8000」、「0x1800」を記憶領域「V0」に格納する。このような場合、演算装置100は、アドレス「0x1000」が示す記憶領域に登録されたデータ「X」、「0x4000」が示す記憶領域に登録されたデータ「Z」、「0x8000」が示す記憶領域に登録されたデータ「W」、「0x1800」が示す記憶領域に登録されたデータ「Y」を読み出す。そして、演算装置100は、読み出したデータ「X」、「Z」、「W」、「Y」を記憶領域「V1」に格納する。
また、例えば、演算装置100は、図7中(B)に示すように、キー値から算出されたアドレス「0x1000」、「0x4000」、「0x8000」、「0x1800」を記憶領域「V2」に格納するとともに、記憶領域「V3」に、書込み対象となるデータ「X」、「Z」、「W」、「Y」を登録する。このような場合、演算装置100は、アドレス「0x1000」が示す記憶領域にデータ「X」を格納し、「0x4000」が示す記憶領域にデータ「Z」を格納し、「0x8000」が示す記憶領域にデータ「W」を格納し、「0x1800」が示す記憶領域にデータ「Y」を格納する。
〔4.演算装置が実行する処理の流れの一例〕
次に、図8を用いて、演算システム1が実行する処理の一例について説明する。図8は、実施形態に係る演算システムが実行する処理の流れの一例を示すフローチャートである。例えば、演算システム1は、処理対象となるファイルを分割し(ステップS101)、分割データの保存先となる演算装置100を決定する(ステップS102)。そして、演算システム1は、分割データを冗長化して分割保存し(ステップS103)、各演算装置100が有するFPGAを用いて、分割データの分散管理を実行する(ステップS104)。
〔5.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、図2に示す例では、演算装置100が記憶部140を有する例について記載したが、実施形態は、これに限定されるものではない。例えば、演算装置100は、演算装置100とは個別のメモリと接続され、メモリコントローラ130を介して、メモリに対する各種のメモリアクセスを行ってもよい。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔6.効果〕
上述したように、演算システム1は、異なる種類の論理回路の組み合わせを変更可能な演算装置であって、追加可能な演算装置100と、演算装置100がアクセス可能な記憶装置(例えば、記憶部140)との組を複数含む演算システムであって、演算装置100は、論理回路を組み合わせることで、処理対象となる情報を示す指示情報に基づいて、自装置がアクセス可能な記憶装置が有する記憶領域のうち情報を格納する記憶領域のアドレスを特定する。そして、演算装置100は、特定されたアドレスを用いて、記憶装置にアクセスする。
また、各記憶装置は、所定のファイルを分割した分割情報をそれぞれ記憶し、各演算装置100は、論理回路を組み合わせることで、自装置がアクセス可能な記憶装置に格納された分割情報を用いて、所定の演算を行い、各演算処理による所定の演算の結果を収集する。
また、各記憶装置は、所定のファイルを分割した分割情報を冗長性を担保するように記憶する。また、マスタとして動作する演算装置100は、論理回路を組み合わせることで、他の演算装置100に故障が生じたか否かを判定し、他の演算装置100に故障が生じたと判定された場合は、その演算装置100がアクセス可能な記憶装置に格納された分散情報を特定する。また、マスタとして動作する演算装置100は、特定された分散情報と同じ分散情報が格納された記憶装置にアクセス可能な演算装置100を特定する。そして、マスタとして動作する演算装置100は、特定された演算装置100に対し、故障が生じたと判定された他の演算装置100が実行していた演算を実行させる。
このように、演算システム1は、各演算装置100に論理回路を組み合わせることで、HADOOP的なデータの管理を実行させる。すなわち、演算システム1は、FPGAを用いてHADOOPの処理を実行させる。この、結果、演算システム1は、複数の演算装置100による処理の効率を改善することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。
100 演算装置
110 プロセッサ
111 プロセッサコア
112 キャッシュメモリ
120 入出力装置
130 メモリコントローラ
140 記憶部
141 ファイルデータベース
142 演算装置データベース
150 FPGA
161 取得部
162 通信部
163 判定部
164 特定部
165 演算制御部

Claims (2)

  1. 各々が少なくともFPGAを備える複数の演算装置、複数の記憶装置と、所定の外部装置とを含む演算システムであって、
    前記所定の外部装置は、前記演算装置のうちスレーブ演算装置に対して、回路情報を送信することで、前記スレーブ演算装置が、
    処理対象となる情報を示す指示情報に基づいて、自装置がアクセス可能な記憶装置が有する記憶領域のうち処理対象となる分割情報が格納された記憶領域のアドレスを特定する処理と、
    特定されたアドレスを用いて、前記記憶装置にアクセスする処理と、
    前記演算装置のうちマスタ演算装置に対してハートビートを送信する処理と
    を実行することができるように前記スレーブ演算装置が備えるFPGAの論理回路を構成し、
    記記憶装置は、前記分割情報を冗長性を担保するようにそれぞれ記憶し、
    前記所定の外部装置は、前記マスタ演算装置に対して、回路情報を送信することで、
    前記スレーブ演算装置による演算の結果を収集する処理と、
    前記スレーブ演算装置から受信したハービートに基づいて、当該スレーブ演算装置に故障が生じたか否かを判定する処理と、
    記故障が生じたと判定されたスレーブ演算装置がアクセス可能な記憶装置に格納された分割情報を特定する処理と、
    前記特定された分割情報と同じ分割情報が格納された記憶装置にアクセス可能であり、前記故障が生じたと判定されたスレーブ演算装置とは異なる他のスレーブ演算装置を特定する処理と、
    特定された前記他のスレーブ演算装置に対し、前記故障が生じたと判定されたスレーブ演算装置が実行していた演算を実行させる処理と
    を実行することができるように前記マスタ演算装置が備えるFPGAの論理回路を構成する
    ことを特徴とする演算システム。
  2. 各々が少なくともFPGAを備える複数の演算装置、複数の記憶装置と、所定の外部装置とを含む演算システムが実行する演算方法であって、
    前記所定の外部装置は、前記演算装置のうちスレーブ演算装置に対して、回路情報を送信することで、前記スレーブ演算装置が、
    処理対象となる情報を示す指示情報に基づいて、自装置がアクセス可能な記憶装置が有する記憶領域のうち処理対象となる分割情報が格納された記憶領域のアドレスを特定する処理と、
    特定されたアドレスを用いて、前記記憶装置にアクセスする処理と、
    前記演算装置のうちマスタ演算装置に対してハートビートを送信する処理と
    を実行することができるように前記スレーブ演算装置が備えるFPGAの論理回路を構成し、
    記記憶装置は、前記分割情報を冗長性を担保するようにそれぞれ記憶し、
    前記所定の外部装置は、前記マスタ演算装置に対して、回路情報を送信することで、
    前記スレーブ演算装置による演算の結果を収集する処理と、
    前記スレーブ演算装置から受信したハービートに基づいて、当該スレーブ演算装置に故障が生じたか否かを判定する処理と、
    記故障が生じたと判定されたスレーブ演算装置がアクセス可能な記憶装置に格納された分割情報を特定する処理と、
    前記特定された分割情報と同じ分割情報が格納された記憶装置にアクセス可能であり、前記故障が生じたと判定されたスレーブ演算装置とは異なる他のスレーブ演算装置を特定する処理と、
    特定された前記他のスレーブ演算装置に対し、前記故障が生じたと判定されたスレーブ演算装置が実行していた演算を実行させる処理と
    を実行することができるように前記マスタ演算装置が備えるFPGAの論理回路を構成する
    ことを特徴とする演算方法。
JP2018100858A 2018-05-25 2018-05-25 演算システムおよび演算方法 Active JP7313123B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018100858A JP7313123B2 (ja) 2018-05-25 2018-05-25 演算システムおよび演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018100858A JP7313123B2 (ja) 2018-05-25 2018-05-25 演算システムおよび演算方法

Publications (2)

Publication Number Publication Date
JP2019204433A JP2019204433A (ja) 2019-11-28
JP7313123B2 true JP7313123B2 (ja) 2023-07-24

Family

ID=68727096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018100858A Active JP7313123B2 (ja) 2018-05-25 2018-05-25 演算システムおよび演算方法

Country Status (1)

Country Link
JP (1) JP7313123B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016509294A (ja) 2013-01-07 2016-03-24 フェイスブック,インク. 分散型データベースクエリ・エンジン用のシステムおよび方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9607073B2 (en) * 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016509294A (ja) 2013-01-07 2016-03-24 フェイスブック,インク. 分散型データベースクエリ・エンジン用のシステムおよび方法

Also Published As

Publication number Publication date
JP2019204433A (ja) 2019-11-28

Similar Documents

Publication Publication Date Title
US10169413B2 (en) Scalable acceleration of database query operations
JP7074832B2 (ja) ネットワークオンチップによるデータ処理方法及び装置
CN107111517B (zh) 针对归约器任务的虚拟机优化分配和/或生成
KR102145795B1 (ko) 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치
KR102539571B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
WO2018058998A1 (zh) 一种数据加载方法、终端和计算集群
JP6468499B2 (ja) 分散コンピューティングアーキテクチャ
US10120798B1 (en) Dynamic FPGA re-configuration using a virtual FPGA controller
CN107204998B (zh) 处理数据的方法和装置
KR102539572B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
US20240330087A1 (en) Service processing method and apparatus
KR102238600B1 (ko) 스케쥴러 컴퓨팅 장치, 그것을 포함하는 분산 컴퓨팅 시스템의 데이터 노드 및 그것의 방법
JP6668993B2 (ja) 並列処理装置及びノード間通信方法
KR102539573B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
JP7313123B2 (ja) 演算システムおよび演算方法
Geyer et al. Working with Disaggregated Systems. What are the Challenges and Opportunities of RDMA and CXL?
US9323475B2 (en) Control method and information processing system
KR102539574B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
EP3495960A1 (en) Program, apparatus, and method for communicating data between parallel processor cores
CN111209230B (zh) 数据处理装置、方法及相关产品
Doğan et al. A parallel hardware hypervisor for hardware‐accelerated cloud computing
Awan et al. Towards Hardware Support for FPGA Resource Elasticity
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム
Pezzarossa et al. Interfacing hardware accelerators to a time-division multiplexing network-on-chip
CN111209245B (zh) 数据处理装置、方法及相关产品

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220704

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220704

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220713

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220719

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20221007

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20221018

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221108

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221206

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20230104

C28A Non-patent document cited

Free format text: JAPANESE INTERMEDIATE CODE: C2838

Effective date: 20230104

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230306

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20230314

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230711

R150 Certificate of patent or registration of utility model

Ref document number: 7313123

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350