JP6856876B2 - 情報処理装置及び情報処理システム - Google Patents

情報処理装置及び情報処理システム Download PDF

Info

Publication number
JP6856876B2
JP6856876B2 JP2019051572A JP2019051572A JP6856876B2 JP 6856876 B2 JP6856876 B2 JP 6856876B2 JP 2019051572 A JP2019051572 A JP 2019051572A JP 2019051572 A JP2019051572 A JP 2019051572A JP 6856876 B2 JP6856876 B2 JP 6856876B2
Authority
JP
Japan
Prior art keywords
processing
platform
transfer
unit
guest
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
JP2019051572A
Other languages
English (en)
Other versions
JP2020154608A (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.)
Fujitsu Client Computing Ltd
Original Assignee
Fujitsu Client Computing 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 Fujitsu Client Computing Ltd filed Critical Fujitsu Client Computing Ltd
Priority to JP2019051572A priority Critical patent/JP6856876B2/ja
Priority to GB2000514.6A priority patent/GB2585405A/en
Priority to CN202010070680.XA priority patent/CN111723031A/zh
Priority to US16/750,651 priority patent/US20200301746A1/en
Publication of JP2020154608A publication Critical patent/JP2020154608A/ja
Application granted granted Critical
Publication of JP6856876B2 publication Critical patent/JP6856876B2/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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理装置及び情報処理システムに関する。
従来、複数のプラットフォームを有する分散型コンピュータが知られている。分散型コンピュータは、プラットフォーム等の処理装置に処理を分散させることで処理の高速化を図っている。
このような、分散型コンピュータで処理装置に処理を実行させる場合、処理装置へのデータ転送の効率化が、分散型コンピュータ全体としての処理時間に大きな影響を及ぼす。
特開2018−18323号公報
しかしながら、分散型コンピュータは様々な処理を実行するため、テータ転送の効率化を図ることは困難であった。
本発明は、上記に鑑みてなされたものであって、複数の処理装置へ効率的にデータを転送することを目的とする。
本発明の第1態様に係る情報処理装置は、複数の処理装置とバスを介して接続された情報処理装置であって、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する。
本発明の第2態様に係る情報処理システムは、バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムである。前記情報処理装置は、転送部と、取得部と、調整部と、を備える。前記転送部は、前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する。前記取得部は、前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する。前記調整部は、前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する。前記処理装置は、受信部と、実行部と、を備える。前記受信部は、前記バスを介して前記情報処理装置から前記データを受信する前記実行部は、前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する。
本発明にかかる情報処理装置及び情報処理システムは、複数の処理装置へ効率的にデータを転送することができるという効果を奏する。
図1は、実施例にかかる分散型コンピュータの実施例の構成の一例を示すブロック図である。 図2は、実施例にかかる分散型コンピュータの全体構成の一例を示す図である。 図3は、実施例にかかるプラットフォームのハードウェア構成の一例を示すブロック図である。 図4は、実施例にかかる分散型コンピュータの機能構成の一例を示すブロック図である。 図5は、人物検出処理における転送パラメータの調整手順の一例を説明する説明図である。 図6は、実施例にかかるプラットフォーム(ホスト)が実行する調整処理の一例を示すフローチャートである。 図7は、実施例にかかるプラットフォーム(ゲスト)が実行する実行処理の一例を示すフローチャートである。
以下に、本発明にかかる情報処理装置及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例にかかる分散型コンピュータ1の実施例の構成の一例を示すブロック図である。分散型コンピュータ1は、バス3を介してプラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とが接続された情報処理システムである。プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9に対して、各種処理の実行を要求する情報処理装置である。プラットフォーム(ゲスト)2−2〜2−9は、プラットフォーム(ホスト)2−1の要求に応じて、各種処理の実行する処理装置である。
バス3は、例えばPCIe(Peripheral Component Interconnect Express;登録商標)等を用いた仮想LAN(Local Area Network)により形成されている。そして、バス3は、プラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とを通信可能に接続している。なお、バス3は、PCIeを用いた仮想LANに限らず、USB(Universal Serial Bus)等の他の通信インタフェースにより形成されていてもよい。
このような分散型コンピュータ1において、プラットフォーム(ホスト)2−1は、転送パラメータに基づいて、各種処理の実行を要求するデータを転送する。プラットフォーム(ゲスト)2−2〜2−9は、データを受信した場合に、要求された処理を実行する。また、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9が処理を実行した場合に、処理時間を含む処理結果をプラットフォーム(ゲスト)2−2〜2−9から取得する。また、プラットフォーム(ホスト)2−1は、処理結果に基づいて、転送パラメータを調整する。そして、プラットフォーム(ホスト)2−1は、各種処理の実行を要求するデータを転送する場合、調整後の転送パラメータに基づいてデータを転送する。
このように、プラットフォーム(ホスト)2−1は、転送パラメータに基づいたデータの転送と、処理結果に基づいた転送パラメータの調整とを繰り返し実行することで、分散型コンピュータ1全体としての処理を最適化する。すなわち、プラットフォーム(ホスト)2−1は、複数のプラットフォーム(ゲスト)2−2〜2−9へ効率的にデータを転送する。
図2は、実施例にかかる分散型コンピュータ1の全体構成の一例を示す図である。図2に示すように、実施例にかかる分散型コンピュータ1は、プラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9と、PCIeブリッジコントローラ30と、を備えている。
プラットフォーム(ホスト)2−1と、複数のプラットフォーム(ゲスト)2−2〜2−9とは、PCIeブリッジコントローラ30を介して、通信可能に接続されている。また、プラットフォーム(ホスト)2−1及び複数のプラットフォーム(ゲスト)2−2〜2−9は、例えば、PCIeブリッジコントローラ30が設けられたボード上のスロットに挿入されていてよい。尚、複数のスロットのうち、いずれかのスロットは、ノードが挿入されていない空き状態であってもよい。以下の説明では、プラットフォーム(ホスト)2−1と、プラットフォーム(ゲスト)2−2〜2−9とを区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム2と記載する。
プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9に各種処理を実行させる。また、プラットフォーム(ホスト)2−1は、プラットフォーム(ゲスト)2−2〜2−9が実行した処理の処理結果を取得する。処理結果とは、例えば処理にかかった処理時間等である。そして、プラットフォーム(ホスト)2−1は、処理結果に基づいて、データを転送するための転送パラメータを調整する。
プラットフォーム(ゲスト)2−2〜2−9は、プラットフォーム(ホスト)2−1から転送されたデータに基づいて、各種処理を実行する。また、プラットフォーム(ゲスト)2−2〜2−9は、処理にかかった処理時間を計測する。
また、プラットフォーム2は、プロセッサ21−1〜21−9を備える。また、プロセッサ21−1〜21−9は、それぞれ特化した機能を有している。なお、プロセッサ21−1〜21−9は、それぞれ異なるメーカから提供されていてもよいし、同一のメーカから提供されていてもよい。以下の説明では、プロセッサ21−1〜21−9を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ21と記載する。
また、プロセッサ21がホスト側として動作可能なRC(Root Complex)となり、PCIeブリッジコントローラ30に搭載されているデバイスがEP(End Point)となり、ホストとデバイスとの間でのデータ転送が行なわれる。
また、PCIeブリッジコントローラ30は、内部に設けられたバス3を制御して、EP間のデータ転送を実行する。すなわち、PCIeブリッジコントローラ30は、プラットフォーム2間の通信を実行する。
図3は、実施例にかかるプラットフォーム2のハードウェア構成の一例を示すブロック図である。
プラットフォーム2は、各種演算処理を実行するプロセッサ21と、各種情報を一時記憶するメモリ22と、各種情報を記憶するストレージ23と、インタフェース24とを備える。そして、各部は、内部バス25に接続される。
プロセッサ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種類以上の要素の組み合わせであってもよい。
メモリ22はROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
ストレージ23は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。ストレージ23には各種ソフトウェアプログラムが記憶される。
プラットフォーム2においては、プロセッサ21がメモリ22やストレージ23に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ22やストレージ23に記憶されている必要はない。例えば、プラットフォーム2が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム2が読み出して実行するようにしてもよい。プラットフォーム2が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム2がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
インタフェース24は、バス3と接続するインタフェースである。
なお、プラットフォーム2は、これらハードウェアに限らず、他のハードウェアを備えていてもよい。例えば、プラットフォーム(ホスト)2−1は、各種操作を受け付ける入力装置と接続するインタフェースや、各種画面を表示させる表示装置と接続するインタフェース等を備えていてもよい。
ここで、図4は、実施例にかかる分散型コンピュータ1の機能構成の一例を示すブロック図である。図4に示すプラットフォーム(ホスト)2−1の機能は、プロセッサ21−1がメモリ22等に記憶されたソフトウェアプログラムを読み出して実行した結果として実現される。また、図4に示すプラットフォーム(ゲスト)2−2〜2−9の機能は、プロセッサ21−2〜21−9が、メモリ22等に記憶されたソフトウェアプログラムを読み出して実行した結果として実現される。
プラットフォーム(ホスト)2−1は、転送部211と、取得部212と、調整部213とを備える。
転送部211は、プラットフォーム(ゲスト)2−2〜2−9ごとに設定された転送のための転送パラメータに基づいて、バス3を介してプラットフォーム(ゲスト)2−2〜2−9にデータを転送する。ここで、転送パラメータには、例えば、処理精度パラメータと、処理速度パラメータと、圧縮レベルパラメータとが含まれる。
処理精度パラメータは、プラットフォーム(ゲスト)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全体としての処理を最適化する。
処理速度パラメータは、プラットフォーム(ゲスト)2−2〜2−9に対するデータの転送速度を指定するパラメータである。処理速度パラメータは、例えばデータを有するパケットを転送する割合や、バス3の占有率等である。例えば、転送部211は、処理時間が比較的に長いプラットフォーム(ゲスト)2−2〜2−9にパケットを転送する割合を上げて、処理時間が比較的に速いプラットフォーム(ゲスト)2−2〜2−9に対してパケットを転送する割合を下げる。これにより、転送部211は、分散型コンピュータ1全体としての処理を最適化する。
圧縮レベルパラメータは、プラットフォーム(ゲスト)2−2〜2−9に転送するデータの圧縮比を指定するパラメータである。例えば、転送部211は、圧縮されたデータの解凍に要する時間が比較的に長時間のプラットフォーム(ゲスト)2−2〜2−9に対しては、圧縮比を下げたデータを転送する。これにより、プラットフォーム(ゲスト)2−2〜2−9は、解凍時間を短縮することができる。
また、転送部211は、データの転送に比較的に長時間がかかっているプラットフォーム(ゲスト)2−2〜2−9に対しては、圧縮比を上げたデータを転送する。これにより、転送部211は、データ量が減るため、転送時間を短くすることができる。
取得部212は、プラットフォーム(ゲスト)2−2〜2−9がデータに基づいて実行した処理の処理結果を取得する。すなわち、取得部212は、各プラットフォーム(ゲスト)2−2〜2−9から処理にかかった処理時間を取得する。
調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。更に詳しくは、調整部213は、処理結果と、処理結果の目標値との差に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。ここで、目標値とは、対象の処理の目標となる処理時間である。そして、調整部213は、取得部212が取得した処理結果が示す処理時間と目標値との差が閾値以上である場合に、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。
例えば、調整部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は、閾値を設けずに、処理時間が目標値以上の場合に、転送パラメータを調整するようにしてもよい。また、目標値は、対象の処理ごとに定められた値であってもよいし、処理の種別に関わらず一律に定められていてもよい。
また、調整部213は、プラットフォーム(ゲスト)2−2〜2−9のそれぞれの処理結果の平均と、目標値との差に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整してもよい。この場合、調整部213は、各プラットフォーム(ゲスト)2−2〜2−9の処理時間の平均と、目標値との差が閾値以上である場合に、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。なお、調整部213は、この場合においても閾値を設けずに、処理時間が目標値以上の場合に、転送パラメータを調整するようにしてもよい。
また、調整部213は、目標値を設けずに、転送パラメータを調整するようにしてもよい。例えば、調整部213は、プラットフォーム(ゲスト)2−2〜2−9のそれぞれの処理時間を比較して、他のプラットフォーム(ゲスト)2−2〜2−9の処理時間との差が閾値以上のプラットフォーム(ゲスト)2−2〜2−9があるか否かを判定してもよい。
また、調整部213は、転送パラメータに含まれる1以上のパラメータをプラットフォーム(ゲスト)2−2〜2−9ごとに調整してもよい。すなわち、調整部213は、転送パラメータに含まれる処理精度パラメータと、処理速度パラメータと、圧縮レベルパラメータとをプラットフォーム(ゲスト)2−2〜2−9ごとに調整してもよい。これにより、調整部213は、プラットフォーム(ゲスト)2−2〜2−9の状況に応じて転送パラメータを調整することができる。
調整部213が転送パラメータを変更したことにより、プラットフォーム(ゲスト)2−2〜2−9が処理を実行できなくなってしまうことがある。ここでは、画像から人物を検出させる処理を例に説明する。例えば、あるプラットフォーム(ゲスト)2−2〜2−9において処理時間が長いために、調整部213が処理精度パラメータ、つまり解像度を下げたとする。この時、調整部213が解像度を下げ過ぎてしまうと、プラットフォーム(ゲスト)2−2〜2−9は、人物を検出することができなくなってしまう。このような場合、プラットフォーム(ゲスト)2−2〜2−9は、人物を検出する処理が実行不可であるとして、エラーを示す処理結果を出力する。よって、取得部212は、転送パラメータが変更されたことにより処理を実行できなかったことを示す処理結果を取得する。
そして、調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。例えば、調整部213は、転送パラメータが変更されたことにより処理を実行できなかったプラットフォーム(ゲスト)2−2〜2−9の転送パラメータを調整前に戻す。すなわち、画像から人物を検出させる処理の場合、調整部213は、例えば解像度を上げる。これにより、プラットフォーム(ゲスト)2−2〜2−9は、処理が実行可能となる。
プラットフォーム(ゲスト)2−2〜2−9は、受信部214と、実行部215とを備える。
受信部214は、バス3を介してプラットフォーム(ホスト)2−1からデータを受信する。すなわち、受信部214は、各種処理の実行を要求するデータを受信する。
実行部215は、受信部214が受信したデータに基づいて、データで要求された処理を実行する。また、実行部215は、データで要求された処理の処理結果を出力する。すなわち、実行部215は、データで要求された処理にかかった処理時間を出力する。なお、実行部215は、処理項目ごとの処理時間が示された処理結果を出力してもよい。例えば、実行部215は、データの転送が開始されてからデータの受信を終了するまでのデータ転送、受信したデータを解凍するデータ解凍、及びデータで要求された処理を実行する実行処理ごとの処理時間を示す処理結果を出力してもよい。これにより、プラットフォーム(ホスト)2−1は、各工程での処理時間を把握することができる。そのため、プラットフォーム(ホスト)2−1は、転送パラメータのうち、何れのパラメータを調整すればよいかを判断することができる。
また、実行部215は、転送パラメータが変更されたことにより処理を実行することができない場合がある。このような場合、実行部215は、エラーを示す処理結果を出力する。
次に、画像から人物を検出させる処理を例に転送パラメータを調整する処理を説明する。図5は、人物検出処理における転送パラメータの調整手順の一例を説明する説明図である。
図5において、プラットフォーム(ゲスト)2−2及びプラットフォーム(ゲスト)2−3は、全身を検出する全身検出処理を実行する。プラットフォーム(ゲスト)2−4及びプラットフォーム(ゲスト)2−5は、手を検出する手検出処理を実行する。プラットフォーム(ゲスト)2−6及びプラットフォーム(ゲスト)2−7は、足を検出する足検出処理を実行する。プラットフォーム(ゲスト)2−8及びプラットフォーム(ゲスト)2−9は、顔を検出する顔検出処理を実行する。また、全身検出処理、手検出処理、足検出処理、及び顔検出処理の目標値は、これら各処理の平均1秒と設定されているものとする。
このような条件で実行された1回目の各処理の処理時間は、全身検出処理が0.7秒、手検出処理が1.7秒、足検出処理が1.8秒、及び顔検出処理が1.9秒であったとする。さらに、閾値が0.2秒であったとする。この場合、調整部213は、処理時間の平均と、目標値との差が閾値以上であるため、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。
例えば、調整部213は、全身検出処理の処理時間は、0.7秒であり、目標値よりも低い。そこで、調整部213は、例えば、プラットフォーム(ゲスト)2−2及びプラットフォーム(ゲスト)2−3の処理速度パラメータを調整して、転送速度を下げる。一方、調整部213は、他のプラットフォーム(ゲスト)2−2〜2−9の処理速度パラメータを調整して、転送速度を上げる。
また、手検出処理及び足検出処理では、十分な処理精度が得られているものとする。しかし、処理時間は、手検出処理が1.7秒であり、足検出処理が1.8秒である。すなわち、手検出処理及び足検出処理の処理時間の平均と、目標値との差は閾値以上である。そこで、調整部213は、例えば、プラットフォーム(ゲスト)2−2、プラットフォーム(ゲスト)2−3、プラットフォーム(ゲスト)2−4、及びプラットフォーム(ゲスト)2−5の処理精度パラメータを調整して、処理精度を下げる。
また、顔検出処理では、データの解凍に時間がかかっているものとする。この場合、調整部213は、圧縮レベルパラメータを調整して、圧縮比を下げる。
分散型コンピュータ1は、2回目の処理を実行する。すなわち、転送部211は、調整部213が調整した後の転送パラメータで、プラットフォーム(ゲスト)2−2〜2−9にデータを転送する。また、取得部212は、プラットフォーム(ゲスト)2−2〜2−9から処理結果を取得する。その結果、2回目の処理において、図5に示すように処理時間が改善する。
このように、プラットフォーム(ホスト)2−1は、上述した処理を繰り替えし実行することで、処理時間と目標値との差を閾値未満にする。すなわち、プラットフォーム(ホスト)2−1は、分散型コンピュータ1全体としての処理を最適化する。なお、調整部213は、上述したように、取得部212が取得した処理結果に基づいて、調整対象の転送パラメータ、及び転送パラメータの調整量を決定してもよいし、ランダムに調整対象の転送パラメータ、及び転送パラメータの調整量を決定してもよい。
次に、プラットフォーム(ホスト)2−1による転送パラメータの調整処理についてフローチャートを用いて説明する。ここで、図6は、実施例にかかるプラットフォーム(ホスト)2−1が実行する調整処理の一例を示すフローチャートである。
調整部213は、転送パラメータ及び目標値の初期値を決定する(ステップS11)。なお、調整部213は、初期値は事前に設定されていてもよいし、処理内容等に応じて算出してもよい。
転送部211は、プラットフォーム(ゲスト)2−2〜2−9ごとに設定された転送のための転送パラメータに基づいて、バス3を介してプラットフォーム(ゲスト)2−2〜2−9にデータを転送する(ステップS12)。
取得部212は、処理結果を各プラットフォーム(ゲスト)2−2〜2−9から取得する(ステップS13)。すなわち、取得部212は、処理時間を取得する。
調整部213は、処理結果が示す処理時間と、目標値との差を算出する(ステップS14)。
調整部213は、処理結果が示す処理時間と、目標値との差が閾値未満であるか否かを判定する(ステップS15)。
処理結果が示す処理時間と、目標値との差が閾値以上である場合に(ステップS15;No)、調整部213は、転送パラメータを調整する(ステップS16)。そして、転送部211は、ステップS12にて調整後の転送パラメータでデータを転送する。
処理結果が示す処理時間と、目標値との差が閾値未満である場合に(ステップS15;Yes)、プラットフォーム(ホスト)2−1は、調整処理を終了する。
次に、プラットフォーム(ゲスト)2−2〜2−9による転送されたデータに基づいた実行処理についてフローチャートを用いて説明する。ここで、図7は、実施例にかかるプラットフォーム(ゲスト)2−2〜2−9が実行する実行処理の一例を示すフローチャートである。
受信部214は、バス3を介してプラットフォーム(ホスト)2−1からデータを受信する(ステップS21)。
実行部215は、受信部214が受信したデータに基づいて、データで要求された処理を実行する(ステップS22)。
実行部215は、受信部214が受信したデータでの処理が実行不可であったか否かを判定する(ステップS23)。
受信部214が受信したデータでの処理が実行不可であった場合に(ステップS23;Yes)、実行部215は、実行不可を示すエラーを含む処理結果を出力する(ステップS24)。
受信部214が受信したデータでの処理が実行可能であった場合に(ステップS23;No)、実行部215は、実行した処理の処理時間を含む処理結果を出力する(ステップS25)。
以上により、プラットフォーム(ホスト)2−1は、実行処理を終了する。
以上の説明のように、本実施例によれば、プラットフォーム(ホスト)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へ効率的にデータを転送することができる。
また、本実施例にかかるプラットフォーム(ホスト)2−1の調整部213は、処理結果と、処理結果の目標値との差に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。そして、目標値はユーザ等により設定される。これにより、プラットフォーム(ホスト)2−1は、ユーザが意図した目標値にまで処理時間になるまで転送パラメータが調整することができる。
また、プラットフォーム(ホスト)2−1の調整部213は、転送パラメータに含まれる1以上のパラメータをプラットフォーム(ゲスト)2−2〜2−9ごとに調整する。これにより、調整部213は、各プラットフォーム(ゲスト)2−2〜2−9の状況に応じて転送パラメータを調整することができる。
また、プラットフォーム(ゲスト)2−2〜2−9が処理を実行できなかった場合に、プラットフォーム(ホスト)2−1の取得部212は、エラーを示す処理結果を取得する。そして、調整部213は、取得部212が取得した処理結果に基づいて、プラットフォーム(ゲスト)2−2〜2−9ごとに転送パラメータを調整する。これにより、調整部213は、転送パラメータの調整に失敗し、処理ができなかった場合においても、転送パラメータの調整を継続することができる。
また、本実施例にかかる分散型コンピュータ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へ効率的にデータを転送することができる。
上述の実施形態では、各部のバス(例えば、拡張バス)又はI/OインタフェースとしてPCIeを例に挙げて説明したが、バスまたはI/OインタフェースはPCIeに限定されない。例えば、各部のバスまたはI/Oインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステム又は1つの装置)で高速にデータを転送できる汎用のバスであってもよい。I/Oインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1又は複数のポートを有するルート・コンプレックス、I/Oデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。I/Oインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
1 分散型コンピュータ
2−1 プラットフォーム(ホスト)
2−2〜2−9 プラットフォーム(ゲスト)
3 バス
30 PCIeブリッジコントローラ
211 転送部
212 取得部
213 調整部
214 受信部
215 実行部

Claims (4)

  1. 複数の処理装置とバスを介して接続された情報処理装置であって、
    前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
    前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する取得部と、
    前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する調整部と、
    を備える情報処理装置。
  2. 前記調整部は、前記処理結果と、前記処理結果の目標値との差に基づいて、前記処理装置ごとに前記転送パラメータを調整する、
    請求項1に記載の情報処理装置。
  3. 前記調整部は、前記転送パラメータに含まれる1以上のパラメータを前記処理装置ごとに調整する、
    請求項1又は請求項2に記載の情報処理装置。
  4. バスを介して情報処理装置と複数の処理装置とが接続された情報処理システムであって、
    前記情報処理装置は、
    前記処理装置ごとに設定された転送のための転送パラメータに基づいて、前記バスを介して前記処理装置にデータを転送する転送部と、
    前記処理装置が前記データに基づいて実行した処理の処理時間を含む処理結果を取得する取得部と、
    前記取得部が取得した前記処理結果に含まれる前記処理時間に基づいて、前記処理装置のそれぞれの前記処理時間が均一になるまで、前記処理装置ごとに前記転送パラメータを繰り返し調整する調整部と、を備え、
    前記処理装置は、
    前記バスを介して前記情報処理装置から前記データを受信する受信部と、
    前記受信部が受信した前記データに基づいて、前記データで要求された処理を実行する実行部と、を備える、
    情報処理システム。
JP2019051572A 2019-03-19 2019-03-19 情報処理装置及び情報処理システム Active JP6856876B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019051572A JP6856876B2 (ja) 2019-03-19 2019-03-19 情報処理装置及び情報処理システム
GB2000514.6A GB2585405A (en) 2019-03-19 2020-01-14 Information processing apparatus and information processing system
CN202010070680.XA CN111723031A (zh) 2019-03-19 2020-01-21 信息处理设备和信息处理系统
US16/750,651 US20200301746A1 (en) 2019-03-19 2020-01-23 Information processing apparatus and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019051572A JP6856876B2 (ja) 2019-03-19 2019-03-19 情報処理装置及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2020154608A JP2020154608A (ja) 2020-09-24
JP6856876B2 true JP6856876B2 (ja) 2021-04-14

Family

ID=69626399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019051572A Active JP6856876B2 (ja) 2019-03-19 2019-03-19 情報処理装置及び情報処理システム

Country Status (4)

Country Link
US (1) US20200301746A1 (ja)
JP (1) JP6856876B2 (ja)
CN (1) CN111723031A (ja)
GB (1) GB2585405A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198642A (ja) * 1997-01-09 1998-07-31 Fujitsu Ltd サーバ装置
JPH11143838A (ja) * 1997-11-10 1999-05-28 Nec Ic Microcomput Syst Ltd 分散処理システム
JPH11259431A (ja) * 1998-03-09 1999-09-24 Fujitsu Ltd 分散処理方法及びネットワーク分散処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US20020184363A1 (en) * 2001-04-20 2002-12-05 Steven Viavant Techniques for server-controlled measurement of client-side performance
JP5491980B2 (ja) * 2010-06-16 2014-05-14 株式会社東芝 医用画像転送制御装置、およびその制御プログラム
JP2015088112A (ja) * 2013-11-01 2015-05-07 ソニー株式会社 制御装置、処理装置及び情報処理方法

Also Published As

Publication number Publication date
GB202000514D0 (en) 2020-02-26
JP2020154608A (ja) 2020-09-24
CN111723031A (zh) 2020-09-29
GB2585405A (en) 2021-01-13
US20200301746A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
US11567895B2 (en) Method, apparatus and system for dynamic control of clock signaling on a bus
CN112543925B (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
CN112534418B (zh) 通过固定pcie物理传输网络的逻辑传输
EP3649556B1 (en) Techniques to support mulitple interconnect protocols for an interconnect
US8443126B2 (en) Hot plug process in a distributed interconnect bus
US7370224B1 (en) System and method for enabling redundancy in PCI-Express architecture
KR102498223B1 (ko) Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
US11163659B2 (en) Enhanced serial peripheral interface (eSPI) signaling for crash event notification
KR20170013882A (ko) 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc)
CN113778328B (zh) 在半导体封装之间引导控制数据
US8996734B2 (en) I/O virtualization and switching system
US8423680B2 (en) System, method, and computer program product for inserting a gap in information sent from a drive to a host device
JP2003296267A (ja) バスシステム及びバスシステムを含む情報処理システム
CN111563595A (zh) 推断处理系统、推断处理装置以及计算机程序产品
JP6856876B2 (ja) 情報処理装置及び情報処理システム
KR20200093106A (ko) 반도체 집적 회로 및 그것의 동작 방법
US20210042128A1 (en) Information processing system, relay device, and computer program product
US8842547B2 (en) Communication control apparatus and control method
Verma et al. Pcie bus: A state-of-the-art-review
CN114925386A (zh) 数据处理方法、计算机设备、数据处理系统及存储介质
JP2011040965A (ja) データリンク層処理回路および通信回路
US20200278854A1 (en) Information processing apparatus and information processing system
JP2019016101A (ja) 情報処理システム、情報処理装置、および情報処理システムの制御方法
TWI427481B (zh) 工業標準構造介面匯流排的橋接系統、裝置與其方法
JP2008083842A (ja) データ転送装置及びデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201013

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210301

R150 Certificate of patent or registration of utility model

Ref document number: 6856876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150