特許第6856876号(P6856876)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通クライアントコンピューティング株式会社の特許一覧

<>
  • 特許6856876-情報処理装置及び情報処理システム 図000002
  • 特許6856876-情報処理装置及び情報処理システム 図000003
  • 特許6856876-情報処理装置及び情報処理システム 図000004
  • 特許6856876-情報処理装置及び情報処理システム 図000005
  • 特許6856876-情報処理装置及び情報処理システム 図000006
  • 特許6856876-情報処理装置及び情報処理システム 図000007
  • 特許6856876-情報処理装置及び情報処理システム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6856876
(24)【登録日】2021年3月23日
(45)【発行日】2021年4月14日
(54)【発明の名称】情報処理装置及び情報処理システム
(51)【国際特許分類】
   G06F 13/42 20060101AFI20210405BHJP
   G06F 13/38 20060101ALI20210405BHJP
【FI】
   G06F13/42 350C
   G06F13/38 340A
【請求項の数】4
【全頁数】14
(21)【出願番号】特願2019-51572(P2019-51572)
(22)【出願日】2019年3月19日
(65)【公開番号】特開2020-154608(P2020-154608A)
(43)【公開日】2020年9月24日
【審査請求日】2019年4月4日
(73)【特許権者】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】金阿彌 惇也
【審査官】 吉田 歩
(56)【参考文献】
【文献】 特開2012−003447(JP,A)
【文献】 特表2004−537097(JP,A)
【文献】 特開平10−198642(JP,A)
【文献】 特開2015−088112(JP,A)
【文献】 特開平11−143838(JP,A)
【文献】 特開平11−259431(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/42
G06F 13/38
(57)【特許請求の範囲】
【請求項1】
複数の処理装置とバスを介して接続された情報処理装置であって、
前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する取得部と、
前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する調整部と、
を備える情報処理装置。
【請求項2】
前記調整部は、前記処理結果と、前記処理結果の目標値との差に基づいて、前記処理装置ごとに前記転送パラメータを調整する、
請求項1に記載の情報処理装置。
【請求項3】
前記調整部は、前記転送パラメータに含まれる1以上のパラメータを前記処理装置ごとに調整する、
請求項1又は請求項2に記載の情報処理装置。
【請求項4】
バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムであって、
前記情報処理装置は、
前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する取得部と、
前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する調整部と、を備え、
前記処理装置は、
前記バスを介して前記情報処理装置から前記データを受信する受信部と、
前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する実行部と、を備える、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理システムに関する。
【背景技術】
【0002】
従来、複数のプラットフォームを有する分散型コンピュータが知られている。分散型コンピュータは、プラットフォーム等の処理装置に処理を分散させることで処理の高速化を図っている。
【0003】
このような、分散型コンピュータで処理装置に処理を実行させる場合、処理装置へのデータ転送の効率化が、分散型コンピュータ全体としての処理時間に大きな影響を及ぼす。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018−18323号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、分散型コンピュータは様々な処理を実行するため、テータ転送の効率化を図ることは困難であった。
【0006】
本発明は、上記に鑑みてなされたものであって、複数の処理装置へ効率的にデータを転送することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1態様に係る情報処理装置は、複数の処理装置とバスを介して接続された情報処理装置であって、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する。
【0008】
本発明の第2態様に係る情報処理システムは、バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムである。前記情報処理装置は、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する。前記処理装置は、受信部と、実行部と、を備える。前記受信部は、前記バスを介して前記情報処理装置から前記データを受信する前記実行部は、前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する。
【発明の効果】
【0009】
本発明にかかる情報処理装置及び情報処理システムは、複数の処理装置へ効率的にデータを転送することができるという効果を奏する。
【図面の簡単な説明】
【0010】
図1図1は、実施例にかかる分散型コンピュータの実施例の構成の一例を示すブロック図である。
図2図2は、実施例にかかる分散型コンピュータの全体構成の一例を示す図である。
図3図3は、実施例にかかるプラットフォームのハードウェア構成の一例を示すブロック図である。
図4図4は、実施例にかかる分散型コンピュータの機能構成の一例を示すブロック図である。
図5図5は、人物検出処理における転送パラメータの調整手順の一例を説明する説明図である。
図6図6は、実施例にかかるプラットフォーム(ホスト)が実行する調整処理の一例を示すフローチャートである。
図7図7は、実施例にかかるプラットフォーム(ゲスト)が実行する実行処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下に、本発明にかかる情報処理装置及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0012】
図1は、実施例にかかる分散型コンピュータ1の実施例の構成の一例を示すブロック図である。分散型コンピュータ1は、バス3を介してプラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とが接続された情報処理システムである。プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9に対して、各種処理の実行を要求する情報処理装置である。プラットフォーム(ゲスト)2−2〜2−9は、プラットフォーム(ホスト)2−1の要求に応じて、各種処理の実行する処理装置である。
【0013】
バス3は、例えばPCIe(Peripheral Component Interconnect Express;登録商標)等を用いた仮想LAN(Local Area Network)により形成されている。そして、バス3は、プラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とを通信可能に接続している。なお、バス3は、PCIeを用いた仮想LANに限らず、USB(Universal Serial Bus)等の他の通信インタフェースにより形成されていてもよい。
【0014】
このような分散型コンピュータ1において、プラットフォーム(ホスト)2−1は、転送パラメータに基づいて、各種処理の実行を要求するデータを転送する。プラットフォーム(ゲスト)2−2〜2−9は、データを受信した場合に、要求された処理を実行する。また、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9が処理を実行した場合に、処理時間を含む処理結果をプラットフォーム(ゲスト)2−2〜2−9から取得する。また、プラットフォーム(ホスト)2−1は、処理結果に基づいて、転送パラメータを調整する。そして、プラットフォーム(ホスト)2−1は、各種処理の実行を要求するデータを転送する場合、調整後の転送パラメータに基づいてデータを転送する。
【0015】
このように、プラットフォーム(ホスト)2−1は、転送パラメータに基づいたデータの転送と、処理結果に基づいた転送パラメータの調整とを繰り返し実行することで、分散型コンピュータ1全体としての処理を最適化する。すなわち、プラットフォーム(ホスト)2−1は、複数のプラットフォーム(ゲスト)2−2〜2−9へ効率的にデータを転送する。
【0016】
図2は、実施例にかかる分散型コンピュータ1の全体構成の一例を示す図である。図2に示すように、実施例にかかる分散型コンピュータ1は、プラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9と、PCIeブリッジコントローラ30と、を備えている。
【0017】
プラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とは、PCIeブリッジコントローラ30を介して、通信可能に接続されている。また、プラットフォーム(ホスト)2−1及び複数のプラットフォーム(ゲスト)2−2〜2−9は、例えば、PCIeブリッジコントローラ30が設けられたボード上のスロットに挿入されていてよい。尚、複数のスロットのうち、いずれかのスロットは、ノードが挿入されていない空き状態であってもよい。以下の説明では、プラットフォーム(ホスト)2−1と、プラットフォーム(ゲスト)2−2〜2−9とを区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム2と記載する。
【0018】
プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9に各種処理を実行させる。また、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9が実行した処理の処理結果を取得する。処理結果とは、例えば処理にかかった処理時間等である。そして、プラットフォーム(ホスト)2−1は、処理結果に基づいて、データを転送するための転送パラメータを調整する。
【0019】
プラットフォーム(ゲスト)2−2〜2−9は、プラットフォーム(ホスト)2−1から転送されたデータに基づいて、各種処理を実行する。また、プラットフォーム(ゲスト)2−2〜2−9は、処理にかかった処理時間を計測する。
【0020】
また、プラットフォーム2は、プロセッサ21−1〜21−9を備える。また、プロセッサ21−1〜21−9は、それぞれ特化した機能を有している。なお、プロセッサ21−1〜21−9は、それぞれ異なるメーカから提供されていてもよいし、同一のメーカから提供されていてもよい。以下の説明では、プロセッサ21−1〜21−9を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ21と記載する。
【0021】
また、プロセッサ21がホスト側として動作可能なRC(Root Complex)となり、PCIeブリッジコントローラ30に搭載されているデバイスがEP(End Point)となり、ホストとデバイスとの間でのデータ転送が行なわれる。
【0022】
また、PCIeブリッジコントローラ30は、内部に設けられたバス3を制御して、EP間のデータ転送を実行する。すなわち、PCIeブリッジコントローラ30は、プラットフォーム2間の通信を実行する。
【0023】
図3は、実施例にかかるプラットフォーム2のハードウェア構成の一例を示すブロック図である。
【0024】
プラットフォーム2は、各種演算処理を実行するプロセッサ21と、各種情報を一時記憶するメモリ22と、各種情報を記憶するストレージ23と、インタフェース24とを備える。そして、各部は、内部バス25に接続される。
【0025】
プロセッサ21は、プラットフォーム2全体を制御する。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),GPU(Graphics Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ21は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0026】
メモリ22はROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
【0027】
ストレージ23は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。ストレージ23には各種ソフトウェアプログラムが記憶される。
【0028】
プラットフォーム2においては、プロセッサ21がメモリ22やストレージ23に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【0029】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ22やストレージ23に記憶されている必要はない。例えば、プラットフォーム2が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム2が読み出して実行するようにしてもよい。プラットフォーム2が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム2がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【0030】
インタフェース24は、バス3と接続するインタフェースである。
【0031】
なお、プラットフォーム2は、これらハードウェアに限らず、他のハードウェアを備えていてもよい。例えば、プラットフォーム(ホスト)2−1は、各種操作を受け付ける入力装置と接続するインタフェースや、各種画面を表示させる表示装置と接続するインタフェース等を備えていてもよい。
【0032】
ここで、図4は、実施例にかかる分散型コンピュータ1の機能構成の一例を示すブロック図である。図4に示すプラットフォーム(ホスト)2−1の機能は、プロセッサ21−1がメモリ22等に記憶されたソフトウェアプログラムを読み出して実行した結果として実現される。また、図4に示すプラットフォーム(ゲスト)2−2〜2−9の機能は、プロセッサ21−2〜21−9が、メモリ22等に記憶されたソフトウェアプログラムを読み出して実行した結果として実現される。
【0033】
プラットフォーム(ホスト)2−1は、転送部211と、取得部212と、調整部213とを備える。
【0034】
転送部211は、プラットフォーム(ゲスト)2−2〜2−9ごとに設定された転送のための転送パラメータに基づいて、バス3を介してプラットフォーム(ゲスト)2−2〜2−9にデータを転送する。ここで、転送パラメータには、例えば、処理精度パラメータと、処理速度パラメータと、圧縮レベルパラメータとが含まれる。
【0035】
処理精度パラメータは、プラットフォーム(ゲスト)2−2〜2−9に実行させる処理の精度を指定するパラメータである。ここでは、プラットフォーム(ゲスト)2−2〜2−9が、画像から人物を検出させる処理を例に説明する。人物検出処理の場合、処理精度パラメータは、例えば解像度を指定するパラメータとなる。そして、転送部211は、処理対象の画像を、処理精度パラメータが示す解像度に変換して転送する。プラットフォーム(ゲスト)2−2〜2−9は、画像の解像度が下げられた場合、人物を検出する精度も低下する。しかし、処理する画素数も低下するため、人物検出処理の処理時間は短くなる。一部のプラットフォーム(ゲスト)2−2〜2−9で十分な処理精度は得られているが、処理時間が長いために他のプラットフォーム(ゲスト)2−2〜2−9を待たせている場合がある。このような場合に、転送部211は、十分な処理精度のプラットフォーム(ゲスト)2−2〜2−9に対して解像度を下げた画像を転送することで、分散型コンピュータ1全体としての処理を最適化する。
【0036】
処理速度パラメータは、プラットフォーム(ゲスト)2−2〜2−9に対するデータの転送速度を指定するパラメータである。処理速度パラメータは、例えばデータを有するパケットを転送する割合や、バス3の占有率等である。例えば、転送部211は、処理時間が比較的に長いプラットフォーム(ゲスト)2−2〜2−9にパケットを転送する割合を上げて、処理時間が比較的に速いプラットフォーム(ゲスト)2−2〜2−9に対してパケットを転送する割合を下げる。これにより、転送部211は、分散型コンピュータ1全体としての処理を最適化する。
【0037】
圧縮レベルパラメータは、プラットフォーム(ゲスト)2−2〜2−9に転送するデータの圧縮比を指定するパラメータである。例えば、転送部211は、圧縮されたデータの解凍に要する時間が比較的に長時間のプラットフォーム(ゲスト)2−2〜2−9に対しては、圧縮比を下げたデータを転送する。これにより、プラットフォーム(ゲスト)2−2〜2−9は、解凍時間を短縮することができる。
【0038】
また、転送部211は、データの転送に比較的に長時間がかかっているプラットフォーム(ゲスト)2−2〜2−9に対しては、圧縮比を上げたデータを転送する。これにより、転送部211は、データ量が減るため、転送時間を短くすることができる。
【0039】
取得部212は、プラットフォーム(ゲスト)2−2〜2−9がデータに基づいて実行した処理の処理結果を取得する。すなわち、取得部212は、各プラットフォーム(ゲスト)2−2〜2−9から処理にかかった処理時間を取得する。
【0040】
調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。更に詳しくは、調整部213は、処理結果と、処理結果の目標値との差に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。ここで、目標値とは、対象の処理の目標となる処理時間である。そして、調整部213は、取得部212が取得した処理結果が示す処理時間と目標値との差が閾値以上である場合に、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。
【0041】
例えば、調整部213は、処理時間と目標値との差が閾値以上のプラットフォーム(ゲスト)2−2〜2−9がある場合、該当するプラットフォーム(ゲスト)2−2〜2−9の目標値と処理時間との差が小さくなるように、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。すなわち、調整部213は、目標値と処理時間との差が小さいプラットフォーム(ゲスト)2−2〜2−9の処理負担を上げ、目標値と処理時間との差が大きいプラットフォーム(ゲスト)2−2〜2−9の処理負担を下げるように、転送パラメータを調整する。例えば、調整部213は、処理時間が短いプラットフォーム(ゲスト)2−2〜2−9の転送速度を下げ、処理時間の長いプラットフォーム(ゲスト)2−2〜2−9の転送速度を上げる。これにより、調整部213は、分散型コンピュータ1全体としての処理の最適化を図る。なお、調整部213は、閾値を設けずに、処理時間が目標値以上の場合に、転送パラメータを調整するようにしてもよい。また、目標値は、対象の処理ごとに定められた値であってもよいし、処理の種別に関わらず一律に定められていてもよい。
【0042】
また、調整部213は、プラットフォーム(ゲスト)2−2〜2−9のそれぞれの処理結果の平均と、目標値との差に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整してもよい。この場合、調整部213は、各プラットフォーム(ゲスト)2−2〜2−9の処理時間の平均と、目標値との差が閾値以上である場合に、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。なお、調整部213は、この場合においても閾値を設けずに、処理時間が目標値以上の場合に、転送パラメータを調整するようにしてもよい。
【0043】
また、調整部213は、目標値を設けずに、転送パラメータを調整するようにしてもよい。例えば、調整部213は、プラットフォーム(ゲスト)2−2〜2−9のそれぞれの処理時間を比較して、他のプラットフォーム(ゲスト)2−2〜2−9の処理時間との差が閾値以上のプラットフォーム(ゲスト)2−2〜2−9があるか否かを判定してもよい。
【0044】
また、調整部213は、転送パラメータに含まれる1以上のパラメータをプラットフォーム(ゲスト)2−2〜2−9ごとに調整してもよい。すなわち、調整部213は、転送パラメータに含まれる処理精度パラメータと、処理速度パラメータと、圧縮レベルパラメータとをプラットフォーム(ゲスト)2−2〜2−9ごとに調整してもよい。これにより、調整部213は、プラットフォーム(ゲスト)2−2〜2−9の状況に応じて転送パラメータを調整することができる。
【0045】
調整部213が転送パラメータを変更したことにより、プラットフォーム(ゲスト)2−2〜2−9が処理を実行できなくなってしまうことがある。ここでは、画像から人物を検出させる処理を例に説明する。例えば、あるプラットフォーム(ゲスト)2−2〜2−9において処理時間が長いために、調整部213が処理精度パラメータ、つまり解像度を下げたとする。この時、調整部213が解像度を下げ過ぎてしまうと、プラットフォーム(ゲスト)2−2〜2−9は、人物を検出することができなくなってしまう。このような場合、プラットフォーム(ゲスト)2−2〜2−9は、人物を検出する処理が実行不可であるとして、エラーを示す処理結果を出力する。よって、取得部212は、転送パラメータが変更されたことにより処理を実行できなかったことを示す処理結果を取得する。
【0046】
そして、調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。例えば、調整部213は、転送パラメータが変更されたことにより処理を実行できなかったプラットフォーム(ゲスト)2−2〜2−9の転送パラメータを調整前に戻す。すなわち、画像から人物を検出させる処理の場合、調整部213は、例えば解像度を上げる。これにより、プラットフォーム(ゲスト)2−2〜2−9は、処理が実行可能となる。
【0047】
プラットフォーム(ゲスト)2−2〜2−9は、受信部214と、実行部215とを備える。
【0048】
受信部214は、バス3を介してプラットフォーム(ホスト)2−1からデータを受信する。すなわち、受信部214は、各種処理の実行を要求するデータを受信する。
【0049】
実行部215は、受信部214が受信したデータに基づいて、データで要求された処理を実行する。また、実行部215は、データで要求された処理の処理結果を出力する。すなわち、実行部215は、データで要求された処理にかかった処理時間を出力する。なお、実行部215は、処理項目ごとの処理時間が示された処理結果を出力してもよい。例えば、実行部215は、データの転送が開始されてからデータの受信を終了するまでのデータ転送、受信したデータを解凍するデータ解凍、及びデータで要求された処理を実行する実行処理ごとの処理時間を示す処理結果を出力してもよい。これにより、プラットフォーム(ホスト)2−1は、各工程での処理時間を把握することができる。そのため、プラットフォーム(ホスト)2−1は、転送パラメータのうち、何れのパラメータを調整すればよいかを判断することができる。
【0050】
また、実行部215は、転送パラメータが変更されたことにより処理を実行することができない場合がある。このような場合、実行部215は、エラーを示す処理結果を出力する。
【0051】
次に、画像から人物を検出させる処理を例に転送パラメータを調整する処理を説明する。図5は、人物検出処理における転送パラメータの調整手順の一例を説明する説明図である。
【0052】
図5において、プラットフォーム(ゲスト)2−2及びプラットフォーム(ゲスト)2−3は、全身を検出する全身検出処理を実行する。プラットフォーム(ゲスト)2−4及びプラットフォーム(ゲスト)2−5は、手を検出する手検出処理を実行する。プラットフォーム(ゲスト)2−6及びプラットフォーム(ゲスト)2−7は、足を検出する足検出処理を実行する。プラットフォーム(ゲスト)2−8及びプラットフォーム(ゲスト)2−9は、顔を検出する顔検出処理を実行する。また、全身検出処理、手検出処理、足検出処理、及び顔検出処理の目標値は、これら各処理の平均1秒と設定されているものとする。
【0053】
このような条件で実行された1回目の各処理の処理時間は、全身検出処理が0.7秒、手検出処理が1.7秒、足検出処理が1.8秒、及び顔検出処理が1.9秒であったとする。さらに、閾値が0.2秒であったとする。この場合、調整部213は、処理時間の平均と、目標値との差が閾値以上であるため、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。
【0054】
例えば、調整部213は、全身検出処理の処理時間は、0.7秒であり、目標値よりも低い。そこで、調整部213は、例えば、プラットフォーム(ゲスト)2−2及びプラットフォーム(ゲスト)2−3の処理速度パラメータを調整して、転送速度を下げる。一方、調整部213は、他のプラットフォーム(ゲスト)2−2〜2−9の処理速度パラメータを調整して、転送速度を上げる。
【0055】
また、手検出処理及び足検出処理では、十分な処理精度が得られているものとする。しかし、処理時間は、手検出処理が1.7秒であり、足検出処理が1.8秒である。すなわち、手検出処理及び足検出処理の処理時間の平均と、目標値との差は閾値以上である。そこで、調整部213は、例えば、プラットフォーム(ゲスト)2−2、プラットフォーム(ゲスト)2−3、プラットフォーム(ゲスト)2−4、及びプラットフォーム(ゲスト)2−5の処理精度パラメータを調整して、処理精度を下げる。
【0056】
また、顔検出処理では、データの解凍に時間がかかっているものとする。この場合、調整部213は、圧縮レベルパラメータを調整して、圧縮比を下げる。
【0057】
分散型コンピュータ1は、2回目の処理を実行する。すなわち、転送部211は、調整部213が調整した後の転送パラメータで、プラットフォーム(ゲスト)2−2〜2−9にデータを転送する。また、取得部212は、プラットフォーム(ゲスト)2−2〜2−9から処理結果を取得する。その結果、2回目の処理において、図5に示すように処理時間が改善する。
【0058】
このように、プラットフォーム(ホスト)2−1は、上述した処理を繰り替えし実行することで、処理時間と目標値との差を閾値未満にする。すなわち、プラットフォーム(ホスト)2−1は、分散型コンピュータ1全体としての処理を最適化する。なお、調整部213は、上述したように、取得部212が取得した処理結果に基づいて、調整対象の転送パラメータ、及び転送パラメータの調整量を決定してもよいし、ランダムに調整対象の転送パラメータ、及び転送パラメータの調整量を決定してもよい。
【0059】
次に、プラットフォーム(ホスト)2−1による転送パラメータの調整処理についてフローチャートを用いて説明する。ここで、図6は、実施例にかかるプラットフォーム(ホスト)2−1が実行する調整処理の一例を示すフローチャートである。
【0060】
調整部213は、転送パラメータ及び目標値の初期値を決定する(ステップS11)。なお、調整部213は、初期値は事前に設定されていてもよいし、処理内容等に応じて算出してもよい。
【0061】
転送部211は、プラットフォーム(ゲスト)2−2〜2−9ごとに設定された転送のための転送パラメータに基づいて、バス3を介してプラットフォーム(ゲスト)2−2〜2−9にデータを転送する(ステップS12)。
【0062】
取得部212は、処理結果を各プラットフォーム(ゲスト)2−2〜2−9から取得する(ステップS13)。すなわち、取得部212は、処理時間を取得する。
【0063】
調整部213は、処理結果が示す処理時間と、目標値との差を算出する(ステップS14)。
【0064】
調整部213は、処理結果が示す処理時間と、目標値との差が閾値未満であるか否かを判定する(ステップS15)。
【0065】
処理結果が示す処理時間と、目標値との差が閾値以上である場合に(ステップS15;No)、調整部213は、転送パラメータを調整する(ステップS16)。そして、転送部211は、ステップS12にて調整後の転送パラメータでデータを転送する。
【0066】
処理結果が示す処理時間と、目標値との差が閾値未満である場合に(ステップS15;Yes)、プラットフォーム(ホスト)2−1は、調整処理を終了する。
【0067】
次に、プラットフォーム(ゲスト)2−2〜2−9による転送されたデータに基づいた実行処理についてフローチャートを用いて説明する。ここで、図7は、実施例にかかるプラットフォーム(ゲスト)2−2〜2−9が実行する実行処理の一例を示すフローチャートである。
【0068】
受信部214は、バス3を介してプラットフォーム(ホスト)2−1からデータを受信する(ステップS21)。
【0069】
実行部215は、受信部214が受信したデータに基づいて、データで要求された処理を実行する(ステップS22)。
【0070】
実行部215は、受信部214が受信したデータでの処理が実行不可であったか否かを判定する(ステップS23)。
【0071】
受信部214が受信したデータでの処理が実行不可であった場合に(ステップS23;Yes)、実行部215は、実行不可を示すエラーを含む処理結果を出力する(ステップS24)。
【0072】
受信部214が受信したデータでの処理が実行可能であった場合に(ステップS23;No)、実行部215は、実行した処理の処理時間を含む処理結果を出力する(ステップS25)。
【0073】
以上により、プラットフォーム(ホスト)2−1は、実行処理を終了する。
【0074】
以上の説明のように、本実施例によれば、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9ごとに設定された転送パラメータに基づいて、バス3を介して、各プラットフォーム(ゲスト)2−2〜2−9にデータを転送する。また、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9がデータに基づいて処理を実行した場合に、処理時間が示された処理結果を取得する。そして、プラットフォーム(ホスト)2−1は、処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。これにより、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9間での処理時間が均一になるまで上述した処理を繰り返し実行することができる。すなわち、プラットフォーム(ホスト)2−1は、データ転送における無駄が無くなるまで上述した処理を繰り返し実行する。よって、プラットフォーム(ホスト)2−1は、複数のプラットフォーム(ゲスト)2−2〜2−9へ効率的にデータを転送することができる。
【0075】
また、本実施例にかかるプラットフォーム(ホスト)2−1の調整部213は、処理結果と、処理結果の目標値との差に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。そして、目標値はユーザ等により設定される。これにより、プラットフォーム(ホスト)2−1は、ユーザが意図した目標値にまで処理時間になるまで転送パラメータが調整することができる。
【0076】
また、プラットフォーム(ホスト)2−1の調整部213は、転送パラメータに含まれる1以上のパラメータをプラットフォーム(ゲスト)2−2〜2−9ごとに調整する。これにより、調整部213は、各プラットフォーム(ゲスト)2−2〜2−9の状況に応じて転送パラメータを調整することができる。
【0077】
また、プラットフォーム(ゲスト)2−2〜2−9が処理を実行できなかった場合に、プラットフォーム(ホスト)2−1の取得部212は、エラーを示す処理結果を取得する。そして、調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。これにより、調整部213は、転送パラメータの調整に失敗し、処理ができなかった場合においても、転送パラメータの調整を継続することができる。
【0078】
また、本実施例にかかる分散型コンピュータ1は、バス3を介してプラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とが接続された情報処理システムである。プラットフォーム(ホスト)2−1は、転送部211と、取得部212と、調整部213とを備える。転送部211は、プラットフォーム(ゲスト)2−2〜2−9ごとに設定された転送のための転送パラメータに基づいて、バス3を介してプラットフォーム(ゲスト)2−2〜2−9を転送する。取得部212は、プラットフォーム(ゲスト)2−2〜2−9がデータに基づいて実行した処理の処理結果を取得する。調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。プラットフォーム(ゲスト)2−2〜2−9は、受信部214と、実行部215とを備える。受信部214は、バス3を介してプラットフォーム(ホスト)2−1からデータを受信する。実行部215は、受信部214が受信したデータに基づいて、データで要求された処理を実行する。これにより、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9間での処理時間が均一になるまで上述した処理を繰り返し実行することができる。すなわち、プラットフォーム(ホスト)2−1は、データ転送における無駄が無くなるまで上述した処理を繰り返し実行する。よって、プラットフォーム(ホスト)2−1は、複数のプラットフォーム(ゲスト)2−2〜2−9へ効率的にデータを転送することができる。
【0079】
上述の実施形態では、各部のバス(例えば、拡張バス)又はI/OインタフェースとしてPCIeを例に挙げて説明したが、バスまたはI/OインタフェースはPCIeに限定されない。例えば、各部のバスまたはI/Oインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステム又は1つの装置)で高速にデータを転送できる汎用のバスであってもよい。I/Oインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【0080】
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1又は複数のポートを有するルート・コンプレックス、I/Oデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。I/Oインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【0081】
1 分散型コンピュータ
2−1 プラットフォーム(ホスト)
2−2〜2−9 プラットフォーム(ゲスト)
3 バス
30 PCIeブリッジコントローラ
211 転送部
212 取得部
213 調整部
214 受信部
215 実行部
図1
図2
図3
図4
図5
図6
図7