JP6130915B2 - 情報処理システム及び情報処理方法 - Google Patents

情報処理システム及び情報処理方法 Download PDF

Info

Publication number
JP6130915B2
JP6130915B2 JP2015526110A JP2015526110A JP6130915B2 JP 6130915 B2 JP6130915 B2 JP 6130915B2 JP 2015526110 A JP2015526110 A JP 2015526110A JP 2015526110 A JP2015526110 A JP 2015526110A JP 6130915 B2 JP6130915 B2 JP 6130915B2
Authority
JP
Japan
Prior art keywords
community
vertex
vertices
processing
hard
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
JP2015526110A
Other languages
English (en)
Other versions
JPWO2015004788A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015004788A1 publication Critical patent/JPWO2015004788A1/ja
Application granted granted Critical
Publication of JP6130915B2 publication Critical patent/JP6130915B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理システム及び情報処理方法に係り、特に、情報処理を高速化するためにFPGA(field-programmable gate array)を用いたシステムとその処理方法に関する。
本技術分野の背景技術として、非特許文献1に記載のグラフ処理方法がある。この非特許文献1には、最短経路探索などのグラフ問題を論理回路に変換して、FPGAに実装して処理する方法が記載されている。この方法によれば、CPUを用いた演算処理と比較して、グラフ問題を解く処理(以下、単にグラフ処理と呼ぶ)を高速化することが可能となる。一方、上記非特許1文献によれば、グラフの規模が大きく、実装する論理回路が1チップのFPGAに収まらない場合、複数のFPGAに分割してグラフ処理する方法が記載されている。
J. Babb, M. Frank, and A. Agarwal, "Solving Graph Problems with Dynamic Computational Structures," in Proceedings of SPIE: High-Speed Computing, Digital Signal Processing, and Filtering Using reconfigurable Logic, vol.2914, November 1996, pp.225-236.
近年、複雑な経済システムや社会の動きの解析や予測を行うため、例えば数千万頂点から成る大規模グラフを処理する要求が高まっている。これに対し、現在のFPGAに実装可能な頂点数は、1チップあたり数千から数万頂点と推測される。このため、前述した非特許文献1の方法を用いてグラフ処理する場合、少なくとも数千チップのFPGAが必要な試算となる。このため、いくらグラフ処理を高速化することが出来てもコストの増大分が大きく、実用的な情報システムを構築することが困難であった。
本発明は、上記の課題を鑑みてなされたものであり、その目的は、大規模グラフを高速かつ低コストに処理可能な情報処理システムを提供することにある。
本発明の一例を挙げるならば、情報処理システムは、最適負荷配置手段と、負荷の演算実行手段とを備え、前記最適負荷配置手段は、負荷解析手段と、負荷分散手段と、プログラム情報とを有し、前記負荷の演算実行手段は、ハード処理手段と、ソフト演算手段とを有し、前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、前記負荷解析手段は、前記各頂点に対応する前記被処理データを、ハードコミュニティとソフトコミュニティの2種類のコミュニティとして選定するコミュニティ選定の機能を有し、前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも1つの頂点をハブ頂点として抽出し、前記ハブ頂点を中心に形成される頂点群からなるハードコミュニティ候補の中で、全頂点数を外部の頂点と接続される辺の総数である境界辺数で割ったコミュニティ率が最も大きいハードコミュニティ候補から順に前記ハードコミュニティとして選定し、前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定し、前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能を有することを特徴とする。
本発明の情報処理システムによれば、FPGAのリソースが処理可能な範囲で、処理の負荷の大きい領域を選択してFPGAに処理させ、処理の負荷の小さい領域はソフトウエアで処理することにより、特に大規模な処理を行う場合に、処理の高速化と低コストを両立することができる。
本発明の第1の実施例に係る、FPGAを用いた情報処理システムの機能を説明するブロック図である。 図1の情報処理システムの、ハードウエアイメージを説明するブロック図である。 第1の実施例における、情報処理システムの動作を説明するフローチャートである。 処理対象のグラフ情報のイメージを説明する図である。 図4のグラフ情報の具体的な内容を説明する図である。 第1の実施例における、負荷解析手段の動作を説明するフローチャートである。 第1の実施例における、負荷解析手段の動作を説明する図である。 第1の実施例における、負荷解析手段の動作を説明する図である。 第1の実施例における負荷分散手段の処理のイメージを説明する図である。 本発明の第2の実施例に係る、情報処理システムの動作を説明するフローチャートである。 本発明の第3の実施例に係る、ページクランク処理のイメージを説明する図である。 本発明の第4の実施例に係る、複数のFPGAを用いた情報処理システムの機能を説明するブロック図である。
以下、本発明の実施例を、図面を用いて説明する。
本発明第1の実施例に係る、情報処理システムの例を、図1〜図9を用いて説明する。
図1は、本発明第1の実施例の情報処理システムの機能ブロック図である。図1において、101は最適負荷配置手段、102は負荷の演算実行手段であり、最適負荷配置手段101は、プログラム情報103、負荷解析手段104、負荷分散手段105を備え、処理の対象とする負荷、例えばグラフ処理の負荷に応じて、ハード演算手段であるFPGAに処理させる範囲を決定する。負荷の演算実行手段102は、ソフト演算情報106、ハード演算情報107、中間結果情報1108、演算結果情報109、ソフト演算手段110、及び、ハード処理手段111を備えている。プログラム情報103は、被処理データの情報201、例えば頂点と辺から成り頂点間の接続関係を含むグラフの情報と、処理内容情報202、例えば最短経路探索の処理に関する情報と、リソース情報203、例えばFPGAに実装可能な回路規模の情報(頂点の数、辺の数、等)を含んでいる。ハード処理装置111は、HDL変換手段204、論理合成手段205、コンフィグレーション手段206、及び、ハード演算手段207を含んでいる。コンフィグレーション手段206、及び、ハード演算手段207は、FPGA装置で実現される。
図2は、図1の情報処理システムの機能ブロック104−110、201−207を、ハードウエアイメージでグルーピングしたものであり、301はCPU、302はメモリ装置、303はFPGA装置である。304〜306は通信インタフェースであり、各ハードウエア間における情報の受け渡しは、全て通信インタフェースを介して行われるものとする。
以下、本発明の情報処理システムの動作について説明する。
図3は、情報処理システムの動作400を示すフローチャートである。図3において、S401は負荷解析、S402は負荷分散、S403はHDL変換、S404は論理合成、S405はコンフィグレーション、S406は専用のハードによって処理される論理演算、S408はソフト演算の、各処理のステップである。
まず始めに、メモリ手段302に格納されているプログラム情報103を情報処理システムにロードすることで処理が開始される。プログラム情報103は、グラフ情報201、処理内容情報202、リソース情報203を含む。グラフ情報201とは対象とするグラフの特徴を示す情報である。図4は、処理対象のグラフ情報201のイメージを示す図であり、図5は、グラフ情報201の具体的な内容を説明する図である。第1の実施例においては、図4に示す、65個の頂点と90本の辺から成るグラフ201を対象とし、頂点間の接続関係は、図5に示す内容とする。各頂点には固有のID(ID1−ID62)が付与されている。なお、図5において“1”と記載されている箇所が、頂点間が距離:1で接続されていることを意味する。図5の各頂点の入力次数と出力次数の和がその頂点の次数であり、負荷に対応している。処理内容情報202とはグラフ処理の内容を示す情報であり、第1の実施例においては、全頂点対全頂点の最短経路探索とする。リソース情報203とは、FPGAに実装可能な回路規模を示す情報であり、第1の実施例においては、頂点数の許容値を50個、辺数の許容値を100本とする。
負荷解析の処理S401は、負荷解析手段104により実行され、ロードされたプログラム情報に応じてハード演算手段207及びソフト演算手段110で実行すべきグラフ処理の範囲を決定し、その結果を解析結果として出力する。
この負荷解析処理700の動作の詳細について図6を用いて説明する。
図6において、処理S701はハブ頂点探索、処理S702はコミュニティ分析、処理S703はリソースに余裕が有るかの判定、処理S704はハブ頂点追加である。まず、ハブ頂点探索の処理S701では、図5で示した各頂点(ID1−ID62)間の距離リストを読み込み、次数の大きい順に頂点のIDを並び替えた次数リストを生成する。ここで、次数とは頂点に入出力している辺の数を意味し、図5における入力次数と出力次数を頂点ID毎に合算することで求めることが可能である。例えば、ID1の頂点の時数は、2+5=7である。なお、次数リストにおいて、辺数の許容値である100本よりも次数の大きい頂点がある場合はリストから除外し、100本以下で最も次数の大きい頂点をハブ頂点とする。次に、コミュニティ選定の処理S702では、ハブ頂点を中心に形成される頂点群(以下、ハードコミュニティと呼ぶ)の候補800を幾つか想定し、その中から最もコミュニティ率の高いものを選定する。ハードコミュニティの候補800は、例えばハブ頂点から何辺で接続されているかの辺数(以下パス数と呼ぶ)と、非ハブ頂点の最大次数をパラメータにすることで生成可能である。
例えば、図7に示すように、ハブ頂点からの範囲を2〜4パス、非ハブ頂点の最大次数を3本または4本とすれば、6種類のハードコミュニティ候補800を生成できる。そして、各ハードコミュニティの候補800に対して、全頂点数801、境界辺数802、全辺数803をそれぞれ算出する。ケース#2の場合、最も次数の大きい頂点P5をハブ頂点とすると、黒丸で表示した頂点P6、P10、P11等が、ハブ頂点からの範囲及び非ハブ頂点の最大次数の両要件を満たしており、ハードコミュニティに含まれ、頂点P12は非ハブ頂点の次数が4なので要件を満たさない。なお、この頂点の番号は説明の便宜上のもので、図5の各頂点IDとは関係がない。一方、ケース#6の場合、頂点P5をハブ頂点とし、黒丸で表示した頂点P6、P10、P11に加えて、頂点P9、12、13もハードコミュニティに含まれる。ここで、境界辺数802とは、ハードコミュニティ外部の頂点群(以下、ソフトコミュニティと呼ぶ)に接続されている辺の総数である。さらに、全頂点数801を境界辺数で割った値をコミュニティ率804とする。
コミュニティ率=全頂点数÷境界辺数
このコミュニティ率が高い程、グラフ処理の負荷の密度が高いことを表している。
図7のコミュニティ率804を見ると、コミュニティ候補800の中で、ケース#6は2.82であるのに対し、ケース#2は4.40と最大であることが分かる。さらに、全頂点数801と全辺数803を見ても、前述したリソースの許容値(頂点数:50個、辺数:100本)より少ない。したがって、ケース#2を(第一の)ハードコミュニティとして選定する。なお、全頂点数801や全辺数803がリソースの許容値をオーバする場合は、許容値以下となる条件において、コミュニティ率804が最大となる候補を選定すれば良い。
本実施例において、ハブ頂点を中心にハードコミュニティを形成する理由は、一般的にハブ頂点に対するグラフ処理の負荷が重く、ハード処理手段で処理した方が処理の高速化が見込めるためである。また、コミュニティ率の算出に境界辺数を採用する理由は、境界辺数が少ないほどコミュニティ間の通信量を削減でき、処理の高速化が見込めるためである。
次に、処理S703において、リソースに余裕が有るかの判定を行うために、リソースの許容値からハードコミュニティの物量を減算することで、残りのリソースを算出する。すなわち、(第一の)ハードコミュニティとして選定されたケース#2の場合、残りの頂点数は50個から22個を引いた28個、残りの辺数は100本から24本を引いた76本となる。さらに、残りのリソースに対し、その余裕度を判定する。この動作は、例えば残りの頂点数と辺数が共に3割以上(頂点数:15本、辺数:30本)という閾値を設けて、その条件に該当すれば余裕ありと判定すれば良い。したがって、上記の場合は余裕ありと判定する。
処理S703において判定が余裕ありの場合、ハブ頂点追加の処理S704の動作に進む。ハブ頂点追加の処理S704は、先の次数リストで2番目に次数の大きい頂点を、2番目のハブ頂点として追加する。そして、コミュニティ選定の処理S702に戻り、図8に示すように、2つ(第一、第二)のハブ頂点を前提とした場合の複数のコミュニティ候補900に関して、全頂点数901、境界辺数902、全辺数903、コミュニティ率904を再度算出する。ケース#7の場合、最も次数の大きい頂点P4を(第二の)ハブ頂点とし、黒丸で表示した頂点P1、P7、P10、P11等がハードコミュニティに含まれ、頂点P12は非ハブ頂点の最大次数が4なのでハードコミュニティの要件を満たさない。一方、ケース#10の場合、頂点P4を(第二の)ハブ頂点とし、点P1、P7、P10、P11等に加えて、頂点P9、12もハードコミュニティに含まれる。図8から分かるように、コミュニティ候補900の中でケース#10のコミュニティ率904が6.14と最も高いことから、ケース#10を(第二の)ハードコミュニティとして選定する。
さらに、処理S703の判定を行うために、残りのリソースを算出すると、頂点数は50個から44個を引いた6個、辺数は100本から51本を引いた49本となる。この結果を見ると、辺数は30本以上なので余裕があるが、頂点数は15本以下のため余裕がない。したがって、上記の場合は処理S703で余裕なしと判定する。判定が余裕なしの場合、負荷解析401の動作は完了し、ハード演算手段207で実行すべきグラフ処理の範囲として、2つのハブ頂点(P5、P4)を有するケース#10の条件に該当する頂点IDを出力する。
次に、負荷分散402の動作について説明する。
負荷分散402は負荷分散手段105により実行され、負荷解析401が出力する解析結果に応じて、グラフ情報201をハード処理用とソフト処理用に分ける。具体的には、グラフ処理の負荷が重い、ケース#10で示した2つ(第一、第二)のハブ頂点を持つハードコミュニティ、の処理をハード処理手段111によるハード処理用とする。ソフト処理用については、図9に示すように、ハード処理の対象であるソフトコミュニティとの境界となる頂点、ここでは黒丸で表示した点P7−P11の各々、を境界頂点とし、これらの境界頂点を含めたグラフ処理の負荷が軽いソフトコミュニティを、ソフト演算手段110によるソフト処理用とする。上記の考え方に基づき、図5で示したグラフ情報を分割する。
ハード処理の各境界頂点P7−P11からは、各々、ハード処理の結果である中間出力がソフト処理側の各境界頂点P7−P11に出力される。ソフト処理側では、これらの中間出力を受けて、ソフトコミュニティの処理がなされる。ソフト処理側では、境界頂点からハードコミュニティ側の最短経路は、中間結果の出力情報を読み込むだけで足りる。例えば、図9の頂点P1対頂P2の最短経路探索の処理では、頂点P7−P11の中間結果の出力情報と、ソフトコミュニティの各頂点、例えばP3等、に関する情報が、ソフト演算の対象となる。より具体的には、ハード処理によりP1−P7、P1−P8、−、P1−P11を各々算出し、ソフト処理によりP7−P2、P8−P2、−、P11−P2を各々算出した後に、ハード処理によりこれらを比較して、最短経路を求める。
次に、HDL変換403、論理合成404、コンフィグレーション405の動作について説明する。まず、HDL変換403は、処理内容情報202およびハード処理用のグラフ情報に基づき、FPGAに論理回路を実装するためのハードウエア記述言語を生成する。この動作の実現においては幾つかの方法が考えられるが、その一例として、前述した非特許文献1に記載の方法がある。非特許文献1によれば、最短経路探索のアルゴリズムとしてベルマン・フォード法を応用し、グラフ情報からVerilogコードを生成する方法が記載されている。次に、論理合成404は、生成したハードウエア記述言語からゲートレベルの論理回路を生成する。この動作は、例えばシノプシス社のDesign Compilerなどのソフトウエアを用いることで実現可能性である。なお、上記したVerilogコードから生成される論理回路は、その大部分が加算器、比較器、レジスタで構成される。さらに、コンフィグレーション405は、FPGAに論理回路を実装するための動作であり、この動作は、例えばFPGAベンダが提供するコンフィグレーションデバイスとソフトウエアを用いることで実現可能である。なお、上記した一連の動作は、それぞれHDL変換手段204、論理合成手段205、コンフィグレーション手段206により実行される。
次に、論理(専用)演算(ハード演算)の処理S406の動作について説明する。論理(専用)演算の処理S406は、重負荷の論理演算を行うものであり、専用のハード演算手段207により実行され、実装された論理回路に応じた演算を行う。なお、第1の実施例における処理内容情報202は、全頂点対全頂点の最短経路探索であることから、ハード演算406は、ハードコミュニティ内の全頂点間の最短経路のリストを演算結果として出力する。そして、この結果は中間結果情報108としてメモリ装置302に格納される。
次に、ソフト演算408の動作について説明する。
ソフト演算の処理S408は、ソフト演算手段110によって実行され、ハードコミュニティを含めた全ての頂点に対する最短経路探索を行う。ソフト処理による最短経路探索は、例えば前述のベルマン・フォード法の他、ワーシャル・フロイド法やダイクストラ法など、既知のアルゴリズムを実現するプログラム用意して実行すれば良い。
ここで、例えばソフトコミュニティ内の頂点とハードコミュニティ内の頂点の最短経路を探索するなど、双方のコミュニティに探索範囲が及ぶ場合が考えられる。この場合、境界頂点(図9の点P7−P11)のハードコミュニティ側の最短経路は、中間結果情報108を読み込むだけで得ることが可能である。
以上説明した、第1の実施例の情報処理システムの構成と動作によれば、負荷解析手段及び負荷分散手段により、グラフ処理の負荷の大小に応じて、グラフ処理の高速化に効果的な範囲を抽出してFPGAに処理させることが可能となる。これにより、グラフ処理全体の高速化と低コストを両立することができる。
以上説明したソフト演算処理S408の動作により、図4で示したグラフにおける全頂点間の最短経路を求めることができ、そのリストを演算結果として出力する。そして、この結果は演算結果情報109としてメモリ装置302に格納される。
これにより、本発明の目的である、ソフト処理の負荷を軽減し、グラフ処理の高速化を図ることができる。
なお、第1の実施例で取り上げた全頂点対全頂点の最短経路探索は、グラフ処理のベースとなるものであり、この結果を用いることで、媒介中心性や近接中心性などの応用的なグラフ処理を容易に実現することが可能となる。
また、本発明の各実施例において、CPUは1個に限られる訳ではなく、複数のCPUで処理させることも可能である。この際、ソフト処理においてCPU間の通信量が極力少なくなるように、ソフトコミュニティを設定することが望ましい。さらに、コミュニティの選定にあたり、パラメータの変化範囲の例を図7に示したが、これに限られる訳ではなく、さらに広範囲にしても良い。この場合、よりコミュニティ率の大きなケースを発見できる可能性が高まる。しかし、あまり範囲を広げすぎると処理時間が長くなるため、精度と処理時間とのバランスを考慮した設定にすることが望ましい。もしくは、ユーザが範囲を設定できるようにしても良い。さらに、図6のコミュニティ選定の処理S702の方法についても、本実施例で示した方法に限られる訳ではなく、他のアルゴリズムを適用することも可能である。さらに、コミュニティ率の算出についても、モジュラリティなど既知の評価指標を適用しても良い。これらの場合についても、精度と処理時間のバランスを考慮して手段を選択することが望ましい。
次に、本発明の第2の実施例に係る、情報処理システムについて説明する。処理の高速化という観点からは、第1の実施例における上記したハード処理とソフト処理をできるだけ独立に進めるのが望ましいといえる。図10は、本発明の第2の実施例に係る、情報処理システムの動作を説明するフローチャートである。第1の実施例と異なるのは、ソフト演算処理の一部の処理、すなわちソフト演算(一次)処理S407が、ハード処理S403−S406と並行して実行され、さらに、処理S406及びS407の結果を受けて、ソフト演算(二次)処理S408が実行されることにある。この動作は、例えばソフトコミュニティ内の頂点同士の最短経路探索を優先して処理し、仮にハードコミュニティに探索範囲が及ぶ場合は、その探索は後回しにすることで実現可能である。例えば、図9で、P1−P7、P1−P8、−、P1−P11のハード処理を行っている間に、ハードコミュニティの中間結果情報を待つことなく、ソフト処理によりソフトコミュニティ内の頂点関、例えば頂点P3対頂P2の最短経路探索の処理を実行できる。最後に、ソフト演算処理S408により、グラフにおける全頂点間の最短経路を求めることができ、そのリストを演算結果として出力する。そして、この結果は演算結果情報109としてメモリ装置302に格納される。
これにより、本発明の目的である、ソフト処理の負荷を軽減し、グラフ処理の高速化を図ることができる。
本発明の第3の実施例では、グラフ処理の内容を、最短経路探索からページランク解析に変更した場合の情報システムの例について説明する。
第3の実施例において、基本的な構成や動作は第1、第2の実施例で示した情報処理システムと同様である。第1、第2の実施例と異なる点は、処理内容情報202がページランク解析となる他、HDL変換処理S403、ハード演算処理S406、ソフト演算処理S408の処理内容、および中間結果情報108、演算結果情報109の内容である。以下、これらの相違点を中心に、第3の実施例の情報処理システムの動作を説明する。
まず、HDL変換処理S403では、処理内容情報202およびハード処理用のグラフ情報に基づき、ページランク解析のアルゴリズムを実現するVerilogコードを生成する。ここで、ページランク解析は次式(1)で定義されることが一般的であり、全ての係数は、図5に示すグラフ情報から算出することが可能である。
Figure 0006130915
つまり、HDL変換処理S403は、グラフ情報から上記の式(1)を実現するVerilogコードを生成すれば良く、この動作を実現するプログラムを用意して実行すれば良い。なお、上記したVerilogコードから生成される論理回路は、その大部分が加算器、除算器、レジスタの組合せで構成される。
図11は、第3の実施例に係る、ページクランク処理のイメージを説明する図である。Piは計算対象の頂点、Pj(若しくはPjn)は接続先にPiがある頂点を示している。
ハード演算処理S406では、第3の実施例における処理内容情報202がページランク解析であることから、第1の実施例と同様にして、ハードコミュニティ内の全頂点のページランク値PR()のリストを演算結果として出力する。そして、この結果は中間結果情報108として格納される。
次に、ソフト演算処理S408では、ハードコミュニティを含めた全ての頂点に対するページランク解析を行う。ソフト処理によるページランク解析についても、式(1)を実現するプログラム用意して実行すれば良い。ここで、例えばソフトミュニティ内の頂点のページランク値PR()を算出するために、ハードコミュニティ内の頂点のページランク値を知りたいなど、双方のコミュニティに解析範囲が及ぶ場合が考えられる。この場合、ハードコミュニティ側のページランク値は、中間結果情報108を読み込むだけで得ることが可能である。これにより、本発明の目的である、ソフト処理の負荷を軽減し、グラフ処理の高速化を図ることができる。なお、第1、第2の実施例と同様、上記したハード処理とソフト処理をできるだけ独立に進めた方が、処理の高速化において望ましいといえる。この動作は、例えばソフトコミュニティ内の頂点同士でページランク値が求まる頂点を優先して処理し、仮にハードコミュニティに解析範囲が及ぶ場合は、その解析は後回しにすることで実現可能である。以上説明したソフト演算処理S408の動作により、図4で示したグラフにおける全頂点のページランク値を求めることができ、そのリストを演算結果として出力する。そして、この結果は演算結果情報109として格納される。
以上説明した第3の実施例の情報処理システムの構成と動作によれば、グラフ処理の高速化に効果的な範囲を抽出してFPGAに処理させることが可能となる。これにより、グラフ処理全体の高速化と低コストを両立することができる。
本発明の実施例1−3で取り上げたグラフやFPGAは、大規模と言えるレベルではないが、これは説明の便宜上であり、同様の考え方で大規模なグラフやFPGAへの対応も可能である。また、本発明の実施例においては、FPGAを1個として説明したがこれに限られる訳ではなく、複数のFPGAで処理させることも可能である。
図12は、本発明の第4の実施例に係る、複数のFPGA及び複数のソフト演算手段を用いた情報処理システムの機能を説明するブロック図である。例えば、図5に示したようなグラフ情報201が、ID=1〜20000の頂点を有し、ハード演算手段としてn組のFPGA(FPGA1−n)を備え、かつ、n組のソフト演算手段を備えていると仮定する。負荷解析手段及び負荷分散手段により、グラフ情報201を、まず、例えば、頂点ID=1〜5000、−、のように、全体の負荷に応じて処理の領域を複数の領域に分割し、各領域について、実施例1−3に述べたようにして、n組のFPGA及びソフト演算手段で分散処理し、それらの出力結果をさらに他のソフト演算手段で集中処理する。この場合、対応するFPGA及びソフト演算手段で第一境界頂点を共有し、隣り合うFPGA間で第二境界頂点を共有する。この第二境界頂点に関しては、共有する両FPGAの処理対象となる。例えば、FPGA1の頂点5000とFPGA2の頂点5000を第二境界頂点とする。この際、各FPGA間の通信量が極力少なくなるように、ハードコミュニティを設定することが望ましい。
この場合も、負荷解析手段及び負荷分散手段は、最も次数の大きい頂点をハブ頂点としてハードコミュニティを生成する処理を繰り返し、グラフ処理の負荷の大きい領域をハードコミュニティとして抽出してFPGAに高速処理させ、グラフ処理の負荷の小さい領域は汎用のソフトウエアで処理することで、グラフ処理の高速化と低コストを両立することができる。
このように、複数の領域が相互に第一境界頂点、第二境界頂点を共有する構成とすることで、大規模なグラフやFPGAであっても容易に対応できる。例えば、数千万頂点から成る大規模グラフを処理する要求であっても、複数のFPGAによる処理と複数のソフトウエアによる処理の組み合わせで、グラフ処理全体の高速化と低コストを両立することができる。
さらに、本発明の実施例ではグラフ処理を取り上げて説明したが、これに限られる訳ではなく、画像処理などの他の処理にも応用が可能である。
例えば、放射線医学、内視鏡検査、サーモグラフィーにおいて撮影された医用画像は、病気の診断、検査や、研究等の用途に応じて、病変部等を正確に抽出できるように強調その他の補正処理がなされ、診断や治療、手術等の精度を高めるのに利用される。このような医用画像のデータは、例えば図5に示したグラフ情報と同様に、各画素が1〜3バイトで表現されるピクセルを、縦横に格子状に並べた膨大な数の頂点を有するデータとして表現される。この場合の処理内容は、各ピクセルの色の補正処理である。第3の実施例と同様な手法により、画像の領域毎の色の変化、すなわち画像の頂点相互間のデータの変化率の大小に応じて、補正処理をハード演算処理とソフト演算処理に分担させる。そのために、まず、被処理データの密度すなわち画像処理の負荷の大小を判定し、色の変化率が大きいすなわち密度の高い領域はハードコミュニティとしてハード演算処理、密度の低い領域はソフトミュニティとしてソフト演算処理の対象とする。これにより、医用画像のデータの処理の高速化と低コストを両立することができる。
このように、FPGAのみで処理するとコストの増大分が大きく、情報処理システムとしての実用化が困難となる全てのケースにおいて、本発明の基本思想である「処理対象に応じてFPGAに処理させる範囲を決定する」ことは適用可能である。
なお、本発明の実施例で説明したソフト処理とハード処理において、各処理に必要な時間は、負荷分散の処理S402が出力するグラフ情報や処理内容情報202などから見積もることが可能である。したがって、見積もり情報をコミュニティ選定の処理S702に入力し、ハードコミュニティを設定する際の判断材料とする構成が考えられる。この場合、ハード処理とソフト処理における処理時間のバランスをとることが可能となり、グラフ処理の更なる高速化を図ることが可能となる。
101 最適負荷配置手段
102 負荷の演算実行手段
103 プログラム情報
104 負荷解析手段
105 負荷分散手段
106 ソフト演算情報
107 ハード演算情報
108 中間結果情報
109 演算結果情報
110 ソフト演算手段
111 ハード処理手段
201 グラフ情報
202 処理内容手段
203 リソース情報
204 HDL変換手段
205 論理合成手段
206 コンフィグレーション手段
207 ハード演算手段
301 CPU
302 メモリ装置
303 FPGA装置
304〜306 通信インタフェース
S401 負荷解析処理
S402 負荷分散処理
S403 HDL変換処理
S404 論理合成処理
S405 コンフィグレーション処理
S406 ハード演算処理
S408 ソフト演算処理
S701 ハブ頂点探索処理
S702 コミュニティ選定処理
S703 リソースに余裕が有るかの判定処理
S704 ハブ頂点追加処理
800、900ハードコミュニティの候補
801、901 全頂点数
802、902 境界辺数
803、903 全辺数
804、904 コミュニティ率。

