JPWO2011102219A1 - リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム - Google Patents

リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム Download PDF

Info

Publication number
JPWO2011102219A1
JPWO2011102219A1 JP2012500546A JP2012500546A JPWO2011102219A1 JP WO2011102219 A1 JPWO2011102219 A1 JP WO2011102219A1 JP 2012500546 A JP2012500546 A JP 2012500546A JP 2012500546 A JP2012500546 A JP 2012500546A JP WO2011102219 A1 JPWO2011102219 A1 JP WO2011102219A1
Authority
JP
Japan
Prior art keywords
task
unit
evaluation function
tasks
core
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
JP2012500546A
Other languages
English (en)
Inventor
紀章 鈴木
紀章 鈴木
正人 枝廣
正人 枝廣
淳嗣 酒井
淳嗣 酒井
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2011102219A1 publication Critical patent/JPWO2011102219A1/ja
Withdrawn 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Abstract

複数の周期タスクから構成される開発対象のシステムにおいて、スケジューリング可能な複数のタスク配置の中から性能がよい配置を探索可能な自動最適化システムを提供する。複数のコアを有するマルチコア向けのタスク配置最適化システムが、コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する。前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する。探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する。

Description

本発明はタスク配置に関し、より詳細にはリアルタイムシステム用マルチコア向けのタスク配置に関する。
近年のデジタル機器の高性能化と低消費電力化要求の高まりを受け、組み込みLSI(Large Scale Integration)に複数のプロセッサを搭載するマルチコア(Multi-core)構成が有望な解決手段として注目を集めている。このようなマルチコア化は、システムの制御を目的とするリアルタイムシステム等においても主要な流れになりつつある。
一方で、このようなマルチコアを搭載したリアルタイムシステムにおいては、並列に実行されるアプリケーションがデッドラインミスすることなくスケジューリング可能であることを保障する必要がある。この課題を解決する手法の一例としては、特許文献1に記載されている「リアルタイムスケジューリング可能性判定方法及びリアルタイムシステム」が挙げられる。
特許文献1に記載の技術においては、マルチコアを搭載したリアルタイムシステムにおいて、一つのタスクの実行に同時に複数のプロセッサを必要とする場合のスケジューリング可能性判定方法を提供している。
次に、図13を参照して特許文献1に記載の技術について説明する。なお図13は特許文献1の図2に相当する図である。図13に示されるスケジューリング可能性判定部300が以下に示す判定方法によりスケジューリングが可能か否かを判定する。
具体的には、
Lk:タスクkがデッドラインミスを起こす場合には、ある期間の実際の平均負荷が必ずこれ以上となる値
Uk,i:タスクkがデッドラインミスを起こす場合に、タスクkの平均負荷期間におけるタスクiの平均単一負荷時間以上になっていることが保障されている値
Mi:タスクiによって同時に使用されるプロセッサ数
と定義した場合において、
全てのタスクが
Σi=1…N Mi*Uk,i≦Lk
を満たす場合にリアルタイムスケジューリングすることが可能であると判定する。このような方法を用いることにより、特許文献1に記載の技術では、一つのタスクの実行に同時に複数のプロセッサを必要とする場合のスケジューリング可能性が判定できる。
特許第4016010号
白石洋充/竹垣盛一著「リアルタイムシステムとその応用」朝倉書店、2001年9月1日、pp.35−56
上述したように特許文献1に記載の技術を用いることによりスケジューリングが可能か否かが判定できる。
しかしながら、この特許文献1に記載の技術に代表されるような、一般的な技術には下述するような複数の問題点が存在する。
第1の問題点は、スケジューリング可能な複数のタスク配置の中から性能が良い配置を探索できないことである。
その理由は、一般的な技術ではリアルタイムスケジューリングが可能か否かのみ判定が可能であり、スケジューリングが可能な複数の候補それぞれの性能の良さは判定できないためである。
第2の問題点は、リアルタイムシステムにおいてシステムの安定性の観点から重要な指標である、デッドラインからの余裕度を大きくできないことである。
その理由は、一般的な技術のリアルタイムスケジューリングが可能か否かを判定する手法では、デッドラインからの余裕度が大きい場合も小さい場合も区別なく扱われるからである。
そこで、本発明は、スケジューリング可能な複数のタスク配置の中から性能が良い配置を探索可能な、リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラムを提供することを第1の目的とする。
また、本発明は、リアルタイムシステムにおいてシステムの安定性の観点から重要な指標である、デッドラインからの余裕度を大きくすることが可能なリアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラムを提供することを第2の目的とする。
本発明の第1の観点によれば、複数のコアを有するマルチコア向けのタスク配置最適化システムにおいて、コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出部と、前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索部と、前記探索部により探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持部と、を備えることを特徴とするタスク配置最適化システムが提供される。
本発明の第2の観点によれば、複数のコアを有するマルチコア向けのタスク配置最適化方法において、コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出ステップと、前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索ステップと、前記探索ステップにより探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持ステップと、を備えることを特徴とするタスク配置最適化方法が提供される。
本発明の第3の観点によれば、複数のコアを有するマルチコア向けのタスク配置最適化システムに組み込まれるタスク配置最適化プログラムにおいて、コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出部と、前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索部と、前記探索部により探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持部と、を備えるシステムとしてコンピュータを機能させることを特徴とするタスク配置最適化プログラム提供される。
本発明によれば、スケジューリング可能な複数のタスク配置の中から性能がよい配置を探索可能となる。
その理由は、タスク配置候補の性能の良好さを表す指標である評価関数値を算出し、この評価関数値を用いて最適化を行うことにより、性能がよいタスク配置が得られるからである。
また、本発明によれば、リアルタイムシステムにおいてシステムの安定性の観点から重要な指標である、デッドラインからの余裕度を大きくすることが可能となる。
その理由は、コア配置決定対象の複数のタスクの各々の応答時間(タスク起動が指示されてから、そのタスクの実行が終了するまでの時間)の累積値を算出し、コア配置決定対象の複数のタスクの各々の応答時間の累積値を最小化する最適化を行うことにより、各タスクの応答時間が極力短くなるタスク配置が得られるからである。
本発明の実施形態及び各実施例における基本的構成を表すブロック図である。 本発明の実施形態及び各実施例における累積応答時間算出部の基本的構成を表す図である。 本発明のハードウェア及びソフトウェアによる実装例(1/2)について示した図である。 本発明のハードウェア及びソフトウェアによる実装例(2/2)について示した図である 本発明の実施形態及び各実施例における動作について説明するための分枝図である。 本発明の実施形態及び各実施例における基本的動作を表すフローチャートである。 本発明の実施例1における限定部について示すブロック図である。 本発明の実施例2における限定部について示すブロック図である。 本発明の実施例3における基本的構成を表すブロック図である。 本発明の実施例3における近似解探索部の動作について示すフローチャートである。 本発明の実施例4における基本的構成を表すブロック図である。 本発明の実施例4における基本的動作を表すフローチャートである。 特許文献1に記載の技術について説明するための図である。
100 タスク配置自動最適化システム
110 探索部
111 分枝部
112 限定部
112−1 既固定タスク累積応答時間算出指示部
112−2 未固定タスク最短応答時間積算部
112−3 未固定タスク実行時間合計部
112−4 未固定タスク実行時間積算部
113 限定抑止部
120 累積応答部算出部
120−1 応答時間算出部
120−2 応答時間累積部
130 高評価候補保持部
140 近似解探索部
200 コンピュータ
210 プロセッサ
220 補助記憶装置
221 タスク自動配置最適化プログラム
222−1、222−2、222−3 タスク
223 タスク最適配置定義ファイル
224 タスクセット定義ファイル
230 主記憶装置
300 スケジューリング可能性判定部
次に、具体的な実施形態を用いて本発明を実施するためのタスク配置最適化システムの構成及び動作を説明する。
本明細書においては例えばコアが複数存在し、そのそれぞれを識別するためにコア番号など番号付けを行う際は、コア0、コア1、コア2…のように0番から付番するものとする。
[実施形態]
図1は、本発明の実施形態による自動最適化システム100の全体構成を示すブロック図である。図1において、自動最適化システム100は、探索部110、累積応答時間算出部120、及び高評価候補保持部130を有する。探索部110は、更に分枝部111と、限定部112を有する。なお、後述するが分枝部111は、子問題生成に関する部分である。また、限定部112は、不要候補排除に関する部分である。
次に図2を用いて、累積応答時間算出部120の詳細について説明する。図2に示すように、累積応答時間算出部120はさらに、応答時間算出部120−1と、応答時間累積部120−2を有する。
なお、上述した自動最適化システム100は、プロセッサ等のハードウェア資源がプログラム(ソフトウェア)を読み込むことにより実現される。
すなわち、ソフトウェアがコンピュータに組み込まれることにより、ソフトウェアとハードウェア資源とが協働した具体的部分によって、使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の情報処理装置(機械)またはその動作方法が構築される。
具体的なデータ処理装置100の実装例としてコンピュータ200を図3及び図4に示す。
図3を参照するとコンピュータ200は、プロセッサ210、補助記憶装置220及び主記憶装置230を有している。
プロセッサ210は演算処理装置である。また、補助記憶装置220は、HDD(Hard disk drive)やSSD(solid state drive)に代表される記憶装置であり、各種のデータや、プログラムが格納される。図3においては、タスク自動配置最適化プログラム221、タスク(タスク222−1、タスク222−2及びタスク222−3を図示する。)及びタスク最適配置定義ファイル223を図示する。また、主記憶装置230はRAM(Random Access Memory)に代表される記憶装置であり、プロセッサ210が演算処理を行うにあたり利用される記憶部である。
プロセッサ210によって補助記憶装置220から読み出されて実行されるタスク自動配置最適化プログラム221は、補助記憶装置220から最適化対象のタスク222−1、タスク222−2及びタスク222−3の情報を読み出し、記憶装置230を利用しながらタスク配置の最適化を行う。最適化を行った結果得られたタスク最適配置は、補助記憶装置220上にタスク最適配置定義ファイル223として出力される。
次に、図4を参照すると補助記憶装置220は、タスク222−1、タスク222−2及びタスク222−3に代わりタスクセット定義ファイル224を有している。
そして、プロセッサ210によって補助記憶装置220から読み出されて実行されるタスク自動配置最適化プログラム221は、補助記憶装置220から最適化対象の複数のタスクに関する情報が定義されたタスクセット定義ファイル224を読み出し、記憶装置230を利用しながらタスク配置の最適化を行う。最適化を行った結果得られたタスク最適配置は、補助記憶装置220上にタスク最適配置定義ファイル223として出力される。
次に、図1及び図2を参照して説明した各部の機能について具体的に説明する。
探索部110は、複数あるタスクのコア配置を探索し、タスク配置候補を生成する。探索には、子問題を生成する分枝と、不要な候補を排除する限定操作からなる分枝限定法を用いる。
累積応答時間算出部120は、タスク配置候補を入力とし、コア配置決定対象の複数のタスク各々の応答時間を計算し、その累積値をタスク配置の良さを表す指標である評価関数値として算出し、出力する。
高評価候補保持部130は、タスク配置候補のうち評価関数値が良好であった候補を保持する。
次に探索部110内の分枝部111及び限定部112について説明する。
分枝部111は、図5に示すように、優先度が高いタスクからコアに固定して子問題(図5中では丸で表す)を生成する(図5の上から下に向かう)ことで、探索するタスク配置候補を網羅的に生成する。このとき、子問題の生成が繰り返されて全てのタスクの配置が終了したものがタスク配置候補(図5の最下段)となる。なお、説明の便宜上図5は2コアのシステムを想定した記載となっている。しかし、タスク配置候補を網羅的に生成する本手法は、その対象が2コアに限定されるものではなく、3コア以上の任意のコア数のシステムにおいても同様に拡張が可能である。
限定部112では、子問題が取り得る評価関数の限界値(それ以上良くならないと断定できる値で、良い配置が小さい値で表わされる評価関数を用いた場合は下界値、良い配置が大きい値で表わされる評価関数値を用いた場合は上界値となる)を、既にコアに固定したタスクを用いて算出した評価関数値と、既にコア配置を固定したタスクのうち各コアの中で最も優先度が低いタスクの応答時間と、コア配置が未決定なタスクの実行時間のうち少なくともいずれか1つを用いて算出する。
この評価関数値の限界値が、既に見つかっている他のタスク配置候補のスコアより悪い場合には、それ以上その子問題の探索を行っても他のタスク配置候補よりも良いタスク配置候補は得られないため、探索を打ち切る限定処理を行う。限定が行われる場合、それ以上分枝部111による子問題の生成が行われなくなる。
次に、図2に示す累積応答時間算出部120内の応答時間算出部120−1及び応答時間累積部120−2について説明する。
応答時間算出部120−1は、複数のタスクそれぞれについて、そのタスクの応答時間(タスク起動が指示されてから、そのタスクの実行が終了するまでの時間)を算出する。
応答時間累積部120−2は、応答時間算出部120−1によって算出された各タスクの応答時間を合計し、累積応答時間を算出する。
次に、図6のフローチャートを用いて、本発明の実施形態における自動最適化システムの動作について説明する。
なお、便宜上ここでは2コアのシステムを想定した動作を記述しているが、本手法は、その適用対象が2コアに限定されるものではなく、3コア以上の任意のコア数のシステムにおいても同様に適用が可能である。
まずステップS11において、探索部110は現在扱っている子問題がタスク候補であるか否かを判定する。ここでタスク候補は、全てのタスクが固定された子問題に相当する。タスク候補でない場合(ステップS11においてNo)はステップS12に進む。タスク候補であった場合は(ステップS11においてYes)ステップS16に進む。
次にステップS12では、探索部110内の限定部112が限定式の計算を行い、子問題が取り得る評価関数値の限界値(それ以上良くならないと断定できる値)を算出する。
その後、限定部112はステップS13において、評価関数値の限界値と、高評価候補保持部130に保持されているタスク配置候補について累積応答時間算出部120によって算出される評価関数値とを比較する。比較の結果、評価関数値を更新する可能性がある場合(ステップS13においてYes)はステップS14に進む。可能性がない場合(ステップS13においてNo)には限定を行い、それ以上子問題の生成は行わずに処理を終了する。
ステップS13において評価関数値を更新する可能性がある場合(ステップS13においてYes)、分枝部111はステップS14において、次に固定するタスクのコア配置を0とした子問題を生成する。生成された子問題は、ここで述べている動作と同様に図6のフローチャートに基づいた処理を行う。引き続き分枝部111はステップS15において、次に固定するタスクのコア配置を1とした子問題を生成する。生成された子問題は同様に図6のフローチャートに基づいた処理を行う。
一方でステップS11において現在扱っている子問題がタスク候補であった場合(ステップS11においてYes)、探索部110はステップS16において、累積応答時間生成部120にタスク配置候補を渡すことでタスク配置候補の評価関数値の算出を行う。その後探索部110はステップS17において、ステップS16で算出した評価関数値と、高評価候補保持部130によって保持されているタスク配置候補の評価関数値を比較する。ここで、高評価候補保持部130によって保持されているタスク配置候補の評価関数値は毎回計算するのではなく、一度計算したものを保持しておく構成とすることが望ましい。比較した結果、現在のタスク配置候補の評価関数値がより良好な値を示した場合(ステップS17においてYes)、探索部110はステップS18において、現在のタスク配置候補を高評価候補として高評価候補保持部130に登録し、処理を終了する。現在のタスク配置候補の評価関数値が良好でない場合(ステップS17においてNo)には何も行わずに処理を終了する。
次に、本発明の実施形態における効果を説明する。
本発明の実施形態では、累積応答時間算出部120によって、タスク配置候補の性能の良好さを表す指標である評価関数値を算出し、この評価関数値を用いて最適化を行うことにより、性能がよいタスク配置を得ることが可能である。このため、スケジューリング可能な複数のタスク配置の中から性能がよい配置を探索可能な自動最適化システムの提供が可能となる。また、累積応答時間算出部120によって、コア配置決定対象の複数のタスクの各々の応答時間(タスク起動が指示されてから、そのタスクの実行が終了するまでの時間)の累積値を算出し、コア配置決定対象の複数のタスクの各々の応答時間の累積値を最小化する最適化を行うことにより、各タスクの応答時間が極力短くなるタスク配置を得ることが可能である。このため、リアルタイムシステムにおいてシステムの安定性の観点から重要な指標である、デッドラインからの余裕度を大きくすることが可能となる。更に、タスク配置候補の探索の際に、限定部によって不要なタスク配置候補を探索しないよう限定する。このため、最適化に必要な時間の削減が可能である。
次に、具体的な実施例を用いて本発明を実施するためのタスク配置最適化システム100の構成及び動作を説明する。
なお、実施例1の基本的構成及びは、図1、図2及び図6に実施形態として示したタスク配置自動化システム100の構成及び動作と同じであるが、本実施例1では図7を参照して、限定部112の具体的な構成例について説明する。また、応答時間算出部120−1における算出方法についても説明する。
図7を参照すると、限定部112は、既固定タスク累積応答時間算出指示部112−1と、未固定タスク最短応答時間積算部112−2と、未固定タスク実行時間合計部112−3を有する。
既固定タスク累積応答時間算出指示部112−1、未固定タスク最短応答時間積算部112−2、未固定タスク実行時間合計部112−3は、限定部112の機能のうち、評価関数の限界値を求める作用を担当する。なお、評価関数値がより大きいものがより良い配置であるようにする場合と、評価関数値がより小さいものがより良い配置であるようにする場合との2つの場合が考えられるが、以下では、評価関数値がより小さいものがより良い配置である場合を例として説明する。また、以下の説明において、既固定タスクとは、子問題中で既にコア配置を固定されたタスクを指すものとする。未固定タスクとは、まだ子問題中でコア配置を固定されておらず、以後の処理で固定していくタスクを指すものとする。
まず、評価関数の限界値の計算においては、既固定タスクによって既に評価関数値が確定している部分(以後、「確定限界値」と呼ぶ)の計算と、未固定タスクが今後タスク配置を固定されることによって増加が見込まれる評価関数値(以後、「増加限界値」と呼ぶ)の計算の大きく2つが存在する。このうち確定限界値の計算を、既固定タスク累積応答時間算出指示部112−1が行う。増加限界値の計算は、未固定タスク最短応答時間積算部112−2、未固定タスク実行時間合計部112−3が行う。
既固定タスク累積応答時間算出指示部112−1は、累積応答時間算出部120に対して既固定タスクのコア配置を渡すことで、累積応答時間を算出する指示を与える。累積応答時間算出部120はこの既固定タスクのコア配置を基に累積応答時間を算出し、限定部112に渡すことで、確定限界値の計算が行われる。
次に、未固定タスク最短応答時間積算部112−2は、次のことを利用して増加限界値の計算を行う。
まず、既に数段階の子問題生成が行われ、いくつかの既固定タスクが存在する状態を考える。ここで新たに未固定タスクを追加したとき、未固定タスクは既固定タスクより優先度が低い。このことから、未固定タスクの応答時間は、各コア内で最低優先度の既固定タスクの応答時間を、それぞれのコアについて比較して最も短い応答時間(以後、「未固定タスク最短応答時間」と呼ぶ)よりも長くなる。このため、残りのタスクをすべて固定することによって増加する評価関数値は、未固定タスク最短応答時間に残りのタスク数を乗じたものよりも大きい。未固定タスク最短応答時間積算部112−2は、未固定タスク最短応答時間に残りのタスク数を乗じたものを増加限界値の一部として算出する。
最後に、未固定タスク実行時間合計部112−3は、次のことを利用して増加限界値の計算を行う。
まず、既に数段階の子問題生成が行われ、いくつかの既固定タスクが存在する状態を考える。ここで新たに未固定タスクを追加したとき、未固定タスクの応答時間は、既固定タスク最短応答時間に加えて、追加したタスクの実行時間が少なくとも加算される。このため、未固定タスク実行時間合計部112−3は、未固定タスクの実行時間を全て合計することで、増加限界値の一部を算出する。
ここで、未固定タスク最短応答時間積算部112−2及び未固定タスク実行時間合計部112−3が算出する増加限界値はそれぞれ独立した要素を計算しているため、双方を合計したものを増加限界値として用いることが可能である。
次に、応答時間算出部120−1における応答時間の算出について説明する。応答時間の算出においては、非特許文献1に記載の最悪応答時間を算出する手法を応用することができる。以下でその手法の概要について述べる。
まず、シングルコアにおいて、タスクτに対するワークロードである
Figure 2011102219
は、
Figure 2011102219
の期間で起動指示が与えられるタスクτとそれより優先度が高い全てのタスクによってなされるプロセッサの仕事量の総和を表し、次の式で求められる。
Figure 2011102219
ここで、
Figure 2011102219
はxより大きいか等しい最小の整数で、小数点以下を繰り上げたものに相当する。また、ここで、仕事量が1であるとは、時間1においてプロセッサの処理が終了することを表す。このため、貼って
Figure 2011102219
となるtが存在する、すなわち、時刻tまでに蓄積した仕事量が、経過した時間tと等しくなる点が存在すれば、そのtにおいてプロセッサの残り仕事量が0になる。このtがタスクτの最悪応答時間である。この時、tが
Figure 2011102219
(Dはタスクτのデッドライン時刻)の範囲であれば、タスクτがデッドライン制約を満たすと判定することができる。
ここで、最悪応答時間の計算は
Figure 2011102219
Figure 2011102219
の回帰関係を用いて求める。
この回帰関係において、
Figure 2011102219
の範囲において
Figure 2011102219
となったときに計算を停止する。
一方、
Figure 2011102219
の範囲で
Figure 2011102219
が成立しない場合はデッドラインミスとなる。
マルチコアにおけるタスクτの最悪応答時間の計算には、タスクτと同じコア上のタスクのみを用いてWorkloadの式を構築する。
最後に応答時間累積部120−2は、応答時間算出部120−1によって算出された各タスクの応答時間を合計し、累積応答時間を算出する。
なお、実施例1の基本的動作は、図6のフローチャートに示した動作と同様であるため説明を省略する。また、本実施例1の構成とすることにより、実施形態の効果として上述した効果と同様の効果を奏することができる。
なお、実施例1においては、限定部112を構成する要素として既固定タスク累積応答時間算出指示部112−1、未固定タスク最短応答時間積算部112−2、未固定タスク実行時間合計部112−3が含まれるものとした。一方でこれら3つの要素はそれぞれ評価関数の限界値の独立した要素を計算していることから、このうちの一部のみを有する構成とすることもできる。具体的には次のようなバリエーションが考えられる。
(1)限定部112が既固定タスク累積応答時間算出指示部112−1を有する構成
(2)限定部112が未固定タスク最短応答時間積算部112−2を有する構成
(3)限定部112が未固定タスク実行時間合計部112−3を有する構成
(4)限定部112が既固定タスク累積応答時間算出指示部112−1及び未固定タスク最短応答時間積算部112−2を有する構成
(5)限定部112が既固定タスク累積応答時間算出指示部112−1及び未固定タスク実行時間合計部112−3を有する構成
(6)限定部112が未固定タスク最短応答時間積算部112−2及び実行時間合計部112−3を有する構成
次に、本発明の実施例2におけるタスク配置最適化システム100の構成及び動作を説明する。
実施例2のタスク配置最適化システム100は、図8に示すように、実施例1のタスク最適化システムの限定部112を構成する未固定タスク実行時間合計部112−3に代えて、未固定タスク実行時間積算部112−4を有する点を除いて実施例1と同一である。
次に、未固定タスク実行時間積算部112−4の機能について説明する。なお、未固定タスク実行時間積算部112−4以外の各部は実施例1と同様の働きをするため、ここでは説明を省略する。また、実施例2の全体的な動作については、未固定タスク実行時間積算部112−4による増加限界値の計算以外は実施例1と同様であるため説明を省略する。
未固定タスク実行時間積算部112−4は、次のことを利用して増加限界値の計算を行う。
実施例1の未固定タスク実行時間合計部112−3では、未固定タスクの実行時間を全て単純に合計していたが、未固定タスク実行時間積算部112−4においては異なる計算手法を用いる。
ここで、シングルコアにおける未固定タスクの応答時間について考える。
まず、既に数段階の子問題生成が行われ、いくつかの既固定タスクが存在する状態を考える。ここで新たに1つ未固定タスクAを追加したとき、未固定タスクAの応答時間は、既固定タスク最短応答時間に加えて、未固定タスクAの実行時間が少なくとも加算される。この状態で更に1つ未固定タスクBを追加すると、未固定タスクBの応答時間は、既固定タスク最短応答時間及び未固定タスクAの実行時間に加えて、未固定タスクBの実行時間が少なくとも加算される。ここで、評価関数は応答時間の累積であることから、未固定タスクA及び未固定タスクBを追加したときに増加する評価関数値には、未固定タスクAの実行時間は2回加算されることになる。同様に、追加される未固定タスクの数がx個の場合には、未固定タスクAの実行時間はx回、未固定タスクBの実行時間はx−1回加算されることになる。
マルチコアの場合は、未固定タスクAを追加したコアと未固定タスクB、及びその他の未固定タスクを追加するコアは必ずしも同一でないことから、p個のコアからなるマルチコアにおいては加算される応答時間の回数が概ね1/pとなることに注意が必要である。
更に、未固定タスクAと未固定タスクBの実行時間が加算される回数は、その後の未固定タスクのコア配置次第では未固定タスクBが多くなることが十分あり得るため、実行時間が長いタスクを最大回数加算してしまうと誤りが生じる。そのため、未固定タスクの実行時間を短い順にソートし、短いものから多数回加算されるものとして算出することで、増加限界値として問題のない値を算出することができる。
この処理は次のように表わされる。まず、未固定タスクの実行時間を昇順にソートする。その後未固定タスク1つごとに、昇順にソートされた未固定タスクの実行時間に、未固定タスク数÷コア数の小数点以下を繰り上げたものを乗じた値を積算し、未固定タスク数を1つ減じる操作を全ての未固定タスクについて繰り返す。
つまり、nを総タスク数、mを既固定タスクの数、pをコア数、
Figure 2011102219
を、残りタスクの実行時間を短い順にソートしたものとしたとき、計算式
Figure 2011102219
を用いて増加限界値の一部を算出する。
ここで、未固定タスク最短応答時間積算部112−2及び未固定タスク実行時間積算部112−4が算出する増加限界値はそれぞれ独立した要素を計算しているため、双方を合計したものを増加限界値として用いることが可能である。
なお、実施例2においては、限定部112を構成する要素として既固定タスク累積応答時間算出指示部112−1、未固定タスク最短応答時間積算部112−2、未固定タスク実行時間積算部112−4を有するものとした。一方でこれら3つの要素はそれぞれ評価関数の限界値の独立した要素を計算していることから、このうちの一部のみを備える構成をとることができる。具体的なバリエーションのうち実施例1で述べていないものとして、以下が考えられる。
(1)限定部112が未固定タスク実行時間積算部112−4を備える構成
(2)限定部112が既固定タスク累積応答時間算出指示部112−1及び未固定タスク実行時間積算部112−4を備える構成
(3)限定部112が未固定タスク最短応答時間積算部112−2及び実行時間積算部112−4を備える構成
次に、本発明の実施例3におけるタスク配置最適化システムの構成及び動作を説明する。
実施例3のタスク配置最適化システム100は、図9に示すように、実施例1または実施例2のタスク最適化システム100に加えて、近似解探索部140を更に有する点を除いて同一である。
次に、近似解探索部140の機能について説明する。なお、近似解探索部140以外の各部は実施例1又2と同様の働きをするため、ここでは説明を省略する。なお、近似解探索部140を設ける実施例3は、実施例1の限定部112と組み合わせてもよいし、実施例2の限定部112と組み合わせてもよい。
近似解探索部140は、探索部110が行う最適化より簡便な手法により、探索部110より高速にタスク配置候補を発見し、高評価候補保持部130に候補を登録する。簡便な方法には、最適化の一般的な近似解法、例えば山登り法などを用いることができる。この探索は、候補の評価関数値は多少劣っていても問題ないが、速度は探索部110に比べて十分高速である必要がある。
次に、図10のフローチャートを用いて、本発明の実施例3における自動最適化システム100の動作について説明する。
まずステップS21において、近似解探索部140は近似解法によるタスク配置候補作成を行う。その後ステップS22において、近似解探索部140は作成した候補を登録する。以後ステップS23において、探索部110が最適化を行うが、ここでの動作は実施例1及び実施例2の動作として図6のフローチャートに示した動作と同様であるため説明を省略する。
次に、本発明の実施例3における効果を説明する。
最適化を開始した初期の段階では、通常はまだスコアが低いタスク配置候補しか見つかっていない。このため、子問題が取り得る評価関数値の限界値として計算した値は現在見つかっているタスク配置候補のスコアを容易に上回るため、効果的な限定が行われないことがある。ここで本発明の実施例3では、探索部110による最適化前に、高速な近似解法によって比較的良好な解の候補を得て、高評価候補保持部130にあらかじめ登録している。このため、探索部110による最適化の開始時には、その評価関数値を元に限定を行うことが可能となり、処理の高速化を図ることができる。
次に、本発明の実施例4におけるタスク配置最適化システム100の構成及び動作を説明する。実施例4は、概略、最適化の前半では限定を行わず、後半になってから限定を効かせるようにするという実施例である。
実施例4のタスク配置最適化システム100は、図11に示すように、実施例1又は実施例2のタスク最適化システムの探索部110内に、限定抑止部113をさらに有する点を除いて同一である。なお、図9に示す近似解探索部140と限定抑止部113を組み合わせた構成とすること、すなわち実施例3と実施例4を組み合わせることも可能である。
次に限定抑止部113の働きについて説明する。なお、限定抑止部113以外の実施例1又は実施例2と同一の要素については実施例1又は実施例2と同様の働きをするため説明を省略する。
限定抑止部113は、既固定タスク数が少ないときに、限定部112による限定を行わないよう抑止する。抑止を行う既固定タスク数には、総タスク数から算出する方法(例えば総タスク数の1/2とするなど)、あらかじめ総タスク数ごとに抑止が効果的に働く既固定タスク数を計測した値を記録しておく方法等の任意の方法を利用することができる。
次に、図12のフローチャートを用いて、実施例4における自動最適化システムの動作について説明する。
なお、便宜上ここでは2コアのシステムを想定した動作を記述しているが、本手法は2コアに限定されるものではなく、3コア以上のシステムにおいても同様に適用が可能である。
まずステップS31において、限定抑止部113は既固定タスク数が規定値を超えたか否かを判定する。超えていない場合(ステップS31においてNo)はステップS32に進む。超えている場合は(ステップS31においてYes)ステップS34に進む。
既固定タスク数が規定値を超えていない場合、分枝部111はステップS32において、次に固定するタスクのコア配置を0とした子問題を生成する。このとき生成された子問題は、ここで述べている動作と同様に図12のフローチャートに基づいた処理を行い、限定に関する処理は行わない。つまり、子問題の生成のみを行う。引き続き分枝部111はステップS33において、次に固定するタスクのコア配置を1とした子問題を生成する。生成された子問題は同様に図12のフローチャートに基づいた処理を行う。
既固定タスク数が規定値を超えている場合、分枝部111はステップS34において、次に固定するタスクのコア配置を0とした子問題を生成する。生成された子問題は、ここで述べている動作とは異なり、実施例1などと同様に図6のフローチャートに基づいた処理を行う。つまり、この段階から限定部112による限定処理が開始される。引き続き分枝部111はステップS35において、次に固定するタスクのコア配置を1とした子問題を生成する。生成された子問題は同様に図6のフローチャートに基づいた処理を行う。
次に、本発明の実施例4における効果を説明する。
既固定タスク数が少ない状態では、その後未固定タスクが追加されることによる評価関数値の変動幅が大きい。このため、限定を行うために計算する、子問題が取り得る評価関数値の限界値として悲観的な値しか算出されない。そのため、限定による子問題の減少による高速化よりも限界値の計算を行うことによるオーバヘッドのほうが大きいことがある。そこで本発明の実施例4では、既固定タスク数が少ない子問題では限定処理を行わず、限界値を計算しないよう構成されている。これにより、限定効果が得られない既固定タスク数が少ない子問題での限界値計算オーバヘッドを無くすことが可能となり、最適化処理の高速化が可能となる。
以上説明した本発明の実施形態が奏する効果をまとめると、以下のようになる。
第1の効果は、スケジューリング可能な複数のタスク配置の中から性能がよい配置を探索可能なことである。
その理由は、累積応答時間算出部によって、タスク配置候補の性能の良好さを表す指標である評価関数値を算出し、この評価関数値を用いて最適化を行うことにより、性能がよいタスク配置が得られるからである。
第2の効果は、リアルタイムシステムにおいてシステムの安定性の観点から重要な指標である、デッドラインからの余裕度を大きくすることが可能なことである。
その理由は、累積応答時間算出部によって、コア配置決定対象の複数のタスクの各々の応答時間(タスク起動が指示されてから、そのタスクの実行が終了するまでの時間)の累積値を算出し、コア配置決定対象の複数のタスクの各々の応答時間の累積値を最小化する最適化を行うことにより、各タスクの応答時間が極力短くなるタスク配置が得られるからである。
第3の効果は、最適化に必要な時間を削減可能なことである。
その第1の理由は、タスク配置候補の探索の際に、限定部によって不要なタスク配置候補を探索しないよう限定するからである。
その第2の理由は、最適化前に、高速な近似解法によって比較的良好な解の候補を得て登録しておき、最適化の開始時には、その評価関数値を元に限定を行うからである。
また、その第3の理由は、既固定タスク数が少ない子問題では限定処理を行わず、限界値を計算しないよう構成されていることから、限定効果が得られない既固定タスク数が少ない子問題での限界値計算オーバヘッドを無くすからである。
なお、本発明の実施形態であるタスク配置最適化システムは、ハードウェアにより実現することもできるが、コンピュータをそのタスク配置最適化システムとして機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、本発明の実施形態によるタスク配置最適化方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
本願は、日本の特願2010−034736(2010年2月19日に出願)に基づいたものであり、又、特願2010−034736に基づくパリ条約の優先権を主張するものである。特願2010−034736の開示内容は、特願2010−034736を参照することにより本明細書に援用される。 本発明の代表的な実施の形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) 複数のコアを有するマルチコア向けのタスク配置最適化システムにおいて、
コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出部と、
前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索部と、
前記探索部により探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持部と、
を備えることを特徴とするタスク配置最適化システム。
(付記2) 付記1に記載のタスク配置最適化システムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、既にコアに配置したタスクを用いて算出した前記評価関数値を用いて前記限界値を算出する既固定タスク累積応答時間算出指示部を有することを特徴とするタスク配置最適化システム。
(付記3) 付記1に記載のタスク配置最適化システムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、
各コア内で最低優先度の既にコアに配置したタスクである既固定タスクの応答時間をそれぞれのコアについて比較して、当該比較の結果最も短い応答時間に残りのタスク数を乗じることで限界値を算出する未固定タスク最短応答時間積算部を有することを特徴とするタスク配置最適化システム。
(付記4) 付記1に記載のタスク配置最適化システムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、
まだ配置を固定されていないタスクである未固定タスクの実行時間を全て合計することで限界値を算出する未固定タスク実行時間合計部を有することを特徴とするタスク配置最適化システム。
(付記5) 付記1に記載のタスク配置最適化システムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、
まだ配置を固定されていないタスクである未固定タスクの実行時間を昇順にソートし、未固定タスク1つ毎に、昇順にソートされた未固定タスクの実行時間に、未固定タスク数÷コア数の小数点以下を繰り上げたものを乗じた値を積算し、未固定タスク数を1つ減じる操作を全ての未固定タスクについて繰り返すことで限界値を算出する未固定タスク実行時間積算部を有することを特徴とするタスク配置最適化システム。
(付記6) 前記探索部は、既に配置を固定したタスクの数が規定値より少ない場合には、前記限定部による限定を行わないよう抑止する限定抑止部を更に備えることを特徴とする付記2乃至5の何れかに記載のタスク配置最適化システム。
(付記7) 予め近似解探索を行うことにより、前記探索部より高速にタスク配置候補を発見しておき、発見したタスク配置候補を前記高評価候補保持部に登録する近似解探索部を更に備えることを特徴とする付記1乃至6の何れかに記載のタスク配置最適化システム。
(付記8) 複数のコアを有するマルチコア向けのタスク配置最適化方法において、
コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出ステップと、
前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索ステップと、
前記探索ステップにより探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持ステップと、
を備えることを特徴とするタスク配置最適化方法。
(付記9) 付記8に記載のタスク配置最適化方法において、
前記探索ステップは、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝ステップと、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定ステップと、を含み、
前記限定ステップは、既にコアに配置したタスクを用いて算出した前記評価関数値を用いて前記限界値を算出する既固定タスク累積応答時間算出指示ステップを含むことを特徴とするタスク配置最適化方法。
(付記10) 付記8に記載のタスク配置最適化方法において、
前記探索ステップは、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝ステップと、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定ステップと、を含み、
前記限定ステップは、
各コア内で最低優先度の既にコアに配置したタスクである既固定タスクの応答時間をそれぞれのコアについて比較して、当該比較の結果最も短い応答時間に残りのタスク数を乗じることで限界値を算出する未固定タスク最短応答時間積算ステップを含むことを特徴とするタスク配置最適化方法。
(付記11) 付記8に記載のタスク配置最適化方法において、
前記探索ステップは、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝ステップと、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定ステップと、を含み、
前記限定ステップは、
まだ配置を固定されていないタスクである未固定タスクの実行時間を全て合計することで限界値を算出する未固定タスク実行時間合計ステップを含むことを特徴とするタスク配置最適化方法。
(付記12) 付記8に記載のタスク配置最適化方法において、
前記探索ステップは、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝ステップと、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定ステップと、を含み、
前記限定ステップは、
まだ配置を固定されていないタスクである未固定タスクの実行時間を昇順にソートし、未固定タスク1つ毎に、昇順にソートされた未固定タスクの実行時間に、未固定タスク数÷コア数の小数点以下を繰り上げたものを乗じた値を積算し、未固定タスク数を1つ減じる操作を全ての未固定タスクについて繰り返すことで限界値を算出する未固定タスク実行時間積算ステップを含むことを特徴とするタスク配置最適化方法。
(付記13) 前記探索ステップは、既に配置を固定したタスクの数が規定値より少ない場合には、前記限定ステップによる限定を行わないよう抑止する限定抑止ステップを更に含むことを特徴とする付記9乃至12の何れかに記載のタスク配置最適化方法。
(付記14) 予め近似解探索を行うことにより、前記探索ステップより高速にタスク配置候補を発見しておき、発見したタスク配置候補を前記高評価候補保持ステップに登録する近似解探索ステップを更に含むことを特徴とする付記8乃至13の何れかに記載のタスク配置最適化方法。
(付記15) 複数のコアを有するマルチコア向けのタスク配置最適化システムに組み込まれるタスク配置最適化プログラムにおいて、
コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出部と、
前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索部と、
前記探索部により探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持部と、
を備えるシステムとしてコンピュータを機能させることを特徴とするタスク配置最適化プログラム。
(付記16) 付記15に記載のタスク配置最適化プログラムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、既にコアに配置したタスクを用いて算出した前記評価関数値を用いて前記限界値を算出する既固定タスク累積応答時間算出指示部を有するタスク配置最適化システムとしてコンピュータを機能させることを特徴とするタスク配置最適化プログラム。
(付記17) 付記15に記載のタスク配置最適化プログラムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、
各コア内で最低優先度の既にコアに配置したタスクである既固定タスクの応答時間をそれぞれのコアについて比較して、当該比較の結果最も短い応答時間に残りのタスク数を乗じることで限界値を算出する未固定タスク最短応答時間積算部を有することを特徴とするタスク配置最適化プログラム。
(付記18) 付記15に記載のタスク配置最適化プログラムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、
まだ配置を固定されていないタスクである未固定タスクの実行時間を全て合計することで限界値を算出する未固定タスク実行時間合計部を有することを特徴とするタスク配置最適化プログラム。
(付記19) 付記15に記載のタスク配置最適化プログラムにおいて、
前記探索部は、
優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
前記限定部は、
まだ配置を固定されていないタスクである未固定タスクの実行時間を昇順にソートし、未固定タスク1つ毎に、昇順にソートされた未固定タスクの実行時間に、未固定タスク数÷コア数の小数点以下を繰り上げたものを乗じた値を積算し、未固定タスク数を1つ減じる操作を全ての未固定タスクについて繰り返すことで限界値を算出する未固定タスク実行時間積算部を有することを特徴とするタスク配置最適化プログラム。
(付記20) 前記探索部は、既に配置を固定したタスクの数が規定値より少ない場合には、前記限定部による限定を行わないよう抑止する限定抑止部を更に備えることを特徴とする付記16乃至19の何れかに記載のタスク配置最適化プログラム。
(付記21) 予め近似解探索を行うことにより、前記探索部より高速にタスク配置候補を発見しておき、発見したタスク配置候補を前記高評価候補保持部に登録する近似解探索部を前記タスク配置最適化システムが更に備えることを特徴とする付記15乃至20の何れかに記載のタスク配置最適化プログラム。
本発明は、マルチコア構成をとるハードウェアを用いた機器に向けた開発ツール等に好適である。

Claims (9)

  1. 複数のコアを有するマルチコア向けのタスク配置最適化システムにおいて、
    コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出部と、
    前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索部と、
    前記探索部により探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持部と、
    を備えることを特徴とするタスク配置最適化システム。
  2. 請求項1に記載のタスク配置最適化システムにおいて、
    前記探索部は、
    優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
    前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
    前記限定部は、既にコアに配置したタスクを用いて算出した前記評価関数値を用いて前記限界値を算出する既固定タスク累積応答時間算出指示部を有することを特徴とするタスク配置最適化システム。
  3. 請求項1に記載のタスク配置最適化システムにおいて、
    前記探索部は、
    優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
    前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
    前記限定部は、
    各コア内で最低優先度の既にコアに配置したタスクである既固定タスクの応答時間をそれぞれのコアについて比較して、当該比較の結果最も短い応答時間に残りのタスク数を乗じることで限界値を算出する未固定タスク最短応答時間積算部を有することを特徴とするタスク配置最適化システム。
  4. 請求項1に記載のタスク配置最適化システムにおいて、
    前記探索部は、
    優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
    前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
    前記限定部は、
    まだ配置を固定されていないタスクである未固定タスクの実行時間を全て合計することで限界値を算出する未固定タスク実行時間合計部を有することを特徴とするタスク配置最適化システム。
  5. 請求項1に記載のタスク配置最適化システムにおいて、
    前記探索部は、
    優先度が高いタスクから低いタスクへと順にタスクをコアに配置することにより子問題を生成する分枝部と、
    前記子問題が取り得る前記評価関数値の限界値を算出し、算出した当該評価関数値の限界値を用いて不要なコア配置候補探索をしないよう限定する限定部と、を有し、
    前記限定部は、
    まだ配置を固定されていないタスクである未固定タスクの実行時間を昇順にソートし、未固定タスク1つ毎に、昇順にソートされた未固定タスクの実行時間に、未固定タスク数÷コア数の小数点以下を繰り上げたものを乗じた値を積算し、未固定タスク数を1つ減じる操作を全ての未固定タスクについて繰り返すことで限界値を算出する未固定タスク実行時間積算部を有することを特徴とするタスク配置最適化システム。
  6. 前記探索部は、既に配置を固定したタスクの数が規定値より少ない場合には、前記限定部による限定を行わないよう抑止する限定抑止部を更に備えることを特徴とする請求項2乃至5の何れか1項に記載のタスク配置最適化システム。
  7. 予め近似解探索を行うことにより、前記探索部より高速にタスク配置候補を発見しておき、発見したタスク配置候補を前記高評価候補保持部に登録する近似解探索部を更に備えることを特徴とする請求項1乃至6の何れか1項に記載のタスク配置最適化システム。
  8. 複数のコアを有するマルチコア向けのタスク配置最適化方法において、
    コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出ステップと、
    前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索ステップと、
    前記探索ステップにより探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持ステップと、
    を備えることを特徴とするタスク配置最適化方法。
  9. 複数のコアを有するマルチコア向けのタスク配置最適化システムに組み込まれるタスク配置最適化プログラムにおいて、
    コア配置決定対象である複数のタスク各々の応答時間を算出し、算出した当該応答時間の累積値を、タスク配置の良好さを表す指標である評価関数値として出力する累積応答時間算出部と、
    前記評価関数値に基づいて、良好な評価関数値が算出されるタスク配置を探索する探索部と、
    前記探索部により探索された、複数のタスク配置候補のうち評価関数値が良好であった候補を保持する高評価候補保持部と、
    を備えるシステムとしてコンピュータを機能させることを特徴とするタスク配置最適化プログラム。
JP2012500546A 2010-02-19 2011-02-02 リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム Withdrawn JPWO2011102219A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010034736 2010-02-19
JP2010034736 2010-02-19
PCT/JP2011/052084 WO2011102219A1 (ja) 2010-02-19 2011-02-02 リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム

Publications (1)

Publication Number Publication Date
JPWO2011102219A1 true JPWO2011102219A1 (ja) 2013-06-17

Family

ID=44482812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012500546A Withdrawn JPWO2011102219A1 (ja) 2010-02-19 2011-02-02 リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム

Country Status (3)

Country Link
US (1) US8887165B2 (ja)
JP (1) JPWO2011102219A1 (ja)
WO (1) WO2011102219A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012056609A1 (ja) * 2010-10-28 2012-05-03 日本電気株式会社 タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラムが格納された非一時的なコンピュータ可読媒体
WO2013094156A1 (ja) * 2011-12-19 2013-06-27 日本電気株式会社 タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム
US9824130B1 (en) * 2013-12-13 2017-11-21 Open Text Corporation Optimizing synchronization of enterprise content management systems
WO2015092873A1 (ja) * 2013-12-18 2015-06-25 株式会社日立製作所 情報処理システム及び情報処理方法
US9323574B2 (en) * 2014-02-21 2016-04-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Processor power optimization with response time assurance
TR201608894A3 (tr) * 2016-06-27 2018-03-21 Tusas Tuerk Havacilik Ve Uzay Sanayii Anonim Sirketi Bir gerçek zamanlı çalışma yöntemi.
CN109783224B (zh) * 2018-12-10 2022-10-14 平安科技(深圳)有限公司 基于负载调配的任务分配方法、装置及终端设备
CN109918195B (zh) * 2019-01-18 2023-06-20 华南理工大学 基于热感知动态任务迁移的众核系统处理器资源调度方法
US11249801B2 (en) * 2019-04-11 2022-02-15 Mastercard International Incorporated Flexible computing job scheduling systems and methods
CN112559032B (zh) * 2019-09-25 2023-06-13 无锡江南计算技术研究所 基于循环段的众核程序重构方法
EP3805924A1 (en) 2019-10-11 2021-04-14 Unify Patente GmbH & Co. KG Method of scheduling an additional new processing task to be executed by a processor, scheduler, and central processing unit
JP7193771B1 (ja) 2021-06-30 2022-12-21 三菱電機株式会社 スケジューリング方法及びスケジューリング設計支援装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121486A (ja) 1993-10-21 1995-05-12 Hitachi Ltd 問題解決装置
JPH09218861A (ja) 1996-02-08 1997-08-19 Fuji Xerox Co Ltd スケジューラ
US6957431B2 (en) * 2001-02-13 2005-10-18 International Business Machines Corporation System for incrementally computing the maximum cost extension allowable for subsequent execution of each task using fixed percentage of the associated cost
JP3716753B2 (ja) 2001-03-21 2005-11-16 日本電気株式会社 マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
JP3914230B2 (ja) 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
JP2007018268A (ja) * 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
JP2007133723A (ja) * 2005-11-11 2007-05-31 Hitachi Ltd マルチプロセッサ、タスクスケジューリング方法、及びコンパイラ
JP4931220B2 (ja) * 2007-03-12 2012-05-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 検出装置、システム、プログラムおよび検出方法

Also Published As

Publication number Publication date
WO2011102219A1 (ja) 2011-08-25
US8887165B2 (en) 2014-11-11
US20120331474A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
WO2011102219A1 (ja) リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム
US10402225B2 (en) Tuning resources based on queuing network model
Chen et al. Improving MapReduce performance using smart speculative execution strategy
US8131843B2 (en) Adaptive computing using probabilistic measurements
Li et al. Work stealing for interactive services to meet target latency
JP5040773B2 (ja) メモリバッファ割当装置およびプログラム
JP6605573B2 (ja) 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ
US8250557B2 (en) Configuring a dependency graph for dynamic by-pass instruction scheduling
Ibrahim et al. Handling partitioning skew in mapreduce using leen
JP2012511204A (ja) リソースを最適化するためのタスク再編成方法
JP2008547106A (ja) 検索用バックオフメカニズム
Jeon et al. TPC: Target-driven parallelism combining prediction and correction to reduce tail latency in interactive services
Liu et al. Preemptive hadoop jobs scheduling under a deadline
Galleguillos et al. Data-driven job dispatching in HPC systems
Wang et al. A fast work-efficient sssp algorithm for gpus
JP5515889B2 (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP6666555B2 (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
US8196146B2 (en) Information processing apparatus, parallel processing optimization method, and program
Fu et al. Optimizing speculative execution in spark heterogeneous environments
JP6823626B2 (ja) データベース管理システム及び方法
US20180267831A1 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
Smith et al. Resource selection using execution and queue wait time predictions
US9588817B2 (en) Scheduling method and scheduling system for assigning application to processor
KR102195886B1 (ko) 분산 처리 시스템 및 이의 동작 방법
Tang et al. A network load perception based task scheduler for parallel distributed data processing systems

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140513