JP7012905B1 - スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム - Google Patents

スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム Download PDF

Info

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
Application number
JP2021529328A
Other languages
English (en)
Other versions
JPWO2022144973A1 (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP7012905B1 publication Critical patent/JP7012905B1/ja
Publication of JPWO2022144973A1 publication Critical patent/JPWO2022144973A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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

スケジュール生成装置(10)は、複数のコアを有するマルチコアプロセッサにおいて複数のタスクを実行するスケジュールを生成する。特性データ取得部(21)は、複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を示す特性データを取得する。スケジュール生成部(22)は、特性データが示す複数のタスクそれぞれについてのCo-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。

Description

本開示は、複数のコアを有するマルチコアプロセッサにおいて複数のタスクを実行するスケジュールを生成する技術に関する。
リアルタイムシステムは、タスク毎に決められた制限時刻であるデッドラインまでに必ず当該タスクの処理を完了させなければならないという時間的制約を受けたコンピュータシステムである。そのため、リアルタイムシステムでは、それぞれのタスクの実行完了時刻がデッドラインを超過しないように、それぞれのタスクに適切なプロセッサの実行時間を割り当てることが必要である。つまり、デッドラインまでにタスクを完了させる制約であるデッドライン制約を満たすように、それぞれのタスクに適切なプロセッサの実行時間を割り当てることが必要である。このように、タスクに適切なプロセッサの実行時間を割り当てることをリアルタイムスケジューリングと言う。また、以下では、タスクの実行完了時刻がデッドラインを超過することをデッドラインミスと呼ぶ。
近年リアルタイムシステムに求められる機能の高度化により、リアルタイムシステムにおいてもマルチコアプロセッサが採用されてきている。マルチコアプロセッサを用いて複数のタスクを並列に処理することにより、演算スループットの増加と処理時間の低減とが期待できる。
従来のマルチコアプロセッサ向けリアルタイムスケジューリングの方法として、タスクの応答時間の累積値を最小にするようなタスクのコア配置を求める技術が存在する(特許文献1参照)。応答時間とはタスクの起動が指示されてから、そのタスクの実行が完了するまでの時間である。この技術では、複数の周期タスクの実行時間と、周期と、デッドラインとを入力とし、全てのタスクの応答時間の累積値を評価値として、評価値が最小となるコア割当てが探索される。
国際公開第2011/10219号
マルチコアプロセッサでは、他コアで同時に実行するプログラムとのコンピュータリソースの競合により、単独で対象のプログラムを実行した場合に比べて対象のプログラムの実行時間が長くなる場合がある。以下では、実行時間が長くなることを、性能劣化と呼ぶ場合がある。
コンピュータリソースの典型的な例として、共有キャッシュ及びメモリバスが挙げられる。共有キャッシュミスを例に性能劣化のメカニズムを説明する。あるタスクが共有キャッシュを使用することにより、同時に他のコアで実行されるタスクが使用できる共有キャッシュの容量が低下し、キャッシュミスの増加による性能劣化が発生する。
従来のマルチコアプロセッサ向けリアルタイムスケジューリングでは、他コアで同時にプログラムを実行することによる性能劣化が考慮されておらず、適切なスケジュールが生成できない恐れがあった。
本開示は、適切なスケジュールを生成可能にすることを目的とする。
本開示に係るスケジュール生成装置は、
複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成装置であり、
前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を示す特性データを取得する特性データ取得部と、
前記特性データ取得部によって取得された前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮して、前記複数のタスクを実行するスケジュールを生成するスケジュール生成部と
を備える。
本開示では、Co-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。これにより、適切なスケジュールの生成が可能になる。
実施の形態1に係るスケジュール生成システム100の構成図。 実施の形態1に係るスケジュール生成装置10のハードウェア構成図。 実施の形態1に係る計測装置50のハードウェア構成図。 実施の形態1に係るプロセッサ51の構成例を示す図。 実施の形態1に係るスケジュール生成システム100の動作の説明で用いる用語の説明図。 実施の形態1に係る計測装置50の動作の流れを示すフローチャート。 実施の形態1に係る特性データ及びタスク設定情報を示す図。 実施の形態1に係る問題生成部23の動作の流れを示すフローチャート。 実施の形態1に係る問題求解部24の動作の流れを示すフローチャート。 実施の形態1に係るスケジュールの例を示す図。 実施の形態1に係る効果の説明図。 実施の形態3に係るスケジュール生成システム100の構成図。 実施の形態3に係る計測装置50の動作の流れを示すフローチャート。 実施の形態3に係る特性データ及びタスク設定情報を示す図。 実施の形態3に係る問題生成部23の動作の流れを示すフローチャート。 実施の形態3におけるセンシティブタスク数のカウント方法の説明図。 実行システムで動作する実行時スケジューラの動作の流れを示すフローチャート。 実施の形態3に係るテーブル間制約の必要性の説明図。 実施の形態3に係るスケジュールの例を示す図。
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係るスケジュール生成システム100の構成を説明する。
スケジュール生成システム100は、スケジュール生成装置10と、計測装置50とを備える。スケジュール生成装置10と計測装置50とは、伝送路90を介して接続されている。
スケジュール生成装置10は、実行システムのコア数と、タスクの周期及びデッドラインといったタスク設定情報と、計測装置50で計測された性能特性を示す特性データとを入力として、タスクを実行するスケジュールを生成するコンピュータである。
スケジュール生成装置10は、機能構成要素として、特性データ取得部21と、スケジュール生成部22とを備える。スケジュール生成部22は、問題生成部23と、問題求解部24とを備える。問題生成部23は、影響制約生成部25と、デッドライン制約生成部26と、コア数制約生成部27と、目的関数生成部28とを備える。
計測装置50は、スケジュール生成装置10によってスケジュールが生成される対象のタスクが最終的に実行されるリアルタイムシステムである実行システムと同じ、又は、類似した構成のコンピュータである。計測装置50は、タスク実行ファイル群を入力として、各タスクのリアルタイムシステムでの性能特性を計測する。
計測装置50は、機能構成要素として、実行時間計測部61と、特性データ計測部62とを備える。
図2を参照して、実施の形態1に係るスケジュール生成装置10のハードウェア構成を説明する。
スケジュール生成装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線15を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
図3を参照して、実施の形態1に係る計測装置50のハードウェア構成を説明する。
計測装置50は、プロセッサ51と、メモリ52と、ストレージ53と、通信インタフェース54とのハードウェアを備える。プロセッサ51は、信号線55を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ11,51は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11,51は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ12,52は、データを一時的に記憶する記憶装置である。メモリ12,52は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
ストレージ13,53は、データを保管する記憶装置である。ストレージ13,53は、具体例としては、ROM(Read Only Memory)である。また、ストレージ13,53は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
通信インタフェース14,54は、外部の装置と通信するためのインタフェースである。通信インタフェース14,54は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
スケジュール生成装置10の各機能構成要素の機能はソフトウェアにより実現される。ストレージ13には、スケジュール生成装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、スケジュール生成装置10の各機能構成要素の機能が実現される。
計測装置50の各機能構成要素の機能はソフトウェアにより実現される。ストレージ53には、計測装置50の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ51によりメモリ52に読み込まれ、プロセッサ51によって実行される。これにより、計測装置50の各機能構成要素の機能が実現される。
図4を参照して、実施の形態1に係るプロセッサ51の構成例を説明する。
プロセッサ51は、複数のコア511を備える。図4では、プロセッサ51は、コア511-1からコア511-nのn個のコア511を備える。また、プロセッサ51は、各コア511が共通して使用する共有キャッシュ512を備える。
なお、計測装置50は、図3及び図4に示す構成に限定されるものではない。計測装置50は、マルチコアプロセッサを備えた一般的なリアルタイムシステムの構成であってもよいし、図3及び図4に示す構成を仮想的に備えるシミュレータであってもよい。
***動作の説明***
図5から図10を参照して、実施の形態1に係るスケジュール生成システム100の動作を説明する。
実施の形態1に係るスケジュール生成システム100の動作手順は、実施の形態1に係るスケジュール生成方法に相当する。また、実施の形態1に係るスケジュール生成システム100の動作を実現するプログラムは、実施の形態1に係るスケジュール生成プログラムに相当する。
図5を参照して、実施の形態1に係るスケジュール生成システム100の動作の説明で用いる用語を説明する。
実施の形態1では、タスクは一定周期で繰り返し実行される周期タスクであるとする。
タスクの各周期の実行単位をジョブと呼ぶ。タスクが実行可能な状態になる時刻をリリースタイムと呼ぶ。リリースタイム以降であればその周期に対応するジョブはいつでも実行開始できる。実行開始できるとは、実行システムのプロセッサで処理を開始できることを意味する。実行時間はジョブが実行開始してから、実行完了するまでの時間である。ただし、他のタスク又は割込み等に実行権が移った場合、その時間は実行時間には含まない。タスクの実行時間は各ジョブの実行時間から統計的な処理により一意の値に定められる。ここでは、ジョブの実行時間の最長の値(最悪値)を実行時間とする。各ジョブのデッドラインを示す時刻を絶対デッドラインと呼ぶ。リリースタイムから絶対デッドラインまでの時間を相対デッドラインと呼ぶ。
なお、実行時間は、最悪値に限らず、パーセンタイル等でもよい。
図6を参照して、実施の形態1に係る計測装置50の動作を説明する。
(ステップS11:処理終了判定処理)
実行時間計測部61は、タスク実行ファイル群に含まれる全てのタスクについて計測が完了したか否かを判定する。タスク実行ファイル群は、スケジューリング対象とする全タスクの、実行可能な形式のファイルの集合である。
実行時間計測部61は、計測が完了していないタスクが残っている場合には、処理をステップS12に進める。一方、実行時間計測部61は、全てのタスクについて計測が完了している場合には、処理を終了する。
(ステップS12:実行時間計測処理)
実行時間計測部61は、計測が完了していないタスクを1つ実行対象のタスクとして選択する。実行時間計測部61は、実行対象のタスクを単独で実行したときの実行時間を単独実行時間として計測する。つまり、実行時間計測部61は、他のコア511で他のタスクを実行することなく、実行対象のタスクだけを実行したときの実行時間を単独実行時間として計測する。実行時間は、周期タスクの1回の実行時間であり、計測されたもののうち最長のもの(最悪実行時間)が用いられる。
(ステップS13:Co-run選定処理)
実行時間計測部61は、ステップS12で選択された実行対象のタスクと、実行対象のタスク以外の1つのタスクとを別々のコア511で同時に実行して、実行対象のタスクの実行時間を計測する。同時に実行することを、Co-runと呼ぶ。そして、特性データ計測部62は、実行対象のタスクとCo-runした各タスクについて、実行対象のタスクへの影響度であるCo-run影響度を計算する。特性データ計測部62は、Co-run影響度が最も大きかったタスクを計測用のCo-runタスクとして選定する。また、特性データ計測部62は、最も大きかったCo-run影響度を、Co-runタスク数が1の場合における計算対象のタスクのCo-run影響度に設定する。
X個のタスクとのCo-run影響度RXは、式(1)で定義される。
(式1)RX=X個のタスクとCo-run時の実行時間/単独実行時間
つまり、Co-run影響度は、実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合である。
なお、ステップS13の処理では、Co-runするタスク数が1つの場合のCo-run影響度R1が計算された。後述するステップS16の処理では、Co-runするタスク数が2からコア数-1までのそれぞれについてのCo-run影響度RXが計算される。
なお、タスクの特性に応じてCo-runの影響が大きいタスクが異なるため、特性データ計測部62はタスク毎に計測用のCo-runタスクを選定する必要がある。
(ステップS14:センシティブタスク判定処理)
特性データ計測部62は、ステップS13で選定されたCo-runタスクのCo-run影響度が閾値以上の場合には、実行対象のタスクをセンシティブタスクと判定する。センシティブタスクは、他のタスクとCo-runした場合に、他のタスクの実行時間が長くなり易いタスクである。センシティブタスクは、具体例としては、共有キャッシュを多く使用するタスクが考えられる。
ここでは、特性データ計測部62は、計測用のCo-runタスクとのCo-run時におけるCo-run影響度からセンシティブタスクであるか否かを判定した。しかし、特性データ計測部62は、実行対象のタスクについて、他のタスクそれぞれとのCo-run時におけるCo-run影響度の平均値又は中央値等から、実行対象のタスクがセンシティブタスクであるか否かを判定してもよい。
また、ここでは、特性データ計測部62は、他タスクからのCo-runの影響を受けやすいタスクは、他タスクへ影響を与えやすいものであると仮定に基づいて、センシティブタスクであるか否かを判定した。しかし、特性データ計測部62は、他タスクへの影響の与えやすさを改めて測定し、センシティブタスクの判定を行ってもよい。
(ステップS15:計算終了判定処理)
実行時間計測部61は、Co-runするタスク数が2からコア数-1までの全てのタスク数について、Co-run影響度の計算が完了したか否かを判定する。
実行時間計測部61は、計算が完了していないタスク数が残っている場合には、処理をステップS16に進める。一方、実行時間計測部61は、全てのタスク数について計算が完了している場合には、処理をステップS11に戻す。
(ステップS16:影響度計算処理)
実行時間計測部61は、計算が完了していないタスク数を対象タスク数として選択する。実行時間計測部61は、実行対象のタスク以外のタスクから、対象タスク数のタスクの組合せを順に選択し、実行対象のタスクと、選択された組合せに含まれる各タスクとを別々のコア511で同時に実行して、実行対象のタスクの実行時間を計測する。
特性データ計測部62は、実行対象のタスクとCo-runした組合せのタスクについて、実行対象のタスクへの影響度であるCo-run影響度を計算する。特性データ計測部62は、各組合せについてのCo-run影響度のうち最も大きい影響度を、Co-runタスク数が対象タスク数の場合における実行対象のタスクのCo-run影響度に設定する。
図7から図10を参照して、実施の形態1に係るスケジュール生成装置10のスケジュール生成部22の動作を説明する。
以下に説明するスケジュール生成装置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:非センシティブタスク)をそれぞれ意味する。
スケジュール生成部22は、特性データ取得部21によって取得された特性データが示す複数のタスクそれぞれについてのCo-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。
図8を参照して、実施の形態1に係る問題生成部23の動作を説明する。
(ステップS21:影響制約生成処理)
影響制約生成部25は、最適化問題の解であるスケジューリング設計結果において、あるタスクが各周期にセンシティブタスクとCo-runした回数を取得するための影響反映用制約を生成する。
具体的には、影響制約生成部25は、数11で表される最適化変数εを定義するための影響反映用制約を生成する。制約を生成するとは、線形計画問題求解部(線形計画ソルバ)に対し制約を指定することを意味する。最適化変数とは、線形計画問題において最適化対象となる変数のことである。
Figure 0007012905000001
i,jは、タスクIDである。tは、時刻である。ncoは、Co-runするセンシティブタスク数であり、1≦nco≦N-2である。Jsは、センシティブタスクの集合である。Nは、実行システムのコア数である。Zは、タスクiが時刻tで実行されるならば1、実行されないならば0をとる最適化変数である。εnco,i,tは、時刻tでタスクiとCo-runするセンシティブタスク数がncoであり、かつ、タスクiが実行されるならば1、それ以外ならば0をとる最適化変数である。時刻tは、時刻を離散化したものであり、整数値をとるとする。時刻を離散化した際の離散化の単位をタイムステップと称する。
なお、εnco,i,tにおけるncoは、ncoを意味する。以下同様に、ncoが下付き文字の場合にはncoを意味する。
数11は非線形式である。そのため、影響制約生成部25は、数12の線形制約式を影響反映用制約として生成し、数11の性質を持った最適化変数εを規定する。
Figure 0007012905000002
φnco,i,tは、0又は1を満たす最適化変数である。γnco,i,tは、0又は1を満たす最適化変数である。数12の式(1)及び式(2)は、数11における数13の場合に、εnco,i,t=1とする制約を線形式で表したものである。
Figure 0007012905000003
数12の式(3)及び式(4)は、数11における数14の場合に、εnco,i,t=0とする制約を線形式で表したものである。
Figure 0007012905000004
なお、否定記号≠を入力できない線形計画ソルバを使用する場合は、影響制約生成部25は、以下のように不等号を用いた制約に変換することで、否定記号の制約を表現する。
(変換前):A≠B→(変換後)(A<B)∧(A>B)
(ステップS22:デッドライン制約生成処理)
デッドライン制約生成部26は、影響反映用制約で定義された最適化変数εを用いて、Co-run影響度を考慮した場合に複数のタスクそれぞれがデッドラインまでに処理を完了することを表すデッドライン制約を生成する。言い換えると、デッドライン制約は、複数のタスクそれぞれがセンシティブタスクとCo-runした回数に応じて増加した実行時間を考慮した上で、複数のタスクそれぞれがデッドラインミスを犯さないようにする制約である。
具体的には、デッドライン制約生成部26は、数15に示す線形制約式をデッドライン制約として生成する。
Figure 0007012905000005
kは、ジョブIDである。Si,kは、タスクiのk番目のリリースタイムである。Di,kは、タスクiのk番目の絶対デッドラインである。Pは、タスクiの単独実行時間である。Rnco,iは、タスクiのnco個のセンシティブタスクとCo-run時のCo-run影響度である。なお、リリースタイムSi,k及び絶対デッドラインDi,kは、タイムステップの倍数として表われるものとし、これにより整数値となる。
数15の式(1)の左辺は、ある周期にタスクiが実行される時間である。数15の式(1)の右辺第2項はCo-runによる実行時間増加分に相当する。したがって、数15の式(1)は、タスクiの単独実行時間Pと、Co-run影響度を用いて計算されるCo-runによる実行時間増加分の和以上の実行時間が、タスクiが実行される時間として割り当てられるという式である。
数15の式(1)を不等式としている理由は、Co-run影響度が小数点以下を含み、右辺第2項も小数点以下を含む可能性があるのに対して、左辺は整数であるためである。
デッドライン制約生成部26は、必要以上にタスクに実行時間を与えないよう、数16に示す線形制約式をデッドライン制約に追加してもよい。
Figure 0007012905000006
数15の式(2)は、各周期内でデッドラインを超えた時刻にはタスクが実行されないという式である。
(ステップS23:コア数制約生成処理)
コア数制約生成部27は、実行システムのコア数を超えた並列度でタスクが実行されないことを表すコア数制約を生成する。
具体的には、コア数制約生成部27は、数17に示す線形制約式をコア数制約として生成する。
Figure 0007012905000007
は、スケジューリング対象のタスク数である。
(ステップS24:目的関数生成処理)
目的関数生成部28は、数18に示すように目的関数を生成する。
Figure 0007012905000008
数18に示す目的関数は、実行時間の総和、すなわちCPU使用率を最小にする目的関数である。
目的関数はこれに限定されるものではない。目的関数生成部28は、例えば、デッドラインまでの余裕時間を最小化する目的関数を生成してもよいし、目的関数自体を生成しなくてもよい。
図9を参照して、実施の形態1に係る問題求解部24の動作を説明する。
(S31:求解処理)
問題求解部24は、ステップS21で生成された影響反映用制約と、ステップS22で生成されたデッドライン制約と、ステップS23で生成されたコア数制約とを制約条件とし、ステップS24で生成された目的関数を目的関数とする線形計画問題の解を計算する。線形計画問題の解の計算方法については既存の方法を用いればよい。
(S32:解判定処理)
問題求解部24は、ステップS31で解が得られたか否かを判定する。
問題求解部24は、解が得られた場合には、処理をステップS33に進める。一方、問題求解部24は、解が得られなかった場合には、処理をステップS34に進める。
(S33:スケジュール出力処理)
問題求解部24は、通信インタフェース14を介して、ステップS31で得られた解、つまりスケジュールを出力する。出力形態としては、コンソールに文字列として出力する形態でもよいし、ファイルに文字列として出力する形態でもよいし、その他の形態でもよい。
具体例としては、図10に示すように、問題求解部24は、各タスクについて時刻毎に実行の有無を示すスケジュールテーブルを出力する。図10では、タスクと時刻とが交差する欄に〇が示されている場合には、そのタスクがその時刻に実行されることを意味し、空欄が示されている場合には、そのタスクがその時刻に実行されないことを意味する。
(S34:メッセージ出力処理)
問題求解部24は、通信インタフェース14を介して、対象とするタスクセットは実行システムにおいてスケジュールを組むことが不可能であるというメッセージを出力する。出力形態としては、コンソールに文字列として出力する形態でもよいし、ファイルに文字列として出力する形態でもよいし、その他の形態でもよい。
***実施の形態1の効果***
以上のように、実施の形態1に係るスケジュール生成装置10は、Co-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。これにより、適切なスケジュールの生成が可能になる。
より具体的には、実施の形態1に係るスケジュール生成装置10は、センシティブタスクとのCo-runの影響を反映するための影響反映用制約と、影響反映用制約により反映された影響を考慮した上でデッドラインを守るためのデッドライン制約とを用いる。これにより、Co-runタスクにより実行時間が延長してしまう場合でもデッドラインミスを起こさないようなスケジュールを生成することが可能である。
図11に示すように、タスクAは常にコア0で実行され、相対デッドラインが周期と等しい、すなわち次の周期までに処理が完了する必要があるタスクであるとする。図11では、Co-runタスクがコア1で実行されることによる性能劣化により実行時間が増加し、タスクAにデッドラインミスが生じている。従来のリアルタイムスケジューリング方法は、このようなCo-runタスクとのコンピュータリソース競合により性能が低下することによりデッドラインミスを引き起こす可能性があった。これに対して、実施の形態1に係るスケジュール生成装置10は、Co-run影響度を考慮するため、このようなデッドラインミスを起こさないようなスケジュールを生成することが可能である。
***他の構成***
<変形例1>
実施の形態1では、スケジュール生成装置10の各機能構成要素がソフトウェアで実現された。しかし、変形例1として、スケジュール生成装置10の各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
各機能構成要素がハードウェアで実現される場合には、スケジュール生成装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
電子回路としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路で実現してもよいし、各機能構成要素を複数の電子回路に分散させて実現してもよい。
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
プロセッサ11とメモリ12とストレージ13と電子回路とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
実施の形態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の効果***
以上のように、実施の形態2に係るスケジュール生成装置10は、制約条件を緩和して最適化変数を削減する。これにより、求解にかかる時間を減らすことが可能である。
実施の形態3.
実施の形態1,2では、単一のクリティカリティレベル(CLと記載する場合がある)のタスクのみが存在することを想定していた。実施の形態3は、異なるクリティカリティレベルのタスクが存在する点が実施の形態1,2と異なる。実施の形態3では、この異なる点を説明し、同一の点については説明を省略する。
実施の形態3では、実施の形態1に対して変更を加えた場合を説明する。しかし、実施の形態2に対して変更を加えることも可能である。
タスク毎にデッドラインミス時の影響度に応じたクリティカリティレベルが設定され、システム内に異なるクリティカリティレベルを持つ複数のタスクを混在させるシステムが存在する。このようなシステムをミックスドクリティカリティシステムと呼び、ミックスドクリティカリティシステム向けのスケジューラビリティ判定手法が提案されている(例えば文献:Sanjoy Baruah, Steve Vestal, ”Schedulability analysis of sporadic tasks with multiple criticality specifications)。
この文献に記載された技術では、システム内のタスク毎に、そのタスクのクリティカリティレベルと、他のクリティカリティレベルとを含めた全てのクリティカリティレベルに対応する最悪実行時間を定義した情報を持つ。これは、各タスクの実行時間がジッタを持つことが想定されており、事前に繰り返し計測した実行時間の範囲内でクリティカリティレベル毎の最悪実行時間が定義される。実行時間はクリティカリティレベルが高いほど大きい値が定義される。つまり、クリティカリティレベルが高いほど悲観的な(長い)最悪実行時間が定義される。
ミックスドクリティカリティシステム用のタスクスケジュールは、全タスクがあるクリティカリティレベルの実行時間で完了した場合は、そのクリティカリティレベル以上のタスクがデッドライン制約を満たすことを保証するというスケジューリングポリシーを満たす。言い換えると、対象とするタスクのクリティカリティレベルより低いクリティカリティレベルのタスクはデッドラインを満たさなくてもよいということである。
***構成の説明***
図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の処理と同じである。
(ステップS42:レベル判定処理)
実行時間計測部61は、計測が完了していないタスクを1つ実行対象のタスクとして選択する。実行時間計測部61は、実行対象のタスクについてのクリティカリティレベル以上の全てのクリティカリティレベルについて、実行対象のタスクの補正実行時間が決定されたか否かを判定する。
実行時間計測部61は、補正実行時間が決定されていないクリティカリティレベルが残っている場合には、処理をステップS43に進める。一方、全てのクリティカリティレベルについて補正実行時間が決定されている場合には、処理をステップS44に進める。
(ステップS43:第1実行時間決定処理)
実行時間計測部61は、実行対象のタスクについてのクリティカリティレベル以上のクリティカリティレベルのうち、補正実行時間が決定されていないクリティカリティレベルを1つ決定対象のクリティカリティレベルとして選択する。実行時間計測部61は、決定対象のクリティカリティレベルにおいて、実行対象のタスクを単独で実行したときの実行時間を補正実行時間として決定する。
例えば、実行対象のタスクについてのクリティカリティレベルが2であるとする。また、ここでは、数値が大きいほどクリティカリティレベルが高いとする。この場合には、2以上のクリティカリティレベルについて補正実行時間が決定される。
(ステップS44:第2実行時間決定処理)
実行時間計測部61は、実行対象のタスクについてのクリティカリティレベルよりも低いクリティカリティレベルについて、補正実行時間を0に決定する。
ここで、各クリティカリティレベルに対応する補正実行時間の決定方法は、以下の(1)(2)の2つの条件を満たせば方法は問わない。(1)補正実行時間はクリティカリティレベルが高いほど長い。つまり、クリティカリティレベルが高いほど悲観的な最悪実行時間が仮定される。(2)タスクのクリティカリティレベルより低いクリティカリティレベルに対応する補正実行時間は0とする。
したがって、ステップS43では、(1)の条件を満たすように、補正実行時間が決定される。例えば、図6のステップS12のように単独実行時間を計測し、クリティカリティレベル毎の補正係数を乗じて、各クリティカリティレベルについての補正実行時間を決定することが考えられる。
図14から図18を参照して、実施の形態3に係るスケジュール生成装置10のスケジュール生成部22の動作を説明する。
以下に説明するスケジュール生成装置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:非センシティブタスク)をそれぞれ意味する。
図15を参照して、実施の形態3に係る問題生成部23の動作を説明する。
(ステップS51:影響制約生成処理)
影響制約生成部25は、数19で表される最適化変数εを定義するための影響反映用制約を生成する。
Figure 0007012905000009
lは、クリティカリティレベルである。Lは、タスクiのクリティカリティレベルである。Zi,l,tは、クリティカリティレベルがlのスケジュールテーブルにおいて、タスクiが時刻tで実行されるならば1、実行されないならば0をとる最適化変数である。εnco,i,l,tは、クリティカリティレベルがlのスケジュールテーブルにおいて、時刻tでタスクiとCo-runするセンシティブタスク数がncoであり、かつ、タスクiが実行されるならば1、それ以外ならば0をとる最適化変数である。
図16を参照して、実施の形態3におけるセンシティブタスク数のカウント方法を説明する。
図16では、実行システムのコア数は2であり、タスクaのクリティカリティレベルは3、タスクbのクリティカリティレベルは2、タスクcのクリティカリティレベルは1であるとする。ここでは、値が大きいほどクリティカリティレベルが高いとする。また、全てタスクはセンシティブタスクであるとする。
後述する処理では、クリティカリティレベル毎にスケジュール(スケジュールテーブル)が生成され、各クリティカリティレベルについてのスケジュールテーブルで補正実行時間分のタスク実行時間が確保される。
各時刻でCo-runするセンシティブタスク数は、その時刻において、全クリティカリティレベルについてのスケジュールテーブルの中で実行される可能性があるタスク数でカウントされる。
例えば、図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となる。
数19の式(1)は非線形式である。そのため、影響制約生成部25は、数20の線形制約式を影響反映用制約として生成し、数19の式(1)の性質を持った最適化変数εを規定する。
Figure 0007012905000010
φnco,i,l,tは、0又は1を満たす最適化変数である。
同様に、数19の式(2)は非線形式である。そのため、影響制約生成部25は、数21の線形制約式を影響反映用制約として生成し、数19の式(2)の性質を持った最適化変数εを規定する。
Figure 0007012905000011
coは、他の項の最大値よりも大きな任意の整数である。
(ステップS52:デッドライン制約生成処理)
デッドライン制約生成部26は、数22に示す線形制約式をデッドライン制約として生成する。
Figure 0007012905000012
i,lは、タスクiのクリティカリティレベルがlに対応する補正実行時間である。なお、P i,lにおける“”は、Pの上に-が引かれていることを表している。
(ステップS53:コア数制約生成処理)
コア数制約生成部27は、数23に示す線形制約式をコア数制約として生成する。
Figure 0007012905000013
(ステップS54:目的関数生成処理)
目的関数生成部28は、数24に示すように目的関数を生成する。
Figure 0007012905000014
数24に示す目的関数は、実行時間の総和、すなわちCPU使用率を最小にする目的関数である。
目的関数はこれに限定されるものではない。目的関数生成部28は、最低クリティカリティレベルのスケジュールテーブルのCPU使用率を最小化してもよい。これは最低クリティカリティレベルに対応するCPU使用率が最頻であるという仮定に基づき、実効的なCPU使用率を最大にすることを目的としている。また、目的関数生成部28は、例えば、デッドラインまでの余裕時間を最小化する目的関数を生成してもよいし、目的関数自体を生成しなくてもよい。
(ステップS55:テーブル間制約生成処理)
テーブル間制約生成部29は、各クリティカリティレベルのスケジュール間の整合性をとるための制約であるテーブル間制約を生成する。
具体的には、テーブル間制約生成部29は、数25に示す線形制約式をテーブル間制約として生成する。
Figure 0007012905000015
,lは、あるクリティカリティレベルである。t,tは、ある時刻である。
実行時スケジューラの動作を説明した上で、テーブル間制約の役割を説明する。
実行時スケジューラは、スケジュール生成装置10によって生成されたスケジュールに従い、実行システムでタスクを実行する際に動作する。図16に示すように、各クリティカリティレベルについてのスケジュールが生成されるが、実行時スケジューラは、コア数以上タスクが同時刻で実行されないように、どのタスクを実行するかを制御する。
図17を参照して、実行システムで動作する実行時スケジューラの動作について説明する。
実行時スケジューラは、タイムステップ間隔で起動し、ステップS61からステップS63の処理を実行する。
(ステップS61:タスク特定処理)
実行時スケジューラは、スケジュール生成装置10によって生成されたスケジュールを参照し、現在時刻で実行される可能性のあるタスクを特定する。
図16のスケジュールテーブルの場合、時刻2で実行される可能性のあるタスクは、タスクaとタスクbとタスクcとである。
(ステップS62:未完了タスク特定処理)
実行時スケジューラは、ステップS61で特定されたタスクのうち、現在時刻で処理が完了していないタスクを特定する。
ここでは、タスクの実行時間は実行毎に変動することを想定している。すなわち、CL=3又はCL=2に対応する実行時間の場合、タスクa及びタスクbは時刻2では処理が完了していない。また、CL=1に対応する実行時間の場合、タスクa及びタスクbは時刻1で処理が完了している。
(ステップS63:実行件付与処理)
実行時スケジューラは、ステップS62で特定されたタスクのうち、クリティカリティレベルが高いタスクから順に実行権を与える。
ステップS62で特定されたタスクがコア数以上となる場合、クリティカリティレベルが低いタスクは実行されない可能性がある。しかし、これはミックスドクリティカリティスケジューリングのスケジューリングポリシーに違反しない。
テーブル間制約の役割を説明する。
複数のクリティカリティレベルそれぞれを対象のクリティカリティレベルとし、複数のタスクそれぞれを生成対象のタスクとする。テーブル間制約は、対象のクリティカリティレベルよりも低いクリティカリティレベルのスケジュールにおいて生成対象のタスクについての処理が完了するまでの期間に関して、生成対象のタスクについての対象のクリティカリティレベルのスケジュールが、対象のクリティカリティレベルよりも高いクリティカリティレベルのスケジュールと同一になるようにする制約である。
図18を参照して、テーブル間制約の必要性を説明する。
図18では、数25に示すテーブル間制約を設けない場合に発生する問題の例が示されている。図18では、あるタスクのHigh、Lowの2つのクリティカリティレベルのスケジュールであるHighレベルテーブルとLowレベルテーブルとが示されている。
図18のスケジュールが生成されると、実行時スケジューラは時刻tでこのタスクを実行すべきかどうか判断できない。
なぜならば、実行する場合、Lowレベルテーブルで他のタスクが実行できない可能性がある。その結果、このタスクがLowレベルに対応する実行時間(図18では3タイムステップ)で完了した場合でも、他のタスクがデッドラインミスする可能性がある。つまり、本来実行しなくてもよかったタスクを実行したことにより、他のタスクがデッドラインミスをする可能性がある。これはミックスドクリティカリティスケジューリングのスケジューリングポリシーに違反する。
一方、実行しない場合、このタスクがHighレベルに対応する実行時間(図18では6タイムステップ)で完了した場合には、Highレベル絶対デッドラインを超過してしまう。時刻tで実行しないので、Highレベル絶対デッドラインまでに6タイムステップ分の実行時間を確保できなくなるためである。これもミックスドクリティカリティスケジューリングのスケジューリングポリシーに違反する。
そこで、数25に示すテーブル間制約を設定し、各周期にて、Lowレベルテーブルでの実行完了以前は、全てHighレベルテーブルと同一スケジュールであることを保証する。
実施の形態1と同様に、問題求解部24によって線形計画問題の解が計算され、スケジュールが生成される。
具体例としては、図19に示すように、クリティカリティレベル毎に、各タスクについて時刻毎に実行の有無を示すスケジュールテーブルを出力する。図19では、タスクと時刻とが交差する欄に〇が示されている場合には、そのタスクがその時刻に実行されることを意味し、空欄が示されている場合には、そのタスクがその時刻に実行されないことを意味する。
***実施の形態3の効果***
以上のように、実施の形態3に係るスケジュール生成装置10は、異なるクリティカリティレベルのタスクが存在する場合にも、Co-run影響度を考慮して、複数のタスクを実行するスケジュールを生成する。これにより、適切なスケジュールの生成が可能になる。
より具体的には、実施の形態3に係るスケジュール生成装置10は、テーブル間制約を用いて、クリティカリティレベル毎のスケジュールの整合性を持たせる。これにより、Co-run影響度を考慮しつつ、ミックスドクリティカリティスケジューリングのスケジューリングポリシーを満たすスケジュールを生成することが可能である。
なお、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
100 スケジュール生成システム、10 スケジュール生成装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 信号線、21 特性データ取得部、22 スケジュール生成部、23 問題生成部、24 問題求解部、25 影響制約生成部、26 デッドライン制約生成部、27 コア数制約生成部、28 目的関数生成部、29 テーブル間制約生成部、50 計測装置、51 プロセッサ、511 コア、512 共有キャッシュ、52 メモリ、53 ストレージ、54 通信インタフェース、55 信号線、61 実行時間計測部、62 特性データ計測部、90 伝送路。

