(57)【要約】【課題】ホスト側の処理負荷を低減する。【解決手段】情報処理システム１−１は、情報処理装置１、演算処理装置群２および中継装置３を備える。情報処理装置１はシステム内においてホストに該当する。演算処理装置群２は、複数の演算処理装置２−１、・・・、２−ｎを含み、Ｉ／Ｏデバイスに該当する。また、中継装置３は、情報処理装置１と、演算処理装置群２とが接続可能な拡張バスを有している。情報処理装置１は、中継装置３を介してデータを演算処理装置群２へ送信する。演算処理装置群２は、データにもとづいて演算処理装置２−１、・・・、２−ｎ間で分散処理を実行し、中継装置３を介して実行結果を情報処理装置１へ送信する。【選択図】図１
2020198009.tif 000002
【特許請求の範囲】
【請求項１】
拡張バスを有し、前記拡張バスを介した通信を中継する中継装置と、
それぞれが前記拡張バスに接続された複数の演算処理装置を含み、前記複数の演算処理装置間で前記中継装置を介した通信を行うことで、前記複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、
前記拡張バスに接続されており、前記分散処理の実行結果を、前記中継装置を介して前記演算処理装置群から取得する情報処理装置と、
を有する情報処理システム。
【請求項２】
前記中継装置は、接続された機器に対して、前記中継装置を前記拡張バスの末端機器と認識させる複数の末端部を有し、
前記複数の演算処理装置および前記情報処理装置のそれぞれは、前記複数の末端部の１つに接続されて前記中継装置を前記拡張バスの末端機器と認識して前記拡張バスを介した通信を制御するプロセッサを有する、
請求項１記載の情報処理システム。
【請求項３】
前記中継装置が前記複数の末端部のうち第１、第２、第３、第４の末端部を有し、前記情報処理装置が前記第１、第２の末端部に接続され、前記演算処理装置群のうちの第１の演算処理装置が前記第３の末端部に接続され、前記演算処理装置群のうちの第２の演算処理装置が前記第４の末端部に接続される場合、
前記情報処理装置は、前記データを前記第１の末端部へ送信し、
前記中継装置は、前記第１の末端部から前記第３の末端部へ前記データをトンネリングし、前記第３の末端部から前記第１の演算処理装置へ前記データを送信し、
前記第１の演算処理装置は、前記データの分散処理を実行して第１の結果データを生成し、前記第１の結果データを前記第３の末端部へ送信し、
前記中継装置は、前記第３の末端部から前記第４の末端部へ前記第１の結果データをトンネリングし、前記第４の末端部から前記第２の演算処理装置へ前記第１の結果データを送信し、
前記第２の演算処理装置は、前記第１の結果データの分散処理を実行して第２の結果データを生成し、前記第２の結果データを前記第４の末端部へ送信し、
前記中継装置は、前記第４の末端部から前記第２の末端部へ前記第２の結果データをトンネリングし、前記第２の末端部から前記情報処理装置へ前記第２の結果データを送信して、シーケンシャルな分散処理を実行する、
請求項２記載の情報処理システム。
【請求項４】
前記第２の演算処理装置は、分散処理の処理プロセスを前記第３の末端部へ送信し、前記中継装置は、前記第３の末端部から前記第２の末端部へ前記処理プロセスをトンネリングして、前記第２の末端部から前記情報処理装置へ前記処理プロセスを送信する請求項３記載の情報処理システム。
【請求項５】
前記中継装置が前記末端部のうち第１、第２、第３、第４の末端部を有し、前記情報処理装置が前記第１、第２の末端部に接続され、前記演算処理装置群のうちの第１の演算処理装置が前記第３の末端部に接続され、前記演算処理装置群のうちの第２の演算処理装置が前記第４の末端部に接続される場合、
前記情報処理装置は、前記データを前記第１の末端部へ送信し、
前記中継装置は、前記第１の末端部から前記第３の末端部および前記第４の末端部へ前記データをトンネリングし、前記第３の末端部から前記第１の演算処理装置へ前記データを送信し、前記第４の末端部から前記第２の演算処理装置へ前記データを送信し、
前記第１の演算処理装置は、前記データの分散処理を実行して第１の結果データを生成し、前記第１の結果データを前記第３の末端部へ送信し
前記第２の演算処理装置は、前記データの分散処理を実行して第２の結果データを生成し、前記第２の結果データを前記第４の末端部へ送信し、
前記中継装置は、前記第３の末端部から前記第２の末端部へ前記第１の結果データをトンネリングし、前記第４の末端部から前記第２の末端部へ前記第２の結果データをトンネリングし、前記第２の末端部から前記情報処理装置へ前記第１の結果データおよび前記第２の結果データを送信して、同一データの並列分散処理を実行する、
請求項２記載の情報処理システム。
【請求項６】
前記情報処理装置は、前記演算処理装置の識別子、前記演算処理装置が実行する分散処理の内容、前記演算処理装置のアドレス、分散処理の結果の出力先アドレスおよび分散処理の処理プロセスの前記情報処理装置への送信有無を少なくとも定義したファイル情報を管理して、前記ファイル情報にもとづいて、前記演算処理装置群に対して分散処理を実行させる請求項１記載の情報処理システム。
【請求項７】
前記中継装置は、エンドポイントとしての機能を有し、前記複数の演算処理装置の通信を中継する、
請求項１から請求項６のいずれかに記載の情報処理システム。
【請求項８】
コンピュータに、
中継装置として機能させる場合、拡張バスを介した通信の中継を行い、
前記拡張バスに接続される演算処理装置群に含まれる複数の演算処理装置として機能させる場合、前記複数の演算処理装置間で前記中継装置を介した通信を行って、前記複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行い、
前記拡張バスに接続される情報処理装置として機能させる場合、前記分散処理の実行結果を、前記中継装置を介して前記演算処理装置群から取得する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、ＡＩ（Artificial Intelligence）推論処理や画像処理等の負荷の高い演算がパーソナルコンピュータ（ＰＣ：Personal Computer）をベースに実現されている。ＰＣには、例えば、ＧＰＵ（Graphics Processing Unit）やＦＰＧＡ（Field Programmable Gate Array）といった演算プロセッサが搭載されて高い演算性能が実現される。
【０００３】
これらの演算プロセッサを接続するためのインタフェースとしては、大容量のデータを伝送可能なＰＣＩＥｘｐｒｅｓｓ（Peripheral Component Interconnect Express：登録商標）が用いられている。
【０００４】
ＰＣＩ Ｅｘｐｒｅｓｓのインタフェースを備えるシステムでは、通常、ＰＣ側のホストになる演算プロセッサは、ＰＣＩＥｘｐｒｅｓｓのルートコンプレックス（ＲＣ：Root Complex）として機能する。
【０００５】
また、ＰＣと通信を行うＩ／Ｏデバイス側の演算プロセッサは、ＰＣＩＥｘｐｒｅｓｓのエンドポイント（ＥＰ：End Point）として機能する。そして、エンドポイントにルートコンプレックスが接続されて、ホストとデバイス間でＡＩ推論処理や画像処理等のデータ転送が行われる。
【０００６】
関連技術としては、例えば、ホストおよびカード間のＰＣＩ Ｅｘｐｒｅｓｓバスに連接可能な連接部を複数備え、各カードの連接部を連結して、カード間においてデータ転送を行う技術が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−１３４４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＰＣＩ Ｅｘｐｒｅｓｓを通じて、ホストに複数のデバイスが接続されるシステムにおいては、従来、ホスト−デバイス間で命令やデータが伝達されるが、デバイス−デバイス間では命令やデータの伝達は行われない。
【０００９】
このため、一方のデバイス側の演算プロセッサから他方のデバイス側の演算プロセッサにデータを引き渡す等のデバイス間でのデータ転送を行う場合には、ホスト側のプロセッサが介在することになり、ホスト側の処理負荷が高くなるという問題がある。
【００１０】
１つの側面では、本発明は、ホスト側の処理負荷の低減を図った情報処理システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、情報処理システムが提供される。情報処理システムは、拡張バスを有し、拡張バスを介した通信を中継する中継装置と、それぞれが拡張バスに接続された複数の演算処理装置を含み、複数の演算処理装置間で中継装置を介した通信を行うことで、複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、拡張バスに接続されており、分散処理の実行結果を、中継装置を介して演算処理装置群から取得する情報処理装置と、を有する。
【００１２】
また、上記課題を解決するために、コンピュータに上記情報処理システムと同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１３】
１側面によれば、ホスト側の処理負荷を低減したデータ転送が可能になる。
【図面の簡単な説明】
【００１４】
【図１】情報処理システムの一例を説明するための図である。
【図２】ＰＣＩｅ搭載のプラットフォームの構成の一例を示す図である。
【図３】情報処理システムの構成の一例を示す図である。
【図４】情報処理システムのエッジコンピューティングの適用例を示す図である。
【図５】情報処理システムのハードウェア構成の一例を示す図である。
【図６】ＰＣＩｅブリッジコントローラのハードウェア構成の一例を示す図である。
【図７】コプロセッサ間のデータ転送の一例を示す図である。
【図８】コプロセッサ間のデータ転送の一例を示す図である。
【図９】分散処理の一例を示す図である。
【図１０】分散処理の一例を示す図である。
【図１１】分散処理の一例を示す図である。
【図１２】分散処理の一例を示す図である。
【図１３】定義ファイルの一例を示す図である。
【図１４】メインプロセッサによる設定動作の一例を示すフローチャートである。
【図１５】コプロセッサ間の分散処理の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は情報処理システムの一例を説明するための図である。情報処理システム１−１は、情報処理装置１、演算処理装置群２および中継装置３を備える。情報処理装置１はシステム内においてホストに該当する。演算処理装置群２は、複数の演算処理装置２−１、・・・、２−ｎを含み、Ｉ／Ｏデバイスに該当する。また、中継装置３は、情報処理装置１と、演算処理装置群２とが接続可能な拡張バスを有している。拡張バスは、周辺デバイス用拡張バスであってよい。
【００１６】
中継装置３は、拡張バスを介した通信を中継する。演算処理装置群２は、それぞれが拡張バスに接続された演算処理装置２−１、・・・、２−ｎを含み、演算処理装置２−１、・・・、２−ｎ間で中継装置３を介した通信を行うことで、演算処理装置２−１、・・・、２−ｎのいずれかに入力されたデータに対する演算の分散処理を行う。情報処理装置１は、拡張バスに接続されており、分散処理の実行結果を、中継装置３を介して演算処理装置群２から取得する。
【００１７】
図１に示すシーケンスにもとづいて動作の一例について説明する。
〔ステップＳ１〕情報処理装置１は、データを中継装置３へ送信する。
〔ステップＳ２〕中継装置３は、データを演算処理装置２−１へ中継送信する。
【００１８】
〔ステップＳ３〕演算処理装置２−１は、データにもとづいて分散処理を実行し、分散処理結果である第１の結果データを中継装置３へ送信する。
〔ステップＳ４〕中継装置３は、第１の結果データを演算処理装置２−２へ中継送信する。
【００１９】
〔ステップＳ５〕演算処理装置２−２は、第１の結果データにもとづいて分散処理を実行し、分散処理結果である第２の結果データを中継装置３へ送信する。以下同様にして、演算処理装置２−３から演算処理装置２−（ｎ−１）で分散処理が行われる。
〔ステップＳ６〕中継装置３は、演算処理装置２−（ｎ−１）から送信された第（ｎ−１）の結果データを演算処理装置２−ｎへ中継送信する。
【００２０】
〔ステップＳ７〕演算処理装置２−ｎは、第（ｎ−１）の結果データにもとづいて分散処理を実行し、分散処理結果である第ｎの結果データを中継装置３へ送信する。
〔ステップＳ８〕中継装置３は、第ｎの結果データを情報処理装置１へ中継送信する。
〔ステップＳ９〕情報処理装置１は、第ｎの結果データを保存して管理する（データ解析の処理も含まれる）。
【００２１】
このように、情報処理システム１−１では、情報処理装置１から中継装置３を介して送信されたデータは演算処理装置２−１、・・・、２−ｎ間で分散処理が実行され、中継装置３を介して実行結果が情報処理装置１へ送信される。
【００２２】
このような構成により、一方の演算処理装置から他方の演算処理装置にデータを引き渡す等の演算処理装置間でのデータ転送を行う場合、ホストとなる情報処理装置の介在が不要となる。このため、演算処理装置間での命令やデータの伝達が可能となり、ホスト側の処理負荷を低減することができる。
【００２３】
［第２の実施の形態］
次に第２の実施の形態について説明する。第２の実施の形態の情報処理システムは、ＰＣＩＥｘｐｒｅｓｓ（以下、ＰＣＩｅと表記）インタフェースを用いてデータ転送を行うものである。最初に、従来のプラットフォームの構成および課題について説明する。
【００２４】
図２はＰＣＩｅ搭載のプラットフォームの構成の一例を示す図である。ＰＣＩｅ搭載のプラットフォーム４がルートコンプレックス（以下、ＲＣと表記）となり、デバイス５−１、・・・、５−８がエンドポイント（以下、ＥＰと表記）となって、プラットフォーム４にデバイス５−１、・・・、５−８が接続されている。
【００２５】
すなわち、プラットフォーム４は、ＥＰが接続されるＲＣ側のポートｐ２−１、・・・、ｐ２−８を備え、ポートｐ２−１、・・・、ｐ２−８に対して、デバイス５−１、・・・、５−８がＰＣＩｅインタフェースを通じて１対１に接続される。
【００２６】
プラットフォーム４には、例えば、インテル社製x86互換プロセッサが搭載されており汎用ＯＳ（Operating System）が動作する。また、デバイス５−１、・・・、５−８に用いられるコントローラ部は、それぞれ別メーカ（Ａ社〜Ｈ社）により提供される。
【００２７】
デバイス５−１、・・・、５−８を駆動する場合には、プラットフォーム４のＯＳ上にデバイス５−１、・・・、５−８の各メーカに対応したドライバを組み込むことで、デバイス５−１、・・・、５−８が利用可能となる。
【００２８】
このため、デバイス５−１、・・・、５−８を独立して駆動させることができず、プラットフォーム４に動作不良が生じると、全デバイス５−１、・・・、５−８の機能が停止する。
【００２９】
また、プラットフォーム４に搭載するドライバは、プラットフォーム４のハードウェアやＯＳに併せて開発することになるため、プラットフォーム４のＯＳを変更する等の場合には、ドライバの開発を適宜行うことになる。
【００３０】
さらに、このような構成では、例えば、一方のデバイスから他方のデバイスにデータを引き渡す等のデバイス間でのデータ転送を行う場合、ホスト側のプラットフォーム４が介在することになり、ホスト側の処理負荷が高くなる。
【００３１】
本発明ではこのような点に鑑みてなされたものであり、デバイスの独立駆動を可能にし、デバイス毎のドライバ開発を不要とし、さらにホスト側の処理負荷の低減を図ったデータ転送を可能にするものである。
【００３２】
＜システム構成＞
次に第２の実施の形態の構成および動作について以降詳しく説明する。図３は情報処理システムの構成の一例を示す図である。情報処理システム１−２は、ホスト１０、デバイス２０−１、・・・、２０−６およびＰＣＩｅブリッジコントローラ３０を備える。
【００３３】
ホスト１０は、図１の情報処理装置１の機能を有し、デバイス２０−１、・・・、２０−６は、図１の演算処理装置２−１、・・・、２−ｎの機能を有する。また、ＰＣＩｅブリッジコントローラ３０は、図１の中継装置３の機能を有する。
【００３４】
ホスト１０は、プラットフォームに該当し、ＲＣとして機能する。デバイス２０−１、・・・、２０−６は、ＲＣとして機能する。ＰＣＩｅブリッジコントローラ３０は、ＥＰ（末端部に該当）として機能する。なお、デバイス２０−１、・・・、２０−６は、Ａ社からＦ社の各メーカのコプロセッサ（co-processor）２ａ、・・・、２ｆをそれぞれ有している。
【００３５】
ホスト１０は、ＲＣポートｐ１１、ｐ１２を備え、デバイス２０−１、・・・、２０−６は、ＲＣポートｐ２１、・・・、ｐ２６を備える。ＰＣＩｅブリッジコントローラ３０は、ＥＰポートｐ３１、・・・、ｐ３８を備える。なおホスト１０は、ｐ１１、ｐ１２のどちらか一方でもよい。
【００３６】
各構成要素の接続関係を記すと、ＲＣポートｐ１１とＥＰポートｐ３１が接続され、ＲＣポートｐ１２とＥＰポートｐ３２が接続されて、ホスト１０とＰＣＩｅブリッジコントローラ３０とが接続される。
【００３７】
また、ＲＣポートｐ２１と、ＥＰポートｐ３３とが接続されて、デバイス２０−１とＰＣＩｅブリッジコントローラ３０とが接続される。ＲＣポートｐ２２と、ＥＰポートｐ３４とが接続されて、デバイス２０−２とＰＣＩｅブリッジコントローラ３０とが接続される。ＲＣポートｐ２３と、ＥＰポートｐ３５とが接続されて、デバイス２０−３とＰＣＩｅブリッジコントローラ３０とが接続される。
【００３８】
さらに、ＲＣポートｐ２４と、ＥＰポートｐ３６とが接続されて、デバイス２０−４とＰＣＩｅブリッジコントローラ３０とが接続される。ＲＣポートｐ２５と、ＥＰポートｐ３７とが接続されて、デバイス２０−５とＰＣＩｅブリッジコントローラ３０とが接続される。ＲＣポートｐ２６と、ＥＰポートｐ３８とが接続されて、デバイス２０−６とＰＣＩｅブリッジコントローラ３０とが接続される。
【００３９】
情報処理システム１−２において、コプロセッサ２ａ、・・・、２ｆ上では、任意のＯＳが動作し、プラットフォームに対するインターコネクト等の制限がない。また、ＰＣＩｅブリッジコントローラ３０のＥＰポートｐ３１、・・・、ｐ３８には、任意のＲＣ機器を接続することができる。
さらに、独立したコプロセッサ２ａ、・・・、２ｆ上で異なるＯＳが動作している状態でも、各ＯＳ用のＰＣＩｅブリッジコントローラドライバが適用されることで、コプロセッサ間でのデータ転送が可能である。
【００４０】
また、情報処理システム１−２では、接続するＲＣ機器毎にドライバの作り直しが発生せず、ＰＣＩｅブリッジコントローラ３０をＥＰとして各コプロセッサと接続することで、一方のコプロセッサで処理されたデータを他方のコプロセッサで処理することができる。
【００４１】
＜エッジコンピューティングへの適用＞
図４は情報処理システムのエッジコンピューティングの適用例を示す図である。図３で上述したホスト１０をエッジサーバとみなして、情報処理システム１−２をエッジコンピューティングに適用することができる。
【００４２】
エッジコンピューティングシステムｓｙ１は、情報処理システム１−２、専用ネットワークＮ１（インターネット等）およびクラウドネットワークＮ２を備える。情報処理システム１−２内のホスト１０は専用ネットワークＮ１に接続され、専用ネットワークＮ１はクラウドネットワークＮ２に接続される。
ホスト１０は、ＥＰの機能を持つデバイス２０−１、・・・、２０−６で処理されたデータを集約して、専用ネットワークＮ１を介してクラウドネットワークＮ２へ送信する。
【００４３】
このような構成によって、クラウド側のリソースを節約してエッジ側での処理が可能になる。これにより、クラウドネットワークＮ２を介した応答時間がなくなるためリアルタイム性を確保できる。
【００４４】
また、ホスト１０（エッジ）上でデータを処理して結果をクラウドネットワークＮ２へ送信するので、データの秘匿性を確保できる。さらに、ホスト１０上でデータを処理して必要なデータのみをクラウドネットワークＮ２へ送信することで、通信量を削減できる。
【００４５】
＜ハードウェア＞
図５は情報処理システムのハードウェア構成の一例を示す図である。メインボード１００は、ホスト１０の主機能を担う部品が装着された基板である。ホスト１０は、メインプロセッサ１１、ディスプレイ１２、入出力インタフェース１３、ネットワークインタフェース１４、メモリ１５およびＴＰＭ（Trusted Platform Module）１６を備える。
メモリ１５は、ＤＩＭＭ（Dual Inline Memory Module）１５ａ、ＳＳＤ（Solid State Drive）１５ｂおよびＨＤＤ（Hard Disk Drive）１５ｃを含む。
【００４６】
メインプロセッサ１１は、ホスト１０の主機能を担うプロセッサであり、マルチプロセッサであってもよい。メインプロセッサ１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またメインプロセッサ１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４７】
ディスプレイ１２は、各種の情報を表示する表示部として機能し、例えば、モニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）である。
【００４８】
入出力インタフェース１３は、周辺機器を接続するための通信インタフェースとして機能する。入出力インタフェース１３は、例えば、ＵＳＢ（Universal Serial Bus）デバイスが接続可能であり、ＵＳＢデバイスとメインプロセッサ１１との通信を媒介する。
また、例えば、入出力インタフェース１３は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００４９】
さらに、入出力インタフェース１３は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１３との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００５０】
ネットワークインタフェース１４は、ネットワーク回線が接続可能であり、ネットワーク回線を介して外部機器とメインプロセッサ１１との通信を媒介する。ネットワークとしては、例えば、イーサネット（Ethernet：登録商標）である。ネットワークインタフェース１４としては、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等を使用することもできる。
【００５１】
メモリ１５には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。ＤＩＭＭ１５ａは、各種の情報を一時記憶可能なＲＡＭ（Random Access Memory）等の揮発性の記録媒体である。ＳＳＤ１５ｂとＨＤＤ１５ｃは、各種の情報を電源断後も記憶可能な不揮発性の記録媒体である。なお、ＴＰＭ１６は、システムのセキュリティ機能を実現するモジュールである。
【００５２】
ＰＣＩｅブリッジコントローラ３０は、複数のデバイス２０−１、・・・、２０−６をブリッジ接続し、ホスト１０とデバイス２０−１、・・・、２０−６間の通信、およびデバイス２０−１、・・・、２０−６間の通信を中継する。
【００５３】
デバイス２０−１、・・・、２０−６は、互いに並列してＰＣＩｅブリッジコントローラ３０に接続されている。デバイス２０−１、・・・、２０−６は、変換ボードｃｖ１、・・・、ｃｖ６およびコプロセッサ２ａ、・・・、２ｆを有する。
【００５４】
変換ボードｃｖ１、・・・、ｃｖ６は、アクセラレータボードとも呼ばれ、情報処理システム１−２の処理能力を高めるために、追加して利用するハードウェアが搭載された基板である。
【００５５】
コプロセッサ２ａ、・・・、２ｆは、ＡＩ推論処理や画像処理等の並列演算処理に適したプロセッサであり、ＧＰＵや専用チップなどのアクセラレータ等を採用できる。また、コプロセッサ２ａ、・・・、２ｆは、ＣＰＵおよびＧＰＵの組み合わせであってもよい。なお、図示していないが、デバイス２０−１、・・・、２０−６内にはそれぞれメモリが実装されている。
【００５６】
図６はＰＣＩｅブリッジコントローラのハードウェア構成の一例を示す図である。ＰＣＩｅブリッジコントローラ３０は、例えば、８チャネルのＥＰを１チップ内に有する中継装置である。ＰＣＩｅブリッジコントローラ３０は、ＣＰＵ３１、メモリ３２、内部バス３３および複数のスロットｓＬ３１、・・・、ｓＬ３８（ＥＰポートに相当）を備える。
【００５７】
スロットｓＬ３１、・・・、ｓＬ３８にはそれぞれ、ＰＣＩｅ規格を満たすように構成されたデバイスまたはホストが接続される。なお、１つのスロットに対して１つのプロセッサが接続されてもよく、または１つのスロットに対して１つのホストまたはデバイスが接続されてもよく、種々変形して接続することができる。
【００５８】
スロットｓＬ３１、・・・、ｓＬ３８は、内部バス３３を介して互いに接続され、さらに内部バス３３には、ＣＰＵ３１およびメモリ３２が接続されている。これにより、内部バス３３を介して、スロットｓＬ３１、・・・、ｓＬ３８に接続されたホストまたはデバイスと、ＣＰＵ３１およびメモリ３２とは相互に通信可能になる。
【００５９】
メモリ３２は、例えば、ＲＯＭおよびＲＡＭを含む記憶メモリである。メモリ３２のＲＯＭには、データ通信制御にかかわるソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３２上のソフトウェアプログラムは、ＣＰＵ３１に適宜読み込まれて実行される。また、メモリ３２のＲＡＭは、１次記憶メモリあるいはワーキングメモリとして利用される。
【００６０】
ＣＰＵ３１は、ＰＣＩｅブリッジコントローラ３０全体を制御する。ＣＰＵ３１は、マルチプロセッサであってもよい。なお、ＣＰＵ３１に代えてＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのいずれか１つが用いられてもよい。ＣＰＵ３１がメモリ３２に格納されたソフトウェアプログラムを実行することでＰＣＩｅブリッジコントローラ３０におけるデータ転送を実現する。
【００６１】
ＰＣＩｅブリッジコントローラ３０は、デバイス間のデータ転送を高速化するためにＰＣＩｅを用い、ホストまたはデバイスに備えられるプロセッサをそれぞれＲＣとして動作させ、ＥＰ間でデータ転送を実現する。
【００６２】
ＰＣＩｅブリッジコントローラ３０をプロセッサに対してＥＰとして接続する手法としては、既知の種々の手法を用いて実現することができる。例えば、ＰＣＩｅブリッジコントローラ３０は、ホストまたはデバイスとの接続時に、ＥＰとして機能することを示す信号をホストまたはデバイス内のプロセッサに通知することで、ＥＰとしてプロセッサと接続する。ＰＣＩｅブリッジコントローラ３０は、例えば、ＥＰｔｏＥＰ（End Point to End Point）でデータをトンネリングさせて、複数のＲＣにデータを転送する。
【００６３】
＜コプロセッサ間のデータ転送の例＞
図７はコプロセッサ間のデータ転送の一例を示す図である。なお、図中、ホスト１０は、ネットワークインタフェース１４として、ＷＡＮ（Wide Area Network）インタフェース１４ａおよびＬＡＮインタフェース１４ｂを備えている。
【００６４】
〔ステップＳ１１〕ホスト１０内のメインプロセッサ１１は、画像データを、ＰＣＩｅブリッジコントローラ３０を経由してデバイス２０−１内のコプロセッサ２ａに送信する。
〔ステップＳ１２〕コプロセッサ２ａは、受信した画像データに対して所定の分散処理を行う。
〔ステップＳ１３〕コプロセッサ２ａは、分散処理結果を、ＰＣＩｅブリッジコントローラ３０を経由してデバイス２０−２内のコプロセッサ２ｂに送信する。
【００６５】
〔ステップＳ１４〕コプロセッサ２ｂは、受信した分散処理結果を引き継いで所定の分散処理を行う。
〔ステップＳ１５〕コプロセッサ２ｂは、分散処理結果を、ＰＣＩｅブリッジコントローラ３０を経由してメインプロセッサ１１に送信する。
【００６６】
〔ステップＳ１６〕メインプロセッサ１１は、処理結果をメモリ１５に格納して管理する。
〔ステップＳ１７〕メインプロセッサ１１は、ＬＡＮインタフェース１４ｂを介して、処理結果にもとづくイベント通知を行う。例えば、画像処理結果から不審人物が検出された場合、アラート通知を行う。
【００６７】
このように、メインプロセッサ１１を介さずに、ＰＣＩｅブリッジコントローラ３０を介してコプロセッサ間でデータ転送を行って分散処理を実行し、実行結果がメインプロセッサ１１に送信されることで、メインプロセッサ１１の処理負荷を低減することができる。
【００６８】
図８はコプロセッサ間のデータ転送の一例を示す図である。
〔ステップＳ２０〕ホスト１０内のメインプロセッサ１１は、画像データを、ＰＣＩｅブリッジコントローラ３０を経由してデバイス２０−１内のコプロセッサ２ａに送信する。
〔ステップＳ２１〕コプロセッサ２ａは、受信した画像データに対して所定の分散処理を行う。
【００６９】
〔ステップＳ２２〕コプロセッサ２ａは、分散処理結果を、ＰＣＩｅブリッジコントローラ３０を経由してデバイス２０−２内のコプロセッサ２ｂに送信する。
〔ステップＳ２３〕コプロセッサ２ｂは、受信した分散処理結果を引き継いで所定の分散処理を行う。
【００７０】
〔ステップＳ２４〕コプロセッサ２ｂは、途中の分散処理の処理プロセスを、ＰＣＩｅブリッジコントローラ３０を経由してメインプロセッサ１１に送信する。
〔ステップＳ２５〕コプロセッサ２ｂは、分散処理結果を、ＰＣＩｅブリッジコントローラ３０を経由してデバイス２０−３内のコプロセッサ２ｃに送信する。
【００７１】
〔ステップＳ２６〕コプロセッサ２ｃは、受信した分散処理結果を引き継いで所定の分散処理を行う。
〔ステップＳ２７〕コプロセッサ２ｃは、分散処理結果を、ＰＣＩｅブリッジコントローラ３０を経由してメインプロセッサ１１に送信する。
【００７２】
〔ステップＳ２８〕メインプロセッサ１１は、処理結果をメモリ１５に格納して管理する。
〔ステップＳ２９〕メインプロセッサ１１は、ＬＡＮインタフェース１４ｂを介して、処理結果にもとづくイベント通知を行う。
【００７３】
このように、図８の例では、分散処理の途中の処理プロセスがコプロセッサ２ｂからメインプロセッサ１１に送信される。これにより、メインプロセッサ１１は、分散処理の途中の処理結果をより早く認識することができるので、分散処理の最終結果を待たずにイベント検出およびイベント検出に伴う通知等を早期に実行することが可能になる。
【００７４】
＜様々な分散処理のパターン＞
図９は分散処理の一例を示す図である。
〔ステップＳ３１ａ〕メインプロセッサ１１は、データｄ１をコプロセッサ２ａに送信する。
〔ステップＳ３２ａ〕コプロセッサ２ａは、データｄ１を受信すると所定の分散処理を行い、処理結果ｄｒ１１をコプロセッサ２ｂへ送信する。
【００７５】
〔ステップＳ３３ａ〕コプロセッサ２ｂは、処理結果ｄｒ１１を受信すると所定の分散処理を行い、処理結果ｄｒ１２をコプロセッサ２ｃへ送信する。
〔ステップＳ３４ａ〕コプロセッサ２ｃは、処理結果ｄｒ１２を受信すると所定の分散処理を行い、処理結果ｄｒ１３をメインプロセッサ１１へ送信する。
〔ステップＳ３５ａ〕メインプロセッサ１１は、処理結果ｄｒ１３を保存管理する。
【００７６】
〔ステップＳ３１ｂ〕メインプロセッサ１１は、データｄ２をコプロセッサ２ｄに送信する。
〔ステップＳ３２ｂ〕コプロセッサ２ｄは、データｄ２を受信すると所定の分散処理を行い、処理結果ｄｒ２１をコプロセッサ２ｅへ送信する。
【００７７】
〔ステップＳ３３ｂ〕コプロセッサ２ｅは、処理結果ｄｒ２１を受信すると所定の分散処理を行い、処理結果ｄｒ２２をコプロセッサ２ｆへ送信する。
〔ステップＳ３４ｂ〕コプロセッサ２ｆは、処理結果ｄｒ２２を受信すると所定の分散処理を行い、処理結果ｄｒ２３をメインプロセッサ１１へ送信する。
〔ステップＳ３５ｂ〕メインプロセッサ１１は、処理結果ｄｒ２３を保存管理する。
【００７８】
図１０は分散処理の一例を示す図である。ＰＣＩｅインタフェースを介してのシーケンシャルな分散処理の構成を示している（図９の一部構成の具体例に相当）。
ＰＣＩｅブリッジコントローラ３０はＥＰ＃１、・・・、ＥＰ＃４を有している（ＥＰ＃ａは、ポートａのＥＰを表すとする）。メインプロセッサ１１はＥＰ＃１、ＥＰ＃２に接続され、コプロセッサ２ａはＥＰ＃３に接続され、コプロセッサ２ｂはＥＰ＃４に接続されている。
【００７９】
〔ステップＳ４１〕メインプロセッサ１１は、データをＥＰ＃１に送信する。
〔ステップＳ４２〕ＰＣＩｅブリッジコントローラ３０は、ＥＰ＃１からＥＰ＃３へデータをトンネリングし、ＥＰ＃３からコプロセッサ２ａへデータを送信する。
【００８０】
〔ステップＳ４３〕コプロセッサ２ａは、データの分散処理を実行して第１の結果データを生成し、第１の結果データをＥＰ＃３に送信する。
〔ステップＳ４４〕ＰＣＩｅブリッジコントローラ３０は、ＥＰ＃３からＥＰ＃４へ第１の結果データをトンネリングし、ＥＰ＃４からコプロセッサ２ｂへ第１の結果データを送信する。
【００８１】
〔ステップＳ４５〕コプロセッサ２ｂは、第１の結果データの分散処理を実行して第２の結果データを生成し、第２の結果データをＥＰ＃４に送信する。
〔ステップＳ４６〕ＰＣＩｅブリッジコントローラ３０は、ＥＰ＃４からＥＰ＃２へ第２の結果データをトンネリングし、ＥＰ＃２からメインプロセッサ１１へ第２の結果データを送信する。ステップＳ４１からステップＳ４６の処理フローによって、シーケンシャルな分散処理が実行される。
【００８２】
なお、コプロセッサ２ａは、分散処理の途中の処理プロセスをメインプロセッサ１１へ送信することができる。この場合、コプロセッサ２ａは、処理プロセスをＥＰ＃３へ送信する。そして、ＰＣＩｅブリッジコントローラ３０は、ＥＰ＃３からＥＰ＃２へ処理プロセスをトンネリングし、ＥＰ＃２からメインプロセッサ１１へ処理プロセスを送信する。
【００８３】
図１１は分散処理の一例を示す図である。
〔ステップＳ５１ａ〕メインプロセッサ１１は、データＤ１をコプロセッサ２ａ、２ｂ、２ｃに送信する。
〔ステップＳ５２ａ〕コプロセッサ２ａは、データＤ１を受信すると所定の分散処理を行い、処理結果Ｄｒ１１をメインプロセッサ１１へ送信する。
【００８４】
〔ステップＳ５３ａ〕コプロセッサ２ｂは、データＤ１を受信すると所定の分散処理を行い、処理結果Ｄｒ１２をメインプロセッサ１１へ送信する。
〔ステップＳ５４ａ〕コプロセッサ２ｃは、データＤ１を受信すると所定の分散処理を行い、処理結果Ｄｒ１３をメインプロセッサ１１へ送信する。
〔ステップＳ５５ａ〕メインプロセッサ１１は、受信した処理結果を集約して保存管理する。
【００８５】
〔ステップＳ５１ｂ〕メインプロセッサ１１は、データＤ２をコプロセッサ２ｄ、２ｅ、２ｆに送信する。
【００８６】
〔ステップＳ５２ｂ〕コプロセッサ２ｄは、データＤ２を受信すると所定の分散処理を行い、処理結果Ｄｒ２１をメインプロセッサ１１へ送信する。
〔ステップＳ５３ｂ〕コプロセッサ２ｅは、データＤ２を受信すると所定の分散処理を行い、処理結果Ｄｒ２２をメインプロセッサ１１へ送信する。
【００８７】
〔ステップＳ５４ｂ〕コプロセッサ２ｆは、データＤ２を受信すると所定の分散処理を行い、処理結果Ｄｒ２３をメインプロセッサ１１へ送信する。
〔ステップＳ５５ｂ〕メインプロセッサ１１は、受信した処理結果を集約して保存管理する。
【００８８】
図１２は分散処理の一例を示す図である。ＰＣＩｅインタフェースを介しての同一データの並列分散処理の構成を示している（図１１の一部構成の具体例に相当）。
ＰＣＩｅブリッジコントローラ３０はＥＰ＃１、・・・、ＥＰ＃４を有している。メインプロセッサ１１はＥＰ＃１、ＥＰ＃２に接続され、コプロセッサ２ａはＥＰ＃３に接続され、コプロセッサ２ｂはＥＰ＃４に接続されている。
【００８９】
〔ステップＳ６１〕メインプロセッサ１１は、データをＥＰ＃１に送信する。
〔ステップＳ６２〕ＰＣＩｅブリッジコントローラ３０は、ＥＰ＃１からＥＰ＃３およびＥＰ＃４へデータをトンネリングし、ＥＰ＃３からコプロセッサ２ａへデータを送信し、ＥＰ＃４からコプロセッサ２ｂへデータを送信する。
【００９０】
〔ステップＳ６３〕コプロセッサ２ａは、データの分散処理を実行して第１の結果データを生成し、第１の結果データをＥＰ＃３に送信する。
〔ステップＳ６４〕コプロセッサ２ｂは、データの分散処理を実行して第２の結果データを生成し、第２の結果データをＥＰ＃４に送信する。
【００９１】
〔ステップＳ６５〕ＰＣＩｅブリッジコントローラ３０は、ＥＰ＃３からの第１の結果データをＥＰ＃２へトンネリングし、ＥＰ＃４からの第２の結果データをＥＰ＃２へトンネリングする。
そして、ＥＰ＃２からメインプロセッサ１１へ第１の結果データおよび第２の結果データを送信する。ステップＳ６１からステップＳ６５の処理フローによって同一データの並列分散処理が実行される。
【００９２】
上述したように、情報処理システム１−２の構成によれば、デバイスの独立駆動を可能にし、デバイス毎のドライバ開発が不要となる。また、情報処理システム１−２では、メインプロセッサ１１を介さずに、ＰＣＩｅブリッジコントローラ３０を経由してコプロセッサ間でデータ転送を行って分散処理を実行し、実行結果がメインプロセッサ１１に送信される。これにより、メインプロセッサ１１の処理負荷を低減でき、また処理負荷の低減に伴ってメインプロセッサ１１の処理遅延を抑制することができる。
【００９３】
＜定義ファイル＞
図１３は定義ファイルの一例を示す図である。ホスト１０は、メモリ１５に定義ファイルＦ１を記憶している。定義ファイルＦ１は、プロセッサ名、処理名、ＭＡＣ（Media Access Control）アドレス、出力先および処理プロセッサ送信の項目を有する。
【００９４】
プロセッサ名はコプロセッサの識別子、処理名はコプロセッサが担当する分散処理の内容、ＭＡＣアドレスはコプロセッサのアドレスを示す。また、出力先はコプロセッサの分散処理結果の出力先アドレスを示し、処理プロセス送信は分散処理途中の処理プロセスをメインプロセッサ１１に送信するか否かを示している。“ＹＥＳ”の場合は該当コプロセッサの途中の処理プロセスをメインプロセッサ１１へ送信し、“ＮＯ”の場合は該当コプロセッサの途中の処理プロセスをメインプロセッサ１１へ送信しないことを示している。
【００９５】
例えば、欄Ｌ１では、コプロセッサ２ａのＭＡＣアドレスはAA:BB:CC:00:00:02であり、分散処理として処理Ｊ（人物検出）を行うことが示されている。さらに、その分散処理の結果をＭＡＣアドレスがAA:BB:CC:00:00:05のコプロセッサ２ｄへ送信し、また途中の処理プロセスをメインプロセッサ１１に送信することが示されている。
【００９６】
また、欄Ｌ２では、コプロセッサ２ｄのＭＡＣアドレスはAA:BB:CC:00:00:05であり、分散処理として処理Ｔ（トラッキング処理）を行うことが示されている。さらに、その分散処理の結果をＭＡＣアドレスがAA:BB:CC:00:00:07のコプロセッサ２ｆへ送信し、また途中の処理プロセスはメインプロセッサ１１に送信しないことが示されている。
【００９７】
さらに、欄Ｌ３では、コプロセッサ２ｆのＭＡＣアドレスはAA:BB:CC:00:00:07であり、分散処理として処理Ｌ（分類）を行うことが示されている。さらに、その分散処理の結果をＭＡＣアドレスがAA:BB:CC:00:00:00のメインプロセッサ１１へ送信し、また途中の処理プロセスはメインプロセッサ１１に送信しないことが示されている。
【００９８】
＜フローチャート＞
図１４はメインプロセッサによる設定動作の一例を示すフローチャートである。
〔ステップＳ７１〕メインプロセッサ１１は、コプロセッサ２ａ、・・・、２ｆの処理フローを決定する。
【００９９】
〔ステップＳ７２〕メインプロセッサ１１は、決定した処理フローにもとづいて、定義ファイルＦ１を作成する。
〔ステップＳ７３〕メインプロセッサ１１は、定義ファイルＦ１と、実施すべき分散処理の内容とをコプロセッサ２ａ、・・・、２ｆにそれぞれ送信する。
【０１００】
図１５はコプロセッサ間の分散処理の動作の一例を示すフローチャートである。図１３に示した定義ファイルＦ１にもとづき、分散処理として画像処理を行う場合の例を示している。
【０１０１】
〔ステップＳ８１〕メインプロセッサ１１は、コプロセッサ２ａにデータを送信する。
〔ステップＳ８２〕コプロセッサ２ａは、人物検出処理を実行する。
〔ステップＳ８３〕コプロセッサ２ａは、出力先のＭＡＣアドレスを取得する。
〔ステップＳ８４〕コプロセッサ２ａは、人物検出処理の実行結果として画像情報および検出情報を、ＰＣＩｅブリッジコントローラ３０を経由してコプロセッサ２ｄに送信する。
【０１０２】
〔ステップＳ８５〕コプロセッサ２ｄは、トラッキング処理を実行する。
〔ステップＳ８６〕コプロセッサ２ｄは、出力先のＭＡＣアドレスを取得する。
〔ステップＳ８７〕コプロセッサ２ｄは、トラッキング処理の実行結果として画像情報および検出情報を、ＰＣＩｅブリッジコントローラ３０を経由してコプロセッサ２ｆに送信する。
【０１０３】
〔ステップＳ８８〕コプロセッサ２ｆは、分類処理を実行する。
〔ステップＳ８９〕コプロセッサ２ｆは、出力先のＭＡＣアドレスを取得する。
〔ステップＳ９０〕コプロセッサ２ｆは、分類処理の結果情報を、ＰＣＩｅブリッジコントローラ３０を経由してメインプロセッサ１１に送信する。
【０１０４】
〔ステップＳ９１〕メインプロセッサ１１は、分類処理の結果情報を保存する。
〔ステップＳ９２〕メインプロセッサ１１は、分類処理の結果情報からアラート通知を行うか否かを判定する。アラート通知を要と判定した場合はステップＳ９３へ処理が進み、アラート通知を不要と判定した場合は終了する。
〔ステップＳ９３〕メインプロセッサ１１は、アラート通知を実施する。
【０１０５】
上記で説明した本発明の情報処理システム１−１、１−２の処理機能は、コンピュータによって実現することができる。この場合、情報処理装置１、演算処理装置群２および中継装置３、またはホスト１０、デバイス２０−１、・・・、２０−６およびＰＣＩｅブリッジコントローラ３０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１０６】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１０７】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１０９】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１１０】
上述の実施形態では、各部のバス（例えば、拡張バス）またはＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、バスまたはＩ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のバスまたはＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースのいずれであってもよい。
【０１１１】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１または複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【０１１２】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１１３】
１−１  情報処理システム
１  情報処理装置
２  演算処理装置群
２−１、・・・、２−ｎ  演算処理装置
３  中継装置
【図１】
2020198009.tif 000003
【図２】
2020198009.tif 000004
【図３】
2020198009.tif 000005
【図４】
2020198009.tif 000006
【図５】
2020198009.tif 000007
【図６】
2020198009.tif 000008
【図７】
2020198009.tif 000009
【図８】
2020198009.tif 000010
【図９】
2020198009.tif 000011
【図１０】
2020198009.tif 000012
【図１１】
2020198009.tif 000013
【図１２】
2020198009.tif 000014
【図１３】
2020198009.tif 000015
【図１４】
2020198009.tif 000016
【図１５】
2020198009.tif 000017
【手続補正書】
【提出日】令和1年10月21日(2019.10.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記課題を解決するために、情報処理システムが提供される。情報処理システムは、拡張バスを有し、拡張バスを介した通信を中継する中継装置と、それぞれが拡張バスに接続された複数の演算処理装置を含み、複数の演算処理装置間で中継装置を介した通信を行うことで、複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、拡張バスに接続されており、分散処理の実行結果を、中継装置を介して演算処理装置群から取得する情報処理装置と、を備え、中継装置は、接続された機器に対して、中継装置を拡張バスの末端機器と認識させる複数の末端部を有し、複数の演算処理装置および情報処理装置のそれぞれは、複数の末端部の１つに接続されて中継装置を拡張バスの末端機器と認識して拡張バスを介した通信を制御するプロセッサを有する。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
拡張バスを有し、前記拡張バスを介した通信を中継する中継装置と、
それぞれが前記拡張バスに接続された複数の演算処理装置を含み、前記複数の演算処理装置間で前記中継装置を介した通信を行うことで、前記複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行う演算処理装置群と、
前記拡張バスに接続されており、前記分散処理の実行結果を、前記中継装置を介して前記演算処理装置群から取得する情報処理装置と、
を備え、
前記中継装置は、接続された機器に対して、前記中継装置を前記拡張バスの末端機器と認識させる複数の末端部を有し、
前記複数の演算処理装置および前記情報処理装置のそれぞれは、前記複数の末端部の１つに接続されて前記中継装置を前記拡張バスの末端機器と認識して前記拡張バスを介した通信を制御するプロセッサを有する、
情報処理システム。
【請求項２】
前記中継装置が前記複数の末端部のうち第１、第２、第３、第４の末端部を有し、前記情報処理装置が前記第１、第２の末端部に接続され、前記演算処理装置群のうちの第１の演算処理装置が前記第３の末端部に接続され、前記演算処理装置群のうちの第２の演算処理装置が前記第４の末端部に接続される場合、
前記情報処理装置は、前記データを前記第１の末端部へ送信し、
前記中継装置は、前記第１の末端部から前記第３の末端部へ前記データをトンネリングし、前記第３の末端部から前記第１の演算処理装置へ前記データを送信し、
前記第１の演算処理装置は、前記データの分散処理を実行して第１の結果データを生成し、前記第１の結果データを前記第３の末端部へ送信し、
前記中継装置は、前記第３の末端部から前記第４の末端部へ前記第１の結果データをトンネリングし、前記第４の末端部から前記第２の演算処理装置へ前記第１の結果データを送信し、
前記第２の演算処理装置は、前記第１の結果データの分散処理を実行して第２の結果データを生成し、前記第２の結果データを前記第４の末端部へ送信し、
前記中継装置は、前記第４の末端部から前記第２の末端部へ前記第２の結果データをトンネリングし、前記第２の末端部から前記情報処理装置へ前記第２の結果データを送信して、シーケンシャルな分散処理を実行する、
請求項１記載の情報処理システム。
【請求項３】
前記第１の演算処理装置は、分散処理の処理結果を前記第３の末端部へ送信し、前記中継装置は、前記第３の末端部から前記第２の末端部へ前記処理結果をトンネリングして、前記第２の末端部から前記情報処理装置へ前記処理結果を送信する請求項２記載の情報処理システム。
【請求項４】
前記中継装置が前記複数の末端部のうち第１、第２、第３、第４の末端部を有し、前記情報処理装置が前記第１、第２の末端部に接続され、前記演算処理装置群のうちの第１の演算処理装置が前記第３の末端部に接続され、前記演算処理装置群のうちの第２の演算処理装置が前記第４の末端部に接続される場合、
前記情報処理装置は、前記データを前記第１の末端部へ送信し、
前記中継装置は、前記第１の末端部から前記第３の末端部および前記第４の末端部へ前記データをトンネリングし、前記第３の末端部から前記第１の演算処理装置へ前記データを送信し、前記第４の末端部から前記第２の演算処理装置へ前記データを送信し、
前記第１の演算処理装置は、前記データの分散処理を実行して第１の結果データを生成し、前記第１の結果データを前記第３の末端部へ送信し
前記第２の演算処理装置は、前記データの分散処理を実行して第２の結果データを生成し、前記第２の結果データを前記第４の末端部へ送信し、
前記中継装置は、前記第３の末端部から前記第２の末端部へ前記第１の結果データをトンネリングし、前記第４の末端部から前記第２の末端部へ前記第２の結果データをトンネリングし、前記第２の末端部から前記情報処理装置へ前記第１の結果データおよび前記第２の結果データを送信して、同一データの並列分散処理を実行する、
請求項１記載の情報処理システム。
【請求項５】
前記情報処理装置は、前記複数の演算処理装置の識別子、前記複数の演算処理装置が実行する分散処理の内容、前記複数の演算処理装置のアドレス、分散処理の結果の出力先アドレスおよび分散処理の処理結果の前記情報処理装置への送信有無を少なくとも定義したファイル情報を管理して、前記ファイル情報にもとづいて、前記演算処理装置群に対して分散処理を実行させる請求項１記載の情報処理システム。
【請求項６】
前記中継装置は、エンドポイントとしての機能を有し、前記複数の演算処理装置の通信を中継する、
請求項１から請求項５のいずれかに記載の情報処理システム。
【請求項７】
コンピュータに、
接続された機器に対して中継装置を拡張バスの末端機器と認識させる複数の末端部を有する前記中継装置として機能させる場合、前記中継装置は、前記拡張バスを介した通信の中継を行い、
前記拡張バスに接続される演算処理装置群に含まれる複数の演算処理装置として機能させる場合、前記複数の演算処理装置は、前記複数の末端部の１つに接続されて前記中継装置を前記拡張バスの末端機器と認識して前記拡張バスを介した通信を行って、前記複数の演算処理装置のいずれかに入力されたデータに対する演算の分散処理を行い、
前記拡張バスに接続される情報処理装置として機能させる場合、前記情報処理装置は、前記複数の末端部の１つに接続されて前記中継装置を前記拡張バスの末端機器と認識して前記拡張バスを介した通信を行って、前記分散処理の実行結果を、前記中継装置を介して前記演算処理装置群から取得する、
処理を実行させるプログラム。