JP2002007150A - プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体

Info

Publication number
JP2002007150A
JP2002007150A JP2000182554A JP2000182554A JP2002007150A JP 2002007150 A JP2002007150 A JP 2002007150A JP 2000182554 A JP2000182554 A JP 2000182554A JP 2000182554 A JP2000182554 A JP 2000182554A JP 2002007150 A JP2002007150 A JP 2002007150A
Authority
JP
Japan
Prior art keywords
parallel
processes
executed
processors
queue
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
JP2000182554A
Other languages
English (en)
Inventor
Kenji Matsui
謙治 松井
Kazumasa Tobe
和政 戸部
Yoshihiko Nagata
祐彦 永田
Hiroyuki Kumazaki
裕之 熊▲崎▼
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000182554A priority Critical patent/JP2002007150A/ja
Priority to US09/883,173 priority patent/US20020010732A1/en
Publication of JP2002007150A publication Critical patent/JP2002007150A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 プロセッサの相互で協調したスケジューリン
グに伴うオーバヘッドを削減した、プロセッサ間の明示
的な通信を必要としない、プロセスのスケジューリング
方法を提供することにある。 【解決手段】 並列プログラムの起動又は終了に応じて
並列プログラム管理部6はプロセスの生成又は削除をプ
ロセスキュー管理部4に指示し、管理部4は該指示に従
いプロセスキュー3へプロセスを格納又はプロセスキュ
ー3からプロセスを削除し、プロセスカウンタ2は起動
された並列プログラムの数に対応するプロセスの数を記
憶し、積算カウンタ1は全てのプロセッサで同期して積
算され、プロセスキュー3の内の実行されるプロセス
は、プロセスキュー3の先頭から、「(積算カウンタ1
の値/タイムスライス) mod プロセス数カウンタ2の
値」番目のプロセスとする。上記タイムスライスとはプ
ロセスが実行されるタイムスライスである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
を有し、それらを結合網により接続した並列コンピュー
タシステムにおいて、複数のプロセッサ上で動作する並
列プログラムの並列プロセスを、時分割によって多重に
実行する情報処理システムにおけるプロセスのスケジュ
ーリングに関する。
【0002】
【従来の技術】並列コンピュータシステムでは、複数の
プロセッサと、それらを結合する結合網を有している。
複数のプロセッサを用いて実行される並列プログラム
は、いくつかの並列プロセスに分割され、各々、別のプ
ロセッサ上で並列に動作する。複数のプロセッサ上で並
列に動作する該プロセスは、結合網を通じて、互いにデ
ータをやりとりしながら、全体として一つの結果を導き
出す。このように実行される並列プロセスでは、あるチ
ェックポイントごとに同期して実行が行われる。このと
き、相手プロセスが、そのチェックポイントに達してい
ない場合、相手プロセスとのデータのやりとりが行え
ず、いわゆる同期待ちが生じる。
【0003】また、福田晃著「並列オペレーティングシ
ステム」(コロナ社,1997年発行)(ISBN4−3
39−0258−9)の第55頁から第56頁に示して
あるように、複数の並列プログラムを同時に実行する場
合、コンピュータシステム全体を、時分割によって利用
する方法がある。並列コンピュータシステムで、複数の
並列プログラムが時分割によって多重に実行される場
合、各プロセッサ上で、プロセスのスケジューリングを
行い、プロセスの切換えを行う必要がある。このとき
に、複数のプロセッサ間の相互で協調することなく並列
プロセスをスケジューリングすると、各プロセッサで実
行される並列プロセスの実行時間差のために、並列プロ
セスの同期待ち時間が大きくなるという課題がある。こ
の同期待ち時間の増大を避けるために、並列プログラム
の並列プロセスのスケジューリングでは、同一の並列プ
ログラムの並列プロセスを同時に実行するように、プロ
セッサ間の相互で協調したプロセスのスケジューリング
を行う必要がある。
【0004】このように、プロセッサ間の相互で協調し
たスケジューリングを行う方法として、(1)福田晃著
「並列オペレーティングシステム」(コロナ社,199
7年発行)(ISBN4−339−0258−9)の第
56頁から第62頁では、並列プログラムの並列プロセ
スをタイムスライスの間同時実行し、その後、グローバ
ルなスケジューラが呼ばれ、次に実行するプロセスを選
び、各プロセッサに通知する、プロセスのスケジューリ
ング方法を示している。また、(2)公開特許公報特開
平10−74150号では、複数のプロセッサ上で並列
プロセスを実行するため、一定期間のプロセスの開始、
停止時刻をあらかじめ決定したプログラム割当て表を作
成し、各プロセッサに通知しておき、各プロセッサで
は、それにしたがってプロセスを実行する、プロセスの
スケジューリング方法を示している。
【0005】
【発明が解決しようとする課題】しかしながら、上記の
ようなスケジューリング方法では、(1)ではプロセス
の切換え毎に、(2)ではプログラム割当て表の作成毎
にプロセッサに通知する処理が必要となる。そのため、
各プロセッサで行う処理の他に、プロセッサ間での通知
の処理が必要になり、従来のプロセッサの相互で協調し
たスケジューリングでは、該処理のオーバヘッド時間が
問題となる。本発明の目的は、プロセッサの相互で協調
したスケジューリングに伴うオーバヘッドを削減した、
プロセッサ間の明示的な通信を必要としない、プロセス
のスケジューリング方法を提供することにある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数のプロセッサ上で動作する並列度が
等しい複数の並列プログラムを時分割により多重に実行
する情報処理システムにおけるプロセスのスケジューリ
ング方法であり、各プロセッサが、全てのプロセッサで
同期して積算されるカウンタ値と並列プログラムの多重
度から、それぞれ実行する各並列プロセスの実行順序を
決定することにより、同一の並列プログラムの全ての並
列プロセスを同時に実行するようにしている。また、複
数のプロセッサ上で動作する並列度が異なる複数の並列
プログラムを時分割により多重に実行する情報処理シス
テムにおけるプロセスのスケジューリング方法であり、
各プロセッサが、全てのプロセッサで同期して積算され
るカウンタ値と並列プログラムの多重度から、それぞれ
実行する各並列プロセスの実行順序を決定し、並列プロ
グラムの並列度が時分割により多重に実行する際に使用
するプロセッサ数より少ない場合には、該並列プログラ
ムの並列プロセスを割り当てられていないプロセッサ
は、擬似プロセスを該並列プログラムの実行時に同時に
実行することにより、同一の並列プログラムのすべての
並列プロセスを同時に実行するようにしている。また、
複数のプロセッサ上で動作する並列度が等しい複数の並
列プログラムを時分割により多重に実行する情報処理シ
ステムにおけるプロセスのスケジューリング装置であ
り、前記各プロセッサは、全てのプロセッサで同期して
積算される積算手段と、実行する並列プログラムの数に
対応するプロセス数を格納するプロセス数格納手段と、
実行するプロセスのプロセスキューを生成する手段と、
該生成したプロセスキューを格納するプロセスキュー格
納手段と、該プロセスキューの内の実行するプロセスを
前記積算手段の積算値と前記プロセス数格納手段のプロ
セス数とにより決定する実行プロセス決定手段を有する
ようにしている。また、複数のプロセッサ上で動作する
並列度が異なる複数の並列プログラムを時分割により多
重に実行する情報処理システムにおけるプロセスのスケ
ジューリング装置であり、前記各プロセッサは、全ての
プロセッサで同期して積算される積算手段と、実行する
並列プログラムの数に対応するプロセス数を格納するプ
ロセス数格納手段と、実行するプロセス数が該プロセス
数格納手段内のプロセス数より小さい場合は該両プロセ
ス数の差の数だけの疑似プロセスを含む実行するプロセ
スのプロセスキューを生成し、該両プロセス数が等しい
場合には疑似プロセスを含まない実行するプロセスのプ
ロセスキューを生成する手段と、該生成したプロセスキ
ューを格納するプロセスキュー格納手段と、該プロセス
キューの内の実行するプロセスを前記積算手段の積算値
と前記プロセス数格納手段のプロセス数とにより決定す
る実行プロセス決定手段を有するようにしている。
【0007】
【発明の実施の形態】最初に、本発明の実施形態につい
ての原理的説明をする。本発明の実施形態では、複数の
プロセッサを有しそれらを結合網により結合した並列コ
ンピュータシステムにおいて、並列度が等しい複数の並
列プログラムを、時分割で多重に実行する際に、以下の
スケジューリング方法によってプロセスを実行する。各
プロセッサではタイムスライス毎に、各プロセッサでf
(c,pn)によって決定されるプロセスをタイムスラ
イスの間実行する。cは各プロセッサが有する積算カウ
ンタの値であり、pnは各プロセッサで実行するプロセ
スの数すなわち並列プログラムの多重度であり、f
(c,pn)はcとpnから一意に決定される。f
(c,pn)には、各プロセッサでcおよびpnが等し
いときには、各プロセッサで同一の並列プログラムの並
列プロセスが決定されるものを用いる。ここで、積算カ
ウンタとは、システムの全てのプロセッサで、システム
の起動時に同一の値で初期化され、全てのプロセッサ
で、それぞれ同期して積算されるものである。同時刻に
全てのプロセッサで積算カウンタの値cおよび並列プロ
セスの数pnが等しくなり、f(c,pn)で決定され
るプロセスが同一の並列プログラムの並列プロセスとな
るため、各プロセッサで実行される並列プロセスの順序
が一致し、同一の並列プログラムの並列プロセスが同時
に実行される。これによって、プロセッサの相互で協調
したスケジューリングに伴うオーバヘッドを削減でき、
また、プロセッサ間の明示的な通信を不必要にできる。
【0008】また、いくつかのプロセッサを共通に使用
する、並列度が異なる複数の並列プログラムを、時分割
により多重に実行する際に、擬似プロセスを、該並列プ
ログラムの並列プロセスを実行しないプロセッサにて、
該並列プログラムの並列プロセスと同時に実行させ、各
プロセッサで実行するプロセスの数を全てのプロセッサ
で均一にして、前記の同一の並列プログラムの並列プロ
セスを同時に実行するプロセスのスケジューリング方法
を使用する。これによって、並列度が異なる複数の並列
プログラムを、時分割により多重に実行する場合にも、
プロセッサの相互で協調したスケジューリングに伴うオ
ーバヘッドを削減でき、また、プロセッサ間の明示的な
通信を不必要にできる。
【0009】図1は、本発明によって行われるプロセス
のスケジューリングの概略を示した図である。ここでは
プロセッサP1,P2においてそれぞれ二つの並列プロ
セスA1,A2とB1,B2からなる並列プログラムを実
行している。プロセッサP1,P2ではそれぞれ二つの
プロセスA1,B1とA2,B2が実行される。時刻T1
〜T4で各プロセッサでそれぞれf(c1,pn1),
f(c2,pn2),f(c3,pn3),f(c4,p
n4)によって決定されるプロセスA1,A2、B1,B
2、A1,A2、B1,B2を実行する。ここで、c1〜
c4およびpn1〜pn4は、それぞれ時刻T1〜T4
の各プロセッサの積算カウンタの値とプロセス数であ
り、プロセッサP1,P2で等しくなる。図1に示すよ
うに、同一の並列プログラムの並列プロセスが同時に実
行される。
【0010】以下に、本発明の実施形態について説明す
る。図2は、本発明の実施形態における並列コンピュー
タシステムの一例である。本発明の並列コンピュータシ
ステム1000では、P1からPNのN個のプロセッサ
群2000を、結合網3000によって結合している。
各プロセッサP1〜PNに、積算カウンタ1,プロセス
数カウンタ2,プロセスキュー3,プロセスキュー管理部
4,プロセス実行部5を具備している。また、一部ある
いは全てのプロセッサに、並列プログラム管理部6を具
備している。積算カウンタ1は、すべてのプロセッサで
同期して積算されるもので、システムの起動時に同一の
値を用いて初期化される。このようなカウンタの一例と
しては、公開特許公報の特開平7−281911号に示
してある、各プロセッサで有する時刻レジスタがある。
プロセス数カウンタ2は、各プロセッサで実行するプロ
セスの数を格納している。これは本システムで時分割に
実行する並列プログラムの多重度と等しい。本カウンタ
の値は、プロセスキュー管理部4の処理によって増減す
る。
【0011】プロセスキュー3は、各プロセッサで実行
するプロセスを格納する。説明については後述するが、
プロセスキュー3の例を図7,図8,図9に示す。一つの
並列プログラムに対してシステム内で一意の識別子が決
められ、同一の並列プログラムの並列プロセスには該識
別子が付加される。プロセスキュー3に格納されている
プロセスは、該プロセスの識別子によって決定される順
序にしたがって整列されている。すなわち、同一の並列
プログラムの並列プロセスは、各プロセッサのプロセス
キュー3に同じ順序で格納されている。本発明の実施例
では、該識別子は、並列プログラム管理部6により付加
され、その一例を後述する。
【0012】図3は本発明の実施形態における、並列プ
ログラムが生成,実行,削除される流れを示した図であ
る。システム利用者からの並列プログラムの起動の要求
31は、システム内のいずれか一つの並列プログラム管
理部6にて処理され、並列プログラム管理部6から各プ
ロセッサに対して、該並列プログラムの並列プロセスの
生成要求32が出され、各プロセッサのプロセスキュー
管理部4では、プロセスの生成要求にしたがってプロセ
スキュー3に格納し、プロセス数カウンタ2を増加させ
る(33)。プロセスキュー管理部4によってプロセス
キュー3に格納された、利用者が起動した並列プログラ
ムの並列プロセスは、プロセス実行部5にて実行され
る。プロセス実行部5では、各タイムスライス毎にプロ
セスキュー3に格納されているプロセスから積算カウン
タ1とプロセス数カウンタ2の値によって実行するプロ
セスを決定しタイムスライスの間実行する(34)。並
列プログラムのすべての並列プロセスの処理が終了する
まで、プロセス実行部5によって時分割に繰り返し実行
される。並列プログラムの並列プロセスのすべての処理
が終了すると(35)、並列プログラム管理部6によっ
て、各プロセッサに対して,該並列プログラムの並列プ
ロセスの削除要求36が出され、各プロセッサのプロセ
スキュー管理部4では、削除要求にしたがってプロセス
キュー3から削除し、プロセス数カウンタ2を減少させ
る(37)。
【0013】本発明の第一の実施形態を図2,図4,図
5,図7,図8,図10,図11,図12を用いて説明す
る。並列プログラムの並列プロセスは、並列コンピュー
タシステム1000の各プロセッサのプロセス実行部5
で実行する。プロセスの実行がタイムスライスを使い切
った場合、実行中のプロセスを中断し、プロセスキュー
3から、積算カウンタ1およびプロセス数カウンタ2に
より、次に実行するプロセスを決定し、そのプロセスを
実行する。プロセス実行部5はタイムスライス毎に実行
するプロセスを決定し実行するので、並列プログラムの
各々の並列プロセスは、各プロセッサのプロセス実行部
5によって実行される順序が決定される。
【0014】図10は、プロセス実行部5の処理を示し
たフローチャートであり、以下のようになっている。な
お、本処理は、システムが定期的に発生するタイマ割り
込みの処理にて起動される。一例では、タイマー割り込
みの間隔は10msecであり、タイムスライスは100msecで
ある。ステップ101では、該プロセッサにおいて現在
実行中のプロセスがタイムスライスを使い切ったかどう
かを判定し、使い切っていない場合は処理を終了し、使
い切った場合は処理をステップ102に移す。ステップ
102では、積算カウンタ1とプロセス数カウンタ2に
よって、プロセスキュー3から実行するプロセスを決定
し、処理をステップ103へ移す。なお、実行するプロ
セスを決定する方法の一例として、プロセスキュー3の
先頭から、「(積算カウンタ1の値/タイムスライス) mo
d プロセス数カウンタ2の値」番目のプロセスを、実行
するプロセスとする。ここで「P/Q」は「PをQで割
った商」の意味であり、「R mod S」はRをSで割っ
た余り」の意味である。また、ステップ102の処理
は、プロセスキュー管理部4の処理と排他される。ステ
ップ103では、次に実行するプロセスへの切換え処理
が必要かどうかを判定し、必要な場合は処理をステップ
104へ移し、必要ない場合は処理を終了する。なお、
プロセスの切換えが必要かどうかの判定は、ステップ1
02により決定されたプロセスと、前回実行していたプ
ロセスが、同一であるかにより行われる。ステップ10
4では、ステップ102により決定されたプロセスへ、
コンテキストを切換え、該プロセスの実行を開始する。
その後、処理を終了する。以上のようにして、並列度が
等しい複数の並列プログラムの各々の並列プロセスは、
タイムスライス毎に各プロセッサのプロセス実行部5に
て実行するプロセスを決定され実行される。すなわち、
各プロセッサのプロセス実行部5にて、同一の並列プロ
グラムの全ての並列プロセスを同時に実行するように、
プロセスの実行順序を決定している。
【0015】図11は、プロセスキュー管理部4の処理
を示したフローチャートであり、以下のようになってい
る。なお、本処理は、システム内のいずれかの並列プロ
グラム管理部6のプロセスの生成あるいは削除の処理に
より起動される。同時に複数の並列プログラム管理部6
の処理によってプロセス生成あるいは削除が行われる場
合は、プロセスキュー管理部4は、順次その処理を行
い、その他の処理と排他される。また、プロセス実行部
5が実行するプロセスを決定する場合も、プロセスキュ
ー管理部4はプロセス実行部5と排他して動作する。ス
テップ111では、プロセスの生成か削除かを判定す
る。プロセス生成の場合は処理をステップ112へ移
し、プロセス削除の場合は処理をステップ114へ移
す。ステップ112では、プロセスをプロセスキュー3
に、プロセスに付加されている識別子により整列される
ように格納し、処理をステップ113へ移す。ステップ
113では、プロセス数カウンタ2を1増やし、処理を
終了する。ステップ114では、プロセスをプロセスキ
ュー3から削除し、処理をステップ115へ移す。ステ
ップ115では、プロセス数カウンタ2を1減らし、処
理を終了する。
【0016】図12は、並列プログラム管理部6の処理
を示したフローチャートであり、以下のようになってい
る。なお、並列プログラム管理部6は、システムの利用
者の並列プログラム生成の要求あるいは一つの並列プロ
グラムのすべての並列プロセスの処理が終了した場合に
起動される。また、同一の並列プログラム管理部6に対
して、複数の並列プログラムの生成の要求がある場合
は、該プロセッサにおいて、同時に、並列プログラム管
理部での複数の処理が行われる。ステップ121では、
並列プログラムの生成か削除かを判定し、生成の場合は
ステップ122へ処理を移し、削除の場合はステップ1
24へ処理を移す。ステップ122では、該並列プログ
ラムに対しシステム内で一意となる識別子を決定し、該
並列プログラムの並列プロセスに対して該識別子を付加
する。その後、処理をステップ123へ移す。一例とし
て、識別子は以下を用いる。各プロセッサPi(i=1
〜N)に具備された並列プログラム管理部6では、並列
プログラムに0〜9999の番号を付加する。この番号
は、同一の並列プログラム管理部6で生成され実行中の
並列プログラムでは重複しないものを用いる。各並列プ
ログラム管理部6では、前記番号と「10000×i」
を加算した値を該並列プログラムの並列プロセスの識別
子として付加する。ステップ123では、並列プログラ
ムの生成の要求によって、該並列プログラムの並列プロ
セスを実行するプロセッサに対して、当該並列プログラ
ムの並列プロセスを生成し、処理を終了する。ステップ
124では、該並列プログラムの並列プロセスを実行し
た、すべてのプロセッサに対して、当該並列プログラム
の並列プロセスの削除を行い、処理を終了する。
【0017】図4,図5は、本発明の第一の実施形態に
おける、複数の並列プログラムの並列プロセスを時分割
に実行したときの、各プロセッサで実行されるプロセス
の時間による遷移の一例を示した図である。この例で
は、各並列プログラムはプロセッサP1,P2の二つの
プロセッサを使用する。また、タイムスライスを100mse
cとしており、積算カウンタとしては時刻レジスタを用
いている。図4の例では、並列プログラムは71,72
の二つであり、それぞれ二つのプロセスA1,A2とB
1,B2からなる。各プロセッサのプロセスキュー3は
図7のようになっており、プロセッサP1,P2のプロ
セスキュー3には、それぞれプロセスA1,B1、A2,
B2が格納されている。また、プロセスA1,A2には
識別子x,B1,B2には識別子yが付加されており、各
プロセッサのプロセスキュー3に格納されている。ここ
で、プロセスキュー3はプロセスに付加されている識別
子xとyによって整列されるため、同一の並列プログラ
ムの並列プロセスの順序が、プロセッサP1,P2のそ
れぞれのプロセスキュー3において等しくなる。この例
では、識別子x,yの順序となるように整列される。時
刻41では、「(0/100) mod 2 = 0」であるので、プロ
セスキューの先頭から0番めの並列プログラム71のプ
ロセスA1,A2が、それぞれのプロセッサで実行され
る。同様にして各プロセッサで実行するプロセスを決定
し実行する。時刻42,43,44にて、それぞれ並列プ
ログラム72,71,72のプロセスB1,B2、A1,A
2、B1,B2が実行される。
【0018】図5は、本発明のプロセスのスケジューリ
ング方法により、並列度が等しい二つの並列プログラム
が時分割に多重に実行されていた場合に、新たに並列度
が等しい一つの並列プログラムが生成された際の、各プ
ロセッサで実行されるプロセスの時間による遷移の一例
を示した図である。一つの並列プログラムの並列プロセ
スは、必ずしも、該並列プログラムの並列プロセスを実
行する全てのプロセッサで同時に生成,削除が行われな
い。図5の例では、時刻51に、プロセッサP1ではプ
ロセス数は3であるが、P2では2である。一時的に該
並列プログラムの並列プロセスを実行するプロセッサで
のプロセス数が同一でないために、プロセスの実行順序
が変わり、同一の並列プログラムの並列プロセスが同時
に実行されないことがあるが、以下の例に示すように、
プロセッサ間の通信を行わなくとも、最終的に同一の並
列プログラムの並列プロセスが同時に実行される。実行
中の並列プログラムが71,72,73の三つであり、そ
れぞれ二つのプロセスA1,A2、B1,B2、C1,C
2からなるときの、各プロセッサのプロセスキューの例
を図8に示す。プロセッサP1,P2のプロセスキュー
3には、それぞれプロセスA1,B1,C1、A2,B2,
C2が格納されている。また、プロセスA1,A2には
識別子x、B1,B2には識別子y、C1,C2には識別
子zが付加されており、各プロセッサのプロセスキュー
3に格納されている。ここで、プロセスキュー3はプロ
セスに付加されている識別子x,y,zによって整列され
るため、同一の並列プログラムの並列プロセスの順序
が、プロセッサP1,P2のそれぞれのプロセスキュー
3において等しくなる。この例では、識別子x,y,zの
順序となるように整列される。
【0019】図5の例では、時刻51ではプロセッサP
1のプロセスキューには、図8のように、A1,B1,C
1の三つのプロセスを格納しているが、プロセッサP2
のプロセスキューは、図7のように、A2,B2の二つ
のプロセスを格納している。時刻51では、プロセッサ
P1では、「(500/100) mod 3 = 2」であるので、並列
プログラム53のプロセスC1が実行される。プロセッ
サP2では、「(500/100) mod 2 = 1」であるので、並
列プログラム72のプロセスB2が実行される。時刻5
2では、プロセッサP1,P2でプロセス数が3とな
り、各プロセッサのプロセスキューは図8のようにな
る。時刻52では、「(600/100) mod 3 = 0」であるの
で、並列プログラム71のプロセスA1,A2がそれぞ
れ実行される。同様に、時刻53,54にて、それぞれ
並列プログラム72,73のプロセスB1,B2、C1,
C2が実行される。このように、並列プログラムの並列
プロセスの生成や削除によって、一時的に各プロセッサ
でのプロセス数が一致しない場合でも、プロセッサ間の
通信を行わずに、最終的には、同一の並列プログラムの
並列プロセスを同時に実行するプロセスのスケジューリ
ングが行える。
【0020】本発明の第二の実施形態では、並列プログ
ラムの並列度が異なる場合には、並列プログラム管理部
6の生成処理において、擬似プロセスを生成し、該並列
プログラムの並列プロセスを実行しないプロセッサにお
いて、該並列プログラムの並列プロセスと同時に実行す
る。本発明の第二の実施形態を図2,図6,図9,図13
を用いて説明する。なお、プロセスキュー管理部4とプ
ロセス実行部5の処理は第一の実施形態と同様である。
すなわち、第一の実施形態と同様に、並列度が異なる並
列プログラムの各々の並列プロセスは、各プロセッサの
プロセス実行部5にて、同一の並列プログラムのすべて
の並列プロセスを同時に実行するように、プロセスの実
行順序を決定される。図13は本発明の第二の実施形態
における、並列プログラム管理部6の処理を示したフロ
ーチャートであり、以下のようになっている。ステップ
131では、並列プログラムの生成か削除かを判定し、
生成の場合はステップ132へ処理を移し、削除の場合
はステップ134へ処理を移す。ステップ132では、
該並列プログラムの並列プロセスに対して、システム内
で一意となる識別子を付加し、処理をステップ133に
移す。ステップ133では、生成する並列プログラムの
並列度が、時分割で多重に実行する並列プログラムで使
用するプロセッサの数と比べて小さい場合には、擬似プ
ロセスを必要な数だけ生成し、また、並列プログラムの
生成要求にしたがって、各プロセッサに対して生成し、
処理を終了する。擬似プロセスは、何も行わず、単にス
ピンループするようなものでよい。また、並列プログラ
ムの並列度は、該並列プログラムのコンパイル時あるい
は起動時に指定されるものであり、これによって擬似プ
ロセスの数を求めることができる。また、擬似プロセス
にも、同時に実行する並列プログラムの並列プロセスと
同一の識別子が付加される。ステップ134では、該並
列プログラムの並列プロセスと擬似プロセスを実行し
た、すべてのプロセッサに対して、該並列プログラムの
並列プロセスおよび該並列プログラムの並列プロセスと
同時に実行した擬似プロセスの削除を行い、処理を終了
する。
【0021】図6は、本発明の第二の実施形態におけ
る、並列度の異なる複数の並列プログラムを時分割によ
り多重に実行する際に、擬似プロセスを実行させた場合
の、各プロセッサで実行するプロセスの時間による遷移
の一例を示した図である。この例では、並列プログラム
は71,74の二つであり、並列プログラム71は二つ
のプロセスA1,A2からなり、並列プログラム74は
一つのプロセスD1からなり、並列プログラム71,7
4はプロセッサP1を共通に使用する。各プロセッサの
プロセスキューは、図9のようになっており、プロセッ
サP1のプロセスキューには、プロセスA1,D1が格
納されており、プロセッサP2のプロセスキューにはA
2と擬似プロセスが格納されている。また、プロセスA
1,A2には識別子x,D1と擬似プロセスには識別子w
が付加されており、各プロセッサのプロセスキュー3に
格納されている。プロセスキュー3はプロセスに付加さ
れている識別子xとwによって整列されるため、同一の
並列プログラムの並列プロセスの順序が、プロセッサP
1,P2のそれぞれのプロセスキューにおいて等しくな
る。この例では、識別子x,wの順序となるように整列
される。時刻61,62,63にて、それぞれ「(0/100)
mod 2 = 0」,「(100/100) mod2 = 1」,「(200/100) mod
2 = 0」であるので、並列プログラム71,74,71
のプロセスA1,A2、D1、A1,A2が実行される。
また、プロセッサP2では、時刻62で擬似プロセスが
実行される。このように、並列度が異なる複数の並列プ
ログラムを時分割により実行する場合には、一つの並列
プログラムの並列プロセスを実行しないプロセッサにお
いて、擬似プロセスを該並列プログラムの並列プロセス
と同時に実行することによって、同一の並列プログラム
の並列プロセスを同時に実行するプロセスのスケジュー
リングが行える。
【0022】
【発明の効果】以上説明したように、本発明によれば、
プロセッサの相互で協調したスケジューリングに伴うプ
ロセッサ間のオーバヘッドを削減した、プロセッサ間の
明示的な通信を必要としない、プロセスのスケジューリ
ングが行える。
【図面の簡単な説明】
【図1】本発明のスケジューリング方法により、各プロ
セッサで実行されるプロセスの時間による遷移の概略を
示した図である。
【図2】本発明の実施形態における並列コンピュータシ
ステムの一例を示した図である。
【図3】本発明の実施形態における並列プログラムの動
作の流れを示した図である。
【図4】本発明の第一の実施形態における、スケジュー
リング方法により、各プロセッサで実行されるプロセス
の、時間による遷移の一例を示した図である。
【図5】本発明の第一の実施形態における、スケジュー
リング方法により、並列プログラムの並列プロセスが生
成された場合の、各プロセッサで実行されるプロセス
の、時間による遷移の一例を示した図である。
【図6】本発明の第二の実施形態における、スケジュー
リング方法により、各プロセッサで実行されるプロセス
の、時間による遷移の一例を示した図である。
【図7】本発明の第一の実施形態における、プロセス数
が2のときの、プロセスキューの一例を示した図であ
る。
【図8】本発明の第一の実施形態における、プロセス数
が3のときの、プロセスキューの一例を示した図であ
る。
【図9】本発明の第二の実施形態における、プロセス数
が2のときの、プロセスキューの一例を示した図であ
る。
【図10】本発明の実施形態における、プロセス実行部
の処理を示したフローチャートである。
【図11】本発明の実施形態における、プロセスキュー
管理部の処理を示したフローチャートである。
【図12】本発明の第一の実施形態における、並列プロ
グラム管理部の処理を示したフローチャートである。
【図13】本発明の第二の実施形態における、並列プロ
グラム管理部の処理を示したフローチャートである。
【符号の説明】
1 積算カウンタ 2 プロセス数カウンタ 3 プロセスキュー 4 プロセスキュー管理部 5 プロセス実行部 6 並列プログラム管理部 1000 並列コンピュータシステム 2000 プロセッサ 3000 プロセッサ間結合網
───────────────────────────────────────────────────── フロントページの続き (72)発明者 永田 祐彦 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 熊▲崎▼ 裕之 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 Fターム(参考) 5B098 AA10 FF01 GA04 GA08 GB13 GC05 GD02 GD14

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ上で動作する並列度が
    等しい複数の並列プログラムを時分割により多重に実行
    する情報処理システムにおけるプロセスのスケジューリ
    ング方法であって、 各プロセッサが、全てのプロセッサで同期して積算され
    るカウンタ値と並列プログラムの多重度から、それぞれ
    実行する各並列プロセスの実行順序を決定することによ
    り、同一の並列プログラムの全ての並列プロセスを同時
    に実行することを特徴とするプロセスのスケジューリン
    グ方法。
  2. 【請求項2】 複数のプロセッサ上で動作する並列度が
    異なる複数の並列プログラムを時分割により多重に実行
    する情報処理システムにおけるプロセスのスケジューリ
    ング方法であって、 各プロセッサが、全てのプロセッサで同期して積算され
    るカウンタ値と並列プログラムの多重度から、それぞれ
    実行する各並列プロセスの実行順序を決定し、 並列プログラムの並列度が時分割により多重に実行する
    際に使用するプロセッサ数より少ない場合には、該並列
    プログラムの並列プロセスを割り当てられていないプロ
    セッサは、擬似プロセスを該並列プログラムの実行時に
    同時に実行することにより、同一の並列プログラムの並
    列プロセスを同時に実行することを特徴とするプロセス
    のスケジューリング方法。
  3. 【請求項3】 複数のプロセッサ上で動作する並列度が
    等しい複数の並列プログラムを時分割により多重に実行
    する情報処理システムにおけるプロセスのスケジューリ
    ング装置であって、 前記各プロセッサは、全てのプロセッサで同期して積算
    される積算手段と、 実行する並列プログラムの数に対応するプロセス数を格
    納するプロセス数格納手段と、 実行するプロセスのプロセスキューを生成する手段と、 該生成したプロセスキューを格納するプロセスキュー格
    納手段と、 該プロセスキューの内の実行するプロセスを前記積算手
    段の積算値と前記プロセス数格納手段のプロセス数とに
    より決定する実行プロセス決定手段を有することを特徴
    とするプロセスのスケジューリング装置。
  4. 【請求項4】 複数のプロセッサ上で動作する並列度が
    異なる複数の並列プログラムを時分割により多重に実行
    する情報処理システムにおけるプロセスのスケジューリ
    ング装置であって、 前記各プロセッサは、全てのプロセッサで同期して積算
    される積算手段と、 実行する並列プログラムの数に対応するプロセス数を格
    納するプロセス数格納手段と、 実行するプロセス数が該プロセス数格納手段内のプロセ
    ス数より小さい場合は該両プロセス数の差の数だけの疑
    似プロセスを含む実行するプロセスのプロセスキューを
    生成し、該両プロセス数が等しい場合には疑似プロセス
    を含まない実行するプロセスのプロセスキューを生成す
    る手段と、 該生成したプロセスキューを格納するプロセスキュー格
    納手段と、 該プロセスキューの内の実行するプロセスを前記積算手
    段の積算値と前記プロセス数格納手段のプロセス数とに
    より決定する実行プロセス決定手段を有することを特徴
    とするプロセスのスケジューリング装置。
  5. 【請求項5】 指定された実行する並列プログラムの数
    に対応するプロセス数をカウントし記憶する手順と、 指定された実行するプロセスのプロセスキューを生成し
    記憶する手順と、 該プロセスキュー内のプロセスの内の実行するプロセス
    をプロセッサの積算手段の積算値と前記並列プログラム
    の数に対応するプロセス数とにより決定する手順を有す
    るプロセスのスケジューリングプログラムを記録したコ
    ンピュータ読み取り可能な記録媒体。
  6. 【請求項6】 指定された実行する並列プログラムの数
    に対応するプロセス数をカウントし記憶する手順と、 指定された実行するプロセス数が前記カウントされたプ
    ロセス数より小さい場合は該両プロセス数の差の数だけ
    の疑似プロセスを含むプロセスキューを生成し、該両プ
    ロセス数が等しい場合には疑似プロセスを含まないプロ
    セスのプロセスキューを生成し記憶する手順と、 該プロセスキュー内のプロセスの内の実行するプロセス
    をプロセッサの積算手段の積算値と前記並列プログラム
    の数に対応するプロセス数とにより決定する手順を有す
    るプロセスのスケジューリングプログラムを記録したコ
    ンピュータ読み取り可能な記録媒体。
JP2000182554A 2000-06-19 2000-06-19 プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体 Pending JP2002007150A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000182554A JP2002007150A (ja) 2000-06-19 2000-06-19 プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体
US09/883,173 US20020010732A1 (en) 2000-06-19 2001-06-19 Parallel processes run scheduling method and device and computer readable medium having a parallel processes run scheduling program recorded thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000182554A JP2002007150A (ja) 2000-06-19 2000-06-19 プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2002007150A true JP2002007150A (ja) 2002-01-11

Family

ID=18683289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000182554A Pending JP2002007150A (ja) 2000-06-19 2000-06-19 プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (2)

Country Link
US (1) US20020010732A1 (ja)
JP (1) JP2002007150A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182096A (ja) * 2009-02-05 2010-08-19 Nec Corp プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256221A (ja) * 2002-02-28 2003-09-10 Fujitsu Ltd 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
US7650601B2 (en) * 2003-12-04 2010-01-19 International Business Machines Corporation Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US20060026601A1 (en) * 2004-07-29 2006-02-02 Solt David G Jr Executing commands on a plurality of processes
JP5595633B2 (ja) * 2007-02-26 2014-09-24 スパンション エルエルシー シミュレーション方法及びシミュレーション装置
US9317290B2 (en) * 2007-05-04 2016-04-19 Nvidia Corporation Expressing parallel execution relationships in a sequential programming language
US9513966B2 (en) * 2011-02-17 2016-12-06 Siemens Aktiengesellschaft Parallel processing in human-machine interface applications
CN104899090B (zh) * 2015-05-27 2018-12-21 努比亚技术有限公司 快速调度应用进程的方法、装置及移动终端
US10216668B2 (en) 2016-03-31 2019-02-26 Intel Corporation Technologies for a distributed hardware queue manager
CN107707768B (zh) * 2017-10-27 2021-04-09 Oppo广东移动通信有限公司 运行游戏应用的处理方法以及相关产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US5778221A (en) * 1997-03-17 1998-07-07 International Business Machines Corporation System for executing asynchronous branch and link in parallel processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182096A (ja) * 2009-02-05 2010-08-19 Nec Corp プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法

Also Published As

Publication number Publication date
US20020010732A1 (en) 2002-01-24

Similar Documents

Publication Publication Date Title
Levin et al. DP-FAIR: A simple model for understanding optimal multiprocessor scheduling
Hamscher et al. Evaluation of job-scheduling strategies for grid computing
Squillante et al. Using processor-cache affinity information in shared-memory multiprocessor scheduling
Fohler Joint scheduling of distributed complex periodic and hard aperiodic tasks in statically scheduled systems
Bettati et al. End-to-End Scheduling to Meet Deadlines in Distributed Systems.
Ramamritham Allocation and scheduling of precedence-related periodic tasks
JP4124547B2 (ja) リモート・メソッド呼び出しシステムにおける複製サポートのための方法及びシステム
US20080022288A1 (en) Signal Processing Appatatus
JP2002007150A (ja) プロセスのスケジューリング方法および装置およびプロセスのスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体
Li et al. A task allocation method for stream processing with recovery latency constraint
CN109739634A (zh) 一种原子任务执行方法及装置
Yue et al. An effective processor allocation strategy for multiprogrammed shared-memory multiprocessors
Wang et al. Task construction for model-based design of embedded control software
Liu et al. A dynamic critical path duplication task scheduling algorithm for distributed heterogeneous computing systems
Fu et al. Run-time compilation for parallel sparse matrix computations
US12026518B2 (en) Dynamic, low-latency, dependency-aware scheduling on SIMD-like devices for processing of recurring and non-recurring executions of time-series data
Dong et al. Flexible mixed-criticality scheduling with dynamic slack management
Deelman et al. Breadth-first rollback in spatially explicit simulations
Lunniss et al. Cache related pre-emption delays in hierarchical scheduling
McElvany Guaranteeing deadlines in MAFT
Schwan et al. Global data and control in multicomputers: Operating system primitives and experimentation with a parallel branch‐and‐bound algorithm
Scratchley et al. Evaluating concurrency options in software specifications
Padhye et al. Dynamic versus adaptive processor allocation policies for message passing parallel computers: An empirical comparison
JP3876818B2 (ja) マルチプロセッサ計算機及びプログラム
Xie et al. Scheduling multi-task agents

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040318