Claims (8)

  1. 複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成装置であり、
    前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を、前記実行対象のタスクと同時に実行するタスク数がからコア数-1までのそれぞれについて示す特性データを取得する特性データ取得部と、
    前記特性データ取得部によって取得された前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮した場合に前記複数のタスクがデッドラインまでに処理を完了することを表すデッドライン制約であって、前記複数のタスクそれぞれを制約対象のタスクとして、前記制約対象のタスクについての前記単独実行時間と、前記Co-run影響度により増加する実行時間との和以上の時間を、前記制約対象のタスクに割り当てるという制約と、デッドラインよりも後の時間を、前記制約対象のタスクに割り当てないという制約とを含むデッドライン制約を含む線形計画問題を解くことにより、前記複数のタスクを実行するスケジュールを生成するスケジュール生成部と
    を備えるスケジュール生成装置。
  2. 前記デッドライン制約は、数1に示す制約である
    請求項に記載のスケジュール生成装置。
    Figure 0007012905000016
  3. 前記デッドライン制約は、数2のように定義された最適化変数εを用いて定義された
    請求項に記載のスケジュール生成装置。
    Figure 0007012905000017
  4. 前記デッドライン制約は、数3のように定義された最適化変数εを用いて定義された
    請求項に記載のスケジュール生成装置。
    Figure 0007012905000018
  5. 前記複数のタスクは、タスク毎にクリティカリティレベルが設定されており、
    前記スケジュール生成部は、クリティカリティレベルが高くなるほど時間が長くなるように前記単独実行時間を補正した補正実行時間を用いて、各クリティカリティレベルを対象のクリティカリティレベルとして、前記対象のクリティカリティレベルについて、前記対象のクリティカリティレベル以上のクリティカリティレベルが設定されたタスクがデッドラインまでに処理を完了するスケジュールを生成する
    請求項1に記載のスケジュール生成装置。
  6. 前記スケジュール生成部は、数4に示すデッドライン制約を含む線形計画問題を解くことにより、前記スケジュールを生成する
    請求項に記載のスケジュール生成装置。
    Figure 0007012905000019
  7. 複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成方法であり、
    特性データ取得部が、前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を、前記実行対象のタスクと同時に実行するタスク数がからコア数-1までのそれぞれについて示す特性データを取得し、
    スケジュール生成部が、前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮した場合に前記複数のタスクがデッドラインまでに処理を完了することを表すデッドライン制約であって、前記複数のタスクそれぞれを制約対象のタスクとして、前記制約対象のタスクについての前記単独実行時間と、前記Co-run影響度により増加する実行時間との和以上の時間を、前記制約対象のタスクに割り当てるという制約と、デッドラインよりも後の時間を、前記制約対象のタスクに割り当てないという制約とを含むデッドライン制約を含む線形計画問題を解くことにより、前記複数のタスクを実行するスケジュールを生成する
    スケジュール生成方法。
  8. 複数のコアを有するマルチコアプロセッサで複数のタスクを実行するスケジュールを生成するスケジュール生成プログラムであり、
    前記複数のタスクそれぞれを実行対象のタスクとした場合のCo-run影響度であって、前記実行対象のタスクを単独で実行した場合の実行時間である単独実行時間に対して、前記実行対象のタスクを他のタスクと同時に実行した場合の実行時間が長くなる度合であるCo-run影響度を、前記実行対象のタスクと同時に実行するタスク数がからコア数-1までのそれぞれについて示す特性データを取得する特性データ取得処理と、
    前記特性データ取得処理によって取得された前記特性データが示す前記複数のタスクそれぞれについての前記Co-run影響度を考慮した場合に前記複数のタスクがデッドラインまでに処理を完了することを表すデッドライン制約であって、前記複数のタスクそれぞれを制約対象のタスクとして、前記制約対象のタスクについての前記単独実行時間と、前記Co-run影響度により増加する実行時間との和以上の時間を、前記制約対象のタスクに割り当てるという制約と、デッドラインよりも後の時間を、前記制約対象のタスクに割り当てないという制約とを含むデッドライン制約を含む線形計画問題を解くことにより、前記複数のタスクを実行するスケジュールを生成するスケジュール生成処理と
    を行うスケジュール生成装置としてコンピュータを機能させるスケジュール生成プログラム。
JP2021529328A 2020-12-28 2020-12-28 スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム Active JP7012905B1 (ja)

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)

* Cited by examiner, † Cited by third party
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 バッチ処理装置、および、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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