JP2011203935A - 分散処理システム、制御部、演算部、分散処理方法、及びプログラム - Google Patents

分散処理システム、制御部、演算部、分散処理方法、及びプログラム Download PDF

Info

Publication number
JP2011203935A
JP2011203935A JP2010069735A JP2010069735A JP2011203935A JP 2011203935 A JP2011203935 A JP 2011203935A JP 2010069735 A JP2010069735 A JP 2010069735A JP 2010069735 A JP2010069735 A JP 2010069735A JP 2011203935 A JP2011203935 A JP 2011203935A
Authority
JP
Japan
Prior art keywords
unit
processing
control
information
calculation
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.)
Withdrawn
Application number
JP2010069735A
Other languages
English (en)
Inventor
Takayuki Nakatomi
高之 中富
Masanori Kubo
允則 久保
Arata Shinozaki
新 篠崎
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.)
Olympus Corp
Original Assignee
Olympus Corp
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 Olympus Corp filed Critical Olympus Corp
Priority to JP2010069735A priority Critical patent/JP2011203935A/ja
Priority to US13/070,644 priority patent/US20110238960A1/en
Priority to CN2011100744018A priority patent/CN102200958A/zh
Publication of JP2011203935A publication Critical patent/JP2011203935A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • 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
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】柔軟で効率的な演算部間の処理経路や演算部の実行内容を変更することができる分散処理システム等を提供すること。
【解決手段】制御部と複数の演算部とを有する分散処理システムであって、制御部と演算部との間で制御情報を送受信する制御ラインと、制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御ラインと独立したデータラインと、を有し、演算部は、モニタされた演算部に関する処理コンテキストと、制御ラインから受信した処理内容変更条件と、が合致したときに、制御ラインから受信した処理内容変更情報を用いて演算部の処理内容を変更する処理内容変更部を備えることを特徴とする。
【選択図】図3

Description

本発明は、分散処理システム、このシステムのための制御部、演算部、分散処理方法、及びプログラムに関するものである。
マルチプロセッサシステム、特にn個(nは整数)の演算部をリング状等につないだデータフロー型マルチプロセッサシステムにおいては、データは単一方向に流れ、各演算部で処理される。
図42は、従来のリング状につないだデータフロー型マルチプロセッサシステムの構成を示している。制御部(コントロール・ユニット)CUとn個の演算部(プロセッシング・エレメント)PE1、PE2・・・PEnとがリング状に接続されている。データは、制御部CUから演算部PE1へ送信された後、演算部PE1で処理される。加工後のデータは、演算部PE2に送られる。演算部PE2以降についても演算部PE1と同様にデータ処理が行われる。そして、最後の演算部PEnから制御部CUにデータが送信される。
例えば、特許文献1には、処理ユニット自身が接続経路を分岐するための判断を行うプロセッサー装置が開示されている。
また、特許文献2には、第3のデータ転送手段を通して処理ユニットの各々に対して設定データを供給することにより、処理ユニットの接続状態や処理内容を変更させるシステムが示されている。このシステムによれば、処理ユニットがデータ処理をするのと独立して、処理ユニットの接続経路や処理内容を変更させることができる。
特開平6−162228号公報 国際公開第WO03/023602号
特許文献1に提案されているシステムにおいては、分岐制御パラメータレジスタ群のネットワーク分岐制御情報がデータパケット自身に含まれている。このため、処理すべきデータと処理ユニットの処理経路が独立していない。この結果、データの処理途中に経路を変更するといった柔軟な経路変更ができない。
特許文献2に提案されているシステムにおいては、制御部が、予め用意した接続経路や処理内容を供給する。そして、処理ユニットは、それに沿った接続情報や実行内容へと変更するに過ぎない。すなわち、経路変更は、制御部が決定するものであり、演算部自身が決定することができない。そのため、経路変更には演算部から制御部への割り込みをかけることで実現する必要がある。この結果、経路変更を効率的に行えない問題がある。
本発明は、上記に鑑みてなされたものであって、柔軟で効率的な演算部間の処理経路や演算部の実行内容を変更することができる分散処理システム、この分散処理システムのための制御部、演算部、分散処理方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明の分散処理システムは、制御部と複数の演算部とを有する分散処理システムであって、
制御部と演算部との間で制御情報を送受信する制御ラインと、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御ラインと独立したデータラインと、を有し、
演算部は、
モニタされた演算部に関する処理コンテキストと、制御ラインから受信した処理内容変更条件と、が合致したときに、制御ラインから受信した処理内容変更情報を用いて演算部の処理内容を変更する処理内容変更部を備えることを特徴とする。
また、本発明の好ましい態様によれば、処理内容変更情報は演算パラメータであり、
処理内容変更条件は演算パラメータの変更に関する演算パラメータ変更条件であって、
処理内容変更部は、処理コンテキストと演算パラメータ変更条件とが合致したときに、処理内容変更部が保持する演算パラメータを変更することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部から受信した制御情報に基づいて、演算パラメータと演算パラメータ変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更される可能性のある動的制御情報を受信することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更されることのない静的制御情報を受信することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の処理状態によって決定される演算パラメータ変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、演算部はさらに、
データラインとデータ処理部の入出力を選択的に接続するデータ受信部およびデータ送信部の少なくともいずれか一方を備えており、
処理内容変更情報はデータライン情報であり、
処理内容変更条件はデータライン情報の変更に関するデータライン変更条件であって、
処理内容変更部は処理コンテキストがデータライン変更条件と合致したときに、データライン情報を用いて、データラインとデータ処理部の入出力の接続を変更することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の入力元および/または出力先の演算部を、他の異なる演算部へ変更するデータライン情報を生成および/または選択し、
処理内容変更部は処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて入力元および/または出力先を変更することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の出力先として、他の異なる演算部を追加するデータライン情報を生成および/または選択し、
処理内容変更部は、処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて出力先に演算部を追加し、
複数の演算部に演算結果を出力するデータ送信部を備えることが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の入力元として、他の異なる演算部を追加するデータライン情報を生成および/または選択し、
処理内容変更部は、処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて入力元に演算部を追加し、
複数の演算部からの入力を統合するデータ受信部を備えることが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の入力元および/または出力先の演算部の少なくともひとつを削除するデータライン情報を生成および/または選択し、
処理内容変更部は、処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて入力元および/または出力先を削除することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部から受信した制御情報に基づいて、データライン情報とデータライン変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更される可能性のある動的制御情報を受信し、
制御部は、動的制御情報に基づいて、データライン情報とデータライン変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更されることのない静的制御情報を受信し、制御部は静的制御情報に基づいて、データライン情報とデータライン変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の入力元によって出力先を決定するデータライン変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の演算結果によって出力先を決定するデータライン変更条件を生成および/または選択することが望ましい。
また、本発明の好ましい態様によれば、制御部は、演算部の入力元、出力先、入力元と出力先の接続関係の少なくとも一つをデータライン情報として送信し、
演算部は、データライン情報に基づいて入力元、出力先、入力元と出力先の接続関係の少なくとも一つを変更することが望ましい。
また、本発明の好ましい態様によれば、処理コンテキストは演算部に関する情報であることが望ましい。
また、本発明の好ましい態様によれば、処理コンテキストは演算部と異なる他の演算部に関する情報であることが望ましい。
また、本発明の好ましい態様によれば、制御部は、制御情報の一部または全部を保持しており、制御情報を選択し、演算部に制御情報を送信することが望ましい。
また、本発明の好ましい態様によれば、制御部は、ユーザから制御情報の一部または全部に関する情報を受信し、
制御部は、ユーザからの情報に基づいて、演算部に制御情報を送信することが望ましい。
また、本発明の制御部は、2つ以上の演算部を制御して分散処理を行わせる、演算部に接続された制御部であって、
演算部との間で制御情報を送受信する制御ラインと、
制御部に接続された演算部に処理対象データを送信する、制御ラインと独立したデータラインと、を有し、
演算部は、
制御ラインを介して演算部へ処理内容変更条件と処理内容変更情報を送信することを特徴とする。
また、本発明の演算部は、2つ以上の演算部に接続され、分散処理を行なう演算部であって、
制御部との間で制御情報を送受信する制御ラインと、
制御部及び演算部のうち少なくとも一方から処理対象データを送信される、制御ラインと独立したデータラインと、を有し、
演算部は、
入力されたデータを処理して出力するデータ処理部と、
制御ラインを介して、処理内容変更条件と処理内容変更情報を受信し、処理に関する情報コンテキストをモニタしており、
処理に関する情報と処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更部と、を備えることを特徴とする。
また、本発明の分散処理方法は、
制御部と複数の演算部とを有する分散処理方法であって、
制御部と演算部との間で制御情報を送受信する制御情報送受信工程と、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御情報送受信工程と独立した処理対象データ送信工程と、を有し、
演算部において、入力されたデータを処理して出力するデータ処理工程と、
制御情報送受信工程により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする工程と、
処理コンテキストと処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更工程と、を備えることを特徴とする。
また、本発明のプログラムは、
制御部と複数の演算部とを有する分散処理方法をコンピュータに実行させるプログラムであって、
制御部と演算部との間で制御情報を送受信する制御情報送受信機能と、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御情報送受信機能と独立した処理対象データ送信機能と、を有し、
演算部において、入力されたデータを処理して出力するデータ処理機能と、
制御情報送受信機能により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする機能と、
処理コンテキストと処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更機能と、をコンピュータに実行させる。
本発明によれば、柔軟で効率的な演算部間の処理経路や演算部の実行内容を変更することができる分散処理システム、この分散処理システムのための制御部、演算部、分散処理方法およびプログラムを提供できるという効果を奏する。
(a)は制御部と演算部間との制御ラインをリング型でつなぐ構成を示す図である。(b)は制御部と演算部間との制御ラインをバス型でつなぐ構成を示す図である。(c)は制御部と演算部間の制御ラインをスター型でつなぐ構成を示す図である。 (a)は本実施例においてデータラインと制御ラインを分けた構成を示す図である。(b)はデータと制御情報を共用のラインで演算部へ送る従来の構成を示す図である。 分散処理システムの機能ブロック図である。 演算部PEにおけるデータの処理フローを示すフローチャートである。 制御情報に対する処理の流れを示すフローチャートである。 制御情報の構造を示す図である。 演算部に受信ポートを作成するシーケンスを示す図である。 (a)は、演算部PEが受信ポート作成コマンドを受信する前の状態を示す図である。(b)は、演算部PEが受信ポート作成コマンドを受信した後の状態を示す図である。 演算部に送信ポートを作成するシーケンスを示す図である。 (a)は、演算部PEが送信ポート作成コマンドを受信する前の状態を示す図である。(b)は、演算部PEが送信ポート作成コマンドを受信した後の状態を示す図である。 データラインの生成を説明する図である。 一つの演算部PEに着目したとき、受信ポートと送信ポートとの関連付けができていない状態を示す図である。 送信ポートと受信ポートとを関連付けるシーケンスを説明する図である。 (a)は演算部PEが送受信関連付けコマンドを受信する前の状態を示す図である。(b)は、演算部PEが送受信関連付けコマンドを受信した後の状態を示す図である。 送信ポート変更について説明する図である。 演算部設定コマンドのシーケンスを説明する図である。 演算部情報取得コマンドのシーケンスを説明する図である。 実施例1にかかる分散処理システムの構成を示す図である。 実施例1のデータライン構成手順を示す図である。 実施例1のデータライン構成手順を示す他の図である。 実施例1のデータライン構成手順を示すさらに他の図である。 演算部PE0における、データ処理の手順を示すフローチャートである。 実施例2にかかる分散処理システムの概略構成を示す図である。 実施例2において、カメラ画像から3並列で物体検出を行うときのシステム構築例を示す図である。 実施例2において、制御コマンド実行後の構成を示す図である。 実施例2において、制御コマンド実行後の構成を示す図である。 実施例2において、制御コマンド実行後の構成を示す図である。 実施例2において、制御コマンド実行後の構成を示す図である。 実施例2において、制御コマンド実行後の構成を示す図である。 実施例2において、データラインを動的変更するための制御コマンド実行後の構成を示す図である。 実施例2の変形例1において、制御コマンド実行後の構成を示す図である。 実施例2の変形例1において、制御コマンド実行後の構成を示す図である。 実施例2の変形例1において、制御コマンド実行後の構成を示す図である。 実施例2の変形例2において、制御コマンド実行後の構成を示す図である。 実施例2の変形例2において、制御コマンド実行後の構成を示す図である。 実施例2の変形例3において、負荷の大きい処理を前処理と本処理に分けて迂回するデータラインを構築する例を説明する図である。 実施例3において、特定の演算部PE3に制御情報CTINFを送ることを説明する図である。 (a)は、演算部PEからの制御情報を基に、制御部CUを介して演算部PEの演算パラメータを変更する例を説明する図である。(b)は、送信ビットレートと係数kとの関係を示す図である。 制御部から演算部に演算パラメータ変更条件を送信して、処理する時のフローチャートである。 DCTと量子化用の演算部PE3のデータ処理の手順を示すフローチャートである。 演算部PE間で制御情報を送り、制御部CUを介さないで演算パラメータを変更する構成を説明する図である。 従来のデータフロー型の分散処理システムの構成を示す図である。
以下に、本発明にかかる分散処理システム、この分散処理システムのための制御部、演算部、分散処理方法およびプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、本実施形態にかかる分散処理システムの基本的な形態について説明する。分散処理システムの詳細は、図3を用いて詳述する。図1(a)、(b)、(c)は、本発明にかかる分散処理システムの基本形態の例を示している。
分散処理システムを構成する制御部CUと複数の演算部、例えば10個の演算部PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、PE8、PE9(以下、適宜、「PE0〜PE9」、「PE0等」、「PE」という)とが制御ラインで接続されている。接続の形態は、図1(a)で示すようなリング型、図1(b)に示すバス型、図1(c)に示すスター型のいずれの形態でも良い。
図1(a)〜(c)に示す状態では、演算部PE0〜PE9間を結ぶデータ送受信用のラインは構築されていない。そこで、制御部CUから制御ラインを通じて以下に掲げる制御情報により演算部PE0〜PE9間のデータラインを構築する。
制御ラインを流れる情報を制御情報と呼ぶ。制御部CUから演算部PE0等へ送る制御情報には、(1)データライン構築コマンド、(2)演算部設定コマンド、(3)演算部情報取得コマンドがある。
上述の(1)データライン構築コマンドは、さらに以下のコマンドに分類できる。
(1−1)受信ポート作成コマンド;
(1−2)送信ポート作成コマンド;
(1−3)送受信ポート関連付けコマンド;
(1−4)受信ポート削除コマンド;
(1−5)送信ポート変更コマンド;
(1−6)送信ポート削除コマンド.
データライン構築コマンドの内容がデータライン情報である。それらが演算部で実行され、演算部で生成された送受信ポート、送受信ポート関連付けもデータライン情報である。これら(1)データライン構築コマンド、(2)演算部設定コマンド、(3)演算部情報取得コマンドを組み合わせることで、複数の演算部PE0〜PE9へデータを送信すること、複数の演算部PE0〜PE9から処理結果を受信することを可能かつ動的に変更可能とすることができる。
制御部CUは、上記コマンドを制御ラインで各演算部PE0〜PE9に向けて送信して、データを流すラインを作成していく。演算部PE0〜PE9には、一意となるID番号が割り当てられている。制御情報は、ID番号とともに、各演算部PE0〜PE9へ送られる。
以下、例えば、演算部PE0とは、ID=0の演算部PEを指すこととする。
例えば、制御ラインが図1(c)で示したリング型のとき、演算部PE0〜PE9は、自分宛のコマンドのみ受理する。また、演算部PE0〜PE9は、自分宛てではないコマンドは、次の演算部PEへ転送する。
受信ポート作成コマンドを受信した演算部PEは、データ受信用のポートを作成する。演算部PEは作成した受信ポートの識別子である受信ポート番号を制御部CUへ返す。
送信ポート作成コマンドを受信した演算部PEは、データ送信用のポートを作成する。演算部PEは作成した送信ポートの識別子である送信ポート番号を制御部CUへ返す。
送信ポート作成コマンドは、パラメータとして、このポートから送られたデータを受信する演算部PEのIDと受信ポート識別子を含んでいる。また、送信ポート作成コマンドは、ブロードキャストで送信すること、ユニキャストで送信することも指定する。
送受信ポート関連付けコマンドは、対象となる演算部PEの作成済みの受信ポート識別子と送信ポート識別子を指定する。これにより、対象となる演算部PEのどの受信ポートからデータが入って、演算部PEで処理して、どの送信ポートから送信するかを関連付ける。
そして、上述のコマンドを、制御部CUから各演算部PEに適切に送信することで任意のデータラインを構築することができる。
図2(a)は、本実施形態にかかる分散処理システムにおいて、データラインと制御ラインを分けた構成を示している。データDTは、データラインDTLNにより、演算部PE0から演算部PE1へ送られる。制御情報CTINFは、制御ラインCTLNにより、演算部PE0から演算部PE1へ送られる。データラインDTLNと制御ラインCTLNとは相互の独立した別個のラインである。
図2(b)は、データDTと制御情報CTINFとを演算部PEへ送る従来の構成を示している。データDTと制御情報CTINFとは、データラインDTLNと制御ラインCTLNとが共用のラインにより、演算部PE0から演算部PE1へ送られる。
本実施例の構成により、演算部PE0から演算部PE1へデータDTが連続して送られるとき、演算部PE0のデータ処理の負荷とは無関係に、即ち独立して制御ラインCTLNを通して制御情報CTINFを特定の演算部PE1に届けることができる。
制御部CUは、データラインDTLNを流れているデータ量や負荷の大きさに応じてデータ処理中に新たなデータラインDTLNを生成できる。後述の演算部設定コマンドと演算部情報取得コマンドと併用することでより最適なデータラインで処理することができる。
演算部設定コマンドは、演算部PEの動作を変更するために使用する。例えば、処理のアルゴリズムやパラメータの動的変更、データの内容や処理結果によって送信先を切り替える条件を設定できる。これにより、処理内容に応じて演算部PEがデータの送信先を変更できる。
ここで、処理のアルゴリズムの動的変更の例は、高速で低精度のアルゴリズムと、低速で高精度のアルゴリズムとの切り替えることなどである。また、パラメータの動的変更の例は、計算式の係数を変更することなどである。
演算部情報取得コマンドは、制御部CUが演算部PEの情報を取得するために使う。制御部CUから指定した演算部PEに対して演算部情報取得コマンドを送る。次に、その送信した演算部PEの情報が制御部CUに返る。
演算部PEの情報の例、即ち処理コンテキストの例としては、最大受信レート[Bytes/sec]、受信レート、最大送信レート、送信レート、最大消費電力、消費電力、最大処理能力、処理負荷などがある。
制御部CUは、演算部情報取得コマンドにより、上述の例のような演算部PEの通信の状態または処理状態をモニタすることができる。制御部CUから演算部PEに対して演算部設定コマンドを送信し、それを受信した演算部PEがその演算部設定コマンドに従って処理コンテキストを送信するようにしてもよい。この場合、演算部PEが取得した自分自身の処理コンテキストを他の演算部PEに送信することで、演算部PE間でそれぞれの処理コンテキストをモニタすることができる。つまり、この演算部設定コマンドを用いれば、演算部PEは制御部CUによらず、演算部PE間で能動的に処理コンテキストをモニタすることができる。
また、制御部CUは、必要な場合、情報を取得した演算部PEとは異なる別の演算部PEを使うようにデータラインDTLNを切り替えることができる。
図3は、分散処理システムの機能ブロック図である。制御部CUと、複数の演算部PE0、PE1、PE2、PE3、PE4とは、スター型の実線で示す制御ラインCTLNで接続されている。また、破線でデータの流れを示している。
演算部PEの参照符号の数値、例えば演算部PE0の「0」は、演算部PEを識別するIDである。つまり、演算部PE0とは、ID=0の演算部を示している。同様に、演算部PE1とは、ID=1の演算部を示している。
図中左側の2つの演算部PE0、PE1から、中央の演算部PE3にデータが送信される。データは、中央の演算部PE2で処理され、右側の2つの演算部PE3、PE4に送信される。
ここで、データラインDTLNは、制御部CUから、各演算部PE0〜PE4に送る制御情報に基づいて構築される。このため、初期状態では、データラインDTLNは、接続されていない。
本発明の効果を得るためには、データDTと制御情報CTINFの受信、処理は独立に行えることが望ましい。
データDTと制御情報CTINFを同時に受信する可能性があり、データ処理の流れと制御情報処理の流れで同じ処理ブロックにアクセスすることも発生するため排他制御されなければならない。
処理内容変更部は、制御ラインCTLNから受信した制御情報を処理する。処理の内容は受信した制御情報により異なる。処理内容変更部は、制御情報の内容により、処理変更部自身が持つ設定を保持する領域、データ受信部、データ送信部を設定する。
また、処理内容変更部は、データ処理の際に必要なパラメータを提供する。処理内容変更部は、制御情報に応答するだけでなく、演算部PEの処理状態などを能動的に制御ラインCTLNに送信して、制御部CUや他の演算部PEに演算部PE自身の情報を送ることもできる。
データ受信部は、データラインDTLNを介してデータを受信する。データ受信部は、受信したデータを、受信ポート番号とともにデータ処理部に引き渡す。また、データ受信部は、処理内容変更部からの指示に基づいて、受信ポートRPを設定する。データ受信部は、受信ポートRPに到着するデータのバイト数、最近の受信レート[Bytes/sec]などの統計情報もモニタし、処理内容変更部の要求に応じて、処理内容変更部へこれらの収集した情報を提供する。
データ処理部は、受け取ったデータに対して処理を行い、データ送信部へ結果を引き渡す。その際、処理内容変更部を参照して、処理に必要なパラメータなどを取得する。データ処理時にかかわる情報が処理内容変更情報である。処理内容変更情報は、データライン情報(例えばどの受信ポートから受けてどの送信ポートへ送るか)や演算パラメータ(例えば演算時の計算式の係数、閾値)である。データ処理部は、処理を行った後、送信ポート番号と共に処理結果をデータ送信部に引き渡す。データ処理部は、データ処理時には処理に関する情報をモニタし、処理内容変更部の要求に応じて、これらモニタした情報を提供する。ここで、処理に関する情報とは、例えば、負荷、演算回数/secなどである。
データ送信部は、指定された送信ポートTPを通してデータを送信する。また、データ送信部は、処理内容変更部からの指示に基づいて、送信ポートTPを設定する。データ送信部は、送信ポートTPから送信するデータのバイト数、最近の送信レート[Bytes/sec]などの統計情報もモニタし、処理内容変更部の要求に応じて、処理内容変更部へこれらのモニタした情報を提供する。
図4は、演算部PEにおけるデータの処理フローを示すフローチャートである。
まず、ステップS100において、データ受信部は、受信待ち状態にある。
ステップS101において、データがデータ受信部の受信ポートに届くと、データ受信部はデータを受信する。
ステップS103において、データ処理部は、データ処理を行う前に、処理内容変更部を参照し処理のパラメータやアルゴリズムを決定する。ここで、処理のパラメータとは、例えば計算式の係数などその他のものをいう。
ステップS102において、処理内容の決定後、データが処理される。
ステップS104において、データ処理部が処理結果を送信する前に、処理内容変更部は送信先を決定する。例えば、演算結果が所定の閾値以上のときは送信ポート番号0へ送信すること、演算結果が所定の閾値以下のときは送信ポート番号1へ送信することということが決定される。
ステップS105において、送信先が決まると、データ処理部は、データ送信部に送信ポート番号とデータを送り、データが送信される。
図5は、制御情報に対する処理の流れを示すフローチャートである。
ステップS110において、処理内容変更部は、制御情報の受信待ち状態にある。
ステップS111において、処理内容変更部は、制御情報が届くと制御情報を受信する。
ステップS112において、処理内容変更部は、制御情報処理では、制御情報の内容を解析し、いずれの制御コマンドであるかを判定する。
処理内容変更部は、判定した結果に基づいて、コマンドに応じた処理を行う。
ステップS113において、制御情報処理が終わると、処理内容変更部は、結果を制御ラインCTLNを通じて制御部CUに返す。
次に、各制御コマンドを説明する。
図6は、制御情報の構造を示している。制御部CUが演算部PEに送る制御情報は、宛先と、制御コマンドと、パラメータとから成る。
宛先には、この制御情報を届けたい相手となる演算部PEのIDが入っている。制御コマンドは、数値で識別される。パラメータの内容は、制御コマンドに依存する。
処理結果を送信された次の演算部PEから最後の演算部PEにいたるまで、処理結果が転送される。そして、最後の演算部PEは、処理結果を制御部CUに返す。
なお、制御部CUと演算部PEとの制御ラインの接続は、上述したようにリング型に限定されることなく、バス型、スター型でも良い。さらに、図3では、5つの演算部PE0〜PE4で説明しているが、演算部の数量も制限されるものではない。
このように、制御情報CTINFを流す制御ラインCTLNを通して、制御部CUから以下に詳述する制御情報を適切なパラメータを与えて演算部PEに送信する。これにより、上記のようなデータを流すデータラインDTLNを構築する。
次に、受信ポート作成について説明する。
図7は、演算部PEに受信ポートを作成するシーケンスを示す図である。
シーケンス120において、制御部CUは受信ポートを作成したい演算部PEへ受信ポート作成コマンドを送信する。受信ポート作成コマンドは制御ラインを通じて送られる。
演算部PEの処理内容変更部は、制御ラインから受信ポート作成コマンドが送られてくるのを待ち受けている。そして、シーケンス121において、演算部PEの処理内容変更部は、制御部CUからのコマンドを受信する。
シーケンス122において、演算部PEの処理内容変更部は、受信ポート作成コマンドの内容に基づいて、データ受信部に作用し、受信ポートを作成させる。
シーケンス123において、受信ポートの作成に成功したとき、処理内容変更部は、作成された受信ポート番号を結果として制御部CUに送信する。受信ポートの作成に失敗したとき、処理内容変更部は、エラーを示す数値を制御部CUに送信する。
制御部CUは、受信ポート作成コマンドを送信した後は、演算部PEからの結果待ち受け状態にある。そして、シーケンス124において、制御部CUは、演算部PEからの結果を受信する。
表1に受信ポート作成コマンドの内容を掲げる。
(表1)
パラメータ:作成するポート数
返り値:成功時、作成された受信ポート番号
失敗時、エラーを表す数値(番号)
受信ポート番号は、演算部PE内で一意な値である。例えばTCP(Transmission Control Protocol)で通信するときはポート番号が割り当てられ、ハードウェアのときは空いているI/Oポートのアドレスなどが割り当てられる。または、それらを抽象化した数値でもよい。ここでは0から付番される数値とする。
図8(a)、(b)は、3個の受信ポートを作成する過程を説明する図である。図8(a)は、演算部PEが受信ポート作成コマンドを受信する前の状態を示す図である。図8(b)は、演算部PEが受信ポート作成コマンドを受信した後の状態を示す図である。
受信ポート作成が成功すると、図8(b)に示すように、演算部PEに3個の受信ポートRP0、RP1、RP2が作成される。
なお、以下全ての実施例を説明する図面において、演算部PEの受信ポートは、白い丸で示している。また、受信ポートの近傍に受信ポート番号を併記している場合もある。例えば、図8(b)の受信ポートRP0の近傍に記載されている数値「0」は、受信ポート番号を示している。
次に、送信ポート作成について説明する。
図9は、演算部PEに送信ポートを作成するシーケンスを示す図である。
シーケンス130において、制御部CUは送信ポートを作成したい演算部PEへ送信ポート作成コマンドを送信する。
シーケンス131において、演算部PEの処理内容変更部は、送信ポート作成コマンドを受信する。
シーケンス132において、演算部PEの処理内容変更部は、送信ポート作成コマンドの内容に基づいてデータ送信部に作用し、送信ポートを作成させる。
シーケンス133において、送信ポートの作成に成功したとき、処理内容変更部は、作成された送信ポート番号を結果として制御部CUに送信する。送信ポートの作成に失敗したとき、処理内容変更部は、エラーを制御部CUに送信する。
シーケンス134において、制御部CUは演算部PEからの結果を受信する。
表2に送信ポート作成コマンドの内容を掲げる。
(表2)
パラメータ:送信先演算部PEのID、受信側の受信ポート番号、ブロードキャストで送信するかを表すフラグ
返り値:成功時、作成された送信ポート番号
失敗時、エラーを表す番号
図10(a)、(b)は、2個の送信ポートを作成する過程を説明する図である。図10(a)は、演算部PEが送信ポート作成コマンドを受信する前の状態を示す図である。図10(b)は、演算部PEが送信ポート作成コマンドを受信した後の状態を示す図である。
送信ポート作成が成功すると、図10(b)に示すように、演算部PEに2個の送信ポートTP0、TP1が作成される。
なお、以下全ての実施例を説明する図面において、演算部PEの送信ポートは、黒い丸で示している。また、送信ポートの近傍に送信ポート番号を併記している場合もある。例えば、図10(b)の送信ポートTP0の近傍に記載されている数値「0」は、送信ポート番号を示している。
送信ポート作成時には、作成された送信ポートからの送信を受信する演算部PEのIDと受信ポート番号も指定する。これにより、作成された送信ポートからのデータを受信する演算部PEと受信ポート番号とが決まる。また、ブロードキャストを指定すると、複数の演算部PEへ同時にデータを送ることができる。
図11は、データラインの生成を説明する図である。ID=1の演算部PEの送信ポート番号0の送信ポートTP0から、ID=2の演算部PEの受信ポート番号0の受信ポートRP0に対してデータを送信する例である。この場合、送信ポートTP0から、受信ポートRP0へデータラインDTLNが結ばれる。
次に、送受信ポート関連付けについて説明する。
上述したように、ある演算部PE1の送信ポートと、他の演算部PE2の受信ポートをつなげただけの状態では、一つの演算部PEに着目したいとき、どの受信ポートのデータがどの送信ポートから出て行くのかは決まっていない状態である。したがって、この状態では、まだデータを流すことはできない。
図12は、一つの演算部PEに着目したいとき、どの受信ポートのデータがどの送信ポートから出て行くのかは決まっていない状態を示している。具体的には、受信ポートP0で受信したデータが処理された後、送信ポートTP0、TP1、TP2のいずれに対して送られるかの関連付けは未定義の状態である。
したがって、ある受信ポートから入ってきたデータが処理され、どの送信ポートから送信されるか、すなわち、受信ポート番号と送信ポート番号を関連付ける必要がある。
図13は、送信ポートと受信ポートとを関連付けるシーケンスを説明する図である。
シーケンス140において、制御部CUは、送受信ポート関連付けをしたい演算部PEへ送受信ポート関連付けコマンドを送信する。送受信ポート関連付けコマンドは制御ラインCTLNを通じて送られる。
演算部PEの処理内容変更部は、制御ラインからコマンドが送られてくるのを待ち受けている。シーケンス141において、演算部PEの処理内容変更部は、制御部CUからのコマンドを受信する。
シーケンス142において、演算部PEの処理内容変更部は、送受信ポート関連付けコマンドの内容に基づいて、パラメータが正しいか否かなどを確認し、関連付けを設定する。
シーケンス143において、演算部PEの処理内容変更部は、受信ポートと送信ポートとの関連付けに成功したとき、または失敗したとき、それぞれの結果を表すコードを制御部CUに送信する。
制御部CUは、送受信ポート関連付けコマンド送信後は演算部PEからの結果待ち受け状態にある。シーケンス144において、制御部CUは、演算部PEからの結果を受信する。
表3に送受信ポート関連付けコマンドの内容を掲げる。
(表3)
パラメータ:受信ポート番号、送信ポート番号(複数可)
返り値:成否(数値で表現したエラーコードなど)
図14(a)、(b)は、送受信関連付けの例を説明する図である。図14(a)は、演算部PEが送受信関連付けコマンドを受信する前の状態を示す図である。図14(b)は、演算部PEが送受信関連付けコマンドを受信した後の状態を示す図である。
図14(a)に示すように、演算部PEは、受信ポート番号PE0、PE1と、送信ポート番号TP0、TP1、TP2と、を有する。この状態では、受信ポートと送信ポートの間の関連付けは未定義である。
ここで、送受信ポート関連付けコマンドにより、受信ポート番号RP0から送信ポート番号TP1へ入出力を関連付ける、また、送受信ポート関連付けコマンドにより、受信ポート番号RP1から送信ポート番号TP2へ入出力を関連付ける。
この結果、図14(b)に示すように、受信ポートRP0から入力され、処理されたデータは、送信ポートTP1へ送られる。また、受信ポートRP1から入力され、処理されたデータは、送信ポートTP2へ送られる。このようにして、演算部PE内の受信ポートと送信ポートとが関連付けられる。
また、すでに関連付けを設定してある受信ポート番号を指定すると上書きされる。さらに、受信ポート番号に送信ポート番号が関連付けられていないときは何も送信しない。
次に、受信ポート削除について説明する。
受信ポート削除コマンドを受信した演算部PEは、演算部PEに作成した受信ポートを削除する。また、受信ポートを削除すると、削除された受信ポートに設定されていた送受信ポート関連付けも削除される。
表4に受信ポート削除コマンドの内容を掲げる。
(表4)
パラメータ:受信ポート番号(複数可)
返り値:成否(数値で表現したエラーコードなど)
次に、送信ポート変更について説明する。
図15は、送信ポート変更について説明する図である。ID=1の演算部PEの送信ポート番号0の送信ポートTP0の送信先を、ID=2の演算部PEの受信ポート番号0の受信ポートRP0から、ID=3の演算部PEの受信ポート番号0の受信ポートRP0に変更する例である。
このように、送信ポート変更コマンドは、既存の送信ポートの送信先を変更するために用いる。
送信ポート変更コマンドの内容を表5に掲げる。
(表5)
パラメータ:既存の送信ポート番号、変更後の送信先演算部PEのID、受信側の受信ポート番号、ブロードキャストで送信するかを表すフラグ、
返り値:成功時、変更された送信ポート番号(パラメータで与えた送信ポート番号と同じ)
失敗時、エラーを表す番号
次に、送信ポート削除について説明する。
送信ポート削除コマンドは、演算部PEに作成した送信ポートを削除するときに用いる。送信ポートを削除すると、削除された送信ポートに設定されていた送受信ポート関連付けも削除される。
送信ポート削除コマンドの内容を表6に掲げる。
(表6)
パラメータ:送信ポート番号(複数可)
返り値:成否(数値で表現したエラーコードなど)
次に、演算部設定について説明する。
演算部PE設定コマンドは、演算部PEの動作を変更するために用いる。パラメータの内容は演算部PEに依存する。例えばDCT(Discrete Cosine Transform、離散コサイン変換)を行う演算部PEには、高速で低精度なアルゴリズムと、低速で高精度なアルゴリズムとが実装されている。この2つのアルゴリズムを状況に合わせて切り替えられるように構成されているとする。
演算部設定コマンドにより、いずれのアルゴリズムを使用するかを設定できる。そして、いずれのアルゴリズムを使用するかを設定するために演算部PE設定コマンドが使われる。また、量子化を行う演算部PEでは、制御部から量子化テーブルを与えられるように構成されている。各演算部PEにおいて、どのような種類の設定が可能であるかは各演算部PEの仕様書に記述されている。制御部CUは、各演算部PEの仕様書の記述を認識した状態で、演算部設定コマンドで設定する。
図16は、演算部設定コマンドのシーケンスを説明する図である。
シーケンス150において、制御部CUは、演算部(PE)設定コマンドを、演算部PEに対して送信する。
シーケンス151において、演算部PEは、演算部(PE)設定コマンドを受信する。
シーケンス152において、演算部PEの処理内容変更部は、受信した演算部設定コマンドが処理可能であれば処理する。
シーケンス153において、演算部PEは、結果を表す返り値を制御部CUに送信する。
制御部CUは、演算部設定コマンド送信後は演算部PEからの結果待ち受け状態にある。シーケンス154において、制御部CUは、演算部PEからの結果を受信する。
表7に演算部設定コマンドの内容を掲げる。
(表7)
パラメータ:演算部PE依存
返り値:演算部PE依存
例えば、量子化を実行する演算部PEにおいては、演算部設定コマンドとして、量子化テーブル、テーブルに乗算する係数、テーブル値を決定するための基準値などが送られてくる。処理内容変更部は、これらをメモリに記録しておき、データ処理時に利用できるようにする。演算部PEは、処理結果を制御部CUへ送信する。
次に、演算部情報取得について説明する。
演算部情報取得コマンドは、制御部CUが演算部PEの状態を取得するために用いる。制御部CUは、取得した演算部PEの情報に基づいて、データラインDTLNを変更することができる。制御部CUは、演算部情報取得コマンドにより、以下の表8に掲げる情報を取得できる。
Figure 2011203935
図17は、演算部情報取得コマンドのシーケンスを説明する図である。
シーケンス160において、制御部CUは、演算部情報取得コマンドを、演算部PEに対して送信する。
シーケンス161において、演算部PEは、演算部情報取得コマンドを受信する。シーケンス162において、演算部PEの処理内容変更部は、受信した演算部情報取得コマンドが処理可能であれば処理する。
シーケンス163において、演算部PEは、返り値である情報を制御部CUに送信する。
制御部CUは、演算部情報取得コマンド送信後は演算部PEからの結果待ち受け状態にある。シーケンス164において、制御部CUは、演算部PEからの結果、すなわち演算部情報を受信する。
表9に演算部情報取得コマンドの内容を掲げる。
(表9)
パラメータ:なし
返り値:情報
ここで、処理能力の単位は、演算部PEに依存する。例えば、DCTを実行する演算部PEの場合の処理能力の単位は、1秒間に何回DCTを実行できるかを表すDCT/secになる。
また、制御部CUは、演算部情報取得コマンドで取得した情報に基づいてデータラインDTLNを変更することができる。
また、同じ処理をする演算部PEが複数設けられており、処理開始後に、より最大処理能力が高い演算部PEが利用できるようになった場合、制御部CUはデータラインDTLNを変更する。これにより、より最大処理能力が高い演算部PEを利用するようにさせることもできる。
また、処理開始後に、より低消費電力の演算部PEが追加された場合は、消費電力が少なくなるように、より低消費電力の演算部PEを使用することもできる。
演算部情報取得コマンドに対する応答がない場合、制御部CUは、応答しない演算部PEは故障したと判断する。そして、制御部CUは、別の演算部PEを使うようにデータラインDTLNを変更することもできる。
ここでは、制御部CUが能動的に演算部情報取得コマンドを演算部PEへ送って演算部PEの情報を取得することを示した。これに限られず、演算部PEが能動的に制御ラインIFLNに自分の情報を流すようにすることもできる。
制御部CUは、演算部設定コマンドにより、演算部PEにおいて、定期的あるいは変化が生じたときに、演算部PEの情報を制御ラインCTLNに送信するように設定しておくことできる。これにより、演算部PEは能動的に自分の情報を制御ラインCTLNに送信するようになる。
(実施例1)
次に、本発明の実施例1にかかる分散処理システムについて説明する。本実施例は、静止画像を表示するためのデータライン構成例である。
図18は、実施例1にかかる分散処理システムの構成を示す図である。図に示すような演算部PE0、PE1、PE2、PE3、PE4の構成を構築するために、データライン構築コマンドを使いデータラインを構築する手順を説明する。
表10に各演算部PE0、PE1、PE2、PE3、PE4の仕様を掲げる。
Figure 2011203935
表10に仕様を掲げる演算部PE0〜PE4を、図18に示すように接続する。これにより、演算部PE0へ入力した任意のフォーマットの静止画像を、演算部PE4に接続されたモニタ20へ表示するデータラインを構築する。
演算部PE0は、入力された静止画10のフォーマットを解析して形式の種類を判定する。判定は、画像を構成するデータのヘッダに基づいて行う。演算部PE0は、判定結果に応じて、後続の演算部PEを選択し画像を送る。
判定できる形式は、以下の3つの形式のみとする。
・JPEG(Joint Photographic Experts Group)
・Gif(Graphic Interchange Format)
・PNG(Portable Network Graphics)
演算部PE1、演算部PE2、演算部PE3は入力された画像を伸張し、RGB各8ビットで表現されたビットマップに変換し、演算部PE4に送る。
演算部PE4は、入力されたビットマップ形式の画像をモニタ20に表示する。演算部PE0に対して未知の画像が入力されたときは、そのまま演算部PE4に送られる。ただし、演算部PE4は、受信するデータとしてビットマップを期待(想定)している。このため、この場合は、モニタ20に静止画は正しく表示されない。
制御部CUは、各演算部PE0〜PE4のIDと、その提供する機能、演算部PE0〜PE4が処理できるデータの形式、出力の形式の情報は事前に取得して知っているとする。
事前に各演算部PE0〜PE4の情報を取得する手順としては、制御部CUの内部または外部にデータベースが設けられており、このデータベースにこれら情報が記録されていて読み出す形式でもよい。また、制御部CUを操作するユーザがこれら情報を知っており、ユーザが制御部CUに情報を与えてもよい。さらに、制御ラインに演算部PEが接続されると、演算部PEが制御部CUにその演算部PEの情報を送るように構成してもよい。加えて、制御部CUが演算部PE情報取得コマンドを各演算部PE0〜PE4へ送り、演算部PE0からPE4が応答を返す方法でもよい、なお、この場合、宛先としてブロードキャストを表す特別な値、例えば全ビットが1であること、が必要となる。
表11に、静止画像表示のデータラインを構築するとき、制御部CUから演算部PE0〜PE4に送信する制御情報を掲げる。表10において、コマンド欄における、「受信」は受信ポート作成コマンド、「送信」は送信ポート作成コマンド、「関連」は送受信ポート関連付けコマンド、「設定」は演算部設定コマンドをそれぞれ意味する。
Figure 2011203935
図19は、番号1−4のコマンド実行後の構成を示している。制御部CUは、番号1の受信ポート作成コマンドを演算部PE4に対して送る。これにより、演算部PE4に4つの受信ポートRP0、RP1、RP2、RP3が作成される。
また、制御部CUは、演算部PE1、PE2、PE3に、送信ポート作成コマンドを送る。これにより、各演算部PE1〜PE3に、送信ポートTP0が作成される。
図20は、番号5−11のコマンド実行後の構成を示している。制御部CUは、番号5、6、7の受信ポート作成コマンドを、それぞれ演算部PE1、PE2、PE3に対して送る。これにより、演算部PE1、PE2、PE3に、それぞれ受信ポートRP0が作成される。
また、制御部CUは、番号8、9、10、11の送信ポート作成コマンドを演算部PE0に送る。これにより、演算部PE0に、送信ポートTP0、TP1、TP2、TP3が作成される。
図21は、番号12−15のコマンド実行後の構成を示している。制御部CUは、番号12、13、14の送受信ポート関連付けコマンドを、それぞれ演算部PE1、PE2、PE3に送る。これにより、各演算部PE1、PE2、PE3において、受信ポートRP0と送信ポートTP0とが関連付けられる。
制御部CUは、番号15の演算部設定コマンドを、演算部PE0に送る。これにより、演算部PE0において、判定結果を示す数値が設定される。
図22は、演算部PE0における、データ処理の手順を示すフローチャートである。
演算部PE0には、事前に制御部CUから演算部設定コマンドによりフォーマットと送信ポート番号の対応表を設定しておく。
演算部PE0のデータ処理部に任意の画像を与える。この画像は、制御部CUが与えること、または演算部PE0のメモリから与えること等いずれの方法でもよい。
まず、画像データがデータ受信部からデータ処理部へ送られてくる。最初は、ステップS171において、フォーマットの判定結果を「不明」にしておく。
ステップS172において、データ処理部は画像のヘッダ部を読み出す。
ステップS173において、データ処理部は、ヘッダ部を参照する。データ処理部は、例えばJPEGであれば、データは16進数で0xff、0xd8で始まっているなどの判定を行う。
判定結果が、判定できる形式であるJPEG、Gif、PNGのいずれかと一致する場合、ステップS174において、データ処理部は、画像のフォーマットを決定する。
ステップS175において、フォーマットが決定された場合、データ処理部は、処理内容変更部に対して、決定されたフォーマットに対する送信ポート番号を問い合わせる。
ステップS176において、処理内容変更部は、事前に演算部設定コマンドにより設定されたフォーマットと、送信ポート番号対応表とに基づいて、送信ポート番号をデータ処理部へ返す。
ステップS177において、送信ポート番号対応表の内容を掲げる。例えば、JPEGであると判定されたときは、処理内容変更部は、送信ポート番号1をデータ処理部へ返す。
ステップS178において、データ処理部はデータ送信部に対して、受信したデータと送信ポート番号を送信する。
また、判定結果が、判定できる形式であるJPEG、Gif、PNGのいずれかと一致しない場合、ステップS179において、データ処理部は、画像のフォーマットが不明であると判定する。そして、ステップS175へ進む。
演算部PE1、演算部PE2、演算部PE3は入力された画像を伸張し、ビットマップ形式にして演算部PE4に送信する。演算部PE4は受信したビットマップを表示する。
演算部PE0に関してみると、データを受信した段階では、データの行き先は決定していない。そして、上述したように、演算部PE0で処理した結果により行き先の演算部PE1、PE2、PE3が変わる。これにより、予め必要となるデータラインを作っておき、データの流れるデータラインを演算部PE0が判断して変えることができる。
本実施例においては、分散処理システムにおいて、演算部PEに対してデータラインDTLNに処理対象データが流されている間もデータ処理を妨げることなく、制御部CUからデータラインDTLNと独立した制御ラインCTLNに制御情報、例えば処理内容変更条件を送信する。そして、処理内容変更条件が満たされた時、制御部CUからの指示なしで、演算部PEが処理内容、例えば出力先およびパラメータを決定、変更できる。
従来技術では、予め演算部PEの処理回路が決定されている。処理回路の決定が制御部CUから与えられる。このような、従来技術に比較して、本実施例は、処理内容変更条件をあらかじめ設定しておく。これにより、演算部PEが自律的に、演算部PE自身の判断で、処理内容を変更することができる。このため、本実施例では、より柔軟にシステムの変更ができる。したがって、データの処理中に条件を変更できない、という問題を解消できる。また、割り込みによる処理のブロックが発生することもない。さらに、制御部CUを介してデータラインを変更するといった無駄も発生しない。この結果、効率もよくすることができる。
(実施例2)
次に、本発明の実施例2に係る分散処理システムについて説明する。
図23は、実施例2にかかる分散処理システムの概略構成を示す図である。本分散処理システムは、画像処理を行うためのシステムである。
制御部CUに対して、10個の演算部PE0〜PE9が、リング状に接続されている。
表12に、各演算部PE0〜PE9の仕様を掲げる。演算部PE0は、カメラの機能を有する。演算部PE1は、RGB→YCbCr変換の機能を有する。演算部PE2は、ダウンサンプリングを行う。演算部PE3は、DCT(Discrete Cosine Transform、離散コサイン変換)と量子化とを行う。演算部PE4は、ハフマン符号化を行う。演算部PE5は、JPEG画像生成を行う。演算部PE6は、物体位置描画を行う。演算部PE7、PE8、PE9は、それぞれ物体検出を行う。
Figure 2011203935
図24は、本実施例において、カメラ画像から3並列で物体検出を行うときのシステム構築例を示す図である。データラインDTLNは、図中、破線で示すように構築される。
本実施例では、カメラ30は画像の撮影を行う。3つの物体検出用の演算部PE7、PE8、PE9は、検出した物体の存在判定を撮影画像に重畳させて、JPEGで圧縮する。モニタ20、処理の結果を表示する。
演算部PE0に接続されたカメラ30で撮影した画像が演算部PE1から演算部PE5を通るにつれてJPEG圧縮される。そして、演算部PE5に接続されたモニタ20に表示される。
また、カメラ画像は、JPEG圧縮の前に演算部PE7〜演算部PE9に対して、ブロードキャストされる。演算部PE7〜演算部PE9は、入力画像中に所定の物体が存在するか否かを検出する。検出する対象物が入力画面内に存在する場合、その座標を出力する。出力するものは、例えば中心位置(x、y)と半径、左上の(x、y)座標と、右下(x、y)座標などである。また、検出する対象物は、人の顔52、車51、その他の物53など任意に設定できる。
演算部PE6は、物体位置描画を行う。演算部PE6は、カメラ30からの画像に演算部PE7、PE8、PE9から送られてくる検出された物体位置、本例では人の顔52を線で描画(枠で囲うなど)して重ね合わせ、次の演算部PE1に送信する。
演算部PE1〜PE5までは、JPEG圧縮処理の流れを機能単位で分割したものである。そして、演算部PE5において、JPEGが生成され、モニタ20に表示される。
表13に、3つに並列に構築されている物体検出のデータラインを構築するとき、制御部CUから各演算部PEに送信する制御コマンドを掲げる。なお、簡単のため、制御ラインは省略してある。
Figure 2011203935
Figure 2011203935
図25は、番号1のコマンド実行後の構成を示している。制御部CUは、番号1の受信ポート作成コマンドを演算部PE6に対して送る。これにより、演算部PE6に4つの受信ポートRP0、RP1、RP2、RP3が作成される。
図26は、番号2、3、4のコマンド実行後の構成を示している。制御部CUは、番号2、3、4の受信ポート作成コマンドを、それぞれ演算部PE7、PE8、PE9に対して送る。これにより、演算部PE7、PE8、PE9に、それぞれ受信ポートRP0が作成される。
図27は、番号5、6、7、8のコマンド実行後の構成を示している。制御部CUは、番号5、6、7、8の送信ポート作成コマンドを、それぞれ演算部PE0、PE7、PE8、PE9に送る。これにより、各演算部PE0、PE7、PE8、PE9において、送信ポートTP0が作成される。
図28は、 番号9−18のコマンド実行後の構成を示している。制御部CUは、番号9−13の受信ポート作成コマンドを、それぞれ演算部PE1、PE2、PE3、PE4、PE5、PE6に送る。これにより、各演算部PE1、PE2、PE3、PE4、PE5、PE6において、受信ポートRP0が作成される。
また、制御部CUは、番号14−18の送信ポート作成コマンドを、それぞれ演算部PE6、PE1、PE2、PE3、PE4に送る。これにより、各演算部PE6、PE1、PE2、PE3、PE4、PE5において、送信ポートTP0が作成される。
図29は、番号19−26のコマンド実行後の構成を示している。制御部CUは、番号19−26の送受信ポート関連付けコマンドを、それぞれ演算部PE7、PE8、PE9、PE6、PE1、PE2、PE3、PE4に送る。これにより、各演算部PE7、PE8、PE9、PE6、PE1、PE2、PE3、PE4において、受信ポートRP0と送信ポートTP0とが関連付けられる。
本分散処理システムにおいて、点線で示すデータラインを介して、カメラ30からデータを流すと物体検出結果が重畳された画像が演算部PE5のモニタ20に出力される。
次に、データラインを動的変更する例について説明する。
実施例1では、演算部PEが処理結果に基づき送信先を判断していた。これに対して、以下の例では、制御部CUからデータラインの切り替えを指定する構成となっている。
上述した手順により構築されたデータラインにおいて、物体検出を行う演算部PE9の出力、例えば、検出した物体の座標の情報を、カメラ30である演算部PE0へ送るデータラインをデータが流れている最中に作成し、データラインを切り替える例である。
表14に、動的にデータラインを変更するときの制御部CUから演算部PEに送信するコマンドを掲げる。
Figure 2011203935
図30は、番号27−30のコマンド実行後の構成を示している。制御部CUは、番号27の受信ポート作成コマンドを演算部PE0に対して送る。これにより、演算部PE0に受信ポートRP0が作成される。
制御部CUは、番号28の送信ポート作成コマンドを演算部PE9に対して送る。これにより、演算部PE9に送信ポートTP1が作成される。
制御部CUは、番号29の演算部設定コマンドを演算部PE0に対して送る。これにより、演算部PE0において、受信ポートRP0は座標データであることが設定される。
この結果、演算部PE9と演算部PE0が接続される。そして、演算部PE9への入力を処理した結果の出力は、カメラ機能を有する演算部PE0に送信される。なお、カメラ30は、受信した座標情報の中心位置を画像の中心位置へ移動させるようにパン、チルトする機能を有している。
カメラ30は、データラインが構築される前は何も入力がない。このため、カメラ30は、画像を送ることしかしない。データラインが動的に変更された後は、データラインにより、カメラ30へ座標情報が入力される。この結果、カメラ30は、入力された座標情報に基づいて、パン及び/またはチルトするようになる。
演算部PE9において、データラインを切り替えるタイミングを、制御情報が到着した時点ではなく、指定したデータの到着後にしたい場合もある。この場合、データに通し番号を与えておき、特定の番号のデータ到着後にデータラインを切り替えるように構成することもできる。
以上のように、データラインを動的に変更する構成により、データ処理中に新規のデータラインを作成したときでも、データの流れを妨げることなく処理を行うことができる。
(実施例2の変形例1)
次に、使用する演算部PEを動的に変更する例を説明する。
データ処理中に、演算部PEのID2番のダウンサンプリング機能を、別のダウンサンプリング機能を有する演算部PEに切り替える手順を説明する。
演算部PEのID=10番として新たにダウンサンプリング処理を行う演算部PE10を用意する。
制御部CUは、演算部情報取得コマンドを演算部PE10に送る。これにより、制御部CUは、演算部PE10の基本性能を取得する。演算部PE10の基本性能として、ダウンサンプリング実行能力[回/sec]、定格消費電力を考える。
制御部CUは、現在使用しているダウンサンプリングを行う演算部PEと、新しい演算部PE10とを比較する。そして、制御部CUは、「より高い性能」、または「より低い消費電力」といった基準を参照する。
制御部CUは、ダウンサンプリング機能を有する新しい演算部PE10の出現により、より高い効果を得られると判断するとき、新しいデータラインを作成する。これにより、データの流れを変えることができる。
表15に、ダウンサンプリングを行う演算部PEを切り替えるとき、制御部CUから演算部PEに送信するコマンドの内容を掲げる。ここで、「送信削除」は、送信ポート削除コマンド、「受信削除」は、受信ポート削除コマンドを意味する。
Figure 2011203935
図31は、番号31−35のコマンド実行後の構成のうち、変更が生じた演算部PEのみを示す図である。制御部CUは、番号31の受信ポート作成コマンドを演算部PE3に対して送る。これにより、演算部PE3に受信ポートRP1が作成される。
制御部CUは、番号32の送受信ポート関連付けコマンドを演算部PE3に対して送る。これにより、演算部PE3において受信ポートRP1と送信ポートTP0とが関連付けられる。
制御部CUは、番号33の受信ポート作成コマンドを演算部PE10に対して送る。これにより、演算部PE10に受信ポートRP0が作成される。
制御部CUは、番号34の送信ポート作成コマンドを演算部PE10に対して送る。これにより、演算部PE10に送信ポートTP0が作成される。
制御部CUは、番号35の送受信ポート関連付けコマンドを演算部PE10に対して送る。これにより、演算部PE10において受信ポートRP0と送信ポートTP0とが関連付けられる。
図32は、番号36−37のコマンド実行後の構成のうち、変更が生じた演算部PEのみを示す図である。
制御部CUは、番号36の送信ポート作成コマンドを演算部PE1に対して送る。これにより、演算部PE1に送信ポートTP1作成される。
制御部CUは、番号37の送受信ポート関連付けコマンドを演算部PE1に対して送る。これにより、演算部PE1において受信ポートRP0と送信ポートTP1とが関連付けられる。
図33は、番号38−41のコマンド実行後の構成のうち、変更が生じた演算部PEのみを示す図である。
制御部CUは、番号38の受信ポート削除コマンドを演算部PE3に対して送る。これにより、演算部PE3の受信ポートRP0が削除される。
制御部CUは、番号39の送信ポート削除コマンドを演算部PE2に対して送る。これにより、演算部PE2の送信ポートTP0が削除される。
制御部CUは、番号40の受信ポート削除コマンドを演算部PE2に対して送る。これにより、演算部PE2の受信ポートRP0が削除される。
制御部CUは、番号41の送信ポート削除コマンドを演算部PE1に対して送る。これにより、演算部PE1の送信ポートTP0が削除される。
このように、演算部PE1→演算部PE10→演算部PE3のデータラインを構築する。そして、最後に、演算部PE1の送受信ポート関連付けを、受信ポート番号0→送信ポート番号0から受信ポート番号0→送信ポート番号1に切り替える。これにより、演算部PE1→演算部PE10→演算部PE3のデータラインが確立する。
その後、演算部PE2は、データが通らなくなったのでデータラインを削除する。演算部PE2は、別の処理が開始された場合、その処理に利用することができる。
これは、最初に使用していたダウンサンプリング用の演算部PEよりも、高速な演算部PEが後から用意できた場合、または演算部PE2が不調なときなどに処理を停止せずに新しい演算部PEに処理を切り替える場合などに有用である。
また、演算部PE1から送信する2つのデータラインができた時点で、演算部PE1→演算部PE2→演算部PE3のデータラインを残したままで、制御部CUから演算部PE1に演算部PE設定を行う。この場合、演算部PEの判断により、演算部PE1の送信ポート番号0と送信ポート番号1との交互にデータを送るようにして処理を分散させることもできる。
上述したように、ダウンサンプリング用の演算部PEが、演算部PE1の次に2つつながった状態において、通常は、演算部PE1→演算部PE2→演算部PE3の順で処理しているとする。
制御部CUは、演算部情報取得コマンドを生存する。確認のため、制御部CUは、演算部PE2と演算部PE10に対して、演算部情報取得コマンドを送る。そして、制御部CUに対して結果が返ってくれば、演算部PEは正常に動作していると制御部が判断する。
これに対して、演算部PE2からの応答がなくなれば。制御部CUは演算部PE2が故障したと判断する。このため、制御部CUは、演算部PE1に送受信関連付けコマンドを送る、これにより、演算部PE1は、演算部PE1の受信ポート番号0番の送信先を送信ポート番号1番へ切り替える。
この結果、演算部PE10を使うように構成を変更できる。こうしたことから、本変形例では、分散処理ステムのデータフローのうちの故障部分を見つけ、制御部CUがフローを修正し、故障に対しても柔軟に対応できる。
以上のように、データ処理中に新規のデータラインを作成しても、データの流れを妨げることなく処理を行うことができる。より最適な演算部PEに処理を切り替えることもできる。
次に、実施例2の変形例2について説明する。本変形例は、演算部PEの動的並列化を行う例である。
処理開始時にダウンサンプリング用の演算部PEを1つで運用し、実行中にもう1つダウンサンプリング用の演算部PEを追加し、2並列でダウンサンプリングを行う例を示す。例えば、一方のダウンサンプリング用の演算部で画像の画面の上半分の領域を処理する。さらに、他方のダウンサンプリング用の演算部で画像の画面の下半分の領域を処理する。これにより、2つの演算部で分散処理することで高速化される。
以下、新規に追加するダウンサンプリング用の演算部PEのID=11とする。
表16に、ダウンサンプリング用の演算部PEを2並列に切り替えるときの制御部CUから演算部PEに送信するコマンドの内容を掲げる。
Figure 2011203935
図34は、番号42−49のコマンド実行後の構成のうち、変更が生じた演算部PEのみを示す図である。
制御部CUは、番号42の受信ポート作成コマンドを演算部PE3に対して送る。これにより、演算部PE3に受信ポートRP1が作成される。
制御部CUは、番号43の送受信ポート関連付けコマンドを演算部PE3に対して送る。これにより、演算部PE3において受信ポートRP1と送信ポートTP0とが関連付けられる。
制御部CUは、番号44の受信ポート作成コマンドを演算部PE11に対して送る。これにより、演算部PE11に受信ポートRP0が作成される。
制御部CUは、番号45の送信ポート作成コマンドを演算部PE11に対して送る。これにより、演算部PE11に送信ポートTP0が作成される。
制御部CUは、番号46の送受信ポート関連付けコマンドを演算部PE11に対して送る。これにより、演算部PE3において受信ポートRP0と送信ポートTP0とが関連付けられる。
制御部CUは、番号47の演算部設定コマンドを演算部PE3に対して送る。これにより、演算部PE3において受信ポートRP0(受信ポート番号0)と受信ポートRP1(受信ポート番号1)が統合される。
制御部CUは、番号48の演算部設定コマンドを演算部PE11に対して送る。これにより、演算部PE11においてダウンサンプリングを行う処理範囲が設定される。
制御部CUは、番号49の演算部設定コマンドを演算部PE2に対して送る。これにより、演算部PE2においてダウンサンプリングを行う処理範囲が設定される。
制御部CUは、番号50の送信ポート作成コマンドを演算部PE1に対して送る。これにより、演算部PE1において送信ポートTP0が作成される。
以上の手順により、2つ目のダウンサンプリング用のID=11の演算部PE11からDCTと量子化を行う演算部PE3の受信ポートRP1(受信ポート番号1)までのデータラインを構築する。そして、ID=1の演算部PE1からの送信を、演算部PE11の受信ポートRP0(受信ポート番号0)で受信できる構成にする。
ここまでの設定において、演算部PE1から演算部PE11にブロードキャストで送信すれば、ダウンサンプリングを並列化して実行できる。ここで、他の演算部PEは今までの処理を変更する必要がある。このため、事前に設定が必要になる。
そこで、制御部CUは、演算部設定コマンドにより以下ことを行う。
・演算部PE3に対しては受信ポートRP0(受信ポート番号0)と受信ポートRP1(受信ポート番号1)の統合をする;
・演算部PE11に対しては、受信データの画面の上半分の領域のダウンサンプリングを行わせる;
・演算部PE2に対しては、受信データの画面の下半分の領域のダウンサンプリングを行わせる。
演算部PEを動的並列化へ変更するタイミングとしては、データの画像にインクリメント(増加)する数値を付番する構成、各演算部PEのデータ受信部にデータを受信するたびにインクリメントする数値が付されている構成にしておく。そして、制御部CUは、インクリメントされる数値を参照して、数値が指定番号以降となったとき並列処理させるようにして各演算部PEどうしの同期をおこなう。
図35は、番号50のコマンド実行後の構成のうち、変更が生じた演算部PEのみを示す図である。
ID=1の演算部PE1において、既存の送信ポート番号0の送信ポートTP0の送信先演算部を演算部PE2、PE11へブロードキャストするように変更する。また、ブロードキャストではなく、画像の画面を上半分と下半分の領域に分割して、それぞれの領域の画像データを演算部PE2とPE11とにユニキャストで送るようにしてもよい。
このように、本変形例では、データが流れている間でも処理のデータラインを変更することができる。最初は単一経路でデータを送り、後から新たに演算部PEが入手できた場合、データの流れを止めずにデータラインを変更できる。これにより、システムを並列化し高速化できる。
次に、実施例2の変形例3に係る分散処理システムについて説明する。
図36は、実施例2の変形例3において、負荷の大きい処理を前処理と本処理に分けて迂回するデータラインを構築する例を説明する図である。
図36に示すデータラインにおいて、演算部PE0は、画像が入力され、人物の顔が存在するかを判定する演算部であるとする。演算部PE0において、画像内に人物が写っていると判定されると、演算部PE0は、演算部PE1へ画像データを送る。演算部PE1は、さらに詳細な解析、例えば顔の特徴量から個人を特定することを実行する。
演算部PE1は、個人情報と共に画像データを演算部PE2へ送る。演算部PE0は、前処理として大まかな処理、例えば顔が映っているかいないかを判定する。そして、必要に応じて、時間のかかる本処理、例えば個人の特定は別の演算部PE1に処理させる。必要がなければ、次の演算部PE2に画像データを送る。
このように、重い、すなわち負荷の大きい処理を前処理と本処理に分ける。そして、演算部PEにより、前処理段階で本処理が必要ないと判断された場合、本処理を迂回して効率的に処理することができる。
次に、本発明の実施例3にかかる分散処理システムについて説明する。本実施例は、
演算部PEの動作を動的に変更する例である。
本実施例の構成は、上記実施例2の分散処理システムの図23で示す構成と同じであるので、重複する記載は省略する。本実施例では、物体認識の処理において、量子化を行う演算部PE3に制御情報を送り、動的に動作を切り替える例を示す。
量子化は、ID=3番の「DCTと量子化」用の演算部PE3で行われる。DCTと量子化用の演算部PE3の内部には、量子化テーブルが設けられている。量子化テーブルは、制御部CUからの制御情報により、その内容が変更可能であると仮定する。
演算部PE3へ送る制御情報CTINF内に量子化テーブルを格納しておく。この制御情報CTINFを、DCTと量子化用の演算部PE3に送る。これにより、演算部PE3内の量子化テーブルが切り替わる。
図37は、実施例3において、制御部CUからDCTと量子化用の演算部PE3に制御情報CTINFとして量子化テーブルを送ることを説明する図である。
データが絶え間なく演算部PE3に送られる場合でも、制御ラインCTLNは空いている。このため、効率的に特定の演算部PE3に制御情報CTINFを届けることができる。
これにより、ライブ映像などリアルタイム性が要求される場面においても、制御部CUから迅速に量子化テーブルを切り替えることができる。この結果、例えば画質の調整が可能となる。
制御部CUから、DCTと量子化用の演算部PEに送るパラメータとしては、量子化テーブル全体ではなく、量子化テーブルの各値に乗算する係数、または割り算する係数だけを送ってもよい。
次に、制御部CUから演算部PEに演算パラメータ変更条件を送信し、演算部PEはそれに基づいて演算パラメータを変更する例を説明する。
図38(a)は、演算部PEからの制御情報を基に、制御部CUを介して演算部PEの演算パラメータを変更する例を説明する図である。
図38(b)は、送信ビットレートと係数kとの関係を示す図である。
図38(a)において、制御部CUは、図中(1)で示す流れで、ハフマン符号化用のID=4である演算部PE4に対して演算部情報取得コマンドを送る。
(2)で示す流れで、演算部PE4は、ハフマン符号化の送信ビットレートを取得する。なお、送信ビットレートの代わりに、1回の出力バイト数でも良い。
量子化テーブルの値を大きくすると、圧縮率が高まる。このため、ハフマン符号化の出力は少なくなる。量子化テーブルの値を小さくすると、ハフマン符号化の出力は多くなる。
制御部CUは、(3)で示すように、ハフマン符号化の送信ビットレートに基づいて、画質を決める量子化テーブルに乗算する係数を計算する。係数が大きいと量子化テーブルの値が大きくなる。そして、圧縮率が高まり、ハフマン符号化の出力は小さくなる。
例えば、係数kを送信ビットレートsの関数として、k=f(s)のように定義して計算する。
制御部CUは、(4)で示す流れで、計算した係数を演算部設定コマンドとしてDCTと量子化用の演算部PE3に送る。これにより、DCTと量子化用の演算部PE3は、次回の量子化処理において新しい量子化テーブル値を使用する。
図39は、上述の制御部CUから演算部PEに演算パラメータ変更条件を送信して、処理する時のフローチャートである。
ステップS190において、制御部CUは、演算部PE4に対して、演算部情報取得コマンドを送信する。ステップS190は、図38の手順(1)に対応する。
ステップS191において、制御部CUは、演算部PE4の演算部情報を受信する。ステップS191は、図38の手順(2)に対応する。
ステップS192において、制御部CUは、ハフマン符号化の送信ビットレートを取得する。ステップS192は、図38の手順(3)に対応する。
ステップS193において、制御部CUは、上述のように量子化テーブルの係数kを決定する。ここで、制御部CUは、量子化テーブルの係数kを生成および/または選択する構成でも良い。ステップS193は、図38の手順(3)に対応する。
ステップS194において、制御部CUは、計算した係数を演算部設定コマンドとしてDCTと量子化用の演算部PE3に送信する。ステップS194は、図38の手順(4)に対応する。
DCTを終了後、量子化を実行前に、演算部PE3のデータ処理部は、量子化テーブルを決めるため処理内容変更部に量子化テーブル値を問い合わせる。処理内容変更部は、制御部CUから設定された条件に基づき量子化テーブルを決定し、データ処理部に渡す。データ処理部は、この新しい量子化テーブルに基づいて量子化を実行する。
図40は、上述のDCTと量子化用の演算部PE3のデータ処理の手順を示すフローチャートである。
ステップS200において、演算部PE3は、データを受信する。
ステップS201において、演算部PE3は、DCTを実行する。
ステップS202において、演算部PE3のデータ処理部は、量子化テーブルを決めるため処理内容変更部に量子化テーブル値を問い合わせる。
ステップS203において、処理内容変更部は、決定された量子化テーブルを、データ処理部に渡す。
ステップS204において、演算部PE3のデータ処理部は、この新しい量子化テーブルを取得する。
ステップS205において、演算部PE3のデータ処理部は、新しい量子化テーブルに基づいて量子化を実行する。
制御部CUは、演算部PE3の量子化テーブルを変更した結果、影響を受けたハフマン符号化の出力を参照する。制御部CUは、量子化テーブルの変更の影響を考慮して、さらに量子化テーブルを調整する。制御部CUは、この調整作業を繰り返す。これにより、JPEG圧縮した画像の品質を一定に保つことが可能になる。またはスループットを一定に保つことができる。
ここで、制御部CUが適切な量子化テーブルに乗算する係数を計算している。これに限られず、演算部PE3自身が係数を計算する構成でもよい。このためには、DCTと量子化用の演算部PE3が式k=f(s)の内容を保持している構成とすればよい。
そして、制御部CUが取得したハフマン符号化の送信ビットレートを、DCTと量子化用の演算部PE3に送る。これにより、演算部PE3自身が係数を計算できる。これにより、演算部PEが処理条件により処理内容を変化させることができ、より柔軟なデータフローが実現できる。
次に、制御部CUを介さない処理内容変更の例を説明する。これは、ある演算部PEから他の演算部PEへのフィードバックする例である。
図41は、演算部PE間で制御情報を送り、制御部CUを介さないで演算パラメータを変更する構成を説明する図である。
ハフマン符号化用の演算部PE4の出力と、DCTと量子化用の演算部PE3とが制御ラインCTLNで接続されているとする。
制御部CUは、演算部設定コマンドにより、ハフマン符号化用の演算部PE4に対して、送信ビットレートを制御ラインCTLNを通して、演算部PE3へ送信するように設定する。
制御部CUは、演算部設定コマンドにより、DCTと量子化用の演算部PE3に対して、ハフマン符号化用の演算部PE4から送られてきた制御情報、例えば符号化後のバイト数を処理内容変更部に記録するように設定する。
さらに、制御部CUは、演算部設定コマンドにより、DCTと量子化用の演算部PE3に対して、処理コンテキストとして符号化後のバイト数を用いて量子化テーブルの係数を計算するように設定する。
これにより、ハフマン符号化した結果の送信ビットレートを、制御ラインCTLNを通じて、DCTと量子化用の演算部PE3が受信できる。つまり、PE3はCUを介在させず、他のPEであるPE4の処理コンテキストをモニタしている。したがって、演算部PE3は、量子化テーブルの係数を計算できる。この結果、制御部CUの介在なしにJPEGの出力を調整することができる。ここで、ハフマン符号化の送信ビットレートは、制御ラインCTLNを通じてDCTと量子化用の演算部PE3で受信される。このため、データ処理を妨げることがない。
(プログラム)
また、上述した実施例に係る分散処理システムを実行させるプログラムは以下のように構成できる。即ち、制御部と複数の演算部とを有する分散処理方法をコンピュータに実行させるプログラムであって、
制御部と演算部との間で制御情報を送受信する制御情報送受信機能と、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御情報送受信機能と独立した処理対象データ送信機能と、を有し、
演算部において、入力されたデータを処理して出力するデータ処理機能と、
制御情報送受信機能により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする機能と、
処理コンテキストと処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更機能と、をコンピュータに実行させるプログラムとすることができる。
さらに、以上説明した動作を実行するプログラムは、フレキシブルディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。また、そのプログラムの全体または一部を通信ネットワークを介して流通または提供することができる。利用者(ユーザ)は、通信ネットワークを介してプログラムをダウンロードしてコンピュータにインストールすること、または記録媒体からコンピュータにインストールすることで、容易に本発明の分散処理システムを実現できる。
以上のように、本発明は、状態に応じて柔軟な処理フローや実行内容を変更することができる分散処理システムに有用である。
CU 制御部
PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、PE8、PE9 演算部
DT データ
DTLN データライン
CTINF 制御情報
CTLN 制御ライン
RP 受信ポート
TP 送信ポート
10 画像
20 モニタ
30 カメラ
51、52、53 対象物
54 処理された画像

Claims (25)

  1. 制御部と複数の演算部とを有する分散処理システムであって、
    前記制御部と前記演算部との間で制御情報を送受信する制御ラインと、
    前記制御部及び前記演算部のうち少なくとも一方から、それらに接続された前記演算部に処理対象データを送信する、前記制御ラインと独立したデータラインと、を有し、
    前記演算部は、
    モニタされた前記演算部に関する処理コンテキストと、前記制御ラインから受信した処理内容変更条件と、が合致したときに、前記制御ラインから受信した処理内容変更情報を用いて前記演算部の処理内容を変更する処理内容変更部を備えることを特徴とする分散処理システム。
  2. 前記処理内容変更情報は演算パラメータであり、
    前記処理内容変更条件は前記演算パラメータの変更に関する演算パラメータ変更条件であって、
    前記処理内容変更部は、前記処理コンテキストと前記演算パラメータ変更条件とが合致したときに、前記処理内容変更部が保持する演算パラメータを変更することを特徴とする請求項1に記載の分散処理システム。
  3. 前記制御部は、前記演算部から受信した前記制御情報に基づいて、前記演算パラメータと前記演算パラメータ変更条件を生成および/または選択することを特徴とする請求項2に記載の分散処理システム。
  4. 前記制御部は、前記演算部から演算実行中に変更される可能性のある動的制御情報を受信することを特徴とする請求項3に記載の分散処理システム。
  5. 前記制御部は、前記演算部から演算実行中に変更されることのない静的制御情報を受信することを特徴とする請求項3に記載の分散処理システム。
  6. 前記制御部は、前記演算部の処理状態によって決定される前記演算パラメータ変更条件を生成および/または選択することを特徴とする請求項2から請求項5のいずれか一項に記載の分散処理システム。
  7. 前記演算部はさらに、
    前記データラインとデータ処理部の入出力を選択的に接続するデータ受信部およびデータ送信部の少なくともいずれか一方を備えており、
    前記処理内容変更情報はデータライン情報であり、
    前記処理内容変更条件は前記データライン情報の変更に関するデータライン変更条件であって、
    前記処理内容変更部は前記処理コンテキストが前記データライン変更条件と合致したときに、前記データライン情報を用いて、前記データラインと前記データ処理部の入出力の接続を変更することを特徴とする請求項1に記載の分散処理システム。
  8. 前記制御部は、前記演算部の入力元および/または出力先の前記演算部を、他の異なる前記演算部へ変更するデータライン情報を生成および/または選択し、
    前記処理内容変更部は前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて入力元および/または出力先を変更することを特徴とする請求項7に記載の分散処理システム。
  9. 前記制御部は、前記演算部の出力先として、他の異なる演算部を追加するデータライン情報を生成および/または選択し、
    前記処理内容変更部は、前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて出力先に前記演算部を追加し、
    前記複数の演算部に演算結果を出力するデータ送信部を備えることを特徴とする請求項7に記載の分散処理システム。
  10. 前記制御部は、前記演算部の入力元として、他の異なる演算部を追加するデータライン情報を生成および/または選択し、
    前記処理内容変更部は、前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて入力元に前記演算部を追加し、
    前記複数の演算部からの入力を統合するデータ受信部を備えることを特徴とする請求項7に記載の分散処理システム。
  11. 前記制御部は、前記演算部の入力元および/または出力先の演算部の少なくともひとつを削除するデータライン情報を生成および/または選択し、
    前記処理内容変更部は、前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて入力元および/または出力先を削除することを特徴とする請求項7に記載の分散処理システム。
  12. 前記制御部は、前記演算部から受信した前記制御情報に基づいて、前記データライン情報と前記データライン変更条件を生成および/または選択することを特徴とする請求項7から請求項11のいずれか一項に記載の分散処理システム。
  13. 前記制御部は、前記演算部から演算実行中に変更される可能性のある動的制御情報を受信し、
    前記制御部は、前記動的制御情報に基づいて、前記データライン情報と前記データライン変更条件を生成および/または選択することを特徴とする請求項12に記載の分散処理システム。
  14. 前記制御部は、前記演算部から演算実行中に変更されることのない静的制御情報を受信し、前記制御部は前記静的制御情報に基づいて、前記データライン情報と前記データライン変更条件を生成および/または選択することを特徴とする請求項12に記載の分散処理システム。
  15. 前記制御部は、前記演算部の入力元によって出力先を決定するデータライン変更条件を生成および/または選択することを特徴とする請求項7から請求項14のいずれか一項に記載の分散処理システム。
  16. 前記制御部は、前記演算部の演算結果によって出力先を決定するデータライン変更条件を生成および/または選択することを特徴とする請求項7から請求項14のいずれか一項に記載の分散処理システム。
  17. 前記制御部は、前記演算部の入力元、出力先、入力元と出力先の接続関係の少なくとも一つをデータライン情報として送信し、
    前記演算部は、前記データライン情報に基づいて入力元、出力先、入力元と出力先の接続関係の少なくとも一つを変更することを特徴とする請求項7から請求項16に記載の分散処理システム。
  18. 前記処理コンテキストは前記演算部に関する情報であることを特徴とする請求項1に記載の分散処理システム。
  19. 前記処理コンテキストは前記演算部と異なる他の演算部に関する情報であることを特徴とする請求項1に記載の分散処理システム。
  20. 前記制御部は、前記制御情報の一部または全部を保持しており、制御情報を選択し、前記演算部に制御情報を送信することを特徴とする請求項1に記載の分散処理システム。
  21. 前記制御部は、ユーザから制御情報の一部または全部に関する情報を受信し、
    前記制御部は、前記ユーザからの情報に基づいて、前記演算部に制御情報を送信することを特徴とする請求項1に記載の分散処理システム。
  22. 2つ以上の演算部を制御して分散処理を行わせる、前記演算部に接続された制御部であって、
    前記演算部との間で制御情報を送受信する制御ラインと、
    前記制御部に接続された前記演算部に処理対象データを送信する、前記制御ラインと独立したデータラインと、を有し、
    前記演算部は、
    前記制御ラインを介して前記演算部へ処理内容変更条件と処理内容変更情報を送信することを特徴とする制御部。
  23. 2つ以上の演算部に接続され、分散処理を行なう演算部であって、
    前記制御部との間で制御情報を送受信する制御ラインと、
    前記制御部及び前記演算部のうち少なくとも一方から処理対象データを送信される、前記制御ラインと独立したデータラインと、を有し、
    前記演算部は、
    入力されたデータを処理して出力するデータ処理部と、
    前記制御ラインを介して、処理内容変更条件と処理内容変更情報を受信し、処理に関する情報コンテキストをモニタしており、
    前記処理に関する情報と前記処理内容変更条件とが合致したときに、前記処理内容変更情報を用いて、前記演算部の処理内容を変更する処理内容変更部と、を備えることを特徴とする演算部。
  24. 制御部と複数の演算部とを有する分散処理方法であって、
    前記制御部と前記演算部との間で制御情報を送受信する制御情報送受信工程と、
    前記制御部及び前記演算部のうち少なくとも一方から、それらに接続された前記演算部に処理対象データを送信する、前記制御情報送受信工程と独立した処理対象データ送信工程と、を有し、
    前記演算部において、入力されたデータを処理して出力するデータ処理工程と、
    前記制御情報送受信工程により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする工程と、
    前記処理コンテキストと前記処理内容変更条件とが合致したときに、前記処理内容変更情報を用いて、前記演算部の処理内容を変更する処理内容変更工程と、を備えることを特徴とする分散処理方法。
  25. 制御部と複数の演算部とを有する分散処理方法をコンピュータに実行させるプログラムであって、
    前記制御部と前記演算部との間で制御情報を送受信する制御情報送受信機能と、
    前記制御部及び前記演算部のうち少なくとも一方から、それらに接続された前記演算部に処理対象データを送信する、前記制御情報送受信機能と独立した処理対象データ送信機能と、を有し、
    前記演算部において、入力されたデータを処理して出力するデータ処理機能と、
    前記制御情報送受信機能により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする機能と、
    前記処理コンテキストと前記処理内容変更条件とが合致したときに、前記処理内容変更情報を用いて、前記演算部の処理内容を変更する処理内容変更機能と、をコンピュータに実行させるプログラム。

JP2010069735A 2010-03-25 2010-03-25 分散処理システム、制御部、演算部、分散処理方法、及びプログラム Withdrawn JP2011203935A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010069735A JP2011203935A (ja) 2010-03-25 2010-03-25 分散処理システム、制御部、演算部、分散処理方法、及びプログラム
US13/070,644 US20110238960A1 (en) 2010-03-25 2011-03-24 Distributed processing system, control unit, processing element, distributed processing method and computer program
CN2011100744018A CN102200958A (zh) 2010-03-25 2011-03-25 分布式处理系统、控制部、运算部、分布式处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010069735A JP2011203935A (ja) 2010-03-25 2010-03-25 分散処理システム、制御部、演算部、分散処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2011203935A true JP2011203935A (ja) 2011-10-13

Family

ID=44657681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010069735A Withdrawn JP2011203935A (ja) 2010-03-25 2010-03-25 分散処理システム、制御部、演算部、分散処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US20110238960A1 (ja)
JP (1) JP2011203935A (ja)
CN (1) CN102200958A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949200B2 (en) * 2013-06-16 2021-03-16 President And Fellows Of Harvard College Methods and apparatus for executing data-dependent threads in parallel
WO2019079378A1 (en) 2017-10-18 2019-04-25 Lifelens Technologies, Llc MEDICAL DEVICE HAVING A CAPTURING CIRCUIT AND PHYSIOLOGICAL SIGNAL PROCESSING

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100960518B1 (ko) * 2001-09-07 2010-06-03 후지제롯쿠스 가부시끼가이샤 데이터 처리 시스템 및 그 제어방법

