JPH05250338A - マルチプロセッサシステムのタスク割当処理方法 - Google Patents

マルチプロセッサシステムのタスク割当処理方法

Info

Publication number
JPH05250338A
JPH05250338A JP4048176A JP4817692A JPH05250338A JP H05250338 A JPH05250338 A JP H05250338A JP 4048176 A JP4048176 A JP 4048176A JP 4817692 A JP4817692 A JP 4817692A JP H05250338 A JPH05250338 A JP H05250338A
Authority
JP
Japan
Prior art keywords
task
tasks
time
communication
processing method
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
JP4048176A
Other languages
English (en)
Inventor
Seiichi Konya
精一 紺谷
Tetsuji Sato
哲司 佐藤
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP4048176A priority Critical patent/JPH05250338A/ja
Publication of JPH05250338A publication Critical patent/JPH05250338A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 通信路で結合されたマルチプロセッサのタス
ク割当を高精度に行ない、タスクグラフの完了時間の最
小化を正しく行なう。 【構成】 通信路で結合された複数のプロセッサに、入
力されたタスクグラフを割り当てるマルチプロセッサシ
ステムのタスク割当処理方法において、タスクグラフ内
の各タスク相互の先行関係と、タスクの処理量と、タス
ク間のデータ転送に要する通信時間とに基づき算出する
各タスクの開始時刻により、それぞれのタスクの割当を
行なう優先度を決定し、全ての先行タスクの割当が終了
したタスクの内で優先度の高いものから順次に、このタ
スクを最も早く起動するプロセッサを選定して、割当て
を行なう。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサが、
通信路を介して結合されたマルチプロセッサシステムの
タスク割当処理方法に係わり、特に、タスクグラフの完
了時間を最小化するのに好適なマルチプロセッサシステ
ムのタスク割当処理方法に関するものである。
【0002】
【従来の技術】与えられた処理を、マルチプロセッサを
用いて高速化するには、処理を、幾つかの部分に分割
し、各部分の実行を、個々のプロセッサに割り当てるこ
とが必要である。このような処理の分割単位をタスクと
呼び、各タスクの実行に必要な時間をタスクの処理時間
と呼ぶ。一般に、与えられた処理の実行には、複数のタ
スク間で、途中結果の引継ぎが必要となる。途中結果を
引き継ぐ必要のある二つのタスクを先行関係にあるとい
い、引き渡す方のタスクを先行タスク、受け取る方のタ
スクを後続タスクと呼ぶ。また、途中結果の大きさを転
送データ量で表現する。各タスクの処理時間と、各タス
ク間の先行関係、および、各タスク間の転送データ量で
示されるタスクグラフをマルチプロセッサで実行する
時、全てのタスクの実行が終了する時間である完了時間
は、タスクの割当に依存する。このような完了時間を最
小化するタスクの割当を行なうものが、タスク割当処理
である。
【0003】タスクをプロセッサに割り当てた時、タス
クが実行を始める時刻を起動時刻と呼ぶことにすると、
完了時間を最小化するためには、全てのタスクの起動時
刻を最小にすれば良い。しかし、同時に実行できるタス
ク数はプロセッサ数までであり、また、途中結果が必要
なタスクは、先行タスクが終了するまで実行できないと
いう制約があり、全てのタスクの起動時刻を最小にする
ことはできない。そのため、起動時刻の遅れが全体の完
了時間に及ぼす影響が大きいタスクを先に、また、影響
が小さいタスクを後に実行するように順序付ける必要が
ある。このような技術には、例えば、笠原博徳/成田誠
之助 共著「マルチプロセッサ・スケジューリング問題
に対する実用的な最適及び近似アルゴリズム」(信学
誌、Vol.J67−D、No.7. 1984年)の
pp.792〜799に記載のものがある。この技術
は、次の図5を用いて示すように、各タスクの優先度と
して、レベル(終了タスクからの最長パスの長さ)を用
いたタスク割当処理技術であり、通信を無視できる場合
は有効なものである。ここで、優先度とは、タスクをプ
ロセッサに割り当てる順序を決めるものである。
【0004】図5は、従来のタスク割当処理方法を示す
フローチャートである。まず、レベルの計算、すなわ
ち、終了タスクからの最長パスの長さの計算を、全ての
タスクについて行なう(ステップ501)。ここで、パ
スとは、通過するタスクの処理時間を合計したものであ
る。次に、各タスクの先行関係を調べて、タスクがレデ
ィであるか、すなわち、全ての先行タスクが終了したか
を判定するレディタスクの判定を行なう(ステップ50
2)。さらに、レディタスク、すなわち、全ての先行タ
スクが終了したタスクを、レベルの大きい順にソートし
て、リストの作成を行なう(ステップ503)。レベル
の値が同じ場合は、後続タスクの数が多いものを優先す
る。空きプロセッサの数の分だけ、リストの先頭からタ
スクを取り出し、割り当てるタスクの決定を行なう(ス
テップ504)。そして、空きプロセッサにタスクを割
り当て(ステップ505)、ステップ502に戻り、次
のタスクに対する処理を繰り返す。尚、タスクとプロセ
ッサの組み合わせは任意である。
【0005】一方、通信に要する時間、すなわち、通信
コストを考慮した場合について、タスクグラフの完了時
間の下限の計算と、その必要条件である各タスクの最遅
開始時刻の計算が、M.A.Al−Mouhamed
「Lower Boundson the Numbe
r of Processors and Timef
or Scheduling Precedence
Graphs with Communication
Costs」(IEEE Trans.on SE,
Vol.16,No.12.1990年)として知られ
ている。これは、タスクグラフの完了時間を、各タス
ク、および、その全ての先行タスクという局所的な条件
の下で、そのタスクの開始時刻を最小化するように、先
行タスクを同一のプロセッサにある、または、異なるプ
ロセッサにあるという二つの部分集合に分ける手順を繰
り返すことにより行なう。しかし、完了時間の下限を達
成するタスク割当に関しては述べられていない。
【0006】通信路を介して結合されたマルチプロセッ
サでは、異なるプロセッサに割り当てられたタスク間の
データ転送は、通信路を使った通信により行なわれるた
め、データ転送に必要な時間、すなわち、通信コストは
無視できない。また、同じ通信路を使った通信は、同時
に一つしか行なえない。さらに、一般的なマルチプロセ
ッサでは、プロセッサ間を結合する通信路の数が制限さ
れており、プロセッサ間で通信を行なう場合、幾つかの
通信路を経由することがある。このため、プロセッサ間
の通信では、それぞれの通信路が開放されるまで待たさ
れることが、すなわち、通信路競合がある。
【0007】このように、通信路を介して結合されたマ
ルチプロセッサにおいては、タスクの実行に、通信コス
トや通信路競合が影響を及ぼし、従来の技術では、割当
の優先度や、プロセッサの選択において、誤った判断が
なされ、完了時間が大きくなる場合がある。例えば、先
行関係のある二つのタスクを、異なるプロセッサに割り
当てると、データ転送にかかる時間によって、後続のタ
スクの起動が遅れる。このように、通信コストが存在す
る場合には、完了時間への影響を、単純なタスクのレベ
ルで判断した場合には、誤った順序で、タスクを実行し
て完了時間を長くしてしまうことがある。また、タスク
をプロセッサに割り当てる際に、空きプロセッサを選択
するだけでは、先行タスクからの通信コストや、通信路
の競合により、タスクの起動が遅延されるという不利益
が生じる。
【0008】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、通信路を介して結合されたマル
チプロセッサにおいては、通信コストや通信路競合によ
る影響があり、正しいタスクの完了時間が判断できず、
タスクの割当の優先度や、プロセッサの選択を正しく行
なうことができない点である。本発明の目的は、これら
従来技術の課題を解決し、通信路で結合されたマルチプ
ロセッサのタスク割当を高精度に行ない、タスクグラフ
の完了時間の最小化を正しく行なうことを可能とするマ
ルチプロセッサシステムのタスク割当処理方法を提供す
ることである。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明のマルチプロセッサシステムのタスク割当処
理方法は、(1)通信路で結合された複数のプロセッサ
に、入力されたタスクグラフを割り当てるマルチプロセ
ッサシステムのタスク割当処理方法において、タスクグ
ラフ内の各タスク相互の先行関係と、タスクの処理量
と、タスク間のデータ転送に要する通信時間とに基づき
算出する各タスクの開始時刻により、それぞれのタスク
の割当を行なう優先度を決定し、全ての先行タスクの割
当が終了したタスクの内で優先度の高いものから順次
に、このタスクを最も早く起動するプロセッサを選定し
て、割当てを行なうことを特徴とする。また、(2)上
記(1)に記載のマルチプロセッサシステムのタスク割
当処理方法において、タスクを最も早く起動するプロセ
ッサの選定は、タスク間のデータ転送に使用される各プ
ロセッサ間の通信路からなる通信経路の開放時刻を選定
条件の一つとして行なうことを特徴とする。
【0010】
【作用】本発明においては、通信コストの存在する場合
には、最遅開始時刻、すなわち、タスクグラフ内の各タ
スク相互の先行関係と、タスクの処理量と、タスク間の
データ転送に要する通信時間とに基づき算出する各タス
クの開始時刻の小さいタスクほど、完了時間への影響が
大きいことに着目し、この最遅開始時刻を、タスク割当
の順序を決める優先度として、タスク割当を行なう。こ
のように、各タスクの最遅開始時刻を優先度とすること
で、通信の存在する場合について、各タスクの完了時間
への影響の大きさを正しく判定することができる。ま
た、割り当てたタスクの起動時刻は、先行タスクからの
データ転送に伴う通信コストや通信路競合によって影響
される場合があることから、全てのプロセッサの中か
ら、起動時刻の一番早いプロセッサを選んで、タスクを
割り当てる。このように、プロセッサの開放時刻だけで
なく、通信コスト、および、通信路競合による遅延を含
めたタスク起動時刻によって、配置するプロセッサを選
択することで、通信の影響を正しく考慮することができ
る。
【0011】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1は、本発明のマルチプロセッサシステム
のタスク割当処理方法の一実施例を示すフローチャート
であり、図2は、その実施に用いるマルチプロセッサシ
ステムの本発明に係わる構成の一実施例を示すブロック
図である。図2において、処理依頼部1は、マルチプロ
セッサにより実行するべき問題のタスクグラフを、外部
から入力し、かつ、実行した問題の結果を、外部へ出力
するものであり、また、処理実行部2は、複数のプロセ
ッサを通信路で結合したマルチプロセッサであり、そし
て、処理割当部3は、受け取ったタスクグラフを、本発
明に係わる処理方法に従って、処理実行部2に割り当て
るものである。マルチプロセッサにより実行されるべき
問題が、処理依頼部1から、タスクグラフとして入力さ
れ、処理割当部3に受け渡される。このタスクグラフに
は、各タスクの処理量、タスク間の先行関係、タスク間
の転送データ量が、グラフの形で表されている。以下、
処理依頼部1からタスクグラフが入力された処理割当部
3の処理動作を、図1のフローチャートを用いて説明す
る。
【0012】まず、図1の処理割当部3は、全てのタス
クについて、最遅開始時刻を計算する(ステップ10
1)。次に、先行タスクが既に割当てられていたり、最
初から存在しないタスクを、レディタスクとする(ステ
ップ102)。そして、これらのレディタスクの中か
ら、最遅開始時刻の一番小さいタスクを選び出す(ステ
ップ103)。このようにして選び出したタスクを、プ
ロセッサに仮想的に割当て、起動時刻を求める(ステッ
プ104)。尚、この起動時刻の計算手順は、後述する
図3で詳細に説明する。起動時刻の計算を、全てのプロ
セッサに対して行なうことにより(ステップ105)、
割当てるタスクが一番早く起動できるプロセッサを選択
し、選択したプロセッサに、タスクを実際に割当て、そ
のタスクをレディタスクから除く(ステップ106)。
以上の手順を、全てのタスクが割当てられるまで繰り返
し(ステップ107)、処理を終了する。このようにし
て、最遅開始時刻の小さいタスクから、かつ、全てのプ
ロセッサの中で起動時刻の一番早いプロセッサを選ん
で、タスクを割り当てることにより、通信の存在するマ
ルチプロセッサシステムにおいても、正しいタスクの割
当てを行なうことが可能となる。
【0013】次に、ステップ104における起動時刻の
計算処理の詳細を、図3を用いて説明する。図3は、図
1における各プロセッサのタスクの起動時刻を求める手
続きの一実施例を示すフローチャートである。本実施例
においては、割当てる最遅開始時刻が最小のレディタス
クと、そのタスクを仮想的に割当てるプロセッサが与え
られる。まず、そのプロセッサが利用可能になる時刻で
ある開放時刻を求める(ステップ301)。そして、割
当てるタスクの全ての先行タスクによる制約を調べるた
め、以下の手順を先行タスクについて繰り返す。先行タ
スクの終了時刻を求め(ステップ302)、通信経路の
開放時刻を計算し(ステップ303)、先行タスクから
割当てるタスクへの転送データに対応する通信コストを
計算する(ステップ304)。尚、この通信経路とは、
直接、通信路で結合されていない二つのプロセッサ間で
は、幾つかの通信路を経由して通信が行なわれるので、
その時に使用される複数の通信路のことをいう。また、
通信経路の開放時刻の計算は、後述する図4で説明す
る。このようにして計算したプロセッサの開放時刻と先
行タスクの終了時刻、および、通信経路の開放時刻によ
り、先行タスクによる制約を決定する(ステップ30
5)。すなわち、プロセッサの開放時刻と、先行タスク
の終了時刻と、通信経路の開放時刻との三つの内の最大
値に、通信コストを加えたものが、一つの先行タスクに
よる制約となる。次に、ステップ302に戻り、次の先
行タスクによる制約を決定する(ステップ306)。そ
して、全ての先行タスクによる制約を比較し、その最大
値を、割当てるタスクの起動時刻とする(ステップ30
7)。
【0014】次に、ステップ303における通信経路の
開放時刻の計算処理の詳細を、図4を用いて説明する。
図4は、図3における通信路の開放時刻を求める手続き
の一実施例を示すフローチャートである。この手続きに
は、割当てるタスクと、仮想的に割当てるプロセッサ、
および、割当てるタスクの一つの先行タスクが与えられ
る。まず、先行タスクが割当てられているプロセッサか
ら仮想的に割当てるプロセッサへの通信に使用される通
信路を求める(ステップ401)。次に、使用する全て
の通信路について、通信路が利用可能になる時刻である
開放時刻を求める(ステップ402、403)。通信経
路の開放時刻は、通信経路を構成する通信路の開放時刻
の最大値として求める(ステップ404)。
【0015】以上、図1〜図4を用いて説明したよう
に、本実施例のマルチプロセッサシステムのタスク割当
処理方法では、通信路で結合されたマルチプロセッサの
タスク割当において、通信コストと通信路競合の影響を
考慮することができ、タスクグラフの完了時間を最小化
する割当てを行なうことができる。尚、図1〜図4を用
いて説明した実施例は、本発明の一実施例を示すもので
あり、本発明は、これらに限定されるものではない。
【0016】
【発明の効果】本発明によれば、通信路で結合されたマ
ルチプロセッサのタスク割当を高精度に行ない、タスク
グラフの完了時間の最小化を正しく行なうことが可能で
ある。
【0017】
【図面の簡単な説明】
【図1】本発明のマルチプロセッサシステムのタスク割
当処理方法の一実施例を示すフローチャートである。
【図2】図1におけるタスク割当処理方法の実施に用い
るマルチプロセッサシステムの本発明に係わる構成の一
実施例を示すブロック図である。
【図3】図1における各プロセッサのタスクの起動時刻
を求める手続きの一実施例を示すフローチャートであ
る。
【図4】図3における通信路の開放時刻を求める手続き
の一実施例を示すフローチャートである。
【図5】従来のタスク割当処理方法を示すフローチャー
トである。
【符号の説明】
1 処理依頼部 2 処理実行部 3 処理割当部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 通信路で結合された複数のプロセッサ
    に、入力されたタスクグラフを割り当てるマルチプロセ
    ッサシステムのタスク割当処理方法において、上記タス
    クグラフ内の各タスク相互の先行関係と、タスクの処理
    量と、タスク間のデータ転送に要する通信時間とに基づ
    き算出する各タスクの開始時刻により、それぞれのタス
    クの割当を行なう優先度を決定し、全ての先行タスクの
    割当が終了したタスクの内で優先度の高いものから順次
    に、該タスクを最も早く起動するプロセッサを選定し
    て、割当てを行なうことを特徴とするマルチプロセッサ
    システムのタスク割当処理方法。
  2. 【請求項2】 請求項1に記載のマルチプロセッサシス
    テムのタスク割当処理方法において、上記タスクを最も
    早く起動するプロセッサの選定を、上記タスク間のデー
    タ転送に使用される各プロセッサ間の通信路からなる通
    信経路の開放時刻を選定条件の一つとして行なうことを
    特徴とするマルチプロセッサシステムのタスク割当処理
    方法。
