JP2008171153A - タスク管理装置 - Google Patents

タスク管理装置 Download PDF

Info

Publication number
JP2008171153A
JP2008171153A JP2007002891A JP2007002891A JP2008171153A JP 2008171153 A JP2008171153 A JP 2008171153A JP 2007002891 A JP2007002891 A JP 2007002891A JP 2007002891 A JP2007002891 A JP 2007002891A JP 2008171153 A JP2008171153 A JP 2008171153A
Authority
JP
Japan
Prior art keywords
task
tasks
executable
executed
selection means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007002891A
Other languages
English (en)
Inventor
Hirotoshi Tono
宏敏 斗納
Takero Sawada
武朗 澤田
Sakii Katsura
崎偉 葛
Hironori Yohata
裕紀 養畑
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.)
Denso Ten Ltd
Yamaguchi University NUC
Original Assignee
Denso Ten Ltd
Yamaguchi University NUC
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 Denso Ten Ltd, Yamaguchi University NUC filed Critical Denso Ten Ltd
Priority to JP2007002891A priority Critical patent/JP2008171153A/ja
Publication of JP2008171153A publication Critical patent/JP2008171153A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】様々な処理時間を有する複数のタスクで構成されるプログラムに対して、プロセッサ数にかかわらず最適または準最適なスケジューリングが可能なタスク管理装置を提供する。
【解決手段】マルチプロセッサシステムで、空状態となったプロセッサで実行させるタスクを複数のタスクの中から選出するスケジューラSKを備え、複数のタスクには所定のタスクの実行済みを条件として実行可能となるタスクが存在し、スケジューラは、クリティカルパス上に存在するタスクを優先的に選出するように予め設定された各タスクの優先順位に基づいて、実行可能タスクを選出する静的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多い場合に、静的選出手段よりも優先して、実行可能タスクのうち当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段とを備えている。
【選択図】図1

Description

本発明は、複数のタスクから構成されるプログラムを複数のプロセッサで実行する際に、所定の条件に基づいて各タスクを各プロセッサに割り付けて実行させるタスク管理装置に関する。
マルチプロセッサによる並列処理は、システムの実行時間を短縮する有効な手段の一つであり、計算機システムに止まらず、車両制御システムを含む様々なシステムに利用されている。
しかし、マルチプロセッサシステムの処理能力を最大限に引き出すためには、プログラムの実行における最適なスケジュールが必要であり、そのスケジュールを導き出すスケジューリング手法が重要となる。
一般的にマルチプロセッサスケジューリング問題とは、プログラムを表すタスクグラフとプロセッサ数が与えられた場合に、タスクグラフの実行時間が最小となるように、プロセッサに割り当てられるタスクの実行順序を決定することをいう。
このようなマルチプロセッサスケジューリング問題の解法として分枝限定法があり、これは既に計算で判明したスケジュールより長くなるような部分タスクの実行順序の組み合わせが出た場合、それ以降の組み合わせは調べないが、それ以外は全て調べる方法である。従って、計算時間が莫大にかかり、NP−困難の問題となっている。
そこで、プログラムの実行時間が最小にならなくても、最適値に近い、つまり準最適なスケジューリング手法が求められている。準最適化問題の代表的な解法として、優先度を各タスクから終点までの最長処理時間によって決めるCP(Critical Path)法を改良した準最適解法CP/MISF(Critical Path / Most Immediate Successors First)法が提案されている。
また、特許文献1には、演算の実行に供される演算装置の数によらないスケジューリング、および演算不要となった副システムの動的検出によるむだな演算の回避を可能とした、簡易な手段により構成される複合型システム演算装置を提供することを目的として、以下の装置が提案されている。
外部から与えられる複数の副システムの連結よりなる複合型システムの構造に関する所定の情報を基に前記複数の副システムの演算順序を予め設定する演算順序設定手段と、設定された演算順序を記憶する演算順序記憶手段と、外部から与えられる副システムの演算内容に関するデータと副システムの演算に供される入出力データとを記憶するためのデータ記憶手段と、副システムの演算を実行するための少なくとも1つの演算実行手段と、複合型システムの初段を構成する少なくとも1つの副システムへの入力となる少なくとも1つのデータを外部から入力し、複合型システムの最終段を構成する少なくとも1つの副システムの演算実行により得られる少なくとも1つのデータを外部へ出力する演算制御手段であって、演算順序記憶手段に記憶されている演算順序に基づいて次に演算すべき副システムを選択し、演算実行手段のうちから次の演算に供する演算実行手段を選択し、データ記憶手段に記憶されている当該副システムの演算内容に関するデータおよび当該副システムへの入力となるデータを演算実行手段に与え、演算実行手段から当該副システムの演算実行により得られるデータをデータ記憶手段に記憶するための演算制御手段を有する複合型システム演算装置である。
笠原博徳、成田誠之助、「マルチプロセッサスケジューリング問題に対する実用的な最適および近時アルゴリズム」信学論(D)、Vol.J67−D,No.7,pp792−799(1984) 特開平6−149761号公報
上述した特許文献1に記載された複合型システム演算装置では、複数の副システム(タスク)の連結により構成される複合化システム(プログラム)を複数の演算装置で並列的に処理するものであるが、各副システムの処理時間が考慮されているものではないため、副システムの処理時間が様々に異なる場合には、最適なスケジューリングができないという問題が内在している。
また、CP/MISF法によれば、プロセッサ数が少ないときには効果的なスケジューリングが可能となるが、プロセッサ数が増えると効果が得られないという問題があった。
本発明の目的は、上述の問題点に鑑み、様々な処理時間を有する複数のタスクで構成されるプログラムに対して、プロセッサ数にかかわらず最適または準最適なスケジューリングが可能なタスク管理装置を提供する点にある。
上述の目的を達成するため、本発明によるタスク管理装置の特徴構成は、マルチプロセッサシステムで、空き状態となったプロセッサで実行させるタスクを複数のタスクの中から選出するスケジューラを備えたタスク管理装置であって、前記複数のタスクには、所定のタスクの実行済みを条件として実行可能となるタスクが存在するものであり、前記スケジューラは、クリティカルパス上に存在するタスクを優先的に選出するように予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行タスクを選出する静的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多い場合に、前記静的選出手段よりも優先して、実行可能タスクのうち当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段とを備えている点にある。
上述の構成によれば、未実行タスクの実行条件になっているタスクの数が所定値よりも多いときには、動的選出手段によってタスクの実行により実行可能なノードが増加するような実行可能タスクが優先的に処理され、多数のプロセッサにより並列的に処理される機会が増加するようになり、逆に、未実行タスクの実行条件になっているタスクの数が所定値よりも少ないときには、静的選出手段によって時間のかかるタスクから優先的に処理することにより、処理に時間が掛かるタスクが早期に処理されるようになる。このように、未実行タスクの実行条件になっているタスクの数に基づいて静的選出手段と動的選出手段がダイナミックに切り替えられるため、タスクの集合であるプログラムが効率的に処理されるようになる。
以上説明した通り、本発明によれば、様々な処理時間を有する複数のタスクで構成されるプログラムに対して、プロセッサ数にかかわらず最適または準最適なスケジューリングが可能なタスク管理装置を提供することができるようになった。
以下に、本発明によるマルチプロセッサシステムを構成するタスク管理装置について説明する。
図1に示すように、タスク管理装置100は、複数のタスク(1,2,・・・)が格納されたメモリMと、タスクを並列的に実行可能な性能の等しいか略等しい複数のプロセッサP(P1,P2,・・・,PN)と、各タスクを所定順序で空プロセッサに割り付けて実行させるスケジューラSKとがバスBで接続されて構成されている。
メモリMにはタスクに対するスケジューリングロジック21〜25が格納され、スケジューラSKは当該スケジューリングロジック21〜25に基づいてタスクを選択して、各プロセッサP1,P2,・・・,Pnの何れかに割り付けて実行させるように構成されている。
個々のタスク1,2,・・・は、図4に示すように、各タスクに対応するノード(以下では、「タスク」と「ノード」を同義で記す。)が有向枝で階層的に接続されたタスクグラフ(DAG:Directed Acyclic Graph)で関連付けられるプログラムの構成要素である。
タスクグラフはプログラムの起点となる仮想的なソースノードSと終点となる仮想的なシンクノードTを備え、ソースノードSから任意のノードに向けた有向枝(図中、矢印で示す線分)と、任意のノードからシンクノードTに向けた有向枝で処理順序が規定され、ノード間を結ぶ有向枝は対応するノード間の制約条件を示し、有向枝で接続された直上の階層のノードの全てが実行を終了したときに下位に接続されたノードが実行可能となるように定義され、各ノードは任意の実行時間を持ち、その実行は中断できないという制約が課されている。
図3(a)に示すように、各タスクはタスクを固有に識別するタスク番号情報と、当該タスクの処理時間情報と、当該タスクからシンクノードTに到る複数の経路のうち各タスクの処理時間が最大値となる経路の処理時間を示すクリティカルパス情報と、シンクノードTを基準にソースノードSへの経路に沿った階層数を示す階層レベル情報と、余分枝削除後の後続タスク数情報とからなるタスク属性情報を備えており、これらの属性情報がタスク属性リスト2bとしてメモリに管理されている。余分枝とは、図3(b)に示すように、二つのタスク間に他のタスクを経由した経路が存在するときの当該経路をいう。
尚、処理時間は各タスクの相対的な処理時間比で規定され、プロセッサで処理される実時間とは異なる概念であるが、複数のプロセッサの動作周波数が等しいときには実時間に相当するものである。また、ソースノードS及びシンクノードTの処理時間は零とされている。
図4に戻り、タスク間が有向枝で接続されているとき、階層の上位のタスクから見た階層の下位のタスクを子孫、直下のタスクを子と呼び、階層の下位のタスクから見た階層の上位のタスクを祖先、直上のタスクを親と呼ぶ。
有向枝で接続された任意のノード間の一本の経路に沿った処理時間の総和をその経路の距離といい、任意のノードからシンクノードに到る複数の経路があるときに、距離が最長となる経路をクリティカルパスと呼ぶ。例えば、図4でソースノードSからシンクノードTに到るクリティカルパスは、ノード3の距離11となる。
このようにして定義されたタスクグラフで示されるプログラムに対して、有向枝で接続された上位階層の全てのタスクが終了した任意のタスクが実行可能タスクとなり、スケジューラSKにより空プロセッサPに割り付けられて実行されるのであるが、空プロセッサPが発生し、且つ、複数の実行可能タスクが存在するときに、スケジューラSKはタスク属性情報に基づいてスケジューリングロジック21〜25を実行することにより予め設定された条件に基づいて何れかの実行可能タスクを選択して空プロセッサPに割り付けるように構成されている。
以下、詳述する。スケジューラSKは、タスクグラフに基づいて未処理の子孫タスクの平均親タスク数と実行可能タスク数とを比較した結果に基づいて、第一静的選出手段と動的選出手段の何れかを選択する選択切替手段を備えており、選択切替手段は、実行済みのタスクを除き、且つ、余分枝を削除したタスクグラフにおいて、未処理の子孫タスクの平均親タスク数が実行可能タスク数以上のときに、静的選出手段よりも優先して動的選出手段を選択し、未処理の子孫タスクの平均親タスク数が実行可能タスク数より少ないときには動的選出手段よりも第一静的選出手段を優先して選択し、選択された選出手段により選択されるタスクを優先的に空のプロセッサPに割り付けて実行される。
ここで、第一静的選出手段は、タスクグラフに沿った各タスクの総実行時間が最長となるクリティカルパス上の実行可能タスクであって、総実行時間が同じ時には階層が上位にある実行可能タスクを優先的に選出するように構成され、動的選出手段は未処理の親タスク数の少ない子タスクを持つ実効可能タスクを優先的に選出するように構成されている。
従って、未処理の子孫タスクの平均親タスク数より実行可能タスク数つまり親タスクを持たないタスク数が多いときには、最も時間の掛かる経路のタスクから優先的に実行され、プログラムの最終処理時間が短くなるように制御される。逆に、未処理の子孫タスクの平均親タスク数が実行可能タスク数つまり親タスクを持たないタスク数以上のときには、処理により実行可能なタスク数が増加するタスクから優先的に実行され、マルチプロセッサ環境を効率的に活用するように制御される。
さらに、スケジューラSKは、選択切替手段により動的選出手段が選択されたときに、次の空プロセッサの発生時刻を基準に実行可能なタスクのうちタスクグラフに沿った各タスクの総実行時間が最長となるクリティカルパス上のタスクの実行時間と、当該クリティカルパス上のタスクを除いたタスクの総実行時間を残りのプロセッサ数(n−1)で除した平均実行時間に基づいて、動的選出手段により選出された実行可能タスクを実行させるか否かを判断するチェック手段を備えている。
スケジューラSKは、チェック手段によりクリティカルパス上のタスクの実行時間よりも平均実行時間が長いと判断されたときに、動的選出手段により選出された実行可能タスクを実行させ、チェック手段によりクリティカルパス上のタスクの実行時間よりも平均実行時間が短いと判断されたときに、第二静的選出手段により選出された実行可能タスクを実行させるように構成されている。
ここで、第二静的選出手段は、タスクグラフに沿った各タスクの総実行時間の長いクリティカルパス上の実行可能タスクであって、総実行時間が等しいときには余分枝を削除した子孫タスク数の少ない実行可能タスクを優先的に選出するように構成されている。また、動的選出手段により複数のタスクが選出される場合には第二静的選出手段により選出されるタスクが動的選出手段により選出されたタスクとされる。
従って、クリティカルパス上のタスクの実行時間が当該クリティカルパス上のタスクを除いたタスクの総実行時間を残りのプロセッサ数(n−1)で除した平均実行時間以上となると判断された場合には、最も時間の掛かる経路のタスクから優先的に実行され、プログラムの最終処理時間が短くなるように制御される。逆にクリティカルパス上のタスクの実行時間よりも当該クリティカルパス上のタスクを除いたタスクの総実行時間を残りのプロセッサ数(n−1)で除した平均実行時間の方が長くなると判断された場合には、処理により実行可能なタスク数が増加するタスクから優先的に実行され、マルチプロセッサ環境を効率的に活用するように制御される。
ここで、第二静的選出手段は、第一静的選出手段とは異なり余分枝を削除した子孫タスク数を判断対象としている。従って、第一静的選出手段よりも実行可能タスク数が増加する方向に制御されるため、プログラム実行の終期において実行可能なタスクが少なくなる場合に有効に作用する。
つまり、第一静的選出法ロジック21が実行されることにより第一静的選出手段が機能し、動的選出法ロジック22が実行されることにより動的選出手段が機能し、第二静的選出法ロジック23が実行されることにより第二静的選出手段が機能し、選択切替判定ロジックが実行されることにより選択切替手段が機能し、チェック機構実行ロジックが実行されることによりチェック手段が機能するように構成されている。
以下、スケジューラSKの動作を説明する。図2に示すように、タスク管理装置100にタスクグラフ2a及びタスク属性リスト2bがロードされ、タスクの実行制御が開始されると(S1)、メモリMからタスクグラフ2aが読み出され(S2)、タスクグラフ上の各タスクの属性リスト2bが参照される(S3)。タスクグラフ2aは、例えば図1中央部の一点鎖線で囲まれた範囲に示すような有向枝で接続されたグラフであり、各タスクの詳細なプログラムコードはメモリMのタスクグラフ格納領域に格納されている。
タスクグラフから上述した制約条件を具備し実行可能となったタスクが存在するか否かが判断され(S4)、実行可能なタスクが存在するときに複数のプロセッサPから空プロセッサがあるか否かが判断される(S5)。
初期には起点となるソースノードSの次の階層のタスクが実行可能タスクと判断される。実行可能タスクが複数或る場合に、タスクグラフに基づいて未処理の子孫タスクの平均親タスク数より実行可能タスク数が多いか否かが判断され(S6)、実行可能タスクの方が多いと判断されると動的選出法に切り替える選択切替条件が非成立と判断し、第一静的選出法により選出された実行可能なタスクを空プロセッサPに優先して割り付けて実行させ(S7,S11)、未処理の子孫タスクの平均親タスク数の方が多いと判断されると動的選出法に切り替える選択切替条件が成立と判断し、チェック手段により次の空プロセッサの発生時刻を基準に実行可能なタスクのうちタスクグラフに沿った各タスクの総実行時間が最長となるクリティカルパス上のタスクの実行時間と、当該クリティカルパス上のタスクを除いたタスクの総実行時間を残りのプロセッサ数(n−1)で除した平均実行時間が算出される(S8)。
チェック手段によりクリティカルパス上のタスクの実行時間よりも平均実行時間が長いと判断されたときには、動的選出法に切り替えてもよいかをチェックするチェック条件をクリアしていると判断し、動的選出手段により選出された実行可能タスクを空プロセッサPに優先して割り付けて実行させ(S9,S11)、クリティカルパス上のタスクの実行時間よりも平均実行時間が短いと判断されたときに、動的選出法に切り替えてよいかをチェックするチェック条件をクリアしていないと判断し、第二静的選出手段により選出された実行可能タスクを空プロセッサPに優先して割り付けて実行させる(S10,S11)。
このようにして、図1の下段の一点鎖線で囲まれた範囲に示すように、各プロセッサPに割り付けられるタスクが、実行中フラグとともにメモリMの実行テーブル20に記憶され、各プロセッサPは実行テーブル20を参照して自分に割り当てられたタスクを実行し、終了すると実行中フラグをリセットするように構成される。スケジューラSKは実行テーブル20の実行中フラグがリセットされることによりプロセッサのPの空状態を管理する。さらに、スケジューラSKは、実行テーブルに記憶された実行中フラグの状態とタスクグラフを参照して、実行可能なタスクの発生を管理する。例えば、図1に示すタスクグラフ上でタスク6が実行可能となったか否かは有向枝の上流側のタスク3の実行中フラグの状態に基づいて判断され、フラグがリセットされたときに実行可能となったと判断される。
タスクグラフで示された全てのタスクが終了するまでステップS4からステップS11の処理が繰り返され(S12)、全タスクが終了するとタスクの割付処理を終了する。尚、ステップS6で空プロセッサが発生したときに実行可能タスクが一つである場合には、当該実行可能タスクが当該空プロセッサにより無条件で実行される。
以上説明したように、タスクグラフで示される複数のタスクには、所定のタスクの実行済みを条件として実行可能となるタスクが存在するものであり、スケジューラは、クリティカルパス上に存在するタスクを優先的に選出するように予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行タスクを選出する静的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多い場合に、静的選出手段よりも優先して、実行可能タスクのうち当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段とを備えて構成されている。
また、スケジューラは、クリティカルパス上に存在するタスクを優先的に選出するように予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行を行うタスクを選出する静的選出手段と、未実行状態にあるタスクで、クリティカルパス上にないタスクの総処理時間が所定値よりも長い場合に、静的選出手段よりも優先して、実行可能タスクのうちの当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段とを備えて構成されている。
さらに、スケジューラは、クリティカルパス上に存在するタスクを優先的に選出し、かつ、実行可能になるまでに実行が必要なタスクが少ないタスクが優先的に選出するように、予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行を行うタスクを選出する第一の静的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多く、かつ、未実行状態にあるタスクで、クリティカルパス上にないタスクの総処理時間が所定値よりも長い場合に、第一の静的選出手段よりも優先して、実行可能タスクのうち当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多く、かつ、未実行状態にあるタスクでクリティカルパス上にないタスクの総処理時間が所定値よりも短い場合に、第一の静的選出手段よりも優先して、クリティカルパス上に存在するタスクを優先的に選出し、かつ、実行することによって新たに実行可能になるタスクが多いタスクが優先的に選出するように、予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行を行うタスクを選出する第二の静的選出手段とを備えて構成されている。
本発明のタスク管理装置によるタスク制御は様々な制御装置に適用することができ、例えば、エンジン制御装置、変速機制御装置、HV制御装置、MG制御装置、FC制御装置、EPS制御装置、エアバッグ制御装置、レーダ制御装置等、車両に設けられた各種制御装置に適用し、或いは、エンジン等の各種シミュレーション装置におけるモデル演算に適用することができる。
以下、上述したスケジューラSKによる実行可能なタスクの選択制御の具体例を、図4から図13に示すタスクグラフに基づいて説明する。尚、図4から図13において実行可能タスクは、図3(c)に示すように、輪郭が濃いグラデェーションの黒丸で、実行中タスクは、図3(c)に示すように、輪郭が薄いグラデェーションの黒丸で示す。また、本実施例では、プロセッサ数を2とする。
図4に示すタスクグラフにおける第一及び第二静的選出手段によって設定される優先順位は、図3(d)の優先リストに示される。
図4に示すタスクグラフは、ソースタスクS、シンクタスクTを加えて、三階層の全13のタスクで構成され、各タスクの属性情報はタスクを示す丸印の右下に配置した方形の枠の四領域に示されている。
タスクの実行制御が開始された時点でソースタスクSの実行が完了したものとして、図5に示すように、タスク1,2,3が実行可能タスクとなる。この時点では空プロセッサが二台存在する。先ず、選択切替手段が作動して、親タスクを持つタスクの親タスク数の合計が30(=各階層の有向枝の数)、親タスクを持つタスク数が9(=階層1及び2のタスク数の合計)、親タスクを持つタスクの親タスク数の平均値が30/9、親タスクを持たないタスク数(ここでは、実行可能なタスクの数)が3と求められる。30/9≧3となるので、選択切替手段により第一静的選出手段に優先して動的選出手段が選択される。
動的選出手段は、上述したように、実行可能タスクに対してその直接後続のタスク(子タスク)の夫々について未実効の親タスク数(実行中及び実行済みの親タスクは含めない)を計算し、これらの子タスクの中で最も小さい未実行親タスク数をその実行可能タスクの優先度とし、優先度の値が小さければ小さいほど優先的に選ばれるように実行するタスクを選出する。今、実行可能タスク1,2,3の直接後続タスクの親の数は何れも3で同じ順位になるため、第二静的選出手段の優先リストに従ってタスク番号3のタスクが仮に選出される。尚、動的選出手段で一つのタスクが選出される場合にはそのタスクが仮に選出される。
ここでチェック手段が作動して、タスク3以外の未実行タスクのうちで最長の総実行時間が10と求められ、さらにその最長の総実行時間で処理されるタスクを除いたタスクの実行時間の総和を(全プロセッサ数−1)で除した値が17(=(1+4+4+3+2+1+2)/(2−1))と求められる。
チェック手段では、仮にタスク3が実行されたとし、次の最も早く空プロセッサが現れる時刻τにおいて、(未実行タスクの最長総実行時間)<(その最長の総実行時間で処理されるタスクを除いたタスクの実行時間の総和を(全プロセッサ数−1)で除した値)となるときに動的選出手段により選出されたタスクを実行するように決定され、(未実行タスクの最長総実行時間)≧(その最長の総実行時間で処理されるタスクを除いたタスクの実行時間の総和を(全プロセッサ数−1)で除した値)となるときに第二静的選出手段により選出されたタスクを実行するように決定される。今、10<17であるため、動的選出手段により選出されたタスク3がプロセッサに割り付けられる。
タスク3が実行されると、図6に示すように、実行可能タスクが1,2となる。選択切替手段が作動して、親タスクを持つタスクの親タスク数の合計が30(=各階層の有向枝の数)、親タスクを持つタスク数が9(=階層1及び2のタスク数の合計)、親タスクを持つタスクの親タスク数の平均値が30/9、親タスクを持たないタスク数(ここでは、実行可能なタスクの数)が3と求められる。30/9≧3となるので、選択切替手段により第一静的選出手段に優先して動的選出手段が選択される。
動的選出手段により、実行可能タスク1,2の直接後続タスクの親の数は何れも3で同じ順位になるため、第二静的選出手段の優先リストに従ってタスク番号2のタスクが仮に選出される。
チェック手段では、同様に、(未実行タスクの最長総実行時間=9)<(その最長の総実行時間で処理されるタスクを除いたタスクの実行時間の総和を(全プロセッサ数−1)で除した値=17)となるので、動的選出手段により選出されたタスク2がプロセッサに割り付けられる。
タスク2が実行されると、図7に示すように、実行可能タスクが1のみとなるので、無条件にタスク1が空プロセッサに割り付けられる。
タスク1,2,3の処理が終了すると、図8に示すように、タスク番号4,5,6,7の四つの実行可能タスクが発生する。選択切替手段が作動して親タスクを持つタスクの親タスク数の平均値が18/5、親タスクを持たないタスク数が4と求められ、(18/5)<4となるので、第一静的選出法により選出されるタスク5が実行される。
タスク5が実行されると、図9に示すように、タスク番号4,6,7の三つの実行可能タスクに対して選択切替手段が作動し、同様の処理により第一静的選出法によりタスク4が実行される。
次に、図10に示すように、タスク番号6,7の二つの実行可能タスクに対して選択切替手段が作動し、親タスクを持つタスクの親タスク数の平均値が16/5、親タスクを持たないタスク数が3と求められ、(16/5)≧3となるので、動的選出手段が選択される。動的選出手段では、実行可能タスク6,7の直接後続タスクの親の数が2と等しくなるので、第二静的選出手段により優先リストからタスク6が仮に選出される。次にチェック手段が作動して、(未実行タスクの最長総実行時間=6)<(その最長の総実行時間で処理されるタスクを除いたタスクの実行時間の総和を(全プロセッサ数−1)で除した値=8)となるので、動的選出手段により選出されたタスク6が実行される。
タスク6が実行されると、図11に示すように、実行可能タスクが7のみとなるので、無条件にタスク7が空プロセッサに割り付けられる。
次に、図12(a)に示すように、タスク番号8,9,10,11の四つの実行可能なタスクに対して選択切替手段が作動し、親タスクを持つタスクの親タスク数の平均値が4/1、親タスクを持たないタスク数が4と求められ、(4/1)≧1となるので、動的選出手段が選択される。動的選出手段では同様にしてタスク11が選出され、チェック手段によりタスク11が空プロセッサに割り付けられる。
同様にして、図12(b)、図13(a)、(b)に示すように、タスク8、タスク10、タスク9の順序で実行されてプログラムが終了する。このとき、二台のプロセッサで処理される各タスクの順序を図14に示す。
本発明によるスケジューラを、標準タスクグラフセット(笠原博徳氏提供 http://www.kasahara.elec.waseda.ac.jp/index.ja.html)のうち、タスク数50から1000のタスクに対して試行し、CP/MISF法及びCP法と対比した結果を図15に示す。図15から最適解を出力した割合、最適解に対する遅れ率の総平均ともに本発明によるスケジューラが優れていることが判明した。
タスク管理装置の構成図 スケジューラの動作を示すフローチャート タスクグラフの構成を示し、(a)はタスクと属性情報の説明図、(b)は余分枝の説明図、(c)はタスクの実行状態の説明図、(d)は優先リストの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 有向枝で接続されたタスクグラフの説明図 二台のプロセッサにより実行されるタスクの説明図 他の方法によるスケジューラとの性能比較表
符号の説明
2a:タスクグラフ
2b:タスク属性リスト
20:実行テーブル
100:タスク管理装置
M:メモリ
P:プロセッサ
SK:スケジューラ

Claims (9)

  1. マルチプロセッサシステムで、空き状態となったプロセッサで実行させるタスクを複数のタスクの中から選出するスケジューラを備えたタスク管理装置であって、
    前記複数のタスクには、所定のタスクの実行済みを条件として実行可能となるタスクが存在するものであり、前記スケジューラは、クリティカルパス上に存在するタスクを優先的に選出するように予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行タスクを選出する静的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多い場合に、前記静的選出手段よりも優先して、実行可能タスクのうち当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段とを備えていることを特徴とするタスク管理。
  2. 前記複数のタスクは各タスクが有向枝で階層的に接続されたタスクグラフで関連付けられるプログラムの構成要素であり、
    前記スケジューラは、前記タスクグラフに基づいて実行可能タスク数より未処理の子孫タスクの平均親タスク数が多いときに、前記静的選出手段よりも優先して前記動的選出手段を選択する選択切替手段を備えている請求項1記載のタスク管理装置。
  3. 前記静的選出手段は前記タスクグラフに沿った各タスクの総実行時間が最長となるクリティカルパス上の実行可能タスクであって階層が上位にある実行可能タスクを優先的に選出し、前記動的選出手段は未処理の親タスク数の少ない子タスクを持つ実効可能タスクを優先的に選出するものである請求項1または2記載のタスク管理装置。
  4. 前記スケジューラは、前記選択切替手段により前記動的選出手段が選択されたときに、次の空プロセッサの発生時刻を基準に実行可能なタスクのうち前記タスクグラフに沿った各タスクの総実行時間が最長となるクリティカルパス上のタスクの実行時間と、当該クリティカルパス上のタスクを除いたタスクの総実行時間を残りのプロセッサ数で除した平均実行時間に基づいて、前記動的選出手段により選出された実行可能タスクを実行させるか否かを判断するチェック手段を備えている請求項2または3記載のタスク管理装置。
  5. 前記スケジューラは、前記チェック手段により前記クリティカルパス上のタスクの実行時間よりも前記平均実行時間が長いと判断されたときに、前記動的選出手段により選出された実行可能タスクを実行させる請求項4記載のタスク管理装置。
  6. 前記タスクグラフに沿った各タスクの総実行時間の長いクリティカルパス上の実行可能タスクであって余分枝を削除した子孫タスク数の多い実行可能タスクを優先的に選出する第二静的選出手段を備え、前記スケジューラは、前記チェック手段により前記クリティカルパス上のタスクの実行時間よりも前記平均実行時間が短いと判断されたときに、前記第二静的選出手段により選出された実行可能タスクを実行させる請求項4または5記載のタスク管理装置。
  7. 前記複数のタスクは、自己の処理時間情報と、自己を含む後続タスクの処理時間が最長となるクリティカルパス情報と、階層レベル情報と、余分枝削除後の後続タスク情報からなるタスク属性情報を備えて管理され、前記スケジューラは、前記タスクグラフと前記タスク属性情報に基づいて実行可能タスクから実行タスクを選出する請求項1から6の何れかに記載のタスク管理装置。
  8. マルチプロセッサシステムで、空き状態となったプロセッサで実行させるタスクを複数のタスクの中から選出するスケジューラを備えたタスク管理装置であって、
    前記複数のタスクには、所定のタスクの実行済みを条件として実行可能となるタスクが存在するものであり、前記スケジューラは、クリティカルパス上に存在するタスクを優先的に選出するように予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行を行うタスクを選出する静的選出手段と、未実行状態にあるタスクで、クリティカルパス上にないタスクの総処理時間が所定値よりも長い場合に、前記静的選出手段よりも優先して、実行可能タスクのうちの当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段とを備えていることを特徴とするタスク管理。
  9. マルチプロセッサシステムで、空き状態となったプロセッサで実行させるタスクを複数のタスクの中から選出するスケジューラを備えたタスク管理装置であって、
    前記複数のタスクには、所定のタスクの実行済みを条件として実行可能となるタスクが存在するものであり、前記スケジューラは、クリティカルパス上に存在するタスクを優先的に選出し、かつ、実行可能になるまでに実行が必要なタスクが少ないタスクが優先的に選出するように、予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行を行うタスクを選出する第一の静的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多く、かつ、未実行状態にあるタスクで、クリティカルパス上にないタスクの総処理時間が所定値よりも長い場合に、前記第一の静的選出手段よりも優先して、実行可能タスクのうち当該タスクを実行することによって新たな実行可能タスクが発生する可能性の高いタスクを優先的に選出する動的選出手段と、未実行タスクの実行条件になっているタスクの数が所定値よりも多く、かつ、未実行状態にあるタスクでクリティカルパス上にないタスクの総処理時間が所定値よりも短い場合に、前記第一の静的選出手段よりも優先して、クリティカルパス上に存在するタスクを優先的に選出し、かつ、実行することによって新たに実行可能になるタスクが多いタスクが優先的に選出するように、予め設定された各タスクの優先順位に基づいて、実行可能タスクから実行を行うタスクを選出する第二の静的選出手段とを備えていることを特徴とするタスク管理。
JP2007002891A 2007-01-10 2007-01-10 タスク管理装置 Pending JP2008171153A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007002891A JP2008171153A (ja) 2007-01-10 2007-01-10 タスク管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007002891A JP2008171153A (ja) 2007-01-10 2007-01-10 タスク管理装置

Publications (1)

Publication Number Publication Date
JP2008171153A true JP2008171153A (ja) 2008-07-24

Family

ID=39699195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007002891A Pending JP2008171153A (ja) 2007-01-10 2007-01-10 タスク管理装置

Country Status (1)

Country Link
JP (1) JP2008171153A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095358A1 (ja) * 2009-02-18 2010-08-26 日本電気株式会社 タスク割当装置、タスク割当方法、及び、タスク割当プログラムが格納された記憶媒体
JP2015191282A (ja) * 2014-03-27 2015-11-02 富士通株式会社 ジョブスケジュールプログラム、ジョブスケジュール方法、及びジョブスケジュール装置
WO2018180741A1 (ja) * 2017-03-31 2018-10-04 日本電気株式会社 計算システム、計算方法および計算プログラムが記録された記録媒体
DE112019005584T5 (de) 2018-12-12 2021-10-28 Hitachi Astemo, Ltd. Arithmetiksteuervorrichtung
DE112020001287T5 (de) 2019-04-23 2022-01-13 Hitachi Astemo, Ltd. Elektronische rechenvorrichtung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200500038003, 諏訪・三道著, "遅延タスク数を基準とした制御限界方策に基づくリアクティブ・スケジューリング", システム/制御/情報, 20031115, 第47巻、第11号, 第15−23頁, JP, システム制御情報学会 *
CSNG200600805003, 養畑、外3名著, "マルチプロセッサシステムのための複数の静的優先リストを用いた動的スケジューリング手法の提案", 電子情報通信学会技術研究報告, 20060719, 第106巻、第180号(CST2006−07), 第13−18頁, JP, 社団法人電子情報通信学会 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010095358A1 (ja) * 2009-02-18 2010-08-26 日本電気株式会社 タスク割当装置、タスク割当方法、及び、タスク割当プログラムが格納された記憶媒体
JP5545288B2 (ja) * 2009-02-18 2014-07-09 日本電気株式会社 タスク割当装置、タスク割当方法、及び、タスク割当プログラム
US8897372B2 (en) 2009-02-18 2014-11-25 Nec Corporation Task allocation device, task allocation method, and storage medium storing task allocation program
JP2015191282A (ja) * 2014-03-27 2015-11-02 富士通株式会社 ジョブスケジュールプログラム、ジョブスケジュール方法、及びジョブスケジュール装置
WO2018180741A1 (ja) * 2017-03-31 2018-10-04 日本電気株式会社 計算システム、計算方法および計算プログラムが記録された記録媒体
JPWO2018180741A1 (ja) * 2017-03-31 2020-01-09 日本電気株式会社 計算システム、計算方法および計算プログラム
DE112019005584T5 (de) 2018-12-12 2021-10-28 Hitachi Astemo, Ltd. Arithmetiksteuervorrichtung
DE112020001287T5 (de) 2019-04-23 2022-01-13 Hitachi Astemo, Ltd. Elektronische rechenvorrichtung
US11947486B2 (en) 2019-04-23 2024-04-02 Hitachi Astemo, Ltd. Electronic computing device having improved computing efficiency

Similar Documents

Publication Publication Date Title
US11119821B2 (en) FPGA acceleration for serverless computing
US7503039B2 (en) Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors
US20150339434A1 (en) Virtual hierarchical layer propagation
KR20110071097A (ko) 소스 코드 처리 방법, 시스템, 및 프로그램
US20150052530A1 (en) Task-based modeling for parallel data integration
CN105164638A (zh) 控制由计算系统执行的任务
Choudhury et al. Online scheduling of dynamic task graphs with communication and contention for multiprocessors
US10782897B2 (en) Memory reduction for neural networks with fixed structures
JP2008171153A (ja) タスク管理装置
JP2012530976A (ja) 仮想化超並列プログラマブルハードウェアによる正規表現の検索
CN112711478A (zh) 基于神经网络的任务处理方法、装置、服务器和存储介质
US20190139181A1 (en) Combined rendering and computing resource allocation management system
Ouyang et al. Hardware/software partitioning for heterogenous mpsoc considering communication overhead
Goudarzi et al. Design of a universal logic block for fault-tolerant realization of any logic operation in trapped-ion quantum circuits
US20180349118A1 (en) Method and Device for Processing an Irregular Application
CN116862019B (zh) 基于数据并行范式的模型训练方法及装置
US10261911B2 (en) Apparatus and method for computational workflow management
KR102195886B1 (ko) 분산 처리 시스템 및 이의 동작 방법
JP2011141703A (ja) 資源配置システム、資源配置方法、及び資源配置用プログラム
CN113222136A (zh) 卷积运算方法及芯片
CN113222099A (zh) 卷积运算方法及芯片
US20220350668A1 (en) Function parallelism in a runtime container of a function-as-a-service (faas) system
KR102045997B1 (ko) 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
JP2007183712A (ja) データ駆動型情報処理装置
CN107003855B (zh) 带进位的原子加法指令

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110628