JPWO2002069174A1 - 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ - Google Patents

並列プロセス実行方法、及びマルチプロセッサ型コンピュータ Download PDF

Info

Publication number
JPWO2002069174A1
JPWO2002069174A1 JP2002568228A JP2002568228A JPWO2002069174A1 JP WO2002069174 A1 JPWO2002069174 A1 JP WO2002069174A1 JP 2002568228 A JP2002568228 A JP 2002568228A JP 2002568228 A JP2002568228 A JP 2002568228A JP WO2002069174 A1 JPWO2002069174 A1 JP WO2002069174A1
Authority
JP
Japan
Prior art keywords
parallel
time
program
processing
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.)
Granted
Application number
JP2002568228A
Other languages
English (en)
Other versions
JP3891936B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2002069174A1 publication Critical patent/JPWO2002069174A1/ja
Application granted granted Critical
Publication of JP3891936B2 publication Critical patent/JP3891936B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

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

Abstract

並列プロセス毎に、任意の割合でCPUの処理時間を配分することができるようにする。並列プログラムの処理に割り当てるべき時間配分率が設定される(ステップS1)。すると、並列プログラムに設定された時間配分率に従って、プロセスの切り替え処理が行われる(ステップS2)。すなわち、並列プログラム(A)の各並列プロセス(A1)〜(A4)が複数のプロセッサ(1)〜(4)中の1つに割り当てられ、複数のプロセッサ(1)〜(4)において、割り当てられた並列プロセス(A1)〜(A4)の処理が同時に実行開始される。さらに、並列プロセス(A1)〜(A4)の実行が開始されてからの経過時間が、所定の周期内での並列プログラム(A)に設定された時間配分率に応じた時間に達すると、複数のプロセッサ(1)〜(4)において、割り当てられた並列プロセスの実行が同時に終了する。

Description

