(57)【要約】【課題】データ生成装置から出力されたデータに対して複数種類のタスクを複数のプロセッサで分担して処理する場合に、各プロセッサにタスクを適切かつ容易に割り当てる。【解決手段】データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部と、を備える。【選択図】図９
2020177343.tif 000002
【特許請求の範囲】
【請求項１】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部と、
を備える情報処理装置。
【請求項２】
前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる、
請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる、
請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する、
請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる、
請求項２に記載の情報処理装置。
【請求項６】
前記複数種類のタスクは、ＡＩ（Artificial  Intelligence）処理を構成する複数の個別ＡＩ処理である、請求項１に記載の情報処理装置。
【請求項７】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと、
前記複数のプロセッサと接続された情報処理装置と、を備えた情報処理システムであって、
前記情報処理装置は、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部と、を備える、
情報処理システム。
【請求項８】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと接続された情報処理装置としてのコンピュータのためのプログラムであって、
前記コンピュータを、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
従来から、ハードウェアとしての複数のプロセッサを用いて、データ生成装置から出力されたデータ（例えばカメラから出力された画像データ）に対して複数種類のタスク（例えば個別ＡＩ（Artificial  Intelligence）処理）を分担して処理する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６３５９７１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の従来技術の場合、タスクの種類ごとの処理量が異なること等に起因して、各プロセッサにタスクを適切に割り当てることが容易ではなかった。
【０００５】
そこで、本発明は、上記事情に鑑みてなされたものであり、データ生成装置から出力されたデータに対して複数種類のタスクを複数のプロセッサで分担して処理する場合に、各プロセッサにタスクを適切かつ容易に割り当てることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１態様に係る情報処理装置は、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部と、を備える。
【０００７】
また、情報処理装置において、例えば、前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる。
【０００８】
また、情報処理装置において、例えば、前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる。
【０００９】
また、情報処理装置において、例えば、前記制御部は、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する。
【００１０】
また、情報処理装置において、例えば、前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる。
【００１１】
また、例えば、前記複数種類のタスクは、ＡＩ処理を構成する複数の個別ＡＩ処理である。
【００１２】
本発明の第２態様に係る情報処理システムは、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと、前記複数のプロセッサと接続された情報処理装置と、を備えた情報処理システムであって、前記情報処理装置は、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部と、を備える。
【００１３】
本発明の第３態様に係るプログラムは、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと接続された情報処理装置としてのコンピュータのためのプログラムであって、前記コンピュータを、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部、として機能させる。
【発明の効果】
【００１４】
本発明の上記第１態様〜上記第３態様によれば、データ生成装置から出力されたデータに対して複数種類のタスクを複数のプロセッサで分担して処理する場合に、各プロセッサにタスクを適切かつ容易に割り当てることができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、第１実施形態にかかる情報処理システムにおける複数のプラットフォームの接続構成を模式的に示す図である。
【図２】図２は、プラットフォームのハードウェア構成を模式的に示す図である。
【図３】図３は、プラットフォームのソフトウェア構成を例示する図である。
【図４】図４は、ＰＣＩｅブリッジコントローラのハードウェア構成を模式的に示す図である。
【図５】図５は、ＰＣＩｅのレイヤ構成を示す図である。
【図６】図６は、プロセッサ（プロセッサＨ）からの他のプロセッサの見え方を例示する図である。
【図７】図７は、プロセッサ（プロセッサＥ）からの他のプロセッサの見え方を例示する図である。
【図８】図８は、ＰＣＩｅブリッジコントローラを介したプロセッサ間のデータ転送方法を説明するための図である。
【図９】図９は、情報処理システムにおける機能を示す機能ブロック図である。
【図１０】図１０は、カメラを設置した店舗の模式図である。
【図１１】図１１は、処理性能テーブルの例を模式的に示す図である。
【図１２】図１２は、処理量テーブルの例を模式的に示す図である。
【図１３】図１３は、第１のカメラ情報テーブルの例を模式的に示す図である。
【図１４】図１４は、ＡＩ処理パターンテーブルの例を模式的に示す図である。
【図１５】図１５は、プロセッサＢ〜Ｇへのタスクの割り当ての第１の例を示す図である。
【図１６】図１６は、プロセッサＢ〜Ｇへのタスクの割り当ての第２の例を示す図である。
【図１７】図１７は、情報処理装置としてのプラットフォームにおける処理の流れを示すフローチャートである。
【図１８】図１８は、図１７のフローチャートのステップＳ２の処理の詳細の例を示すフローチャートである。
【図１９】図１９は、第２実施形態における第２のカメラ情報テーブルの例を模式的に示す図である。
【図２０】図２０は、図１７のフローチャートのステップＳ２の処理の詳細の例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、情報処理装置、情報処理システムおよびプログラムの実施形態（第１実施形態、第２実施形態）について詳細に説明する。なお、以下の実施形態では、タスクとして主にＡＩ処理の場合を例にとって説明するが、タスクはＡＩ処理に限定されない。
【００１７】
（第１実施形態）
まず、第１実施形態について説明する。図１は、第１実施形態にかかる情報処理システム１における複数のプラットフォームの接続構成を模式的に示す図である。
【００１８】
［システム構成］
図１に例示する情報処理システム１においては、ＰＣＩｅ（Peripheral  Component  Interconnect  Express；登録商標）ブリッジコントローラ３および複数（図１に示す例では８つ）のプラットフォーム２−１〜２−８を備える。各プラットフォーム２−１〜２−８は、それぞれＰＣＩｅブリッジコントローラ３に接続されている。
【００１９】
なお、以下、プラットフォームを示す符号としては、複数のプラットフォームのうち１つを特定する必要があるときには符号２−１〜２−８を用いるが、任意のプラットフォームを指すときには符号２を用いる。
【００２０】
［プラットフォーム］
情報処理装置としてのプラットフォーム２−１は、プロセッサ２１−１を備える。同様に、プラットフォーム２−２〜２−８は、プロセッサ２１−２〜２１−８をそれぞれ備える。ＰＣＩｅにおいては、プロセッサ２１−１〜２１−８がホスト側として動作可能なＲＣ（Root  Complex）となり、ＰＣＩｅブリッジコントローラ３に搭載されているデバイスがＥＰ（End  Point）となり、ホストとデバイスとの間でのデータ転送が行なわれる。
【００２１】
プロセッサ２１−１〜２１−８はそれぞれ違うメーカ（ベンダ）から提供されてもよい。例えば、プロセッサ２１−１、２１−２、２１−３、２１−４、２１−５、２１−６、２１−７、２１−８は、それぞれ、Ａ社、Ｂ社、Ｃ社、Ｄ社、Ｅ社、Ｆ社、Ｇ社、Ｈ社が提供するものであるとする。
【００２２】
また、以下、プロセッサ２１−１、２１−２、２１−３、２１−４、２１−５、２１−６、２１−７、２１−８を、それぞれプロセッサＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈという場合がある。また、ＰＣＩｅブリッジコントローラ３に搭載されているＥＰに対して、それぞれ異なるプラットフォームを接続してもよい。さらに、２つ以上の複数のＥＰを１つのプラットフォームに接続し、プラットフォーム側が複数のＲＣを用いてＰＣＩｅブリッジコントローラ３と通信してもよい。
【００２３】
なお、以下、プロセッサを示す符号としては、複数のプロセッサのうち１つを特定する必要があるときには符号２１−１〜２１−８もしくは符号Ａ〜Ｈ等を用いるが、任意のプロセッサを指すときには符号２１を用いる。
【００２４】
プラットフォーム２−１〜２−８は、ＡＩ処理や画像処理等の演算処理を行なうコンピュータ環境である。ここで、図２は、情報処理システム１におけるプラットフォーム２のハードウェア構成を模式的に示す図である。
【００２５】
図２に示すように、プラットフォーム２は、各種情報を一時記憶するメモリ２２と、ストレージ２３とを有する。また、プラットフォーム２は、各種演算処理を実行するプロセッサ２１と、データ入力を受け付ける入力装置２４と、モニタ２５とを有する。また、プラットフォーム２は、記憶媒体からプログラム等を読み取る媒体読取装置２６と、各種装置と接続するためのインタフェース装置２７と、他の情報処理装置等と有線または無線により接続するための通信装置２８とを有する。また、符号２１〜２８の各構成は、バス２９に接続される。
【００２６】
入力装置２４は、例えば、プラットフォーム２の管理者から操作情報等の各種情報の入力を受け付ける。モニタ２５は、例えば、表示画面等の各種画面を表示する。インタフェース装置２７は、例えば複数のカメラ５０（監視カメラ：図９参照）、印刷装置等が接続される。カメラ５０は、画像データを生成するデータ生成装置である。なお、データ生成装置は、カメラ５０に限定されず、データを生成する各種の装置（例えば音声データを生成するマイク）であればよい。
【００２７】
メモリ２２はＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ２２のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２２上のソフトウェアプログラムは、プロセッサ２１に適宜読み込まれて実行される。また、メモリ２２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２８】
ストレージ２３は、ハードディスクドライブ（Hard  Disk  Drive：ＨＤＤ）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（Storage  Class  Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。ストレージ２３には各種ソフトウェアプログラムが記憶される。
【００２９】
プロセッサ２１は、プラットフォーム２全体を制御する。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、例えばＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）、ＧＰＵ（Graphics  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ２１は、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００３０】
プラットフォーム２においては、プロセッサ２１がメモリ２２やストレージ２３に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【００３１】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ２２やストレージ２３に記憶されている必要はない。例えば、プラットフォーム２の媒体読取装置２６が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム２が読み出して実行するようにしてもよい。プラットフォーム２が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム２がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【００３２】
図３は、情報処理システム１におけるプラットフォーム２のソフトウェア構成を例示する図である。なお、図３中においては、便宜上、プラットフォーム２−１〜２−３のソフトウェア構成のみを図示する。
【００３３】
図３に例示する情報処理システム１において、プラットフォーム２−１は、一般的なＰＣ（Personal  Computer）システムであり、Windows（登録商標）をＯＳ（Operating  System）とする。プラットフォーム２−１は、このＯＳ上において、アプリケーションである店舗管理プログラムを実行する。
【００３４】
プラットフォーム２−２、２−３は、組込みシステムであり、それぞれLinux（登録商標）をＯＳとする。プラットフォーム２−２、２−３は、このＯＳ上において、ＡＩ処理にかかる分散処理プログラムを実行する。
【００３５】
各プラットフォーム２には、ブリッジドライバ２０が備えられている。プラットフォーム２は、このブリッジドライバ２０を介してＰＣＩｅブリッジコントローラ３および他のプラットフォーム２との間で通信を行なう。なお、ブリッジドライバ２０による通信方法については後述する。
【００３６】
各プラットフォーム２は、プロセッサ２１およびメモリ（物理メモリ）２２を備え、プロセッサ２１がメモリ２２に格納されたＯＳや各種プログラム、ドライバ等を実行することでそれぞれの機能を実現する。
【００３７】
上述したように、各プラットフォーム２に備えられるプロセッサ２１は、互いに違うベンダによって提供されるものであってもよい。図１に示す例においては、少なくとも一部のプラットフォーム２（例えば、プラットフォーム２−７）に複数のＲＣを有するプラットフォーム（例えば、Intel社のx86プロセッサ）が用いられてもよい。
【００３８】
また、各プラットフォーム２は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
【００３９】
プラットフォーム２において、メモリ２２の記憶領域の一部は、図８を用いて後述する如く、プラットフォーム２間（プロセッサ２１間）において転送されるデータが一時的に格納される通信バッファとして用いられる。
【００４０】
［ＰＣＩｅブリッジコントローラ］
ＰＣＩｅブリッジコントローラ３は、複数のプラットフォーム２−１〜２−８間におけるデータ等の通信を実現する。
【００４１】
図４は、情報処理システム１におけるＰＣＩｅブリッジコントローラ３のハードウェア構成を模式的に示す図である。
【００４２】
ＰＣＩｅブリッジコントローラ３は、例えば、８チャネルのＥＰを１チップ内に有する中継装置である。このＰＣＩｅブリッジコントローラ３は、図４に示すように、ＣＰＵ３１、メモリ３２、内部バス３３（インターコネクトバス）および複数（図４に示す例では８つ）のスロット３４−１〜３４−８を備える。
【００４３】
スロット３４−１〜３４−８には、それぞれＰＣＩｅの規格を満たすよう構成されたデバイスが接続される。特に、情報処理システム１においては、スロット３４−１〜３４−８のそれぞれにプラットフォーム２が接続される。
【００４４】
なお、以下、スロットを示す符号としては、複数のスロットのうち１つを特定する必要があるときには符号３４−１〜３４−８を用いるが、任意のスロットを指すときには符号３４を用いる。
【００４５】
なお、プラットフォーム２−１〜２−８のように、一つのスロット３４に対して一つのプラットフォーム２が接続されてもよいが、これに限るものではなく、複数（例えば、２つ）のスロット３４に対して一つのプラットフォーム２が接続されてもよく、種々変形して実施することができる。
【００４６】
一つのプラットフォーム２に対して複数のスロット３４をアサインすれば、このプラットフォーム２に広い通信帯域を用いた通信を行なわせることができる。
【００４７】
各スロット３４は、内部バス３３に接続されている。また、内部バス３３には、ＣＰＵ３１およびメモリ３２が接続されている。つまり、各スロット３４とＣＰＵ３１およびメモリ３２は、内部バス３３を介して相互に通信可能に接続されている。
【００４８】
メモリ３２は、例えば、ＲＯＭおよびＲＡＭを含む記憶メモリ（物理メモリ）である。メモリ３２のＲＯＭには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３２上のソフトウェアプログラムは、ＣＰＵ３１に適宜読み込まれて実行される。また、メモリ３２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００４９】
さらに、ＰＣＩｅブリッジコントローラ３においては、各スロットに対応させてレジスタ３５（メモリ領域：図８参照）が備えられる。レジスタ３５のＢＡＲ（Base  Address  Register）空間には、スロットごとに記憶領域が備えられる。すなわち、レジスタ３５のＢＡＲ空間にはスロット＃０〜＃７のそれぞれに対応する記憶領域が設けられている。
【００５０】
ＰＣＩｅブリッジコントローラ３においては、後述の如く、ＢＡＲ空間のスロットごとの記憶領域を用いてプラットフォーム２間のデータ転送を行なう。
【００５１】
ＣＰＵ３１は、ＰＣＩｅブリッジコントローラ３全体を制御する。ＣＰＵ３１は、マルチプロセッサであってもよい。なお、ＣＰＵ３１に代えてＭＰＵ、ＧＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのいずれか一つが用いられてもよい。また、ＣＰＵ３１は、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００５２】
そして、ＣＰＵ３１がメモリ３２に格納されたソフトウェアプログラムを実行することで、ＰＣＩｅブリッジコントローラ３におけるプラットフォーム２間（プロセッサ２１間）のデータ転送を実現する。
【００５３】
ＰＣＩｅブリッジコントローラ３は、プラットフォーム２間のデータ転送を高速化するためにＰＣＩｅを用い、図１に示すように、各プラットフォーム２に備えられるプロセッサ２１をそれぞれＲＣとして動作させ、デバイスとして動作するＥＰ間でデータ転送を実現する。
【００５４】
具体的には、情報処理システム１においては、各プラットフォーム２のプロセッサ２１を、データ転送インタフェースとしてのＰＣＩｅのＲＣとして動作させる。また、各プラットフォーム２（プロセッサ２１）に対して、ＰＣＩｅブリッジコントローラ３を、すなわち、各プラットフォーム２が接続されているスロット３４をＥＰとして動作させる。
【００５５】
ＰＣＩｅブリッジコントローラ３をプロセッサ２１に対してＥＰとして接続する手法としては、既知の種々の手法を用いて実現することができる。
【００５６】
例えば、ＰＣＩｅブリッジコントローラ３は、プラットフォーム２との接続時に、ＥＰとして機能することを示す信号を当該プロセッサ２１に通知することで、ＥＰとしてプロセッサ２１と接続する。
【００５７】
ＰＣＩｅブリッジコントローラ３においては、ＥＰｔｏＥＰ（End  Point  to  End  Point）でデータをトンネリングさせて、複数のＲＣにデータを転送する。プロセッサ２１間の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続され、１つのプロセッサ２１にデータ転送が集中しないときは、それぞれのプロセッサ２１間で並行してデータ転送できる。
【００５８】
図５は、ＰＣＩｅのレイヤ構成を示す図である。図５においては、プラットフォーム２−１のプロセッサＡとプラットフォーム２−２のプロセッサＢとの間で通信を行なう例を示す。
【００５９】
送信元のプラットフォーム２−１においては、ＲＣであるプロセッサＡにおいて生成されたデータが、ソフトウェア、トランザクション層、データリンク層および物理層（ＰＨＹ）に、順次、転送され、物理層においてＰＣＩｅブリッジコントローラ３の物理層に転送される。
【００６０】
ＰＣＩｅブリッジコントローラ３においては、物理層、データリンク層、トランザクション層およびソフトウェアに順次、転送され、送信先のプラットフォーム２のＲＣに対応するＥＰにトンネリングによりデータが転送される。
【００６１】
すなわち、ＰＣＩｅブリッジコントローラ３においては、ＥＰ間でデータをトンネリングさせることで、一のＲＣ（プロセッサ２１）から他のＲＣ（プロセッサ２１）にデータが転送される。
【００６２】
送信先のプラットフォーム２−２においては、ＰＣＩｅブリッジコントローラ３から転送されたデータが、物理層（ＰＨＹ）、データリンク層、トランザクション層およびソフトウェアに、順次、転送され、送信先のプラットフォーム２−２のプロセッサＢに転送される。
【００６３】
情報処理システム１において、プロセッサ２１間（プラットフォーム２間）の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続される。
【００６４】
ＰＣＩｅブリッジコントローラ３が有する８スロットのうちの一つに接続された特定のプロセッサ２１に対して複数の他のプロセッサ２１からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ２１間で並行してデータ転送してもよい。
【００６５】
例えば、プラットフォーム２−１のプロセッサＡに対して、プラットフォーム２−２のプロセッサＢおよびプラットフォーム２−３のプロセッサＣのそれぞれが通信しようとする場合には、ＰＣＩｅブリッジコントローラ３は、プロセッサＢ、Ｃの通信をシリアルに処理する。
【００６６】
ただし、プロセッサＡ−プロセッサＢ、プロセッサＣ−プロセッサＤ、プロセッサＥ−プロセッサＦのように、それぞれが異なるプロセッサ同士で通信し、特定のプロセッサに通信が集中しない場合には、ＰＣＩｅブリッジコントローラ３は、各プロセッサ２１間通信を並行して処理する。
【００６７】
図６は、情報処理システム１におけるプロセッサ２１−８（プロセッサＨ）からの他のプロセッサ２１の見え方を例示する図である。また、図７はプロセッサ２１−５（プロセッサＥ）からの他のプロセッサ２１の見え方を例示する図である。
【００６８】
各プロセッサ２１間で通信が行なわれている状態においても、各プロセッサ２１上のＯＳ（例えばWindowsのデバイスマネージャ）からは、ＰＣＩｅブリッジコントローラ３しか見えず、接続先の他のプロセッサ２１を直接管理する必要がない。すなわち、ＰＣＩｅブリッジコントローラ３のデバイスドライバでＰＣＩｅブリッジコントローラ３の先に接続されたプロセッサ２１を管理すればよい。
【００６９】
そのため、送信元、受信先それぞれのプロセッサ２１を動作させるためのデバイスドライバを準備する必要がなく、ＰＣＩｅブリッジコントローラ３のドライバでＰＣＩｅブリッジコントローラ３に対して通信処理を行なうだけでプロセッサ２１間の通信を行なうことができる。
【００７０】
［プロセッサ間のデータ転送方法］
次に、上述の如く構成された情報処理システム１におけるＰＣＩｅブリッジコントローラ３を介したプロセッサ２１間のデータ転送方法について説明する。
【００７１】
図８は情報処理システム１におけるＰＣＩｅブリッジコントローラ３を介したプロセッサ２１間のデータ転送方法を説明するための図である。図８に示す例においては、スロット＃０に接続されたプラットフォーム２−１からスロット＃４に接続されたプラットフォーム２−５にデータを転送する場合について説明する。
【００７２】
データ送信元のプラットフォーム２−１は、ソフトウェアプログラム等によって送信されるデータ（以下、送信データという場合がある。）を、プラットフォーム２−１に備えられるストレージ２３等からプラットフォーム２−１のレジスタ３５に格納する（符号Ｐ１参照）。なお、レジスタ３５は、通信バッファの一部であってもよい。レジスタ３５は、プラットフォーム２−１のそれぞれにメモリ２２等に同じ大きさで設けられた領域である。レジスタ３５は、スロット数に応じて分割されている。レジスタ３５の分割された記憶領域は、いずれかのスロットに対応付けられている。例えば、レジスタ３５内にＳｌｏｔ＃０で示す記憶領域は、Ｓｌｏｔ＃０に接続されたプラットフォーム２−１に対応付けられ、レジスタ３５内にＳｌｏｔ＃４で示す記憶領域は、Ｓｌｏｔ＃４に接続されたプラットフォーム２−５に対応付けられている。プラットフォーム２−１は、レジスタ３５のうち、送信先のスロットに割り当てられた領域（ここでは、Ｓｌｏｔ＃４）に送信データを格納する。
【００７３】
送信元のプラットフォーム２−１は、プラットフォーム２−１のレジスタ３５の記憶領域に基づいて、送信先のスロットを示すスロット情報と、送信先のレジスタ３５における分割領域内におけるアドレスを示すアドレス情報とを取得または生成する（符号Ｐ２参照）。
【００７４】
送信元のプラットフォーム２−１は、スロット情報と、アドレス情報と、送信データとを含む転送データをＰＣＩｅブリッジコントローラ３に渡す（符号Ｐ３参照）。これにより、ＰＣＩｅブリッジコントローラ３は、スロット情報に基づいてＥＰｔｏＥＰにより送信元のスロットと送信先のスロットとを接続することにより、転送データを送信先のプラットフォーム２−５へ転送する（符号Ｐ４参照）。
【００７５】
送信先のプラットフォーム２−５は、スロット情報及びアドレス情報に基づいて、送信先のプラットフォーム２−５の通信バッファ２２１に対応する記憶領域内のアドレス情報が示すアドレスの領域に送信データ（または転送データ）を格納する（符号Ｐ５参照）。
【００７６】
送信先のプラットフォーム２−５において、例えば、プログラムが、通信バッファ２２１に格納された送信データを読み出して、メモリ（ローカルメモリ）２２やストレージ２３に移動させる（符号Ｐ６、Ｐ７参照）。
【００７７】
以上のようにして、転送元のプラットフォーム２−１から転送先のプラットフォーム２−５にデータ（転送データ）が転送される。
【００７８】
このように、情報処理システム１においては、ＰＣＩｅブリッジコントローラ３において、当該ＰＣＩｅブリッジコントローラ３内のＥＰ間でデータ転送を媒介する。これにより、ＰＣＩｅブリッジコントローラ３に接続された複数のＲＣ（プロセッサ２１）間でのデータ転送を実現することができる。
【００７９】
すなわち、各プロセッサ２１をＰＣＩｅのＲＣとして独立動作させ、ＰＣＩｅブリッジコントローラ３において、それぞれのプロセッサ２１に接続するデバイスをＥＰとして接続し、ＥＰ間でデータ転送を行なう。これにより、デバイスドライバに起因する問題を回避し、高速データ転送を１つのシステムとして動作させることができる。
【００８０】
また、ＰＣＩｅの規格に適合したデータ通信機能を有してさえいれば異なるプロセッサ２１間でのデータ転送が可能となるため、デバイスドライバの有無や、サポートＯＳ等を気にすることなく使用するプロセッサ２１の選択肢を広げることが可能となる。
【００８１】
各プロセッサ２１はＥＰとなるＰＣＩｅブリッジコントローラ３を介して接続されるため、ＥＰの先のＲＣのデバイスドライバを追加する必要がない。従って、デバイスドライバの開発が不要であるとともに、デバイスドライバを追加することに起因する不具合が発生することもない。
【００８２】
［情報処理システム１が有している特徴的な機能］
次いで、プラットフォーム２−１〜２−７のストレージ２３にインストールされたＯＳおよびソフトウェアプログラムによりプロセッサ２１が実現する機能のうち、本実施形態の情報処理システム１が有している特徴的な機能について説明する。
【００８３】
図９は、情報処理システム１における機能を示す機能ブロック図である。なお、図９においては、ＰＣＩｅブリッジコントローラ３を省略している。また、図９において、矢印は主なデータの流れを示したものであり、矢印の無い部分でもデータの受け渡しは適宜行われる。
【００８４】
ところで、従来から、ハードウェアとしての複数のプロセッサを用いて、データ生成装置から出力されたデータに対して複数種類のタスクを分担して処理する技術がある。また、近年、機械学習手法であるディープラーニング（Deep  Learning）技術を利用した物体認識等のＡＩ（Artificial  Intelligence）処理による各種サービスが提供されつつある。そこで、以下では、複数種類のタスクとして、ＡＩ処理を構成する複数の個別ＡＩ処理の場合を例にとって説明する。
【００８５】
ここでは、プラットフォーム２−１〜２−７のうち、プラットフォーム２−２〜２−７が、機械学習、特にディープラーニング（Deep  Learning）技術を用いて、店舗等における監視のためのＡＩ処理にかかる分散処理プログラムを実行するものとする。
【００８６】
図９に示すように、プラットフォーム２−２〜２−７は、ＡＩ処理部１００を実現する。ＡＩ処理部１００は、カメラ５０から取得した画像データに対して、ディープラーニング技術を利用した人物の認識等のＡＩ処理を実行する。より詳細には、ＡＩ処理部１００は、店舗等における監視のために、人物特定処理、人物紐付け処理、人物分類処理などのＡＩ処理を、分散して実行する。
【００８７】
人物特定処理は、複数のカメラ５０で撮影された画像データから、人物そのものや人物を構成するパーツ、持ち物の種類とその検出座標を特定する処理である。１つ以上のプラットフォーム２が、人物特定処理を担当する第１のＡＩ処理部１０１を構成する。
【００８８】
人物紐付け処理は、特定した人物を示す情報を時系列の複数の画像データ間で紐付けていく（対応付ける）処理である。１つ以上のプラットフォーム２が、人物紐付け処理を担当する第２のＡＩ処理部１０２を構成する。
【００８９】
人物分類処理は、時系列で紐付けた人物を分類する処理である。１つ以上のプラットフォーム２が、人物分類処理を担当する第３のＡＩ処理部１０３を構成する。
【００９０】
一方、プラットフォーム２−１は、データ生成装置（カメラ５０）から出力されたデータ（画像データ）を処理するための複数種類のタスク（人物特定処理、人物紐付け処理、人物分類処理）のうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサ（プロセッサＢ〜Ｇ）と接続された情報処理装置の一例である。また、プラットフォーム２−１では、プロセッサ２１（図２）がストレージ２３（図２）等に記憶されている店舗管理プログラムをメモリ２２に展開して実行することで、各機能（図９の各部２０１〜２０６等）を実現する。また、上述のように、ＡＩ処理部１００による処理を行うハードウェアとして複数のプロセッサ（ここではプラットフォーム２−２〜２−７における合計６個のプロセッサＢ〜Ｇ）が備えられている。
【００９１】
プラットフォーム２−１は、複数のカメラ５０で撮影された画像データを、プラットフォーム２−２〜２−７に出力するとともに、複数のカメラ５０で撮影された画像データをモニタ２５に表示する。
【００９２】
図９に示すように、プラットフォーム２−１は、画像取得部２０１と、制御部２０２と、ＡＰＩ（Application  Programming  Interface）部２０３と、表示制御部２０４と、出力制御部２０５と、不審者判定部２０６と、記憶部２０７と、を備えている。
【００９３】
画像取得部２０１は、カメラ５０から画像データを取得し、取得した画像データをキューＱ１に順に蓄積する。
【００９４】
制御部２０２は、プラットフォーム２−１における処理を統括的に制御する。制御部２０２の詳細については後述する。
【００９５】
ＡＰＩ部２０３は、プラットフォーム２−１からプラットフォーム２−２〜２−７に対するデータ提供のためのインタフェースである。具体的には、ＡＰＩ部２０３は、出力制御部２０５から取得した画像データを第１のＡＩ処理部１０１に出力する。
【００９６】
表示制御部２０４は、出力制御部２０５等から取得した画像データ等をモニタ２５に表示する。
【００９７】
出力制御部２０５は、キューＱ１に蓄積された画像データをＡＰＩ部２０３や表示制御部２０４に出力する。
【００９８】
制御部２０２は、第１のＡＩ処理部１０１、第２のＡＩ処理部１０２、第３のＡＩ処理部１０３からそれぞれのＡＩ処理結果を取得する。ＡＩ処理結果は、例えば、ＪＳＯＮ（JavaScript（登録商標）  Object  Notation）形式でタイムスタンプが付されている。不審者判定部２０６は、制御部２０２から取得したＡＩ処理結果に基づいて、不審者を判定する。表示制御部２０４は、不審者判定部２０６から取得した判定結果等をモニタ２５に表示する。また、制御部２０２は、出力制御部２０５を制御する。
【００９９】
記憶部２０７は、例えば、図２に示すメモリ２２やストレージ２３に対応する記憶手段である。記憶部２０７は、処理性能テーブルＴ１（図１１）、処理量テーブルＴ２（図１２）、第１のカメラ情報テーブルＴ３（図１３）、ＡＩ処理パターンテーブルＴ４（図１４）などの各種データを記憶する。各テーブルＴ１〜Ｔ４の詳細については後述する。
【０１００】
ここで、図１０は、カメラ５０（図９）を設置した店舗の模式図である。図１０では、カメラ５０を、便宜上、カメラＣ１〜Ｃ８と表記している。図１０に示すように、店舗ＳＨに対して、８台のカメラＣ１〜Ｃ８が設置されている。例えば、カメラＣ１は、店舗ＳＨの出入口ＥＮの外側を撮影する位置に設置されている。
【０１０１】
図１１は、処理性能テーブルＴ１の例を模式的に示す図である。処理性能テーブルＴ１は、複数のプロセッサそれぞれの処理性能を示す情報の一例である。処理性能テーブルＴ１では、すべてのプロセッサＡ〜Ｈ（図１）の１秒当たりの処理性能が「１００」と設定されている。なお、以下において、画像データは８台のすべてのカメラ５０（Ｃ１〜Ｃ８）において３ｆｐｓ(frames  per  second)で生成されるものとする。
【０１０２】
図１２は、処理量テーブルＴ２の例を模式的に示す図である。処理量テーブルＴ２は、所定単位のデータを処理するタスクの種類ごとの処理量を示す情報の一例である。処理量テーブルＴ２では、解像度（Ｒ１＜Ｒ２＜Ｒ３）ごとに、タスク（タスク＃１（人物特定処理）、タスク＃２（人物紐付け処理）、タスク＃３（人物分類処理））ごとの処理量が設定されている。
【０１０３】
具体的には、解像度Ｒ１の場合の各タスクの処理量は、上から順に「５」、「３」、「５」と設定されている。また、解像度Ｒ２の場合の各タスクの処理量は、上から順に「１５」、「７」、「５」と設定されている。また、解像度Ｒ３の場合の各タスクの処理量は、上から順に「３０」、「１４」、「５」と設定されている。
【０１０４】
なお、タスク＃１とタスク＃２は、解像度が大きくなると、処理量が大きくなる。一方、タスク＃３は、解像度に関係なく、処理量が一定である。
【０１０５】
図１３は、第１のカメラ情報テーブルＴ３の例を模式的に示す図である。第１のカメラ情報テーブルＴ３は、複数のデータ生成装置それぞれに関して設けられている優先度を示す情報を含む情報の一例である。第１のカメラ情報テーブルＴ３では、カメラＣ１〜Ｃ８ごとに、フレームレート（ｆｐｓ）、解像度、第１ＡＩ処理パターン、第２ＡＩ処理パターン、優先度の各情報が設定されている。
【０１０６】
具体的には、フレームレートは、すべて「３」に設定されている。また、解像度は、すべて「Ｒ２」に設定されている。第１ＡＩ処理パターンは、すべて「ＡＩ＃１」（図１４で後述）に設定されている。第２ＡＩ処理パターンは、すべて「ＡＩ＃２」（図１４で後述）に設定されている。優先度は、上から順に「１」〜「８」と設定されている。
【０１０７】
図１４は、ＡＩ処理パターンテーブルＴ４の例を模式的に示す図である。ＡＩ処理パターンテーブルＴ４は、複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報の一例である。ＡＩ処理パターンテーブルＴ４では、ＡＩ処理パターンごとに、タスク＃１、タスク＃２、タスク＃３を実行するか否かが設定（「○」は実行。「×」は不実行。）されている。
【０１０８】
具体的には、「ＡＩ＃１」では、タスク＃１、タスク＃２、タスク＃３のいずれも実行するものと定義されている。また、「ＡＩ＃２」では、タスク＃１とタスク＃３は実行せず、タスク＃２だけ実行するものと定義されている。なお、「ＡＩ＃２」の場合のために、タスク＃２のプログラムの中にタスク＃１の簡易版プログラムを組み込んでおくことで、タスク＃１無しでのタスク＃２の実行を可能とすることができる。
【０１０９】
図９に戻って、制御部２０２は、記憶部２０７に記憶された各テーブルＴ１〜Ｔ４に基づいて、複数のプロセッサＢ〜Ｇ（プラットフォーム２−２〜２−７）それぞれに、複数種類のタスクのうちの１種類以上を割り当てる。また、制御部２０２は、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う。また、制御部２０２は、複数のプロセッサＢ〜Ｇそれぞれに、複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数のデータ生成装置から出力された複数のデータのうち少なくとも１つ以上と、を割り当てるようにしてもよい。
【０１１０】
また、制御部２０２は、各テーブルＴ１〜Ｔ４に基づいて、複数のデータ生成装置それぞれに対して複数の処理パターンのいずれかを決定することで、複数のプロセッサそれぞれに、複数種類のタスクのうちの１種類以上を割り当てるようにしてもよい。
【０１１１】
また、制御部２０２は、各テーブルＴ１〜Ｔ４に基づいて、優先度が高いデータ生成装置のデータほど、実行されるタスクの種類が多くなるように、複数のデータ生成装置それぞれに対して複数の処理パターンのいずれかを決定するようにしてもよい。
【０１１２】
ここで、プロセッサＢ〜Ｇへのタスクの割り当てに関する計算例について説明する。この計算は、制御部２０２によって実行される。まず、図１３の第１のカメラ情報テーブルＴ３を参照して、カメラＣ１〜Ｃ８のすべてについて、第１ＡＩ処理パターンである「ＡＩ＃１」（図１４）を適用することを考える。その場合、カメラＣ１〜Ｃ８のすべてについて、タスク＃１〜＃３が実行されることになる。
【０１１３】
そうすると、図１２の処理量テーブルＴ２も参照して、１秒間にタスク＃１に要する処理量は、３（ｆｐｓ）×８（カメラ台数）×１５（解像度Ｒ２での処理量）＝「３６０」となる。そして、プロセッサの１個当たりの処理性能が「１００」なので、プロセッサの必要数は４個となる。
【０１１４】
また、１秒間にタスク＃２に要する処理量は、３（ｆｐｓ）×８（カメラ台数）×７（解像度Ｒ２での処理量）＝「１６８」となる。したがって、プロセッサの必要数は２個となる。
【０１１５】
また、１秒間にタスク＃３に要する処理量は、３（ｆｐｓ）×８（カメラ台数）×５（解像度Ｒ２での処理量）＝「１２０」となる。したがって、プロセッサの必要数は２個となる。
【０１１６】
この場合、プロセッサの必要合計数は４個＋２個＋２個＝８個となり、プロセッサの利用可能数の６個よりも多いので、不可となる。
【０１１７】
そこで、図１３の第１のカメラ情報テーブルＴ３を参照して、カメラＣ１〜Ｃ８のうちの優先度の一番低いカメラＣ８について、第１ＡＩ処理パターンである「ＡＩ＃１」（図１４）ではなく、第２ＡＩ処理パターンである「ＡＩ＃２」（図１４）を適用することを考える。その場合、カメラＣ１〜Ｃ７についてタスク＃１〜＃３が実行され、カメラＣ８についてタスク＃２のみが実行されることになる。
【０１１８】
そうすると、図１２の処理量テーブルＴ２も参照して、１秒間にタスク＃１に要する処理量は、３（ｆｐｓ）×７（カメラ台数）×１５（解像度Ｒ２での処理量）＝「３１５」となる。したがって、プロセッサの必要数は４個となる。
【０１１９】
また、１秒間にタスク＃２に要する処理量は、３（ｆｐｓ）×８（カメラ台数）×７（解像度Ｒ２での処理量）＝「１６８」となる。したがって、プロセッサの必要数は２個となる。
【０１２０】
また、１秒間にタスク＃３に要する処理量は、３（ｆｐｓ）×７（カメラ台数）×５（解像度Ｒ２での処理量）＝「１０５」となる。したがって、プロセッサの必要数は２個となる。
【０１２１】
この場合、プロセッサの必要合計数は４個＋２個＋２個＝８個となり、プロセッサの利用可能数の６個よりも多いので、不可となる。
【０１２２】
そこで、さらに、図１３の第１のカメラ情報テーブルＴ３を参照して、カメラＣ８の次に優先度の一番低いカメラＣ７についても、第１ＡＩ処理パターンである「ＡＩ＃１」（図１４）ではなく、第２ＡＩ処理パターンである「ＡＩ＃２」（図１４）を適用することを考える。その場合、カメラＣ１〜Ｃ６についてタスク＃１〜＃３が実行され、カメラＣ７、Ｃ８についてタスク＃２のみが実行されることになる。
【０１２３】
そうすると、図１２の処理量テーブルＴ２も参照して、１秒間にタスク＃１に要する処理量は、３（ｆｐｓ）×６（カメラ台数）×１５（解像度Ｒ２での処理量）＝「２７０」となる。したがって、プロセッサの必要数は３個となる。
【０１２４】
また、１秒間にタスク＃２に要する処理量は、３（ｆｐｓ）×８（カメラ台数）×７（解像度Ｒ２での処理量）＝「１６８」となる。したがって、プロセッサの必要数は２個となる。
【０１２５】
また、１秒間にタスク＃３に要する処理量は、３（ｆｐｓ）×６（カメラ台数）×５（解像度Ｒ２での処理量）＝「９０」となる。したがって、プロセッサの必要数は１個となる。
【０１２６】
この場合、プロセッサの必要合計数は３個＋２個＋１個＝６個となり、プロセッサの利用可能数の６個と同じなので、可となる。
【０１２７】
ここで、プロセッサＢ〜Ｇへのタスクの割り当ての第１の例について説明する。ここでは、割り当ての基準として、例えば、各カメラからの１秒間における３フレームの画像データは同じプロセッサで処理することや、各プロセッサにおける処理量をバランスよくすること等を設定しておけばよい。図１５は、プロセッサＢ〜Ｇへのタスクの割り当ての第１の例を示す図である。なお、図１５において、カメラＣ１のデータに対するタスク＃１を「Ｃ１−１」と表し、他についても同様である。
【０１２８】
プロセッサＢに、「Ｃ１−１」と「Ｃ２−１」を割り当てる。プロセッサＣに、「Ｃ３−１」と「Ｃ４−１」を割り当てる。プロセッサＤに、「Ｃ５−１」と「Ｃ６−１」を割り当てる。
【０１２９】
プロセッサＥに、「Ｃ１−２」と「Ｃ２−２」と「Ｃ３−２」と「Ｃ４−２」を割り当てる。プロセッサＦに、「Ｃ５−２」と「Ｃ６−２」と「Ｃ７−２」と「Ｃ８−２」を割り当てる。プロセッサＧに、「Ｃ１−３」と「Ｃ２−３」と「Ｃ３−３」と「Ｃ４−３」と「Ｃ５−３」と「Ｃ６−３」と「Ｃ７−３」と「Ｃ８−３」を割り当てる。
【０１３０】
このようにして、データ生成装置から出力されたデータに対して複数種類のタスクを複数のプロセッサで分担して処理する場合に、各プロセッサにタスクを適切かつ容易に割り当てることができる。
【０１３１】
また、プロセッサＢ〜Ｇへのタスクの割り当ての第２の例について説明する。ここでは、割り当ての基準として、例えば、１つのカメラからの画像データをなるべく同じプロセッサで処理することや、各プロセッサにおける処理量をバランスよくすること等を設定しておけばよい。図１６は、プロセッサＢ〜Ｇへのタスクの割り当ての第２の例を示す図である。
【０１３２】
プロセッサＢに、「Ｃ１−１」と「Ｃ１−２」と「Ｃ１−３」と「Ｃ７−２（１フレーム分）」を割り当てる。プロセッサＣに、「Ｃ２−１」と「Ｃ２−２」と「Ｃ２−３」と「Ｃ７−２（１フレーム分）」を割り当てる。プロセッサＤに、「Ｃ３−１」と「Ｃ３−２」と「Ｃ３−３」と「Ｃ７−２（１フレーム分）」を割り当てる。
【０１３３】
プロセッサＥに、「Ｃ４−１」と「Ｃ４−２」と「Ｃ４−３」と「Ｃ８−２（１フレーム分）」を割り当てる。プロセッサＦに、「Ｃ５−１」と「Ｃ５−２」と「Ｃ５−３」と「Ｃ８−２（１フレーム分）」を割り当てる。プロセッサＧに、「Ｃ６−１」と「Ｃ６−２」と「Ｃ６−３」と「Ｃ８−２（１フレーム分）」を割り当てる。
【０１３４】
このようにして、データ生成装置から出力されたデータに対して複数種類のタスクを複数のプロセッサで分担して処理する場合に、各プロセッサにタスクを適切かつ容易に割り当てることができる。
【０１３５】
次に、図１７を参照して、情報処理装置としてのプラットフォーム２−１における処理について説明する。図１７は、情報処理装置としてのプラットフォーム２−１における処理の流れを示すフローチャートである。この処理は、例えば、情報処理システム１の環境構築時に実行される。
【０１３６】
まず、ステップＳ１において、プラットフォーム２−１の制御部２０２（以下、単に「制御部２０２」ともいう。）は、利用可能なプロセッサの数を決定する。例えば、図９に示すように、プラットフォーム２−２〜２−８のうち、プラットフォーム２−２〜２−７が利用可能となっていれば、利用可能なプロセッサの数を「６」と決定する。
【０１３７】
次に、ステップＳ２において、制御部２０２は、各プロセッサＢ〜Ｇに割り当てる個別ＡＩ処理（タスク＃１〜＃３）の決定処理を行う。ここで、図１８は、図１７のフローチャートのステップＳ２の処理の詳細の例を示すフローチャートである。
【０１３８】
ステップＳ１１において、制御部２０２は、すべてのカメラＣ１〜Ｃ８のデータに対して第１ＡＩ処理パターン「ＡＩ＃１」（図１４）を適用した場合に必要となるプロセッサの数を算出する。
【０１３９】
次に、ステップＳ１２において、制御部２０２は、ステップＳ１１で算出した数が、ステップＳ１で決定した利用可能数以下か否かを判定し、Ｙｅｓの場合はステップＳ１５に進み、Ｎｏの場合はステップＳ１３に進む。
【０１４０】
ステップＳ１３において、制御部２０２は、優先度の低い１つのカメラのデータに対して適用するＡＩ処理パターンを第２ＡＩ処理パターン「ＡＩ＃２」（図１４）に変更する。
【０１４１】
次に、ステップＳ１４において、制御部２０２は、ステップＳ１３で変更された条件で、必要となるプロセッサの数を算出し、ステップＳ１２に戻る。
【０１４２】
ステップＳ１５において、制御部２０２は、各プロセッサに割り当てる個別ＡＩ処理と個別ＡＩ処理すべきデータの数を決定する（図１５、図１６参照）。
【０１４３】
図１７に戻って、ステップＳ３において、制御部２０２は、ステップＳ２で決定した内容で、各プロセッサに個別ＡＩ処理と個別ＡＩ処理すべきデータを割り当てる（実装する）。
【０１４４】
次に、ステップＳ４において、制御部２０２は、利用可能なプロセッサの数が変更されたか否かを判定し、Ｙｅｓの場合はステップＳ２に戻り、Ｎｏの場合はステップＳ４に戻る。なお、利用可能なプロセッサの数が変更される場合とは、例えば、プロセッサが故障した場合や、メンテナンス等のためにプロセッサを抜き出した場合等である。
【０１４５】
このようにして、第１実施形態によれば、情報処理システム１において、複数のカメラ５０から出力された画像データに対して複数種類のタスク＃１〜＃３を複数のプロセッサＢ〜Ｇで分担して処理する場合に、情報処理装置であるプラットフォーム２−１は、各テーブルＴ１〜Ｔ４を用いて、各プロセッサにタスクを適切かつ容易に割り当てることができる。また、各プロセッサに、タスクの種類を割り当てるだけでなく、タスクを行う１つ以上のデータを具体的に割り当てることができる（図１５、図１６参照）。
【０１４６】
また、第１のカメラ情報テーブルＴ３を用いることで、すべてのカメラＣ１〜Ｃ８のデータについてタスクを実行することを前提にした上で、各プロセッサにタスクを適切かつ容易に割り当てることができる。具体的には、すべてのカメラＣ１〜Ｃ８のデータについて第１ＡＩ処理パターン「ＡＩ＃１」を適用する場合から計算を開始し、プロセッサが足りなければ、カメラＣ１〜Ｃ８のうち優先度の低いものから順番に、適用するＡＩ処理パターンを第２ＡＩ処理パターン「ＡＩ＃２」に変更して再計算すればよい。すべてのカメラＣ１〜Ｃ８のデータについてＡＩ処理を実行できるので、例えば、店舗における動線分析等に特に有効である。
【０１４７】
また、利用可能なプロセッサの数が変更された場合でも、各プロセッサに割り当てる個別ＡＩ処理の決定処理を再び行うことで、適切な割り当てを継続できる。
【０１４８】
（第２実施形態）
次に、第２実施形態について説明する。第１実施形態と同様の事項については、重複する説明を適宜省略する。第２実施形態は、第１実施形態と比較して、用いるカメラ情報テーブルが第１のカメラ情報テーブルＴ３（図１３）から第２のカメラ情報テーブルＴ５（図１９）に変更になる点で相違する。
【０１４９】
図１９は、第２実施形態における第２のカメラ情報テーブルＴ５の例を模式的に示す図である。第２のカメラ情報テーブルＴ５は、複数のデータ生成装置それぞれに関して設けられている優先度を示す情報を含む情報の一例である。第２のカメラ情報テーブルＴ５では、カメラＣ１〜Ｃ８ごとに、フレームレート（ｆｐｓ）、解像度、確定ＡＩ処理パターン、第１希望ＡＩ処理パターン、第２希望ＡＩ処理パターン、優先度の各情報が設定されている。
【０１５０】
具体的には、フレームレートは、すべて「３」に設定されている。また、解像度は、すべて「Ｒ２」に設定されている。
【０１５１】
確定ＡＩ処理パターンは、カメラＣ１、Ｃ２については「ＡＩ＃１」（図１４）で設定され、カメラＣ３〜Ｃ８については設定されていない。これは、カメラＣ１、Ｃ２について「ＡＩ＃１」（図１４）が設定されることは必須であることを示す。具体的には、例えば、カメラＣ１、Ｃ２で撮影される領域が、店舗の出入口や高額商品売場などの重要エリアである場合が考えられる。
【０１５２】
第１希望ＡＩ処理パターンは、カメラＣ１、Ｃ２については設定されておらず、カメラＣ３、Ｃ４については「ＡＩ＃１」（図１４）で設定され、カメラＣ５〜Ｃ８については「ＡＩ＃２」（図１４）で設定されている。
【０１５３】
第２希望ＡＩ処理パターンは、カメラＣ１、Ｃ２については設定されておらず、カメラＣ３、Ｃ４については「ＡＩ＃２」（図１４）で設定され、カメラＣ５〜Ｃ８については設定されていない。
【０１５４】
優先度は、上から順に「１」〜「８」と設定されている。
【０１５５】
そして、プラットフォーム２−１の制御部２０２は、各テーブルＴ１，Ｔ２，Ｔ４，Ｔ５に基づいて、複数のデータ生成装置それぞれに対して、優先度の高いものから順番に、複数の処理パターンのうち実行されるタスクの種類がなるべく多い処理パターンを決定することで、複数のプロセッサそれぞれに、複数種類のタスクのうちの１種類以上を割り当てる。
【０１５６】
つまり、この第２実施形態では、第１実施形態の場合と異なり、すべてのカメラＣ１〜Ｃ８のデータについてタスクを実行することを前提にしていない。具体的には、制御部２０２は、カメラＣ１〜Ｃ８について、優先度の高いものから順番に、第２のカメラ情報テーブルＴ５で設定されている範囲で、実行されるタスクの種類がなるべく多い処理パターンを決定する。したがって、カメラＣ１〜Ｃ８のうち、優先度の低いものはＡＩ処理されない場合もありえる。
【０１５７】
次に、図２０を参照して、図１７のフローチャートのステップＳ２の処理の詳細について説明する。図２０は、図１７のフローチャートのステップＳ２の処理の詳細の例を示すフローチャートである。
【０１５８】
ステップＳ２１において、制御部２０２は、カメラＣ１、Ｃ２に対して確定ＡＩ処理パターン「ＡＩ＃１」（図１４、図１９）を適用した場合に必要となるプロセッサの数を算出する。
【０１５９】
次に、ステップＳ２２において、制御部２０２は、ステップＳ２１で算出した数が、ステップＳ１で決定した利用可能数以下か否かを判定し、Ｙｅｓの場合はステップＳ２４に進み、Ｎｏの場合はステップＳ２３に進む。
【０１６０】
ステップＳ２３において、制御部２０２は、エラー出力して、処理を終了する。ここでエラー出力するのは、確定ＡＩ処理パターンを実行できないということは、第２のカメラ情報テーブルＴ５（図１９）の設定等が適切ではない可能性が高いからである。この場合、管理者は、エラー出力に対応して、第２のカメラ情報テーブルＴ５（図１９）の設定等を変更し、新たに図２０のフローチャートの処理を行うようにすればよい。
【０１６１】
ステップＳ２４において、制御部２０２は、第２のカメラ情報テーブルＴ５（図１９）を参照して、残りのカメラのうち優先度の高い１つのカメラのデータに対して第１希望ＡＩ処理パターンを適用した場合に必要となるプロセッサの数を算出する。
【０１６２】
次に、ステップＳ２５において、制御部２０２は、ステップＳ２４で算出した数が、ステップＳ１で決定した利用可能数以下か否かを判定し、Ｙｅｓの場合はステップＳ２４に戻り、Ｎｏの場合はステップＳ２６に進む。
【０１６３】
ステップＳ２６において、制御部２０２は、第２のカメラ情報テーブルＴ５（図１９）を参照して、第２希望ＡＩ処理パターンがあるか否かを判定し、Ｙｅｓの場合はステップＳ２７に進み、Ｎｏの場合はステップＳ２９に進む。
【０１６４】
ステップＳ２７において、制御部２０２は、第２希望ＡＩ処理パターンを適用した場合に必要となるプロセッサの数を算出する。
【０１６５】
次に、ステップＳ２８において、制御部２０２は、ステップＳ２７で算出した数が、ステップＳ１で決定した利用可能数以下か否かを判定し、Ｙｅｓの場合はステップＳ２４に戻り、Ｎｏの場合はステップＳ２９に進む。
【０１６６】
ステップＳ２９において、制御部２０２は、各プロセッサに割り当てる個別ＡＩ処理と個別ＡＩ処理すべきデータの数を決定する。
【０１６７】
このようにして、第２実施形態によれば、第１実施形態と比較して、以下のような作用効果を奏する。第１実施形態のようにすべてのカメラＣ１〜Ｃ８のデータについてタスクを実行することを前提にするのではなく、確定ＡＩ処理パターンの実行を優先することで、確定ＡＩ処理パターンをより確実に実行できる。
【０１６８】
例えば、店舗の出入口や高額商品売場などの重要エリアを撮影しているカメラのＡＩ処理を、所望のＡＩ処理パターン（例えば「ＡＩ＃１」）でより確実に実行することができるので、店舗における万引き対策等に特に有効である。
【０１６９】
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１７０】
例えば、図４に示す構成においては、ＰＣＩｅブリッジコントローラ３は８つのスロット３４−１〜３４−８を有しているが、これに限定されるものではなく種々変形して実施することができる。すなわち、ＰＣＩｅブリッジコントローラ３は７つ以下もしくは９つ以上のスロット３４を備えてもよい。
【０１７１】
また、上述の実施形態では、各部のＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、Ｉ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースのいずれであってもよい。
【０１７２】
Ｉ／Ｏインタフェースは、ポイント・ツー・ポイント接続ができ、データをパケットベースでシリアル転送可能な構成でよい。尚、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１または複数のポートを有するルート・コンプレックス、Ｉ／Ｏデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【０１７３】
また、例えば、図１２に示す処理量テーブルＴ２における解像度Ｒ２でＡＩ処理を行っている場合に、利用可能なプロセッサ数が減ったとき、扱う解像度を解像度Ｒ２から解像度Ｒ１に変更し、すべてのカメラ５０のデータについてＡＩ処理を実行できるようにしてもよい。その場合、ＡＩ処理に必要となるプロセッサ数は、解像度を解像度Ｒ２から解像度Ｒ１に変更するだけで、上述の実施形態と同様に計算できる。
【０１７４】
また、プラットフォーム２−２〜２−７を個別ＡＩ処理に用いる場合に、プロセッサの割り当てを決定するための情報処理装置としてプラットフォーム２−１を例に挙げて説明したが、これに限定されない。例えば、プラットフォーム２−２〜２−７のいずれかやプラットフォーム２−８が情報処理装置として動作してもよい。
【０１７５】
また、例えば、処理量テーブルＴ２（図１２）における各処理量の情報は、管理者が手動で設定してもよいし、あるいは、テストモード等でタスク（個別ＡＩ処理）を実行させてその処理結果から自動で設定するようにしてもよい。
【符号の説明】
【０１７６】
１        情報処理システム
２        プラットフォーム
３        ＰＣＩｅブリッジコントローラ
２１      プロセッサ
２２      メモリ
２３      ストレージ
２４      入力装置
２５      モニタ
２６      媒体読取装置
２７      インタフェース装置
２８      通信装置
５０      カメラ
１００    ＡＩ処理部
１０１    第１のＡＩ処理部
１０２    第２のＡＩ処理部
１０３    第３のＡＩ処理部
２０１    画像取得部
２０２    制御部
２０３    ＡＰＩ部
２０４    表示制御部
２０５    出力制御部
２０６    不審者判定部
２０７    記憶部
【図１】
2020177343.tif 000003
【図２】
2020177343.tif 000004
【図３】
2020177343.tif 000005
【図４】
2020177343.tif 000006
【図５】
2020177343.tif 000007
【図６】
2020177343.tif 000008
【図７】
2020177343.tif 000009
【図８】
2020177343.tif 000010
【図９】
2020177343.tif 000011
【図１０】
2020177343.tif 000012
【図１１】
2020177343.tif 000013
【図１２】
2020177343.tif 000014
【図１３】
2020177343.tif 000015
【図１４】
2020177343.tif 000016
【図１５】
2020177343.tif 000017
【図１６】
2020177343.tif 000018
【図１７】
2020177343.tif 000019
【図１８】
2020177343.tif 000020
【図１９】
2020177343.tif 000021
【図２０】
2020177343.tif 000022
【手続補正書】
【提出日】令和1年9月17日(2019.9.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備え、
前記制御部は、
前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる場合に、
前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当て、その際、
複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する、
情報処理装置。
【請求項２】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備え、
前記制御部は、
前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当て、その際、
前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる、
情報処理装置。
【請求項３】
前記複数種類のタスクは、ＡＩ（Artificial  Intelligence）処理を構成する複数の個別ＡＩ処理である、請求項１または請求項２に記載の情報処理装置。
【請求項４】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと、
前記複数のプロセッサと接続された情報処理装置と、を備えた情報処理システムであって、
前記情報処理装置は、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備え、
前記制御部は、
前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる場合に、
前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当て、その際、
複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する、
情報処理システム。
【請求項５】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと、
前記複数のプロセッサと接続された情報処理装置と、を備えた情報処理システムであって、
前記情報処理装置は、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備え、
前記制御部は、
前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当て、その際、
前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる、
情報処理システム。
【請求項６】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと接続された情報処理装置としてのコンピュータのためのプログラムであって、
前記コンピュータを、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部であって、
前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる場合に、
前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当て、その際、
複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する前記制御部、
として機能させるためのプログラム。
【請求項７】
データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと接続された情報処理装置としてのコンピュータのためのプログラムであって、
前記コンピュータを、
前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部であって、
前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当て、その際、
前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる前記制御部、
として機能させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の第１態様に係る情報処理装置は、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備える。前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる場合に、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当て、その際、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、情報処理装置は、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能なハードウェアとしての複数のプロセッサと接続された情報処理装置であって、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備える。前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当て、その際、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明の第２態様に係る情報処理システムは、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと、前記複数のプロセッサと接続された情報処理装置と、を備えた情報処理システムであって、前記情報処理装置は、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部を備える。前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる場合に、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当て、その際、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する。
また、前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当て、その際、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるようにしてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本発明の第３態様に係るプログラムは、データ生成装置から出力されたデータを処理するための複数種類のタスクのうち、いずれか１種類以上を割り当て可能な、ハードウェアとしての複数のプロセッサと接続された情報処理装置としてのコンピュータのためのプログラムであって、前記コンピュータを、前記複数のプロセッサそれぞれの処理性能を示す情報と、所定単位の前記データを処理する前記タスクの種類ごとの処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるとともに、利用可能な前記プロセッサの数が変更された場合、当該割り当てを再び行う制御部、として機能させる。前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当てる場合に、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当て、その際、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報に基づいて、前記優先度が高い前記データ生成装置のデータほど、実行される前記タスクの種類が多くなるように、複数の前記データ生成装置それぞれに対して前記複数の処理パターンのいずれかを決定する。
また、前記制御部は、前記処理性能を示す情報と、前記処理量を示す情報と、に基づいて、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上と、当該１種類以上のタスクを行うデータとして、複数の前記データ生成装置から出力された複数の前記データのうち少なくとも１つ以上と、を割り当て、その際、前記処理性能を示す情報と、前記処理量を示す情報と、前記複数種類のタスクのうち実行する種類がそれぞれ定義された複数の処理パターンを示す情報と、複数の前記データ生成装置それぞれに関して設けられている優先度を示す情報と、に基づいて、複数の前記データ生成装置それぞれに対して、前記優先度の高いものから順番に、前記複数の処理パターンのうち実行される前記タスクの種類がなるべく多い前記処理パターンを決定することで、前記複数のプロセッサそれぞれに、前記複数種類のタスクのうちの１種類以上を割り当てるようにしてもよい。