(57)【要約】【課題】ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能な制御装置、処理装置及び情報処理方法を提案する。【解決手段】複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、を備える制御装置。【選択図】図１
2015088112.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、
を備える制御装置。
【請求項２】
前記制御装置は、
通信部と、
前記通信部による外部との通信により前記複数の処理装置を検出する検出部と、
をさらに備え、
前記割当部は、前記複数のタスクの処理をそれぞれ前記検出部により検出された前記複数の処理装置のいずれかに割り当てる、請求項１に記載の制御装置。
【請求項３】
前記制御装置は、前記割当部による割り当て候補ごとに、前記タスクおよび当該タスクを処理する前記処理装置の組み合わせに基づいて評価値を算出する算出部をさらに備え、
前記割当部は、前記算出部により算出された前記評価値に基づいて前記割り当て候補のいずれかを選択する、請求項１に記載の制御装置。
【請求項４】
前記算出部は、前記タスクの内容に基づく第１の標準コストと当該タスクを処理する前記処理装置の属性又は状態の少なくともいずれかに基づく第１のコスト係数との積の総和に基づいて前記評価値を算出する、請求項３に記載の制御装置。
【請求項５】
前記複数のタスクはパイプラインを形成し、
前記算出部は、前記パイプラインが示すタスクの処理順序およびタスク間の通信環境にさらに基づいて前記評価値を算出する、請求項３に記載の制御装置。
【請求項６】
前記算出部は、前記タスク間の通信量に基づく第２の標準コストと前記タスク間の通信環境に基づく第２のコスト係数との積の総和に基づいて前記評価値を算出する、請求項５に記載の制御装置。
【請求項７】
前記割当部は、前記パイプラインが示す処理順序が第１の前記タスクの次である第２の前記タスクの内容に基づいて、第１の前記タスクと第２の前記タスクとの間の通信設定を割り当てる、請求項５に記載の制御装置。
【請求項８】
前記割当部は、前記複数の処理装置が前記複数のタスクを処理している間に割り当てを更新する、請求項１に記載の制御装置。
【請求項９】
前記制御装置は、前記割当部による割り当てに基づいて、前記複数の処理装置が前記複数のタスクを処理するよう制御する制御部をさらに備える、請求項１に記載の制御装置。
【請求項１０】
自身の属性又は状態の少なくともいずれかを示す情報を制御装置に送信し、前記制御装置により割り当てられたタスクを受信する通信部と、
前記通信部により受信された前記タスクを処理する処理部と、
を備える処理装置。
【請求項１１】
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てるステップ、
を備える、情報処理装置のプロセッサにより実行される情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置、処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、情報処理装置で処理するタスクが大規模化するに伴い、複数のコア、又は複数の情報処理装置による分散処理や並列処理が多く行われている。そして、この分散処理や並列処理の処理効率を向上させるために、様々な技術が開発されている。
【０００３】
例えば、下記特許文献１では、マルチＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）環境において、ＣＰＵの負荷を監視してタスク割り当てを行うことにより、ＣＰＵ負荷の均等化を行う技術が開示されている。
【０００４】
また、下記特許文献２では、Ｃｅｌｌチップの複数のＳＰＵ（サブ処理ユニット）の処理能力を時分割して、タスクを割り当てる技術が開示されている。
【０００５】
下記特許文献１および２は、ひとつの装置においてタスクを割り当てる技術であるが、他にも、複数の計算ノードの間での処理の割り当てに関する技術が開発されている。例えば、下記特許文献３では、分散処理システムにおいて、処理の分割の仕方によってデータ量がどのように変化するのかをチェックして、分散処理の度合いを変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１−２８３６６３号公報
【特許文献２】特開２００８−１４６５０３号公報
【特許文献３】特開２０１０−２４４４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記特許文献で開示された技術では、タスクを処理する装置は均質であり、装置ごとの特性が大きく異なるヘテロジニアス環境が想定されていなかった。そこで、本開示では、ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能な、新規かつ改良された制御装置、処理装置及び情報処理方法を提案する。
【課題を解決するための手段】
【０００８】
本開示によれば、複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、を備える制御装置が提供される。
【０００９】
また、本開示によれば、自身の属性又は状態の少なくともいずれかを示す情報を制御装置に送信し、前記制御装置により割り当てられたタスクを受信する通信部と、前記通信部により受信された前記タスクを処理する処理部と、を備える処理装置が提供される。
【００１０】
また、本開示によれば、複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てるステップ、を備える、情報処理装置のプロセッサにより実行される情報処理方法が提供される。
【発明の効果】
【００１１】
以上説明したように本開示によれば、ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能である。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１２】
【図１】本開示の一実施形態に係る情報処理システムの概要を示す図である。
【図２】第１の実施形態に係る制御装置の構成を示すブロック図である。
【図３】第１の実施形態に係る制御装置の動作を示すフローチャートである。
【図４】第２の実施形態に係る制御装置の構成を示すブロック図である。
【図５】第２の実施形態に係るデータ属性列挙部による処理の一例を説明するための図である。
【図６】第２の実施形態に係るデータ属性列挙部による処理の一例を説明するための図である。
【図７】第２の実施形態に係る制御装置の動作を示すフローチャートである。
【図８】第３の実施形態に係る制御装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
なお、説明は以下の順序で行うものとする。
１．本開示の一実施形態に係る情報処理システムの概要
２．実施形態
２−１．第１の実施形態
２−１−１．構成
２−１−２．動作処理
２−２．第２の実施形態
２−２−１．構成
２−２−２．動作処理
２−３．第３の実施形態
２−３−１．概要
２−３−２．動作処理
３．まとめ
【００１５】
＜１．本開示の一実施形態に係る情報処理システムの概要＞
近年、クラウド技術の進歩や、スマートフォン、モバイル機器、ホームネットワーク等が普及してきたことに伴い、ヘテロジニアス環境において分散処理や並列処理を行うことが想定される。本実施形態に係る情報処理システムは、このようなヘテロジニアス環境において、処理効率を向上させるタスクの割り当てを行う。
【００１６】
本実施形態に係る情報処理システムは、制御装置および複数の処理装置を含む。制御装置は、処理対象の複数のタスクの内容、および複数の処理装置の特性に基づいて、処理装置にタスクを割り当てる。そして、処理装置は、制御装置から割り当てられたタスクを処理する。
【００１７】
より詳しくは、制御装置は、処理装置の構成に依存しない形で記述した一連のデータ処理を、そのとき利用可能な処理装置ごとの特性および通信コストを考慮して分割し各機器に割り当て、複数の処理装置を組み合わせて分散処理する。具体的には、まず、制御装置は、ユーザ入力により、またはバックエンドのサーバの制御により、データの処理手順を抽象的なデータパイプライン（パイプライン処理のための処理要素の処理計画）として、処理装置の構成に依存しない形で記述する。なお、パイプライン処理とは、処理要素を直列（１対１、１対多、多対１、または多対多）に連結し、ある要素の出力が次の要素の入力となるようにして、並行的に処理する技術である。以下、このデータパイプラインを形成する個々のデータ処理を、タスクとも称する。次いで、制御装置は、利用可能な処理装置を発見して、処理装置ごとの属性（例えば、ＧＰＵ、ＤＳＰ等を有し特定計算を高速処理可能という情報）や状態（例えば、過負荷状態であるという情報）を含む特性情報を取得する。次に、制御装置は、処理装置ごとの特性情報に基づくタスクの実行コスト、およびタスク間の通信コストを評価関数によって総合的に評価する。そして、制御装置は、この評価関数による評価結果に基づいて、タスクの割り当てを決定する。制御装置は、個々のタスクの実行コストだけでなく、タスク間の通信コストを総合的に評価することで、一連のデータ処理全体のパフォーマンスを向上させることができる。
【００１８】
上記特許文献１〜３では、データ処理をパイプラインとして記述することも、パイプラインで隣接するタスク間でのデータ転送のコストも考慮されていない。一方で、本実施形態に係る制御装置は、データ処理をパイプラインとして記述し、転送コストを考慮することで、複数の処理装置を活用した一連のデータ処理を、効率的に実行することが可能である。また、上記特許文献３では、データを処理して初めて得られる、データ量の変化を基準にして割り当てを行っているが、本実施形態に係る制御装置は、分散処理開始前の段階で、事前に分かる範囲の情報から処理の割り当てを決定する。また、本実施形態に係る制御装置は、評価関数のパラメータを調整することにより、システム全体の消費電力や処理時間等を最低にするための処理割り当てを求めることができる。
【００１９】
また、制御装置は、パイプラインで接続されたタスク間の通信の内容を調整することで、タスク間の通信量を削減することもできる。具体的には、制御装置は、パイプラインで接続された後段のタスクで必要としているデータの内容（精度、頻度等）に応じて前段のタスクから転送されるデータの内容を調整することで、前段のタスクから後段のタスクに送信されるデータ量を削減させる。制御装置は、タスク間の通信量を削減することで、一連のデータ処理全体のパフォーマンスをさらに向上させることができる。
【００２０】
以下、図１を参照して、本開示の一実施形態に係る情報処理システムの概要を説明する。
【００２１】
図１は、本開示の一実施形態に係る情報処理システムの概要を示す図である。図１に示すように、制御装置１はスマートフォンであり、処理装置３ＸはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）であり、処理装置３Ｙはサーバである。制御装置１は、処理装置３Ｘと無線通信を行うことが可能であり、また、アクセスポイント５を介して間接的に通信することも可能である。また、制御装置１は、アクセスポイント５およびネットワーク４を介して処理装置３Ｙと通信可能である。さらに、処理装置３Ｘと処理装置３Ｙは、相互にネットワーク４を介して通信可能である。制御装置１は、予めまたは動的に、処理装置３Ｘ、３Ｙの属性や状態を示す特性情報を取得して、取得した情報に基づいてタスクを割り当てる。以下では、処理装置３Ｘ、３Ｙを特に区別する必要がない場合、処理装置３と総称する。
【００２２】
ここで、制御装置１が、制御装置１を操作するユーザにより入力された符号２に示す３つのタスクを、処理装置３に実行させる例を想定する。図１に示すように、符号２に示すタスクは、タスクＡ、タスクＢ、タスクＣの順で処理順序が定められた、パイプラインを形成している。図１に示すＴｒａｎｓ−ＡＢはタスクＡとタスクＢとの間でのタスク間通信を示し、Ｔｒａｎｓ−ＢＣはタスクＢとタスクＣとの間でのタスク間通信を示す。
【００２３】
一例として、処理装置３ＸがタスクＡの処理に適しており、処理装置３ＹがタスクＢおよびタスクＣの処理に適している場合を想定する。Ｔｒａｎｓ−ＡＢにおけるデータ転送量が僅かである場合、制御装置１は、タスクＡを処理装置３Ｘに、タスクＢおよびタスクＣを処理装置３Ｙに割り当てる。一方で、Ｔｒａｎｓ−ＡＢにおけるデータ転送量が多い場合、ネットワーク４を介した多量のデータ通信を回避するために、制御装置１は、タスクＡおよびタスクＢを処理装置３Ｘに、タスクＣを処理装置３Ｙに割り当てる。このように、制御装置１は、処理装置３Ｘ、３Ｙの属性や状態を示す特性情報および通信環境に基づいて、一連のデータ処理全体のパフォーマンスを向上させることができる。
【００２４】
なお、図１では、制御装置１は、スマートフォンであるものとしたが、本技術はかかる例に限定されない。例えば、制御装置１は、ＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）、デジタルカメラ、デジタルビデオカメラ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ＰＣ、ノートＰＣ、タブレット端末、携帯電話端末、携帯用音楽再生装置、携帯用映像処理装置または携帯用ゲーム機器等であってもよい。他にも、制御装置１は、テレビ受像機、音楽再生装置、映像記録再生装置やその操作端末その他の人による操作を受け付ける装置であってもよい。さらに、クラウド上のサーバが制御装置１としての機能を有し、スマートフォン等がサーバの入出力装置として機能してもよい。他にも、スマートフォン等が制御装置１として機能し、腕時計型端末やＨＭＤ等がスマートフォンの入出力装置として機能してもよい。処理装置３Ｘ、処理装置３Ｙも同様に、ＰＣやサーバに限定されず、ＨＭＤ等やテレビ受像機等であってもよい。
【００２５】
以上、本開示の一実施形態に係る情報処理システムの概要を説明した。続いて、各実施形態について詳細に説明する。
【００２６】
＜２．実施形態＞
［２−１．第１の実施形態］
まず、図２を参照して、第１の実施形態に係る制御装置１−１の構成を説明する。
【００２７】
［２−１−１．構成］
図２は、第１の実施形態に係る制御装置１−１の構成を示すブロック図である。図２に示すように、制御装置１−１は、通信部１１、検出部１２、割当部１３、算出部１４−１、記憶部１５、および制御部１６を有する。また、制御装置１−１は、ネットワーク４を介して、処理装置３Ｘ、３Ｙ、３Ｚと接続されている。以下では、処理装置３Ｘ、３Ｙ、３Ｚを特に区別する必要がない場合、処理装置３と総称する。
【００２８】
（通信部１１）
通信部１１は、有線／無線により処理装置３との間でデータの送受信を行うための通信モジュールである。通信部１１は、例えば無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、登録商標）、赤外線通信、Ｂｌｕｅｔｏｏｔｈ（登録商標）、有線ＬＡＮ等の方式で、処理装置３と直接的に、またはネットワーク４や図示しないアクセスポイント５を介して間接的に通信する。
【００２９】
（検出部１２）
検出部１２は、通信部１１による外部との通信により、複数の処理装置３を検出する機能を有する。検出部１２が検出する処理装置３としては、例えば、ユーザが手元で操作している制御装置１−１と高速通信が可能なＬＡＮの上の機器群が挙げられる。具体的には、ユーザが、ホームネットワークに接続した機器を操作している場合、同じホームネットワークに接続されたホームサーバやＰＣなどが挙げられる。また、ユーザが、モバイル環境で機器を操作している場合、ユーザ個人が所有する機器群が形成するＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続されている、スマートフォン、モバイルルータ、ウェアラブルカメラなどが挙げられる。他にも、検出部１２が検出する処理装置３としては、例えば、ユーザが自宅外にいる場合には宅外からアクセスできる自宅の機器群、他人が所有する機器のうち、アクセス権がある機器群、クラウド上のサーバが挙げられる。
【００３０】
また、検出部１２は、検出した処理装置３から、処理装置ごとの属性（例えば、ＧＰＵ、ＤＳＰ等を有し特定計算を高速処理可能という情報）や状態（例えば、過負荷状態であるという情報）を含む特性情報を、通信部１１を介して取得する。検出部１２は、検出した処理装置３、および取得した特性情報を、割当部１３に出力する。
【００３１】
（割当部１３）
割当部１３は、複数のタスクの内容、および複数の処理装置３の属性又は状態の少なくともいずれかに基づいて、複数のタスクの処理をそれぞれ複数の処理装置３のいずれかに割り当てる機能を有する。ここで、割当部１３がタスクを割り当てる処理装置３は、検出部１２により検出された処理装置３である。
【００３２】
割当部１３によるタスクの割り当てについて、詳細に説明する。まず、割当部１３は、ユーザ入力により、またはバックエンドのサーバの制御により、処理対象である一連のデータ処理を、パイプラインを形成する複数のタスクとして記述する。次いで、割当部１３は、タスクと当該タスクを処理する処理装置の組み合わせ示す割り当ての全組み合わせ（割り当て候補）を求め、その組み合わせを示す情報を後述の記憶部１５に記憶する。そして、割当部１３は、後述の算出部１４−１により算出された評価値に基づいて、割り当て候補のいずれかを選択することにより、各タスクへの処理装置３の割り当てを決定する。
【００３３】
（算出部１４−１）
算出部１４−１は、割当部１３により求められた割り当て候補ごとに、タスクおよび当該タスクを処理する処理装置３の組み合わせに基づいて評価値を算出する機能を有する。図２に示すように、算出部１４−１は、実行コスト算出部１４１、および通信コスト算出部１４２として機能する。算出部１４−１は、実行コスト算出部１４１により算出された実行コスト、および通信コスト算出部１４２により算出された通信コストに基づいて、評価値を算出する。
【００３４】
・実行コスト算出部１４１
実行コスト算出部１４１は、タスクの内容に基づく標準コスト（第１の標準コスト）と当該タスクを処理する処理装置３の属性又は状態の少なくともいずれかに基づくコスト係数（第１のコスト係数）との積の総和に基づいて実行コストを算出する機能を有する。より詳しくは、まず、実行コスト算出部１４１は、実行コストを算出する対象の割り当て候補が含む、タスクと当該タスクを処理する処理装置３の組み合わせごとに、標準コストとコスト係数の積を算出する。そして、実行コスト算出部１４１は、算出した積を割り当て候補について総和することで、その割り当て候補の実行コストを算出する。
【００３５】
タスクの内容に基づく標準コストとは、標準機器がそのタスクを処理した場合のコストである。また、コスト係数とは、具体的な処理装置３がタスクを実行したときに、標準機器と比較して何倍のコストがかかるかを表す数値である。ここでのコストとは、消費電力や処理時間、処理負荷などを示す指標であり、どの指標を採用するかによって標準コストおよびコスト係数は変動する。実行コスト算出部１４１は、採用する指標に応じて、標準コストを算出し、コスト係数を決定する。コストは、ユーザ指示により様々な指標を採用し得るが、本明細書では消費電力を示す指標であるものとする。以下、表１に、コスト係数を決定する要素の一例を示す。表１に示すように、ハードウェアやストレージの読み書き速度といった属性、電池残量や温度などの状態により、コスト係数は変動する。
【００３６】
【表１】
2015088112.tif 000003
【００３７】
・通信コスト算出部１４２
通信コスト算出部１４２は、パイプラインが示すタスクの処理順序およびタスク間の通信環境に基づいて通信コストを算出する機能を有する。具体的には、通信コスト算出部１４２は、タスク間の通信量に基づく標準コスト（第２の標準コスト）とタスク間の通信環境に基づくコスト係数（第２のコスト係数）との積の総和に基づいて通信コストを算出する。より詳しくは、まず、通信コスト算出部１４２は、タスクの処理順序が示す、前段タスクと後段タスクとの組み合わせごとに、標準コストとコスト係数の積を算出する。ここで、コスト係数は、通信コストを算出する対象の割り当て候補が示す、前段タスクを処理する処理装置３および後段タスクを処理する処理装置３の通信環境により定まる。そして、通信コスト算出部１４２は、算出した積を割り当て候補について総和することで、その割り当て候補の通信コストを算出する。
【００３８】
複数のタスク間の通信量に基づく標準コストとは、前段のタスクと後段のタスクとの間で転送を要するデータを、標準通信技術で転送する際の通信コストである。また、コスト係数とは、具体的な処理装置３の内部または処理装置３と他の処理装置３との間で通信をした場合に、標準通信技術と比較して何倍のコストがかかるかを表す数値である。ここでのコストとは、実行コストの場合と同様に、消費電力や通信時間、通信負荷などを示す指標であり、どの指標を採用するかによって標準コストおよびコスト係数は変動する。通信コスト算出部１４２は、採用する指標に応じて、標準コストを算出し、コスト係数を決定する。コストは、ユーザ指示により様々な指標を採用し得るが、本明細書では消費電力を示す指標であるものとする。以下、表２に、コスト係数を決定する要素の一例を示す。いずれの場合も、通信速度が遅いほど、レイテンシーが大きいほど、コスト係数は大きくなる。
【００３９】
【表２】
2015088112.tif 000004
【００４０】
算出部１４−１は、以上説明した実行コスト算出部１４１により算出された実行コスト、および通信コスト算出部１４２により算出された通信コストに基づいて、評価値を算出する。算出部１４−１は、実行コストおよび通信コストの和や、重み付け和、乗算等して評価値を算出することが可能である。本明細書では一例として、算出部１４−１は、実行コストおよび通信コストの和により評価値を算出するものとする。算出部１４−１は、算出した評価値を記憶部１５に記憶する。
【００４１】
（記憶部１５）
記憶部１５は、所定の記録媒体に対してデータの記録再生を行う部位である。記憶部１５は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）として実現される。もちろん記録媒体としては、フラッシュメモリ等の固体メモリ、固定メモリを内蔵したメモリカード、光ディスク、光磁気ディスク、ホログラムメモリなど各種考えられ、記憶部１５としては採用する記録媒体に応じて記録再生を実行できる構成とされればよい。
【００４２】
本実施形態に係る記憶部１５は、割当部１３により求められた割り当て候補、および選択された割り当て候補を記憶する。また、記憶部１５は、算出部１４−１により算出された評価値を記憶する。
【００４３】
（制御部１６）
制御部１６は、演算処理装置および制御装置として機能し、各種プログラムに従って制御装置１−１内の動作全般を制御する。制御部１６は、例えばＣＰＵ、マイクロプロセッサによって実現される。なお、制御部１６は、使用するプログラムや演算パラメータ等を記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、および適宜変化するパラメータ等を一時記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含んでいてもよい。
【００４４】
本実施形態に係る制御部１６は、割当部１３による割り当てに基づいて、複数の処理装置３が複数のタスクを処理するよう制御する機能を有する。詳しくは、まず、制御部１６は、記憶部１５に記憶された、割当部１３により決定された割り当てを参照する。そして、制御部１６は、参照した割り当てに基づき、パイプラインが示す処理順序に沿って各タスクを割当部１３により割り当てられた処理装置３が処理するよう、通信部１１を介して処理装置３を制御する。
【００４５】
（ネットワーク４）
ネットワーク４は、ネットワーク４に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク４は、ホームネットワーク、インターネットなどにより実現される。
【００４６】
（処理装置３）
処理装置３は、制御装置１−１と通信する通信部と、通信部による制御装置１−１との通信に基づいて制御装置１−１により割り当てられたタスクを処理する処理部と、を有する情報処理装置である。処理装置３は、自身の属性又は状態の少なくともいずれかを示す特性情報を制御装置１−１に送信し、制御装置１−１により割り当てられたタスクを受信して処理する。より詳しくは、処理装置３の通信部は、まず、自身の特性情報を制御装置１−１に送信する。次いで、処理装置３の処理部は、制御装置１−１より割り当てられたタスクを、制御装置１−１または前段のタスクを処理した他の処理装置３からの入力情報に基づいて処理する。そして、処理装置３の通信部は、処理部による出力情報を、制御装置１−１または後段のタスクを処理する他の処理装置３に出力する。処理装置３は、例えばクラウド上のサーバ、スマートフォン、ＨＭＤ、デジタルカメラ、デジタルビデオカメラ、ＰＤＡ、ＰＣ、ノートＰＣ、タブレット端末、携帯電話端末、携帯用音楽再生装置、携帯用映像処理装置または携帯用ゲーム機器等、テレビ受像機、音楽再生装置、映像記録再生装置やその操作端末として実現される。
【００４７】
以上、本実施形態に係る制御装置１−１の構成を説明した。続いて、図３を参照して、制御装置１−１の動作を説明する。
【００４８】
［２−１−２．動作処理］
図３は、第１の実施形態に係る制御装置１−１の動作を示すフローチャートである。
【００４９】
まず、ステップＳ１０２で、制御装置１−１は、処理装置３を検出する。詳しくは、検出部１２は、通信部１１による外部との通信により、タスクを処理可能な処理装置３を検出する。このとき、検出部１２は、検出した処理装置３から、処理装置ごとの属性や状態を含む特性情報を取得する。例えば、図１に示した例では、検出部１２は、タスクＡ、タスクＢ、タスクＣを処理可能な処理装置３として、処理装置３Ｘおよび処理装置３Ｙを検出する。
【００５０】
次いで、ステップＳ１０４で、制御装置１−１は、タスク群の全ての割り当て候補を記憶する。詳しくは、割当部１３は、タスクと当該タスクを処理する処理装置の組み合わせ（割り当て候補）を求め、その組み合わせを示す情報を記憶部１５に記憶する。例えば、図１に示した例においては、割当部１３は、以下の表３に示す８通りの割り当て候補を記憶部１５に記憶する。
【００５１】
【表３】
2015088112.tif 000005
【００５２】
次に、ステップＳ１０６で、制御装置１−１は、評価値を算出する割り当て候補を選択する。詳しくは、算出部１４−１は、割当部１３により求められた割り当て候補の中から、評価値を算出する対象となる割り当て候補を選択する。この後、算出部１４−１は、選択した割り当て候補についての評価値を、Ｓ１０８〜Ｓ１１２で算出する。
【００５３】
次いで、ステップＳ１０８で、制御装置１−１は、実行コストを算出する。より詳しくは、実行コスト算出部１４１は、タスクの内容および当該タスクを処理する処理装置３の属性又は状態の少なくともいずれかに基づいて実行コストを算出する。以下、ステップＳ１０８における処理を詳細に説明する。
【００５４】
まず、実行コスト算出部１４１は、各タスクの標準コスト（標準機器で実行したときのコスト）を算出する。図１に示した例では、実行コスト算出部１４１は、以下の表４に示す標準コストを算出する。なお、表４に示した数値は、大きいほど消費電力等のコストが大きいことを示している。
【００５５】
【表４】
2015088112.tif 000006
【００５６】
次いで、実行コスト算出部１４１は、コスト係数を決定する。図１に示した例では、実行コスト算出部１４１は、以下の表５に示すコスト係数を決定する。表５に示すように、例えば、タスクＢは並列性が高い計算を多く含んでいる場合、ＧＰＵを有さない処理装置３Ｘでは低速計算（コスト係数１０）となるが、ＧＰＵを有する処理装置３Ｙでは高速計算（コスト係数２）となる。このように、コスト係数は、タスクの特性と機器の特性によって定まる。
【００５７】
【表５】
2015088112.tif 000007
【００５８】
次に、実行コスト算出部１４１は、割り当て候補が含む、タスクと当該タスクを処理する処理装置３の組み合わせごとに、標準コストとコスト係数との積を算出する。図１に示した例では、実行コスト算出部１４１は、以下の表６に示すように、上記表４に示した標準コストと上記表５で示したコスト係数との積を算出する。
【００５９】
【表６】
2015088112.tif 000008
【００６０】
そして、実行コスト算出部１４１は、算出した積を割り当て候補について総和することで、その割り当て候補の実行コストを算出する。例えば、図１に示した例においては、表３に示した割り当て［３］の実行コストは、以下の表７に示す通りとなり、その和は１２となる。
【００６１】
【表７】
2015088112.tif 000009
【００６２】
以上、ステップＳ１０８における詳細な処理を説明した。
【００６３】
次に、ステップＳ１１０で、制御装置１−１は、通信コストを算出する。詳しくは、通信コスト算出部１４２は、パイプラインが示すタスクの処理順序およびタスク間の通信環境に基づいて、通信コストを算出する。以下、ステップＳ１１０における処理を詳細に説明する。
【００６４】
まず、通信コスト算出部１４２は、タスク間の通信量に基づく標準コスト（標準通信技術での通信コスト）を算出する。図１に示した例では、通信コスト算出部１４２は、以下の表８に示す標準コストを算出する。なお、表８に示した数値は、大きいほど消費電力等のコストが大きいことを示している。
【００６５】
【表８】
2015088112.tif 000010
【００６６】
次いで、通信コスト算出部１４２は、コスト係数を決定する。図１に示した例では、通信コスト算出部１４２は、以下の表９に示すコスト係数を決定する。表９に示すように、処理装置３Ｘまたは処理装置３Ｙ内部の１つのＣＰＵ上で実行される２つのプロセス間の通信と比較して、処理装置３Ｘと処理装置３Ｙとの間の２つのプロセス間の通信は３倍のコストがかかる。このように、コスト係数は、タスク間の通信環境によって定まる。
【００６７】
【表９】
2015088112.tif 000011
【００６８】
次に、通信コスト算出部１４２は、タスクの処理順序が示す、前段タスクと後段タスクとの組み合わせごとに、標準コストとコスト係数の積を算出する。図１に示した例では、通信コスト算出部１４２は、以下の表１０に示すように、上記表８に示した標準コストと上記表９に示したコスト係数との積を算出する。
【００６９】
【表１０】
2015088112.tif 000012
【００７０】
そして、通信コスト算出部１４２は、算出した積を割り当て候補について総和することで、その割り当て候補の通信コストを算出する。例えば、図１に示した例においては、表３に示した割り当て［３］の通信コストは、以下の表１１に示す通りとなり、その和は１２となる。
【００７１】
【表１１】
2015088112.tif 000013
【００７２】
以上、ステップＳ１１０における詳細な処理を説明した。
【００７３】
次いで、ステップＳ１１２で、制御装置１−１は、実行コストおよび通信コストの和を、評価値として記憶する。より詳しくは、算出部１４−１は、上記ステップＳ１０８で算出した実行コストおよび上記ステップＳ１１０で算出した通信コストの和を、上記ステップＳ１０６で選択した割り当て候補の評価値として記憶部１５に記憶する。
【００７４】
次に、ステップＳ１１４で、制御装置１−１は、すべての割り当て候補について評価値を算出したか否かを判定する。例えば、図１に示した例においては、算出部１４−１は、上記表３に示した８通りのすべての割り当て候補について、評価値を算出して記憶部１５に記憶したか否かを判定する。
【００７５】
まだ評価値を算出していない割り当て候補があると判定された場合（Ｓ１１４／ＮＯ）、処理は再度ステップＳ１０６に戻る。
【００７６】
一方で、すべての割り当て候補について評価値を算出したと判定された場合（Ｓ１１４／ＹＥＳ）、ステップＳ１１６で、制御装置１−１は、全ての割り当て候補の評価値を比較して、割り当てを決定する。より詳しくは、割当部１３は、すべての割り当て候補の中から、評価値が最も低い（コストが低い）割り当て候補を選択する。例えば、図１に示した例では、記憶部１５は、以下の表１２に示すように、割り当て候補ごとに算出部１４−１により算出された実行コスト、通信コスト、および評価値を記憶している。割当部１３は、この中から、最も評価値が低い割り当て候補である、割り当て［３］を選択する。表３に示すように、この割り当て［３］では、３つのタスクの処理のために処理装置３Ｘおよび処理装置３Ｙでデータを往復させることになる。このような割り当て候補が選択されることは、通信コストの観点から不合理とも考えられるが、表５に示すように、タスクＢの処理を処理装置３Ｘで実行するためのコスト係数が非常に大きいために起きている。
【００７７】
【表１２】
2015088112.tif 000014
【００７８】
以上、第１の実施形態に係る制御装置１−１の動作を説明した。
【００７９】
［２−２．第２の実施形態］
本実施形態は、パイプラインが示す処理順序が連続する２つのタスクについて、後段のタスクの内容に応じて前段のタスクから転送されるデータを変更することで、タスク間の通信コストを削減し、一連のデータ処理全体のパフォーマンスを向上させる。第１の実施形態では、図３のステップＳ１１０について上記説明したように、ある割り当て候補の通信コストは、表８〜表１１に示したテーブルにより一律に確定した。これに対し、本実施形態では、タスク間で動的に通信内容の調整を行うことにより、通信コストをさらに削減することが可能である。以下、図４を参照して、本実施形態に係る制御装置１−２の構成を説明する。
【００８０】
［２−２−１．構成］
図４は、第２の実施形態に係る制御装置１−２の構成を示すブロック図である。図４に示すように、制御装置１−２は、図２を参照して上記説明した制御装置１−１と同様に、通信部１１、検出部１２、割当部１３、記憶部１５、および制御部１６を有し、また、算出部１４−１に代えて算出部１４−２を有する。算出部１４−２は、算出部１４−１の構成に加えて、データ属性列挙部１４３、および変更コスト算出部１４４を有する。
【００８１】
・データ属性検出部１４３
データ属性検出部１４３は、後段のタスクの内容に基づいて、前後関係にある各タスク間において転送を要するデータの属性を検出する機能を有する。より詳しくは、データ属性検出部１４３は、タスク間で転送を要するデータの各属性について、後段のタスクが受け入れられる最低限の属性値を検出する。この最低限の属性値とは、属性値をその値に変換することで、転送するデータ量が最小となるように圧縮される属性値を意味する。以下、図５、図６を参照して、データ属性列挙部１４３が検出する最小限の属性値について具体的に説明する。
【００８２】
図５、図６は、第２の実施形態に係るデータ属性列挙部１４３による処理の一例を説明するための図である。図５に示す例では、処理装置３ＸはタスクＡを実行し、処理装置３ＹはタスクＣを実行する。その後、処理装置３Ｙは、処理装置３Ｘとの通信（Ｔｒａｎｓ−ＡＢ）によるタスクＡからのデータ転送、および処理装置３Ｙ内部でのプロセス間通信（Ｔｒａｎｓ−ＣＢ）によるタスクＣからのデータ転送を受けて、タスクＢを実行する。このとき、処理装置３Ｙは、図６に示すように、タスクＡから転送されるデータとタスクＣから転送されるデータとを同期させながら受け取って、タスクＢを実行するものとする。
【００８３】
図６では、タスクＡおよびタスクＣから転送されるデータストリームを形成するフレーム６の流れを示している。図６に示す通り、タスク間通信Ｔｒａｎｓ−ＣＢは低周波数であり、タスク間通信Ｔｒａｎｓ−ＡＢは高周波数である。処理装置３Ｙは、同期されたデータのみを用いてタスクＢを実行する場合、フレーム６Ａおよび６Ｄ、フレーム６Ｂおよび６Ｆ、フレーム６Ｃおよび６Ｈを用いてタスクＢを実行することになる。即ち、フレーム６Ｅ、６Ｇは用いられず無駄となる。このため、タスク間通信Ｔｒａｎｓ−ＡＢの周波数は、処理装置３Ｘで事前に低周波数に変換されていても、タスクＢの処理内容には影響しない。よって、データ属性検出部１４３は、タスク間通信Ｔｒａｎｓ−ＡＢに係る周波数の最低限の属性値は低周波数である、と検出する。このような周波数の差異は、例えば一方がセンサデータであり、他方がフレームレートの高い映像である場合などに生じ得る。周波数の他にも、データ属性列挙部１４３は、例えばタスクＡおよびタスクＢから転送されるデータの精度（質）について、最低限の属性値は低精度である、と検出することもできる。転送データの各属性が最低限の属性値となった場合、データ量が削減されるため、通信コストが削減される。後述の割当部１３は、転送データの各属性に最低限の属性値を割り当てることで、タスク間で転送されるデータ量を圧縮して通信コストを削減することができる。
【００８４】
以下の表１３に、データの属性ごとの最低限の属性値の検出方法の例を示した。表１３に示すように、例えば静止画であれば、データ属性検出部１４３は、後段タスクが必要とするもっとも粗い解像度や白黒画像を、最低限の属性値として検出する。
【００８５】
【表１３】
2015088112.tif 000015
2015088112.tif 000016
【００８６】
・変更コスト算出部１４４
変更コスト算出部１４４は、タスク間で転送を要するデータの各属性を、データ属性列挙部１４３により求められた最低限の属性値に変更する場合の、変更に要するコスト（変更コスト）を算出する機能を有する。例えば、動画については、変更コスト算出部１４４は、ＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）映像からＳＤ（Ｓｔａｎｄａｒｄ  Ｄｅｆｉｎｉｔｉｏｎ）映像に再エンコードするために要するコストを算出する。変更コスト算出部１４４は、算出した変更コストを、記憶部１５に記憶する。
【００８７】
・通信コスト算出部１４２
通信コスト算出部１４２は、タスク間で転送を要するデータの各属性を、データ属性列挙部１４３により求められた最低限の属性値に変更した場合の、通信コストを算出する。この通信コストを、以下では変更後の属性値による通信コストとも称する。変更後の属性値による通信コストの算出方法は、第１の実施形態において説明したものと同様であるため、ここでの説明は省略する。通信コスト算出部１４２は、変更コスト、および変更後の属性値による通信コストの和により、通信コストを算出する。
【００８８】
（割当部１３）
割当部１３は、パイプラインにおけるタスクの処理順序が示す、前段タスク（第１のタスク）と後段タスク（第２のタスク）との組み合わせごとに、後段のタスクの内容に応じた前段のタスクと後段のタスクとの間の通信設定（転送データの属性値）を割り当てる。具体的には、割当部１３は、タスク間で転送を要するデータの各属性を、データ属性列挙部１４３により求められた最低限の属性値に変更した場合の通信コストおよび変更しない場合の通信コストを比較結果に基づいて、属性値の割り当てを決定する。その後、割当部１３は、決定した割り当てによる通信コスト、および実行コストの和である評価値に基づいて、第１の実施形態について上記説明したように、各タスクの処理を処理装置３に割り当てる。なお、割当部１３は、所定時間ごとに定期的に割り当ての更新を行ってもよいし、所定数のタスクの処理が終了するごとに割り当ての更新を行ってもよい。
【００８９】
以上、本実施形態に係る制御装置１−２の構成を説明した。続いて、制御装置１−２の動作を説明する。
【００９０】
［２−２−２．動作処理］
第２の実施形態に係る制御装置１−２は、図３に示した第１の実施形態に係る制御装置１−１と同様の動作を行う。ただし、本実施形態に係る制御装置１−２は、図３に示したステップＳ１１０において、図７に示す動作により通信コストを算出する。以下、図７を参照して、ステップＳ１１０における動作を詳細に説明する。
【００９１】
図７は、第２の実施形態に係る制御装置１−２の動作を示すフローチャートである。図７に示すように、まず、ステップＳ２０２で、制御装置１−２は、転送データの属性のうち変更可能なものを列挙する。詳しくは、データ属性検出部１４３は、後段タスクの内容に基づいて、前段タスクから後段タスクへの転送データの属性のうち属性値を変更可能なものを検出する。例えば、図５および図６に示した例では、データ属性検出部１４３は、周波数とデータ精度の２つの属性を検出したものとする。
【００９２】
次いで、ステップＳ２０４で、制御装置１−２は、属性ごとに、後段タスクの許容最低限の属性値を検出する。詳しくは、データ属性検出部１４３は、タスク間で転送を要するデータの各属性について、後段のタスクが受け入れられる最低限の属性値を検出する。例えば、図５および図６に示した例では、データ属性検出部１４３は、以下の表１４に示す属性値を検出する。表１４に示すように、データ属性検出部１４３は、現状の転送データの周波数は高周波数（Ｈｉ）であり精度は高精度（Ｈｉ）であるが、最低限の属性値は低周波数（Ｌｏｗ）であり低精度（Ｌｏｗ）であると検出する。
【００９３】
【表１４】
2015088112.tif 000017
【００９４】
次に、ステップＳ２０６で、制御装置１−２は、属性値のすべての割り当て候補を記憶する。詳しくは、割当部１３は、タスク間で転送を要するデータの各属性を、変更する場合と変更しない場合の組み合わせ（割り当て候補）を求め、その組み合わせを示す情報を記憶部１５に記憶する。例えば、図５および図６に示した例では、割当部１３は、以下の表１５に示す４通りの割り当て候補を記憶部１５に記憶する。
【００９５】
【表１５】
2015088112.tif 000018
【００９６】
次いで、ステップＳ２０８で、制御装置１−２は、通信コストを算出する割り当て候補を選択する。詳しくは、算出部１４−２は、割当部１３により求められた割り当て候補の中から、通信コストを算出する対象となる割り当て候補を選択する。この後、算出部１４−２は、選択した割り当て候補についての通信コストを、Ｓ２１０〜Ｓ２１４で算出する。
【００９７】
次に、ステップＳ２１０で、制御装置１−２は、変更コストを算出する。詳しくは、変更コスト算出部１４４は、現状の属性値のまま変更しない場合のコスト、およびデータ属性検出部１４３により検出された最低限の属性値に変更する場合のコストを算出する。例えば、図５および図６に示した例では、変更コスト算出部１４４は、以下の表１６に示す属性値を検出する。
【００９８】
【表１６】
2015088112.tif 000019
【００９９】
次いで、ステップＳ２１２で、制御装置１−２は、変更後の属性値による通信コストを算出する。ここでの処理は、第１の実施形態に係る制御装置１−１による処理（図３におけるステップＳ１１０）と同様であるため、ここでの詳細な説明は省略する。
【０１００】
次に、ステップＳ２１４で、制御装置１−２は、変更コストおよび変更後の属性値による通信コストの和を、通信コストとして記憶する。詳しくは、算出部１４−２は、変更コスト算出部１４４により算出された変更コスト、および通信コスト算出部１４２により算出された変更後の属性値による通信コストの和を、上記ステップＳ２０８で選択した割り当て候補の通信コストとして記憶する。
【０１０１】
次いで、ステップＳ２１６で、制御装置１−２は、すべての割り当て候補について通信コストを算出したか否かを判定する。例えば、図５および図６に示した例においては、算出部１４−２は、上記表１５に示した４通りのすべての割り当て候補について、通信コストを算出して記憶部１５に記憶したか否かを判定する。
【０１０２】
まだ通信コストを算出していない割り当て候補があると判定された場合（Ｓ２１６／ＮＯ）、処理は再度ステップＳ２０８に戻る。
【０１０３】
一方で、すべての割り当て候補について通信コストを算出したと判定された場合（Ｓ２１６／ＹＥＳ）、ステップＳ２１８で、制御装置１−２は、全ての割り当て候補の通信コストを比較して、割り当てを決定する。より詳しくは、割当部１３は、すべての割り当て候補の中から、通信コストが最も低い割り当て候補を選択する。例えば、図５および図６に示した例では、記憶部１５は、以下の表１７に示すように、割り当て候補ごとに算出部１４−２により算出された通信コストを記憶している。割当部１３は、この中から、最も通信コストが低い割り当て候補である、割り当て［２］を選択する。
【０１０４】
【表１７】
2015088112.tif 000020
【０１０５】
なお、上記例では、Ｔｒａｎｓ−ＡＢを対象として属性値を割り当てる例を説明したが、制御装置１−２は、Ｔｒａｎｓ−ＣＢを対象として属性値を割り当ててもよい。
【０１０６】
以上、第２の実施形態に係る制御装置１−２の動作を説明した。
【０１０７】
［２−３．第３の実施形態］
［２−３−１．概要］
本実施形態は、処理装置３が割り当てられたタスクを処理している間に割り当てを更新する形態である。より詳しくは、割当部１３は、複数の処理装置３がタスクを処理している間に、随時通信部１１を介して処理装置３の特性情報を取得しながら割り当てを更新する。実行コストを算出する際のコスト係数や、通信コストを算出する際のコスト係数は、時々刻々と変化する様々な要因により変化し得る。一例として、以下の表１８に、コスト係数の変化要因となる要素を示す。
【０１０８】
【表１８】
2015088112.tif 000021
【０１０９】
算出部１４（算出部１４−１または算出部１４−２）は、このような要因に応じて時々刻々と変化するコスト係数に基づいて評価値を算出し、割当部１３は、算出された評価値に基づいて割り当てを更新する。制御部１６は更新された割り当てに基づいて、複数の処理装置３にタスクを処理させる。これにより、制御装置１は、時々刻々と変化する処理装置３の状態に応じて、一連のデータ処理全体のパフォーマンスを向上させることができる。
【０１１０】
例えば、制御装置１が、当初は一部の処理をクラウド上のサーバに依頼するように割り当てをしたが、実行している最中に電波状況が悪くなりクラウド上のサーバとの通信コストが非常に増大した場合を想定する。このような場合、制御装置１は、クラウド上のサーバに割り振っていた処理を手元にある機器上で行うように、処理の再割り当てを行う。これにより、制御装置１は、電波状況の悪化による通信コストの増大を回避して、一連のデータ処理全体のパフォーマンスを向上させることができる。
【０１１１】
なお、本実施形態に係る制御装置１は、割り当てを更新する際、上記説明した第１の実施形態に係る割り当て方法または第２の実施形態に係る割り当て方法のいずれかを採用し得る。本実施形態に係る制御装置１の構成は、図２を参照して上記説明した第１の実施形態に係る制御装置１−１、または図４を参照して上記説明した第２の実施形態に係る制御装置１−２と同様であるため、ここでの説明を省略する。以下、図８を参照して、本実施形態に係る制御装置１の動作を説明する。
【０１１２】
［２−３−２．動作処理］
図８は、第３の実施形態に係る制御装置１の動作を示すフローチャートである。図８に示すように、まず、ステップＳ３０２で、制御装置１は、評価値最小の割り当てを決定する。
【０１１３】
次いで、ステップＳ３０４で、制御装置１は、決定した割り当てに基づいて、各処理装置３をセットアップする。詳しくは、制御部１６は、上記ステップＳ３０２で決定した割り当てに基づいて、タスクを処理する処理装置３との通信確立や処理装置３でのメモリ確保等、タスク処理のための準備を行う。
【０１１４】
次に、ステップＳ３０６で、制御装置１は、各処理装置３でのデータ処理を制御する。詳しくは、制御部１６は、上記ステップＳ３０２で決定した割り当てに基づいて、処理装置３にタスクを処理させる。
【０１１５】
次いで、ステップＳ３０８で、制御装置１は、データ処理が終了したか否かを判定する。詳しくは、制御部１６は、いずれかの処理装置３がタスクを処理中であるか否か、またタスク間で通信中であるか否かにより、データ処理が終了したか否かを判定する。
【０１１６】
データ処理が終了していない場合（Ｓ３０８／ＮＯ）、処理は再度ステップＳ３０２に戻る。これにより、制御装置１は、データ処理が終了するまで割り当ての更新を継続して、一連のデータ処理全体のパフォーマンスを向上させることができる。
【０１１７】
一方で、データ処理が終了した場合（Ｓ３０８／ＹＥＳ）、制御装置１は、割り当ての更新処理を終了する。
【０１１８】
以上、第３の実施形態に係る制御装置１の動作を説明した。
【０１１９】
＜３．まとめ＞
以上説明したように、本開示によれば、制御装置１は、ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能である。具体的には、制御装置１は、タスクの内容に応じてそのタスクに対する処理能力が高い機器を効率的に利用し、またタスク間の通信環境に応じて通信量の削減することで、システム全体としての処理の高速化および省電力化を達成することができる。また、本開示によれば、一連のデータ処理を、パイプラインを形成する複数のタスクとして記述することで、機器構成の変化に対して柔軟に対応可能なデータ処理を実現することができる。
【０１２０】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２１】
例えば、上記実施形態では、装置ごとの特性が大きく異なるヘテロジニアス環境を想定した割り当てについて説明したが、本技術はかかる例に限定されない。例えば、本開示に係る技術は、１つの装置に含まれる複数のＣＰＵやＧＰＵ等の演算装置の特性が大きく異なる環境において、各演算装置にタスクを割り当てる際にも同様に適用可能である。
【０１２２】
また、情報処理装置に内蔵されるＣＰＵ、ＲＯＭ及びＲＡＭ等のハードウェアに、上記制御装置１、処理装置３の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、当該コンピュータプログラムを記録した記録媒体も提供される。
【０１２３】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１２４】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、
を備える制御装置。
（２）
前記制御装置は、
通信部と、
前記通信部による外部との通信により前記複数の処理装置を検出する検出部と、
をさらに備え、
前記割当部は、前記複数のタスクの処理をそれぞれ前記検出部により検出された前記複数の処理装置のいずれかに割り当てる、前記（１）に記載の制御装置。
（３）
前記制御装置は、前記割当部による割り当て候補ごとに、前記タスクおよび当該タスクを処理する前記処理装置の組み合わせに基づいて評価値を算出する算出部をさらに備え、
前記割当部は、前記算出部により算出された前記評価値に基づいて前記割り当て候補のいずれかを選択する、前記（１）または（２）に記載の制御装置。
（４）
前記算出部は、前記タスクの内容に基づく第１の標準コストと当該タスクを処理する前記処理装置の属性又は状態の少なくともいずれかに基づく第１のコスト係数との積の総和に基づいて前記評価値を算出する、前記（３）に記載の制御装置。
（５）
前記複数のタスクはパイプラインを形成し、
前記算出部は、前記パイプラインが示すタスクの処理順序およびタスク間の通信環境にさらに基づいて前記評価値を算出する、前記（３）または（４）に記載の制御装置。
（６）
前記算出部は、前記タスク間の通信量に基づく第２の標準コストと前記タスク間の通信環境に基づく第２のコスト係数との積の総和に基づいて前記評価値を算出する、前記（５）に記載の制御装置。
（７）
前記割当部は、前記パイプラインが示す処理順序が第１の前記タスクの次である第２の前記タスクの内容に基づいて、第１の前記タスクと第２の前記タスクとの間の通信設定を割り当てる、前記（５）または（６）に記載の制御装置。
（８）
前記割当部は、前記複数の処理装置が前記複数のタスクを処理している間に割り当てを更新する、前記（１）〜（７）のいずれか一項に記載の制御装置。
（９）
前記制御装置は、前記割当部による割り当てに基づいて、前記複数の処理装置が前記複数のタスクを処理するよう制御する制御部をさらに備える、前記（１）〜（８）のいずれか一項に記載の制御装置。
（１０）
自身の属性又は状態の少なくともいずれかを示す情報を制御装置に送信し、前記制御装置により割り当てられたタスクを受信する通信部と、
前記通信部により受信された前記タスクを処理する処理部と、
を備える処理装置。
（１１）
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てるステップ、
を備える、情報処理装置のプロセッサにより実行される情報処理方法。
（１２）
コンピュータを、
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、
を備える制御装置として機能させるためのプログラム。
【符号の説明】
【０１２５】
１    制御装置
１１    通信部
１２    検出部
１３    割当部
１４    算出部
１４１    実行コスト算出部
１４２    通信コスト算出部
１４３    データ属性検出部
１４４    変更コスト算出部
１５    記憶部
１６    制御部
２    タスク
３    処理装置
４    ネットワーク
５    アクセスポイント
６    フレーム
【図１】
2015088112.tif 000022
【図２】
2015088112.tif 000023
【図３】
2015088112.tif 000024
【図４】
2015088112.tif 000025
【図５】
2015088112.tif 000026
【図６】
2015088112.tif 000027
【図７】
2015088112.tif 000028
【図８】
2015088112.tif 000029