(57)【要約】  最適負荷配置手段と、負荷の演算実行手段とを備え、前記最適負荷配置手段は、負荷解析手段と、負荷分散手段と、プログラム情報とを有し、前記負荷の演算実行手段は、ハード処理手段と、ソフト演算手段とを有し、前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、前記負荷解析手段は、前記被処理データの中で、負荷が重くかつ通信量を削減できる領域のデータをハードコミュニティ、それ以外の領域のデータをソフトコミュニティとして選定するコミュニティ選定の機能を有し、前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配することを特徴とする情報処理システム。
2015004788.tif 000002
【特許請求の範囲】
【請求項１】
最適負荷配置手段と、負荷の演算実行手段とを備え、
前記最適負荷配置手段は、
負荷解析手段と、負荷分散手段と、プログラム情報とを有し、
前記負荷の演算実行手段は、
ハード処理手段と、ソフト演算手段とを有し、
前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、
前記負荷解析手段は、前記被処理データの中で、負荷が重くかつ通信量を削減できる領域のデータをハードコミュニティ、それ以外の領域のデータをソフトコミュニティとして選定するコミュニティ選定の機能を有し、
前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する
ことを特徴とする情報処理システム。
【請求項２】
請求項１において、
前記ハード処理手段は、ＦＰＧＡ装置を備えている
ことを特徴とする情報処理システム。
【請求項３】
請求項２において、
被処理データは、頂点と辺から成り頂点間の接続関係を含むグラフ情報であり、
前記負荷解析手段は、
前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい頂点をハブ頂点として抽出し、
前記ＦＰＧＡ装置に処理させる前記被処理データの範囲は、前記ハブ頂点を含む
ことを特徴とする情報処理システム。
【請求項４】
請求項３において、
前記負荷解析手段は、
最も次数の大きい頂点をハブ頂点とし、該ハブ頂点を中心に形成される頂点群の中から負荷の密度の高さを表すコミュニティ率が最も高いものから順に、前記ハードコミュニティを選定する
ことを特徴とする情報処理システム。
【請求項５】
請求項４において、
前記ハードコミュニティは、前記ハブ頂点からのパス数と非ハブ頂点の最大次数をパラメータとして生成される
ことを特徴とする情報処理システム。
【請求項６】
請求項５において、
前記コミュニティ率は、前記ハードコミュニティの全頂点数を境界辺数で割った値で表される
ことを特徴とする情報処理システム。
【請求項７】
請求項２において、
前記ハード処理の対象である前記ハードコミュニティと前記ソフト処理の対象であるソフトコミュニティとの境界となる頂点を境界頂点とし、前記ハード処理及び前記ソフト処理において各々、該境界頂点を含めた処理を行う
ことを特徴とする情報処理システム。
【請求項８】
請求項７において、
前記ハード処理手段は、複数のＦＰＧＡ装置を備えており、
前記各ＦＰＧＡ装置に各々前記ハード処理手段が対応して設けられ、
前記各ハードコミュニティと前記各ソフトコミュニティとの境界となる前記境界頂点を第一の境界頂点とし、
隣り合う前記ＦＰＧＡ装置間の境界となる頂点を第二境界頂点とし、
前記各ＦＰＧＡ装置及び前記ソフト処理において、各々前記第一の境界頂点を含めた処理を行い、
前記各ＦＰＧＡ装置において各々、前記第二境界頂点を含めた処理を行う
ことを特徴とする情報処理システム。
【請求項９】
請求項２において、
前記負荷解析手段は、ハブ頂点探索機能と、コミュニティ分析機能と、ハブ頂点追加機能とを備えており、
前記ハブ頂点探索機能は、前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい頂点をハブ頂点として抽出し、
前記コミュニティ分析機能は、最も次数の大きい頂点をハブ頂点とし、該ハブ頂点を中心に形成される頂点群の中から負荷の密度の高さを表すコミュニティ率が最も高いものから順に、前記ハードコミュニティを選定し、
前記ハブ頂点追加機能は、前記ハブ頂点を第一のハブ頂点として抽出した後に前記リソースに余裕が有る場合に、前記ハブ頂点の要件を満たす新たなハブ頂点を第二のハブ頂点として追加する
ことを特徴とする情報処理システム。
【請求項１０】
請求項１において、
前記処理内容は、最短経路探索若しくはページランク解析である
ことを特徴とする情報処理システム。
【請求項１１】
ＣＰＵ、メモリ装置、ソフト演算手段、ＦＰＧＡ装置および通信手段を備え、
前記メモリ装置は、被処理データ、処理内容に関する情報、及びリソースに関する情報を有しており、
前記被処理データの中で、負荷が重くかつ通信量を削減できる領域のデータをハードコミュニティ、それ以外の領域のデータをソフトコミュニティとして選定するコミュニティ選定の機能と、
選定された前記ハードコミュニティのデータを前記ＦＰＧＡ装置、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能とを有する
ことを特徴とする情報処理システム。
【請求項１２】
請求項１１において、
被処理データは、頂点と辺から成り頂点間の接続関係を含むグラフ情報であり、
前記負荷解析手段は、
前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい頂点をハブ頂点として抽出し、
前記ＦＰＧＡ装置に処理させる前記被処理データの範囲は、前記ハブ頂点を含む
ことを特徴とする情報処理システム。
【請求項１３】
請求項１２において、
前記ＦＰＧＡ装置に処理させる前記被処理データの範囲は、前記ハブ頂点を中心に形成される頂点群の中から負荷の密度の高さを表すコミュニティ率が高い範囲である
ことを特徴とする情報処理システム。
【請求項１４】
ＦＰＧＡを用いた情報処理システムにおけるデータ処理方法であって、
前記情報処理システムは、ＣＰＵ、メモリ装置、ソフト演算手段、ＦＰＧＡ装置および通信手段を備えており、
前記メモリ装置は、被処理データ、処理内容に関する情報、及びリソースに関する情報を有しており、
前記被処理データの中で、負荷が重くかつ通信量を削減できる領域のデータをハードコミュニティ、それ以外の領域のデータをソフトコミュニティとして選定し、
選定された前記ハードコミュニティのデータを前記ＦＰＧＡ装置、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配することを特徴とする情報処理システムにおけるデータ処理方法。
【請求項１５】
請求項１４において、
被処理データは、頂点と辺から成り頂点間の接続関係を含むグラフ情報であり、
前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい頂点をハブ頂点として抽出し、
前記被処理データの中の前記ハブ頂点を含むコミュニティ率が高い範囲を前記ＦＰＧＡ装置に処理させる
ことを特徴とする情報処理システムにおけるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び情報処理方法に係り、特に、情報処理を高速化するためにＦＰＧＡ（field-programmable gate array）を用いたシステムとその処理方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、非特許文献１に記載のグラフ処理方法がある。この非特許文献１には、最短経路探索などのグラフ問題を論理回路に変換して、ＦＰＧＡに実装して処理する方法が記載されている。この方法によれば、ＣＰＵを用いた演算処理と比較して、グラフ問題を解く処理（以下、単にグラフ処理と呼ぶ）を高速化することが可能となる。一方、上記非特許１文献によれば、グラフの規模が大きく、実装する論理回路が１チップのＦＰＧＡに収まらない場合、複数のＦＰＧＡに分割してグラフ処理する方法が記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、複雑な経済システムや社会の動きの解析や予測を行うため、例えば数千万頂点から成る大規模グラフを処理する要求が高まっている。これに対し、現在のＦＰＧＡに実装可能な頂点数は、１チップあたり数千から数万頂点と推測される。このため、前述した非特許文献１の方法を用いてグラフ処理する場合、少なくとも数千チップのＦＰＧＡが必要な試算となる。このため、いくらグラフ処理を高速化することが出来てもコストの増大分が大きく、実用的な情報システムを構築することが困難であった。【０００５】
本発明は、上記の課題を鑑みてなされたものであり、その目的は、大規模グラフを高速かつ低コストに処理可能な情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一例を挙げるならば、情報処理システムは、最適負荷配置手段と、負荷の演算実行手段とを備え、前記最適負荷配置手段は、負荷解析手段と、負荷分散手段と、プログラム情報とを有し、前記負荷の演算実行手段は、ハード処理手段と、ソフト演算手段とを有し、前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、前記負荷解析手段は、前記被処理データの中で、負荷が重くかつ通信量を削減できる領域のデータをハードコミュニティ、それ以外の領域のデータをソフトコミュニティとして選定するコミュニティ選定の機能を有し、前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配することを特徴とする。
【発明の効果】
【０００７】
本発明の情報処理システムによれば、ＦＰＧＡのリソースが処理可能な範囲で、処理の負荷の大きい領域を選択してＦＰＧＡに処理させ、処理の負荷の小さい領域はソフトウエアで処理することにより、特に大規模な処理を行う場合に、処理の高速化と低コストを両立することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施例に係る、ＦＰＧＡを用いた情報処理システムの機能を説明するブロック図である。
【図２】図１の情報処理システムの、ハードウエアイメージを説明するブロック図である。
【図３】第１の実施例における、情報処理システムの動作を説明するフローチャートである。
【図４】処理対象のグラフ情報のイメージを説明する図である。
【図５】図４のグラフ情報の具体的な内容を説明する図である。
【図６】第１の実施例における、負荷解析手段の動作を説明するフローチャートである。
【図７】第１の実施例における、負荷解析手段の動作を説明する図である。
【図８】第１の実施例における、負荷解析手段の動作を説明する図である。
【図９】第１の実施例における負荷分散手段の処理のイメージを説明する図である。
【図１０】本発明の第２の実施例に係る、情報処理システムの動作を説明するフローチャートである。
【図１１】本発明の第３の実施例に係る、ページクランク処理のイメージを説明する図である。
【図１２】本発明の第４の実施例に係る、複数のＦＰＧＡを用いた情報処理システムの機能を説明するブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施例を、図面を用いて説明する。
【実施例１】
【００１０】
本発明第１の実施例に係る、情報処理システムの例を、図１〜図９を用いて説明する。
図１は、本発明第１の実施例の情報処理システムの機能ブロック図である。図１において、１０１は最適負荷配置手段、１０２は負荷の演算実行手段であり、最適負荷配置手段１０１は、プログラム情報１０３、負荷解析手段１０４、負荷分散手段１０５を備え、処理の対象とする負荷、例えばグラフ処理の負荷に応じて、ハード演算手段であるＦＰＧＡに処理させる範囲を決定する。負荷の演算実行手段１０２は、ソフト演算情報１０６、ハード演算情報１０７、中間結果情報１１０８、演算結果情報１０９、ソフト演算手段１１０、及び、ハード処理手段１１１を備えている。プログラム情報１０３は、被処理データの情報２０１、例えば頂点と辺から成り頂点間の接続関係を含むグラフの情報と、処理内容情報２０２、例えば最短経路探索の処理に関する情報と、リソース情報２０３、例えばＦＰＧＡに実装可能な回路規模の情報（頂点の数、辺の数、等）を含んでいる。ハード処理装置１１１は、ＨＤＬ変換手段２０４、論理合成手段２０５、コンフィグレーション手段２０６、及び、ハード演算手段２０７を含んでいる。コンフィグレーション手段２０６、及び、ハード演算手段２０７は、ＦＰＧＡ装置で実現される。【００１１】
図２は、図１の情報処理システムの機能ブロック１０４−１１０、２０１−２０７を、ハードウエアイメージでグルーピングしたものであり、３０１はＣＰＵ、３０２はメモリ装置、３０３はＦＰＧＡ装置である。３０４〜３０６は通信インタフェースであり、各ハードウエア間における情報の受け渡しは、全て通信インタフェースを介して行われるものとする。【００１２】
以下、本発明の情報処理システムの動作について説明する。  
図３は、情報処理システムの動作４００を示すフローチャートである。図３において、Ｓ４０１は負荷解析、Ｓ４０２は負荷分散、Ｓ４０３はＨＤＬ変換、Ｓ４０４は論理合成、Ｓ４０５はコンフィグレーション、Ｓ４０６は専用のハードによって処理される論理演算、Ｓ４０８はソフト演算の、各処理のステップである。【００１３】
まず始めに、メモリ手段３０２に格納されているプログラム情報１０３を情報処理システムにロードすることで処理が開始される。プログラム情報１０３は、グラフ情報２０１、処理内容情報２０２、リソース情報２０３を含む。グラフ情報２０１とは対象とするグラフの特徴を示す情報である。図４は、処理対象のグラフ情報２０１のイメージを示す図であり、図５は、グラフ情報２０１の具体的な内容を説明する図である。第１の実施例においては、図４に示す、６５個の頂点と９０本の辺から成るグラフ２０１を対象とし、頂点間の接続関係は、図５に示す内容とする。各頂点には固有のＩＤ（ＩＤ１−ＩＤ６２）が付与されている。なお、図５において“１”と記載されている箇所が、頂点間が距離：１で接続されていることを意味する。図５の各頂点の入力次数と出力次数の和がその頂点の次数であり、負荷に対応している。処理内容情報２０２とはグラフ処理の内容を示す情報であり、第１の実施例においては、全頂点対全頂点の最短経路探索とする。リソース情報２０３とは、ＦＰＧＡに実装可能な回路規模を示す情報であり、第１の実施例においては、頂点数の許容値を５０個、辺数の許容値を１００本とする。【００１４】
負荷解析の処理Ｓ４０１は、負荷解析手段１０４により実行され、ロードされたプログラム情報に応じてハード演算手段２０７及びソフト演算手段１１０で実行すべきグラフ処理の範囲を決定し、その結果を解析結果として出力する。【００１５】
この負荷解析処理７００の動作の詳細について図６を用いて説明する。  
図６において、処理Ｓ７０１はハブ頂点探索、処理Ｓ７０２はコミュニティ分析、処理Ｓ７０３はリソースに余裕が有るかの判定、処理Ｓ７０４はハブ頂点追加である。まず、ハブ頂点探索の処理Ｓ７０１では、図５で示した各頂点（ＩＤ１−ＩＤ６２）間の距離リストを読み込み、次数の大きい順に頂点のＩＤを並び替えた次数リストを生成する。ここで、次数とは頂点に入出力している辺の数を意味し、図５における入力次数と出力次数を頂点ＩＤ毎に合算することで求めることが可能である。例えば、ＩＤ１の頂点の時数は、２＋５＝７である。なお、次数リストにおいて、辺数の許容値である１００本よりも次数の大きい頂点がある場合はリストから除外し、１００本以下で最も次数の大きい頂点をハブ頂点とする。次に、コミュニティ選定の処理Ｓ７０２では、ハブ頂点を中心に形成される頂点群（以下、ハードコミュニティと呼ぶ）の候補８００を幾つか想定し、その中から最もコミュニティ率の高いものを選定する。ハードコミュニティの候補８００は、例えばハブ頂点から何辺で接続されているかの辺数（以下パス数と呼ぶ）と、非ハブ頂点の最大次数をパラメータにすることで生成可能である。【００１６】
例えば、図７に示すように、ハブ頂点からの範囲を２〜４パス、非ハブ頂点の最大次数を３本または４本とすれば、６種類のハードコミュニティ候補８００を生成できる。そして、各ハードコミュニティの候補８００に対して、全頂点数８０１、境界辺数８０２、全辺数８０３をそれぞれ算出する。ケース＃２の場合、最も次数の大きい頂点Ｐ５をハブ頂点とすると、黒丸で表示した頂点Ｐ６、Ｐ１０、Ｐ１１等が、ハブ頂点からの範囲及び非ハブ頂点の最大次数の両要件を満たしており、ハードコミュニティに含まれ、頂点Ｐ１２は非ハブ頂点の次数が４なので要件を満たさない。なお、この頂点の番号は説明の便宜上のもので、図５の各頂点ＩＤとは関係がない。一方、ケース＃６の場合、頂点Ｐ５をハブ頂点とし、黒丸で表示した頂点Ｐ６、Ｐ１０、Ｐ１１に加えて、頂点Ｐ９、１２、１３もハードコミュニティに含まれる。ここで、境界辺数８０２とは、ハードコミュニティ外部の頂点群（以下、ソフトコミュニティと呼ぶ）に接続されている辺の総数である。さらに、全頂点数８０１を境界辺数で割った値をコミュニティ率８０４とする。【００１７】
コミュニティ率＝全頂点数÷境界辺数
このコミュニティ率が高い程、グラフ処理の負荷の密度が高いことを表している。【００１８】
図７のコミュニティ率８０４を見ると、コミュニティ候補８００の中で、ケース＃６は２．８２であるのに対し、ケース＃２は４．４０と最大であることが分かる。さらに、全頂点数８０１と全辺数８０３を見ても、前述したリソースの許容値（頂点数：５０個、辺数：１００本）より少ない。したがって、ケース＃２を（第一の）ハードコミュニティとして選定する。なお、全頂点数８０１や全辺数８０３がリソースの許容値をオーバする場合は、許容値以下となる条件において、コミュニティ率８０４が最大となる候補を選定すれば良い。【００１９】
本実施例において、ハブ頂点を中心にハードコミュニティを形成する理由は、一般的にハブ頂点に対するグラフ処理の負荷が重く、ハード処理手段で処理した方が処理の高速化が見込めるためである。また、コミュニティ率の算出に境界辺数を採用する理由は、境界辺数が少ないほどコミュニティ間の通信量を削減でき、処理の高速化が見込めるためである。【００２０】
次に、処理Ｓ７０３において、リソースに余裕が有るかの判定を行うために、リソースの許容値からハードコミュニティの物量を減算することで、残りのリソースを算出する。すなわち、（第一の）ハードコミュニティとして選定されたケース＃２の場合、残りの頂点数は５０個から２２個を引いた２８個、残りの辺数は１００本から２４本を引いた７６本となる。さらに、残りのリソースに対し、その余裕度を判定する。この動作は、例えば残りの頂点数と辺数が共に３割以上（頂点数：１５本、辺数：３０本）という閾値を設けて、その条件に該当すれば余裕ありと判定すれば良い。したがって、上記の場合は余裕ありと判定する。【００２１】
処理Ｓ７０３において判定が余裕ありの場合、ハブ頂点追加の処理Ｓ７０４の動作に進む。ハブ頂点追加の処理Ｓ７０４は、先の次数リストで２番目に次数の大きい頂点を、２番目のハブ頂点として追加する。そして、コミュニティ選定の処理Ｓ７０２に戻り、図８に示すように、２つ（第一、第二）のハブ頂点を前提とした場合の複数のコミュニティ候補９００に関して、全頂点数９０１、境界辺数９０２、全辺数９０３、コミュニティ率９０４を再度算出する。ケース＃７の場合、最も次数の大きい頂点Ｐ４を（第二の）ハブ頂点とし、黒丸で表示した頂点Ｐ１、Ｐ７、Ｐ１０、Ｐ１１等がハードコミュニティに含まれ、頂点Ｐ１２は非ハブ頂点の最大次数が４なのでハードコミュニティの要件を満たさない。一方、ケース＃１０の場合、頂点Ｐ４を（第二の）ハブ頂点とし、点Ｐ１、Ｐ７、Ｐ１０、Ｐ１１等に加えて、頂点Ｐ９、１２もハードコミュニティに含まれる。図８から分かるように、コミュニティ候補９００の中でケース＃１０のコミュニティ率９０４が６．１４と最も高いことから、ケース＃１０を（第二の）ハードコミュニティとして選定する。【００２２】
さらに、処理Ｓ７０３の判定を行うために、残りのリソースを算出すると、頂点数は５０個から４４個を引いた６個、辺数は１００本から５１本を引いた４９本となる。この結果を見ると、辺数は３０本以上なので余裕があるが、頂点数は１５本以下のため余裕がない。したがって、上記の場合は処理Ｓ７０３で余裕なしと判定する。判定が余裕なしの場合、負荷解析４０１の動作は完了し、ハード演算手段２０７で実行すべきグラフ処理の範囲として、２つのハブ頂点（Ｐ５、Ｐ４）を有するケース＃１０の条件に該当する頂点ＩＤを出力する。【００２３】
次に、負荷分散４０２の動作について説明する。  
負荷分散４０２は負荷分散手段１０５により実行され、負荷解析４０１が出力する解析結果に応じて、グラフ情報２０１をハード処理用とソフト処理用に分ける。具体的には、グラフ処理の負荷が重い、ケース＃１０で示した２つ（第一、第二）のハブ頂点を持つハードコミュニティ、の処理をハード処理手段１１１によるハード処理用とする。ソフト処理用については、図９に示すように、ハード処理の対象であるソフトコミュニティとの境界となる頂点、ここでは黒丸で表示した点Ｐ７−Ｐ１１の各々、を境界頂点とし、これらの境界頂点を含めたグラフ処理の負荷が軽いソフトコミュニティを、ソフト演算手段１１０によるソフト処理用とする。上記の考え方に基づき、図５で示したグラフ情報を分割する。【００２４】
ハード処理の各境界頂点Ｐ７−Ｐ１１からは、各々、ハード処理の結果である中間出力がソフト処理側の各境界頂点Ｐ７−Ｐ１１に出力される。ソフト処理側では、これらの中間出力を受けて、ソフトコミュニティの処理がなされる。ソフト処理側では、境界頂点からハードコミュニティ側の最短経路は、中間結果の出力情報を読み込むだけで足りる。例えば、図９の頂点Ｐ１対頂Ｐ２の最短経路探索の処理では、頂点Ｐ７−Ｐ１１の中間結果の出力情報と、ソフトコミュニティの各頂点、例えばＰ３等、に関する情報が、ソフト演算の対象となる。より具体的には、ハード処理によりＰ１−Ｐ７、Ｐ１−Ｐ８、−、Ｐ１−Ｐ１１を各々算出し、ソフト処理によりＰ７−Ｐ２、Ｐ８−Ｐ２、−、Ｐ１１−Ｐ２を各々算出した後に、ハード処理によりこれらを比較して、最短経路を求める。【００２５】
次に、ＨＤＬ変換４０３、論理合成４０４、コンフィグレーション４０５の動作について説明する。まず、ＨＤＬ変換４０３は、処理内容情報２０２およびハード処理用のグラフ情報に基づき、ＦＰＧＡに論理回路を実装するためのハードウエア記述言語を生成する。この動作の実現においては幾つかの方法が考えられるが、その一例として、前述した非特許文献１に記載の方法がある。非特許文献１によれば、最短経路探索のアルゴリズムとしてベルマン・フォード法を応用し、グラフ情報からＶｅｒｉｌｏｇコードを生成する方法が記載されている。次に、論理合成４０４は、生成したハードウエア記述言語からゲートレベルの論理回路を生成する。この動作は、例えばシノプシス社のＤｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒなどのソフトウエアを用いることで実現可能性である。なお、上記したＶｅｒｉｌｏｇコードから生成される論理回路は、その大部分が加算器、比較器、レジスタで構成される。さらに、コンフィグレーション４０５は、ＦＰＧＡに論理回路を実装するための動作であり、この動作は、例えばＦＰＧＡベンダが提供するコンフィグレーションデバイスとソフトウエアを用いることで実現可能である。なお、上記した一連の動作は、それぞれＨＤＬ変換手段２０４、論理合成手段２０５、コンフィグレーション手段２０６により実行される。【００２６】
次に、論理（専用）演算（ハード演算）の処理Ｓ４０６の動作について説明する。論理（専用）演算の処理Ｓ４０６は、重負荷の論理演算を行うものであり、専用のハード演算手段２０７により実行され、実装された論理回路に応じた演算を行う。なお、第１の実施例における処理内容情報２０２は、全頂点対全頂点の最短経路探索であることから、ハード演算４０６は、ハードコミュニティ内の全頂点間の最短経路のリストを演算結果として出力する。そして、この結果は中間結果情報１０８としてメモリ装置３０２に格納される。【００２７】
次に、ソフト演算４０８の動作について説明する。  
ソフト演算の処理Ｓ４０８は、ソフト演算手段１１０によって実行され、ハードコミュニティを含めた全ての頂点に対する最短経路探索を行う。ソフト処理による最短経路探索は、例えば前述のベルマン・フォード法の他、ワーシャル・フロイド法やダイクストラ法など、既知のアルゴリズムを実現するプログラム用意して実行すれば良い。【００２８】
ここで、例えばソフトコミュニティ内の頂点とハードコミュニティ内の頂点の最短経路を探索するなど、双方のコミュニティに探索範囲が及ぶ場合が考えられる。この場合、境界頂点（図９の点Ｐ７−Ｐ１１）のハードコミュニティ側の最短経路は、中間結果情報１０８を読み込むだけで得ることが可能である。【００２９】
以上説明した、第１の実施例の情報処理システムの構成と動作によれば、負荷解析手段及び負荷分散手段により、グラフ処理の負荷の大小に応じて、グラフ処理の高速化に効果的な範囲を抽出してＦＰＧＡに処理させることが可能となる。これにより、グラフ処理全体の高速化と低コストを両立することができる。【００３０】
以上説明したソフト演算処理Ｓ４０８の動作により、図４で示したグラフにおける全頂点間の最短経路を求めることができ、そのリストを演算結果として出力する。そして、この結果は演算結果情報１０９としてメモリ装置３０２に格納される。【００３１】
これにより、本発明の目的である、ソフト処理の負荷を軽減し、グラフ処理の高速化を図ることができる。【００３２】
なお、第１の実施例で取り上げた全頂点対全頂点の最短経路探索は、グラフ処理のベースとなるものであり、この結果を用いることで、媒介中心性や近接中心性などの応用的なグラフ処理を容易に実現することが可能となる。【００３３】
また、本発明の各実施例において、ＣＰＵは１個に限られる訳ではなく、複数のＣＰＵで処理させることも可能である。この際、ソフト処理においてＣＰＵ間の通信量が極力少なくなるように、ソフトコミュニティを設定することが望ましい。さらに、コミュニティの選定にあたり、パラメータの変化範囲の例を図７に示したが、これに限られる訳ではなく、さらに広範囲にしても良い。この場合、よりコミュニティ率の大きなケースを発見できる可能性が高まる。しかし、あまり範囲を広げすぎると処理時間が長くなるため、精度と処理時間とのバランスを考慮した設定にすることが望ましい。もしくは、ユーザが範囲を設定できるようにしても良い。さらに、図６のコミュニティ選定の処理Ｓ７０２の方法についても、本実施例で示した方法に限られる訳ではなく、他のアルゴリズムを適用することも可能である。さらに、コミュニティ率の算出についても、モジュラリティなど既知の評価指標を適用しても良い。これらの場合についても、精度と処理時間のバランスを考慮して手段を選択することが望ましい。
【実施例２】
【００３４】
次に、本発明の第２の実施例に係る、情報処理システムについて説明する。処理の高速化という観点からは、第１の実施例における上記したハード処理とソフト処理をできるだけ独立に進めるのが望ましいといえる。図１０は、本発明の第２の実施例に係る、情報処理システムの動作を説明するフローチャートである。第１の実施例と異なるのは、ソフト演算処理の一部の処理、すなわちソフト演算（一次）処理Ｓ４０７が、ハード処理Ｓ４０３−Ｓ４０６と並行して実行され、さらに、処理Ｓ４０６及びＳ４０７の結果を受けて、ソフト演算（二次）処理Ｓ４０８が実行されることにある。この動作は、例えばソフトコミュニティ内の頂点同士の最短経路探索を優先して処理し、仮にハードコミュニティに探索範囲が及ぶ場合は、その探索は後回しにすることで実現可能である。例えば、図９で、Ｐ１−Ｐ７、Ｐ１−Ｐ８、−、Ｐ１−Ｐ１１のハード処理を行っている間に、ハードコミュニティの中間結果情報を待つことなく、ソフト処理によりソフトコミュニティ内の頂点関、例えば頂点Ｐ３対頂Ｐ２の最短経路探索の処理を実行できる。最後に、ソフト演算処理Ｓ４０８により、グラフにおける全頂点間の最短経路を求めることができ、そのリストを演算結果として出力する。そして、この結果は演算結果情報１０９としてメモリ装置３０２に格納される。【００３５】
これにより、本発明の目的である、ソフト処理の負荷を軽減し、グラフ処理の高速化を図ることができる。
【実施例３】
【００３６】
本発明の第３の実施例では、グラフ処理の内容を、最短経路探索からページランク解析に変更した場合の情報システムの例について説明する。【００３７】
第３の実施例において、基本的な構成や動作は第１、第２の実施例で示した情報処理システムと同様である。第１、第２の実施例と異なる点は、処理内容情報２０２がページランク解析となる他、ＨＤＬ変換処理Ｓ４０３、ハード演算処理Ｓ４０６、ソフト演算処理Ｓ４０８の処理内容、および中間結果情報１０８、演算結果情報１０９の内容である。以下、これらの相違点を中心に、第３の実施例の情報処理システムの動作を説明する。【００３８】
まず、ＨＤＬ変換処理Ｓ４０３では、処理内容情報２０２およびハード処理用のグラフ情報に基づき、ページランク解析のアルゴリズムを実現するＶｅｒｉｌｏｇコードを生成する。ここで、ページランク解析は次式（１）で定義されることが一般的であり、全ての係数は、図５に示すグラフ情報から算出することが可能である。【００３９】
【数１】
2015004788.tif 000003
つまり、ＨＤＬ変換処理Ｓ４０３は、グラフ情報から上記の式（１）を実現するＶｅｒｉｌｏｇコードを生成すれば良く、この動作を実現するプログラムを用意して実行すれば良い。なお、上記したＶｅｒｉｌｏｇコードから生成される論理回路は、その大部分が加算器、除算器、レジスタの組合せで構成される。【００４０】
図１１は、第３の実施例に係る、ページクランク処理のイメージを説明する図である。Ｐｉは計算対象の頂点、Ｐｊ（若しくはＰｊｎ）は接続先にＰｉがある頂点を示している。【００４１】
ハード演算処理Ｓ４０６では、第３の実施例における処理内容情報２０２がページランク解析であることから、第１の実施例と同様にして、ハードコミュニティ内の全頂点のページランク値ＰＲ（）のリストを演算結果として出力する。そして、この結果は中間結果情報１０８として格納される。【００４２】
次に、ソフト演算処理Ｓ４０８では、ハードコミュニティを含めた全ての頂点に対するページランク解析を行う。ソフト処理によるページランク解析についても、式（１）を実現するプログラム用意して実行すれば良い。ここで、例えばソフトミュニティ内の頂点のページランク値ＰＲ（）を算出するために、ハードコミュニティ内の頂点のページランク値を知りたいなど、双方のコミュニティに解析範囲が及ぶ場合が考えられる。この場合、ハードコミュニティ側のページランク値は、中間結果情報１０８を読み込むだけで得ることが可能である。これにより、本発明の目的である、ソフト処理の負荷を軽減し、グラフ処理の高速化を図ることができる。なお、第１、第２の実施例と同様、上記したハード処理とソフト処理をできるだけ独立に進めた方が、処理の高速化において望ましいといえる。この動作は、例えばソフトコミュニティ内の頂点同士でページランク値が求まる頂点を優先して処理し、仮にハードコミュニティに解析範囲が及ぶ場合は、その解析は後回しにすることで実現可能である。以上説明したソフト演算処理Ｓ４０８の動作により、図４で示したグラフにおける全頂点のページランク値を求めることができ、そのリストを演算結果として出力する。そして、この結果は演算結果情報１０９として格納される。【００４３】
以上説明した第３の実施例の情報処理システムの構成と動作によれば、グラフ処理の高速化に効果的な範囲を抽出してＦＰＧＡに処理させることが可能となる。これにより、グラフ処理全体の高速化と低コストを両立することができる。
【実施例４】
【００４４】
本発明の実施例１−３で取り上げたグラフやＦＰＧＡは、大規模と言えるレベルではないが、これは説明の便宜上であり、同様の考え方で大規模なグラフやＦＰＧＡへの対応も可能である。また、本発明の実施例においては、ＦＰＧＡを１個として説明したがこれに限られる訳ではなく、複数のＦＰＧＡで処理させることも可能である。【００４５】
図１２は、本発明の第４の実施例に係る、複数のＦＰＧＡ及び複数のソフト演算手段を用いた情報処理システムの機能を説明するブロック図である。例えば、図５に示したようなグラフ情報２０１が、ＩＤ＝１〜２００００の頂点を有し、ハード演算手段としてｎ組のＦＰＧＡ（ＦＰＧＡ１−ｎ）を備え、かつ、ｎ組のソフト演算手段を備えていると仮定する。負荷解析手段及び負荷分散手段により、グラフ情報２０１を、まず、例えば、頂点ＩＤ＝１〜５０００、−、のように、全体の負荷に応じて処理の領域を複数の領域に分割し、各領域について、実施例１−３に述べたようにして、ｎ組のＦＰＧＡ及びソフト演算手段で分散処理し、それらの出力結果をさらに他のソフト演算手段で集中処理する。この場合、対応するＦＰＧＡ及びソフト演算手段で第一境界頂点を共有し、隣り合うＦＰＧＡ間で第二境界頂点を共有する。この第二境界頂点に関しては、共有する両ＦＰＧＡの処理対象となる。例えば、ＦＰＧＡ１の頂点５０００とＦＰＧＡ２の頂点５０００を第二境界頂点とする。この際、各ＦＰＧＡ間の通信量が極力少なくなるように、ハードコミュニティを設定することが望ましい。【００４６】
この場合も、負荷解析手段及び負荷分散手段は、最も次数の大きい頂点をハブ頂点としてハードコミュニティを生成する処理を繰り返し、グラフ処理の負荷の大きい領域をハードコミュニティとして抽出してＦＰＧＡに高速処理させ、グラフ処理の負荷の小さい領域は汎用のソフトウエアで処理することで、グラフ処理の高速化と低コストを両立することができる。【００４７】
このように、複数の領域が相互に第一境界頂点、第二境界頂点を共有する構成とすることで、大規模なグラフやＦＰＧＡであっても容易に対応できる。例えば、数千万頂点から成る大規模グラフを処理する要求であっても、複数のＦＰＧＡによる処理と複数のソフトウエアによる処理の組み合わせで、グラフ処理全体の高速化と低コストを両立することができる。
【実施例５】
【００４８】
さらに、本発明の実施例ではグラフ処理を取り上げて説明したが、これに限られる訳ではなく、画像処理などの他の処理にも応用が可能である。【００４９】
例えば、放射線医学、内視鏡検査、サーモグラフィーにおいて撮影された医用画像は、病気の診断、検査や、研究等の用途に応じて、病変部等を正確に抽出できるように強調その他の補正処理がなされ、診断や治療、手術等の精度を高めるのに利用される。このような医用画像のデータは、例えば図５に示したグラフ情報と同様に、各画素が１〜３バイトで表現されるピクセルを、縦横に格子状に並べた膨大な数の頂点を有するデータとして表現される。この場合の処理内容は、各ピクセルの色の補正処理である。第３の実施例と同様な手法により、画像の領域毎の色の変化、すなわち画像の頂点相互間のデータの変化率の大小に応じて、補正処理をハード演算処理とソフト演算処理に分担させる。そのために、まず、被処理データの密度すなわち画像処理の負荷の大小を判定し、色の変化率が大きいすなわち密度の高い領域はハードコミュニティとしてハード演算処理、密度の低い領域はソフトミュニティとしてソフト演算処理の対象とする。これにより、医用画像のデータの処理の高速化と低コストを両立することができる。【００５０】
このように、ＦＰＧＡのみで処理するとコストの増大分が大きく、情報処理システムとしての実用化が困難となる全てのケースにおいて、本発明の基本思想である「処理対象に応じてＦＰＧＡに処理させる範囲を決定する」ことは適用可能である。
【実施例６】
【００５１】
なお、本発明の実施例で説明したソフト処理とハード処理において、各処理に必要な時間は、負荷分散の処理Ｓ４０２が出力するグラフ情報や処理内容情報２０２などから見積もることが可能である。したがって、見積もり情報をコミュニティ選定の処理Ｓ７０２に入力し、ハードコミュニティを設定する際の判断材料とする構成が考えられる。この場合、ハード処理とソフト処理における処理時間のバランスをとることが可能となり、グラフ処理の更なる高速化を図ることが可能となる。
【符号の説明】
【００５２】
１０１  最適負荷配置手段
１０２  負荷の演算実行手段
１０３  プログラム情報
１０４  負荷解析手段
１０５  負荷分散手段
１０６  ソフト演算情報
１０７  ハード演算情報
１０８  中間結果情報
１０９  演算結果情報
１１０  ソフト演算手段
１１１  ハード処理手段
２０１  グラフ情報
２０２  処理内容手段
２０３  リソース情報
２０４  ＨＤＬ変換手段
２０５  論理合成手段
２０６  コンフィグレーション手段
２０７  ハード演算手段
３０１  ＣＰＵ
３０２  メモリ装置
３０３  ＦＰＧＡ装置
３０４〜３０６  通信インタフェース
Ｓ４０１  負荷解析処理
Ｓ４０２  負荷分散処理
Ｓ４０３  ＨＤＬ変換処理
Ｓ４０４  論理合成処理
Ｓ４０５  コンフィグレーション処理
Ｓ４０６  ハード演算処理
Ｓ４０８  ソフト演算処理
Ｓ７０１  ハブ頂点探索処理
Ｓ７０２  コミュニティ選定処理
Ｓ７０３  リソースに余裕が有るかの判定処理
Ｓ７０４  ハブ頂点追加処理
８００、９００ハードコミュニティの候補
８０１、９０１  全頂点数
８０２、９０２  境界辺数
８０３、９０３  全辺数
８０４、９０４  コミュニティ率。
【図１】
2015004788.tif 000004
【図２】
2015004788.tif 000005
【図３】
2015004788.tif 000006
【図４】
2015004788.tif 000007
【図５】
2015004788.tif 000008
【図６】
2015004788.tif 000009
【図７】
2015004788.tif 000010
【図８】
2015004788.tif 000011
【図９】
2015004788.tif 000012
【図１０】
2015004788.tif 000013
【図１１】
2015004788.tif 000014
【図１２】
2015004788.tif 000015
【手続補正書】
【提出日】平成28年10月6日(2016.10.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
最適負荷配置手段と、負荷の演算実行手段とを備え、
前記最適負荷配置手段は、
負荷解析手段と、負荷分散手段と、プログラム情報とを有し、
前記負荷の演算実行手段は、
ハード処理手段と、ソフト演算手段とを有し、
前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、
前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、
前記負荷解析手段は、
前記各頂点に対応する前記被処理データを、ハードコミュニティとソフトコミュニティの２種類のコミュニティとして選定するコミュニティ選定の機能を有し、
前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも１つの頂点をハブ頂点として抽出し、
前記ハブ頂点を中心に形成される頂点群からなりかつ前記ソフトコミュニティとの間の通信量の少ない前記コミュニティを前記ハードコミュニティとして選定し、
前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定し、
前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能を有する
ことを特徴とする情報処理システム。
【請求項２】
請求項１において、
前記ハード処理手段は、ＦＰＧＡ装置を備えている
ことを特徴とする情報処理システム。
【請求項３】
請求項２において、
前記負荷解析手段は、
前記ハードコミュニティから外部の前記ソフトコミュニティの前記頂点群に接続されている辺の総数を境界辺数としたとき、該境界辺数が少ないほど前記ハードコミュニティと前記ソフトコミュニティとの間の前記通信量が少ないコミュニティと判定する
ことを特徴とする情報処理システム。
【請求項４】
請求項３において、
前記負荷解析手段は、
前記和の最も大きい前記頂点を前記ハブ頂点とし、該ハブ頂点を中心に形成される前記頂点群の中から前記グラフ情報の密度の高さを表すコミュニティ率が最も高いものから順に、前記ハードコミュニティを選定する機能を有する
ことを特徴とする情報処理システム。
【請求項５】
請求項４において、
前記ハードコミュニティは、前記ハブ頂点からのパス数と非ハブ頂点の最大次数をパラメータとして選定される
ことを特徴とする情報処理システム。
【請求項６】
請求項５において、
前記コミュニティ率は、前記ハードコミュニティの全頂点数を前記境界辺数で割った値で表される
ことを特徴とする情報処理システム。
【請求項７】
請求項２において、
前記ハード処理手段の処理の対象である前記ハードコミュニティと前記ソフト演算手段の処理の対象である前記ソフトコミュニティとの境界となる頂点を境界頂点とし、前記ハード処理手段及び前記ソフト演算手段において各々、該境界頂点を含めた処理を行う機能を有する
ことを特徴とする情報処理システム。
【請求項８】
請求項７において、
前記ハード処理手段は、複数の前記ＦＰＧＡ装置を備えており、
前記各ＦＰＧＡ装置に各々前記ハード処理手段が対応して設けられ、
前記各ハードコミュニティと前記各ソフトコミュニティとの境界となる前記境界頂点を第一の境界頂点とし、
隣り合う前記ＦＰＧＡ装置間の境界となる頂点を第二境界頂点とし、
前記各ＦＰＧＡ装置及び前記ソフト演算手段の処理において、各々前記第一の境界頂点を含めた処理を行い、
前記各ＦＰＧＡ装置において各々、前記第二境界頂点を含めた処理を行う
ことを特徴とする情報処理システム。
【請求項９】
請求項２において、
前記負荷解析手段は、ハブ頂点探索機能と、コミュニティ分析機能と、ハブ頂点追加機能とを備えており、
前記ハブ頂点探索機能は、前記グラフ情報の前記各頂点おける前記和の大きい頂点を前記ハブ頂点として抽出し、
前記コミュニティ分析機能は、前記ハブ頂点を中心に形成される頂点群の中から前記グラフ情報の密度の高さを表すコミュニティ率が最も高いものから順に、前記ハードコミュニティを選定し、
前記ハブ頂点追加機能は、前記ハブ頂点を第一のハブ頂点として抽出した後に前記リソースに余裕が有る場合に、前記ハブ頂点の要件を満たす新たなハブ頂点を第二のハブ頂点として追加する
ことを特徴とする情報処理システム。
【請求項１０】
請求項１において、
前記処理内容は、最短経路探索若しくはページランク解析である
ことを特徴とする情報処理システム。
【請求項１１】
ＣＰＵ、メモリ装置、ソフト演算手段、ハード処理手段および通信手段を備え、
前記メモリ装置は、被処理データ、処理内容に関する情報、及びリソースに関する情報を有しており、
前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、
前記各頂点に対応する前記被処理データを、ハードコミュニティとソフトコミュニティの２種類のコミュニティとして選定するコミュニティ選定の機能と、
選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能とを有し、
前記コミュニティ選定の機能は、
前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも１つの頂点をハブ頂点として抽出するハブ頂点抽出の機能と、
前記ハブ頂点を中心に形成される頂点群からなりかつ前記ソフトコミュニティとの間の通信量の少ない前記コミュニティを前記ハードコミュニティとして選定するハードコミュニティ選定の機能と、
前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定するソフトコミュニティ選定の機能とを含む
ことを特徴とする情報処理システム。
【請求項１２】
請求項１１において、
前記ハード処理手段は、ＦＰＧＡ装置を備えている
ことを特徴とする情報処理システム。
【請求項１３】
請求項１２において、
前記ＦＰＧＡ装置に処理させる前記被処理データの範囲は、前記ハブ頂点を中心に形成される頂点群の中から前記グラフ情報の密度の高さを表すコミュニティ率が高い範囲である
ことを特徴とする情報処理システム。
【請求項１４】
ＦＰＧＡを用いた情報処理システムにおけるデータ処理方法であって、
前記情報処理システムは、ＣＰＵ、メモリ装置、ソフト演算手段、ＦＰＧＡ装置および通信手段を備えており、
前記メモリ装置は、被処理データ、処理内容に関する情報、及びリソースに関する情報を有しており、
前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、
前記各頂点に対応する前記被処理データは、ハードコミュニティとソフトコミュニティの２種類のコミュニティに分けて処理されるものであり、
前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも１つの頂点をハブ頂点として抽出し、
前記ハブ頂点を中心に形成される頂点群からなりかつ前記ソフトコミュニティとの間の通信量の少ない前記コミュニティを前記ハードコミュニティとして選定し、
前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定し、
選定された前記ハードコミュニティのデータを前記ＦＰＧＡ装置、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する
ことを特徴とする情報処理システムにおけるデータ処理方法。
【請求項１５】
請求項１４において、
前記和の最も大きい前記頂点を前記ハブ頂点とし、
該ハブ頂点を中心に形成される前記頂点群の中から前記グラフ情報の密度の高さを表すコミュニティ率が最も高いものから順に、前記ハードコミュニティを選定する
ことを特徴とする情報処理システムにおけるデータ処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の一例を挙げるならば、情報処理システムは、最適負荷配置手段と、負荷の演算実行手段とを備え、前記最適負荷配置手段は、負荷解析手段と、負荷分散手段と、プログラム情報とを有し、前記負荷の演算実行手段は、ハード処理手段と、ソフト演算手段とを有し、前記プログラム情報は、被処理データ、処理内容に関する情報、及びリソースに関する情報を含んでおり、前記被処理データは、複数の頂点と複数の辺から成り各頂点間の接続関係を含むグラフ情報であり、前記負荷解析手段は、前記各頂点に対応する前記被処理データを、ハードコミュニティとソフトコミュニティの２種類のコミュニティとして選定するコミュニティ選定の機能を有し、前記グラフ情報の前記各頂点おける入力次数と出力次数の和の大きい順に少なくとも１つの頂点をハブ頂点として抽出し、前記ハブ頂点を中心に形成される頂点群からなりかつ前記ソフトコミュニティとの間の通信量の少ない前記コミュニティを前記ハードコミュニティとして選定し、前記ハードコミュニティの外部の頂点群からなる前記コミュニティを前記ソフトコミュニティとして選定し、前記負荷分散手段は、選定された前記ハードコミュニティのデータを前記ハード処理手段、前記ソフトコミュニティのデータを前記ソフト演算手段で、各々処理するように前記被処理データを分配する機能を有することを特徴とする。
【国際調査報告】
2015004788.tif 000016
2015004788.tif 000017
2015004788.tif 000018