JP2015088112A - 制御装置、処理装置及び情報処理方法 - Google Patents

制御装置、処理装置及び情報処理方法 Download PDF

Info

Publication number
JP2015088112A
JP2015088112A JP2013228340A JP2013228340A JP2015088112A JP 2015088112 A JP2015088112 A JP 2015088112A JP 2013228340 A JP2013228340 A JP 2013228340A JP 2013228340 A JP2013228340 A JP 2013228340A JP 2015088112 A JP2015088112 A JP 2015088112A
Authority
JP
Japan
Prior art keywords
processing
task
control device
unit
communication
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.)
Pending
Application number
JP2013228340A
Other languages
English (en)
Inventor
健 宮下
Takeshi Miyashita
健 宮下
泰徳 磯部
Hironori Isobe
泰徳 磯部
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2013228340A priority Critical patent/JP2015088112A/ja
Priority to US14/509,384 priority patent/US9766942B2/en
Publication of JP2015088112A publication Critical patent/JP2015088112A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能な制御装置、処理装置及び情報処理方法を提案する。
【解決手段】複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、を備える制御装置。
【選択図】図1

Description

本開示は、制御装置、処理装置及び情報処理方法に関する。
近年、情報処理装置で処理するタスクが大規模化するに伴い、複数のコア、又は複数の情報処理装置による分散処理や並列処理が多く行われている。そして、この分散処理や並列処理の処理効率を向上させるために、様々な技術が開発されている。
例えば、下記特許文献1では、マルチCPU(Central Processing Unit)環境において、CPUの負荷を監視してタスク割り当てを行うことにより、CPU負荷の均等化を行う技術が開示されている。
また、下記特許文献2では、Cellチップの複数のSPU(サブ処理ユニット)の処理能力を時分割して、タスクを割り当てる技術が開示されている。
下記特許文献1および2は、ひとつの装置においてタスクを割り当てる技術であるが、他にも、複数の計算ノードの間での処理の割り当てに関する技術が開発されている。例えば、下記特許文献3では、分散処理システムにおいて、処理の分割の仕方によってデータ量がどのように変化するのかをチェックして、分散処理の度合いを変更する技術が開示されている。
特開平1−283663号公報 特開2008−146503号公報 特開2010−244470号公報
しかし、上記特許文献で開示された技術では、タスクを処理する装置は均質であり、装置ごとの特性が大きく異なるヘテロジニアス環境が想定されていなかった。そこで、本開示では、ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能な、新規かつ改良された制御装置、処理装置及び情報処理方法を提案する。
本開示によれば、複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、を備える制御装置が提供される。
また、本開示によれば、自身の属性又は状態の少なくともいずれかを示す情報を制御装置に送信し、前記制御装置により割り当てられたタスクを受信する通信部と、前記通信部により受信された前記タスクを処理する処理部と、を備える処理装置が提供される。
また、本開示によれば、複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てるステップ、を備える、情報処理装置のプロセッサにより実行される情報処理方法が提供される。
以上説明したように本開示によれば、ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能である。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
本開示の一実施形態に係る情報処理システムの概要を示す図である。 第1の実施形態に係る制御装置の構成を示すブロック図である。 第1の実施形態に係る制御装置の動作を示すフローチャートである。 第2の実施形態に係る制御装置の構成を示すブロック図である。 第2の実施形態に係るデータ属性列挙部による処理の一例を説明するための図である。 第2の実施形態に係るデータ属性列挙部による処理の一例を説明するための図である。 第2の実施形態に係る制御装置の動作を示すフローチャートである。 第3の実施形態に係る制御装置の動作を示すフローチャートである。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.本開示の一実施形態に係る情報処理システムの概要
2.実施形態
2−1.第1の実施形態
2−1−1.構成
2−1−2.動作処理
2−2.第2の実施形態
2−2−1.構成
2−2−2.動作処理
2−3.第3の実施形態
2−3−1.概要
2−3−2.動作処理
3.まとめ
<1.本開示の一実施形態に係る情報処理システムの概要>
近年、クラウド技術の進歩や、スマートフォン、モバイル機器、ホームネットワーク等が普及してきたことに伴い、ヘテロジニアス環境において分散処理や並列処理を行うことが想定される。本実施形態に係る情報処理システムは、このようなヘテロジニアス環境において、処理効率を向上させるタスクの割り当てを行う。
本実施形態に係る情報処理システムは、制御装置および複数の処理装置を含む。制御装置は、処理対象の複数のタスクの内容、および複数の処理装置の特性に基づいて、処理装置にタスクを割り当てる。そして、処理装置は、制御装置から割り当てられたタスクを処理する。
より詳しくは、制御装置は、処理装置の構成に依存しない形で記述した一連のデータ処理を、そのとき利用可能な処理装置ごとの特性および通信コストを考慮して分割し各機器に割り当て、複数の処理装置を組み合わせて分散処理する。具体的には、まず、制御装置は、ユーザ入力により、またはバックエンドのサーバの制御により、データの処理手順を抽象的なデータパイプライン(パイプライン処理のための処理要素の処理計画)として、処理装置の構成に依存しない形で記述する。なお、パイプライン処理とは、処理要素を直列(1対1、1対多、多対1、または多対多)に連結し、ある要素の出力が次の要素の入力となるようにして、並行的に処理する技術である。以下、このデータパイプラインを形成する個々のデータ処理を、タスクとも称する。次いで、制御装置は、利用可能な処理装置を発見して、処理装置ごとの属性(例えば、GPU、DSP等を有し特定計算を高速処理可能という情報)や状態(例えば、過負荷状態であるという情報)を含む特性情報を取得する。次に、制御装置は、処理装置ごとの特性情報に基づくタスクの実行コスト、およびタスク間の通信コストを評価関数によって総合的に評価する。そして、制御装置は、この評価関数による評価結果に基づいて、タスクの割り当てを決定する。制御装置は、個々のタスクの実行コストだけでなく、タスク間の通信コストを総合的に評価することで、一連のデータ処理全体のパフォーマンスを向上させることができる。
上記特許文献1〜3では、データ処理をパイプラインとして記述することも、パイプラインで隣接するタスク間でのデータ転送のコストも考慮されていない。一方で、本実施形態に係る制御装置は、データ処理をパイプラインとして記述し、転送コストを考慮することで、複数の処理装置を活用した一連のデータ処理を、効率的に実行することが可能である。また、上記特許文献3では、データを処理して初めて得られる、データ量の変化を基準にして割り当てを行っているが、本実施形態に係る制御装置は、分散処理開始前の段階で、事前に分かる範囲の情報から処理の割り当てを決定する。また、本実施形態に係る制御装置は、評価関数のパラメータを調整することにより、システム全体の消費電力や処理時間等を最低にするための処理割り当てを求めることができる。
また、制御装置は、パイプラインで接続されたタスク間の通信の内容を調整することで、タスク間の通信量を削減することもできる。具体的には、制御装置は、パイプラインで接続された後段のタスクで必要としているデータの内容(精度、頻度等)に応じて前段のタスクから転送されるデータの内容を調整することで、前段のタスクから後段のタスクに送信されるデータ量を削減させる。制御装置は、タスク間の通信量を削減することで、一連のデータ処理全体のパフォーマンスをさらに向上させることができる。
以下、図1を参照して、本開示の一実施形態に係る情報処理システムの概要を説明する。
図1は、本開示の一実施形態に係る情報処理システムの概要を示す図である。図1に示すように、制御装置1はスマートフォンであり、処理装置3XはPC(Personal Computer)であり、処理装置3Yはサーバである。制御装置1は、処理装置3Xと無線通信を行うことが可能であり、また、アクセスポイント5を介して間接的に通信することも可能である。また、制御装置1は、アクセスポイント5およびネットワーク4を介して処理装置3Yと通信可能である。さらに、処理装置3Xと処理装置3Yは、相互にネットワーク4を介して通信可能である。制御装置1は、予めまたは動的に、処理装置3X、3Yの属性や状態を示す特性情報を取得して、取得した情報に基づいてタスクを割り当てる。以下では、処理装置3X、3Yを特に区別する必要がない場合、処理装置3と総称する。
ここで、制御装置1が、制御装置1を操作するユーザにより入力された符号2に示す3つのタスクを、処理装置3に実行させる例を想定する。図1に示すように、符号2に示すタスクは、タスクA、タスクB、タスクCの順で処理順序が定められた、パイプラインを形成している。図1に示すTrans−ABはタスクAとタスクBとの間でのタスク間通信を示し、Trans−BCはタスクBとタスクCとの間でのタスク間通信を示す。
一例として、処理装置3XがタスクAの処理に適しており、処理装置3YがタスクBおよびタスクCの処理に適している場合を想定する。Trans−ABにおけるデータ転送量が僅かである場合、制御装置1は、タスクAを処理装置3Xに、タスクBおよびタスクCを処理装置3Yに割り当てる。一方で、Trans−ABにおけるデータ転送量が多い場合、ネットワーク4を介した多量のデータ通信を回避するために、制御装置1は、タスクAおよびタスクBを処理装置3Xに、タスクCを処理装置3Yに割り当てる。このように、制御装置1は、処理装置3X、3Yの属性や状態を示す特性情報および通信環境に基づいて、一連のデータ処理全体のパフォーマンスを向上させることができる。
なお、図1では、制御装置1は、スマートフォンであるものとしたが、本技術はかかる例に限定されない。例えば、制御装置1は、HMD(Head Mounted Display)、デジタルカメラ、デジタルビデオカメラ、PDA(Personal Digital Assistants)、PC、ノートPC、タブレット端末、携帯電話端末、携帯用音楽再生装置、携帯用映像処理装置または携帯用ゲーム機器等であってもよい。他にも、制御装置1は、テレビ受像機、音楽再生装置、映像記録再生装置やその操作端末その他の人による操作を受け付ける装置であってもよい。さらに、クラウド上のサーバが制御装置1としての機能を有し、スマートフォン等がサーバの入出力装置として機能してもよい。他にも、スマートフォン等が制御装置1として機能し、腕時計型端末やHMD等がスマートフォンの入出力装置として機能してもよい。処理装置3X、処理装置3Yも同様に、PCやサーバに限定されず、HMD等やテレビ受像機等であってもよい。
以上、本開示の一実施形態に係る情報処理システムの概要を説明した。続いて、各実施形態について詳細に説明する。
<2.実施形態>
[2−1.第1の実施形態]
まず、図2を参照して、第1の実施形態に係る制御装置1−1の構成を説明する。
[2−1−1.構成]
図2は、第1の実施形態に係る制御装置1−1の構成を示すブロック図である。図2に示すように、制御装置1−1は、通信部11、検出部12、割当部13、算出部14−1、記憶部15、および制御部16を有する。また、制御装置1−1は、ネットワーク4を介して、処理装置3X、3Y、3Zと接続されている。以下では、処理装置3X、3Y、3Zを特に区別する必要がない場合、処理装置3と総称する。
(通信部11)
通信部11は、有線/無線により処理装置3との間でデータの送受信を行うための通信モジュールである。通信部11は、例えば無線LAN(Local Area Network)、Wi−Fi(Wireless Fidelity、登録商標)、赤外線通信、Bluetooth(登録商標)、有線LAN等の方式で、処理装置3と直接的に、またはネットワーク4や図示しないアクセスポイント5を介して間接的に通信する。
(検出部12)
検出部12は、通信部11による外部との通信により、複数の処理装置3を検出する機能を有する。検出部12が検出する処理装置3としては、例えば、ユーザが手元で操作している制御装置1−1と高速通信が可能なLANの上の機器群が挙げられる。具体的には、ユーザが、ホームネットワークに接続した機器を操作している場合、同じホームネットワークに接続されたホームサーバやPCなどが挙げられる。また、ユーザが、モバイル環境で機器を操作している場合、ユーザ個人が所有する機器群が形成するPAN(Personal Area Network)に接続されている、スマートフォン、モバイルルータ、ウェアラブルカメラなどが挙げられる。他にも、検出部12が検出する処理装置3としては、例えば、ユーザが自宅外にいる場合には宅外からアクセスできる自宅の機器群、他人が所有する機器のうち、アクセス権がある機器群、クラウド上のサーバが挙げられる。
また、検出部12は、検出した処理装置3から、処理装置ごとの属性(例えば、GPU、DSP等を有し特定計算を高速処理可能という情報)や状態(例えば、過負荷状態であるという情報)を含む特性情報を、通信部11を介して取得する。検出部12は、検出した処理装置3、および取得した特性情報を、割当部13に出力する。
(割当部13)
割当部13は、複数のタスクの内容、および複数の処理装置3の属性又は状態の少なくともいずれかに基づいて、複数のタスクの処理をそれぞれ複数の処理装置3のいずれかに割り当てる機能を有する。ここで、割当部13がタスクを割り当てる処理装置3は、検出部12により検出された処理装置3である。
割当部13によるタスクの割り当てについて、詳細に説明する。まず、割当部13は、ユーザ入力により、またはバックエンドのサーバの制御により、処理対象である一連のデータ処理を、パイプラインを形成する複数のタスクとして記述する。次いで、割当部13は、タスクと当該タスクを処理する処理装置の組み合わせ示す割り当ての全組み合わせ(割り当て候補)を求め、その組み合わせを示す情報を後述の記憶部15に記憶する。そして、割当部13は、後述の算出部14−1により算出された評価値に基づいて、割り当て候補のいずれかを選択することにより、各タスクへの処理装置3の割り当てを決定する。
(算出部14−1)
算出部14−1は、割当部13により求められた割り当て候補ごとに、タスクおよび当該タスクを処理する処理装置3の組み合わせに基づいて評価値を算出する機能を有する。図2に示すように、算出部14−1は、実行コスト算出部141、および通信コスト算出部142として機能する。算出部14−1は、実行コスト算出部141により算出された実行コスト、および通信コスト算出部142により算出された通信コストに基づいて、評価値を算出する。
・実行コスト算出部141
実行コスト算出部141は、タスクの内容に基づく標準コスト(第1の標準コスト)と当該タスクを処理する処理装置3の属性又は状態の少なくともいずれかに基づくコスト係数(第1のコスト係数)との積の総和に基づいて実行コストを算出する機能を有する。より詳しくは、まず、実行コスト算出部141は、実行コストを算出する対象の割り当て候補が含む、タスクと当該タスクを処理する処理装置3の組み合わせごとに、標準コストとコスト係数の積を算出する。そして、実行コスト算出部141は、算出した積を割り当て候補について総和することで、その割り当て候補の実行コストを算出する。
タスクの内容に基づく標準コストとは、標準機器がそのタスクを処理した場合のコストである。また、コスト係数とは、具体的な処理装置3がタスクを実行したときに、標準機器と比較して何倍のコストがかかるかを表す数値である。ここでのコストとは、消費電力や処理時間、処理負荷などを示す指標であり、どの指標を採用するかによって標準コストおよびコスト係数は変動する。実行コスト算出部141は、採用する指標に応じて、標準コストを算出し、コスト係数を決定する。コストは、ユーザ指示により様々な指標を採用し得るが、本明細書では消費電力を示す指標であるものとする。以下、表1に、コスト係数を決定する要素の一例を示す。表1に示すように、ハードウェアやストレージの読み書き速度といった属性、電池残量や温度などの状態により、コスト係数は変動する。
Figure 2015088112
・通信コスト算出部142
通信コスト算出部142は、パイプラインが示すタスクの処理順序およびタスク間の通信環境に基づいて通信コストを算出する機能を有する。具体的には、通信コスト算出部142は、タスク間の通信量に基づく標準コスト(第2の標準コスト)とタスク間の通信環境に基づくコスト係数(第2のコスト係数)との積の総和に基づいて通信コストを算出する。より詳しくは、まず、通信コスト算出部142は、タスクの処理順序が示す、前段タスクと後段タスクとの組み合わせごとに、標準コストとコスト係数の積を算出する。ここで、コスト係数は、通信コストを算出する対象の割り当て候補が示す、前段タスクを処理する処理装置3および後段タスクを処理する処理装置3の通信環境により定まる。そして、通信コスト算出部142は、算出した積を割り当て候補について総和することで、その割り当て候補の通信コストを算出する。
複数のタスク間の通信量に基づく標準コストとは、前段のタスクと後段のタスクとの間で転送を要するデータを、標準通信技術で転送する際の通信コストである。また、コスト係数とは、具体的な処理装置3の内部または処理装置3と他の処理装置3との間で通信をした場合に、標準通信技術と比較して何倍のコストがかかるかを表す数値である。ここでのコストとは、実行コストの場合と同様に、消費電力や通信時間、通信負荷などを示す指標であり、どの指標を採用するかによって標準コストおよびコスト係数は変動する。通信コスト算出部142は、採用する指標に応じて、標準コストを算出し、コスト係数を決定する。コストは、ユーザ指示により様々な指標を採用し得るが、本明細書では消費電力を示す指標であるものとする。以下、表2に、コスト係数を決定する要素の一例を示す。いずれの場合も、通信速度が遅いほど、レイテンシーが大きいほど、コスト係数は大きくなる。
Figure 2015088112
算出部14−1は、以上説明した実行コスト算出部141により算出された実行コスト、および通信コスト算出部142により算出された通信コストに基づいて、評価値を算出する。算出部14−1は、実行コストおよび通信コストの和や、重み付け和、乗算等して評価値を算出することが可能である。本明細書では一例として、算出部14−1は、実行コストおよび通信コストの和により評価値を算出するものとする。算出部14−1は、算出した評価値を記憶部15に記憶する。
(記憶部15)
記憶部15は、所定の記録媒体に対してデータの記録再生を行う部位である。記憶部15は、例えばHDD(Hard Disc Drive)として実現される。もちろん記録媒体としては、フラッシュメモリ等の固体メモリ、固定メモリを内蔵したメモリカード、光ディスク、光磁気ディスク、ホログラムメモリなど各種考えられ、記憶部15としては採用する記録媒体に応じて記録再生を実行できる構成とされればよい。
本実施形態に係る記憶部15は、割当部13により求められた割り当て候補、および選択された割り当て候補を記憶する。また、記憶部15は、算出部14−1により算出された評価値を記憶する。
(制御部16)
制御部16は、演算処理装置および制御装置として機能し、各種プログラムに従って制御装置1−1内の動作全般を制御する。制御部16は、例えばCPU、マイクロプロセッサによって実現される。なお、制御部16は、使用するプログラムや演算パラメータ等を記憶するROM(Read Only Memory)、および適宜変化するパラメータ等を一時記憶するRAM(Random Access Memory)を含んでいてもよい。
本実施形態に係る制御部16は、割当部13による割り当てに基づいて、複数の処理装置3が複数のタスクを処理するよう制御する機能を有する。詳しくは、まず、制御部16は、記憶部15に記憶された、割当部13により決定された割り当てを参照する。そして、制御部16は、参照した割り当てに基づき、パイプラインが示す処理順序に沿って各タスクを割当部13により割り当てられた処理装置3が処理するよう、通信部11を介して処理装置3を制御する。
(ネットワーク4)
ネットワーク4は、ネットワーク4に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク4は、ホームネットワーク、インターネットなどにより実現される。
(処理装置3)
処理装置3は、制御装置1−1と通信する通信部と、通信部による制御装置1−1との通信に基づいて制御装置1−1により割り当てられたタスクを処理する処理部と、を有する情報処理装置である。処理装置3は、自身の属性又は状態の少なくともいずれかを示す特性情報を制御装置1−1に送信し、制御装置1−1により割り当てられたタスクを受信して処理する。より詳しくは、処理装置3の通信部は、まず、自身の特性情報を制御装置1−1に送信する。次いで、処理装置3の処理部は、制御装置1−1より割り当てられたタスクを、制御装置1−1または前段のタスクを処理した他の処理装置3からの入力情報に基づいて処理する。そして、処理装置3の通信部は、処理部による出力情報を、制御装置1−1または後段のタスクを処理する他の処理装置3に出力する。処理装置3は、例えばクラウド上のサーバ、スマートフォン、HMD、デジタルカメラ、デジタルビデオカメラ、PDA、PC、ノートPC、タブレット端末、携帯電話端末、携帯用音楽再生装置、携帯用映像処理装置または携帯用ゲーム機器等、テレビ受像機、音楽再生装置、映像記録再生装置やその操作端末として実現される。
以上、本実施形態に係る制御装置1−1の構成を説明した。続いて、図3を参照して、制御装置1−1の動作を説明する。
[2−1−2.動作処理]
図3は、第1の実施形態に係る制御装置1−1の動作を示すフローチャートである。
まず、ステップS102で、制御装置1−1は、処理装置3を検出する。詳しくは、検出部12は、通信部11による外部との通信により、タスクを処理可能な処理装置3を検出する。このとき、検出部12は、検出した処理装置3から、処理装置ごとの属性や状態を含む特性情報を取得する。例えば、図1に示した例では、検出部12は、タスクA、タスクB、タスクCを処理可能な処理装置3として、処理装置3Xおよび処理装置3Yを検出する。
次いで、ステップS104で、制御装置1−1は、タスク群の全ての割り当て候補を記憶する。詳しくは、割当部13は、タスクと当該タスクを処理する処理装置の組み合わせ(割り当て候補)を求め、その組み合わせを示す情報を記憶部15に記憶する。例えば、図1に示した例においては、割当部13は、以下の表3に示す8通りの割り当て候補を記憶部15に記憶する。
Figure 2015088112
次に、ステップS106で、制御装置1−1は、評価値を算出する割り当て候補を選択する。詳しくは、算出部14−1は、割当部13により求められた割り当て候補の中から、評価値を算出する対象となる割り当て候補を選択する。この後、算出部14−1は、選択した割り当て候補についての評価値を、S108〜S112で算出する。
次いで、ステップS108で、制御装置1−1は、実行コストを算出する。より詳しくは、実行コスト算出部141は、タスクの内容および当該タスクを処理する処理装置3の属性又は状態の少なくともいずれかに基づいて実行コストを算出する。以下、ステップS108における処理を詳細に説明する。
まず、実行コスト算出部141は、各タスクの標準コスト(標準機器で実行したときのコスト)を算出する。図1に示した例では、実行コスト算出部141は、以下の表4に示す標準コストを算出する。なお、表4に示した数値は、大きいほど消費電力等のコストが大きいことを示している。
Figure 2015088112
次いで、実行コスト算出部141は、コスト係数を決定する。図1に示した例では、実行コスト算出部141は、以下の表5に示すコスト係数を決定する。表5に示すように、例えば、タスクBは並列性が高い計算を多く含んでいる場合、GPUを有さない処理装置3Xでは低速計算(コスト係数10)となるが、GPUを有する処理装置3Yでは高速計算(コスト係数2)となる。このように、コスト係数は、タスクの特性と機器の特性によって定まる。
Figure 2015088112
次に、実行コスト算出部141は、割り当て候補が含む、タスクと当該タスクを処理する処理装置3の組み合わせごとに、標準コストとコスト係数との積を算出する。図1に示した例では、実行コスト算出部141は、以下の表6に示すように、上記表4に示した標準コストと上記表5で示したコスト係数との積を算出する。
Figure 2015088112
そして、実行コスト算出部141は、算出した積を割り当て候補について総和することで、その割り当て候補の実行コストを算出する。例えば、図1に示した例においては、表3に示した割り当て[3]の実行コストは、以下の表7に示す通りとなり、その和は12となる。
Figure 2015088112
以上、ステップS108における詳細な処理を説明した。
次に、ステップS110で、制御装置1−1は、通信コストを算出する。詳しくは、通信コスト算出部142は、パイプラインが示すタスクの処理順序およびタスク間の通信環境に基づいて、通信コストを算出する。以下、ステップS110における処理を詳細に説明する。
まず、通信コスト算出部142は、タスク間の通信量に基づく標準コスト(標準通信技術での通信コスト)を算出する。図1に示した例では、通信コスト算出部142は、以下の表8に示す標準コストを算出する。なお、表8に示した数値は、大きいほど消費電力等のコストが大きいことを示している。
Figure 2015088112
次いで、通信コスト算出部142は、コスト係数を決定する。図1に示した例では、通信コスト算出部142は、以下の表9に示すコスト係数を決定する。表9に示すように、処理装置3Xまたは処理装置3Y内部の1つのCPU上で実行される2つのプロセス間の通信と比較して、処理装置3Xと処理装置3Yとの間の2つのプロセス間の通信は3倍のコストがかかる。このように、コスト係数は、タスク間の通信環境によって定まる。
Figure 2015088112
次に、通信コスト算出部142は、タスクの処理順序が示す、前段タスクと後段タスクとの組み合わせごとに、標準コストとコスト係数の積を算出する。図1に示した例では、通信コスト算出部142は、以下の表10に示すように、上記表8に示した標準コストと上記表9に示したコスト係数との積を算出する。
Figure 2015088112
そして、通信コスト算出部142は、算出した積を割り当て候補について総和することで、その割り当て候補の通信コストを算出する。例えば、図1に示した例においては、表3に示した割り当て[3]の通信コストは、以下の表11に示す通りとなり、その和は12となる。
Figure 2015088112
以上、ステップS110における詳細な処理を説明した。
次いで、ステップS112で、制御装置1−1は、実行コストおよび通信コストの和を、評価値として記憶する。より詳しくは、算出部14−1は、上記ステップS108で算出した実行コストおよび上記ステップS110で算出した通信コストの和を、上記ステップS106で選択した割り当て候補の評価値として記憶部15に記憶する。
次に、ステップS114で、制御装置1−1は、すべての割り当て候補について評価値を算出したか否かを判定する。例えば、図1に示した例においては、算出部14−1は、上記表3に示した8通りのすべての割り当て候補について、評価値を算出して記憶部15に記憶したか否かを判定する。
まだ評価値を算出していない割り当て候補があると判定された場合(S114/NO)、処理は再度ステップS106に戻る。
一方で、すべての割り当て候補について評価値を算出したと判定された場合(S114/YES)、ステップS116で、制御装置1−1は、全ての割り当て候補の評価値を比較して、割り当てを決定する。より詳しくは、割当部13は、すべての割り当て候補の中から、評価値が最も低い(コストが低い)割り当て候補を選択する。例えば、図1に示した例では、記憶部15は、以下の表12に示すように、割り当て候補ごとに算出部14−1により算出された実行コスト、通信コスト、および評価値を記憶している。割当部13は、この中から、最も評価値が低い割り当て候補である、割り当て[3]を選択する。表3に示すように、この割り当て[3]では、3つのタスクの処理のために処理装置3Xおよび処理装置3Yでデータを往復させることになる。このような割り当て候補が選択されることは、通信コストの観点から不合理とも考えられるが、表5に示すように、タスクBの処理を処理装置3Xで実行するためのコスト係数が非常に大きいために起きている。
Figure 2015088112
以上、第1の実施形態に係る制御装置1−1の動作を説明した。
[2−2.第2の実施形態]
本実施形態は、パイプラインが示す処理順序が連続する2つのタスクについて、後段のタスクの内容に応じて前段のタスクから転送されるデータを変更することで、タスク間の通信コストを削減し、一連のデータ処理全体のパフォーマンスを向上させる。第1の実施形態では、図3のステップS110について上記説明したように、ある割り当て候補の通信コストは、表8〜表11に示したテーブルにより一律に確定した。これに対し、本実施形態では、タスク間で動的に通信内容の調整を行うことにより、通信コストをさらに削減することが可能である。以下、図4を参照して、本実施形態に係る制御装置1−2の構成を説明する。
[2−2−1.構成]
図4は、第2の実施形態に係る制御装置1−2の構成を示すブロック図である。図4に示すように、制御装置1−2は、図2を参照して上記説明した制御装置1−1と同様に、通信部11、検出部12、割当部13、記憶部15、および制御部16を有し、また、算出部14−1に代えて算出部14−2を有する。算出部14−2は、算出部14−1の構成に加えて、データ属性列挙部143、および変更コスト算出部144を有する。
・データ属性検出部143
データ属性検出部143は、後段のタスクの内容に基づいて、前後関係にある各タスク間において転送を要するデータの属性を検出する機能を有する。より詳しくは、データ属性検出部143は、タスク間で転送を要するデータの各属性について、後段のタスクが受け入れられる最低限の属性値を検出する。この最低限の属性値とは、属性値をその値に変換することで、転送するデータ量が最小となるように圧縮される属性値を意味する。以下、図5、図6を参照して、データ属性列挙部143が検出する最小限の属性値について具体的に説明する。
図5、図6は、第2の実施形態に係るデータ属性列挙部143による処理の一例を説明するための図である。図5に示す例では、処理装置3XはタスクAを実行し、処理装置3YはタスクCを実行する。その後、処理装置3Yは、処理装置3Xとの通信(Trans−AB)によるタスクAからのデータ転送、および処理装置3Y内部でのプロセス間通信(Trans−CB)によるタスクCからのデータ転送を受けて、タスクBを実行する。このとき、処理装置3Yは、図6に示すように、タスクAから転送されるデータとタスクCから転送されるデータとを同期させながら受け取って、タスクBを実行するものとする。
図6では、タスクAおよびタスクCから転送されるデータストリームを形成するフレーム6の流れを示している。図6に示す通り、タスク間通信Trans−CBは低周波数であり、タスク間通信Trans−ABは高周波数である。処理装置3Yは、同期されたデータのみを用いてタスクBを実行する場合、フレーム6Aおよび6D、フレーム6Bおよび6F、フレーム6Cおよび6Hを用いてタスクBを実行することになる。即ち、フレーム6E、6Gは用いられず無駄となる。このため、タスク間通信Trans−ABの周波数は、処理装置3Xで事前に低周波数に変換されていても、タスクBの処理内容には影響しない。よって、データ属性検出部143は、タスク間通信Trans−ABに係る周波数の最低限の属性値は低周波数である、と検出する。このような周波数の差異は、例えば一方がセンサデータであり、他方がフレームレートの高い映像である場合などに生じ得る。周波数の他にも、データ属性列挙部143は、例えばタスクAおよびタスクBから転送されるデータの精度(質)について、最低限の属性値は低精度である、と検出することもできる。転送データの各属性が最低限の属性値となった場合、データ量が削減されるため、通信コストが削減される。後述の割当部13は、転送データの各属性に最低限の属性値を割り当てることで、タスク間で転送されるデータ量を圧縮して通信コストを削減することができる。
以下の表13に、データの属性ごとの最低限の属性値の検出方法の例を示した。表13に示すように、例えば静止画であれば、データ属性検出部143は、後段タスクが必要とするもっとも粗い解像度や白黒画像を、最低限の属性値として検出する。
Figure 2015088112
Figure 2015088112
・変更コスト算出部144
変更コスト算出部144は、タスク間で転送を要するデータの各属性を、データ属性列挙部143により求められた最低限の属性値に変更する場合の、変更に要するコスト(変更コスト)を算出する機能を有する。例えば、動画については、変更コスト算出部144は、HD(High Definition)映像からSD(Standard Definition)映像に再エンコードするために要するコストを算出する。変更コスト算出部144は、算出した変更コストを、記憶部15に記憶する。
・通信コスト算出部142
通信コスト算出部142は、タスク間で転送を要するデータの各属性を、データ属性列挙部143により求められた最低限の属性値に変更した場合の、通信コストを算出する。この通信コストを、以下では変更後の属性値による通信コストとも称する。変更後の属性値による通信コストの算出方法は、第1の実施形態において説明したものと同様であるため、ここでの説明は省略する。通信コスト算出部142は、変更コスト、および変更後の属性値による通信コストの和により、通信コストを算出する。
(割当部13)
割当部13は、パイプラインにおけるタスクの処理順序が示す、前段タスク(第1のタスク)と後段タスク(第2のタスク)との組み合わせごとに、後段のタスクの内容に応じた前段のタスクと後段のタスクとの間の通信設定(転送データの属性値)を割り当てる。具体的には、割当部13は、タスク間で転送を要するデータの各属性を、データ属性列挙部143により求められた最低限の属性値に変更した場合の通信コストおよび変更しない場合の通信コストを比較結果に基づいて、属性値の割り当てを決定する。その後、割当部13は、決定した割り当てによる通信コスト、および実行コストの和である評価値に基づいて、第1の実施形態について上記説明したように、各タスクの処理を処理装置3に割り当てる。なお、割当部13は、所定時間ごとに定期的に割り当ての更新を行ってもよいし、所定数のタスクの処理が終了するごとに割り当ての更新を行ってもよい。
以上、本実施形態に係る制御装置1−2の構成を説明した。続いて、制御装置1−2の動作を説明する。
[2−2−2.動作処理]
第2の実施形態に係る制御装置1−2は、図3に示した第1の実施形態に係る制御装置1−1と同様の動作を行う。ただし、本実施形態に係る制御装置1−2は、図3に示したステップS110において、図7に示す動作により通信コストを算出する。以下、図7を参照して、ステップS110における動作を詳細に説明する。
図7は、第2の実施形態に係る制御装置1−2の動作を示すフローチャートである。図7に示すように、まず、ステップS202で、制御装置1−2は、転送データの属性のうち変更可能なものを列挙する。詳しくは、データ属性検出部143は、後段タスクの内容に基づいて、前段タスクから後段タスクへの転送データの属性のうち属性値を変更可能なものを検出する。例えば、図5および図6に示した例では、データ属性検出部143は、周波数とデータ精度の2つの属性を検出したものとする。
次いで、ステップS204で、制御装置1−2は、属性ごとに、後段タスクの許容最低限の属性値を検出する。詳しくは、データ属性検出部143は、タスク間で転送を要するデータの各属性について、後段のタスクが受け入れられる最低限の属性値を検出する。例えば、図5および図6に示した例では、データ属性検出部143は、以下の表14に示す属性値を検出する。表14に示すように、データ属性検出部143は、現状の転送データの周波数は高周波数(Hi)であり精度は高精度(Hi)であるが、最低限の属性値は低周波数(Low)であり低精度(Low)であると検出する。
Figure 2015088112
次に、ステップS206で、制御装置1−2は、属性値のすべての割り当て候補を記憶する。詳しくは、割当部13は、タスク間で転送を要するデータの各属性を、変更する場合と変更しない場合の組み合わせ(割り当て候補)を求め、その組み合わせを示す情報を記憶部15に記憶する。例えば、図5および図6に示した例では、割当部13は、以下の表15に示す4通りの割り当て候補を記憶部15に記憶する。
Figure 2015088112
次いで、ステップS208で、制御装置1−2は、通信コストを算出する割り当て候補を選択する。詳しくは、算出部14−2は、割当部13により求められた割り当て候補の中から、通信コストを算出する対象となる割り当て候補を選択する。この後、算出部14−2は、選択した割り当て候補についての通信コストを、S210〜S214で算出する。
次に、ステップS210で、制御装置1−2は、変更コストを算出する。詳しくは、変更コスト算出部144は、現状の属性値のまま変更しない場合のコスト、およびデータ属性検出部143により検出された最低限の属性値に変更する場合のコストを算出する。例えば、図5および図6に示した例では、変更コスト算出部144は、以下の表16に示す属性値を検出する。
Figure 2015088112
次いで、ステップS212で、制御装置1−2は、変更後の属性値による通信コストを算出する。ここでの処理は、第1の実施形態に係る制御装置1−1による処理(図3におけるステップS110)と同様であるため、ここでの詳細な説明は省略する。
次に、ステップS214で、制御装置1−2は、変更コストおよび変更後の属性値による通信コストの和を、通信コストとして記憶する。詳しくは、算出部14−2は、変更コスト算出部144により算出された変更コスト、および通信コスト算出部142により算出された変更後の属性値による通信コストの和を、上記ステップS208で選択した割り当て候補の通信コストとして記憶する。
次いで、ステップS216で、制御装置1−2は、すべての割り当て候補について通信コストを算出したか否かを判定する。例えば、図5および図6に示した例においては、算出部14−2は、上記表15に示した4通りのすべての割り当て候補について、通信コストを算出して記憶部15に記憶したか否かを判定する。
まだ通信コストを算出していない割り当て候補があると判定された場合(S216/NO)、処理は再度ステップS208に戻る。
一方で、すべての割り当て候補について通信コストを算出したと判定された場合(S216/YES)、ステップS218で、制御装置1−2は、全ての割り当て候補の通信コストを比較して、割り当てを決定する。より詳しくは、割当部13は、すべての割り当て候補の中から、通信コストが最も低い割り当て候補を選択する。例えば、図5および図6に示した例では、記憶部15は、以下の表17に示すように、割り当て候補ごとに算出部14−2により算出された通信コストを記憶している。割当部13は、この中から、最も通信コストが低い割り当て候補である、割り当て[2]を選択する。
Figure 2015088112
なお、上記例では、Trans−ABを対象として属性値を割り当てる例を説明したが、制御装置1−2は、Trans−CBを対象として属性値を割り当ててもよい。
以上、第2の実施形態に係る制御装置1−2の動作を説明した。
[2−3.第3の実施形態]
[2−3−1.概要]
本実施形態は、処理装置3が割り当てられたタスクを処理している間に割り当てを更新する形態である。より詳しくは、割当部13は、複数の処理装置3がタスクを処理している間に、随時通信部11を介して処理装置3の特性情報を取得しながら割り当てを更新する。実行コストを算出する際のコスト係数や、通信コストを算出する際のコスト係数は、時々刻々と変化する様々な要因により変化し得る。一例として、以下の表18に、コスト係数の変化要因となる要素を示す。
Figure 2015088112
算出部14(算出部14−1または算出部14−2)は、このような要因に応じて時々刻々と変化するコスト係数に基づいて評価値を算出し、割当部13は、算出された評価値に基づいて割り当てを更新する。制御部16は更新された割り当てに基づいて、複数の処理装置3にタスクを処理させる。これにより、制御装置1は、時々刻々と変化する処理装置3の状態に応じて、一連のデータ処理全体のパフォーマンスを向上させることができる。
例えば、制御装置1が、当初は一部の処理をクラウド上のサーバに依頼するように割り当てをしたが、実行している最中に電波状況が悪くなりクラウド上のサーバとの通信コストが非常に増大した場合を想定する。このような場合、制御装置1は、クラウド上のサーバに割り振っていた処理を手元にある機器上で行うように、処理の再割り当てを行う。これにより、制御装置1は、電波状況の悪化による通信コストの増大を回避して、一連のデータ処理全体のパフォーマンスを向上させることができる。
なお、本実施形態に係る制御装置1は、割り当てを更新する際、上記説明した第1の実施形態に係る割り当て方法または第2の実施形態に係る割り当て方法のいずれかを採用し得る。本実施形態に係る制御装置1の構成は、図2を参照して上記説明した第1の実施形態に係る制御装置1−1、または図4を参照して上記説明した第2の実施形態に係る制御装置1−2と同様であるため、ここでの説明を省略する。以下、図8を参照して、本実施形態に係る制御装置1の動作を説明する。
[2−3−2.動作処理]
図8は、第3の実施形態に係る制御装置1の動作を示すフローチャートである。図8に示すように、まず、ステップS302で、制御装置1は、評価値最小の割り当てを決定する。
次いで、ステップS304で、制御装置1は、決定した割り当てに基づいて、各処理装置3をセットアップする。詳しくは、制御部16は、上記ステップS302で決定した割り当てに基づいて、タスクを処理する処理装置3との通信確立や処理装置3でのメモリ確保等、タスク処理のための準備を行う。
次に、ステップS306で、制御装置1は、各処理装置3でのデータ処理を制御する。詳しくは、制御部16は、上記ステップS302で決定した割り当てに基づいて、処理装置3にタスクを処理させる。
次いで、ステップS308で、制御装置1は、データ処理が終了したか否かを判定する。詳しくは、制御部16は、いずれかの処理装置3がタスクを処理中であるか否か、またタスク間で通信中であるか否かにより、データ処理が終了したか否かを判定する。
データ処理が終了していない場合(S308/NO)、処理は再度ステップS302に戻る。これにより、制御装置1は、データ処理が終了するまで割り当ての更新を継続して、一連のデータ処理全体のパフォーマンスを向上させることができる。
一方で、データ処理が終了した場合(S308/YES)、制御装置1は、割り当ての更新処理を終了する。
以上、第3の実施形態に係る制御装置1の動作を説明した。
<3.まとめ>
以上説明したように、本開示によれば、制御装置1は、ヘテロジニアス環境において処理効率を向上させるタスクの割り当てを行うことが可能である。具体的には、制御装置1は、タスクの内容に応じてそのタスクに対する処理能力が高い機器を効率的に利用し、またタスク間の通信環境に応じて通信量の削減することで、システム全体としての処理の高速化および省電力化を達成することができる。また、本開示によれば、一連のデータ処理を、パイプラインを形成する複数のタスクとして記述することで、機器構成の変化に対して柔軟に対応可能なデータ処理を実現することができる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上記実施形態では、装置ごとの特性が大きく異なるヘテロジニアス環境を想定した割り当てについて説明したが、本技術はかかる例に限定されない。例えば、本開示に係る技術は、1つの装置に含まれる複数のCPUやGPU等の演算装置の特性が大きく異なる環境において、各演算装置にタスクを割り当てる際にも同様に適用可能である。
また、情報処理装置に内蔵されるCPU、ROM及びRAM等のハードウェアに、上記制御装置1、処理装置3の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、当該コンピュータプログラムを記録した記録媒体も提供される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、
を備える制御装置。
(2)
前記制御装置は、
通信部と、
前記通信部による外部との通信により前記複数の処理装置を検出する検出部と、
をさらに備え、
前記割当部は、前記複数のタスクの処理をそれぞれ前記検出部により検出された前記複数の処理装置のいずれかに割り当てる、前記(1)に記載の制御装置。
(3)
前記制御装置は、前記割当部による割り当て候補ごとに、前記タスクおよび当該タスクを処理する前記処理装置の組み合わせに基づいて評価値を算出する算出部をさらに備え、
前記割当部は、前記算出部により算出された前記評価値に基づいて前記割り当て候補のいずれかを選択する、前記(1)または(2)に記載の制御装置。
(4)
前記算出部は、前記タスクの内容に基づく第1の標準コストと当該タスクを処理する前記処理装置の属性又は状態の少なくともいずれかに基づく第1のコスト係数との積の総和に基づいて前記評価値を算出する、前記(3)に記載の制御装置。
(5)
前記複数のタスクはパイプラインを形成し、
前記算出部は、前記パイプラインが示すタスクの処理順序およびタスク間の通信環境にさらに基づいて前記評価値を算出する、前記(3)または(4)に記載の制御装置。
(6)
前記算出部は、前記タスク間の通信量に基づく第2の標準コストと前記タスク間の通信環境に基づく第2のコスト係数との積の総和に基づいて前記評価値を算出する、前記(5)に記載の制御装置。
(7)
前記割当部は、前記パイプラインが示す処理順序が第1の前記タスクの次である第2の前記タスクの内容に基づいて、第1の前記タスクと第2の前記タスクとの間の通信設定を割り当てる、前記(5)または(6)に記載の制御装置。
(8)
前記割当部は、前記複数の処理装置が前記複数のタスクを処理している間に割り当てを更新する、前記(1)〜(7)のいずれか一項に記載の制御装置。
(9)
前記制御装置は、前記割当部による割り当てに基づいて、前記複数の処理装置が前記複数のタスクを処理するよう制御する制御部をさらに備える、前記(1)〜(8)のいずれか一項に記載の制御装置。
(10)
自身の属性又は状態の少なくともいずれかを示す情報を制御装置に送信し、前記制御装置により割り当てられたタスクを受信する通信部と、
前記通信部により受信された前記タスクを処理する処理部と、
を備える処理装置。
(11)
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てるステップ、
を備える、情報処理装置のプロセッサにより実行される情報処理方法。
(12)
コンピュータを、
複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、
を備える制御装置として機能させるためのプログラム。
1 制御装置
11 通信部
12 検出部
13 割当部
14 算出部
141 実行コスト算出部
142 通信コスト算出部
143 データ属性検出部
144 変更コスト算出部
15 記憶部
16 制御部
2 タスク
3 処理装置
4 ネットワーク
5 アクセスポイント
6 フレーム

Claims (11)

  1. 複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てる割当部、
    を備える制御装置。
  2. 前記制御装置は、
    通信部と、
    前記通信部による外部との通信により前記複数の処理装置を検出する検出部と、
    をさらに備え、
    前記割当部は、前記複数のタスクの処理をそれぞれ前記検出部により検出された前記複数の処理装置のいずれかに割り当てる、請求項1に記載の制御装置。
  3. 前記制御装置は、前記割当部による割り当て候補ごとに、前記タスクおよび当該タスクを処理する前記処理装置の組み合わせに基づいて評価値を算出する算出部をさらに備え、
    前記割当部は、前記算出部により算出された前記評価値に基づいて前記割り当て候補のいずれかを選択する、請求項1に記載の制御装置。
  4. 前記算出部は、前記タスクの内容に基づく第1の標準コストと当該タスクを処理する前記処理装置の属性又は状態の少なくともいずれかに基づく第1のコスト係数との積の総和に基づいて前記評価値を算出する、請求項3に記載の制御装置。
  5. 前記複数のタスクはパイプラインを形成し、
    前記算出部は、前記パイプラインが示すタスクの処理順序およびタスク間の通信環境にさらに基づいて前記評価値を算出する、請求項3に記載の制御装置。
  6. 前記算出部は、前記タスク間の通信量に基づく第2の標準コストと前記タスク間の通信環境に基づく第2のコスト係数との積の総和に基づいて前記評価値を算出する、請求項5に記載の制御装置。
  7. 前記割当部は、前記パイプラインが示す処理順序が第1の前記タスクの次である第2の前記タスクの内容に基づいて、第1の前記タスクと第2の前記タスクとの間の通信設定を割り当てる、請求項5に記載の制御装置。
  8. 前記割当部は、前記複数の処理装置が前記複数のタスクを処理している間に割り当てを更新する、請求項1に記載の制御装置。
  9. 前記制御装置は、前記割当部による割り当てに基づいて、前記複数の処理装置が前記複数のタスクを処理するよう制御する制御部をさらに備える、請求項1に記載の制御装置。
  10. 自身の属性又は状態の少なくともいずれかを示す情報を制御装置に送信し、前記制御装置により割り当てられたタスクを受信する通信部と、
    前記通信部により受信された前記タスクを処理する処理部と、
    を備える処理装置。
  11. 複数のタスクの内容、および複数の処理装置の属性又は状態の少なくともいずれかに基づいて、前記複数のタスクの処理をそれぞれ前記複数の処理装置のいずれかに割り当てるステップ、
    を備える、情報処理装置のプロセッサにより実行される情報処理方法。
