JP2019012456A - タスク割当て装置、および、タスク割当て方法 - Google Patents
タスク割当て装置、および、タスク割当て方法 Download PDFInfo
- Publication number
- JP2019012456A JP2019012456A JP2017129300A JP2017129300A JP2019012456A JP 2019012456 A JP2019012456 A JP 2019012456A JP 2017129300 A JP2017129300 A JP 2017129300A JP 2017129300 A JP2017129300 A JP 2017129300A JP 2019012456 A JP2019012456 A JP 2019012456A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- control task
- task
- processing amount
- future
- 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
Links
Images
Landscapes
- Feedback Control In General (AREA)
Abstract
【課題】複数の演算装置が各制御タスクを実行することでシステムを制御するときに、各制御タスクの負荷変動に対しても別の演算装置への再割当てを抑制すること。
【解決手段】割当装置1は、システムを制御するための各制御タスクの処理量について、現在の処理量から処理量の変動データをもとに将来の処理量を計算する処理負荷計算部21と、各制御タスクの将来の処理量と、各制御タスクの割当先である複数の演算装置の処理能力との制約条件を満たすように、各制御タスクの割当先である演算装置を決定するパターン決定部41と、を有する。例えば、処理負荷計算部21は、各演算装置における将来の処理負荷率を、将来の処理量として計算する。
【選択図】 図1
【解決手段】割当装置1は、システムを制御するための各制御タスクの処理量について、現在の処理量から処理量の変動データをもとに将来の処理量を計算する処理負荷計算部21と、各制御タスクの将来の処理量と、各制御タスクの割当先である複数の演算装置の処理能力との制約条件を満たすように、各制御タスクの割当先である演算装置を決定するパターン決定部41と、を有する。例えば、処理負荷計算部21は、各演算装置における将来の処理負荷率を、将来の処理量として計算する。
【選択図】 図1
Description
本発明は、タスク割当て装置、および、タスク割当て方法に関する。
自動車、鉄道車両、船舶、建設機械、エレベータなどの技術分野では、いわゆる組込みソフトウェアによって制御対象を制御するECU(Electronic Control Unit)が用いられている。組込みソフトウェアは、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できることが利点として挙げられる。
ここで、制御の複雑化に伴い組込みソフトウェアの規模は増大しており、ECUが処理するタスクの計算量も増加している。そこで、複数個のECUや、1つのECUに内蔵された複数個のプロセッサコアを並列に用いることで、モータ、エンジン、ブレーキなどの個々の部品を制御するタスクを同時に動作させ、システム全体を制御することができる。
なお、単にECUの計算資源を豊富に用意しても、特定のECUだけに偏ってタスクが割り当てられてしまうと、そのECUがボトルネックとなってしまう。つまり、一連の組込みソフトウェアを複数のECUにどのように割り当てれば、ECU間での負荷が分散できるかが、問題となる。
そこで、特許文献1には、内燃機関の回転角(クランク角)に同期した回転角同期タスク、および時間同期タスクを複数のコアに効率的に分配する制御装置が記載されている。これにより、時間経過による増減の幅が大きいエンジン回転速度に対応するタスクであっても、所定の回転角ごとにタスクが複数のコアに分散して割り当てられることで、回転角同期タスクの負荷分散が可能となる。
そこで、特許文献1には、内燃機関の回転角(クランク角)に同期した回転角同期タスク、および時間同期タスクを複数のコアに効率的に分配する制御装置が記載されている。これにより、時間経過による増減の幅が大きいエンジン回転速度に対応するタスクであっても、所定の回転角ごとにタスクが複数のコアに分散して割り当てられることで、回転角同期タスクの負荷分散が可能となる。
特に建設機械などの組込みシステムの開発においては、既存のシステムをベースとして次世代および次次世代の製品を派生開発するといった特徴がある。ここで、次世代および次次世代の製品を開発する場合においては、開発工数などの開発コストの削減を目的に、既存システムで利用しているソフトウェアとハードウェアを再利用することが多い。
ここで、複数のECUに対して、複数のタスクをどのように割り当てるかという割当結果についても、既存のシステムの割当結果を派生開発時にも再利用できれば望ましい。しかし、派生開発によって特定のタスクの処理量が増加してしまい、既存のECUの処理能力を超過してしまうと、その特定のタスクを処理能力に余裕のある別のECUに再割当てすることとなり、設計・検証に要する追加コストが発生してしまう。
なお、特許文献1などの従来の負荷分散システムでは、加速や減速に伴うエンジン回転速度の変化という制御時の短期間(数秒単位)の負荷変動はある程度考慮されていた。しかし、ある車両のニューモデル販売に伴う高機能化による長期間(数年単位)の負荷増加の傾向は、制御タスクの割当結果には考慮されていない。
なお、特許文献1などの従来の負荷分散システムでは、加速や減速に伴うエンジン回転速度の変化という制御時の短期間(数秒単位)の負荷変動はある程度考慮されていた。しかし、ある車両のニューモデル販売に伴う高機能化による長期間(数年単位)の負荷増加の傾向は、制御タスクの割当結果には考慮されていない。
そこで、本発明は、複数の演算装置が各制御タスクを実行することでシステムを制御するときに、各制御タスクの負荷変動に対しても別の演算装置への再割当てを抑制することを、主な課題とする。
前記課題を解決するために、本発明のタスク割当て装置は、以下の特徴を有する。
本発明は、システムを制御するための各制御タスクの処理量について、現在の処理量から処理量の変動データをもとに将来の処理量を計算する処理量計算部と、
前記各制御タスクの前記将来の処理量と、前記各制御タスクの割当先である複数の演算装置の処理能力との制約条件を満たすように、前記各制御タスクの割当先である前記演算装置を決定する割当先決定部と、を有することを特徴とする。
その他の手段は、後記する。
本発明は、システムを制御するための各制御タスクの処理量について、現在の処理量から処理量の変動データをもとに将来の処理量を計算する処理量計算部と、
前記各制御タスクの前記将来の処理量と、前記各制御タスクの割当先である複数の演算装置の処理能力との制約条件を満たすように、前記各制御タスクの割当先である前記演算装置を決定する割当先決定部と、を有することを特徴とする。
その他の手段は、後記する。
本発明によれば、複数の演算装置が各制御タスクを実行することでシステムを制御するときに、各制御タスクの負荷変動に対しても別の演算装置への再割当てを抑制することができる。
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
図1は、制御システムの構成図である。
割当装置1は、複数の制御タスクT1,T2,T3,…を制御装置5の各演算装置51に割り当てる。
割当装置1は、CPU(Central Processing Unit)と、メモリと、ハードディスクなどの記憶手段(記憶部)と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、CPUが、メモリ上に読み込んだプログラム(アプリケーションや、その略のアプリとも呼ばれる)を実行することにより、各処理部により構成される制御部(制御手段)を動作させる。
割当装置1は、複数の制御タスクT1,T2,T3,…を制御装置5の各演算装置51に割り当てる。
割当装置1は、CPU(Central Processing Unit)と、メモリと、ハードディスクなどの記憶手段(記憶部)と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、CPUが、メモリ上に読み込んだプログラム(アプリケーションや、その略のアプリとも呼ばれる)を実行することにより、各処理部により構成される制御部(制御手段)を動作させる。
ここで、割当装置1は、各制御タスクの高機能化による長期間(例えば数年単位)の負荷増加の傾向をもとに、いったん割り当てた制御タスクの再割り当ての頻度がなるべく少なくなるように、各制御タスクの割当結果を計画的に作成する。
そのため、割当装置1は、例えば、制御装置5を製造する製造工場の内部に配備され、制御装置5の組込みソフトウェアの開発者によって管理される。長期間の負荷増加の傾向データなどの開発側の情報を反映しやすいように、かつ、次々に製造される制御装置5に対して、各制御タスクの割当結果を送信しやすいようにするためである。
そのため、割当装置1は、例えば、制御装置5を製造する製造工場の内部に配備され、制御装置5の組込みソフトウェアの開発者によって管理される。長期間の負荷増加の傾向データなどの開発側の情報を反映しやすいように、かつ、次々に製造される制御装置5に対して、各制御タスクの割当結果を送信しやすいようにするためである。
制御装置5は、以下に例示するような各種システムを制御する。
・家庭用機器、産業用機器、医療機器など電子制御を必要とする製品の組込みシステム
・自動車などの内燃機関、鉄道車両、船舶、建設機械、エレベータなどの輸送機器など、必要とする機能が多岐にわたるシステム
・複数のハードウェア、複数のソフトウェアを組み合わせた規模の大きなシステム
この制御装置5は、例えば、制御対象の各種システムに内蔵され、各種システムの保守員により管理される。
・家庭用機器、産業用機器、医療機器など電子制御を必要とする製品の組込みシステム
・自動車などの内燃機関、鉄道車両、船舶、建設機械、エレベータなどの輸送機器など、必要とする機能が多岐にわたるシステム
・複数のハードウェア、複数のソフトウェアを組み合わせた規模の大きなシステム
この制御装置5は、例えば、制御対象の各種システムに内蔵され、各種システムの保守員により管理される。
制御装置5は、複数の演算装置51と、ADC52と、センサ53とを有する。マルチコアに対応した1つのECUには、複数のECUコアが含まれる。図1では、1つの演算装置51を1つのECUコアとし、3つのECUコアが1つのECUに含まれる構成を例示する。
センサ53は、車輪の回転角データなどの外部データを計測する。ADC(Analog-to-digital converter)52は、センサ53の計測値をデジタル値に変換し、そのデジタル値を各演算装置51に入力する。各演算装置51は、割り当てられた各制御タスクT1,T2,T3の処理内容に従い、入力されたデジタル値を処理して、各種システムの制御信号などを出力する。
センサ53は、車輪の回転角データなどの外部データを計測する。ADC(Analog-to-digital converter)52は、センサ53の計測値をデジタル値に変換し、そのデジタル値を各演算装置51に入力する。各演算装置51は、割り当てられた各制御タスクT1,T2,T3の処理内容に従い、入力されたデジタル値を処理して、各種システムの制御信号などを出力する。
割当装置1は、演算資源データ11と、制御タスクデータ12(図2参照)と、割当パターンデータ14(図3参照)と、負荷変動データ22(図4参照)と、時間変動データ32(図5参照)とを記憶部に格納する。制御装置5の組込みソフトウェアの開発者は、これらの記憶部に格納するデータを、事前に(例えば制御装置5の出荷前に)過去の履歴データなどを参照して用意しておく。
割当装置1は、パターン生成部13と、処理負荷計算部21と、応答時間計算部31と、パターン決定部41とを、処理部として有する。
以下、割当装置1内の各データの詳細を図2〜図5を用いて説明した後、図6のフローチャートに沿って、割当装置1内の各処理部の詳細を説明する。ここで、本実施形態では、制御タスクの処理量を示すパラメータの一例として、処理負荷計算部21が計算する演算装置51ごとの処理負荷率(CPU使用率)と、応答時間計算部31が計算する複数の制御タスクにまたがった同期型処理の計算時間(応答時間)とを用いる。
割当装置1は、パターン生成部13と、処理負荷計算部21と、応答時間計算部31と、パターン決定部41とを、処理部として有する。
以下、割当装置1内の各データの詳細を図2〜図5を用いて説明した後、図6のフローチャートに沿って、割当装置1内の各処理部の詳細を説明する。ここで、本実施形態では、制御タスクの処理量を示すパラメータの一例として、処理負荷計算部21が計算する演算装置51ごとの処理負荷率(CPU使用率)と、応答時間計算部31が計算する複数の制御タスクにまたがった同期型処理の計算時間(応答時間)とを用いる。
図2は、制御タスクデータ12の説明図である。制御タスクデータ12は、割当装置1が割り当てる制御タスクごとの詳細な情報である。例えば、図2では、制御タスクごとに、その実行周期と、デッドラインと、最大処理時間とを示す。1行目の制御タスクT1の場合、実行周期とデッドラインは共に10[ms]であり、最大処理時間は1.2[ms]である。
図3は、割当パターンデータ14の説明図である。割当パターンデータ14は、制御タスクデータ12と、演算資源データ11との組み合わせを総当たりで示し、その組み合わせごとの識別子として割当パターンを定義したものである。演算資源データ11とは、制御タスクの割当先となる複数の演算装置51(C1,C2,C3…)のリストである。1行目の割当パターンP1は、制御タスクT1,T2,T3が演算装置51(C1)に割り当てられ、制御タスクT4が別の演算装置51(C2)に割り当てられるという組み合わせである。
図4は、負荷変動データ22の説明図である。負荷変動データ22は、制御タスクごとに生成される時系列のグラフであり、その縦軸は1つの演算装置51に割り当てたときのCPU負荷(0%〜100%)である。例えば、現在が2016年であるとすると、2014〜2016年の実測値と、2017年以降の予測値とが同じグラフ上に線分として示される。これらの予測値は、例えば、最小二乗法での近似線として実測値をもとに計算される。
ここで、負荷変動データ22のグラフが年単位で増加しているのは、例えば、ある車両のニューモデル販売に伴う制御タスクの高機能化によるものである。つまり、負荷変動データ22のグラフは、同じ種類(同じブランド名)として販売されているシステムについて、各年の販売モデルごとの負荷値を示している。
なお、1つの制御タスクについてグラフの線分が2種類以上存在していてもよく、図4では平均の線分に加え、制御タスクの上昇傾向が強い(悲観的な)予測である「最悪」の線分も定義されている。どちらの線分を用いるか、または前記以外の線分を用いるかは、割当装置1の管理者(制御タスクのソフト開発者)などが別途割当装置1に指定する。
ここで、負荷変動データ22のグラフが年単位で増加しているのは、例えば、ある車両のニューモデル販売に伴う制御タスクの高機能化によるものである。つまり、負荷変動データ22のグラフは、同じ種類(同じブランド名)として販売されているシステムについて、各年の販売モデルごとの負荷値を示している。
なお、1つの制御タスクについてグラフの線分が2種類以上存在していてもよく、図4では平均の線分に加え、制御タスクの上昇傾向が強い(悲観的な)予測である「最悪」の線分も定義されている。どちらの線分を用いるか、または前記以外の線分を用いるかは、割当装置1の管理者(制御タスクのソフト開発者)などが別途割当装置1に指定する。
図5は、時間変動データ32の説明図である。時間変動データ32は、制御タスクごとの年毎の処理量の増減率を示しており、この処理量は演算装置51が制御タスクを処理する時間(応答時間)に影響する。制御タスクT1は増減率が0%であるため、次年度においても処理量は不変である。制御タスクT2は年率2%の割合で処理量が増加しているため、応答時間も徐々に長期化される。
ここで、応答時間とは、センサ53の計測値を変換したデジタル値をADC52が演算装置51に入力した開始時刻から、演算装置51がデジタル値を演算処理するまでの時刻までの期間である(詳細は図7)。
ここで、応答時間とは、センサ53の計測値を変換したデジタル値をADC52が演算装置51に入力した開始時刻から、演算装置51がデジタル値を演算処理するまでの時刻までの期間である(詳細は図7)。
図6は、割当装置1から制御装置5に制御タスクを割り当てる処理を示すフローチャートである。このフローチャートは、例えば、工場で制御装置5を製造した後、工場出荷状態として、割当装置1から制御タスクを割り当てる(インストールする)ときに実行される。そして、図6のフローチャートを実行することで制御タスクが割り当てられた制御装置5は、工場から販売店舗へと出荷される。または、制御装置5の制御タスクをオンラインでアップデート可能であるときには、そのアップデートするタイミングで、図6のフローチャートを再計算してもよい。
まず、このフローチャートの開始前に、パターン生成部13は、制御タスクデータ12と、演算資源データ11との組み合わせを網羅した割当パターンデータ14を作成しておく。
まず、このフローチャートの開始前に、パターン生成部13は、制御タスクデータ12と、演算資源データ11との組み合わせを網羅した割当パターンデータ14を作成しておく。
S11〜S18として、パターン生成部13は、割当パターンデータ14の割当パターンを、計算対象として順に1つずつ選択するループを実行する。
S12〜S15として、パターン生成部13は、演算資源データ11の演算装置51を、計算対象として順に1つずつ選択するループを実行する。
S13として、処理負荷計算部21は、選択した割当パターンについて、選択した演算装置51が実行する制御タスクの現在の(例えば2016年の)処理負荷率を、制御タスクデータ12を参照して計算する。
S14として、処理負荷計算部21は、選択した割当パターンについて、選択した演算装置51が実行する制御タスクの将来の(例えば、現在から3年後である2019年の)処理負荷率を、制御タスクデータ12に負荷変動データ22の変動分を加味して計算する。
なお、S13,S14の処理負荷率の計算処理は、例えば、負荷変動データ22のX軸(現在=2016年、将来=2019年)から対応するグラフのY軸の値を求める処理として具体化される。さらに、選択した演算装置51が複数の制御タスクを担当する割当パターンでは、処理負荷計算部21は、各制御タスクのY軸の値を個別に求め、それらの総和を演算装置51単位での処理負荷率とする。
S13として、処理負荷計算部21は、選択した割当パターンについて、選択した演算装置51が実行する制御タスクの現在の(例えば2016年の)処理負荷率を、制御タスクデータ12を参照して計算する。
S14として、処理負荷計算部21は、選択した割当パターンについて、選択した演算装置51が実行する制御タスクの将来の(例えば、現在から3年後である2019年の)処理負荷率を、制御タスクデータ12に負荷変動データ22の変動分を加味して計算する。
なお、S13,S14の処理負荷率の計算処理は、例えば、負荷変動データ22のX軸(現在=2016年、将来=2019年)から対応するグラフのY軸の値を求める処理として具体化される。さらに、選択した演算装置51が複数の制御タスクを担当する割当パターンでは、処理負荷計算部21は、各制御タスクのY軸の値を個別に求め、それらの総和を演算装置51単位での処理負荷率とする。
S16として、応答時間計算部31は、選択した割当パターンについて、実行される制御タスクの現在の応答時間を、制御タスクデータ12を参照して計算する。
S17として、応答時間計算部31は、選択した割当パターンについて、実行される制御タスクの将来の応答時間を、制御タスクデータ12に時間変動データ32の変動分を加味して計算する。
なお、S16,S17の応答時間の計算処理の詳細は、図7で後記する。
S17として、応答時間計算部31は、選択した割当パターンについて、実行される制御タスクの将来の応答時間を、制御タスクデータ12に時間変動データ32の変動分を加味して計算する。
なお、S16,S17の応答時間の計算処理の詳細は、図7で後記する。
S19として、パターン決定部41は、割当パターンデータ14の各割当パターンについての処理負荷率の計算結果および応答時間の計算結果を検証することで、今回採用する割当パターンを決定する。そして、パターン決定部41は、その決定した割当パターンに従って各演算装置51に各制御タスクを割り当てる。
図7は、S16,S17での応答時間の計算例を示すタイムチャートである。タイムチャートは、ADC52の各出力信号に加え、2つの演算装置51(C1,C2)を用いた、複数の制御タスクTA,TB,TC,TD,TXの並列処理を示している。これらの制御タスクのうちの周期タスクはTA,TB,TC,TDであり、回転角同期タスクはTXである。
タイムチャートの横棒(タスクバー)のうち、時刻t1のADC52の各出力信号を起点とする処理の実行中を黒塗りバーとし、その処理以外のタスクの時間を白枠バーとして図示している。タスクバーの横方向の長さは処理時間を示しており、現在の応答時間を求めるときには、制御タスクデータ12に登録された「最大処理時間」をそのまま用い、将来の応答時間を求めるときには、制御タスクデータ12に登録された「最大処理時間」に時間変動データ32の増減率を加味する(2%増加なら、最大処理時間に乗数(102/100)をかける)。
タイムチャートの横棒(タスクバー)のうち、時刻t1のADC52の各出力信号を起点とする処理の実行中を黒塗りバーとし、その処理以外のタスクの時間を白枠バーとして図示している。タスクバーの横方向の長さは処理時間を示しており、現在の応答時間を求めるときには、制御タスクデータ12に登録された「最大処理時間」をそのまま用い、将来の応答時間を求めるときには、制御タスクデータ12に登録された「最大処理時間」に時間変動データ32の増減率を加味する(2%増加なら、最大処理時間に乗数(102/100)をかける)。
ここで、黒塗りバーに着目して、(処理開始時刻,処理開始タスク)の表記で複数の制御タスク間での処理の連携(同期型処理)を示すと、次の通りである。
(t1,ADC)→(t2,TA)→(t3,TB)→(t4,TX)→(t5,TA)→(t6,TB)→(t7,TC)→(t8,TB)
これらの処理の内、2つの演算装置51(C1,C2)をまたぐ「(t6,TB)→(t7,TC)→(t8,TB)」の処理では、その処理対象となるデータが演算装置51間(C1,C2間)で同期化される。つまり、同期型処理では、処理Aの終了を待ってから処理Bが起動し、その処理Bの終了を待ってから処理Cが起動するように、連携する各処理の処理時間が連鎖的に加算されていく。
(t1,ADC)→(t2,TA)→(t3,TB)→(t4,TX)→(t5,TA)→(t6,TB)→(t7,TC)→(t8,TB)
これらの処理の内、2つの演算装置51(C1,C2)をまたぐ「(t6,TB)→(t7,TC)→(t8,TB)」の処理では、その処理対象となるデータが演算装置51間(C1,C2間)で同期化される。つまり、同期型処理では、処理Aの終了を待ってから処理Bが起動し、その処理Bの終了を待ってから処理Cが起動するように、連携する各処理の処理時間が連鎖的に加算されていく。
応答時間計算部31は、例えば、以下に例示する時間を、制御装置5が制御対象とするシステムの振舞いを保証するための応答時間として計算する。
・図7に例示したように、時刻t1(ADC52の出力信号の発生時刻)から時刻t7(制御タスクTCの演算開始時刻)までの応答時間td
・制御対象とするシステム(アクチュエータなど)の操作量などの制御信号の演算開始時刻から、計算された制御信号を受けてシステムが動作する動作開始時刻までの応答時間
・時刻t1(ADC52の出力信号の発生時刻)から、ADC52の出力信号をもとに計算された制御信号を受けてシステムが動作する動作開始時刻までの応答時間
・図7に例示したように、時刻t1(ADC52の出力信号の発生時刻)から時刻t7(制御タスクTCの演算開始時刻)までの応答時間td
・制御対象とするシステム(アクチュエータなど)の操作量などの制御信号の演算開始時刻から、計算された制御信号を受けてシステムが動作する動作開始時刻までの応答時間
・時刻t1(ADC52の出力信号の発生時刻)から、ADC52の出力信号をもとに計算された制御信号を受けてシステムが動作する動作開始時刻までの応答時間
つまり、応答時間計算部31は、複数の制御タスク間の並列処理にまたがった黒塗りバーの処理時間の合計時間と、複数の制御タスク間でのデータの受け渡し(同期処理)に要する遅延時間(遅延ブロック)との総和を応答時間として計算する。これにより、実際の車両による性能を示す応答時間を模擬することで、制御対象とするシステムの振舞いを高精度に予測できる。
一方、単に制御タスクの処理時間だけを考慮して応答時間を求める比較例では、複数の演算装置51に制御タスクが分散された並列処理における遅延時間が考慮されておらず、モデルベースで設計した組込みソフトウェアと実機性能との乖離が大きくなってしまう。
一方、単に制御タスクの処理時間だけを考慮して応答時間を求める比較例では、複数の演算装置51に制御タスクが分散された並列処理における遅延時間が考慮されておらず、モデルベースで設計した組込みソフトウェアと実機性能との乖離が大きくなってしまう。
図8は、処理負荷計算部21および応答時間計算部31の計算結果を示す説明図である。
このデータテーブルには、演算装置51ごとのS13で求めた現在の処理負荷率と、S14で求めた将来の(3年後の)処理負荷率と、S16で求めた現在の応答時間と、S17で求めた将来の応答時間とが、割当てパターンごとに格納されている。
ここで、パターン決定部41は、図8のデータテーブルを参照して、例えば以下に示す(手法1)〜(手法4)の各アルゴリズムの少なくとも1つにより割当パターンの採否を決定する(S19の詳細)。
例えば、パターン決定部41は、100個の割当パターンを(手法3)により10個に絞り込み、その10個から(手法2)により1個に絞り込む。
このデータテーブルには、演算装置51ごとのS13で求めた現在の処理負荷率と、S14で求めた将来の(3年後の)処理負荷率と、S16で求めた現在の応答時間と、S17で求めた将来の応答時間とが、割当てパターンごとに格納されている。
ここで、パターン決定部41は、図8のデータテーブルを参照して、例えば以下に示す(手法1)〜(手法4)の各アルゴリズムの少なくとも1つにより割当パターンの採否を決定する(S19の詳細)。
例えば、パターン決定部41は、100個の割当パターンを(手法3)により10個に絞り込み、その10個から(手法2)により1個に絞り込む。
(手法1)「処理負荷率の上限値」に着目する。制御対象とするシステムの振舞いを保証するための処理負荷率の上限値を演算装置51の処理能力ごとに制約条件としてあらかじめ登録しておき、その上限値よりも小さい処理負荷率を、現在も将来も満たす割当パターンを採用する。
(手法2)「処理負荷率の時間変化」に着目する。処理負荷が少ない演算装置51に対して、現在から将来までの処理負荷率の増加量(変化量)が大きい制御タスクを割り当てている割当パターンを採用する。換言すると、処理負荷が大きい演算装置51に対して、現在から将来までの処理負荷率の増加が小さい制御タスクを割り当てている割当パターンともいえる。
(手法3)「応答時間の上限値」に着目する。制御対象とするシステムの振舞いを保証するための同期型処理の応答時間の上限値を制約条件としてあらかじめ登録しておき、その上限値よりも小さい応答時間を、現在も将来も満たす割当パターンを採用する。
(手法4)「応答時間の時間変化」に着目する。局所的性質として、同期型処理での現在の応答時間と、将来の応答時間との差分が所定値より小さい割当パターンを採用する。
以上説明した本実施形態では、パターン決定部41は、処理負荷率や応答時間などの割当パターンの各評価尺度について、現在の評価値だけでなく、現在から将来までの時間変化をあらかじめ予測しておき、その時間変化を加味して制御タスクの割当パターンを決定する。
なお、現在は処理能力に余裕があるからといって所定の演算装置51にぎりぎりまで制御タスクを割り当ててしまうと、その後の制御タスクの高機能化などによる負荷上昇に伴い処理能力不足による制御タスクの再割当が発生してしまう。そこで、本実施形態のように時間変化を加味して制御タスクの割当パターンを決定することで、将来を見越した最適なタスク割当を決定することが可能となる。
つまり、制御タスクの再割当を予測して未然に防ぐような割当パターンを決定することで、次世代および次次世代の製品開発時でも再利用可能なタスク割当を実現する。
なお、現在は処理能力に余裕があるからといって所定の演算装置51にぎりぎりまで制御タスクを割り当ててしまうと、その後の制御タスクの高機能化などによる負荷上昇に伴い処理能力不足による制御タスクの再割当が発生してしまう。そこで、本実施形態のように時間変化を加味して制御タスクの割当パターンを決定することで、将来を見越した最適なタスク割当を決定することが可能となる。
つまり、制御タスクの再割当を予測して未然に防ぐような割当パターンを決定することで、次世代および次次世代の製品開発時でも再利用可能なタスク割当を実現する。
なお、本発明は前記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、前記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段などは、それらの一部または全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。
また、前記の各構成、機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段などは、それらの一部または全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。
また、前記の各構成、機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイルなどの情報は、メモリや、ハードディスク、SSD(Solid State Drive)などの記録装置、または、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)などの記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
さらに、各装置を繋ぐ通信手段は、無線LANに限定せず、有線LANやその他の通信手段に変更してもよい。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
さらに、各装置を繋ぐ通信手段は、無線LANに限定せず、有線LANやその他の通信手段に変更してもよい。
1 割当装置(タスク割当て装置)
11 演算資源データ
12 制御タスクデータ
13 パターン生成部
14 割当パターンデータ
21 処理負荷計算部(処理量計算部)
31 応答時間計算部(処理量計算部)
22 負荷変動データ
32 時間変動データ
41 パターン決定部(割当先決定部)
5 制御装置
51 演算装置
52 ADC
53 センサ
11 演算資源データ
12 制御タスクデータ
13 パターン生成部
14 割当パターンデータ
21 処理負荷計算部(処理量計算部)
31 応答時間計算部(処理量計算部)
22 負荷変動データ
32 時間変動データ
41 パターン決定部(割当先決定部)
5 制御装置
51 演算装置
52 ADC
53 センサ
Claims (6)
- システムを制御するための各制御タスクの処理量について、現在の処理量から処理量の変動データをもとに将来の処理量を計算する処理量計算部と、
前記各制御タスクの前記将来の処理量と、前記各制御タスクの割当先である複数の演算装置の処理能力との制約条件を満たすように、前記各制御タスクの割当先である前記演算装置を決定する割当先決定部と、を有することを特徴とする
タスク割当て装置。 - 前記処理量計算部は、前記各演算装置における将来の処理負荷率を、前記将来の処理量として計算し、
前記割当先決定部は、前記各演算装置における前記将来の処理負荷率が、前記各演算装置の処理能力の範囲内になる旨の前記制約条件を満たすように、前記各制御タスクの割当先である前記演算装置を決定することを特徴とする
請求項1に記載のタスク割当て装置。 - 前記割当先決定部は、前記制約条件を満たす範囲内で、現在の処理負荷率から前記将来の処理負荷率までの変化量が大きい前記制御タスクほど、割り当ててある前記制御タスクの処理負荷率が小さい前記演算装置に割り当てるように、割当先である前記演算装置を決定することを特徴とする
請求項2に記載のタスク割当て装置。 - 前記処理量計算部は、前記システムで計測された所定のセンサデータを処理するために複数の前記制御タスクにまたがって実行される同期型処理について、前記各制御タスクでの処理時間が前記処理量の変動データにより更新された状態での将来の応答時間を、前記将来の処理量として計算し、
前記割当先決定部は、計算された前記将来の応答時間が、前記システムを制御するために事前に設定された応答時間の上限値の範囲内になる旨の前記制約条件を満たすように、前記各制御タスクの割当先である前記演算装置を決定することを特徴とする
請求項1に記載のタスク割当て装置。 - 前記割当先決定部は、前記制約条件を満たす範囲内で、同期型処理に対する現在の応答時間から前記将来の応答時間までの変化量が小さくなるように、割当先である前記演算装置を決定することを特徴とする
請求項4に記載のタスク割当て装置。 - タスク割当て装置は、処理量計算部と、割当先決定部と、を有しており、
前記処理量計算部は、システムを制御するための各制御タスクの処理量について、現在の処理量から処理量の変動データをもとに将来の処理量を計算し、
前記割当先決定部は、前記各制御タスクの前記将来の処理量と、前記各制御タスクの割当先である複数の演算装置の処理能力との制約条件を満たすように、前記各制御タスクの割当先である前記演算装置を決定することを特徴とする
タスク割当て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017129300A JP2019012456A (ja) | 2017-06-30 | 2017-06-30 | タスク割当て装置、および、タスク割当て方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017129300A JP2019012456A (ja) | 2017-06-30 | 2017-06-30 | タスク割当て装置、および、タスク割当て方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019012456A true JP2019012456A (ja) | 2019-01-24 |
Family
ID=65226397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017129300A Pending JP2019012456A (ja) | 2017-06-30 | 2017-06-30 | タスク割当て装置、および、タスク割当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019012456A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021020206A1 (ja) * | 2019-07-31 | 2021-02-04 | マツダ株式会社 | 車両制御システム及び車両制御システムの設計方法 |
JPWO2022050090A1 (ja) * | 2020-09-07 | 2022-03-10 |
-
2017
- 2017-06-30 JP JP2017129300A patent/JP2019012456A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021020206A1 (ja) * | 2019-07-31 | 2021-02-04 | マツダ株式会社 | 車両制御システム及び車両制御システムの設計方法 |
JP2021027387A (ja) * | 2019-07-31 | 2021-02-22 | マツダ株式会社 | 車両制御システム及び車両制御システムの設計方法 |
CN114206684A (zh) * | 2019-07-31 | 2022-03-18 | 马自达汽车株式会社 | 车辆控制系统和车辆控制系统的设计方法 |
EP4007217A4 (en) * | 2019-07-31 | 2022-09-21 | Mazda Motor Corporation | VEHICLE CONTROL SYSTEM AND DESIGN METHOD FOR A VEHICLE CONTROL SYSTEM |
US11772668B2 (en) | 2019-07-31 | 2023-10-03 | Mazda Motor Corporation | Vehicle control system and design method for vehicle control system |
JP7395865B2 (ja) | 2019-07-31 | 2023-12-12 | マツダ株式会社 | 車両制御システム及び車両制御システムの設計方法 |
CN114206684B (zh) * | 2019-07-31 | 2024-04-02 | 马自达汽车株式会社 | 车辆控制系统和车辆控制系统的设计方法 |
JPWO2022050090A1 (ja) * | 2020-09-07 | 2022-03-10 | ||
WO2022050090A1 (ja) * | 2020-09-07 | 2022-03-10 | 株式会社日立産機システム | コントロールシステム |
JP7465984B2 (ja) | 2020-09-07 | 2024-04-11 | 株式会社日立産機システム | コントロールシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9916183B2 (en) | Scheduling mapreduce jobs in a cluster of dynamically available servers | |
Beloglazov et al. | Managing overloaded hosts for dynamic consolidation of virtual machines in cloud data centers under quality of service constraints | |
JP5343523B2 (ja) | ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム | |
EP3129880B1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
JP5729466B2 (ja) | 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム | |
JP4016010B2 (ja) | リアルタイムスケジューリング可能性判定方法およびリアルタイムシステム | |
JP6241300B2 (ja) | ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム | |
CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算系统 | |
US9037880B2 (en) | Method and system for automated application layer power management solution for serverside applications | |
JP6191691B2 (ja) | 異常検出装置、制御方法、及びプログラム | |
US10979505B1 (en) | Distributed storage system and data migration method | |
JP2012079124A (ja) | ジョブ分散処理システム、情報処理装置及びプログラム | |
US20150074216A1 (en) | Distributed and parallel data processing systems including redistribution of data and methods of operating the same | |
US10936377B2 (en) | Distributed database system and resource management method for distributed database system | |
JPWO2015001850A1 (ja) | タスク割り当て判定装置、制御方法、及びプログラム | |
WO2018186358A1 (ja) | 制御装置、制御方法および制御プログラム | |
JP7385989B2 (ja) | 演算制御装置 | |
JP2011186701A (ja) | リソース割当装置、リソース割当方法、およびリソース割当プログラム | |
CN113168344A (zh) | 通过提高集群多样性实现的分布式资源管理 | |
JP2019012456A (ja) | タスク割当て装置、および、タスク割当て方法 | |
JP5178778B2 (ja) | 仮想計算機およびcpu割り当て方法 | |
CN101908004A (zh) | 促进请求执行的装置和方法 | |
JP6239400B2 (ja) | 制御装置 | |
KR20160139082A (ko) | 역경매 방식 자원할당 장치를 포함하는 하이브리드 클라우드 서버 및 그 자원 할당 방법 및 시스템 | |
JP2020173622A (ja) | 並列タスクスケジューリング方法 |