JP5158447B2 - タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ - Google Patents

タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ Download PDF

Info

Publication number
JP5158447B2
JP5158447B2 JP2009502485A JP2009502485A JP5158447B2 JP 5158447 B2 JP5158447 B2 JP 5158447B2 JP 2009502485 A JP2009502485 A JP 2009502485A JP 2009502485 A JP2009502485 A JP 2009502485A JP 5158447 B2 JP5158447 B2 JP 5158447B2
Authority
JP
Japan
Prior art keywords
core
task
task group
assigned
time
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.)
Expired - Fee Related
Application number
JP2009502485A
Other languages
English (en)
Other versions
JPWO2008108133A1 (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.)
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
Priority to JP2009502485A priority Critical patent/JP5158447B2/ja
Publication of JPWO2008108133A1 publication Critical patent/JPWO2008108133A1/ja
Application granted granted Critical
Publication of JP5158447B2 publication Critical patent/JP5158447B2/ja
Expired - Fee Related 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

本発明は、複数のコアを備えるプロセッサにタスク群を割り当てるためのタスク群割当方法、タスク群割当装置及びタスク群割当プログラム並びにタスク群割当方法によりタスク群が割り当てられたプロセッサ、タスク群割当装置を備えるプロセッサ及びタスク群割当装置を備えるコンピュータに関する。
プロセッサコアは、さまざまなアプリケーションを対象とできる汎用性を持っている。プロセッサコアを1チップに複数搭載した、マルチコアプロセッサは、汎用性を提供し、高性能かつ低消費電力を達成する。また、半導体の微細化の進展により、マルチコアプロセッサの製造が可能となった。
しかし、半導体の微細化の進展に伴って、チップ上の素子のばらつきが相対的に大きくなってきた。また、素子の故障が増加している。
そのため、プロセッサコア単位での、動作周波数、消費電力といったパラメータのばらつきも大きくなってきた。また、プロセッサコア単位での故障が増加している。
特開2006−133995号公報 特開2001−202397号公報 Thomas L. Adam, K. M. Chandy, J. R. Dickson, "A comparison of list schedules for parallel processing systems", Communications of the ACM, Volume 17, Issue 12, pp.685-690, December 1974. H. Kasahara, S. Narita, "Practical Multiprocessor Scheduling Algorithms for Efficient Parallel Processing", IEEE Trans. on Computers, Vol. C-33, No. 11, pp.1023-1029, Nov. 1984. Yu-Kwong Kwok and Ishfaq Ahmad, Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors, ACM Computing Surveys, Vol. 31, No. 4, December 1999. 「数理計画法―最適化の手法―」、一森哲男著、共立出版株式会社、1994の第1項〜第47項
関連技術の一例では、出荷前テストの際に、全チップ全コアで一律の基準を用いる。例えば、全チップ全コアに500MHz動作を要求する。一律基準を満たさない、あるいは故障しているコアが存在したらチップを破棄する。この基準では、チップ良品率は、「1コアの良品率」の「コア数」をべき数とする累乗となるため、コア間バラつきが増大すると、出荷チップ数が急速に減少する。
また、関連技術の他の一例では、冗長コアを設け、故障していなくて、かつ、一律基準を満たすコアが一定数以上のものを出荷する。例えば、8コア用意して、7コア動作するものを出荷する。この一例では、コアは通信を行い、かつタスクには実行時間制限があるので、特定のタスクの割当てについては、冗長コアを用意しても救済できない。つまり、タスクの割当てによってはチップは破棄される。
関連技術の更に他の一例では、基準を満たさないコア又は故障しているコアを非動作化しチップ全体を低グレード品として出荷する。例えば、8コア用意して、7コアが動作するチップを、8コアが動作するチップより低価格で販売する。この一例では、低グレード品の量を確保するため、高グレード品の量を多くする必要がある。そのため、この方法は、大ボリュームの市場でのみ適用可能である。また、この方法では、低グレード品の需要がある必要がある。そのため、デスクトップPCのCPU市場のように、多グレードの市場でのみ適用可能である。
また、製造後のタスクの割当変更に関する関連技術がある(例えば、特許文献1参照)。これは、実行時の誤動作や故障を回避するために、次に述べるようなことを行うものである。すなわち、実行時に、各コアの動作温度を測定し、優先度の順番に従って、温度の低いプロセッサから順にタスクを割り当てる。割当ての後、動作温度を予測し、予測温度が注意温度を超えるコアがあった場合は、そのコアからタスクを退避し、そのコアを停止する。高優先度のタスクが退避された場合は、高優先度のタスクを、最低温度のコアに、もともとあったタスクを高優先度のタスクに置き換える形で、再割当てする。
しかし、この関連技術は、上述のように、1つのタスクに対して優先度順でコアを割り当てていくため、複数のタスクが関係し、それらが実行時間制約を満たすというアプリケーションプログラムの要求を満たすようにタスクの割り当てを行うことができない。従って、チップの選別に用いることはできない。
加えて、1タスクずつ割り当てを行うため、再割り当てに時間がかかるという問題がある。また、1タスクずつ退避して割当てを行うならば、実行時間制約によって結ばれている複数タスクを同時に動かすことができない。従って、この方法では、最適なタスク群の割当てが行えない。
また、タスク割当に関する他の関連技術がある(例えば、特許文献2参照)。この関連技術では、あらかじめ与えられる仕様から、設計のためにタスクに対してIPを割り当てる(ここで、IPとは、再利用可能で売買可能なLSIの設計データのことであるが、ここではそれを拡張してLSIの機能モデル、ハードウェアモデル、ソフトウェアまでも意味する。)。割当ての方法としては、既存の方法を利用する。すなわち次のような割当てを行う。まず、アプリケーション(タスク群)、性能の要件、アーキテクチャのテンプレートを与える。次に、タスクに、ハードウェア又はソフトウェアのIPを、与えられたIP群から選んで割り当てる。この割り当てを全てのタスクに対して繰り返す。次に、性能の要件を満たすか否かを判定する。要件を満たさない場合は、要件を満たさないタスクに対し、割り当てるハードウェア又はソフトウェアのIPを変更し、性能の要件を満たすか否かの判断に戻る。性能の要件を満たすならば、IP及びそれに割り当てられたタスクを表す情報を出力する。
この関連技術を、製造後のチップの性能に応じたタスクの割り当てとチップの選別に用いるためには、以下のいずれかを行う必要がある。すなわち、一つは、何度もこの方法を適用して、大量の割当てをあらかじめ出しておき、割当てから、アプリケーションを実行可能なコア性能とコア配置を出しておき、製造後に当てはまるコア性能とコア配置を探して、割り当てと選別に用いるということ、もう一つは、製造後にこの方法を適用し、可能な割り当てがあればチップを出荷することである。
大量の割当てをあらかじめ出しておくとすると、条件を変えながら、割当てを出力することになる。従って条件が非常に多いので、時間がかかる。例えば、タスク0をPE0に縛り付けてタスク割当を行い、1つのコア性能とコア配置を出力して、これを満たすチップは出荷することにする。次に、タスク0をPE1に縛り付けてタスク割当を行う。そして、これを繰り返す。
また、製造後にこの関連技術の手法を適用し、可能な割り当てがあれば、チップを出荷し、なければ、チップを破棄する、という方法には、以下の問題がある。まず、条件を変えながら、割り当てが可能か不可能を試す、ということを繰り返す必要があり、選別に長時間を要するという問題がある。
更に、タスクに対してコアを割り当てる方法では、コアの選び方が単純なので、割当てが不可能になる場合が多く、救えるチップ数が減少するという問題がある。ここで、単純であるとは、1つのタスクに注目して、よさそうなコアを近視眼的に選ぶので、間違った選択をしやすいということである。
更に、タスクに対してIP(コア)を割り当てるので、タスク群に対してIP(コア)群を割り当てるようなことはなく、割当てのステップで貪欲にコアを割り当ててしまい、コアが足りなくなり、結果として割り当てが不可能になることが多く、救えるチップ数が減少するという問題がある。
更に、製造後にはIP(コア)とそのパラメータを自由に選べないということを考慮せず、貪欲にコアを割り当ててしまい、割当て変更ステップにおいて割り当て変更が不可能になることが多く、救えるチップ数が減少するという問題がある。
更に、条件(例:タスクを割り当てるコア)を変える際に、割当てが可能になるものに限定する、ということを行えないため、条件を単純に変えてしまい、結果として、割当てが不可能な条件のもとで割当ての試みを続けてしまう場合が多く、可能な割り当てに到達するまでに長時間を要するという問題がある。
関連技術をコアの選別に使った場合に次に示す何れかの方法を行わなければならないという課題がある。
そのうちの1つの方法は、関連技術のタスク割当の出力した割当てを出荷可否に用いる方法である。この方法では、救えるチップ数が減るという問題がある。この方法は、換言すれば、関連技術の手法で分布(コアの性能とコアの配置)を1つ出して、これを満たすチップだけ出荷するという選別を行うとする方法である。これは、本発明より厳しい制約条件を用いて選別することに対応する。その結果、救えるチップ数が少なくなるという問題が生ずる。
他の方法は、何度も関連技術の手法を適用して、大量の分布をあらかじめ出しておく方法である。この方法では、条件を変えながら、割当てを出力する。従って、条件が非常に多いので、時間がかかるという問題がある。例えば、タスク0をPE0に縛り付けてタスク割当を行い、1つの分布を出力して、これを満たすチップは出荷することにする。次に、タスク0をPE1に縛り付けてタスク割当を行い同様なことを行う。
更に他の方法は、製造後にタスク割当ての方法を適用する方法である。この方法では、救えるチップ数が減る。また、救えるチップを増やすためには、時間がかかる。すなわち、条件を変えながら、割当てが可能か不可能を試す、ということを繰り返す必要がある。また、割当てが可能になるように、タスクを割り当てるコアといった条件を変えられず、条件を単純に変えてしまい、割当てが不可能な条件のもとで割当ての試みを続けてしまう場合が多い。
そこで本発明は、マルチプロセッサに、性能がばらついているコア、動作しないコア、設計通りの性能を満たさないコアが存在しても、タスクの割り当てを工夫することで、実行するアプリケーションの要求を満たすことができるものは出荷すること、またその選別を高速に行うことを目的とする。また、それを実現する、タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータを提供することを目的とする。
本発明によれば、複数のコアを備えるプロセッサに、前記プロセッサが実行するアプリケーションに含まれるタスク群を割り当てるタスク群割当方法において、演算部が、前記コアの性能と前記コアの配置を抽出し、前記抽出されたコアの性能とコアの配置と、前記アプリケーションが実行可能であるか否かを対応付ける、制約条件を生成し、前記制約条件を参照して、あらかじめ前記複数のコアに割り当てられた前記タスク群を再度前記コアに割当てることを特徴とするタスク群割当方法が提供される。
また、本発明によれば、複数のコアを備えるプロセッサに、前記プロセッサが実行するアプリケーションに含まれるタスク群を割り当てるタスク群割当装置において、演算部が、前記コアの性能と前記コアの配置を抽出し、前記抽出されたコアの性能とコアの配置と、前記アプリケーションが実行可能であるか否かを対応付ける、制約条件を生成する手段と、前記制約条件を参照して、あらかじめ前記複数のコアに割り当てられた前記タスク群を再度前記コアに割当てる手段を有することを特徴とするタスク群割当装置が提供される。
更に、本発明によれば、複数のコアを備えるプロセッサに、前記プロセッサが実行するアプリケーションに含まれるタスク群を割り当てるタスク群割当装置としてコンピュータを機能させるためのタスク群割当プログラムにおいて、演算部が、前記コアの性能と前記コアの配置を抽出し、前記抽出されたコアの性能とコアの配置と、前記アプリケーションが実行可能であるか否かを対応付ける、制約条件を生成する手段と、前記制約条件を参照して、あらかじめ前記複数のコアに割り当てられた前記タスク群を再度前記コアに割当てる手段を有することを特徴とするタスク群割当装置としてコンピュータを機能させるためのタスク群割当プログラムが提供される。
更に、本発明によれば、上記のタスク群割当方法によりタスク群が割り当てられたプロセッサが提供される。
更に、本発明によれば、上記のタスク群割当方法を用いて、複数のコアを備えた半導体装置の出荷の可否を判定することを特徴とする半導体装置の選別方法が提供される。
更に、本発明によれば、上記のタスク群割当装置を備えることを特徴とするプロセッサが提供される。
更に、本発明によれば、上記のタスク群割当装置を備えることを特徴とするコンピュータが提供される。
本発明の効果は、出荷できるチップを増加させることができることである。
なぜなら、全チップ全コア一律の基準では破棄されるチップのうち、一部のチップを、タスクの配置を工夫することにより、アプリケーションの要求を満たして出荷することができるためである。
本発明の実施形態による割当装置の前半部の構成を示すブロック図である。 本発明の実施形態による割当装置の後半部の構成を示すブロック図である。 本発明の実施形態による割当方法の前半部を示すフローチャートである。 タスク間通信における時間的関係を示す第1の図である。 タスク間通信における時間的関係を示す第2の図である。 本発明の実施形態による割当方法の後半部を示すフローチャートである。 本発明の実施例における諸パラメータ及びタスクのコアへの初期割当を示す図である。 本発明の実施例における実測された動作速度を示す図である。 本発明の実施例におけるタスクのコアへの再割当てを行った後の割当てなどを示す図である。
符号の説明
101 処理装置
110 コア性能制約条件、タスク位置制約条件生成部
201〜205 記憶装置
210 アプリケーションタスク群
220 コア性能制約条件、タスク位置制約条件
230 実測コア性能
240 出荷可否
250 タスク配置
501 処理装置
510 出荷可否・タスク配置生成部
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
図1、図2は、本発明の実施形態によるタスク割当装置の構成を示すブロック図である。
図1を参照すると、記憶装置201には、アプリケーションのタスク群210が格納される。
処理装置101には、コア性能制約条件とタスク位置制約条件を生成するためのコア性能制約条件、タスク位置制約条件生成部110が配置されている。ここで、処理装置101は、コア性能制約条件と、タスク位置制約条件が生成できればよく、コア性能制約条件生成部と、タスク位置制約条件生成部が別々に構成されていても良い。
記憶装置202には、コア性能制約条件とタスク位置制約条件220が格納される。
記憶装置203には、チップ上の各コアの測定された性能(最高動作周波数)230が格納される。
処理装置501には、出荷可否・タスク配置生成部510が配置されている。ここで、処理装置501は、出荷可否の結果とタスク配置結果が出力できればよく、出荷可否生成部と、タスク位置生成部が別々に構成されていても良い。
記憶装置204には、出荷可否の結果240が格納される。
記憶装置205には、出荷が可能であるチップについて、各タスク群のコアへの割当てを示すタスク配置250が格納される。記憶装置205は、チップに含まれていても良いし、別のチップに含まれていても良い。
コア性能制約条件、タスク位置制約条件生成部110は、図3を参照して次に説明することを行う。
S100では、コア群への割当てを製造後に変更する、タスク群の集合Stasksetを決定する。最も厳しい制約条件を決定するタスク群がわかっている際はそのタスク群を用いる。わかっていない場合は、実行されるすべてのタスク群を、その集合とする。
S101では、タスク群をコア群に割り当てる。この割当てには関連技術の手法のいかなる手法を用いることができ、例えば、非特許文献1乃至3に記載された割当て方法を用いることができる。
タスク群は、同時に実行されるタスクの集合である。なお、本発明では、同一のコアに割り当てられたタスク群をタスク移動の単位とする。
S102では、割当ての結果を用いて、コアの性能の制約条件と、タスク群の位置関係の制約条件を線形不等式で表し、その条件を追加する。
具体的には、コアの実測性能を表す変数と、タスクの完了時刻(単位はサイクル)を表す定数と、タスク間の距離を表す変数と、データの転送時間を表す定数と、タスク間通信の余裕時間を表す定数と、タスク完了時刻の余裕時間を表す定数と、を含む線形不等式で表す。これについては後述する。ここで、タスク間通信の余裕時間とは、タスクAがタスクBにデータを渡す場合、タスクAの完了時刻に通信時間を足すことにより得られた時刻と、タスクBの開始時刻との差のことである。
Stasksetの全てのタスク群についてS101〜S102を適用する(S103)。
S104では、コアの性能の制約条件と、タスク群の位置関係の制約条件の線形不等式を出力する。
次に、S102において、コアの性能の制約条件と、タスク群の位置関係の制約条件を線形不等式で表現する点について図4及び図5を用いて説明する。
例えば、図4に示されているように、5つのタスクが3つのコアに割り当てられたとする。タスクT0が第1のタスク群を構成し、タスクT1とタスクT3が第2のタスク群を構成し、タスクT2とタスクT4が第3のタスク群を構成する。第1のタスク群がコア0に割り当てられ、第2のタスク群がコア1に割り当てられ、第3のタスク群がコア2に割り当てられている。
有向辺は依存を表す。例えば、E12はタスクT1が定義するデータD1をタスクT2が参照するというデータ依存を表し、E34はタスクT3が定義するデータD2をタスクT4が参照するというデータ依存を表す。
タスクT1の終了時刻にコア1とコア2との間の通信時間を加えることにより得られた時刻から、タスクT2の開始時刻までの時間が、タスクT1からタスクT2へのタスク間通信の余裕時間である。
同様に、タスクT3の終了時刻にコア1とコア2との間の通信時間を加えることにより得られた時刻から、タスクT4の開始時刻までの時間が、タスクT3からタスクT4へのタスク間通信の余裕時間である。
このような条件の下で、実行時間を決定する、実行時刻が最も遅いタスク(図4の例ではタスクT4)については、実行時間制限をタスク完了時刻の余裕時間を用いて表現する。すなわち、タスクT4の終了時刻が制限時刻を表す定数Tlimit(図4参照)を超えないようにタスク完了時刻の余裕時間を決定する。
連立線形不等式では、下記のことを表現する。
コア1について、周波数を落としていくと、D1の生成が遅くなっていくが、転送時間を加えてもT2の開始時刻に間に合うまでは、周波数を落としてもよい。
また、コア1について、周波数を落としていくと、D2の生成が遅くなっていくが、転送時間を加えてもT4の開始時刻に間に合うまでは、周波数を落としてもよい。
D1の生成時刻(単位は秒)はT1の完了時刻(単位はサイクル)とコアの周波数で表現する。
コア2について、周波数を落としていくと、T4の完了が遅くなっていくが、制限時刻に間に合うまでは、周波数を落としてもよい。
T4の完了時刻(単位は秒)はT4の完了時刻(単位はサイクル)とコアの周波数で表現する。
上記のことをイメージで示すと次の通りとなる。
T1の箱を下に伸ばしていく。T1の箱の下端に通信時間を足した時刻がT2の箱の上端を超えるまでは周波数を落とせる。また、T3の箱を下に伸ばしていく。T3の箱の下端に通信時間を足した時刻がT4の箱の上端を超えるまでは周波数を落とせる。
ここで、T1の箱を上下に伸ばしていき、T0の箱の下端に通信時間を足した時刻がT1の箱の上端を超えるまで、またはT1の箱の下端に通信時間を足した時刻がT2の箱の上端を超えるまでは周波数を落とせる、という表現方法もありうる。しかし、上下に伸ばすと、隣接コアの箱の、伸ばせる範囲に影響を与えるため、同時に複数のコアのタスクを考慮する必要が生じ、式が複雑になる。
すなわち、タスクの開始時刻は、不変とし、周波数によって、タスクの終了時刻のみが変化していくようにする。こうすることにより、タスクの終了時刻のみならずタスクの開始時刻も可変とする場合と比べ、問題を簡素に表現することが可能となる。
さらに、図5に示すように、3つのコアが横一列に並んでいるマルチコアを想定する。
コア間の通信時間は、コア0−コア1間、コア1−コア2間では1nsであり、コア0−コア2間では2nsであるとする。図5の様に2つのタスクが2つのコアに割り当てられたとする。有向辺は依存を表す。例えば、E11はタスクT10が定義するデータD10をタスクT11が参照するというデータ依存を表す。タスクT10の終了時刻を2nsとし、タスクT11の開始時刻を4nsとする。チップ製造後、この割当てを変更することを考える。
線形不等式で表現したいことは次に示すことである。 通信が間に合う距離にあるコアにタスクを割り当てなければならない。この場合は、タスクT10とタスクT11は、それぞれ、図5のようにコア0とコア1に割り当てられてもよいし、コア0とコア2に割り当てられても良い。しかし、コア0の周波数を落とした場合は、タスクT10とタスクT11は距離の近いコア(例えば、それぞれ、コア0とコア1)に割り当てねばならない場合がある。
割当てを変更した後の、コア間の距離はマンハッタン・ディスタンス(Manhattan distance)(x座標の差の絶対値とy座標の差の絶対値の和)を用いて表現する。
S101で各コアに割り当てられたタスク群を、別コアに割り当てることを考える。線形不等式で、割当変更後に満たすべき条件を表現する。
最初の割当てによって、コアi(iはコアにつけられた名前)に割り当てられたタスク群(例えば、図4、コア1に割り当てられたT1とT3)の、割当変更後のコアの座標が(a,b)である場合に1となる変数をPi,a,bと表す。コアは横Dx個、縦Dy個の2次元のタイル状に配置されているとする。割当変更後のx座標は整数で、0からDx−1の範囲にあるとする。y座標についても同様に0からDy−1の範囲にあるとする。
以下の式で、一つのタスク群が複数のコアにまたがらず、一つのコアに割り当てられることを表現する。
Figure 0005158447
Figure 0005158447
以下の式で、一つのコアにタスク群が、「全く割り当てられていないか、1つ割り当てられている」ことを表現する。
Figure 0005158447
コアiに割り当てられたタスク群の、割当変更後のx座標をVi,xと表す。以下の式で、Pi,0,0、Pi,0,1、…からVi,xを作る。
Figure 0005158447
割当変更後のy座標をVi,yと表す。以下の式で、Pi,0,0、Pi,0,1、…からVi,yを作る。
Figure 0005158447
次に、コアmとコアnのマンハッタン・ディスタンス(x座標の差の絶対値とy座標の差の絶対値の和)をHm,nと表す。以下の式で、Vm,x、Vm,y、Vn,x、Vn,yからマンハッタン・ディスタンスを生成する。
Figure 0005158447
マンハッタン・ディスタンスの例は次の通りとなる。
コアが2次元のタイル状に並んでいて、コア同士がメッシュ状のネットワークを用いて通信する場合は、(x1,y1)に位置するコアと(x2,y2)に位置するコアのマンハッタン・ディスタンスは、
Figure 0005158447
である。
次に、最初の割り当てによってコアiに割り当てられたタスク群の、割当変更後のコアの性能と、割当変更後のタスク間の位置関係を考慮した上で、データの受け渡しが間に合う、という制約を以下の式で表す。(x,y)座標に位置するコアの製造後の性能の実測値を、変数としてFfabx,yで表す。
Ti,pはコアiに割り当てられたタスク群のp番目のタスクが完了する時刻(単位はサイクル)を表す。Ti,p/Ffabx,yによって、コアiに割り当てられたタスク群が(x,y)座標に位置するコアで実行された際の完了時刻(単位は秒)を表現する。Lhopはネットワークの1ホップ(1−hop)の遅延時間である。最初のタスク割当時のコアiの想定周波数をFpreiで表す。最初のタスク割当時のコアiに割り当てられたタスク群とコアjに割り当てられたタスク群のマンハッタン・ディスタンスをHprei,jで表す。割当変更後の、コアiに割り当てられたタスク群とコアjに割り当てられたタスク群のマンハッタン・ディスタンスをHi,jで表す。Hi,j、Hprei,jはタスク間通信があるコア間についてのみ式に含める。Si,p,j,qはコアiに割り当てられた第p番目のタスクとコアjに割り当てられた第q番目のタスク間通信の余裕時間(単位は秒)を表す。タスク間通信1個につき1個の式が存在する。
Figure 0005158447
最初の割り当てによってコアiに割り当てられたタスク群が実行時間要件を満たす、という制約を以下の式で表す。S’i,pはコアiに割り当てられた第p番目のタスクの、タスク終了時刻の余裕時間(単位は秒)を表す。データの通信により決まる順序において、最も遅いタスク1個につき、1個の式が存在する。図4の例ではT2の式とT4の式の2つの式が存在する。
Figure 0005158447
次に、出荷可否・タスク配置生成部510の動作を図6を参照して説明する。
S501では、コアの性能の制約条件と、タスクの位置関係の制約条件とを表した線形不等式に、コアの性能の実測値を代入したものを解く。解く方法としては、シンプレックス法(例えば、非特許文献4)を整数解に応用したものや、分枝限定法を利用することができる。
S502では、解が存在するかを判定する。
S503では、解が存在するので出荷可と判定し、タスクのコアへの配置を出力する。
配置は解から得られる。
S504では、解が存在しないので出荷不可と判定する。
次に、図6のS501の説明をする。
各コアの性能(例えば動作周波数)を、チップの製造後に測定する。あるコアが故障していて動作しない場合は性能をゼロとする。この値をFfabx,yに代入する。すると、S104で作成した不等式が、連立1次不等式(連立線形不等式)になる。この線形不等式を満たす解があるか否かという問題(feasibility problem)を解く。この問題を解くと、通常、解がない、という答えが得られるか、解が1つ得られる。解は、アプリケーション要件を満たすような、タスク群の、コアへの新たな配置に対応する。
この問題は、例えば、最大化(あるいは最小化)する目的の式を無意味なものに設定した(例えば、
Figure 0005158447
の)整数計画問題として解くことができる。
解く方法としては、シンプレックス法を整数解に応用したものや分枝限定法を利用することができる。
応用例として、例えば、隣接2×2コアをコアの1つのクラスタとしてまとめて扱って、線形不等式の変数の数を減らし、feasibility problemを解くのにかかる時間を減らすことができる。この場合、コアの代わりに、クラスタを用いて、線形不等式を求める。この場合、コアのクラスタの、製造後に測定した性能は、例えば、コアのクラスタの要素の性能のうち最小のものを用いる。
本実施形態によれば、例えばチップ上にある基準を満たさない少数の低性能コアが存在しても、チップ上に基準を満たす多数の高性能コアが存在していれば、低性能コアに、実行時間制限が緩いタスク群を割り当て、高性能コアに、実行時間制限が厳しいタスク群を割り当てることで、実行するアプリケーションが要件を満たすようにできる。
ここで、実行するアプリケーションとは、タスクの集合からなり、タスクは、データを定義したり参照したりすることで相互に通信を行う。通信はタスク開始時・終了時に起こる。ここで、「タスク」の粒度は限定しない。例えば、タスクの粒度として、プロセス、スレッド、命令列、命令を採用することができる。そして、実行時間制約を取得する。例えば、ある作業(例:音声認識処理)を、ある時間(例:1ms)で終わらせなければならないという実行時間制約を取得する。
アプリケーションは、例えば、あるチップを使用する機器を製造するセットメーカーが持っている、そのチップ上で動作させるアプリケーションである。セットメーカーの要求は、チップがアプリケーションを、ある要件を満たした上で実行できることである。今までは、余裕をもった判断基準で、チップが出荷できるか否かを判定していた。本発明では、この要求に、より厳密に従った判断基準によって、チップが出荷できるか否かを判定する。すなわち、アプリケーションのタスクのコアへの割当てを工夫することで、要件を満たせるチップを出荷する。これによって、今まで破棄されていたチップを救済することが可能となる。
また、コアの性能・コアの配置と、アプリケーションが要件を満たすことが可能であるか否かを対応付ける制約条件は、例えば、アプリケーションが要件を満たすという条件を表現した線形不等式が考えられる。具体的には、コアの性能とタスク群の位置関係を表現した線形不等式である。ここで、コアの性能とは、コアがあるタスクを実行する上で必要な、それぞれのコアが有する性質であり、例えば、コアの周波数や、コアの消費電力等である。
そして、チップ製造後、チップ上の各コアの性能を測定する。連立線形不等式に、測定された性能を代入し、解を求める。解が得られた場合が出荷できる場合である。出荷できると判断された場合は、連立線形不等式の解が、要件を満たすようなアプリケーションのタスク群の各コアへの配置を示している。この配置をチップに記録してチップを出荷する。
また、使用時に故障を検出してから、配置を変更して故障コアの切り離しをすることも可能である。すなわち、使用時に、故障したチップの動作周波数をゼロにして線形不等式を解くことにより、故障したチップにタスク群を割り当てない配置を求めることもできる。
本実施形態の効果としては次に示すようなものが得られる。
第1の効果は、出荷チップ数を増加させることができることである。その理由は次の通りである。
全チップ全コア一律の基準では破棄されるチップのうち、ある量を、タスクの配置を工夫することでアプリケーションの要求を満たして出荷するからである。
また、冗長コアを用いても救済できないようなタスク割当により破棄されるチップのうち、ある量を、タスクの割り当て自身を工夫することで出荷するからである。
更に、高グレード品の量が少ない、または、低グレード品の需要が存在しない市場においては破棄されるチップのうち、ある量を、タスクの配置を工夫することで出荷するからである。
更に、線形不等式を用いることで、出荷できる割当てを網羅的に探すことができるからである。
第2の効果は、高速に選別を行うことができることである。なぜなら、線形不等式を用いることで、出荷できる割り当てを効率的に探すことができるからである。
図7に示すように、9個のコアが縦3行×横3列のタイル状に並んだマルチコアプロセッサを考える。コア間は、メッシュ状のネットワークで通信を行うとする。全コアを1000MHzで動作するよう製造する。
ステップS101において、タスク群をスケジュールする。図7にその結果を示す。2次元空間における位置は、タスク群が割り当てられたコアを示す。例えば、タスクT11は、(0,2)のコアに割り当てられている。
ステップS102において、タスクの処理量(図7でタスクの右上に示す。単位はサイクル)、タスク間通信(図7でタスクを結ぶ線)におけるマンハッタン・ディスタンス(線の左に示す)、各タスク間の余裕時間(線の右に示す。単位はns)、最後のタスクの余裕時間(タスクの右下に示す。単位はns)を求める。
ステップS103において、すべてのタスク群を割り当てたのでステップS104に進む。
ステップS104で、ステップS102で求められた条件を「かつ」条件で合わせたものを出力する。出力結果である線形不等式は以下の通りとなる。
Figure 0005158447
Figure 0005158447
Figure 0005158447
Figure 0005158447
Figure 0005158447
Figure 0005158447
Figure 0005158447
Figure 0005158447
Figure 0005158447
上式において、データ通信の際、1ホップで10nsかかるとする。また、1000Mhzのときは1サイクルは1nsかかる。更に、Ffabの単位はGHzである。
全コアが1000MHzで動作するようにチップを製造するとする。
ステップS501で、製造後のチップの各コアの動作周波数の最大値を測定する。図8は動作周波数の最大値を示す。例えば、(0,2)に位置するコアは最大980MHzで動作する。(2,2)に位置するコアは故障していて動作しない。この最大動作周波数を、連立線形不等式のFfabに代入する。
ステップS502で、この連立線形不等式の解があるかないかを判定する。例えば、分枝限定法で求めることができる。例えば、連立線形不等式を整数計画問題とみなし、さらに線形計画問題とみなし、線形計画問題の解の近傍の格子点を求め、その格子点が整数計画問題の条件を満たすか判定して、整数計画問題の解とする、という方法で求めることができる。
そして、この場合、解は存在する。
解の一つは、以下のとおり:
Figure 0005158447
図9はこの解に対応するタスク群のコアへの割当てを示す。つまり、図7に示す最初の割当てを変更して、図9に示す割当てにすることで、このチップを出荷することができる。ステップS503で、このチップを出荷可とし、この配置をチップに記録する。
本発明では、出荷チップ数を増加させることができる。その理由は下記の通りである。
まず、一つのタスクに対して順にコアを割り当てていく関連技術を考える。この関連技術は、1タスクずつ退避して割当てを行うため、実行時間制約によって結ばれている複数タスクを同時に動かすことができず、出荷できるような割り当てを発見できずにチップを破棄する可能性がある。一方で、本発明は、タスクの割当てを変更することによって、チップを出荷することができる。
図7を用いて例を示す。関連技術は、最初の割当てから始めて、T16を(0,0)に移動しようと試みる。この場合、T16からT17へのデータの通信が間に合わなくなり、実行時間制約を満たせなくなる。このため、関連技術は、T16を移動することを断念する。その結果、出荷できるような割り当てを発見できずに、チップを破棄する可能性がある。
全コア全チップ一律基準を、最大動作周波数1000MHzとする。一律基準を全チップ全コアに適用する手法では、このチップは破棄される。一方で、本発明では、このチップはタスクの割当てを工夫することで出荷される。
一つのコアを冗長コアとする手法では、この例のタスクの割当てにおいては、このチップは破棄される。なぜなら、タスクT16が動作するコアが故障しているからである。一方、本発明では、タスクの割当てを変更することによって、チップを出荷することができる。
高グレード品の量が少ない、または、低グレード品の需要が存在しない市場においては、低グレード化の手法を用いることができないので、このチップは破棄される。一方で、本発明では、タスクの割当てを工夫することで出荷される。
また、本発明によれば、線形不等式を用いることで、出荷できる割当てを網羅的に探すことができる。
当該割当方法をコンピュータで実行し、これにより決定した割当てをプログラムのスケジューラで利用することができる。ここで、スケジューラは、プロセッサに実装されたものであってもよい。スケジューラは、ソフトウェア、ハードウェア又はこれらの組合せにより実現される。
また、割当方法を行う割当装置をプロセッサに実装し、プログラムを実行する際に、この割当装置が割当方法を行ってもよい。
更に、割当方法を行う割当装置をプロセッサ以外のコンピュータ内のICチップに実装し、プログラムを実行する際に、この割当装置が割当方法を行っても良い。
本願は、日本の特願2007−052841(2007年3月2日に出願)に基づいたものであり、又、特願2007−052841に基づくパリ条約の優先権を主張するものである。特願2007−052841の開示内容は、特願2007−052841を参照することにより本明細書に援用される。
本発明の代表的な実施形態が詳細に述べられたが、様々な変更(changes)、置き換え(substitutions)及び選択(alternatives)が請求項で定義された発明の精神と範囲から逸脱することなくなされることが理解されるべきである。また、仮にクレームが出願手続きにおいて補正されたとしても、クレームされた発明の均等の範囲は維持されるものと発明者は意図する。
本発明は、複数のコアを備えるプロセッサの歩留まりを上げるために利用することができる。