JP2013228340A 2013-11-01 2013-11-01 制御装置、処理装置及び情報処理方法 Pending JP2015088112A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013228340A JP2015088112A (ja) 2013-11-01 2013-11-01 制御装置、処理装置及び情報処理方法
US14/509,384 US9766942B2 (en) 2013-11-01 2014-10-08 Control device, processing device, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013228340A JP2015088112A (ja) 2013-11-01 2013-11-01 制御装置、処理装置及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2015088112A true JP2015088112A (ja) 2015-05-07

Family

ID=53008059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013228340A Pending JP2015088112A (ja) 2013-11-01 2013-11-01 制御装置、処理装置及び情報処理方法

Country Status (2)

Country Link
US (1) US9766942B2 (ja)
JP (1) JP2015088112A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016478A (ja) * 2015-07-02 2017-01-19 富士通株式会社 処理割当方法、処理割当装置、及び処理割当プログラム
JP2020154608A (ja) * 2019-03-19 2020-09-24 富士通クライアントコンピューティング株式会社 情報処理装置及び情報処理システム
JP2022047527A (ja) * 2020-09-11 2022-03-24 アクタピオ,インコーポレイテッド 実行制御装置、実行制御方法および実行制御プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697117B (zh) * 2017-10-20 2021-03-09 中国电信股份有限公司 终端控制方法、装置以及计算机可读存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2638065B2 (ja) 1988-05-11 1997-08-06 富士通株式会社 計算機システム
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
US6199093B1 (en) * 1995-07-21 2001-03-06 Nec Corporation Processor allocating method/apparatus in multiprocessor system, and medium for storing processor allocating program
JP2004213414A (ja) * 2003-01-06 2004-07-29 Matsushita Electric Ind Co Ltd 記憶デバイス制御装置
JP4756553B2 (ja) 2006-12-12 2011-08-24 株式会社ソニー・コンピュータエンタテインメント 分散処理方法、オペレーティングシステムおよびマルチプロセッサシステム
US20080288957A1 (en) * 2007-05-18 2008-11-20 International Business Machines Corporation Method and system for optimizing communication in mpi programs for an execution environment
WO2010037177A1 (en) * 2008-10-03 2010-04-08 The University Of Sydney Scheduling an application for performance on a heterogeneous computing system
JP5331549B2 (ja) 2009-04-09 2013-10-30 株式会社エヌ・ティ・ティ・ドコモ 分散処理システム及び分散処理方法
US9229779B2 (en) * 2009-12-28 2016-01-05 Empire Technology Development Llc Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy
US8473960B2 (en) * 2010-09-24 2013-06-25 International Business Machines Corporation Vector throttling to control resource use in computer systems
US8789065B2 (en) * 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US9634881B2 (en) * 2011-02-03 2017-04-25 Empire Technology Development Llc Reliability in distributed environments
ES2837458T3 (es) * 2011-06-28 2021-06-30 Amadeus Sas Método y sistema de procesamiento de datos para la modificación de bases de datos
EP2713270A4 (en) * 2011-12-29 2014-10-22 Huawei Tech Co Ltd METHOD AND DEVICE FOR PLANNING RESOURCES
KR20130088512A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
US9189290B2 (en) * 2013-03-13 2015-11-17 Hewlett-Packard Development Company, L.P. Distributing processing of array block tasks
US8706798B1 (en) * 2013-06-28 2014-04-22 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016478A (ja) * 2015-07-02 2017-01-19 富士通株式会社 処理割当方法、処理割当装置、及び処理割当プログラム
US10659304B2 (en) 2015-07-02 2020-05-19 Fujitsu Limited Method of allocating processes on node devices, apparatus, and storage medium
JP2020154608A (ja) * 2019-03-19 2020-09-24 富士通クライアントコンピューティング株式会社 情報処理装置及び情報処理システム
JP2022047527A (ja) * 2020-09-11 2022-03-24 アクタピオ,インコーポレイテッド 実行制御装置、実行制御方法および実行制御プログラム