JP4048176A 1992-03-05 1992-03-05 マルチプロセッサシステムのタスク割当処理方法 Pending JPH05250338A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4048176A JPH05250338A (ja) 1992-03-05 1992-03-05 マルチプロセッサシステムのタスク割当処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4048176A JPH05250338A (ja) 1992-03-05 1992-03-05 マルチプロセッサシステムのタスク割当処理方法

Publications (1)

Publication Number Publication Date
JPH05250338A true JPH05250338A (ja) 1993-09-28

Family

ID=12796081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4048176A Pending JPH05250338A (ja) 1992-03-05 1992-03-05 マルチプロセッサシステムのタスク割当処理方法

Country Status (1)

Country Link
JP (1) JPH05250338A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007140710A (ja) * 2005-11-15 2007-06-07 Sony Computer Entertainment Inc タスク割り当て方法およびタスク割り当て装置
KR100988395B1 (ko) * 2003-02-18 2010-10-18 마이크로소프트 코포레이션 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체
JP2014225137A (ja) * 2013-05-16 2014-12-04 株式会社デンソー タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100988395B1 (ko) * 2003-02-18 2010-10-18 마이크로소프트 코포레이션 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체
JP2007140710A (ja) * 2005-11-15 2007-06-07 Sony Computer Entertainment Inc タスク割り当て方法およびタスク割り当て装置
US7930339B2 (en) 2005-11-15 2011-04-19 Sony Computer Entertainment Inc. Task allocation method and task allocation apparatus
JP2014225137A (ja) * 2013-05-16 2014-12-04 株式会社デンソー タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法
US9274833B2 (en) 2013-05-16 2016-03-01 Denso Corporation Task scheduler, microprocessor, and task scheduling method