Claims (10)

  1. 最適負荷配置手段と、負荷の演算実行手段とを備え、
    前記最適負荷配置手段は、
    負荷解析手段と、負荷分散手段と、プログラム情報とを有し、
    前記負荷の演算実行手段は、
    ハード処理手段と、ソフト演算手段とを有し、
    前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、
    前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、
    前記負荷解析手段は、
    前記各頂点に対応する前記被処理データを、ハードコミュニティとソフトコミュニティの2種類のコミュニティとして選定するコミュニティ選定の機能を有し、
    前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも1つの頂点をハブ頂点として抽出し、前記ハブ頂点を中心に形成される頂点群からなるハードコミュニティ候補の中で、全頂点数を外部の頂点と接続される辺の総数である境界辺数で割ったコミュニティ率が最も大きいハードコミュニティ候補から順に前記ハードコミュニティとして選定し、
    前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定し、
    前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能を有する
    ことを特徴とする情報処理システム。
  2. 請求項1において、
    前記ハード処理手段は、FPGA装置を備えている
    ことを特徴とする情報処理システム。
  3. 請求項において、
    前記ハードコミュニティ候補は、前記ハブ頂点からのパス数と非ハブ頂点の最大次数をパラメータとして選定される
    ことを特徴とする情報処理システム。
  4. 請求項2において、
    前記ハード処理手段の処理の対象である前記ハードコミュニティと前記ソフト演算手段の処理の対象である前記ソフトコミュニティとの境界となる頂点を境界頂点とし、
    前記ハード処理手段及び前記ソフト演算手段において各々、該境界頂点を含めた処理を行う機能
    を有する
    ことを特徴とする情報処理システム。
  5. 請求項において、
    前記ハード処理手段は、複数の前記FPGA装置を備えており、
    前記各FPGA装置に各々前記ハード処理手段が対応して設けられ、
    前記各ハードコミュニティと前記各ソフトコミュニティとの境界となる前記境界頂点を第一の境界頂点とし、
    隣り合う前記FPGA装置間の境界となる頂点を第二境界頂点とし、
    前記各FPGA装置及び前記ソフト演算手段の処理において、各々前記第一の境界頂点を含めた処理を行い、
    前記各FPGA装置において各々、前記第二境界頂点を含めた処理を行う
    ことを特徴とする情報処理システム。
  6. 請求項2において、
    前記負荷解析手段は、ハブ頂点探索機能と、コミュニティ分析機能と、ハブ頂点追加機能とを備えており、
    前記ハブ頂点探索機能は、前記グラフ情報の前記各頂点おける前記入力次数と出力次数の和の最も大きい頂点を前記ハブ頂点として抽出し、
    前記コミュニティ分析機能は、前記ハブ頂点を中心に形成される頂点群からなるハードコミュニティ候補の中で、全頂点数を外部の頂点と接続される辺の総数である境界辺数で割ったコミュニティ率が最も大きいハードコミュニティ候補から順に前記ハードコミュニティとして選定し、
    前記ハブ頂点追加機能は、前記ハブ頂点を第一のハブ頂点として抽出した後に前記リソースに余裕が有る場合に、前記ハブ頂点の要件を満たす新たなハブ頂点を第二のハブ頂点として追加する
    ことを特徴とする情報処理システム。
  7. 請求項1において、
    前記処理内容は、最短経路探索若しくはページランク解析である
    ことを特徴とする情報処理システム。
  8. CPU、メモリ装置、ソフト演算手段、ハード処理手段および通信手段を備え、
    前記メモリ装置は、被処理データ、処理内容に関する情報、及びリソースに関する情報を有しており、
    前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、
    前記各頂点に対応する前記被処理データを、ハードコミュニティとソフトコミュニティの2種類のコミュニティとして選定するコミュニティ選定の機能と、
    選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能とを有し、
    前記コミュニティ選定の機能は、
    前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも1つの頂点をハブ頂点として抽出するハブ頂点抽出の機能と、
    前記ハブ頂点を中心に形成される頂点群からなるハードコミュニティ候補の中で、全頂点数を外部の頂点と接続される辺の総数である境界辺数で割ったコミュニティ率が最も大きいハードコミュニティ候補から順に前記ハードコミュニティとして選定するハードコミュニティ選定の機能と、
    前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定するソフトコミュニティ選定の機能とを含む
    ことを特徴とする情報処理システム。
  9. 請求項において、
    前記ハード処理手段は、FPGA装置を備えている
    ことを特徴とする情報処理システム。
  10. FPGAを用いた情報処理システムにおけるデータ処理方法であって、
    前記情報処理システムは、CPU、メモリ装置、ソフト演算手段、FPGA装置および通信手段を備えており、
    前記メモリ装置は、被処理データ、処理内容に関する情報、及びリソースに関する情報を有しており、
    前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、
    前記各頂点に対応する前記被処理データは、ハードコミュニティとソフトコミュニティの2種類のコミュニティに分けて処理されるものであり、
    前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも1つの頂点をハブ頂点として抽出し、
    前記ハブ頂点を中心に形成される頂点群からなるハードコミュニティ候補の中で、全頂点数を外部の頂点と接続される辺の総数である境界辺数で割ったコミュニティ率が最も大きいハードコミュニティ候補から順に前記ハードコミュニティとして選定し、
    前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定し、
    選定された前記ハードコミュニティのデータを前記FPGA装置、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する
    ことを特徴とする情報処理システムにおけるデータ処理方法。