Also Published As

Publication number Publication date
US9766942B2 (en) 2017-09-19
US20150128148A1 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
KR102670479B1 (ko) 콘볼루션 효율을 개선하기 위한 방법들, 시스템들, 및 장치
US10929189B2 (en) Mobile edge compute dynamic acceleration assignment
US9766818B2 (en) Electronic system with learning mechanism and method of operation thereof
JP7511477B2 (ja) データクエリ方法、装置、およびデバイス
Khoda et al. Efficient computation offloading decision in mobile cloud computing over 5G network
CN112583883A (zh) 在边缘环境中聚合遥测数据的方法和装置
KR102655086B1 (ko) 파이프라인 실행을 최적화하기 위한 방법들, 시스템들 및 장치
US20180278435A1 (en) Systems and methods for implementing event-flow programs
CN103516807A (zh) 一种云计算平台服务器负载均衡系统及方法
KR20150019359A (ko) 분산 시스템에서 데이터를 처리하는 방법
JP2015146154A (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
CN112346845B (zh) 编码任务的调度方法、装置、设备及存储介质
JP2015088112A (ja) 制御装置、処理装置及び情報処理方法
KR102350195B1 (ko) 모바일 엣지 컴퓨팅을 활용하는 모바일 증강현실 서비스의 모바일 단말 에너지 최적화 방법 및 시스템
WO2023093721A1 (zh) 资源召回方法、装置及网络侧设备
CN114048006A (zh) 虚拟机动态迁移方法、装置以及存储介质
Li et al. Task offloading and parameters optimization of MAR in multi-access edge computing
KR20220045996A (ko) 경계 비트맵을 이용하는 이미지 분류 개선 기법
KR20090083067A (ko) 데이터 전송 방법 및 장치와 작업 수행 방법 및 장치
WO2021115082A1 (zh) 作业调度方法以及作业调度装置
WO2019127926A1 (zh) 一种稀疏神经网络的计算方法及计算装置、电子装置、计算机可读存储介质以及计算机程序产品
TWI706343B (zh) 樣本回放資料存取方法、裝置及電腦設備
Galanis et al. Edge computing and efficient resource management for integration of video devices in smart grid deployments
JP2015141459A (ja) システム制御装置、制御方法、及びプログラム
TW201709091A (zh) 分散式系統及其資料庫管理方法及管理系統