Claims (15)

  1. 複数のコアを備えるプロセッサに、前記プロセッサが実行するアプリケーションに含まれるタスク群を割り当てるタスク群割当方法において、
    演算部が、前記コアの性能と前記コアの配置を抽出し、前記抽出されたコアの性能とコアの配置と、前記アプリケーションが実行可能であるか否かを対応付ける、制約条件を生成し、
    前記制約条件を参照して、あらかじめ前記複数のコアに割り当てられた前記タスク群を再度前記コアに割当てることを特徴とするタスク群割当方法であって、
    演算部が、1つのタスク群は、1つのみのコアに割り当てられるという条件を記述した式を作成するステップと、
    演算部が、1つのコアに割り当てられるタスク群の数は、0又は1であるという条件を記述した式を作成するステップと、
    演算部が、各コアの座標を表す式を作成するステップと、
    演算部が、コア−コア間の距離を表す式を作成するステップと、
    演算部が、タスク群−タスク群間の各通信につき、タスクをどのコアに割り当てるかを示す変数に所定の乗数を乗じて得た項の和が、最大許容終了時間以下であることを記述した式を作成するステップと、
    演算部が、上記の式を連立させて解くことにより、各タスク群の割当先のコアを決定するステップと、
    を備えることを特徴とするタスク群割当方法。
  2. 請求項1に記載のタスク群割当方法において、
    演算部が、プロセッサ上のコアが設計上の速度で動作するという条件の下で所定のコアに割り当てられた各タスク群を、前記プロセッサ上のコアの実際の速度の下において、各タスク群の開始時刻を変えなくても、タスク間通信が行えるように、コアに再割当てすることを特徴とするタスク群割当方法。
  3. 請求項1又は2に記載のタスク群割当方法において、
    前記所定の乗数とは、タスク群に含まれる所定番目のタスクが終了するまでのサイクル数を、タスクが割り当てられたとされたコアの実測された最大動作周波数で除することにより得られた実測実行所要時間に、コア間通信の遅延時間を加算して得た数であることを特徴とするタスク群割当方法。
  4. 請求項1又は2に記載のタスク群割当方法において、
    前記最大許容終了時刻とは、タスク群に含まれる所定番目のタスクが終了するまでのサイクル数を、タスクを初期に割り当てられたコアの設計上の最大動作周波数で除することにより得られた設計実行所要時間に、コア間通信の遅延時間及び余裕時間を加算して得た時刻であることを特徴とするタスク群割当方法。
  5. 複数のコアを備えるプロセッサに、前記プロセッサが実行するアプリケーションに含まれるタスク群を割り当てるタスク群割当装置において、
    演算部が、前記コアの性能と前記コアの配置を抽出し、前記抽出されたコアの性能とコアの配置と、前記アプリケーションが実行可能であるか否かを対応付ける、制約条件を生成する手段と、
    前記制約条件を参照して、あらかじめ前記複数のコアに割り当てられた前記タスク群を再度前記コアに割当てる手段を有することを特徴とするタスク群割当装置であって、
    演算部が、1つのタスク群は、1つのみのコアに割り当てられるという条件を記述した式を作成する手段と、
    演算部が、1つのコアに割り当てられるタスク群の数は、0又は1であるという条件を記述した式を作成する手段と、
    演算部が、各コアの座標を表す式を作成する手段と、
    演算部が、コア−コア間の距離を表す式を作成する手段と、
    演算部が、タスク群−タスク群間の各通信につき、タスクをどのコアに割り当てるかを示す変数に所定の乗数を乗じて得た項の和が、最大許容終了時間以下であることを記述した式を作成する手段と、
    演算部が、上記の式を連立させて解くことにより、各タスク群の割当先のコアを決定する手段と、
    を備えることを特徴とするタスク群割当装置。
  6. 請求項に記載のタスク群割当装置において、
    演算部が、プロセッサ上のコアが設計上の速度で動作するという条件の下で所定のコアに割り当てられた各タスク群を、前記プロセッサ上のコアの実際の速度の下において、各タスク群の開始時刻を変えなくても、タスク間通信が行えるように、コアに再割当てすることを特徴とするタスク群割当装置。
  7. 請求項5又は6に記載のタスク群割当装置において、
    前記所定の乗数とは、タスク群に含まれる所定番目のタスクが終了するまでのサイクル数を、タスクが割り当てられたとされたコアの実測された最大動作周波数で除することにより得られた実測実行所要時間に、コア間通信の遅延時間を加算して得た数であることを特徴とするタスク群割当装置。
  8. 請求項5又は6に記載のタスク群割当装置において、
    前記最大許容終了時刻とは、タスク群に含まれる所定番目のタスクが終了するまでのサイクル数を、タスクを初期に割り当てられたコアの設計上の最大動作周波数で除することにより得られた設計実行所要時間に、コア間通信の遅延時間及び余裕時間を加算して得た時刻であることを特徴とするタスク群割当装置。
  9. 複数のコアを備えるプロセッサに、前記プロセッサが実行するアプリケーションに含まれるタスク群を割り当てるタスク群割当装置としてコンピュータを機能させるためのタスク群割当プログラムにおいて、
    演算部が、前記コアの性能と前記コアの配置を抽出し、前記抽出されたコアの性能とコアの配置と、前記アプリケーションが実行可能であるか否かを対応付ける、制約条件を生成する手段と、
    前記制約条件を参照して、あらかじめ前記複数のコアに割り当てられた前記タスク群を再度前記コアに割当てる手段を有することを特徴とするタスク群割当装置としてコンピュータを機能させるためのタスク群割当プログラムであって、
    演算部が、1つのタスク群は、1つのみのコアに割り当てられるという条件を記述した式を作成する手段と、
    演算部が、1つのコアに割り当てられるタスク群の数は、0又は1であるという条件を記述した式を作成する手段と、
    演算部が、各コアの座標を表す式を作成する手段と、
    演算部が、コア−コア間の距離を表す式を作成する手段と、
    演算部が、タスク群−タスク群間の各通信につき、タスクをどのコアに割り当てるかを示す変数に所定の乗数を乗じて得た項の和が、最大許容終了時間以下であることを記述した式を作成する手段と、
    演算部が、上記の式を連立させて解くことにより、各タスク群の割当先のコアを決定する手段と、
    を備えることを特徴とするタスク群割当プログラム。
  10. 請求項に記載のタスク群割当プログラムにおいて、
    演算部が、プロセッサ上のコアが設計上の速度で動作するという条件の下で所定のコアに割り当てられた各タスク群を、前記プロセッサ上のコアの実際の速度の下において、各タスク群の開始時刻を変えなくても、タスク間通信が行えるように、コアに再割当てすることを特徴とするタスク群割当プログラム。
  11. 請求項9又は10に記載のタスク群割当プログラムにおいて、
    前記所定の乗数とは、タスク群に含まれる所定番目のタスクが終了するまでのサイクル数を、タスクが割り当てられたとされたコアの実測された最大動作周波数で除することにより得られた実測実行所要時間に、コア間通信の遅延時間を加算して得た数であることを特徴とするタスク群割当プログラム。
  12. 請求項9又は10に記載のタスク群割当プログラムにおいて、
    前記最大許容終了時刻とは、タスク群に含まれる所定番目のタスクが終了するまでのサイクル数を、タスクを初期に割り当てられたコアの設計上の最大動作周波数で除することにより得られた設計実行所要時間に、コア間通信の遅延時間及び余裕時間を加算して得た時刻であることを特徴とするタスク群割当プログラム。
  13. 請求項1乃至の何れか1項に記載のタスク群割当方法を用いて、複数のコアを備えた半導体装置の出荷の可否を判定することを特徴とする半導体装置の選別方法。
  14. 請求項乃至の何れか1項に記載のタスク群割当装置を備えることを特徴とするプロセッサ。
  15. 請求項乃至の何れか1項に記載のタスク群割当装置を備えることを特徴とするコンピュータ。