JP2015526110A 2013-07-11 2013-07-11 情報処理システム及び情報処理方法 Active JP6130915B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/069063 WO2015004788A1 (ja) 2013-07-11 2013-07-11 情報処理システム及び情報処理方法

Publications (2)

Publication Number Publication Date
JPWO2015004788A1 JPWO2015004788A1 (ja) 2017-02-23
JP6130915B2 true JP6130915B2 (ja) 2017-05-17

Family

ID=52279510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015526110A Active JP6130915B2 (ja) 2013-07-11 2013-07-11 情報処理システム及び情報処理方法

Country Status (3)

Country Link
US (1) US9760403B2 (ja)
JP (1) JP6130915B2 (ja)
WO (1) WO2015004788A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020984B (zh) * 2016-05-20 2020-01-31 青岛海信移动通信技术股份有限公司 电子设备中进程的创建方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230303B1 (en) * 1997-02-24 2001-05-08 Lucent Technologies Inc. Proximity-based cluster allocation for hardware-software co-synthesis of heterogeneous distributed embedded systems
US20040243384A1 (en) * 2002-10-10 2004-12-02 Nang-Ping Chen Complete graph interconnect structure for the hardware emulator
US7146581B2 (en) * 2002-11-15 2006-12-05 Russell Alan Klein Automated repartitioning of hardware and software components in an embedded system
JP4470582B2 (ja) * 2004-05-19 2010-06-02 日本電気株式会社 ハードウェア/ソフトウェア協調シミュレーション方式及びその方法
US7644146B2 (en) * 2004-06-02 2010-01-05 Hewlett-Packard Development Company, L.P. System and method for discovering communities in networks
JP4725189B2 (ja) * 2005-05-24 2011-07-13 富士ゼロックス株式会社 粒子挙動解析装置及び粒子挙動解析方法、並びにコンピュータ・プログラム
US8230441B2 (en) * 2008-04-29 2012-07-24 International Business Machines Corporation Virtual world subgroup determination and segmentation for performance scalability
WO2010068840A1 (en) * 2008-12-12 2010-06-17 The Trustees Of Columbia University In The City Of New York Machine optimization devices, methods, and systems
US8577380B2 (en) * 2011-05-02 2013-11-05 Telefonica, S.A. Method for an automatic identification of urban dense areas from cell phones records
US8386286B2 (en) * 2011-05-26 2013-02-26 Xerox Corporation System and method for the dynamic allocation of resources
US8732302B2 (en) * 2011-07-15 2014-05-20 Inetco Systems Limited Method and system for monitoring performance of an application system
US8521782B2 (en) * 2011-07-20 2013-08-27 Salesforce.Com, Inc. Methods and systems for processing large graphs using density-based processes using map-reduce
JP5978613B2 (ja) * 2011-12-14 2016-08-24 富士ゼロックス株式会社 ハードウエア/ソフトウエア協調設計装置及びプログラム
ES2538412T3 (es) * 2011-12-22 2015-06-19 Airbus Operations S.L. Sistemas paralelos heterogéneos para acelerar simulaciones basadas en métodos numéricos para mallas discretas
US10521473B2 (en) * 2012-05-21 2019-12-31 Kent State University Shortest path computation in large networks
KR101329350B1 (ko) * 2012-06-15 2013-11-14 한국과학기술원 그래프의 매개 중심성 갱신 방법
US9215158B1 (en) * 2012-08-16 2015-12-15 Amazon Technologies, Inc. Computing resource availability risk assessment using graph comparison
US9208257B2 (en) * 2013-03-15 2015-12-08 Oracle International Corporation Partitioning a graph by iteratively excluding edges