技術分野
本発明は並列プロセス実行方法、マルチプロセッサ型コンピュータ、並列プロセス実行プログラムおよびそのプログラムを記録した記録媒体に関し、特に並列プロセスと他のプロセスとを時分割で実行する並列プロセス実行方法、その方法を実行するマルチプロセッサ型コンピュータ、その方法をコンピュータに実行させる並列プロセス実行プログラムおよびそのプログラムを記録した記録媒体に関する。
背景技術
複数のプロセッサを搭載したコンピュータ(マルチプロセッサ型コンピュータ)では、1つのプログラムを複数のプロセッサで並列処理することが出来る。以下、並列処理可能なプログラムを並列プログラムと呼ぶ。並列プログラムを処理する場合、1つの並列プログラムから複数の並列プロセスが生成される。各並列プロセスは、互いに並行して実行可能なプロセスである。生成された複数の並列プロセスは、別々のプロセッサで並列に実行される。並列プロセスを実行する各プロセッサは互いにデータ交換をしながら、並列プログラムに定められた一連の処理を実行する。なお、ここでプロセスとは、1以上のスレッドを含む処理単位である。また、プロセッサとは、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの処理装置のことである。以下の説明では、便宜上、プロセッサとしてCPUを用いるものとする。
各並列プロセスの処理には、他の並列プロセスとの間でデータ交換(同期通信)を行うべきチェックポイントがある。データ交換が必要な2つの並列プロセスを実行する各CPUは、並列プロセスの処理がチェックポイントまで終了したら、データ交換処理を行う。一方の並列プロセスの処理が先にチェックポイントに達した場合には、その並列プロセスを実行するCPUは、データ交換相手の並列プロセスの処理がチェックポイントに達するまで同期待ちを行う。
CPUでのデータ処理には、同期待ち以外にもIO(Input/Output)待ち等の待ち時間が発生する。待ち状態となったCPUで他のプロセスを実行させれば、システム全体としての処理効率が向上する。そこで、CPUに時分割処理を行わせ、待ち状態のCPUに他のプロセスの処理を実行させることが行われている。ここで他のプロセスは、並列プロセスであってもよいし、単一のCPUで実行される非並列プロセスであってもよい。
なお、並列プロセスのデータ交換の同期待ちの間、CPUが他のプロセスを実行していると、データ交換相手の並列プロセスの処理がチェックポイントに達したときに、他のプロセスの処理が終了していないことがあり得る。すると、データ交換相手の並列プロセスを実行するCPUに、同期待ちの時間が発生してしまう。このような同期待ち時間の発生は、コンピュータシステムの処理効率の低下を招く。
そこで、特開平10−74150号公報に記載されたプロセススケジューリング方法では、時分割処理を行うコンピュータシステムの各CPUに、並列プロセスおよび他のプロセスの動作開始・停止を、所定の期間単位(フェーズ)で同時に行わせている。すなわち、ある並列プログラムから生成された複数の並列プロセスは、各CPUにおいて同時に処理が開始され、同時に処理が停止される。これにより、並列プロセス実行時に発生する同期待ちの時間が、時分割処理を行わなかった場合と同じになる。その結果、並列プログラムを構成する並列プロセス間の同期待ちを最小限にし、システム効率の低下を防止することができる。
ところで、コンピュータで処理するプロセスには、ターンアラウンド時間(プロセスの実行開始から実行終了までの時間)の保証が必要なものがある。ターンアラウンド時間の保証が必要なものとして、たとえば、気象データの解析処理がある。膨大な量の気象データを解析する処理は、気象予報を発表する一定時間前に必ず終了している必要がある。
しかし、上記公報記載のプロセススケジューリング方法では、各フェーズの時間が固定であるため、各並列プログラム毎に、ターンアラウンド時間を保証することができない。たとえば、マルチプロセッサ型コンピュータの処理能力の50%を使用しないと、ターンアラウンド時間を保証できないような並列プログラムもあり得る。ところが、上記公報記載のプロセススケジューリング方法では、その並列プログラムの処理に1フェーズ分(たとえば10%)の時間しか割り当てることができず、ターンアラウンド時間を保証できない。
発明の開示
本発明はこのような点に鑑みてなされたものであり、並列プロセス毎に、任意の割合でCPUの処理時間を配分することができる並列プロセス実行方法、マルチプロセッサ型コンピュータ、並列プロセス実行プログラム、および並列プロセス実行プログラムを記録した記録媒体を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような並列プロセス実行方法が提供される。本発明の並列プロセス実行方法は、1つの並列プログラムAから生成される複数の並列プロセスA1〜A4と他のプロセス(たとえば並列プログラムBの並列プロセスB1〜B4)とを、複数のプロセッサ1〜4で時分割で処理する場合に適用される。
本発明では、所定の周期の中で、並列プログラムの処理に割り当てるべき時間配分率が設定される(ステップS1)。すると、並列プログラムに設定された時間配分率に従って、プロセスの切り替え処理が行われる(ステップS2)。すなわち、並列プログラムAの各並列プロセスA1〜A4が複数のプロセッサ1〜4中の1つに割り当てられ、複数のプロセッサ1〜4において、割り当てられた並列プロセスA1〜A4の処理が同時に実行開始される。さらに、並列プロセスA1〜A4の実行が開始されてからの経過時間が、所定の周期内での並列プログラムAに設定された時間配分率に応じた時間に達すると、複数のプロセッサ1〜4において、割り当てられた並列プロセスの実行が同時に終了する。
これにより、並列プログラムAに対して任意の時間配分率を設定すると、所定の時間中の時間配分率に応じた時間だけ、並列プログラムAから生成された並列プロセスA1〜A4の処理に割り当てられる。しかも、並列プログラムAから生成された並列プロセスA1〜A4の処理は、複数のプロセッサ1〜4において同時に実行開始され、同時に実行終了される。その結果、マルチプロセッサ型コンピュータの処理能力のうち並列プログラムの処理に割り当てるべき割合を任意に設定することができ、ターンアラウンド時間の保証が可能となる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
発明を実施するための最良の形態
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の原理構成図である。本発明に係る並列プロセス実行方法では、並列プログラムを、複数のプロセッサ1〜4(各プロセッサの識別子は、#0〜#3)を有するマルチプロセッサ型コンピュータにおいて時分割で処理させる。図1の例では、並列プログラムAと並列プログラムBとを時分割で処理する。
図1に示すように、まず、各並列プログラムA,Bに対して、時間配分率が設定される(ステップS1)。時間配分率とは、所定の周期(1サイクル)内で、各並列プログラムから生成されるプロセスがプロセッサを占有する時間の割合である。図1の例では、並列プログラムAの時間配分率が30%に設定されている。また、並列プログラムBの時間配分率が70%に設定されている。
次に、各並列プログラムA,Bに対して設定された時間配分率に従って、並列プロセスA1〜A4と並列プロセスB1〜B4とのプロセス切り替え処理が行われる(ステップS2)。プロセス切り替え処理では、並列プロセスA1〜A4は、それぞれに対応するプロセッサにより並列に処理される。並列処理では、複数の並列プロセスA1〜A4の処理が同時に実行開始される。そして、並列プロセスA1〜A4の実行が開始されてからの経過時間が、所定の周期内での並列プログラムAに設定された時間配分率(30%)に応じた時間に達すると、複数のプロセッサ1〜4において並列プロセスA1〜A4の実行が同時に終了する。
並列プロセスA1〜A4の実行が同時に終了すると、複数のプロセッサ1〜4において並列プロセスB1〜B4の処理が同時に実行開始される。そして、並列プロセスB1〜B4の実行が開始されてからの経過時間が、所定の周期内での並列プログラムBに設定された時間配分率(70%)に応じた時間に達すると、複数のプロセッサ1〜4において並列プロセスB1〜B4の実行が同時に終了する。
なお、1つの並列プログラムから生成された複数の並列プロセスを実行する過程では、適宜、並列プロセスを実行するプロセッサ同士で、互いにデータ交換が行われる。
このように、本発明では時分割処理を行うマルチプロセッサ型コンピュータを用いて、並列プログラムから生成された並列プロセスの処理に割り当てる時間配分率を、任意に設定することができる。そして、1サイクル中の時間配分率に応じた時間を、並列プロセスの処理に割り当てるようにしたため、ターンアラウンドを保証することが可能となる。しかも、1つの並列プログラムから生成された並列プロセスは、同時に実行開始し、同時に実行終了するようにしたため、時分割処理をしたことによるデータ交換のための同期待ちの時間の増加が防止される。
以下に、本発明の実施の形態について具体的に説明する。なお、以下の説明では、プロセッサとしてCPUを用いるものとする。
図2は、本発明の実施の形態を適用したマルチプロセッサ型コンピュータのハードウェア構成例を示す図である。コンピュータ10は、複数のCPU11〜14によって装置全体が制御されている。各CPU11〜14は、バス19を介して互いに接続されている。CPU11〜14は、RAM20に格納された共有プログラム等に基づいて生成されたプロセスを実行する。
各CPU11〜14には、バス19を介して、RAM20、ハードディスク装置(HDD)15、グラフィック処理装置16、入力インタフェース17、および通信インタフェース18が接続されている。
RAM20には、CPU11に実行させるOS(Operating System)のプログラムの少なくとも一部や、並列プログラムの少なくとも一部が一時的に格納される。また、RAM20には、タイムスロット割り当てマップ等のデータが格納される。
HDD15は、OSのプログラム、並列プログラム、および非並列プログラムなどが格納される。また、HDD15には、各種プログラムの実行に必要なデータが格納される。
グラフィック処理装置16には、モニタ21が接続されている。グラフィック処理装置16は、CPU11〜14からの命令に従って、画像をモニタ21の画面に表示させる。入力インタフェース17には、キーボード22とマウス23とが接続されている。入力インタフェース17は、キーボード22やマウス23から送られてくる信号を、バス19を介してCPU11〜14に送信する。
通信インタフェース18は、ネットワーク24に接続されている。ネットワーク24は、たとえばインターネットのような広域ネットワークである。通信インタフェース18は、ネットワーク24を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。たとえば、図2に示したコンピュータの電源が投入されると、HDD15に格納されたOSのプログラムの一部が、RAM20に読み込まれる。そして、各CPU11〜14によりOSのプログラムが実行される。これにより、各CPU11〜14上でOSの動作が開始する。
図3は、本実施の形態を実現するためのOSの機能を示すブロック図である。本実施の形態では、コンピュータ10内にOS30が立ち上げられる。
OS30は、タイムスロット割り当てマップ31、定義ファイル32、タイムテーブル33、GUI34、プログラム35、プロセス実行部36、プロセス切り替え部37、およびコンテキスト38を有している。プロセス実行部36、プロセス切り替え部37及びコンテキスト38は、4つのCPU11〜14それぞれに設けられている。OS30上では、各CPU11〜14がそれぞれ識別子CPU#0、CPU#1、CPU#2、CPU#3で認識される。
タイムスロット割り当てマップ31は、プロセスの実行タイミングの協調動作のスケジュールが定義されたデータである。タイムスロット割り当てマップ31は、ユーザの操作入力により、任意のデータを登録することが出来る。タイムスロット割り当てマップ31には、各CPUが実行すべきプロセスの割り当てが、タイムスロット毎に登録されている。このタイムスロット割り当てマップ31をもとに、各CPUで現在のタイムスロットにどのプロセスが割り当てられているのかを知ることができる。タイムスロット割り当てマップ31の詳細は後述する。
定義ファイル32は、タイムスロット割り当てマップ31においてプロセスが未割り当てのタイムスロットをどのように利用するのかのポリシー(判断基準)を示すスケジューリングポリシーの情報を含んでいる。スケジューリングポリシーには、たとえば、スループット優先ポリシーやターンアラウンド優先ポリシーがある。プロセス切り替えに適用するスケジューリングポリシーは、操作入力によって任意に選択することが出来る。
スループット優先ポリシーは、システム全体のスループット(単位時間当りの処理量)向上を優先させるためのポリシーである。スループット優先ポリシーでは、CPUがアイドル状態となる時間をできるだけ減らすように、プロセスが未割り当てのタイムスロット(空きタイムスロット)で何らかのプロセスを実行する。本実施の形態では、実行するプロセスの優先順は、対話型プロセス>非並列プロセス>並列プロセスの順とする。
ターンアラウンド優先ポリシーは、ターンアラウンドを保証するためのポリシーである。ターンアラウンド優先ポリシーでは、各プロセスに対して、割り当てられたCPU配分率以上にCPUを使用させないようにする。すなわち、プロセスが未割り当てのタイムスロットでは、バッチプロセス(並列プロセスまたは非並列プロセス)を実行させない。
タイムテーブル33は、1サイクル開始から、各タイムスロットが開始されるまでの時間が設定されたテーブル形式のデータである。タイムテーブル33の詳細は後述する。
GUI34は、キーボード22やマウス23等の入力装置からの入力信号を解釈し、各種コマンドを生成する。GUI34は、生成した制御コマンドをプロセス実行部36に送る。これにより、プロセス実行部36において対話型プロセスが生成される。また、GUI34は、プロセス実行部36から送られる情報を、モニタ21に表示する。
複数のプログラム35は、並列プログラムまたは非並列プログラムである。複数の並列プログラムは、CPUで並列処理が可能なプログラムである。非並列プログラムは、1つのCPUで実行されるプログラムである。複数のプログラム35は、それぞれの少なくとも一部が、たとえばHDD15からRAM20に読み込まれる。
プロセス実行部36は、複数のプログラム35やGUI34から送られるコマンドに基づいてプロセス(並列プロセスや非並列プロセス)を生成し、生成したプロセスを時分割で実行する。また、プロセス実行部36は、実行中の並列プロセスの処理が、データ交換(同期通信)を行うべきチェックポイントに達すると、他のCPUのプロセス実行部との間でデータ交換を行う。
プロセス切り替え部37は、プロセス実行部36で実行されるプロセスの切り替え制御を行う。具体的には、プロセス切り替え部37は、タイムテーブル33を参照し、タイムスロットの開始時刻を判断する。プロセス切り替え部37は、タイムスロットの開始時刻になると、タイムスロット割り当てマップ31を参照し、開始するタイムスロットで実行するプロセスを決定する。
タイムスロット割り当てマップ31において、開始するタイムスロットにプロセスが割り当てられていない場合には、プロセス切り替え部37は、定義ファイル32を参照する。そして、プロセス切り替え部37は、定義ファイル32に含まれるスケジューリングポリシーに従って、開始するタイムスロットで実行するプロセスを決定する。
プロセス切り替え部37は、開始するタイムスロットで実行するプロセスを決定したら、プロセス実行部36が行っている処理を中断させ、コンテキストの切り替えを行う。すなわち、プロセス実行部36が実行していたプロセスのコンテキストを待避させ、実行するプロセスに対応するコンテキストをプロセス実行部36に渡す。
コンテキスト38は、各プロセスを実行するのに必要な制御情報である。コンテキストには、プロセスが中断したときのプログラムカウンタの内容などが含まれている。
図4は、タイムスロット割り当てマップの例を示す図である。図4の例では、1サイクルが10のタイムスロットに分割されている。各タイムスロットには、タイムスロット番号#0〜#9が割り振られている。そして、タイムスロット割り当てマップ31において、4つのCPU#0〜#3それぞれに対して、各タイムスロット#0〜#9で実行すべきプロセスが設定されている。
図4の例において、タイムスロット#0〜2では、全てのCPU#0〜#3に対して、並列プログラムAから生成された並列プロセスが設定されている。タイムスロット#3,#4では、CPU#0,#1に対して、並列プログラムBから生成された並列プロセスが設定されており、CPU#2,#3に対して、並列プログラムCから生成された並列プロセスが設定されている。タイムスロット#5では、CPU#0,#1に対して、並列プログラムDから生成された並列プロセスが設定されており、CPU#2に対して、非並列プログラムEから生成された非並列プロセスが設定されている。なお、タイムスロット#5では、CPU#3にはプロセスが設定されておらず、空きタイムスロットとなっている。タイムスロット#6〜#8では、全てのCPU#0〜#3に対して、並列プログラムFから生成された並列プロセスが設定されている。タイムスロット#9では、全てのCPU#0〜#3に対して、対話型プロセスTが設定されている。なお、対話型プロセスに割り当てられたタイムスロットでは、OS上で生成される複数の対話型プロセスの処理が、優先順位の高い順に実行される。
図5は、タイムテーブルの例を示す図である。タイムテーブル33には、タイムスロット番号毎に、オフセットタイムが設定されている。オフセットタイムとは、1つのサイクルが開始されてから各タイムスロットが開始されるまでの時間である。この例では、1サイクルは1msecであるものとする。
図5の例では、タイムスロット#0のオフセットタイムは「+0msec」である。タイムスロット#1のオフセットタイムは「+100msec」である。タイムスロット#2のオフセットタイムは「+200msec」である。タイムスロット#3のオフセットタイムは「+300msec」である。タイムスロット#4のオフセットタイムは「+400msec」である。タイムスロット#5のオフセットタイムは「+500msec」である。タイムスロット#6のオフセットタイムは「+600msec」である。タイムスロット#7のオフセットタイムは「+700msec」である。タイムスロット#8のオフセットタイムは「+800msec」である。タイムスロット#9のオフセットタイムは「+900msec」である。
各CPUにおいて、1サイクルが開始されてから各タイムスロットのオフセットタイムに等しい時間経過すると、タイムスロット割り当てマップが参照される。そして、切り替え前のタイムスロットにおいて処理するプロセスと、タイムスロット切り替え後において処理するプロセスとが異なる場合には、プロセスの切り替えが行われる。プロセスの切り替えは、優先度を変更することによって行われる。
図6は、プロセスの優先度を示す図である。優先度は、たとえば60段階程度に分かれている。この例では、最高優先度(H)と、最低優先度(L)とは、バッチプロセス用の優先度である。なお、本実施の形態では、対話型プロセス以外の非並列プロセスおよび並列プロセスは、バッチプロセスとして実行されるものとする。
最高優先度(H)より1ランク低い優先度(H−1)から、最低優先度(L)より2ランク高い優先度(L+2)までは、対話型プロセス用の優先度である。最低優先度(L)より1ランク高い優先度(L+1)は、ダミーアイドルプロセスおよび非並列プロセス用の優先度である。ここで、ダミーアイドルプロセスとは、並列プロセスを動作させないために用意されるプロセスである。ダミーアイドルプロセスを実行するCPUは、無意味な処理を繰り返しており、実際には何も処理(計算等)をしない(実効が無い)。
各CPUは、タイムスロットの切り替えタイミングにおいて、次のタイムスロットで処理すべきプロセスがあれば、そのプロセスの優先度を、最高優先度(H)に設定する。また、各CPUは、処理対象外のバッチプロセスの優先度を、最低優先度(L)に設定する。
図6の例には、CPU#0のタイムスロット#0〜#2における各プロセスの優先度を示している。プロセスA1(並列プログラムAから生成された並列プロセス)には、最高優先度(H)が設定されている。対話型プロセスTには、最低優先度(L)より2ランク上の優先度(L+2)が設定されている。並列プロセスB1(並列プログラムBから生成された並列プロセス)、並列プロセスD1(並列プログラムDから生成された並列プロセス)および並列プロセスF1(並列プログラムFから生成された並列プロセス)には、最低優先度(L)が設定されている。
時分割処理では、プロセスの切り替えタイミングにおいて、最も優先度の高いプロセスの処理が実行される。したがって、図6の例では、CPU#0においてプロセスA1が実行される。もし、全てのバッチプロセスに対して最低優先度(L)が設定されていれば、対話型プロセスTが実行されることになる。
図7は、プロセスの切り替え状況を示すタイムチャートの例である。図7には、CPU#0のプロセスの切り替え状況の例を示している。
図7の例では、タイムスロット#0の開始時点において、並列プロセスA1の優先度が最高優先度(H)に設定されている。他の並列プロセスの優先度は、最低優先度(L)である。また、対話型プロセスTの優先度は、最高優先度(H)より1ランク低い優先度(H−1)から、最低優先度(L)より2ランク高い優先度(L+2)の間の優先度が設定されている。その結果、タイムスロット#0では、CPU#0において並列プロセスA1が実行される。
タイムスロット#1の開始時点と、タイムスロット#2との開始時点では、各プロセスの優先度が変化しない。そのため、タイムスロット#1とタイムスロット#2では、引き続き並列プロセスA1が実行される。これにより、1サイクル中の30%の時間が、並列プロセスA1の処理に対して割り当てられる。
タイムスロット#3の開始時点では、並列プロセスA1に対して、最低優先度(L)が設定され、並列プロセスB1に対して、最高優先度(H)が設定される。他の並列プロセスの優先度は変化しない。これにより、タイムスロット#3では、CPU#0において並列プロセスB1が実行される。タイムスロット#4の開始時点では、各プロセスの優先度が変化しない。そのため、タイムスロット#4では、引き続き並列プロセスB1が実行される。これにより、1サイクル中の20%の時間が、並列プロセスB1の処理に対して割り当てられる。
タイムスロット#5の開始時点では、並列プロセスB1に対して、最低優先度(L)が設定され、並列プロセスD1に対して、最高優先度(H)が設定される。他の並列プロセスの優先度は変化しない。これにより、タイムスロット#5では、CPU#0において並列プロセスD1が実行される。これにより、1サイクル中の10%の時間が、並列プロセスD1の処理に対して割り当てられる。
タイムスロット#6の開始時点では、並列プロセスD1に対して、最低優先度(L)が設定され、並列プロセスF1に対して、最高優先度(H)が設定される。これにより、タイムスロット#6では、CPU#0において並列プロセスF1が実行される。タイムスロット#7の開始時点と、タイムスロット#8との開始時点では、各プロセスの優先度が変化しない。そのため、タイムスロット#7とタイムスロット#8では、引き続き並列プロセスF1が実行される。これにより、1サイクル中の30%の時間が、並列プロセスF1の処理に対して割り当てられる。
タイムスロット#9の開始時点では、並列プロセスF1に対して、最低優先度(L)が設定される。他の並列プロセスの優先度は変化しない。これにより、タイムスロット#9では、対話型プロセスTの優先度が最も高くなり、CPU#0において対話型プロセスTが実行される。これにより、1サイクル中の10%の時間が、全ての対話型プロセスTの処理に対して割り当てられる。
図8は、タイムスロット毎のプロセス切り替え処理を示すフローチャートである。この処理は、各タイムスロットの開始時刻になったときに、OSを実行する各CPUにおいて実行される処理である。以下に、図8の処理をステップ番号に沿って説明する。
[ステップS11]プロセス切り替え部37(図3に示す)は、定義ファイル32(図3に示す)からスケジューリングポリシーの設定を読み出す。
[ステップS12]プロセス切り替え部37は、スケジューリングポリシーが、ターンアラウンド優先ポリシーか否かを判断する。ターンアラウンド優先ポリシーであれば、処理がステップS13に進められる。ターンアラウンドポリシーでなければ、処理がステップS14に進められる。
[ステップS13]プロセス切り替え部37は、ダミーアイドルプロセスを生成し、ダミーアイドルプロセスに対して最低優先度より1レベル高い優先度(L+1)を設定する。
[ステップS14]プロセス切り替え部37は、各CPUに対して同時に割り込みを発生させる。
[ステップS15]プロセス切り替え部37は、タイムスロットを1つ進める。
[ステップS16]プロセス切り替え部37は、タイムスロット割り当てマップ31(図3に示す)を参照し、現タイムスロットが空きか否かを判断する。現タイムスロットが空きであれば、処理がステップS19に進められる。現タイムスロットが空きでなければ、処理がステップS17に進められる。
[ステップS17]プロセス切り替え部37は、タイムスロット割り当てマップ31を参照し、現タイムスロットの割り当てが、対話型プロセスか否かを判断する。対話型プロセスが割り当てられてられていれば、処理がステップS22に進められる。対話型プロセスが割り当てられていなければ、処理がステップS18に進められる。
[ステップS18]プロセス切り替え部37は、現タイムスロットに割り当てられたプロセスの優先度を最高値に設定する。その後、処理がステップS22に進められる。
[ステップS19]ステップS16において、現タイムスロットが空きと判断された場合には、プロセス切り替え部37は、定義ファイル32を参照し、スループット優先ポリシーか否かを判断する。スループット優先ポリシーの場合には、処理がステップS20に進められる。スループット優先ポリシーではない場合には、処理がステップS22に進められる。
[ステップS20]プロセス切り替え部37は、非並列プロセスが存在するか否かを判断する。非並列プロセスが存在する場合には、処理がステップS21に進められる。非並列プロセスが存在しない場合には、処理がステップS22に進められる。
[ステップS21]プロセス切り替え部37は、非並列プロセスに対して、最低優先度よりも1レベル高い優先度(L+1)を設定する。
[ステップS22]プロセス切り替え部37は、優先度が最高値の並列プロセスのうち、現タイムスロットに割り当てられたプロセス以外の並列プロセスの優先度を最低値(L)にする。
[ステップS23]プロセス切り替え部37は、タイムテーブル33を参照し、次のプロセッサ割り込みの時刻を設定する。その後、処理がステップS14に進められる。
このようにして、タイムスロット毎に各プロセスの優先度を変えることができる。その結果、タイムスロット割り当てマップおよびスケジューリングポリシーに従ったプロセス切り替えが行われる。
ここで、スケジューリングポリシーがターンアラウンド優先ポリシーの場合、ダミーアイドルプロセス(優先度L+1)が生成され(ステップS13)、空きタイムスロットにおいてバッチプロセスの優先度が最低値(L)とされる(ステップS22)。そのため、対話型プロセスが存在すればその対話型プロセスが実行され、対話型プロセスが存在しなければ、ダミーアイドルプロセスが実行される。これにより、空きタイムスロットにおいて実効あるバッチプロセスが実行されることはなくなる。
また、スケジューリングポリシーがスループット優先ポリシーの場合、空きタイムスロットにおいて、非並列プロセスの優先度が最低値より1ランク上(L+1)に設定され(ステップS21)、並列プロセスの優先度が最低値(L)とされる(ステップS22)。そのため、対話型プロセス{優先度(L+2)〜(H−1)}が存在すればその対話型プロセスが実行され、対話型プロセスが存在しなければ、存在する非並列プロセスが実行される。これにより、対話型プロセス、非並列プロセス、並列プロセスの順番で優先的に実行される。
図9は、図4に示したタイムスロット割り当てマップに従ったプロセス切り替え状況を示す図である。
図9に示すように、タイムスロット#0〜タイムスロット#2の期間(1サイクルの30%の時間)、CPU#0において並列プロセスA1が実行され、CPU#1において並列プロセスA2が実行され、CPU#2において並列プロセスA3が実行され、CPU#3において並列プロセスA4が実行される。なお、並列プロセスA1〜A4は、共に並列プログラムAから生成されたバッチプロセスである。
タイムスロット#3〜タイムスロット#4の期間(1サイクルの20%の時間)、CPU#0において並列プロセスB1が実行され、CPU#1において並列プロセスB2が実行され、CPU#2において並列プロセスC1が実行され、CPU#3において並列プロセスC2が実行される。なお、並列プロセスB1,B2は、共に並列プログラムBから生成されたバッチプロセスである。また、並列プロセスC1,C2は、共に並列プログラムCから生成されたバッチプロセスである。
タイムスロット#5の期間(1サイクルの10%の時間)、CPU#0において並列プロセスD1が実行され、CPU#1において並列プロセスD2が実行され、CPU#2において非並列プロセスE1が実行され、CPU#3においてスケジューリングポリシーに従って決定されたプロセスXが実行される。なお、並列プロセスD1,D2は、共に並列プログラムDから生成されたバッチプロセスである。また、非並列プロセスE1は、非並列プログラムEから生成されたバッチプロセスである。
タイムスロット#6〜タイムスロット#8の期間(1サイクルの30%の時間)、CPU#0において並列プロセスF1が実行され、CPU#1において並列プロセスF2が実行され、CPU#2において並列プロセスF3が実行され、CPU#3において並列プロセスF4が実行される。なお、並列プロセスF1〜F4は、共に並列プログラムFから生成されたバッチプロセスである。
タイムスロット#9の期間(1サイクルの10%の時間)、各CPU#0〜#3それぞれにおいて、対話型プロセスTが実行される。
以上のように、CPU毎に、各プロセスに割り振る時間配分率を任意に指定できることにより、顧客の要望に応じた時間配分率で、並列プログラムを処理することが出来る。以下に、プロセスに対する時間配分率の設定例を説明する。
以下の例では、並列プログラムAは、4つのCPUを常に占有して並列処理を行った場合、処理を終了するのに1日を要するものとする。また、並列プログラムBは、4つのCPUを常に占有して並列処理を行った場合、処理を終了するのに4日を要するものとする。
図10は、時間配分率を均等にした場合のプロセス切り替え例を示す図である。図10の例では、並列プログラムAに対して50%の配分率(タイムスロット#0〜#4)を割り当て、並列プログラムBに対して50%(タイムスロット#5〜#9)の配分率を割り当てている。これにより、タイムスロット#0〜#4の期間、並列プログラムAから生成される並列プロセスA1〜A4が各CPU#0〜#3で実行される。また、タイムスロット#5〜#9の期間、並列プログラムBから生成される並列プロセスB1〜B4が各CPU#0〜#3で実行される。
図10の場合には、並列プログラムAと並列プログラムBとの処理を同時に実行開始すると、処理の所要時間の短い並列プログラムAの処理が先に終了する。並列プログラムAの処理終了後は、並列プログラムBの処理が100%の配分率で行われる。すなわち、並列プログラムAの処理は、処理開始から2日後に終了する。また、並列プログラムBの処理は、処理開始から5日後に終了する。
図11は、時間配分率を1対9にした場合のプロセス切り替え例を示す図である。図11の例では、並列プログラムAに対して10%の配分率(タイムスロット#0)を割り当て、並列プログラムBに対して90%(タイムスロット#1〜#9)の配分率を割り当てている。これにより、タイムスロット#0の期間、並列プログラムAから生成される並列プロセスA1〜A4が各CPU#0〜#3で実行される。また、タイムスロット#1〜#9の期間、並列プログラムBから生成される並列プロセスB1〜B4が各CPU#0〜#3で実行される。
図11の場合には、並列プログラムAと並列プログラムBとの処理を同時に実行開始すると、処理の所要時間の長い並列プログラムBの処理が先に終了する。並列プログラムAの処理終了後は、並列プログラムBの処理が100%の配分率で行われる。すなわち、並列プログラムAの処理は、処理開始から5日後に終了する。また、並列プログラムBの処理は、処理開始から4.4日後に終了する。
このように、並列プログラムに対するCPUの処理時間の配分率を任意に設定することで、処理の所要時間の長い並列プログラムBを先に終了させることが可能となる。
図12は、時間配分率を2対8にした場合のプロセス切り替え例を示す図である。図12の例では、並列プログラムAに対して20%の配分率(タイムスロット#0〜#1)を割り当て、並列プログラムBに対して80%(タイムスロット#2〜#9)の配分率を割り当てている。これにより、タイムスロット#0〜#1の期間、並列プログラムAから生成される並列プロセスA1〜A4が各CPU#0〜#3で実行される。また、タイムスロット#2〜#9の期間、並列プログラムBから生成される並列プロセスB1〜B4が各CPU#0〜#3で実行される。
図12の場合には、並列プログラムAと並列プログラムBとの処理を同時に実行開始すると、並列プログラムAと並列プログラムBとの処理がほぼ同時に終了する。すなわち、並列プログラムAと並列プログラムBとの処理は、共に処理開始から5日後に終了する。
このように、並列プログラムに対するCPUの処理時間の配分率を任意に設定することで、処理の所要時間の異なる複数の並列プログラムの処理を、同時に終了させることが可能となる。
次に、スケジューリングポリシーの違いに応じたプロセス切り替えの違いについて説明する。
図13は、スループット優先ポリシーにおいて、並列プログラムと非並列プログラムとを時分割で処理する場合のプロセス切り替え例を示す図である。
ここで、各CPU#0〜#3に対して、タイムスロット#0〜#4の期間、並列プログラムAの処理を行わせるものとする。CPU#0〜#2に対して、タイムスロット#5〜#9の期間、並列プログラムBの処理を行わせるものとする。そして、CPU#3に対するタイムスロット#5〜#9の期間は、空きが設定されているものとする。また、並列プログラムAと並列プログラムB以外に処理すべきプログラムとして非並列プログラムEがあり、対話型プロセスは生成されていないものとする。
図13の例では、タイムスロット#0〜#4の期間、並列プログラムAから生成される並列プロセスA1〜A4が各CPU#0〜#3で実行される。また、タイムスロット#5〜#9の期間、並列プログラムBから生成される並列プロセスB1〜B3がCPU#0〜#2で実行される。さらに、タイムスロット#5〜#9の期間、並列プログラムEから生成される非並列プロセスE1がCPU#3で実行される。
このように、スループット優先ポリシーを選択し、空きタイムスロットにおいて非並列プロセスを実行すれば、システム全体の効率(スループット)がよくなる。
図14は、スループット優先ポリシーにおいて並列プログラム以外に処理すべきプログラムがない場合のプロセス切り替え例を示す図である。
ここで、各CPU#0〜#3に対して、タイムスロット#0〜#4の期間、並列プログラムAの処理を行わせるものとする。CPU#0〜#2に対して、タイムスロット#5〜#9の期間、並列プログラムBの処理を行わせるものとする。そして、CPU#3に対するタイムスロット#5〜#9の期間は、空きが設定されているものとする。また、並列プログラムAと並列プログラムB以外に、処理すべきプログラム、あるいは対話型プロセスがないものとする。
図14の例では、タイムスロット#0〜#4の期間、並列プログラムAから生成される並列プロセスA1〜A4が各CPU#0〜#3で実行される。また、タイムスロット#5〜#9の期間、並列プログラムBから生成される並列プロセスB1〜B3が各CPU#0〜#2で実行される。
さらに、タイムスロット#5〜#9の期間、並列プログラムAから生成される並列プロセスA4がCPU#3で実行される。しかし、CPU#3でタイムスロット#5〜#9の期間、並列プロセスA4の処理実行中に、他の並列プロセスとの間でデータ交換(同期通信)を行うべきチェックポイントに達すると、CPU#3は同期待ちの状態となる。そして、次のサイクルで、他のCPU#0〜#2において、並列プロセスA1〜A2の処理が進められることで、データ交換が可能となり、同期待ちの状態が解除される。
このように、スループット優先ポリシーにおいて、空きタイムスロットで実行すべき非並列プロセスあるいは対話型プロセスがなければ、並列プロセスの処理が進められる。これにより、システム全体の効率(スループット)はよくなる。ただし、並列プロセスの同期待ちの時間は、その並列プロセスの処理中の時間として換算される。すなわち、サーバコンピュータの処理機能を顧客に使用させ、CPUの動作時間に応じて料金を徴収していた場合、同期待ちのCPUループの時間も課金されてしまう。すると、同じ並列プログラムを実行した場合であっても、空きのタイムスロットがあるか否かにより料金が異なってしまう。
そこで、顧客が、並列プログラムの内容が同じであれば同じ料金が徴収されることを望む場合には、ターンアラウンド優先ポリシーが選択される。また、顧客によりターンアラウンドの保証が望まれる場合にも、ターンアラウンド優先ポリシーが選択される。
図15は、ターンアラウンド優先ポリシーの場合のプロセス切り替え例を示す図である。
ここで、各CPU#0〜#3に対して、タイムスロット#0〜#4の期間、並列プログラムAの処理を行わせるものとする。CPU#0〜#2に対して、タイムスロット#5〜#9の期間、並列プログラムBの処理を行わせるものとする。そして、CPU#3に対するタイムスロット#5〜#9の期間は、空きが設定されているものとする。
図15の例では、タイムスロット#0〜#4の期間、並列プログラムAから生成される並列プロセスA1〜A4が各CPU#0〜#3で実行される。また、タイムスロット#5〜#9の期間、並列プログラムBから生成される並列プロセスB1〜B3が各CPU#0〜#2で実行される。さらに、タイムスロット#5〜#9の期間、ダミーアイドルプロセスGがCPU#3で実行される。
ダミーアイドルプロセスGが実行されている時間は、並列プロセスの処理時間として換算されない。従って、並列プログラムが各CPUを占有する時間の総計は、空きのタイムスロットの有無に依存しない。その結果、並列プログラムの内容が同じであれば同じ料金が徴収される。
次に、複数のコンピュータ(以下、ノードという)で並列処理を行う場合の例について説明する。
図16は、複数のノードで並列処理を行う場合のシステム構成例を示す図である。図16の例では、協働制御装置100に対して、割り込み通知装置201、301を介して、複数のノード200,300が接続されている。ノード200は、複数のCPU211,212を有している。同様に、ノード300は、複数のCPU311,312を有している。
協働制御装置100は、各ノード間での協働動作を制御する。たとえば、協働制御装置100は、各ノード間で交換されるデータを中継する。また、協働制御装置100は、システムの起動時に、各ノードに対して同期用の割り込み信号を通知する。
割り込み通知装置201,301は、協働制御装置100からの割り込み信号を受け取り、ノード内の所定のCPUに対して、割り込み信号を通知する。たとえば、ノード200に接続された割り込み通知装置201は、CPU211に対して割り込み信号を通知する。ノード300に接続された割り込み通知装置301は、CPU311に対して割り込み信号を通知する。
各ノード200,300では、任意のCPU211,311が割り込み信号の通知を受け取ると、タイムスロットの初期化やノード内の各CPU割り込みの設定が行われる。
図17は、複数のノード間でのタイムスロット同期処理のフローチャートである。以下に、図17の処理をステップ番号に沿って説明する。なお、図17の例では、ノード200に接続された割り込み通知装置201を用いて、割り込みタイマの設定を行うものとする。
[ステップS31]ノード200は、割り込み通知装置201に対して、並列処理の開始時刻を通知する。具体的には、ユーザからの操作入力に応答して、ノード200で実行されているOSから割り込み通知装置201に対して開始時刻が通知される。
[ステップS32]割り込み通知装置201は、協働制御装置100に対して開始時刻を通知する。これにより、協働制御装置100において、開始時刻を割り込み発生時刻としたタイマが設定される。
[ステップS33]協働制御装置100は、タイマ設定に基づいて、開始時刻に達したか否かを判断する。開始時刻に達していれば、処理がステップS34に進められる。開始時刻に達していなければステップS33の処理が繰り返される。
[ステップS34]協働制御装置100は、タイマに設定された開始時刻に達すると、協働制御装置100に接続された全ての割り込み通知装置201,301に対してタイマ割り込みを通知する。
[ステップS35]タイマ割り込みを受け取った各割り込み通知装置201,301は、それぞれに対応するノードの所定のCPUに対して、タイマ割り込みを通知する。
[ステップS36]タイマ割り込みの通知を受けた各CPUは、あらかじめ用意されている割り込みハンドラの処理ルーチン(プログラム)を起動する。すると、割り込みハンドラの処理に従って、タイムスロットの初期化(現行のタイムスロット番号を#0にする処理等)と、CPU割り込み設定(所定の時刻にノード内の全てのCPUに対して同時に発生させる割り込み信号の設定)が行われる。CPU割り込みの設定は、全てのノードの全てのCPUに対して、同時刻に割り込みが発生するように設定される。
このように、全てのCPUに対する同時刻の割り込み設定が行われることにより、各ノードの各CPUにおいて、同時に割り込みが発生する。そして、タイムスロットの切り替え処理のサイクルが開始される。
図18は、ノード間で同期処理が行われた場合の処理プロセスの切り替え状況の例を示す図である。図18の例では、ノード#0とノード#1とを同時に起動した場合の、各CPUにおける処理を示している。ノード#0とノード#1とが同時に起動されると、それぞれのCPUにおいて、起動処理が実行される。起動処理としては、たとえば、セルフテストの実施や、所定のブートプログラムのロード等の処理がある。起動処理の終了時刻は、CPUによって異なる。起動処理が終了したCPUは、CPUの割り込み発生を待つ。
全てのCPUにおいて起動処理が終了した後、全てのCPUに対して同時に、割り込みを発生させる。各CPUは、割り込みの発生後、タイムスロットの切り替え処理を開始し、タイムスロット毎に、タイムスロット割り当てマップに設定されたプロセスを実行する。
このように、複数のノードにおいて、タイムスロットの切り替え処理のタイミングを同期させることにより、並列プログラムが生成される複数の並列プロセスを、複数のノードで分散して並列処理することが可能となる。すなわち、タイムスロットの切り替え処理のタイミングを同期させない場合、並列プログラムAの各並列プロセスが別々のノードで異なる時間帯に実行される場合が発生し得る。この場合、異なるノードで処理されている複数の並列プロセス間において、データ交換のための同期待ち時間が過大になる虞がある。
ところが、タイムスロットの切り替え処理のタイミングを同期させることで、複数のノードで分散して処理される各並列プロセスが同時に実行開始され、同時に実行が終了される。その結果、データ交換時の同期待ち時間を最小限に抑えることが可能となる。
以上説明したように、本発明の実施の形態によれば、並列プログラムを処理する際のCPUの時間配分率を任意に設定できることで、ターンアラウンド時間を保証することが可能となる。ターンアラウンド時間を保証することで、定期的に同じプログラムを実行するような場合に、他のプログラムの動作の有無に関係なく、いつも同じ時間で処理を終了させることができる。処理の終了時間の予測ができれば、処理結果を利用した作業を、予定通りに進めることができる。たとえば、気象予報のデータ処理において、システムの処理負荷に関係なく、常に予報の発表時刻よりも一定時間前に、気象データの解析を終了させることができる。
また、並列プログラムを処理する際のCPUの時間配分率を任意に設定できることは、バッチプロセスごとにランク分けが可能となることを意味する。すなわち、重要なバッチプロセスには、多くのCPU配分率を与える。これにより、たとえば、重要でないバッチプロセスよりも早く重要なバッチプロセスの処理を終了させることができる。また、他のバッチプロセスよりも処理の所要時間が長いバッチプロセスの処理を、他のバッチプロセスの処理と同時に終了させることもできる。
また、対話型プロセス用のタイムスロットを設定出来るようにしたことにより、一定時間間隔で、確実に対話型プロセスを実行させることができる。すなわち、全てのタイムスロットに対してバッチプロセス(たとえば並列プロセス)を割り当てると、バッチプロセスが終了するまで、各タイムスロットにおいてバッチプロセスが最優先で実行される。すると、バッチプロセスが終了するまで、対話型プロセスが実行出来なくなってしまう。そこで、本実施の形態では、対話型プロセス用のタイムスロットにおいては、全てのバッチプロセスの優先度を、最低の値で設定するようにした。これにより、対話型プロセス全体へのCPUの時間配分率が保証できる。
また、本実施の形態では、スケジューリングポリシーによって、スループット優先ポリシーとターンアラウンド優先ポリシーとのどちらかを、任意に選択できるようにした。これにより、顧客のニーズに応じて、スループットを優先したり、ターンアラウンドを優先したりすることができる。すなわち、本実施の形態では、プロセスが割当てられていないタイムスロットで、並列プロセスを動作させるか否かを、システム単位で指定することが可能となった。
たとえば、課金を気にせずに、頻繁に同期をとらない並列プロセスが主に実行されるようなシステムではスループット優先ポリシーを選択し、何も割当てられでいないタイムスロットでいずれかのプロセスを動作させる。これにより、システム全体でのスループットが向上する。しかも、空きタイムスロットで実行するプロセスを選択する際の優先順位を、対話型プロセス、非並列プロセス、並列プロセスの順にしたため、空きタイムスロットで実行される処理において同期待ちが発生する可能性がさらに低くなる。
一方、頻繁に同期をとる並列プロセスが主に実行されるようなシステムでは、何も割当てられでいない空きタイムスロットで並列プロセスを実行しても、CPUの処理能力が無駄に消費されるだけである。この場合、空きタイムスロットで並列プロセスを実行しても、システム全体のスループットが向上しないばかりか、課金にもブレが生じてしまう。このような場合は、ターンアラウンド優先ポリシーに設定することで、何も割り当てられていないタイムスロットでは並列プロセスを実行しないようにすることで、CPUの処理能力が無駄に消費されるのを防止できる。
さらに、複数のCPUが複数のノードに分散している場合、各ノードのCPUで実行されるタイムスロットのサイクルを同期させるようにした。これにより、1つの並列プログラムから生成される複数の並列プロセスを、複数のノードで並列に処理しても、1つのノード内で並列処理したときと同程度の同期待ちしか発生しない。すなわち、複数のノードで並列処理することによる処理効率の低下を防止することが出来る。
なお、上記の例では、マルチCPUにおける並列処理において、プロセスの実行タイミングをスケジュールに合わせて協調動作させるように説明したが、1つのノード内であれば、複数のスレッド間での協調動作をスケジューリングすることもできる。すなわち、タイムスロットの割り当てマップにおいて、スレッド単位で各CPUの処理対象を割り当てることも可能である。
なお、上記の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、CD−ROM(Compact Disk Read Only Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させることができる。また、ネットワークを介して接続されたコンピュータの記憶装置にプログラムを格納しておき、ネットワークを介して接続された他のコンピュータにプログラムを転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行することができる。
以上説明したように本発明では、並列プログラムに対して任意の時間配分率が設定されると、並列プロセスの処理を複数のプロセッサにおいて同時に実行開始し、所定の時間中の時間配分率に応じた時間経過後に、並列プロセスの処理を同時に実行終了するようにした。これにより、並列プログラムを処理する際のプロセッサの処理時間の時間配分率を任意に設定し、ターンアラウンド時間を保証することが可能となる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図面の簡単な説明】
図1は、本発明の原理構成図である。
図2は、本発明の実施の形態を適用したマルチプロセッサ型コンピュータのハードウェア構成例を示す図である。
図3は、本実施の形態を実現するためのOSの機能を示すブロック図である。
図4は、タイムスロット割り当てマップの例を示す図である。
図5は、タイムテーブルの例を示す図である。
図6は、プロセスの優先度を示す図である。
図7は、プロセスの切り替え状況を示すタイムチャートの例である。
図8は、タイムスロット毎のプロセス切り替え処理を示すフローチャートである。
図9は、図4に示したタイムスロット割り当てマップに従ったプロセス切り替え状況を示す図である。
図10は、時間配分率を均等にした場合のプロセス切り替え例を示す図である。
図11は、時間配分率を1対9にした場合のプロセス切り替え例を示す図である。
図12は、時間配分率を2対8にした場合のプロセス切り替え例を示す図である。
図13は、スループット優先ポリシーにおいて、並列プログラムと非並列プログラムとを時分割で処理する場合のプロセス切り替え例を示す図である。
図14は、スループット優先ポリシーにおいて並列プログラム以外に処理すべきプログラムがない場合のプロセス切り替え例を示す図である。
図15は、ターンアラウンド優先ポリシーの場合のプロセス切り替え例を示す図である。
図16は、複数のノードで並列処理を行う場合のシステム構成例を示す図である。
図17は、複数のノード間でのタイムスロット同期処理のフローチャートである。
図18は、ノード間で同期処理が行われた場合の処理プロセスの切り替え状況の例を示す図である。

Claims (14)

  1. 1つの並列プログラムから生成される複数の並列プロセスと他のプロセスとを、複数のプロセッサで時分割で処理するための並列プロセス実行方法において、
    所定の周期の中で前記並列プログラムの処理に割り当てるべき時間配分率を設定し、
    前記並列プログラムの前記各並列プロセスを前記複数のプロセッサ中の1つに割り当て、前記複数のプロセッサにおいて、割り当てられた並列プロセスの処理を同時に実行開始し、
    前記並列プロセスの実行が開始されてからの経過時間が、前記所定の周期内での前記並列プログラムに設定された前記時間配分率に応じた時間に達すると、前記複数のプロセッサにおいて、割り当てられた並列プロセスの実行を同時に終了する、
    ことを特徴とする並列プロセス実行方法。
  2. 前記所定の周期を複数のタイムスロットに分割し、各プロセッサにおいて各タイムスロットで実行すべきプロセスを設定することにより、前記並列プログラムの処理に割り当てるべき時間配分率を設定することを特徴とする請求項1記載の並列プロセス実行方法。
  3. 前記各タイムスロットで実行すべきプロセスには、対話型プロセスが含まれることを特徴とする請求項2記載の並列プロセス実行方法。
  4. プロセスが設定されていない空きタイムスロットにおける処理対象の判断基準があらかじめ定義されており、前記各プロセッサは、前記空きタイムスロットにおいては、前記判断基準に従って、処理対象となるプロセスを選択することを特徴とする請求項2記載の並列プロセス実行方法。
  5. 前記判断基準には、前記空きタイムスロットにおいて、バッチプロセスを実行可能なスループット優先ポリシーと、前記空きタイムスロットにおいて、バッチプロセスを実行しないターンアラウンド優先ポリシーとがあらかじめ用意されており、前記スループット優先ポリシーと前記ターンアラウンド優先ポリシーとから任意に選択できることを特徴とする請求項4記載の並列プロセス実行方法。
  6. 前記スループット優先ポリシーでは、プロセス選択の優先順位の高い方から、対話型プロセス、単一のプロセッサで実行される非並列プロセス、並列プロセスの順番であることを特徴とする請求項5記載の並列プロセス実行方法。
  7. 前記複数のプロセッサが複数のノードに分散して配置されている場合には、各ノードに対して同時に割り込みを発生させ、当該割り込みを前記各ノードが有する各プロセッサに同時に通知し、割り込み発生のタイミングに合わせて前記各プロセッサによる前記所定の周期の計時を開始することを特徴とする請求項1記載の並列プロセス実行方法。
  8. 1つの並列プログラムから生成される複数の並列プロセスと他のプロセスとを時分割で処理するための複数のプロセッサを有するマルチプロセッサ型コンピュータにおいて、
    所定の周期の中で前記並列プログラムの処理に割り当てるべき時間配分率を設定する時間配分率設定手段と、
    前記並列プログラムの前記各並列プロセスを前記複数のプロセッサ中の1つに割り当て、前記複数のプロセッサにおいて、割り当てられた並列プロセスの処理を同時に実行開始させ、前記並列プロセスの実行が開始されてからの経過時間が、前記所定の周期内での前記並列プログラムに設定された前記時間配分率に応じた時間に達すると、前記複数のプロセッサにおいて、それぞれに割り当てられた並列プロセスの実行を同時に終了させるプロセス実行手段と、
    を有することを特徴とするマルチプロセッサ型コンピュータ。
  9. 前記時間配分率設定手段では、前記所定の周期を複数のタイムスロットに分割し、各プロセッサにおいて各タイムスロットで実行すべきプロセスを設定することを特徴とする請求項8記載のマルチプロセッサ型コンピュータ。
  10. プロセスが設定されていない空きタイムスロットにおける各プロセッサの処理対象の判断基準があらかじめ定義されており、
    前記プロセス実行手段は、前記各プロセッサに対して、前記空きタイムスロットにおいては、前記判断基準に従って処理対象となるプロセスを選択させることを特徴とする請求項9記載のマルチプロセッサ型コンピュータ。
  11. 前記判断基準には、前記空きタイムスロットにおいて、バッチプロセスを実行可能なスループット優先ポリシーと、前記タイムスロットにおいて、バッチプロセスを実行しないターンアラウンド優先ポリシーとがあらかじめ用意されており、前記スループット優先ポリシーと前記ターンアラウンド優先ポリシーとから任意に選択できることを特徴とする請求項10記載のマルチプロセッサ型コンピュータ。
  12. 1つの並列プログラムから生成される複数の並列プロセスと他のプロセスとを時分割で処理するための複数のプロセッサが、複数のノードに分散して配置されたマルチプロセッサ型コンピュータにおいて、
    前記複数のノードそれぞれに対して、割り込み通知を同時に発生させる協働制御装置と、
    所定の周期の中で前記並列プログラムの処理に割り当てるべき時間配分率を設定する時間配分率設定手段と、
    前記並列プログラムの前記各並列プロセスを前記複数のプロセッサ中の1つに割り当て、前記複数のプロセッサにおいて、割り当てられた並列プロセスの処理を同時に実行開始させ、前記並列プロセスの実行が開始されてからの経過時間が、前記所定の周期内での前記並列プログラムに設定された前記時間配分率に応じた時間に達すると、前記複数のプロセッサにおいて、それぞれに割り当てられた並列プロセスの実行を同時に終了させる、前記複数のノードそれぞれに設けられた複数のプロセス実行手段と、
    を有することを特徴とするマルチプロセッサ型コンピュータ。
  13. 1つの並列プログラムから生成される複数の並列プロセスと他のプロセスとを、複数のプロセッサで時分割で処理するための並列プロセス実行プログラムにおいて、
    コンピュータに、
    所定の周期の中で前記並列プログラムの処理に割り当てるべき時間配分率を設定し、
    前記並列プログラムの前記各並列プロセスを前記複数のプロセッサ中の1つに割り当て、前記複数のプロセッサにおいて、割り当てられた並列プロセスの処理を同時に実行開始し、
    前記並列プロセスの実行が開始されてからの経過時間が、前記所定の周期内での前記並列プログラムに設定された前記時間配分率に応じた時間に達すると、前記複数のプロセッサにおいて、それぞれに割り当てられた並列プロセスの実行を同時に終了する、
    処理を実行させることを特徴とする並列プロセス実行プログラム。
  14. 1つの並列プログラムから生成される複数の並列プロセスと他のプロセスとを、複数のプロセッサで時分割で処理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
    前記コンピュータに、
    所定の周期の中で、前記並列プログラムの処理に割り当てるべき時間配分率を設定し、
    前記並列プログラムの前記各並列プロセスを前記複数のプロセッサ中の1つに割り当て、前記複数のプロセッサにおいて、割り当てられた並列プロセスの処理を同時に実行開始し、
    前記並列プロセスの実行が開始されてからの経過時間が、前記所定の周期内での前記並列プログラムに設定された前記時間配分率に応じた時間に達すると、前記複数のプロセッサにおいて、それぞれに割り当てられた並列プロセスの実行を同時に終了する、
    処理を実行させることを特徴とする記録媒体。
JP2002568228A 2001-02-28 2001-02-28 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ Expired - Fee Related JP3891936B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2001/001532 WO2002069174A1 (fr) 2001-02-28 2001-02-28 Procede d'execution en parallele de processus et ordinateur a processeurs multiples

Publications (2)

Publication Number Publication Date
JPWO2002069174A1 true JPWO2002069174A1 (ja) 2004-07-02
JP3891936B2 JP3891936B2 (ja) 2007-03-14

Family

ID=11737078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002568228A Expired - Fee Related JP3891936B2 (ja) 2001-02-28 2001-02-28 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ

Country Status (4)

Country Link
US (1) US7406688B2 (ja)
EP (1) EP1365328B1 (ja)
JP (1) JP3891936B2 (ja)
WO (1) WO2002069174A1 (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834358B2 (en) * 2001-03-28 2004-12-21 Ncr Corporation Restartable database loads using parallel data streams
JP3813930B2 (ja) 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
JP2003256221A (ja) * 2002-02-28 2003-09-10 Fujitsu Ltd 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
US7178146B1 (en) * 2002-03-26 2007-02-13 Emc Corporation Pizza scheduler
JP2003345612A (ja) * 2002-05-28 2003-12-05 Sony Corp 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
JP3885748B2 (ja) * 2003-03-13 2007-02-28 日本電気株式会社 グループ単位ギャングスケジューリング方式
JP4750350B2 (ja) 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
US7559060B2 (en) * 2003-06-10 2009-07-07 National Instruments Corporation Time-bounded program execution
US7580914B2 (en) * 2003-12-24 2009-08-25 Intel Corporation Method and apparatus to improve execution of a stored program
WO2005089246A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providiing advanced reservations in a compute environment
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
EP2341432A1 (en) 2004-03-13 2011-07-06 Adaptive Computing Enterprises, Inc. System and method of co-allocating a reservation spanning different compute resources types
WO2005089239A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US7890629B2 (en) * 2004-03-13 2011-02-15 Adaptive Computing Enterprises, Inc. System and method of providing reservation masks within a compute environment
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US20060048160A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor
US7913254B2 (en) * 2004-10-11 2011-03-22 International Business Machines Corporation Method and system for mapping threads or tasks to CPUs in a parallel computer
US7296133B2 (en) * 2004-10-14 2007-11-13 International Business Machines Corporation Method, apparatus, and computer program product for dynamically tuning amount of physical processor capacity allocation in shared processor systems
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US7356770B1 (en) * 2004-11-08 2008-04-08 Cluster Resources, Inc. System and method of graphically managing and monitoring a compute environment
JP4783005B2 (ja) * 2004-11-25 2011-09-28 パナソニック株式会社 プログラム変換装置、プログラム変換実行装置およびプログラム変換方法、プログラム変換実行方法。
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US7996455B2 (en) 2005-06-17 2011-08-09 Adaptive Computing Enterprises, Inc. System and method for providing dynamic roll-back reservations in time
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
ES2614751T3 (es) 2005-04-07 2017-06-01 Iii Holdings 12, Llc Acceso bajo demanda a recursos informáticos
JP4555145B2 (ja) * 2005-04-28 2010-09-29 富士通株式会社 バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
JP4580845B2 (ja) * 2005-08-24 2010-11-17 パナソニック株式会社 タスク実行装置
US8146090B2 (en) 2005-09-29 2012-03-27 Rockstar Bidco, LP Time-value curves to provide dynamic QoS for time sensitive file transfer
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US7967682B2 (en) 2006-04-12 2011-06-28 Bally Gaming, Inc. Wireless gaming environment
JP2008102778A (ja) * 2006-10-19 2008-05-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びプログラム
US9101820B2 (en) 2006-11-09 2015-08-11 Bally Gaming, Inc. System, method and apparatus to produce decks for and operate games played with playing cards
US8920233B2 (en) 2006-11-10 2014-12-30 Bally Gaming, Inc. Assignment template and assignment bundle in a gaming configuration and download system
US9111078B2 (en) 2006-11-10 2015-08-18 Bally Gaming, Inc. Package manager service in gaming system
US9508218B2 (en) 2006-11-10 2016-11-29 Bally Gaming, Inc. Gaming system download network architecture
US8930461B2 (en) 2006-11-13 2015-01-06 Bally Gaming, Inc. Download and configuration management engine for gaming system
US9082258B2 (en) 2006-11-13 2015-07-14 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
US20080178177A1 (en) * 2007-01-19 2008-07-24 Charles Jens Archer Method and Apparatus for Operating a Massively Parallel Computer System to Utilize Idle Processor Capability at Process Synchronization Points
JP4370336B2 (ja) * 2007-03-09 2009-11-25 株式会社日立製作所 低消費電力ジョブ管理方法及び計算機システム
US8286173B2 (en) * 2007-03-23 2012-10-09 Oracle America, Inc. Methods and apparatus for window-based fair priority scheduling
JP2009075827A (ja) * 2007-09-20 2009-04-09 Panasonic Corp プログラム実行装置
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US20090118006A1 (en) 2007-11-02 2009-05-07 Bally Gaming, Inc. Game related systems, methods, and articles that combine virtual and physical elements
US8616958B2 (en) 2007-11-12 2013-12-31 Bally Gaming, Inc. Discovery method and system for dynamically locating networked gaming components and resources
US7809459B2 (en) * 2007-12-31 2010-10-05 Hitachi Global Technologies Netherlands B.V. Advanced-process-control system utilizing a lambda tuner
US8640131B2 (en) * 2008-01-18 2014-01-28 Microsoft Corporation Demand-based processor cycle allocation subsequent to equal group-based processor cycle distribution
US8250577B2 (en) * 2008-04-16 2012-08-21 International Business Machines Corporation Mechanism to enable and ensure failover integrity and high availability of batch processing
US9005034B2 (en) 2008-04-30 2015-04-14 Bally Gaming, Inc. Systems and methods for out-of-band gaming machine management
US9483911B2 (en) * 2008-04-30 2016-11-01 Bally Gaming, Inc. Information distribution in gaming networks
US8856657B2 (en) * 2008-04-30 2014-10-07 Bally Gaming, Inc. User interface for managing network download and configuration tasks
US7509370B1 (en) * 2008-05-15 2009-03-24 International Business Machines Corporation Method for optimizing parallel processing of backend transactions by prioritizing related transactions
US7490327B1 (en) 2008-05-15 2009-02-10 International Business Machines Corporation System and method for programmatic distributed transaction commit prioritization mechanism
US9443377B2 (en) 2008-05-30 2016-09-13 Bally Gaming, Inc. Web pages for gaming devices
US8266213B2 (en) 2008-11-14 2012-09-11 Bally Gaming, Inc. Apparatus, method, and system to provide a multiple processor architecture for server-based gaming
US8175759B2 (en) * 2009-06-22 2012-05-08 Honeywell International Inc. Systems and methods for validating predetermined events in reconfigurable control systems
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10057333B2 (en) 2009-12-10 2018-08-21 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9959572B2 (en) 2009-12-10 2018-05-01 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9979589B2 (en) 2009-12-10 2018-05-22 Royal Bank Of Canada Coordinated processing of data by networked computing resources
EP2510451B1 (en) 2009-12-10 2019-08-28 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US9547528B1 (en) 2010-03-29 2017-01-17 EMC IP Holding Company LLC Pizza scheduler
JP5625710B2 (ja) * 2010-10-05 2014-11-19 富士通セミコンダクター株式会社 シミュレーション装置、方法、及びプログラム
WO2012112302A2 (en) * 2011-02-17 2012-08-23 Siemens Aktiengesellschaft Parallel processing in human-machine interface applications
US9058716B2 (en) 2011-06-06 2015-06-16 Bally Gaming, Inc. Remote game play in a wireless gaming environment
US8713262B2 (en) * 2011-09-02 2014-04-29 Nvidia Corporation Managing a spinlock indicative of exclusive access to a system resource
US8974305B2 (en) 2012-01-18 2015-03-10 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US9120007B2 (en) 2012-01-18 2015-09-01 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US20130247069A1 (en) * 2012-03-15 2013-09-19 International Business Machines Corporation Creating A Checkpoint Of A Parallel Application Executing In A Parallel Computer That Supports Computer Hardware Accelerated Barrier Operations
JP5874811B2 (ja) * 2012-03-19 2016-03-02 富士通株式会社 情報処理方法、プログラム、および情報処理装置
US9483324B2 (en) * 2012-06-26 2016-11-01 Nec Corporation Program conversion device and method, process switching method, method of determining execution scheme and program storage medium therefor, processor system, and parallel execution scheme
CN103226495B (zh) * 2013-04-28 2016-06-08 杭州华三通信技术有限公司 一种可倒换进程分配方法及设备
US20150205633A1 (en) * 2013-05-24 2015-07-23 Google Inc. Task management in single-threaded environments
US9632844B2 (en) * 2013-12-12 2017-04-25 International Business Machines Corporation Non-preemption of a group of interchangeable tasks in a computing device
US20150253463A1 (en) * 2014-03-04 2015-09-10 Universiti Brunei Darussalam Generating an Ensemble of Forecasting Models
DE102014216381A1 (de) * 2014-08-19 2016-03-10 Robert Bosch Gmbh Steuergerät und Betriebsverfahren hierfür
US10031779B2 (en) * 2016-03-30 2018-07-24 Konica Minolta Laboratory U.S.A., Inc. Managing computing resources and reducing execution time using parallel processes
US20170286561A1 (en) * 2016-04-04 2017-10-05 International Business Machines Corporation System and method to accelerate accessing content
JP6838222B2 (ja) * 2016-04-28 2021-03-03 日立Astemo株式会社 車両制御装置、及び車両システム
JP2018011258A (ja) * 2016-07-15 2018-01-18 日本電気株式会社 処理制御装置、処理制御方法及びプログラム
US10783165B2 (en) * 2017-05-17 2020-09-22 International Business Machines Corporation Synchronizing multiple devices
WO2021100122A1 (ja) * 2019-11-19 2021-05-27 三菱電機株式会社 設計支援システムおよび設計支援プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2131406C (en) * 1993-09-21 2002-11-12 David D'souza Preemptive multi-tasking with cooperative groups of tasks
JPH1074150A (ja) * 1996-06-28 1998-03-17 Fujitsu Ltd プロセススケジューリング方法ならびにそのためのプロセススケジューリング装置およびプログラム記憶媒体

Also Published As

Publication number Publication date
EP1365328B1 (en) 2013-09-04
EP1365328A4 (en) 2005-12-07
US20040064817A1 (en) 2004-04-01
WO2002069174A1 (fr) 2002-09-06
EP1365328A1 (en) 2003-11-26
US7406688B2 (en) 2008-07-29
JP3891936B2 (ja) 2007-03-14

Similar Documents

Publication Publication Date Title
JP3891936B2 (ja) 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
JP2003256221A (ja) 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
JPH0659906A (ja) 並列計算機の実行制御方法
JPH0756634B2 (ja) チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム
KR20050016170A (ko) 실시간 동작 수행방법 및 시스템
JPH03144847A (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
JP2005251184A (ja) マルチノード型コンピュータ・システムにおいてリソースを管理する装置、方法、およびプログラム
JP5458998B2 (ja) 仮想マシンシステムおよび仮想マシン管理方法
JP2011044165A (ja) システムにおける要求のスケジューリング
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP5891284B2 (ja) コンピュータシステム、カーネルスケジューリングシステム、リソース割当方法及びプロセス実行共有方法
JP5820525B2 (ja) 仮想計算機のスケジュールシステム及びその方法
JP5676845B2 (ja) コンピュータシステム、カーネルスケジューリングシステム、リソース割当方法及びプロセス実行共有方法
WO2013001614A1 (ja) データ処理方法およびデータ処理システム
Atlas et al. Design and implementation of statistical rate monotonic scheduling in KURT Linux
Sodan Loosely coordinated coscheduling in the context of other approaches for dynamic job scheduling: a survey
JP2015141584A (ja) 情報処理装置、情報処理方法およびプログラム
Piel et al. Load-balancing for a real-time system based on asymmetric multi-processing
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
Jette et al. Gang scheduler-timesharing the cray t3d
JPH0877026A (ja) 情報処理方法とその装置
Ruda et al. Scheduling virtual grids: the magrathea system
JP2667575B2 (ja) タスクスケジューリング方式
JP2003186686A (ja) リソース制御装置、方法及び記憶媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131215

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees