(57)【要約】【課題】複数の処理装置へ効率的にデータを転送する。【解決手段】情報処理装置は、複数の処理装置とバスを介して接続された情報処理装置であって、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する。【選択図】図４
2020154608.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理装置とバスを介して接続された情報処理装置であって、
前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
前記処理装置が前記データに基づいて実行した処理の処理結果を取得する取得部と、
前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する調整部と、
を備える情報処理装置。
【請求項２】
前記調整部は、前記処理結果と、前記処理結果の目標値との差に基づいて、前記処理装置ごとに前記転送パラメータを調整する、
請求項１に記載の情報処理装置。
【請求項３】
前記調整部は、前記転送パラメータに含まれる１以上のパラメータを前記処理装置ごとに調整する、
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、前記転送パラメータが変更されたことにより処理を実行できなかったことを示す前記処理結果を取得し、
前記調整部は、前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する、
請求項１から請求項３の何れか一項に記載の情報処理装置。
【請求項５】
バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムであって、
前記情報処理装置は、
前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
前記処理装置が前記データに基づいて実行した処理の処理結果を取得する取得部と、
前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する調整部と、を備え、
前記処理装置は、
前記バスを介して前記情報処理装置から前記データを受信する受信部と、
前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する実行部と、を備える、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理システムに関する。
【背景技術】
【０００２】
従来、複数のプラットフォームを有する分散型コンピュータが知られている。分散型コンピュータは、プラットフォーム等の処理装置に処理を分散させることで処理の高速化を図っている。
【０００３】
このような、分散型コンピュータで処理装置に処理を実行させる場合、処理装置へのデータ転送の効率化が、分散型コンピュータ全体としての処理時間に大きな影響を及ぼす。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１８３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、分散型コンピュータは様々な処理を実行するため、テータ転送の効率化を図ることは困難であった。
【０００６】
本発明は、上記に鑑みてなされたものであって、複数の処理装置へ効率的にデータを転送することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る情報処理装置は、複数の処理装置とバスを介して接続された情報処理装置であって、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する。
【０００８】
本発明の第２態様に係る情報処理システムは、バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムである。前記情報処理装置は、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する。前記処理装置は、受信部と、実行部と、を備える。前記受信部は、前記バスを介して前記情報処理装置から前記データを受信する前記実行部は、前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する。
【発明の効果】
【０００９】
本発明にかかる情報処理装置及び情報処理システムは、複数の処理装置へ効率的にデータを転送することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例にかかる分散型コンピュータの実施例の構成の一例を示すブロック図である。
【図２】図２は、実施例にかかる分散型コンピュータの全体構成の一例を示す図である。
【図３】図３は、実施例にかかるプラットフォームのハードウェア構成の一例を示すブロック図である。
【図４】図４は、実施例にかかる分散型コンピュータの機能構成の一例を示すブロック図である。
【図５】図５は、人物検出処理における転送パラメータの調整手順の一例を説明する説明図である。
【図６】図６は、実施例にかかるプラットフォーム（ホスト）が実行する調整処理の一例を示すフローチャートである。
【図７】図７は、実施例にかかるプラットフォーム（ゲスト）が実行する実行処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる情報処理装置及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、実施例にかかる分散型コンピュータ１の実施例の構成の一例を示すブロック図である。分散型コンピュータ１は、バス３を介してプラットフォーム（ホスト）２−１と、複数のプラットフォーム（ゲスト）２−２〜２−９とが接続された情報処理システムである。プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９に対して、各種処理の実行を要求する情報処理装置である。プラットフォーム（ゲスト）２−２〜２−９は、プラットフォーム（ホスト）２−１の要求に応じて、各種処理の実行する処理装置である。
【００１３】
バス３は、例えばＰＣＩｅ（Peripheral  Component  Interconnect  Express；登録商標）等を用いた仮想ＬＡＮ（Local  Area  Network）により形成されている。そして、バス３は、プラットフォーム（ホスト）２−１と、複数のプラットフォーム（ゲスト）２−２〜２−９とを通信可能に接続している。なお、バス３は、ＰＣＩｅを用いた仮想ＬＡＮに限らず、ＵＳＢ（Universal  Serial  Bus）等の他の通信インタフェースにより形成されていてもよい。
【００１４】
このような分散型コンピュータ１において、プラットフォーム（ホスト）２−１は、転送パラメータに基づいて、各種処理の実行を要求するデータを転送する。プラットフォーム（ゲスト）２−２〜２−９は、データを受信した場合に、要求された処理を実行する。また、プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９が処理を実行した場合に、処理時間を含む処理結果をプラットフォーム（ゲスト）２−２〜２−９から取得する。また、プラットフォーム（ホスト）２−１は、処理結果に基づいて、転送パラメータを調整する。そして、プラットフォーム（ホスト）２−１は、各種処理の実行を要求するデータを転送する場合、調整後の転送パラメータに基づいてデータを転送する。
【００１５】
このように、プラットフォーム（ホスト）２−１は、転送パラメータに基づいたデータの転送と、処理結果に基づいた転送パラメータの調整とを繰り返し実行することで、分散型コンピュータ１全体としての処理を最適化する。すなわち、プラットフォーム（ホスト）２−１は、複数のプラットフォーム（ゲスト）２−２〜２−９へ効率的にデータを転送する。
【００１６】
図２は、実施例にかかる分散型コンピュータ１の全体構成の一例を示す図である。図２に示すように、実施例にかかる分散型コンピュータ１は、プラットフォーム（ホスト）２−１と、複数のプラットフォーム（ゲスト）２−２〜２−９と、ＰＣＩｅブリッジコントローラ３０と、を備えている。
【００１７】
プラットフォーム（ホスト）２−１と、複数のプラットフォーム（ゲスト）２−２〜２−９とは、ＰＣＩｅブリッジコントローラ３０を介して、通信可能に接続されている。また、プラットフォーム（ホスト）２−１及び複数のプラットフォーム（ゲスト）２−２〜２−９は、例えば、ＰＣＩｅブリッジコントローラ３０が設けられたボード上のスロットに挿入されていてよい。尚、複数のスロットのうち、いずれかのスロットは、ノードが挿入されていない空き状態であってもよい。以下の説明では、プラットフォーム（ホスト）２−１と、プラットフォーム（ゲスト）２−２〜２−９とを区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム２と記載する。
【００１８】
プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９に各種処理を実行させる。また、プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９が実行した処理の処理結果を取得する。処理結果とは、例えば処理にかかった処理時間等である。そして、プラットフォーム（ホスト）２−１は、処理結果に基づいて、データを転送するための転送パラメータを調整する。
【００１９】
プラットフォーム（ゲスト）２−２〜２−９は、プラットフォーム（ホスト）２−１から転送されたデータに基づいて、各種処理を実行する。また、プラットフォーム（ゲスト）２−２〜２−９は、処理にかかった処理時間を計測する。
【００２０】
また、プラットフォーム２は、プロセッサ２１−１〜２１−９を備える。また、プロセッサ２１−１〜２１−９は、それぞれ特化した機能を有している。なお、プロセッサ２１−１〜２１−９は、それぞれ異なるメーカから提供されていてもよいし、同一のメーカから提供されていてもよい。以下の説明では、プロセッサ２１−１〜２１−９を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ２１と記載する。
【００２１】
また、プロセッサ２１がホスト側として動作可能なＲＣ（Root  Complex）となり、ＰＣＩｅブリッジコントローラ３０に搭載されているデバイスがＥＰ（End  Point）となり、ホストとデバイスとの間でのデータ転送が行なわれる。
【００２２】
また、ＰＣＩｅブリッジコントローラ３０は、内部に設けられたバス３を制御して、ＥＰ間のデータ転送を実行する。すなわち、ＰＣＩｅブリッジコントローラ３０は、プラットフォーム２間の通信を実行する。
【００２３】
図３は、実施例にかかるプラットフォーム２のハードウェア構成の一例を示すブロック図である。
【００２４】
プラットフォーム２は、各種演算処理を実行するプロセッサ２１と、各種情報を一時記憶するメモリ２２と、各種情報を記憶するストレージ２３と、インタフェース２４とを備える。そして、各部は、内部バス２５に接続される。
【００２５】
プロセッサ２１は、プラットフォーム２全体を制御する。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、例えばＣＰＵ（Central  Processing  Unit），ＭＰＵ（Micro  Processing  Unit），ＧＰＵ（Graphics  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＡＳＩＣ（Application  Specific  Integrated  Circuit），ＰＬＤ（Programmable  Logic  Device），ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ２１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００２６】
メモリ２２はＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ２２のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２２上のソフトウェアプログラムは、プロセッサ２１に適宜読み込まれて実行される。また、メモリ２２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２７】
ストレージ２３は、ハードディスクドライブ（Hard  Disk  Drive：ＨＤＤ）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（Storage  Class  Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。ストレージ２３には各種ソフトウェアプログラムが記憶される。
【００２８】
プラットフォーム２においては、プロセッサ２１がメモリ２２やストレージ２３に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【００２９】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ２２やストレージ２３に記憶されている必要はない。例えば、プラットフォーム２が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム２が読み出して実行するようにしてもよい。プラットフォーム２が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム２がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【００３０】
インタフェース２４は、バス３と接続するインタフェースである。
【００３１】
なお、プラットフォーム２は、これらハードウェアに限らず、他のハードウェアを備えていてもよい。例えば、プラットフォーム（ホスト）２−１は、各種操作を受け付ける入力装置と接続するインタフェースや、各種画面を表示させる表示装置と接続するインタフェース等を備えていてもよい。
【００３２】
ここで、図４は、実施例にかかる分散型コンピュータ１の機能構成の一例を示すブロック図である。図４に示すプラットフォーム（ホスト）２−１の機能は、プロセッサ２１−１がメモリ２２等に記憶されたソフトウェアプログラムを読み出して実行した結果として実現される。また、図４に示すプラットフォーム（ゲスト）２−２〜２−９の機能は、プロセッサ２１−２〜２１−９が、メモリ２２等に記憶されたソフトウェアプログラムを読み出して実行した結果として実現される。
【００３３】
プラットフォーム（ホスト）２−１は、転送部２１１と、取得部２１２と、調整部２１３とを備える。
【００３４】
転送部２１１は、プラットフォーム（ゲスト）２−２〜２−９ごとに設定された転送のための転送パラメータに基づいて、バス３を介してプラットフォーム（ゲスト）２−２〜２−９にデータを転送する。ここで、転送パラメータには、例えば、処理精度パラメータと、処理速度パラメータと、圧縮レベルパラメータとが含まれる。
【００３５】
処理精度パラメータは、プラットフォーム（ゲスト）２−２〜２−９に実行させる処理の精度を指定するパラメータである。ここでは、プラットフォーム（ゲスト）２−２〜２−９が、画像から人物を検出させる処理を例に説明する。人物検出処理の場合、処理精度パラメータは、例えば解像度を指定するパラメータとなる。そして、転送部２１１は、処理対象の画像を、処理精度パラメータが示す解像度に変換して転送する。プラットフォーム（ゲスト）２−２〜２−９は、画像の解像度が下げられた場合、人物を検出する精度も低下する。しかし、処理する画素数も低下するため、人物検出処理の処理時間は短くなる。一部のプラットフォーム（ゲスト）２−２〜２−９で十分な処理精度は得られているが、処理時間が長いために他のプラットフォーム（ゲスト）２−２〜２−９を待たせている場合がある。このような場合に、転送部２１１は、十分な処理精度のプラットフォーム（ゲスト）２−２〜２−９に対して解像度を下げた画像を転送することで、分散型コンピュータ１全体としての処理を最適化する。
【００３６】
処理速度パラメータは、プラットフォーム（ゲスト）２−２〜２−９に対するデータの転送速度を指定するパラメータである。処理速度パラメータは、例えばデータを有するパケットを転送する割合や、バス３の占有率等である。例えば、転送部２１１は、処理時間が比較的に長いプラットフォーム（ゲスト）２−２〜２−９にパケットを転送する割合を上げて、処理時間が比較的に速いプラットフォーム（ゲスト）２−２〜２−９に対してパケットを転送する割合を下げる。これにより、転送部２１１は、分散型コンピュータ１全体としての処理を最適化する。
【００３７】
圧縮レベルパラメータは、プラットフォーム（ゲスト）２−２〜２−９に転送するデータの圧縮比を指定するパラメータである。例えば、転送部２１１は、圧縮されたデータの解凍に要する時間が比較的に長時間のプラットフォーム（ゲスト）２−２〜２−９に対しては、圧縮比を下げたデータを転送する。これにより、プラットフォーム（ゲスト）２−２〜２−９は、解凍時間を短縮することができる。
【００３８】
また、転送部２１１は、データの転送に比較的に長時間がかかっているプラットフォーム（ゲスト）２−２〜２−９に対しては、圧縮比を上げたデータを転送する。これにより、転送部２１１は、データ量が減るため、転送時間を短くすることができる。
【００３９】
取得部２１２は、プラットフォーム（ゲスト）２−２〜２−９がデータに基づいて実行した処理の処理結果を取得する。すなわち、取得部２１２は、各プラットフォーム（ゲスト）２−２〜２−９から処理にかかった処理時間を取得する。
【００４０】
調整部２１３は、取得部２１２が取得した処理結果に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。更に詳しくは、調整部２１３は、処理結果と、処理結果の目標値との差に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。ここで、目標値とは、対象の処理の目標となる処理時間である。そして、調整部２１３は、取得部２１２が取得した処理結果が示す処理時間と目標値との差が閾値以上である場合に、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。
【００４１】
例えば、調整部２１３は、処理時間と目標値との差が閾値以上のプラットフォーム（ゲスト）２−２〜２−９がある場合、該当するプラットフォーム（ゲスト）２−２〜２−９の目標値と処理時間との差が小さくなるように、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。すなわち、調整部２１３は、目標値と処理時間との差が小さいプラットフォーム（ゲスト）２−２〜２−９の処理負担を上げ、目標値と処理時間との差が大きいプラットフォーム（ゲスト）２−２〜２−９の処理負担を下げるように、転送パラメータを調整する。例えば、調整部２１３は、処理時間が短いプラットフォーム（ゲスト）２−２〜２−９の転送速度を下げ、処理時間の長いプラットフォーム（ゲスト）２−２〜２−９の転送速度を上げる。これにより、調整部２１３は、分散型コンピュータ１全体としての処理の最適化を図る。なお、調整部２１３は、閾値を設けずに、処理時間が目標値以上の場合に、転送パラメータを調整するようにしてもよい。また、目標値は、対象の処理ごとに定められた値であってもよいし、処理の種別に関わらず一律に定められていてもよい。
【００４２】
また、調整部２１３は、プラットフォーム（ゲスト）２−２〜２−９のそれぞれの処理結果の平均と、目標値との差に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整してもよい。この場合、調整部２１３は、各プラットフォーム（ゲスト）２−２〜２−９の処理時間の平均と、目標値との差が閾値以上である場合に、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。なお、調整部２１３は、この場合においても閾値を設けずに、処理時間が目標値以上の場合に、転送パラメータを調整するようにしてもよい。
【００４３】
また、調整部２１３は、目標値を設けずに、転送パラメータを調整するようにしてもよい。例えば、調整部２１３は、プラットフォーム（ゲスト）２−２〜２−９のそれぞれの処理時間を比較して、他のプラットフォーム（ゲスト）２−２〜２−９の処理時間との差が閾値以上のプラットフォーム（ゲスト）２−２〜２−９があるか否かを判定してもよい。
【００４４】
また、調整部２１３は、転送パラメータに含まれる１以上のパラメータをプラットフォーム（ゲスト）２−２〜２−９ごとに調整してもよい。すなわち、調整部２１３は、転送パラメータに含まれる処理精度パラメータと、処理速度パラメータと、圧縮レベルパラメータとをプラットフォーム（ゲスト）２−２〜２−９ごとに調整してもよい。これにより、調整部２１３は、プラットフォーム（ゲスト）２−２〜２−９の状況に応じて転送パラメータを調整することができる。
【００４５】
調整部２１３が転送パラメータを変更したことにより、プラットフォーム（ゲスト）２−２〜２−９が処理を実行できなくなってしまうことがある。ここでは、画像から人物を検出させる処理を例に説明する。例えば、あるプラットフォーム（ゲスト）２−２〜２−９において処理時間が長いために、調整部２１３が処理精度パラメータ、つまり解像度を下げたとする。この時、調整部２１３が解像度を下げ過ぎてしまうと、プラットフォーム（ゲスト）２−２〜２−９は、人物を検出することができなくなってしまう。このような場合、プラットフォーム（ゲスト）２−２〜２−９は、人物を検出する処理が実行不可であるとして、エラーを示す処理結果を出力する。よって、取得部２１２は、転送パラメータが変更されたことにより処理を実行できなかったことを示す処理結果を取得する。
【００４６】
そして、調整部２１３は、取得部２１２が取得した処理結果に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。例えば、調整部２１３は、転送パラメータが変更されたことにより処理を実行できなかったプラットフォーム（ゲスト）２−２〜２−９の転送パラメータを調整前に戻す。すなわち、画像から人物を検出させる処理の場合、調整部２１３は、例えば解像度を上げる。これにより、プラットフォーム（ゲスト）２−２〜２−９は、処理が実行可能となる。
【００４７】
プラットフォーム（ゲスト）２−２〜２−９は、受信部２１４と、実行部２１５とを備える。
【００４８】
受信部２１４は、バス３を介してプラットフォーム（ホスト）２−１からデータを受信する。すなわち、受信部２１４は、各種処理の実行を要求するデータを受信する。
【００４９】
実行部２１５は、受信部２１４が受信したデータに基づいて、データで要求された処理を実行する。また、実行部２１５は、データで要求された処理の処理結果を出力する。すなわち、実行部２１５は、データで要求された処理にかかった処理時間を出力する。なお、実行部２１５は、処理項目ごとの処理時間が示された処理結果を出力してもよい。例えば、実行部２１５は、データの転送が開始されてからデータの受信を終了するまでのデータ転送、受信したデータを解凍するデータ解凍、及びデータで要求された処理を実行する実行処理ごとの処理時間を示す処理結果を出力してもよい。これにより、プラットフォーム（ホスト）２−１は、各工程での処理時間を把握することができる。そのため、プラットフォーム（ホスト）２−１は、転送パラメータのうち、何れのパラメータを調整すればよいかを判断することができる。
【００５０】
また、実行部２１５は、転送パラメータが変更されたことにより処理を実行することができない場合がある。このような場合、実行部２１５は、エラーを示す処理結果を出力する。
【００５１】
次に、画像から人物を検出させる処理を例に転送パラメータを調整する処理を説明する。図５は、人物検出処理における転送パラメータの調整手順の一例を説明する説明図である。
【００５２】
図５において、プラットフォーム（ゲスト）２−２及びプラットフォーム（ゲスト）２−３は、全身を検出する全身検出処理を実行する。プラットフォーム（ゲスト）２−４及びプラットフォーム（ゲスト）２−５は、手を検出する手検出処理を実行する。プラットフォーム（ゲスト）２−６及びプラットフォーム（ゲスト）２−７は、足を検出する足検出処理を実行する。プラットフォーム（ゲスト）２−８及びプラットフォーム（ゲスト）２−９は、顔を検出する顔検出処理を実行する。また、全身検出処理、手検出処理、足検出処理、及び顔検出処理の目標値は、これら各処理の平均１秒と設定されているものとする。
【００５３】
このような条件で実行された１回目の各処理の処理時間は、全身検出処理が０．７秒、手検出処理が１．７秒、足検出処理が１．８秒、及び顔検出処理が１．９秒であったとする。さらに、閾値が０．２秒であったとする。この場合、調整部２１３は、処理時間の平均と、目標値との差が閾値以上であるため、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。
【００５４】
例えば、調整部２１３は、全身検出処理の処理時間は、０．７秒であり、目標値よりも低い。そこで、調整部２１３は、例えば、プラットフォーム（ゲスト）２−２及びプラットフォーム（ゲスト）２−３の処理速度パラメータを調整して、転送速度を下げる。一方、調整部２１３は、他のプラットフォーム（ゲスト）２−２〜２−９の処理速度パラメータを調整して、転送速度を上げる。
【００５５】
また、手検出処理及び足検出処理では、十分な処理精度が得られているものとする。しかし、処理時間は、手検出処理が１．７秒であり、足検出処理が１．８秒である。すなわち、手検出処理及び足検出処理の処理時間の平均と、目標値との差は閾値以上である。そこで、調整部２１３は、例えば、プラットフォーム（ゲスト）２−２、プラットフォーム（ゲスト）２−３、プラットフォーム（ゲスト）２−４、及びプラットフォーム（ゲスト）２−５の処理精度パラメータを調整して、処理精度を下げる。
【００５６】
また、顔検出処理では、データの解凍に時間がかかっているものとする。この場合、調整部２１３は、圧縮レベルパラメータを調整して、圧縮比を下げる。
【００５７】
分散型コンピュータ１は、２回目の処理を実行する。すなわち、転送部２１１は、調整部２１３が調整した後の転送パラメータで、プラットフォーム（ゲスト）２−２〜２−９にデータを転送する。また、取得部２１２は、プラットフォーム（ゲスト）２−２〜２−９から処理結果を取得する。その結果、２回目の処理において、図５に示すように処理時間が改善する。
【００５８】
このように、プラットフォーム（ホスト）２−１は、上述した処理を繰り替えし実行することで、処理時間と目標値との差を閾値未満にする。すなわち、プラットフォーム（ホスト）２−１は、分散型コンピュータ１全体としての処理を最適化する。なお、調整部２１３は、上述したように、取得部２１２が取得した処理結果に基づいて、調整対象の転送パラメータ、及び転送パラメータの調整量を決定してもよいし、ランダムに調整対象の転送パラメータ、及び転送パラメータの調整量を決定してもよい。
【００５９】
次に、プラットフォーム（ホスト）２−１による転送パラメータの調整処理についてフローチャートを用いて説明する。ここで、図６は、実施例にかかるプラットフォーム（ホスト）２−１が実行する調整処理の一例を示すフローチャートである。
【００６０】
調整部２１３は、転送パラメータ及び目標値の初期値を決定する（ステップＳ１１）。なお、調整部２１３は、初期値は事前に設定されていてもよいし、処理内容等に応じて算出してもよい。
【００６１】
転送部２１１は、プラットフォーム（ゲスト）２−２〜２−９ごとに設定された転送のための転送パラメータに基づいて、バス３を介してプラットフォーム（ゲスト）２−２〜２−９にデータを転送する（ステップＳ１２）。
【００６２】
取得部２１２は、処理結果を各プラットフォーム（ゲスト）２−２〜２−９から取得する（ステップＳ１３）。すなわち、取得部２１２は、処理時間を取得する。
【００６３】
調整部２１３は、処理結果が示す処理時間と、目標値との差を算出する（ステップＳ１４）。
【００６４】
調整部２１３は、処理結果が示す処理時間と、目標値との差が閾値未満であるか否かを判定する（ステップＳ１５）。
【００６５】
処理結果が示す処理時間と、目標値との差が閾値以上である場合に（ステップＳ１５；Ｎｏ）、調整部２１３は、転送パラメータを調整する（ステップＳ１６）。そして、転送部２１１は、ステップＳ１２にて調整後の転送パラメータでデータを転送する。
【００６６】
処理結果が示す処理時間と、目標値との差が閾値未満である場合に（ステップＳ１５；Ｙｅｓ）、プラットフォーム（ホスト）２−１は、調整処理を終了する。
【００６７】
次に、プラットフォーム（ゲスト）２−２〜２−９による転送されたデータに基づいた実行処理についてフローチャートを用いて説明する。ここで、図７は、実施例にかかるプラットフォーム（ゲスト）２−２〜２−９が実行する実行処理の一例を示すフローチャートである。
【００６８】
受信部２１４は、バス３を介してプラットフォーム（ホスト）２−１からデータを受信する（ステップＳ２１）。
【００６９】
実行部２１５は、受信部２１４が受信したデータに基づいて、データで要求された処理を実行する（ステップＳ２２）。
【００７０】
実行部２１５は、受信部２１４が受信したデータでの処理が実行不可であったか否かを判定する（ステップＳ２３）。
【００７１】
受信部２１４が受信したデータでの処理が実行不可であった場合に（ステップＳ２３；Ｙｅｓ）、実行部２１５は、実行不可を示すエラーを含む処理結果を出力する（ステップＳ２４）。
【００７２】
受信部２１４が受信したデータでの処理が実行可能であった場合に（ステップＳ２３；Ｎｏ）、実行部２１５は、実行した処理の処理時間を含む処理結果を出力する（ステップＳ２５）。
【００７３】
以上により、プラットフォーム（ホスト）２−１は、実行処理を終了する。
【００７４】
以上の説明のように、本実施例によれば、プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９ごとに設定された転送パラメータに基づいて、バス３を介して、各プラットフォーム（ゲスト）２−２〜２−９にデータを転送する。また、プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９がデータに基づいて処理を実行した場合に、処理時間が示された処理結果を取得する。そして、プラットフォーム（ホスト）２−１は、処理結果に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。これにより、プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９間での処理時間が均一になるまで上述した処理を繰り返し実行することができる。すなわち、プラットフォーム（ホスト）２−１は、データ転送における無駄が無くなるまで上述した処理を繰り返し実行する。よって、プラットフォーム（ホスト）２−１は、複数のプラットフォーム（ゲスト）２−２〜２−９へ効率的にデータを転送することができる。
【００７５】
また、本実施例にかかるプラットフォーム（ホスト）２−１の調整部２１３は、処理結果と、処理結果の目標値との差に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。そして、目標値はユーザ等により設定される。これにより、プラットフォーム（ホスト）２−１は、ユーザが意図した目標値にまで処理時間になるまで転送パラメータが調整することができる。
【００７６】
また、プラットフォーム（ホスト）２−１の調整部２１３は、転送パラメータに含まれる１以上のパラメータをプラットフォーム（ゲスト）２−２〜２−９ごとに調整する。これにより、調整部２１３は、各プラットフォーム（ゲスト）２−２〜２−９の状況に応じて転送パラメータを調整することができる。
【００７７】
また、プラットフォーム（ゲスト）２−２〜２−９が処理を実行できなかった場合に、プラットフォーム（ホスト）２−１の取得部２１２は、エラーを示す処理結果を取得する。そして、調整部２１３は、取得部２１２が取得した処理結果に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。これにより、調整部２１３は、転送パラメータの調整に失敗し、処理ができなかった場合においても、転送パラメータの調整を継続することができる。
【００７８】
また、本実施例にかかる分散型コンピュータ１は、バス３を介してプラットフォーム（ホスト）２−１と、複数のプラットフォーム（ゲスト）２−２〜２−９とが接続された情報処理システムである。プラットフォーム（ホスト）２−１は、転送部２１１と、取得部２１２と、調整部２１３とを備える。転送部２１１は、プラットフォーム（ゲスト）２−２〜２−９ごとに設定された転送のための転送パラメータに基づいて、バス３を介してプラットフォーム（ゲスト）２−２〜２−９を転送する。取得部２１２は、プラットフォーム（ゲスト）２−２〜２−９がデータに基づいて実行した処理の処理結果を取得する。調整部２１３は、取得部２１２が取得した処理結果に基づいて、プラットフォーム（ゲスト）２−２〜２−９ごとに転送パラメータを調整する。プラットフォーム（ゲスト）２−２〜２−９は、受信部２１４と、実行部２１５とを備える。受信部２１４は、バス３を介してプラットフォーム（ホスト）２−１からデータを受信する。実行部２１５は、受信部２１４が受信したデータに基づいて、データで要求された処理を実行する。これにより、プラットフォーム（ホスト）２−１は、プラットフォーム（ゲスト）２−２〜２−９間での処理時間が均一になるまで上述した処理を繰り返し実行することができる。すなわち、プラットフォーム（ホスト）２−１は、データ転送における無駄が無くなるまで上述した処理を繰り返し実行する。よって、プラットフォーム（ホスト）２−１は、複数のプラットフォーム（ゲスト）２−２〜２−９へ効率的にデータを転送することができる。
【００７９】
上述の実施形態では、各部のバス（例えば、拡張バス）又はＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、バスまたはＩ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のバスまたはＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステム又は１つの装置）で高速にデータを転送できる汎用のバスであってもよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【００８０】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１又は複数のポートを有するルート・コンプレックス、Ｉ／Ｏデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【００８１】
１  分散型コンピュータ
２−１  プラットフォーム（ホスト）
２−２〜２−９  プラットフォーム（ゲスト）
３  バス
３０  ＰＣＩｅブリッジコントローラ
２１１  転送部
２１２  取得部
２１３  調整部
２１４  受信部
２１５  実行部
【図１】
2020154608.tif 000003
【図２】
2020154608.tif 000004
【図３】
2020154608.tif 000005
【図４】
2020154608.tif 000006
【図５】
2020154608.tif 000007
【図６】
2020154608.tif 000008
【図７】
2020154608.tif 000009
【手続補正書】
【提出日】令和2年5月29日(2020.5.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の処理装置とバスを介して接続された情報処理装置であって、
前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する取得部と、
前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する調整部と、
を備える情報処理装置。
【請求項２】
前記調整部は、前記処理結果と、前記処理結果の目標値との差に基づいて、前記処理装置ごとに前記転送パラメータを調整する、
請求項１に記載の情報処理装置。
【請求項３】
前記調整部は、前記転送パラメータに含まれる１以上のパラメータを前記処理装置ごとに調整する、
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、前記転送パラメータが変更されたことにより処理を実行できなかったことを示す前記処理結果を取得し、
前記調整部は、前記取得部が取得した前記処理結果に基づいて、前記処理装置ごとに前記転送パラメータを調整する、
請求項１から請求項３の何れか一項に記載の情報処理装置。
【請求項５】
バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムであって、
前記情報処理装置は、
前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する取得部と、
前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する調整部と、を備え、
前記処理装置は、
前記バスを介して前記情報処理装置から前記データを受信する受信部と、
前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する実行部と、を備える、
情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の第１態様に係る情報処理装置は、複数の処理装置とバスを介して接続された情報処理装置であって、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の第２態様に係る情報処理システムは、バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムである。前記情報処理装置は、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する。前記処理装置は、受信部と、実行部と、を備える。前記受信部は、前記バスを介して前記情報処理装置から前記データを受信する前記実行部は、前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する。