Also Published As

Publication number Publication date
JPWO2015004788A1 (ja) 2017-02-23
WO2015004788A1 (ja) 2015-01-15
US9760403B2 (en) 2017-09-12
US20160077877A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
Samiei et al. Classification of skin cancer stages using a AHP fuzzy technique within the context of big data healthcare
CN107729935B (zh) 相似图片的识别方法和装置、服务器、存储介质
WO2017076296A1 (zh) 处理图数据的方法和装置
US20220229809A1 (en) Method and system for flexible, high performance structured data processing
JP6610350B2 (ja) 計算機、行列分解方法、及び行列分解プログラム
Dhar et al. An effective timing-driven detailed placement algorithm for FPGAs
WO2021086475A1 (en) A hierarchical processing technique for lesion detection, classification, and segmentation on microscopy images
CN116483319A (zh) 用于软件定义芯片的算子处理方法、装置、设备及介质
JP6130915B2 (ja) 情報処理システム及び情報処理方法
JP6733984B2 (ja) 画像解析装置
JP2011141703A (ja) 資源配置システム、資源配置方法、及び資源配置用プログラム
JPWO2011096016A1 (ja) コンパイラ装置
CN109977985A (zh) 快速激光雷达数据分类
Amaris et al. Evaluating execution time predictions on gpu kernels using an analytical model and machine learning techniques
Bytyn et al. Dataflow aware mapping of convolutional neural networks onto many-core platforms with network-on-chip interconnect
Cong et al. Accelerating vision and navigation applications on a customizable platform
Gomes et al. Efficiently computing the drainage network on massive terrains using external memory flooding process
Yuuki et al. Hardware acceleration of convolution neural network for ai-enabled realtime biomedical system
WO2018222064A1 (en) Systems and methods of hierarchical community detection in graphs
Daoud et al. High performance bitwise or based submesh allocation for 2d mesh-connected cmps
Wei et al. Fpga design of real-time mdfd system using high level synthesis
JP6557504B2 (ja) 画像適否判定装置、画像適否判定方法および画像適否判定プログラム
JP2017228223A (ja) 信号処理装置
TWI777481B (zh) 數據控制方法、數據處理方法、電子設備及儲存介質

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170310

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170414

R150 Certificate of patent or registration of utility model

Ref document number: 6130915

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150