Also Published As

Publication number Publication date
US20110238960A1 (en) 2011-09-29
CN102200958A (zh) 2011-09-28

Similar Documents

Publication Publication Date Title
CN103460242B (zh) 信息处理装置、信息处理方法、以及位置信息的数据结构
RU2534951C2 (ru) Устройство для совместного использования вычерчиваемого изображения на множестве рабочих мест, система совместного использования вычерчиваемого изображения на множестве рабочих мест, способ, выполняемый посредством устройства совместного использования вычерчиваемого изображения на множестве рабочих мест, программа и носитель записи
JP7412847B2 (ja) 画像処理方法、画像処理装置、サーバ、及びコンピュータプログラム
CN101218603A (zh) 使用压缩的原始图像的图像处理器的暂时图像缓冲器
US20230298143A1 (en) Object removal during video conferencing
JP2011203935A (ja) 分散処理システム、制御部、演算部、分散処理方法、及びプログラム
JP6608572B1 (ja) データ処理装置、データ処理システム、データ処理方法及びプログラム
Zhang et al. End-to-end latency optimization of multi-view 3D reconstruction for disaster response
US11825066B2 (en) Video reproduction apparatus, reproduction method, and program
JP5451883B2 (ja) 頭部検出方法、頭部検出装置、属性判定方法、属性判定装置、プログラム、記録媒体および属性判定システム
JP5332493B2 (ja) カメラ、画像共有サーバ及び画像共有プログラム
JP2007102478A (ja) 画像処理装置、画像処理方法、及び半導体集積回路
JP2007013697A (ja) 画像受信装置及び画像受信方法
CN112650596B (zh) 目标数据的跨进程共享方法、装置、设备及存储介质
CN112104871B (zh) 一种数据编码方法、装置以及计算机可读存储介质
JP5310427B2 (ja) 通信端末装置、通信制御方法、及び通信制御プログラム、
JP4329429B2 (ja) 画像転送装置、画像転送方法、画像転送プログラム
Sulzbachner et al. An optimized silicon retina stereo matching algorithm using time-space correlation
CN114615519A (zh) 视频处理方法、装置、设备和存储介质
US10348507B2 (en) Data processing system, data processing apparatus, and data processing method
CN112598074A (zh) 图像处理方法及装置、计算机可读存储介质和电子设备
CN106530216B (zh) 全景影像文件处理方法及系统
JP5686104B2 (ja) 会議システム、端末接続方法、及び端末装置
JP2020119001A (ja) 情報処理装置、情報処理方法、及びプログラム
CN111602034B (zh) 输出管理装置、输出管理方法和存储介质

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130604