JPH0675786A - タスクスケジュリング方法 - Google Patents
タスクスケジュリング方法Info
- Publication number
- JPH0675786A JPH0675786A JP4226896A JP22689692A JPH0675786A JP H0675786 A JPH0675786 A JP H0675786A JP 4226896 A JP4226896 A JP 4226896A JP 22689692 A JP22689692 A JP 22689692A JP H0675786 A JPH0675786 A JP H0675786A
- Authority
- JP
- Japan
- Prior art keywords
- task
- schedule
- data transfer
- time
- processors
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 本発明の目的は、プロセッサ間の通信路の性
能が均一でないタイプの超並列計算機に対するタスクス
ケジューリング方法を提供することにある。 【構成】 タスクの演算時間とタスク間のデータ転送量
の評価から各タスクをプロセッサ上にスケジュールする
ための優先順位を決め(105)、その優先順位に従っ
て各タスクをプロセッサ上にスケジュールし(10
7)、データ転送が必要なタスクについて、該スケジュ
ールで決まる割付プロセッサ間の通信路の速度とデータ
転送量からデータ転送時間を評価してスケジュールの優
先順位を再度計算し(1093)し、タスクスケジュー
ルを反復改良(109)する。 【効果】 本発明では、プロセッサ間の通信路の性能が
均一でないタイプの超並列計算機上で応用プログラムを
実行する場合の、タスクスケジュールを求めることがで
きる。また、反復改良機構により、より実行時間の短く
なるタスクスケジュールを選定することが可能である。
能が均一でないタイプの超並列計算機に対するタスクス
ケジューリング方法を提供することにある。 【構成】 タスクの演算時間とタスク間のデータ転送量
の評価から各タスクをプロセッサ上にスケジュールする
ための優先順位を決め(105)、その優先順位に従っ
て各タスクをプロセッサ上にスケジュールし(10
7)、データ転送が必要なタスクについて、該スケジュ
ールで決まる割付プロセッサ間の通信路の速度とデータ
転送量からデータ転送時間を評価してスケジュールの優
先順位を再度計算し(1093)し、タスクスケジュー
ルを反復改良(109)する。 【効果】 本発明では、プロセッサ間の通信路の性能が
均一でないタイプの超並列計算機上で応用プログラムを
実行する場合の、タスクスケジュールを求めることがで
きる。また、反復改良機構により、より実行時間の短く
なるタスクスケジュールを選定することが可能である。
Description
【0001】
【産業上の利用分野】本発明は、プログラムを分散記憶
型並列計算機上で効率的に実行させるために必要な、タ
スクスケジュリング方法に関する。
型並列計算機上で効率的に実行させるために必要な、タ
スクスケジュリング方法に関する。
【0002】
【従来の技術】超並列計算機は、今後の物理、化学およ
び工学の諸分野での大規模で多様な数値シミュレ−ショ
ンを効率良く実施するための有力手段として期待されて
いる。実用的な超並列計算機システム開発のための技術
課題の一つは自動マッピングである。マッピングとは、
並列性解析を行った後、プログラムをタスクに分割し、
そのタスク群を実行する順序と分担プロセッサを決定す
るスケジュリングを意味する。
び工学の諸分野での大規模で多様な数値シミュレ−ショ
ンを効率良く実施するための有力手段として期待されて
いる。実用的な超並列計算機システム開発のための技術
課題の一つは自動マッピングである。マッピングとは、
並列性解析を行った後、プログラムをタスクに分割し、
そのタスク群を実行する順序と分担プロセッサを決定す
るスケジュリングを意味する。
【0003】これまでに、任意のプロセッサ対の間の通
信路の性能は全て同じという前提のもとに、一般のプロ
グラムのタスクの構造を表したタスクグラフを任意の台
数のプロセッサにスケジュールする方法として、クリテ
ィカルパス法をベースとしたリストスケジュリング法が
用いられている。その一つが、アイ・イー・イー・イー
トランザクション オン コンピューターズ C−3
3 Nov.1984第1023頁から第1029頁
(IEEE Transacsion onCompu
ters, C−33, Nov.1984, pp.
1023−1029)において論じられている。そこで
は、クリティカルパス法によるタスクの優先順位付けで
複数のタスクが同一優先順位となる場合の解決法、すな
わち実用的な順序決定法などが述べられている。しか
し、本論文ではプロセッサ対の位置関係によってその通
信路の性能が異なる場合のスケジュール方法については
言及していない。
信路の性能は全て同じという前提のもとに、一般のプロ
グラムのタスクの構造を表したタスクグラフを任意の台
数のプロセッサにスケジュールする方法として、クリテ
ィカルパス法をベースとしたリストスケジュリング法が
用いられている。その一つが、アイ・イー・イー・イー
トランザクション オン コンピューターズ C−3
3 Nov.1984第1023頁から第1029頁
(IEEE Transacsion onCompu
ters, C−33, Nov.1984, pp.
1023−1029)において論じられている。そこで
は、クリティカルパス法によるタスクの優先順位付けで
複数のタスクが同一優先順位となる場合の解決法、すな
わち実用的な順序決定法などが述べられている。しか
し、本論文ではプロセッサ対の位置関係によってその通
信路の性能が異なる場合のスケジュール方法については
言及していない。
【0004】
【発明が解決しようとする課題】超並列計算機におい
て、プロセッサ台数が非常に多い場合はハードウェアコ
ストの都合上、全プロセッサ間に完全に均一な通信網を
設置することは一般に行なわれず、プロセッサを幾つか
のグループに分割し、グループ内とグループ間の通信機
構に性能の差があるものが多くなっている。このタイプ
の超並列機に対して、従来のリストスケジューリング法
を用いて実際の通信コストを正確に反映したスケジュー
ルを決定することは不可能であるという問題があった。
なぜなら、リストスケジュール法では、タスク割付優先
度をまず計算する必要があり、その計算に通信コストを
含めなければならない。しかし、真の通信コストは、送
信タスクと受信タスクを実行するプロセッサ同志がどの
ような相対位置関係になるか決まるまでは計算できない
からである。
て、プロセッサ台数が非常に多い場合はハードウェアコ
ストの都合上、全プロセッサ間に完全に均一な通信網を
設置することは一般に行なわれず、プロセッサを幾つか
のグループに分割し、グループ内とグループ間の通信機
構に性能の差があるものが多くなっている。このタイプ
の超並列機に対して、従来のリストスケジューリング法
を用いて実際の通信コストを正確に反映したスケジュー
ルを決定することは不可能であるという問題があった。
なぜなら、リストスケジュール法では、タスク割付優先
度をまず計算する必要があり、その計算に通信コストを
含めなければならない。しかし、真の通信コストは、送
信タスクと受信タスクを実行するプロセッサ同志がどの
ような相対位置関係になるか決まるまでは計算できない
からである。
【0005】本発明の目的は、プロセッサ間の通信路の
性能が均一でないタイプの超並列計算機に対するタスク
スケジューリング方法を提供することにある。
性能が均一でないタイプの超並列計算機に対するタスク
スケジューリング方法を提供することにある。
【0006】
【課題を解決するための手段】(a)各タスクの演算時間
とタスク間のデータ転送量の評価から各タスクをプロセ
ッサ上にスケジュールするための優先順位を決め、(b)
該優先順位に従って各タスクをプロセッサ上にスケジュ
ールし、(c)データ転送が必要なタスクについて、該ス
ケジュールで決まる割付プロセッサ間の通信路の速度と
データ転送量からデータ転送時間を評価し、(d)該転送
時間とタスクの演算時間からスケジュールの優先順位を
再度計算し、(e)処理(b)(c)(d)を繰り返し実行すること
によってスケジュールを決定するようにしたものであ
る。
とタスク間のデータ転送量の評価から各タスクをプロセ
ッサ上にスケジュールするための優先順位を決め、(b)
該優先順位に従って各タスクをプロセッサ上にスケジュ
ールし、(c)データ転送が必要なタスクについて、該ス
ケジュールで決まる割付プロセッサ間の通信路の速度と
データ転送量からデータ転送時間を評価し、(d)該転送
時間とタスクの演算時間からスケジュールの優先順位を
再度計算し、(e)処理(b)(c)(d)を繰り返し実行すること
によってスケジュールを決定するようにしたものであ
る。
【0007】
【作用】(a)各タスクの演算時間とタスク間のデータ転
送量の評価から各タスクをプロセッサ上にスケジュール
するための優先順位を決め、(b)該優先順位に従って各
タスクをプロセッサ上にスケジュールし、(c)データ転
送が必要なタスクについて、該スケジュールで決まる割
付プロセッサ間の通信路の速度とデータ転送量からデー
タ転送時間を評価し、(d)該転送時間とタスクの演算時
間からスケジュールの優先順位を再度計算し、(e)処理
(b)(c)(d)を繰り返し実行するので、タスクが割り付け
られるプロセッサ間の実際の通信時間がスケジュールに
次第に反映され、実機通信機構に適合するスケジュール
を得ることができる。
送量の評価から各タスクをプロセッサ上にスケジュール
するための優先順位を決め、(b)該優先順位に従って各
タスクをプロセッサ上にスケジュールし、(c)データ転
送が必要なタスクについて、該スケジュールで決まる割
付プロセッサ間の通信路の速度とデータ転送量からデー
タ転送時間を評価し、(d)該転送時間とタスクの演算時
間からスケジュールの優先順位を再度計算し、(e)処理
(b)(c)(d)を繰り返し実行するので、タスクが割り付け
られるプロセッサ間の実際の通信時間がスケジュールに
次第に反映され、実機通信機構に適合するスケジュール
を得ることができる。
【0008】
【実施例】以下、本発明の1実施例を図面を用いて説明
する。基本的なアイディアは次のようなものである。す
なわち、まず、プロセッサ間の通信路の性能は均一であ
ると仮定してタスクスケジュールの優先度を計算して、
初期スケジュールを決める。その結果、各タスクが割り
付けられるプロセッサが具体的に決まる。するとプロセ
ッサ間の各通信路の性能から実際のデータ転送時間が計
算できる。つまり、初期スケジュールではこのデータ転
送時間が真のものではなかった。初期スケジュール後に
はじめて真のデータ転送時間が計算できた。そこで、こ
の真の転送時間をタスク優先度計算に反映して再度計算
すれば、それを使うスケジュールは次第に実機の通信路
の性能を反映した正しいものになってゆくであろう。遅
い通信路で結ばれたタスクが多量のデータ転送を必要と
している場合には、使用するクリティカルパス法の性質
上高い優先度が与えられるようになるので、この反復を
繰り返すと、それらのタスクは次第に近いプロセッサ、
すなわち性能の高い通信路を持つプロセッサに集まるよ
うになるはずである。もちろんタスク間に実行順序の制
約が元々あるので、反復毎に処理時間が減少するスケジ
ュールが得られるとは限らず、振動することがあると考
えられる。しかし、この反復で得られるスケジュールの
うちから、より処理時間が短いスケジュールを選択する
ことができる。
する。基本的なアイディアは次のようなものである。す
なわち、まず、プロセッサ間の通信路の性能は均一であ
ると仮定してタスクスケジュールの優先度を計算して、
初期スケジュールを決める。その結果、各タスクが割り
付けられるプロセッサが具体的に決まる。するとプロセ
ッサ間の各通信路の性能から実際のデータ転送時間が計
算できる。つまり、初期スケジュールではこのデータ転
送時間が真のものではなかった。初期スケジュール後に
はじめて真のデータ転送時間が計算できた。そこで、こ
の真の転送時間をタスク優先度計算に反映して再度計算
すれば、それを使うスケジュールは次第に実機の通信路
の性能を反映した正しいものになってゆくであろう。遅
い通信路で結ばれたタスクが多量のデータ転送を必要と
している場合には、使用するクリティカルパス法の性質
上高い優先度が与えられるようになるので、この反復を
繰り返すと、それらのタスクは次第に近いプロセッサ、
すなわち性能の高い通信路を持つプロセッサに集まるよ
うになるはずである。もちろんタスク間に実行順序の制
約が元々あるので、反復毎に処理時間が減少するスケジ
ュールが得られるとは限らず、振動することがあると考
えられる。しかし、この反復で得られるスケジュールの
うちから、より処理時間が短いスケジュールを選択する
ことができる。
【0009】図1は本発明によるタスクスケジュリング
処理100の全体構成図である。101は対象とする応
用問題のソースプログラムである。このプログラムを処
理102で、分散記憶型並列機用にタスクに分割する。
処理103では、分割された個々のタスクの大きさ、す
なわちタスクの演算量と、元のプログラムをタスクに分
割したことによって必要となるタスク間のデータ転送量
を評価する。それが済むと、処理104でタスクグラフ
120を作成する。タスクグラフの構造は図3のようで
あるが、これは後に説明する。次に、処理105でタス
クグラフに記載されているタスクの演算量とタスク間の
データ転送量から、タスクをプロセッサにスケジュール
するための、タスクの優先順位を計算する。ここで述べ
るスケジュールとは、どのタスクをどのプロセッサにい
つ割り付けるかを指す。実際のスケジュールでは、この
優先順位の高いタスクを、現時点で空いており、かつ開
始時刻が最も早くなるプロセッサに優先的に割り付けて
ゆく。これを実行するのが処理107である。107は
プロセッサ台数情報106を用いる。
処理100の全体構成図である。101は対象とする応
用問題のソースプログラムである。このプログラムを処
理102で、分散記憶型並列機用にタスクに分割する。
処理103では、分割された個々のタスクの大きさ、す
なわちタスクの演算量と、元のプログラムをタスクに分
割したことによって必要となるタスク間のデータ転送量
を評価する。それが済むと、処理104でタスクグラフ
120を作成する。タスクグラフの構造は図3のようで
あるが、これは後に説明する。次に、処理105でタス
クグラフに記載されているタスクの演算量とタスク間の
データ転送量から、タスクをプロセッサにスケジュール
するための、タスクの優先順位を計算する。ここで述べ
るスケジュールとは、どのタスクをどのプロセッサにい
つ割り付けるかを指す。実際のスケジュールでは、この
優先順位の高いタスクを、現時点で空いており、かつ開
始時刻が最も早くなるプロセッサに優先的に割り付けて
ゆく。これを実行するのが処理107である。107は
プロセッサ台数情報106を用いる。
【0010】108は任意のプロセッサ対に対してその
間の通信路の速度情報を与えるものである。109で
は、107が作成したスケジュールを、108を使って
反復改良する。すなわち、107の結果、どのタスクが
どのプロセッサに割り付けられたが分かる。従って10
8の情報からタスク間のデータ転送時間が計算できる。
これを使って、より実機の通信性能を反映した、処理時
間の短くなるスケジュールを探索する。110では、1
09の反復改良で作成されたスケジュールのうち、処理
時間が最も短くなるものを選ぶ。112では、こうして
決定されたスケジュールでタスクを処理するための制御
コードを生成する。112で作られる制御コードのもと
で、入力データ111を使って並列計算機上での実行1
13を実施する。これにより、応用プログラムを効率よ
く並列実行させることができる。
間の通信路の速度情報を与えるものである。109で
は、107が作成したスケジュールを、108を使って
反復改良する。すなわち、107の結果、どのタスクが
どのプロセッサに割り付けられたが分かる。従って10
8の情報からタスク間のデータ転送時間が計算できる。
これを使って、より実機の通信性能を反映した、処理時
間の短くなるスケジュールを探索する。110では、1
09の反復改良で作成されたスケジュールのうち、処理
時間が最も短くなるものを選ぶ。112では、こうして
決定されたスケジュールでタスクを処理するための制御
コードを生成する。112で作られる制御コードのもと
で、入力データ111を使って並列計算機上での実行1
13を実施する。これにより、応用プログラムを効率よ
く並列実行させることができる。
【0011】図2は、本発明が対象とする超並列計算機
のネットワークの例である。プロセッサ201から20
2へデータ転送が必要な場合は通信路211だけを通れ
ばよい。しかし、201から203へデータ転送するに
は、さらに212を通らなければならない。されに20
4へ転送するには213を通る必要がある。このよう
に、データ転送が必要なプロセッサ対がどのような位置
関係にあるかによって通信経路に長短があり、通信コス
トが異なる。本発明ではこのような並列計算機用のスケ
ジュール方法を提供するものである。
のネットワークの例である。プロセッサ201から20
2へデータ転送が必要な場合は通信路211だけを通れ
ばよい。しかし、201から203へデータ転送するに
は、さらに212を通らなければならない。されに20
4へ転送するには213を通る必要がある。このよう
に、データ転送が必要なプロセッサ対がどのような位置
関係にあるかによって通信経路に長短があり、通信コス
トが異なる。本発明ではこのような並列計算機用のスケ
ジュール方法を提供するものである。
【0012】図3は、タスクグラフ120の構造を示し
たものである。T0やT1等のノードは各タスクを表
す。各タスクの左に記載された数値はそのタスクの演算
時間を示す。ノード間の矢印はタスクの実行順序を示
す。どのようにタスクがスケジュールされるにせよ、こ
の順序関係は守られなければならない。矢印の横に書か
れた数値は、タスク間のデータ転送量を示している。
たものである。T0やT1等のノードは各タスクを表
す。各タスクの左に記載された数値はそのタスクの演算
時間を示す。ノード間の矢印はタスクの実行順序を示
す。どのようにタスクがスケジュールされるにせよ、こ
の順序関係は守られなければならない。矢印の横に書か
れた数値は、タスク間のデータ転送量を示している。
【0013】図5は、プロセッサ間の通信コストモデル
108である。ここでは簡単のため、3台のプロセッサ
1081〜1083が通信路1085、1086で結合
された場合を取り上げる。プロセッサ間の通信時間Tは
T=b+a*Lで与えられる。Lは単位データ量当りの
データ転送時間、aはデータ転送量、bは通信立ち上が
りのオーバヘッド時間である。ここで、bは1081と
1082間、および1082と1083間では0である
が、1081と1083間では二つの通信路を通る必要
からb=1とする。
108である。ここでは簡単のため、3台のプロセッサ
1081〜1083が通信路1085、1086で結合
された場合を取り上げる。プロセッサ間の通信時間Tは
T=b+a*Lで与えられる。Lは単位データ量当りの
データ転送時間、aはデータ転送量、bは通信立ち上が
りのオーバヘッド時間である。ここで、bは1081と
1082間、および1082と1083間では0である
が、1081と1083間では二つの通信路を通る必要
からb=1とする。
【0014】図6は、タスク優先順位の計算105を示
したものである。1051では、タスクグラフ120の
中のいずれかのノードN1を取り出す。次に1052
で、出口ノードから、すなわちタスクグラフ120では
ノードT7からN1への全ての経路を取り出す。この時
の経路は矢印を逆にたどった経路を指す。具体的には、
もしN1としてノードT0が選ばれた場合にはT7から
の4つの経路が取り出される。次に1053にて、上記
経路の各々について、その経路上のノードの演算時間と
通信時間の合計Sを計算する。通信時間Tは、既に述べ
た通信コストモデル108に従って、T=b+a*Lで
計算される。aはタスクグラフの矢印の横に記載された
データ転送量である。その他のパラメータは、上記図5
の説明で既に述べてある。このうち、bは通信立ち上が
りオーバヘッド時間であるが、第1回目のタスク優先順
位計算時にはまだ割付プロセッサが具体的にきまらない
ので、bは全ての通信路で0とする。
したものである。1051では、タスクグラフ120の
中のいずれかのノードN1を取り出す。次に1052
で、出口ノードから、すなわちタスクグラフ120では
ノードT7からN1への全ての経路を取り出す。この時
の経路は矢印を逆にたどった経路を指す。具体的には、
もしN1としてノードT0が選ばれた場合にはT7から
の4つの経路が取り出される。次に1053にて、上記
経路の各々について、その経路上のノードの演算時間と
通信時間の合計Sを計算する。通信時間Tは、既に述べ
た通信コストモデル108に従って、T=b+a*Lで
計算される。aはタスクグラフの矢印の横に記載された
データ転送量である。その他のパラメータは、上記図5
の説明で既に述べてある。このうち、bは通信立ち上が
りオーバヘッド時間であるが、第1回目のタスク優先順
位計算時にはまだ割付プロセッサが具体的にきまらない
ので、bは全ての通信路で0とする。
【0015】1054では、上記経路に関するSの値の
最大値を算出し、それをノードN1のタスク優先度とす
る。1055の判定で、タスクグラフ内に未処理のノー
ドがあれば処理1051に戻る。全てのノードが処理済
みなら、1056にて、このタスク優先度の大きい順に
優先度が高くなるよう、タスク優先順位リストを作成す
る。もしも複数のタスクが同一優先度を持つ場合は、タ
スク番号の小さいものを優先する。1056の結果、タ
スク120に対しては、図4(a)に示すようなタスク
優先順位リストができる。
最大値を算出し、それをノードN1のタスク優先度とす
る。1055の判定で、タスクグラフ内に未処理のノー
ドがあれば処理1051に戻る。全てのノードが処理済
みなら、1056にて、このタスク優先度の大きい順に
優先度が高くなるよう、タスク優先順位リストを作成す
る。もしも複数のタスクが同一優先度を持つ場合は、タ
スク番号の小さいものを優先する。1056の結果、タ
スク120に対しては、図4(a)に示すようなタスク
優先順位リストができる。
【0016】図7は、上記タスク優先順位リストを用い
たスケジュールの生成107の詳細を説明したものであ
る。1071ではタスク優先順位リストから先頭のタス
クT0を取り出す。次に1072にて、T0をいずれか
のプロセッサの時刻0にスケジュールする。1073で
は、タスク優先順位リストの先頭タスク、この場合はT
0を削除し、現在の先頭タスクT1を取り出す。107
4にて、T1の先行タスク、すなわち、T1の直接の親
となっているタスクP1,P2,...,Pnを検出する。
次に、1075にて、各先行タスクPi(i=1,
2,...,n)からT1の割付プロセッサへのデータ転
送時間を計算する。T1の割付プロセッサはこの時点で
は未定であるので、全てのプロセッサを割付候補として
このデータ転送時間を計算する。その計算法は処理10
53での通信時間の計算法と同一である。次に1076
にて、各Piの終了時刻にPiからT1へのデータ転送
時間を加えた時間のうち、iに関する最大値をT1の可
能開始時刻とする。次に、1077にて、T1の割付プ
ロセッサの候補のうち、T1についての可能開始時刻が
最も早くなるものをT1の割付プロセッサと決定する。
1078ではタスク優先順位リストは空か否か判定し、
空でなければ残りのタスクについて処理1073を行
う。
たスケジュールの生成107の詳細を説明したものであ
る。1071ではタスク優先順位リストから先頭のタス
クT0を取り出す。次に1072にて、T0をいずれか
のプロセッサの時刻0にスケジュールする。1073で
は、タスク優先順位リストの先頭タスク、この場合はT
0を削除し、現在の先頭タスクT1を取り出す。107
4にて、T1の先行タスク、すなわち、T1の直接の親
となっているタスクP1,P2,...,Pnを検出する。
次に、1075にて、各先行タスクPi(i=1,
2,...,n)からT1の割付プロセッサへのデータ転
送時間を計算する。T1の割付プロセッサはこの時点で
は未定であるので、全てのプロセッサを割付候補として
このデータ転送時間を計算する。その計算法は処理10
53での通信時間の計算法と同一である。次に1076
にて、各Piの終了時刻にPiからT1へのデータ転送
時間を加えた時間のうち、iに関する最大値をT1の可
能開始時刻とする。次に、1077にて、T1の割付プ
ロセッサの候補のうち、T1についての可能開始時刻が
最も早くなるものをT1の割付プロセッサと決定する。
1078ではタスク優先順位リストは空か否か判定し、
空でなければ残りのタスクについて処理1073を行
う。
【0017】107のスケジュール生成により、タスク
グラフ120に対しては図4(b)のタイムチャートが
得られる。
グラフ120に対しては図4(b)のタイムチャートが
得られる。
【0018】図8は、タスクスケジュールの反復改良1
09を示したものである。1091では第1回目の10
7の処理で生成した初期スケジュールを読み込む。この
スケジュールにより各タスクの割付プロセッサが決って
いるので、プロセッサ間の通信時間を計算する。これを
1092で行う。通信時間は1053での通信時間の計
算と同一であるが、立ち上がりオーバヘッド時間bは、
108のプロセッサ間通信コストモデルに従って、プロ
セッサ対によって異なる値を使用することになる。次
に、1093にて、元のタスクグラフ上各辺に記載され
ていたデータ転送量の代わりに、上記で計算したプロセ
ッサ間通信時間を用いてタスク優先順位を再度計算す
る。例えば、タスクグラフ120に対しては、図9
(a)のような変形タスクグラフができる。この中の各
辺の横に記述してある数値はデータ転送時間である。図
3ではT3からT6へデータ転送量が3単位あったが、
初期スケジュールの結果、図4(b)にあるとおり、T
3とT6は同一プロセッサに割り付けられた。従って、
図9(a)ではT3とT6の間の通信時間は0となって
いる。この変形タスクグラフについて、1093でタス
ク優先順位を再計算した結果が図9(b)である。優先
順位は、通信時間を反映した結果、前回のものとは異な
っていることがわかる。
09を示したものである。1091では第1回目の10
7の処理で生成した初期スケジュールを読み込む。この
スケジュールにより各タスクの割付プロセッサが決って
いるので、プロセッサ間の通信時間を計算する。これを
1092で行う。通信時間は1053での通信時間の計
算と同一であるが、立ち上がりオーバヘッド時間bは、
108のプロセッサ間通信コストモデルに従って、プロ
セッサ対によって異なる値を使用することになる。次
に、1093にて、元のタスクグラフ上各辺に記載され
ていたデータ転送量の代わりに、上記で計算したプロセ
ッサ間通信時間を用いてタスク優先順位を再度計算す
る。例えば、タスクグラフ120に対しては、図9
(a)のような変形タスクグラフができる。この中の各
辺の横に記述してある数値はデータ転送時間である。図
3ではT3からT6へデータ転送量が3単位あったが、
初期スケジュールの結果、図4(b)にあるとおり、T
3とT6は同一プロセッサに割り付けられた。従って、
図9(a)ではT3とT6の間の通信時間は0となって
いる。この変形タスクグラフについて、1093でタス
ク優先順位を再計算した結果が図9(b)である。優先
順位は、通信時間を反映した結果、前回のものとは異な
っていることがわかる。
【0019】1093に引続き、スケジュールの生成1
07を再びここで行う。次に、予め与えた反復改良の回
数の限界を越えたか否かを1094で判定し、越えてい
なければ1092へ戻る。反復回数の限界に達していれ
ば終了し、110にて、これまでに得られたスケジュー
ルのうち、最短処理時間を与えるものをタスクスケジュ
ールとして決定する。
07を再びここで行う。次に、予め与えた反復改良の回
数の限界を越えたか否かを1094で判定し、越えてい
なければ1092へ戻る。反復回数の限界に達していれ
ば終了し、110にて、これまでに得られたスケジュー
ルのうち、最短処理時間を与えるものをタスクスケジュ
ールとして決定する。
【0020】図9(c)は、第2回目のスケジュール結
果を示したものである。第1回目のスケジュール結果で
ある図4(b)にくらべ、処理時間が2単位時間短くな
っている。その要因の一つは、タスクT4とT7の関係
にあると考えられる。初期スケジュールではT4とT7
の間に2単位のデータ転送量があるのに、両者はプロセ
ッサ3とプロセッサ1に割付られた。プロセッサ1と3
は通信立ち上がりオーバヘッドが最も大きい関係にあ
り、その間の通信時間は図9(a)のT4とT9の間で
は、3単位時間という大きな値になる。これに対する再
スケジュールの結果、これらの両タスクをより近いプロ
セッサどうし、プロセッサ3とプロセッサ2に割り付け
るように働いた。その結果、短い実行時間が得られるよ
うになった
果を示したものである。第1回目のスケジュール結果で
ある図4(b)にくらべ、処理時間が2単位時間短くな
っている。その要因の一つは、タスクT4とT7の関係
にあると考えられる。初期スケジュールではT4とT7
の間に2単位のデータ転送量があるのに、両者はプロセ
ッサ3とプロセッサ1に割付られた。プロセッサ1と3
は通信立ち上がりオーバヘッドが最も大きい関係にあ
り、その間の通信時間は図9(a)のT4とT9の間で
は、3単位時間という大きな値になる。これに対する再
スケジュールの結果、これらの両タスクをより近いプロ
セッサどうし、プロセッサ3とプロセッサ2に割り付け
るように働いた。その結果、短い実行時間が得られるよ
うになった
【0021】。
【発明の効果】本発明では、プロセッサ間の通信路の性
能が均一でないタイプの超並列計算機上で応用プログラ
ムを実行する場合の、タスクスケジュールを求めること
ができる。
能が均一でないタイプの超並列計算機上で応用プログラ
ムを実行する場合の、タスクスケジュールを求めること
ができる。
【図1】本発明の一実施例を示す全体構成図である。
【図2】超並列計算機のネットワークの例を示す図であ
る。
る。
【図3】タスクグラフの詳細図である。
【図4】初期タスク優先順位と初期スケジュールを示す
図である。
図である。
【図5】プロセッサ間の通信コストモデルの説明図であ
る。
る。
【図6】タスク優先順位の計算の詳細内容を示す図であ
る。
る。
【図7】スケジュールの生成の説明図である。
【図8】タスクスケジュールの反復改良の説明図であ
る。
る。
【図9】再スケジュリングの結果の説明図である。
Claims (1)
- 【請求項1】プログラムをタスクに分割して分散記憶型
並列計算機で実行させる場合において、(a)各タスクの
演算時間とタスク間のデータ転送量の評価から各タスク
をプロセッサ上にスケジュールするための優先順位を決
め、(b)該優先順位に従って各タスクをプロセッサ上に
スケジュールし、(c)データ転送が必要なタスクについ
て、該スケジュールで決まる割付プロセッサ間の通信路
の速度とデータ転送量からデータ転送時間を評価し、
(d)該転送時間とタスクの演算時間からスケジュールの
優先順位を再度計算し、(e)処理(b)(c)(d)を繰り返し実
行することによってスケジュールを決定することを特徴
とするタスクスケジュリング方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4226896A JPH0675786A (ja) | 1992-08-26 | 1992-08-26 | タスクスケジュリング方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4226896A JPH0675786A (ja) | 1992-08-26 | 1992-08-26 | タスクスケジュリング方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0675786A true JPH0675786A (ja) | 1994-03-18 |
Family
ID=16852289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4226896A Pending JPH0675786A (ja) | 1992-08-26 | 1992-08-26 | タスクスケジュリング方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0675786A (ja) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100719026B1 (ko) * | 2005-11-10 | 2007-05-16 | 주식회사 광명연마 | 화이버 디스크 및 그 제조방법 |
JP2007133481A (ja) * | 2005-11-08 | 2007-05-31 | Yokogawa Electric Corp | 分散システム |
JP2007140710A (ja) * | 2005-11-15 | 2007-06-07 | Sony Computer Entertainment Inc | タスク割り当て方法およびタスク割り当て装置 |
JP2007264997A (ja) * | 2006-03-28 | 2007-10-11 | Toyota Motor Corp | 分散制御装置 |
US7322033B2 (en) | 2002-03-29 | 2008-01-22 | Denso Corporation | Distributed control method and apparatus |
JP2008033932A (ja) * | 2006-07-28 | 2008-02-14 | Hewlett-Packard Development Co Lp | Numaコンピュータシステムにおけるローカリティドメインおよびスレッドアフィニティに基づいてコードを再コンパイルするためのシステムおよび方法 |
WO2008108133A1 (ja) * | 2007-03-02 | 2008-09-12 | Nec Corporation | タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ |
JP2009245362A (ja) * | 2008-03-31 | 2009-10-22 | Nec Corp | 自動分散化システム及び自動分散化方法 |
WO2010001736A1 (ja) * | 2008-07-04 | 2010-01-07 | 日本電気株式会社 | マルチプロセッサシステム、マルチスレッド処理方法、及びプログラム |
JP2010134614A (ja) * | 2008-12-03 | 2010-06-17 | Internatl Business Mach Corp <Ibm> | 並列化処理方法、システム、及びプログラム |
WO2010137262A1 (ja) * | 2009-05-25 | 2010-12-02 | パナソニック株式会社 | マルチプロセッサシステム、マルチプロセッサ制御方法、及びマルチプロセッサ集積回路 |
JP2011145761A (ja) * | 2010-01-12 | 2011-07-28 | Ricoh Co Ltd | 画像処理デバイス排他制御装置、制御方法、プログラム及び記録媒体 |
JP2012504800A (ja) * | 2008-10-03 | 2012-02-23 | ザ ユニバーシティ オブ シドニー | 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング |
JP2012510661A (ja) * | 2008-12-01 | 2012-05-10 | ケーピーアイティ クミンズ インフォシステムズ リミテッド | 逐次コンピュータプログラムコードを並列処理する方法及びシステム |
KR20120055353A (ko) * | 2010-11-23 | 2012-05-31 | 삼성전자주식회사 | 이종 멀티 프로세서 환경에서의 데이터 처리 최적화 장치 및 방법 |
JP2012181852A (ja) * | 2004-07-30 | 2012-09-20 | Commissariat A L'energie Atomique & Aux Energies Alternatives | タスク処理のスケジューリング方法及びこの方法を適用するための装置 |
JP2013502642A (ja) * | 2009-08-18 | 2013-01-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | イベント・ドリブン・システムにおける非集中負荷分散の方法およびコンピュータ・プログラム |
JP2013513150A (ja) * | 2009-12-04 | 2013-04-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アーカイブ管理スケジューリングの最適化 |
JP2016192154A (ja) * | 2015-03-31 | 2016-11-10 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 |
WO2018150481A1 (ja) * | 2017-02-15 | 2018-08-23 | 株式会社日立製作所 | 分散処理システムのデータ制御方法及び分散処理システム |
WO2020129432A1 (ja) * | 2018-12-21 | 2020-06-25 | 日本電信電話株式会社 | 分散処理支援装置、分散処理支援方法およびプログラム |
GB2580159A (en) * | 2018-12-21 | 2020-07-15 | Graphcore Ltd | Scheduling messages |
JP2020173622A (ja) * | 2019-04-11 | 2020-10-22 | 株式会社 日立産業制御ソリューションズ | 並列タスクスケジューリング方法 |
JPWO2022074721A1 (ja) * | 2020-10-05 | 2022-04-14 | ||
WO2023188255A1 (ja) * | 2022-03-31 | 2023-10-05 | 日本電信電話株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
-
1992
- 1992-08-26 JP JP4226896A patent/JPH0675786A/ja active Pending
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7322033B2 (en) | 2002-03-29 | 2008-01-22 | Denso Corporation | Distributed control method and apparatus |
JP2012181852A (ja) * | 2004-07-30 | 2012-09-20 | Commissariat A L'energie Atomique & Aux Energies Alternatives | タスク処理のスケジューリング方法及びこの方法を適用するための装置 |
JP2007133481A (ja) * | 2005-11-08 | 2007-05-31 | Yokogawa Electric Corp | 分散システム |
CN101305348A (zh) * | 2005-11-08 | 2008-11-12 | 横河电机株式会社 | 分布式系统 |
US8296770B2 (en) | 2005-11-08 | 2012-10-23 | Yokogawa Electric Corporation | Systems and methods for allocation of hardware resource to tasks accordance with the device-based relative value for each of the field devices |
KR100719026B1 (ko) * | 2005-11-10 | 2007-05-16 | 주식회사 광명연마 | 화이버 디스크 및 그 제조방법 |
JP2007140710A (ja) * | 2005-11-15 | 2007-06-07 | Sony Computer Entertainment Inc | タスク割り当て方法およびタスク割り当て装置 |
JP2007264997A (ja) * | 2006-03-28 | 2007-10-11 | Toyota Motor Corp | 分散制御装置 |
US8453132B2 (en) | 2006-07-28 | 2013-05-28 | Hewlett-Packard Development Company, L.P. | System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems |
JP2008033932A (ja) * | 2006-07-28 | 2008-02-14 | Hewlett-Packard Development Co Lp | Numaコンピュータシステムにおけるローカリティドメインおよびスレッドアフィニティに基づいてコードを再コンパイルするためのシステムおよび方法 |
WO2008108133A1 (ja) * | 2007-03-02 | 2008-09-12 | Nec Corporation | タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ |
JP5158447B2 (ja) * | 2007-03-02 | 2013-03-06 | 日本電気株式会社 | タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ |
US8429663B2 (en) | 2007-03-02 | 2013-04-23 | Nec Corporation | Allocating task groups to processor cores based on number of task allocated per core, tolerable execution time, distance between cores, core coordinates, performance and disposition pattern |
JP2009245362A (ja) * | 2008-03-31 | 2009-10-22 | Nec Corp | 自動分散化システム及び自動分散化方法 |
US8615762B2 (en) | 2008-07-04 | 2013-12-24 | Nec Corporation | Multiprocessor system, multiple threads processing method and program |
WO2010001736A1 (ja) * | 2008-07-04 | 2010-01-07 | 日本電気株式会社 | マルチプロセッサシステム、マルチスレッド処理方法、及びプログラム |
JP2012504800A (ja) * | 2008-10-03 | 2012-02-23 | ザ ユニバーシティ オブ シドニー | 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング |
US8959370B2 (en) | 2008-10-03 | 2015-02-17 | University Of Sydney | Scheduling an application for performance on a heterogeneous computing system |
JP2012510661A (ja) * | 2008-12-01 | 2012-05-10 | ケーピーアイティ クミンズ インフォシステムズ リミテッド | 逐次コンピュータプログラムコードを並列処理する方法及びシステム |
JP2010134614A (ja) * | 2008-12-03 | 2010-06-17 | Internatl Business Mach Corp <Ibm> | 並列化処理方法、システム、及びプログラム |
US8438553B2 (en) | 2008-12-03 | 2013-05-07 | International Business Machines Corporation | Paralleling processing method, system and program |
WO2010137262A1 (ja) * | 2009-05-25 | 2010-12-02 | パナソニック株式会社 | マルチプロセッサシステム、マルチプロセッサ制御方法、及びマルチプロセッサ集積回路 |
JP5406287B2 (ja) * | 2009-05-25 | 2014-02-05 | パナソニック株式会社 | マルチプロセッサシステム、マルチプロセッサ制御方法、及びマルチプロセッサ集積回路 |
US9032407B2 (en) | 2009-05-25 | 2015-05-12 | Panasonic Intellectual Property Corporation Of America | Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit |
JP2013502642A (ja) * | 2009-08-18 | 2013-01-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | イベント・ドリブン・システムにおける非集中負荷分散の方法およびコンピュータ・プログラム |
US9665407B2 (en) | 2009-08-18 | 2017-05-30 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
JP2013513150A (ja) * | 2009-12-04 | 2013-04-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アーカイブ管理スケジューリングの最適化 |
US9158581B2 (en) | 2009-12-04 | 2015-10-13 | International Business Machines Corporation | Continuous optimization of archive management scheduling by use of integrated content-resource analytic model |
US9910702B2 (en) | 2009-12-04 | 2018-03-06 | International Business Machines Corporation | Continuous optimization of archive management scheduling by use of integrated content-resource analytic model |
JP2011145761A (ja) * | 2010-01-12 | 2011-07-28 | Ricoh Co Ltd | 画像処理デバイス排他制御装置、制御方法、プログラム及び記録媒体 |
KR20120055353A (ko) * | 2010-11-23 | 2012-05-31 | 삼성전자주식회사 | 이종 멀티 프로세서 환경에서의 데이터 처리 최적화 장치 및 방법 |
JP2016192154A (ja) * | 2015-03-31 | 2016-11-10 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 |
WO2018150481A1 (ja) * | 2017-02-15 | 2018-08-23 | 株式会社日立製作所 | 分散処理システムのデータ制御方法及び分散処理システム |
WO2020129432A1 (ja) * | 2018-12-21 | 2020-06-25 | 日本電信電話株式会社 | 分散処理支援装置、分散処理支援方法およびプログラム |
GB2580159A (en) * | 2018-12-21 | 2020-07-15 | Graphcore Ltd | Scheduling messages |
GB2580159B (en) * | 2018-12-21 | 2021-01-06 | Graphcore Ltd | Scheduling messages |
CN113227965A (zh) * | 2018-12-21 | 2021-08-06 | 日本电信电话株式会社 | 分布式处理辅助装置、分布式处理辅助方法以及程序 |
JPWO2020129432A1 (ja) * | 2018-12-21 | 2021-09-09 | 日本電信電話株式会社 | 分散処理支援装置、分散処理支援方法およびプログラム |
US11176066B2 (en) | 2018-12-21 | 2021-11-16 | Graphcore Limited | Scheduling messages |
CN113227965B (zh) * | 2018-12-21 | 2024-04-02 | 日本电信电话株式会社 | 分布式处理辅助装置、分布式处理辅助方法以及存储介质 |
JP2020173622A (ja) * | 2019-04-11 | 2020-10-22 | 株式会社 日立産業制御ソリューションズ | 並列タスクスケジューリング方法 |
JPWO2022074721A1 (ja) * | 2020-10-05 | 2022-04-14 | ||
WO2022074721A1 (ja) * | 2020-10-05 | 2022-04-14 | 三菱電機株式会社 | 分散処理システム、分散処理方法、分散処理プログラム、スケジューリング装置および分散処理装置 |
WO2023188255A1 (ja) * | 2022-03-31 | 2023-10-05 | 日本電信電話株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0675786A (ja) | タスクスケジュリング方法 | |
Alhusaini et al. | A unified resource scheduling framework for heterogeneous computing environments | |
Bettati et al. | End-to-End Scheduling to Meet Deadlines in Distributed Systems. | |
Sinnen et al. | Toward a realistic task scheduling model | |
Rosvall et al. | A constraint-based design space exploration framework for real-time applications on MPSoCs | |
Bagrodia et al. | A unifying framework for distributed simulation | |
Ijaz et al. | MOPT: list-based heuristic for scheduling workflows in cloud environment | |
Kitagawa et al. | DAG scheduling algorithm for a cluster-based many-core architecture | |
Glonina et al. | On the correctness of real-time modular computer systems modeling with stopwatch automata networks | |
Ma et al. | A dynamic load balancer for a parallel branch and bound algorithm | |
He et al. | Algorithms for tree-shaped task partition and allocation on heterogeneous multiprocessors | |
Kopanski et al. | Plan-based job scheduling for supercomputers with shared burst buffers | |
Cao et al. | Performance optimization of budget-constrained mapreduce workflows in multi-clouds | |
Verhoosel et al. | Incorporating temporal considerations during assignment and pre-run-time scheduling of objects and processes | |
Al-Massarani | Priority-based scheduling and evaluation of precedence graphs with communication times | |
Li et al. | Optimizing machine learning on apache spark in HPC environments | |
Khaneghah et al. | ExaLazy: A Model for Lazy-Copy Migration Mechanism to Support Distributed Exascale System | |
Qiao et al. | An online workflow scheduling algorithm considering license limitation in heterogeneous environment | |
Kolesov et al. | Scheduling of computational processes in real-time distributed systems with uncertain task execution times | |
US20230393907A1 (en) | Arithmetic processing apparatus and arithmetic processing method | |
Moitra | Scheduling of hard real-time systems | |
Latha et al. | Performance and Memory-Efficient Parallel Computing Framework for RSMT Construction | |
Rusanova et al. | Scheduling problems for parallel and distributed systems | |
Ishak et al. | Energy-aware task scheduling for streaming applications on NoC-based MPSoCs | |
Zheng | Dynamic adaptation of DAGs with uncertain execution times in heterogeneous computing systems |