Similar Documents

Publication Publication Date Title
US8185908B2 (en) Dynamic scheduling in a distributed environment
JP2772304B2 (ja) 並列処理の負荷均一化方法
Hoang et al. Scheduling of DSP programs onto multiprocessors for maximum throughput
EP1538497B1 (en) Distributed real time operating system
US6633942B1 (en) Distributed real-time operating system providing integrated interrupt management
US6473780B1 (en) Scheduling of direct memory access
US20040015973A1 (en) Resource reservation for large-scale job scheduling
CN109561148A (zh) 边缘计算网络中基于有向无环图的分布式任务调度方法
CN109857535B (zh) 面向Spark JDBC的任务优先级控制的实现方法及装置
CN111258745B (zh) 一种任务处理方法及设备
JP2012181852A (ja) タスク処理のスケジューリング方法及びこの方法を適用するための装置
CN113051053B (zh) 异构资源调度方法、装置、设备和计算机可读存储介质
US5781787A (en) Parallel program execution time with message consolidation
US8473563B2 (en) Extensible scheduling of messages on time-triggered busses
US11347546B2 (en) Task scheduling method and device, and computer storage medium
US10514949B1 (en) Efficient data processing in a serverless environment
CN106569887B (zh) 一种云环境下细粒度任务调度方法
WO2024021489A1 (zh) 一种任务调度方法、装置及Kubernetes调度器
CN111367644A (zh) 一种面向异构融合系统的任务调度方法及装置
CA2433379A1 (en) Modulo scheduling of multiple instruction chains
CN115033357A (zh) 基于动态资源选择策略的微服务工作流调度方法及装置
CN110048966A (zh) 基于截止时间的最小化系统开销的Coflow调度方法
JPH05250338A (ja) マルチプロセッサシステムのタスク割当処理方法
CN113051064B (zh) 任务调度方法、装置、设备及存储介质
Horowitz A run-time execution model for referential integrity maintenance