JP2009502485A 2007-03-02 2008-02-05 タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ Expired - Fee Related JP5158447B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009502485A JP5158447B2 (ja) 2007-03-02 2008-02-05 タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007052841 2007-03-02
JP2007052841 2007-03-02
JP2009502485A JP5158447B2 (ja) 2007-03-02 2008-02-05 タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ
PCT/JP2008/051832 WO2008108133A1 (ja) 2007-03-02 2008-02-05 タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ

Publications (2)

Publication Number Publication Date
JPWO2008108133A1 JPWO2008108133A1 (ja) 2010-06-10
JP5158447B2 true JP5158447B2 (ja) 2013-03-06

Family

ID=39738030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009502485A Expired - Fee Related JP5158447B2 (ja) 2007-03-02 2008-02-05 タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ

Country Status (3)

Country Link
US (1) US8429663B2 (ja)
JP (1) JP5158447B2 (ja)
WO (1) WO2008108133A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211331A (ja) * 2009-03-06 2010-09-24 Nec Corp 業務管理システム、管理装置、業務管理方法、プログラム及び記録媒体
US9250973B2 (en) 2009-03-12 2016-02-02 Polycore Software, Inc. Apparatus and associated methodology of generating a multi-core communications topology
CN102105866B (zh) * 2009-05-25 2014-02-26 松下电器产业株式会社 多处理器系统、多处理器控制方法、以及多处理器集成电路
KR101640848B1 (ko) * 2009-12-28 2016-07-29 삼성전자주식회사 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
KR101651871B1 (ko) * 2009-12-28 2016-09-09 삼성전자주식회사 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
WO2011155047A1 (ja) * 2010-06-10 2011-12-15 富士通株式会社 マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム
US9158592B2 (en) 2011-05-02 2015-10-13 Green Hills Software, Inc. System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor
EP2615511A1 (de) * 2012-01-12 2013-07-17 Siemens Aktiengesellschaft Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
EP2911055A4 (en) * 2012-10-18 2016-01-20 Toyota Motor Co Ltd PARALLEL COMPUTER DEVICE
US20140344827A1 (en) * 2013-05-16 2014-11-20 Nvidia Corporation System, method, and computer program product for scheduling a task to be performed by at least one processor core
CN104572272B (zh) * 2013-10-12 2018-02-09 杭州华为数字技术有限公司 一种任务调度方法、装置及系统
US9250953B2 (en) 2013-11-12 2016-02-02 Oxide Interactive Llc Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system
US9632844B2 (en) * 2013-12-12 2017-04-25 International Business Machines Corporation Non-preemption of a group of interchangeable tasks in a computing device
JP6492779B2 (ja) * 2015-03-05 2019-04-03 富士通株式会社 マッピング情報生成プログラム、マッピング情報生成方法、及びマッピング情報生成装置
US10241842B2 (en) * 2016-09-29 2019-03-26 Intel Corporation Cloud container resource binding and tasking using keys
US10929177B2 (en) 2016-10-28 2021-02-23 Synopsys, Inc. Managing resources for multiple trial distributed processing tasks
US11126467B2 (en) * 2017-12-08 2021-09-21 Salesforce.Com, Inc. Proactive load-balancing using retroactive work refusal
CN108259568B (zh) * 2017-12-22 2021-05-04 东软集团股份有限公司 任务分配方法、装置、计算机可读存储介质及电子设备
CN110514982B (zh) * 2019-08-22 2022-03-22 上海兆芯集成电路有限公司 性能分析系统与方法
CN110750350B (zh) * 2019-10-29 2022-08-16 广东浪潮大数据研究有限公司 一种大资源调度方法、系统、装置及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628323A (ja) * 1992-07-06 1994-02-04 Nippon Telegr & Teleph Corp <Ntt> プロセス実行制御方法
JPH0675786A (ja) * 1992-08-26 1994-03-18 Hitachi Ltd タスクスケジュリング方法
JP2006133995A (ja) * 2004-11-04 2006-05-25 Toshiba Corp プロセッサシステム及びその制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202397A (ja) 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
CA2365729A1 (en) * 2001-12-20 2003-06-20 Platform Computing (Barbados) Inc. Topology aware scheduling for a multiprocessor system
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
US20060218428A1 (en) * 2005-03-22 2006-09-28 Hurd Kevin A Systems and methods for operating within operating condition limits
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US7992151B2 (en) * 2006-11-30 2011-08-02 Intel Corporation Methods and apparatuses for core allocations
US8028286B2 (en) * 2006-11-30 2011-09-27 Oracle America, Inc. Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628323A (ja) * 1992-07-06 1994-02-04 Nippon Telegr & Teleph Corp <Ntt> プロセス実行制御方法
JPH0675786A (ja) * 1992-08-26 1994-03-18 Hitachi Ltd タスクスケジュリング方法
JP2006133995A (ja) * 2004-11-04 2006-05-25 Toshiba Corp プロセッサシステム及びその制御方法

Also Published As

Publication number Publication date
JPWO2008108133A1 (ja) 2010-06-10
US8429663B2 (en) 2013-04-23
US20100100886A1 (en) 2010-04-22
WO2008108133A1 (ja) 2008-09-12

Similar Documents

Publication Publication Date Title
JP5158447B2 (ja) タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ
CN111247533B (zh) 用于神经网络加速的机器学习运行时库
Babulak et al. Discrete event simulation
US9946563B2 (en) Batch scheduler management of virtual machines
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
WO2016078008A1 (zh) 调度数据流任务的方法和装置
US20220164222A1 (en) Execution of Services Concurrently
CN1737808A (zh) 用于掩模版的智能自动化管理的方法和系统
Rewers et al. A study of priority rules for a levelled production plan
US20240046168A1 (en) Data processing method and apparatus
CN103856548A (zh) 动态资源调度方法和动态资源调度器
Bassiri et al. Mitigating reconfiguration overhead in on-line task scheduling for reconfigurable computing systems
US7913206B1 (en) Method and mechanism for performing partitioning of DRC operations
Rossi et al. A metaheuristic for the fixed job scheduling problem under spread time constraints
Pei et al. Minimizing the makespan for a serial-batching scheduling problem with arbitrary machine breakdown and dynamic job arrival
US10042971B1 (en) Placement and routing of clock signals for a circuit design
Mollajafari An efficient lightweight algorithm for scheduling tasks onto dynamically reconfigurable hardware using graph-oriented simulated annealing
Huang et al. An iterative expanding and shrinking process for processor allocation in mixed-parallel workflow scheduling
Pan et al. A fast MER enumeration algorithm for online task placement on reconfigurable FPGAs
van Pinxten et al. Parametric critical path analysis for event networks with minimal and maximal time lags
JP6951962B2 (ja) OpenCLカーネルを処理する方法、及びそれを遂行するコンピューティング装置
Kim et al. Effective task scheduling for embedded systems using iterative cluster slack optimization
JP5686477B2 (ja) スケジュール作成方法及びスケジュール作成プログラム、並びにスケジュール作成装置
Enemali et al. A placement management circuit for efficient realtime hardware reuse on FPGAs targeting reliable autonomous systems
Ben Abdellafou et al. Heuristic algorithms for scheduling intrees on m machines with non-availability constraints

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20101020

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120723

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120824

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: 20121115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121128

R150 Certificate of patent or registration of utility model

Ref document number: 5158447

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees