JP7012905B1 - スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム - Google Patents
スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム Download PDFInfo
- Publication number
- JP7012905B1 JP7012905B1 JP2021529328A JP2021529328A JP7012905B1 JP 7012905 B1 JP7012905 B1 JP 7012905B1 JP 2021529328 A JP2021529328 A JP 2021529328A JP 2021529328 A JP2021529328 A JP 2021529328A JP 7012905 B1 JP7012905 B1 JP 7012905B1
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- schedule
- constraint
- executed
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
コンピュータリソースの典型的な例として、共有キャッシュ及びメモリバスが挙げられる。共有キャッシュミスを例に性能劣化のメカニズムを説明する。あるタスクが共有キャッシュを使用することにより、同時に他のコアで実行されるタスクが使用できる共有キャッシュの容量が低下し、キャッシュミスの増加による性能劣化が発生する。
本開示は、適切なスケジュールを生成可能にすることを目的とする。
複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成装置であり、
前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を示す特性データを取得する特性データ取得部と、
前記特性データ取得部によって取得された前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮して、前記複数のタスクを実行するスケジュールを生成するスケジュール生成部と
を備える。
***構成の説明***
図1を参照して、実施の形態1に係るスケジュール生成システム100の構成を説明する。
スケジュール生成システム100は、スケジュール生成装置10と、計測装置50とを備える。スケジュール生成装置10と計測装置50とは、伝送路90を介して接続されている。
スケジュール生成装置10は、機能構成要素として、特性データ取得部21と、スケジュール生成部22とを備える。スケジュール生成部22は、問題生成部23と、問題求解部24とを備える。問題生成部23は、影響制約生成部25と、デッドライン制約生成部26と、コア数制約生成部27と、目的関数生成部28とを備える。
計測装置50は、機能構成要素として、実行時間計測部61と、特性データ計測部62とを備える。
スケジュール生成装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線15を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
計測装置50は、プロセッサ51と、メモリ52と、ストレージ53と、通信インタフェース54とのハードウェアを備える。プロセッサ51は、信号線55を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ51は、複数のコア511を備える。図4では、プロセッサ51は、コア511-1からコア511-nのn個のコア511を備える。また、プロセッサ51は、各コア511が共通して使用する共有キャッシュ512を備える。
図5から図10を参照して、実施の形態1に係るスケジュール生成システム100の動作を説明する。
実施の形態1に係るスケジュール生成システム100の動作手順は、実施の形態1に係るスケジュール生成方法に相当する。また、実施の形態1に係るスケジュール生成システム100の動作を実現するプログラムは、実施の形態1に係るスケジュール生成プログラムに相当する。
実施の形態1では、タスクは一定周期で繰り返し実行される周期タスクであるとする。
タスクの各周期の実行単位をジョブと呼ぶ。タスクが実行可能な状態になる時刻をリリースタイムと呼ぶ。リリースタイム以降であればその周期に対応するジョブはいつでも実行開始できる。実行開始できるとは、実行システムのプロセッサで処理を開始できることを意味する。実行時間はジョブが実行開始してから、実行完了するまでの時間である。ただし、他のタスク又は割込み等に実行権が移った場合、その時間は実行時間には含まない。タスクの実行時間は各ジョブの実行時間から統計的な処理により一意の値に定められる。ここでは、ジョブの実行時間の最長の値(最悪値)を実行時間とする。各ジョブのデッドラインを示す時刻を絶対デッドラインと呼ぶ。リリースタイムから絶対デッドラインまでの時間を相対デッドラインと呼ぶ。
なお、実行時間は、最悪値に限らず、パーセンタイル等でもよい。
(ステップS11:処理終了判定処理)
実行時間計測部61は、タスク実行ファイル群に含まれる全てのタスクについて計測が完了したか否かを判定する。タスク実行ファイル群は、スケジューリング対象とする全タスクの、実行可能な形式のファイルの集合である。
実行時間計測部61は、計測が完了していないタスクが残っている場合には、処理をステップS12に進める。一方、実行時間計測部61は、全てのタスクについて計測が完了している場合には、処理を終了する。
実行時間計測部61は、計測が完了していないタスクを1つ実行対象のタスクとして選択する。実行時間計測部61は、実行対象のタスクを単独で実行したときの実行時間を単独実行時間として計測する。つまり、実行時間計測部61は、他のコア511で他のタスクを実行することなく、実行対象のタスクだけを実行したときの実行時間を単独実行時間として計測する。実行時間は、周期タスクの1回の実行時間であり、計測されたもののうち最長のもの(最悪実行時間)が用いられる。
実行時間計測部61は、ステップS12で選択された実行対象のタスクと、実行対象のタスク以外の1つのタスクとを別々のコア511で同時に実行して、実行対象のタスクの実行時間を計測する。同時に実行することを、Co-runと呼ぶ。そして、特性データ計測部62は、実行対象のタスクとCo-runした各タスクについて、実行対象のタスクへの影響度であるCo-run影響度を計算する。特性データ計測部62は、Co-run影響度が最も大きかったタスクを計測用のCo-runタスクとして選定する。また、特性データ計測部62は、最も大きかったCo-run影響度を、Co-runタスク数が1の場合における計算対象のタスクのCo-run影響度に設定する。
(式1)RX=X個のタスクとCo-run時の実行時間/単独実行時間
つまり、Co-run影響度は、実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合である。
なお、ステップS13の処理では、Co-runするタスク数が1つの場合のCo-run影響度R1が計算された。後述するステップS16の処理では、Co-runするタスク数が2からコア数-1までのそれぞれについてのCo-run影響度RXが計算される。
特性データ計測部62は、ステップS13で選定されたCo-runタスクのCo-run影響度が閾値以上の場合には、実行対象のタスクをセンシティブタスクと判定する。センシティブタスクは、他のタスクとCo-runした場合に、他のタスクの実行時間が長くなり易いタスクである。センシティブタスクは、具体例としては、共有キャッシュを多く使用するタスクが考えられる。
また、ここでは、特性データ計測部62は、他タスクからのCo-runの影響を受けやすいタスクは、他タスクへ影響を与えやすいものであると仮定に基づいて、センシティブタスクであるか否かを判定した。しかし、特性データ計測部62は、他タスクへの影響の与えやすさを改めて測定し、センシティブタスクの判定を行ってもよい。
実行時間計測部61は、Co-runするタスク数が2からコア数-1までの全てのタスク数について、Co-run影響度の計算が完了したか否かを判定する。
実行時間計測部61は、計算が完了していないタスク数が残っている場合には、処理をステップS16に進める。一方、実行時間計測部61は、全てのタスク数について計算が完了している場合には、処理をステップS11に戻す。
実行時間計測部61は、計算が完了していないタスク数を対象タスク数として選択する。実行時間計測部61は、実行対象のタスク以外のタスクから、対象タスク数のタスクの組合せを順に選択し、実行対象のタスクと、選択された組合せに含まれる各タスクとを別々のコア511で同時に実行して、実行対象のタスクの実行時間を計測する。
特性データ計測部62は、実行対象のタスクとCo-runした組合せのタスクについて、実行対象のタスクへの影響度であるCo-run影響度を計算する。特性データ計測部62は、各組合せについてのCo-run影響度のうち最も大きい影響度を、Co-runタスク数が対象タスク数の場合における実行対象のタスクのCo-run影響度に設定する。
以下に説明するスケジュール生成装置10の動作が実行される前提として、特性データ取得部21は、単独実行時間と、センシティブタスクの判定結果と、各Co-runタスク数についてのCo-run影響度とを示す特性データを計測装置50から取得する。また、特性データ取得部21は、ユーザによって入力装置が操作されること等により入力された、実行システムのコア数と、タスクの周期及びデッドラインといったタスク設定情報とを取得する。
例えば、特性データとタスク設定情報とは図7に示すような情報である。図7では、Pは単独実行時間、Dは相対デッドライン、Sは周期、RX(X=1~3)はCo-runタスク数がXの時のCo-run影響度、Sensはセンシティブタスク判定結果(Y:センシティブタスク、N:非センシティブタスク)をそれぞれ意味する。
(ステップS21:影響制約生成処理)
影響制約生成部25は、最適化問題の解であるスケジューリング設計結果において、あるタスクが各周期にセンシティブタスクとCo-runした回数を取得するための影響反映用制約を生成する。
具体的には、影響制約生成部25は、数11で表される最適化変数εを定義するための影響反映用制約を生成する。制約を生成するとは、線形計画問題求解部(線形計画ソルバ)に対し制約を指定することを意味する。最適化変数とは、線形計画問題において最適化対象となる変数のことである。
なお、εnco,i,tにおけるncoは、ncoを意味する。以下同様に、ncoが下付き文字の場合にはncoを意味する。
(変換前):A≠B→(変換後)(A<B)∧(A>B)
デッドライン制約生成部26は、影響反映用制約で定義された最適化変数εを用いて、Co-run影響度を考慮した場合に複数のタスクそれぞれがデッドラインまでに処理を完了することを表すデッドライン制約を生成する。言い換えると、デッドライン制約は、複数のタスクそれぞれがセンシティブタスクとCo-runした回数に応じて増加した実行時間を考慮した上で、複数のタスクそれぞれがデッドラインミスを犯さないようにする制約である。
具体的には、デッドライン制約生成部26は、数15に示す線形制約式をデッドライン制約として生成する。
数15の式(1)を不等式としている理由は、Co-run影響度が小数点以下を含み、右辺第2項も小数点以下を含む可能性があるのに対して、左辺は整数であるためである。
コア数制約生成部27は、実行システムのコア数を超えた並列度でタスクが実行されないことを表すコア数制約を生成する。
具体的には、コア数制約生成部27は、数17に示す線形制約式をコア数制約として生成する。
目的関数生成部28は、数18に示すように目的関数を生成する。
目的関数はこれに限定されるものではない。目的関数生成部28は、例えば、デッドラインまでの余裕時間を最小化する目的関数を生成してもよいし、目的関数自体を生成しなくてもよい。
(S31:求解処理)
問題求解部24は、ステップS21で生成された影響反映用制約と、ステップS22で生成されたデッドライン制約と、ステップS23で生成されたコア数制約とを制約条件とし、ステップS24で生成された目的関数を目的関数とする線形計画問題の解を計算する。線形計画問題の解の計算方法については既存の方法を用いればよい。
問題求解部24は、ステップS31で解が得られたか否かを判定する。
問題求解部24は、解が得られた場合には、処理をステップS33に進める。一方、問題求解部24は、解が得られなかった場合には、処理をステップS34に進める。
問題求解部24は、通信インタフェース14を介して、ステップS31で得られた解、つまりスケジュールを出力する。出力形態としては、コンソールに文字列として出力する形態でもよいし、ファイルに文字列として出力する形態でもよいし、その他の形態でもよい。
具体例としては、図10に示すように、問題求解部24は、各タスクについて時刻毎に実行の有無を示すスケジュールテーブルを出力する。図10では、タスクと時刻とが交差する欄に〇が示されている場合には、そのタスクがその時刻に実行されることを意味し、空欄が示されている場合には、そのタスクがその時刻に実行されないことを意味する。
問題求解部24は、通信インタフェース14を介して、対象とするタスクセットは実行システムにおいてスケジュールを組むことが不可能であるというメッセージを出力する。出力形態としては、コンソールに文字列として出力する形態でもよいし、ファイルに文字列として出力する形態でもよいし、その他の形態でもよい。
以上のように、実施の形態1に係るスケジュール生成装置10は、Co-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。これにより、適切なスケジュールの生成が可能になる。
より具体的には、実施の形態1に係るスケジュール生成装置10は、センシティブタスクとのCo-runの影響を反映するための影響反映用制約と、影響反映用制約により反映された影響を考慮した上でデッドラインを守るためのデッドライン制約とを用いる。これにより、Co-runタスクにより実行時間が延長してしまう場合でもデッドラインミスを起こさないようなスケジュールを生成することが可能である。
<変形例1>
実施の形態1では、スケジュール生成装置10の各機能構成要素がソフトウェアで実現された。しかし、変形例1として、スケジュール生成装置10の各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
各機能構成要素を1つの電子回路で実現してもよいし、各機能構成要素を複数の電子回路に分散させて実現してもよい。
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
実施の形態1では、Co-run影響度を正確に反映するように制約式を生成した。実施の形態2は、実施の形態1に比べて制約条件を緩和する点が実施の形態1と異なる。実施の形態2では、この異なる点を説明し、同一の点については説明を省略する。
図8のステップS21で影響制約生成部25は、影響反映用制約として、数12の式(1)及び式(2)を生成し、式(3)及び式(4)を生成しない。これにより最適化変数γnco,i.tを不要にすることができる。その結果、最適化問題の求解時間を求解にかかる時間を減らすことが可能である。
式(3)及び式(4)を生成しないことは、数11における数13の場合にεnco,i,t=0とする制約を無くしたことに相当する。その結果、εnco,i,tが過大評価される可能性がある。εnco,i,tが過大評価されると、数15の式(1)により、Co-runの影響が過大評価されることになるが、デッドライン制約又はコア数制約を侵害することは繋がらない。
以上のように、実施の形態2に係るスケジュール生成装置10は、制約条件を緩和して最適化変数を削減する。これにより、求解にかかる時間を減らすことが可能である。
実施の形態1,2では、単一のクリティカリティレベル(CLと記載する場合がある)のタスクのみが存在することを想定していた。実施の形態3は、異なるクリティカリティレベルのタスクが存在する点が実施の形態1,2と異なる。実施の形態3では、この異なる点を説明し、同一の点については説明を省略する。
実施の形態3では、実施の形態1に対して変更を加えた場合を説明する。しかし、実施の形態2に対して変更を加えることも可能である。
図12を参照して、実施の形態3に係るスケジュール生成システム100の構成を説明する。
スケジュール生成システム100は、スケジュール生成装置10の問題生成部23が、テーブル間制約生成部29を備える点が図1に示すスケジュール生成システム100と異なる。テーブル間制約生成部29の機能は、他の機能構成要素と同様に、ソフトウェア又はハードウェアによって実現される。
また、スケジュール生成装置10及び計測装置50に対して、複数のタスクそれぞれについてのクリティカリティレベルを示す情報が入力として与えられる点が図1に示すスケジュール生成システム100と異なる。
図13から図19を参照して、実施の形態3に係るスケジュール生成システム100の動作を説明する。
図13を参照して、実施の形態3に係る計測装置50の動作を説明する。
ステップS41の処理は、図6のステップS11の処理と同じである。ステップS45からステップS48の処理は、図6のステップS13からステップS16の処理と同じである。
実行時間計測部61は、計測が完了していないタスクを1つ実行対象のタスクとして選択する。実行時間計測部61は、実行対象のタスクについてのクリティカリティレベル以上の全てのクリティカリティレベルについて、実行対象のタスクの補正実行時間が決定されたか否かを判定する。
実行時間計測部61は、補正実行時間が決定されていないクリティカリティレベルが残っている場合には、処理をステップS43に進める。一方、全てのクリティカリティレベルについて補正実行時間が決定されている場合には、処理をステップS44に進める。
実行時間計測部61は、実行対象のタスクについてのクリティカリティレベル以上のクリティカリティレベルのうち、補正実行時間が決定されていないクリティカリティレベルを1つ決定対象のクリティカリティレベルとして選択する。実行時間計測部61は、決定対象のクリティカリティレベルにおいて、実行対象のタスクを単独で実行したときの実行時間を補正実行時間として決定する。
例えば、実行対象のタスクについてのクリティカリティレベルが2であるとする。また、ここでは、数値が大きいほどクリティカリティレベルが高いとする。この場合には、2以上のクリティカリティレベルについて補正実行時間が決定される。
実行時間計測部61は、実行対象のタスクについてのクリティカリティレベルよりも低いクリティカリティレベルについて、補正実行時間を0に決定する。
したがって、ステップS43では、(1)の条件を満たすように、補正実行時間が決定される。例えば、図6のステップS12のように単独実行時間を計測し、クリティカリティレベル毎の補正係数を乗じて、各クリティカリティレベルについての補正実行時間を決定することが考えられる。
以下に説明するスケジュール生成装置10の動作が実行される前提として、特性データ取得部21は、補正実行時間と、センシティブタスクの判定結果と、各Co-runタスク数についてのCo-run影響度とを示す特性データを計測装置50から取得する。また、特性データ取得部21は、ユーザによって入力装置が操作されること等により入力された、実行システムのコア数と、タスクの周期とデッドラインと各タスクのクリティカリティレベルといったタスク設定情報とを取得する。
例えば、特性データとタスク設定情報とは図14に示すような情報である。図14では、CLはクリティカリティレベル、PL(L=1~3)は補正実行時間、Dはデッドライン、Sは周期、RX(X=1~3)はCo-runタスク数がXの時のCo-run影響度、Sensはセンシティブタスク判定結果(Y:センシティブタスク、N:非センシティブタスク)をそれぞれ意味する。
(ステップS51:影響制約生成処理)
影響制約生成部25は、数19で表される最適化変数εを定義するための影響反映用制約を生成する。
図16では、実行システムのコア数は2であり、タスクaのクリティカリティレベルは3、タスクbのクリティカリティレベルは2、タスクcのクリティカリティレベルは1であるとする。ここでは、値が大きいほどクリティカリティレベルが高いとする。また、全てタスクはセンシティブタスクであるとする。
後述する処理では、クリティカリティレベル毎にスケジュール(スケジュールテーブル)が生成され、各クリティカリティレベルについてのスケジュールテーブルで補正実行時間分のタスク実行時間が確保される。
例えば、図16の時刻3において、タスクcとCo-runするセンシティブタスク数はタスクaの1つとカウントされる。CL=1のスケジュールテーブルではタスクcは時刻3においてタスクaとCo-runしないテーブルとなっている。しかし、タスクaがCL=3の実行時間を要した場合に時刻3で実行される可能性があるため、タスクaはCo-runタスクとしてカウントされる。
また、図16の時刻2では、タスクcとCo-runする可能性があるのはタスクaとタスクbの2つである。しかし、この場合でも、後述する実行システムで動作する実行時スケジューラの動作により、コア数以上タスクが同時刻で実行されることはない。よって、数19の式(2)のように、各時刻でCo-runする可能性のあるタスク数がコア数を超える場合はCo-runするセンシティブタスク数はコア数-1となる。
デッドライン制約生成部26は、数22に示す線形制約式をデッドライン制約として生成する。
目的関数生成部28は、数24に示すように目的関数を生成する。
目的関数はこれに限定されるものではない。目的関数生成部28は、最低クリティカリティレベルのスケジュールテーブルのCPU使用率を最小化してもよい。これは最低クリティカリティレベルに対応するCPU使用率が最頻であるという仮定に基づき、実効的なCPU使用率を最大にすることを目的としている。また、目的関数生成部28は、例えば、デッドラインまでの余裕時間を最小化する目的関数を生成してもよいし、目的関数自体を生成しなくてもよい。
テーブル間制約生成部29は、各クリティカリティレベルのスケジュール間の整合性をとるための制約であるテーブル間制約を生成する。
具体的には、テーブル間制約生成部29は、数25に示す線形制約式をテーブル間制約として生成する。
実行時スケジューラは、スケジュール生成装置10によって生成されたスケジュールに従い、実行システムでタスクを実行する際に動作する。図16に示すように、各クリティカリティレベルについてのスケジュールが生成されるが、実行時スケジューラは、コア数以上タスクが同時刻で実行されないように、どのタスクを実行するかを制御する。
実行時スケジューラは、タイムステップ間隔で起動し、ステップS61からステップS63の処理を実行する。
(ステップS61:タスク特定処理)
実行時スケジューラは、スケジュール生成装置10によって生成されたスケジュールを参照し、現在時刻で実行される可能性のあるタスクを特定する。
図16のスケジュールテーブルの場合、時刻2で実行される可能性のあるタスクは、タスクaとタスクbとタスクcとである。
実行時スケジューラは、ステップS61で特定されたタスクのうち、現在時刻で処理が完了していないタスクを特定する。
ここでは、タスクの実行時間は実行毎に変動することを想定している。すなわち、CL=3又はCL=2に対応する実行時間の場合、タスクa及びタスクbは時刻2では処理が完了していない。また、CL=1に対応する実行時間の場合、タスクa及びタスクbは時刻1で処理が完了している。
実行時スケジューラは、ステップS62で特定されたタスクのうち、クリティカリティレベルが高いタスクから順に実行権を与える。
ステップS62で特定されたタスクがコア数以上となる場合、クリティカリティレベルが低いタスクは実行されない可能性がある。しかし、これはミックスドクリティカリティスケジューリングのスケジューリングポリシーに違反しない。
複数のクリティカリティレベルそれぞれを対象のクリティカリティレベルとし、複数のタスクそれぞれを生成対象のタスクとする。テーブル間制約は、対象のクリティカリティレベルよりも低いクリティカリティレベルのスケジュールにおいて生成対象のタスクについての処理が完了するまでの期間に関して、生成対象のタスクについての対象のクリティカリティレベルのスケジュールが、対象のクリティカリティレベルよりも高いクリティカリティレベルのスケジュールと同一になるようにする制約である。
図18では、数25に示すテーブル間制約を設けない場合に発生する問題の例が示されている。図18では、あるタスクのHigh、Lowの2つのクリティカリティレベルのスケジュールであるHighレベルテーブルとLowレベルテーブルとが示されている。
図18のスケジュールが生成されると、実行時スケジューラは時刻tでこのタスクを実行すべきかどうか判断できない。
なぜならば、実行する場合、Lowレベルテーブルで他のタスクが実行できない可能性がある。その結果、このタスクがLowレベルに対応する実行時間(図18では3タイムステップ)で完了した場合でも、他のタスクがデッドラインミスする可能性がある。つまり、本来実行しなくてもよかったタスクを実行したことにより、他のタスクがデッドラインミスをする可能性がある。これはミックスドクリティカリティスケジューリングのスケジューリングポリシーに違反する。
一方、実行しない場合、このタスクがHighレベルに対応する実行時間(図18では6タイムステップ)で完了した場合には、Highレベル絶対デッドラインを超過してしまう。時刻tで実行しないので、Highレベル絶対デッドラインまでに6タイムステップ分の実行時間を確保できなくなるためである。これもミックスドクリティカリティスケジューリングのスケジューリングポリシーに違反する。
そこで、数25に示すテーブル間制約を設定し、各周期にて、Lowレベルテーブルでの実行完了以前は、全てHighレベルテーブルと同一スケジュールであることを保証する。
具体例としては、図19に示すように、クリティカリティレベル毎に、各タスクについて時刻毎に実行の有無を示すスケジュールテーブルを出力する。図19では、タスクと時刻とが交差する欄に〇が示されている場合には、そのタスクがその時刻に実行されることを意味し、空欄が示されている場合には、そのタスクがその時刻に実行されないことを意味する。
以上のように、実施の形態3に係るスケジュール生成装置10は、異なるクリティカリティレベルのタスクが存在する場合にも、Co-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。これにより、適切なスケジュールの生成が可能になる。
より具体的には、実施の形態3に係るスケジュール生成装置10は、テーブル間制約を用いて、クリティカリティレベル毎のスケジュールの整合性を持たせる。これにより、Co-run影響度を考慮しつつ、ミックスドクリティカリティスケジューリングのスケジューリングポリシーを満たすスケジュールを生成することが可能である。
Claims (8)
- 複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成装置であり、
前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を、前記実行対象のタスクと同時に実行するタスク数が1からコア数-1までのそれぞれについて示す特性データを取得する特性データ取得部と、
前記特性データ取得部によって取得された前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮した場合に前記複数のタスクがデッドラインまでに処理を完了することを表すデッドライン制約であって、前記複数のタスクそれぞれを制約対象のタスクとして、前記制約対象のタスクについての前記単独実行時間と、前記Co-run影響度により増加する実行時間との和以上の時間を、前記制約対象のタスクに割り当てるという制約と、デッドラインよりも後の時間を、前記制約対象のタスクに割り当てないという制約とを含むデッドライン制約を含む線形計画問題を解くことにより、前記複数のタスクを実行するスケジュールを生成するスケジュール生成部と
を備えるスケジュール生成装置。 - 前記複数のタスクは、タスク毎にクリティカリティレベルが設定されており、
前記スケジュール生成部は、クリティカリティレベルが高くなるほど時間が長くなるように前記単独実行時間を補正した補正実行時間を用いて、各クリティカリティレベルを対象のクリティカリティレベルとして、前記対象のクリティカリティレベルについて、前記対象のクリティカリティレベル以上のクリティカリティレベルが設定されたタスクがデッドラインまでに処理を完了するスケジュールを生成する
請求項1に記載のスケジュール生成装置。 - 複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成方法であり、
特性データ取得部が、前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を、前記実行対象のタスクと同時に実行するタスク数が1からコア数-1までのそれぞれについて示す特性データを取得し、
スケジュール生成部が、前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮した場合に前記複数のタスクがデッドラインまでに処理を完了することを表すデッドライン制約であって、前記複数のタスクそれぞれを制約対象のタスクとして、前記制約対象のタスクについての前記単独実行時間と、前記Co-run影響度により増加する実行時間との和以上の時間を、前記制約対象のタスクに割り当てるという制約と、デッドラインよりも後の時間を、前記制約対象のタスクに割り当てないという制約とを含むデッドライン制約を含む線形計画問題を解くことにより、前記複数のタスクを実行するスケジュールを生成する
スケジュール生成方法。 - 複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成プログラムであり、
前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を、前記実行対象のタスクと同時に実行するタスク数が1からコア数-1までのそれぞれについて示す特性データを取得する特性データ取得処理と、
前記特性データ取得処理によって取得された前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮した場合に前記複数のタスクがデッドラインまでに処理を完了することを表すデッドライン制約であって、前記複数のタスクそれぞれを制約対象のタスクとして、前記制約対象のタスクについての前記単独実行時間と、前記Co-run影響度により増加する実行時間との和以上の時間を、前記制約対象のタスクに割り当てるという制約と、デッドラインよりも後の時間を、前記制約対象のタスクに割り当てないという制約とを含むデッドライン制約を含む線形計画問題を解くことにより、前記複数のタスクを実行するスケジュールを生成するスケジュール生成処理と
を行うスケジュール生成装置としてコンピュータを機能させるスケジュール生成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/049139 WO2022144973A1 (ja) | 2020-12-28 | 2020-12-28 | スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP7012905B1 true JP7012905B1 (ja) | 2022-01-28 |
JPWO2022144973A1 JPWO2022144973A1 (ja) | 2022-07-07 |
Family
ID=80735331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021529328A Active JP7012905B1 (ja) | 2020-12-28 | 2020-12-28 | スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7012905B1 (ja) |
TW (1) | TW202226085A (ja) |
WO (1) | WO2022144973A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10143380A (ja) * | 1996-11-07 | 1998-05-29 | Hitachi Ltd | マルチプロセッサシステム |
JP2000298593A (ja) * | 1999-04-14 | 2000-10-24 | Nec Corp | マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体 |
JP2006065566A (ja) * | 2004-08-26 | 2006-03-09 | Casio Comput Co Ltd | バッチ処理装置、および、プログラム |
-
2020
- 2020-12-28 WO PCT/JP2020/049139 patent/WO2022144973A1/ja active Application Filing
- 2020-12-28 JP JP2021529328A patent/JP7012905B1/ja active Active
-
2021
- 2021-04-26 TW TW110114881A patent/TW202226085A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10143380A (ja) * | 1996-11-07 | 1998-05-29 | Hitachi Ltd | マルチプロセッサシステム |
JP2000298593A (ja) * | 1999-04-14 | 2000-10-24 | Nec Corp | マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体 |
JP2006065566A (ja) * | 2004-08-26 | 2006-03-09 | Casio Comput Co Ltd | バッチ処理装置、および、プログラム |
Non-Patent Citations (2)
Title |
---|
高瀬 英希 他,関数型言語ElixirのIoTシステムへの導入に向けた基礎評価 ,情報処理学会 研究報告 組込みシステム(EMB),情報処理学会,2018年06月22日,2018-EMB-048 ,第1頁-第8頁 |
高瀬 英希 他: "関数型言語ElixirのIoTシステムへの導入に向けた基礎評価", 情報処理学会 研究報告 組込みシステム(EMB), vol. 2018−EMB−048, JPN6021042174, 22 June 2018 (2018-06-22), pages 1 - 8, ISSN: 0004625168 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022144973A1 (ja) | 2022-07-07 |
TW202226085A (zh) | 2022-07-01 |
WO2022144973A1 (ja) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8069444B2 (en) | Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors | |
US8869161B2 (en) | Characterization and assignment of workload requirements to resources based on predefined categories of resource utilization and resource availability | |
JP5827678B2 (ja) | 仮想コンテナのシステムにおけるリソース容量評価のための方法および装置 | |
US7793294B2 (en) | System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task | |
US9996394B2 (en) | Scheduling accelerator tasks on accelerators using graphs | |
US9207977B2 (en) | Systems and methods for task grouping on multi-processors | |
JP6895235B2 (ja) | 環境的に調整されたスラックを割り当てるためのシステム及び方法 | |
Wozniak et al. | An optimization approach for the synthesis of autosar architectures | |
JP6424208B2 (ja) | リアルタイムで決定論的エラー回復を可能にするタスク時間割当て方法 | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
US20140215483A1 (en) | Resource-usage totalizing method, and resource-usage totalizing device | |
Oehlert et al. | Bus-aware static instruction SPM allocation for multicore hard real-time systems | |
US9830195B2 (en) | Apparatus and method for controlling execution of processes in a parallel computing system | |
US11954419B2 (en) | Dynamic allocation of computing resources for electronic design automation operations | |
US20230109752A1 (en) | Deterministic replay of a multi-threaded trace on a multi-threaded processor | |
US20220100512A1 (en) | Deterministic replay of a multi-threaded trace on a multi-threaded processor | |
Wang et al. | A fast work-efficient sssp algorithm for gpus | |
CN115934102A (zh) | 通用寄存器动态分配方法、装置、计算机设备和存储介质 | |
US10120602B2 (en) | Device and method for determining data placement destination, and program recording medium | |
JP7012905B1 (ja) | スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム | |
US20240112055A1 (en) | Computer-readable recording medium storing node allocation program at the time of quantum simulation execution, node allocation method at the time of quantum simulation execution, and information processing device | |
WO2013148439A1 (en) | Hardware managed allocation and deallocation evaluation circuit | |
JP2004192052A (ja) | ソフトウェア処理方法およびソフトウェア処理システム | |
Sinha et al. | [Solution] End-to-end Scheduling of Real-time Task Pipelines on Multiprocessors | |
JPWO2011118014A1 (ja) | 検証支援プログラム、制御プログラム、検証支援装置、マルチコアプロセッサシステム、検証支援方法、および制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210524 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210524 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7012905 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |