JP3931883B2 - Job scheduling method, computer system, and job scheduling program - Google Patents
Job scheduling method, computer system, and job scheduling program Download PDFInfo
- Publication number
- JP3931883B2 JP3931883B2 JP2004016945A JP2004016945A JP3931883B2 JP 3931883 B2 JP3931883 B2 JP 3931883B2 JP 2004016945 A JP2004016945 A JP 2004016945A JP 2004016945 A JP2004016945 A JP 2004016945A JP 3931883 B2 JP3931883 B2 JP 3931883B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- name
- jobs
- queue
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、計算機システムにおいてジョブの実行順序を制御するジョブスケジューリング方法に関し、特に、複数のジョブを並列に実行する手段を備えた計算機システムにおけるジョブの実行スケジューリング方法に関する。 The present invention relates to a job scheduling method for controlling the job execution order in a computer system, and more particularly to a job execution scheduling method in a computer system provided with means for executing a plurality of jobs in parallel.
ジョブを並列に実行可能なシステムでは、中央処理装置(CPU)や入出力チャネルなどの共有資源が実行上の制限となり、また、ジョブによってそれぞれどの資源をどれだけ使用するのかが異なるため、資源を効率よく利用するためにジョブのスケジューリングが必要である。従来のジョブスケジューリング方法では、ユーザが資源利用の予測情報をシステムに入力したり、あらかじめ実行するジョブの解析やエミュレーションを行って資源利用の予測を行い、利用資源量に応じてジョブをスケジューリングするなどの方法がとられていた(例えば、特許文献1参照。)。 In a system that can execute jobs in parallel, shared resources such as the central processing unit (CPU) and I / O channels are limited in execution, and the resources that are used differ depending on which resources are used. Job scheduling is necessary for efficient use. In the conventional job scheduling method, the user inputs resource usage prediction information into the system, analyzes the job to be executed in advance and performs emulation, predicts resource usage, and schedules jobs according to the amount of resources used, etc. (See, for example, Patent Document 1).
しかし、ユーザが資源利用の予測情報をシステムに入力する方法では、ユーザに資源利用の予測という負担がかかり、さらにその予測は目安的なものに過ぎず正確性に欠けるという課題がある。また、ジョブの解析やエミュレーションを行って資源利用の予測を行う方法では、その作業自体に時間や資源が必要となるという問題がある。 However, in the method in which the user inputs the resource use prediction information to the system, there is a problem that the user is burdened with the resource use prediction, and the prediction is only a guideline and lacks accuracy. Further, the method of predicting resource usage by performing job analysis or emulation has a problem that time and resources are required for the work itself.
そこで、本発明は、ユーザによる入力を必要とせず、かつシステムの資源の使用を抑えて簡便にジョブのスケジューリングを行うことができるジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラムを提供することを目的とする。 Therefore, an object of the present invention is to provide a job scheduling method, a computer system, and a job scheduling program that do not require input by a user and that can perform job scheduling simply while suppressing the use of system resources. To do.
本発明によるジョブスケジューリング方法は、複数のジョブを並列に実行可能な計算機システムにおいて、新たなジョブを実行可能になったときに、実行中のジョブの数が最も少ないものに対応するジョブの名称を持つジョブを実行させることを特徴とする。 In the job scheduling method according to the present invention, when a new job can be executed in a computer system capable of executing a plurality of jobs in parallel, the name of the job corresponding to the one having the smallest number of jobs being executed is selected. It is characterized in that the job it has is executed .
スケジューリング方法は、ジョブの名称に応じて実行中および待機中のジョブ数が設定されたテーブルを用いるように構成されていてもよい。 The scheduling method may be configured to use a table in which the number of jobs being executed and waiting is set according to job names.
本発明による計算機システムは、複数のジョブを並列に実行するジョブ実行手段と、待機中のジョブを保持するジョブキューと、新たなジョブを実行可能になったときに、ジョブキューに保持されているジョブのうち実行中のジョブの数が最も少ないものに対応するジョブの名称を持つジョブをジョブ実行手段に渡すジョブスケジューリング手段とを備えたことを特徴とする。 The computer system according to the present invention holds job execution means for executing a plurality of jobs in parallel, a job queue for holding a waiting job, and a job queue when a new job can be executed . Job scheduling means is provided for passing a job having a job name corresponding to a job having the smallest number of jobs being executed to a job execution means.
ジョブ実行手段が新たなジョブを実行可能になったときに、ジョブスケジューリング手段が、ジョブ実行手段が実行中のジョブにおける同一ジョブ名称を持つジョブの数が最も少ないものの名称と一致する名称を持つジョブを、ジョブキューから取り出してジョブ実行手段に渡すように構成されていてもよい。 When the job execution means becomes able to execute a new job, the job scheduling means has a name that matches the name of the job with the smallest number of jobs having the same job name in the job being executed by the job execution means. May be extracted from the job queue and passed to the job execution means.
ジョブスケジューリング手段が、ジョブの名称に応じてジョブ実行手段で実行中およびジョブキューで待機中のジョブ数が設定されるテーブルを有し、ジョブ実行手段が新たなジョブを実行可能になったときに、テーブルにおける実行中のジョブ数が最も少ないものに対応するジョブの名称を持つジョブをジョブ実行手段に渡すように構成されていてもよい。その場合、ジョブキューは、ジョブの名称に応じて区分されている。 When the job scheduling means has a table in which the number of jobs being executed by the job execution means and waiting in the job queue is set according to the job name, and the job execution means becomes capable of executing a new job The job having the name of the job corresponding to the job having the smallest number of jobs in execution in the table may be passed to the job execution means. In that case, the job queue is divided according to the name of the job.
ジョブスケジューリング手段が、ジョブのキューイング要求があった場合、そのジョブのジョブ名称がテーブルに存在しないときには、そのジョブ名称に応じた欄(ジョブの名称、実行中のジョブ数および待機中のジョブ数が設定される欄)を作成し、ジョブ実行手段からジョブの終了が通知されたときに、そのジョブのジョブ名称に応じた欄の実行中のジョブ数を1減算し減算後のジョブ数が0になるとその欄を削除するように構成されていることが好ましい。 If the job scheduling means receives a job queuing request and the job name of the job does not exist in the table, the fields corresponding to the job name (job name, number of jobs being executed, number of jobs waiting) When the end of the job is notified from the job execution means, the number of jobs being executed in the column corresponding to the job name of the job is decremented by 1, and the number of jobs after subtraction is 0. In such a case, it is preferable that the column is deleted.
本発明によるジョブスケジューリングプログラムは、複数のジョブを並列に実行するジョブ実行手段と、待機中のジョブを保持するジョブキューとを備えたコンピュータに、ジョブ実行手段が新たなジョブを実行可能になったときに、ジョブ実行手段が実行中のジョブにおける同一ジョブ名称を持つジョブの数が最も少ないものの名称と一致する名称を持つジョブを、ジョブキューから取り出してジョブ実行手段に渡す処理を実行させることを特徴とする。 According to the job scheduling program of the present invention, a job execution unit can execute a new job on a computer including a job execution unit that executes a plurality of jobs in parallel and a job queue that holds a waiting job. Sometimes, a job having a name that matches the name of the job with the smallest number of jobs having the same job name among jobs being executed by the job execution means is taken out of the job queue and passed to the job execution means. Features.
本発明によれば、効率的な資源利用を図るジョブスケジューリングを、ユーザの負担がなくかつ少ないシステム資源の消費で行える効果がある。 According to the present invention, there is an effect that job scheduling for efficient use of resources can be performed without consuming the user's burden and using less system resources.
実施の形態1.
次に、本発明の実施の形態を図面を参照して説明する。図1を参照すると、本発明の第1の実施の形態のジョブスケジューリング方法を実施する計算機システムは、実行すべきジョブ(待機中のジョブ)を保持するジョブキュー102と、ジョブキュー102に存在するジョブから次に実行すべきジョブを選択するジョブスケジューリング手段101と、ジョブを実行するジョブ実行手段103と、ジョブ実行の際に使用される入出力資源105と、計算能力資源(以下、計算資源という。)106と、メモリ資源107とを含む。また、ジョブ実行手段103は、実際にジョブを実行する複数のジョブ実行ユニット(Thread)104を含む。ジョブキュー102には、ユーザや実行中のジョブから、実行すべきジョブが入れられていく。
Next, embodiments of the present invention will be described with reference to the drawings. Referring to FIG. 1, a computer system that executes the job scheduling method according to the first embodiment of this invention exists in a
入出力資源105は、具体的には計算機システムにおける入出力チャネルである。計算資源106は、具体的には、計算機システムにおける中央処理装置(CPU)であったり、特定種類の演算に特化した構造のハードウェアやソフトウェアである。メモリ資源107は、具体的には、計算機システムにおける磁気ディスク等である。また、ジョブ実行手段103は、例えば、ジョブの実行管理(起動、一時停止、終了などの管理)を行うジョブ管理プログラムである。それぞれのジョブは、ジョブ実行ユニット104で管理される。ジョブスケジューリング手段101は、具体的には、ジョブスケジューリングプログラムである。そして、ジョブキュー102は、RAM等の記憶装置に形成される。なお、ジョブキュー102には、ジョブ(プログラム)そのものが保持されるのではなく、ジョブを特定可能な情報のみが保持されるようにしてもよい。
The input /
ジョブスケジューリング手段101は、ジョブキュー102にジョブが存在する場合に、ジョブ実行手段103において新規ジョブを実行することのできるジョブ実行ユニット104の空きがあれば、以下に説明するような定められたスケジューリング方法に従ってジョブキュー102からジョブを選択してジョブ実行手段103に渡す。ジョブ実行手段103は、ジョブスケジューリング手段101より渡された新規ジョブを空いているジョブ実行ユニット104に実行させる。
If there is a job in the
図2に示すように、実行されるジョブには、実行に必要な手順を示す手順情報の他に、ジョブ実行時のパラメータなどを示す属性情報、ジョブ名称、およびジョブを所有しているユーザ名などのジョブ自体の属性を示すメタ情報が付加されている。メタ情報は、ジョブIDとジョブ名称とを含む。ジョブIDとは、個々のジョブを一意に識別するための識別子である。ジョブ名称とは手順情報を識別するための識別子である。一般的な計算機システムにおいて、手順情報は、プログラムの各ステップ(ジョブステップ、アクティビティ)に相当する。属性情報は、プログラムに与えられるパラメータや環境情報に相当する。メタ情報のジョブIDはプロセスIDに相当し、ジョブ名称はプログラムの名称に相当する。 As shown in FIG. 2, the job to be executed includes, in addition to procedure information indicating a procedure necessary for execution, attribute information indicating a parameter at the time of job execution, a job name, and a user name owning the job Meta information indicating the attributes of the job itself is added. The meta information includes a job ID and a job name. The job ID is an identifier for uniquely identifying each job. The job name is an identifier for identifying procedure information. In a general computer system, procedure information corresponds to each step (job step, activity) of a program. The attribute information corresponds to parameters or environment information given to the program. The job ID in the meta information corresponds to a process ID, and the job name corresponds to a program name.
次に、図1、図2および図3を参照して本実施の形態の動作について説明する。図3は、ジョブスケジューリング手段101がジョブキュー102にある実行待ちジョブをジョブ実行手段103に渡すスケジューリング方法を示すフローチャートである。ジョブスケジューリング手段101は、ジョブ実行手段103においてジョブ実行ユニット104の空きを検知すると、ジョブキュー103に実行待ちジョブがあるかどうかを確認する。
Next, the operation of the present embodiment will be described with reference to FIG. 1, FIG. 2, and FIG. FIG. 3 is a flowchart illustrating a scheduling method in which the
この例では、ジョブキュー102に5個のジョブが存在し、そのジョブ名称が先頭のジョブから順に「ファイル読み込み」、「ファイル読み込み」、「内容比較」、「内容比較」、「整合性検査」であるとする。また、ジョブ実行手段103にジョブ実行ユニット104が5個あり、そのうち4個がジョブを実行中で、その実行中のジョブのジョブ名称がそれぞれ、「ファイル読み込み」、「ファイル読み込み」、「内容比較」、「整合性検査」であるとする。
In this example, there are five jobs in the
実行待ちジョブがある場合には、ジョブスケジューリング手段101は、図3に示す手順によってジョブ実行手段103に渡すジョブの選択を行う。まず、カウンタNを0に設定する(ステップS101)。
When there is a job waiting for execution, the
次に、ジョブキュー102内のジョブのジョブ名称のうち、ジョブ実行手段103内で実行中のジョブにそのジョブ名称がN個あるかどうかを検査する(ステップS102)。最初はN=0であるから、N個あるかどうかは、存在しないかどうかを意味する。すなわち、存在しないジョブ名称があるかどうか検査される。この例では、ジョブキュー102には、ジョブ実行手段103で実行中のいずれかのジョブのジョブ名称に一致しないジョブ名称のジョブは存在しないので、ステップS102の判定結果は偽(「N」)となり、ステップS103に進む。
Next, it is checked whether there are N job names in the
ステップS103では、Nに1を加算してステップS102に戻る。この段階では、Nを1としてステップS102に戻る。ステップS102では、上記のように、ジョブキュー102内のジョブのジョブ名称のうち、ジョブ実行手段103内で実行中のジョブにそのジョブ名称がN個(この段階では1個)存在するジョブ名称があるかどうかを検査する。この例では、「内容比較」および「整合性検査」がジョブ実行手段103にそれぞれ1個存在するジョブのジョブ名称であるので、ステップS102の判定結果は真(「Y」)となりステップS104に進む。
In step S103, 1 is added to N, and the process returns to step S102. At this stage, N is set to 1 and the process returns to step S102. In step S102, as described above, among job names of jobs in the
ステップS104において、ジョブキュー102に存在するジョブ名称であって、ジョブ実行手段103にN個存在するジョブ名称のリスト(リストAとする。)を作成する。この状態では「内容比較」および「整合性検査」がリストAの内容となる。
In step S104, a list of job names that exist in the
次いで、ジョブキュー102の先頭から、ステップS104で作成したリストAに含まれているジョブ名称のジョブを探していき、見つかったらそのジョブをジョブキュー102より取り出してジョブ実行手段103に渡す。この例では、ジョブキュー102において先頭から3番目の「内容比較」のジョブ名称を持つジョブがジョブ実行手段103に渡され、実行されることになる。
Next, the job of the job name included in the list A created in step S104 is searched from the head of the
ここでは、ジョブキュー102に存在するジョブのジョブ名称と一致するジョブ名称を持つジョブが、ジョブ実行手段103において1個存在する場合を例示した。ジョブキュー102に存在するジョブのジョブ名称と一致するジョブ名称を持つジョブが、ジョブ実行手段103にない場合、すなわち、N=0でステップS102の判定結果が「Y」の場合には、1回目の判定で、ステップS102からS104に移行する。例えば、ジョブ実行手段103において実行されているジョブの名称が「B」、「C」、「D」、「E」であって、ジョブキュー102に存在するジョブのジョブ名称が、順に、「F」、「G」、「I」の場合である。その場合には、ステップS105で、ジョブ名称「F」のジョブがジョブ実行手段103に新たに投入される。
Here, the case where one job having a job name that matches the job name of the job existing in the
また、例えば、ジョブ実行手段103において実行されているジョブの名称が「B」、「B」、「C」、「C」であって、ジョブキュー102に存在するジョブのジョブ名称が、順に、「B」、「C」である場合には、ジョブキュー102に存在するジョブのジョブ名称と一致するジョブ名称を持つジョブが、ジョブ実行手段103において2個存在する。よって、そのような場合には、N=2でステップS102の判定結果が「Y」になるので、3回目に実行されるステップS102の判定で、ステップS102からS104に移行する。その場合には、ステップS105で、ジョブ名称「B」のジョブがジョブ実行手段103に新たに投入される。この例を第1の例とする。
Further, for example, the names of the jobs executed in the
さらに、例えば、ジョブ実行手段103において実行されているジョブの名称が「B」、「B」、「B」、「C」であって、ジョブキュー102に存在するジョブのジョブ名称が、順に、「B」、「C」である場合には、ジョブキュー102に存在するジョブのジョブ名称と一致するジョブ名称(この例では「C」)を持つジョブが、ジョブ実行手段103において1個存在する。よって、そのような場合には、N=1でステップS102の判定結果が「Y」になるので、2回目に実行されるステップS102の判定で、ステップS102からS104に移行する。その場合には、ステップS105で、ジョブ名称「C」のジョブがジョブ実行手段103に新たに投入される。この例を第2の例とする。
Further, for example, the names of jobs executed in the
以上のような処理によって、ジョブ実行手段103において実行されているジョブのジョブ名称とはできるだけ異なるジョブ名称を持つジョブが、ジョブ実行手段103に新たに投入される。より具体的には、ジョブキュー102に存在するジョブのジョブ名称と一致するジョブ名称を持つジョブがジョブ実行手段103にない場合には当然にジョブキュー102に存在するいずれかのジョブ(上記の例では、ジョブキュー102の先頭に存在するジョブ)がジョブ実行手段103に投入されるのであるが、ジョブキュー102に存在するジョブのジョブ名称と一致するジョブ名称を持つジョブがジョブ実行手段103に存在する場合には、ジョブ実行手段103に存在するジョブのうち、同一ジョブ名称を持つジョブの数(「1」が最小)が少ないものの名称(第1の例では「B」、第2の例では「C」)と一致する名称を持つジョブが、ジョブ実行手段103に新たに投入される。
Through the processing described above, a job having a job name that is as different as possible from the job name of the job being executed by the
実施の形態2.
次に、本発明の第2の実施の形態について図面を参照して説明する。図4を参照すると、本発明の第2の実施の形態のジョブスケジューリング方法を実施する計算機システムは、実行すべきジョブを保持する複数のジョブキューn(n:自然数)を含むジョブキュー402と、ジョブキュー402に存在するジョブから次に実行すべきジョブを選択するジョブスケジューリング手段401と、ジョブを実行するジョブ実行手段103と、ジョブ実行の際に使用される入出力資源105と、計算資源106と、メモリ資源107とを含む。
Next, a second embodiment of the present invention will be described with reference to the drawings. Referring to FIG. 4, a computer system that implements the job scheduling method according to the second embodiment of the present invention includes a
ジョブスケジューリング手段201内には、図5に示されるようなジョブ情報テーブル408が存在する。図5に示す例では、ジョブ情報テーブル408には、実行ジョブ数、キュージョブ数およびジョブキュー番号が、ジョブ名称に対応して設定されている。実行ジョブ数は、ジョブ実行手段103において実行されているジョブの数を示す。キュージョブ数は、ジョブキュー402に存在するジョブの数を示す。ジョブキュー番号は、ジョブキュー402におけるジョブキューnの順番を示す。
In the job scheduling unit 201, there is a job information table 408 as shown in FIG. In the example shown in FIG. 5, the job information table 408 is set with the number of execution jobs, the number of queue jobs, and the job queue number corresponding to the job name. The number of execution jobs indicates the number of jobs being executed by the
ジョブ実行手段103は、実際にジョブを実行する複数のジョブ実行ユニット104を含む。ジョブスケジューリング手段401は、動的にジョブキューnを生成したり消滅させる。ジョブキューnには、実行すべきジョブが入れられていく。ジョブスケジューリング手段201は、システムによりジョブ実行の要求があった場合、すなわち、例えばユーザや実行中のジョブからジョブ実行の要求があった場合に、定められた方法によりジョブ情報テーブル408を更新しジョブをジョブキューnに入れる。以上に説明したように、ジョブキュー402には、ジョブ名称に対応したジョブキューn(n:自然数)が存在しうる。そして、生成された各ジョブキューnには1つ以上のジョブが保持される。
The job execution means 103 includes a plurality of
また、ジョブスケジューリング手段401は、ジョブキュー402にジョブが存在する場合、ジョブ実行手段103において新規ジョブを実行することのできるジョブ実行ユニット104の空きがあれば、定められたスケジューリング方法に従ってジョブ情報テーブル408を更新する。さらに、ジョブキュー402からジョブを選択してジョブ実行手段103に渡す。ジョブ実行手段103は、ジョブスケジューリング手段401から渡された新規ジョブを空いているジョブ実行ユニット104に実行させる。また、ジョブの実行が終わった場合には、定められた方法でジョブスケジューリング手段401にジョブの終了を通知する。
Further, the
なお、実行されるジョブには、第1の実施形態におけるジョブと同様に、実行に必要な手順を示す手順情報の他に、ジョブ実行時のパラメータなどを示す属性情報、ジョブ名称、およびジョブを所有しているユーザ名などのジョブ自体の属性を示すメタ情報が付加されている。 Note that the job to be executed includes attribute information indicating job execution parameters, a job name, and a job in addition to the procedure information indicating the procedure necessary for execution, as in the job in the first embodiment. Meta information indicating the attributes of the job itself such as the user name owned is added.
次に、図4〜図8を参照して本実施の形態の動作について説明する。まず、システムによりジョブをキューに入れる要求があった場合のジョブスケジューリング手段401の動作を説明する。図6は、ジョブスケジューリング手段401が要求のあったジョブをジョブキュー402に入れる方法を示すフローチャートである。ジョブスケジューリング手段401は、システムによりジョブのキューイング要求があった場合、ジョブ情報テーブル408を参照する。そして、ジョブ名称欄における名称Nがジョブキュー402に入れようとしているジョブのジョブ名称と一致している行が、ジョブ情報テーブル408に存在するかどうかを確認する(ステップS201)。例えば、ジョブキュー402に入れようとしているジョブのジョブ名称が「ファイル読み込み」(N=「ファイル読み込み」)であった場合、ジョブスケジュール手段401は、ジョブ情報テーブル408の行でジョブ名称欄の値が「ファイル読み込み」であるような行が存在するかどうかを確認する。
Next, the operation of the present embodiment will be described with reference to FIGS. First, the operation of the
ジョブ名称欄の値が「ファイル読み込み」であるような行が存在する場合には、ジョブスケジューリング手段401は、ステップS202で、この行のジョブキュー番号を取得する。ジョブ情報テーブル408が図5に示すような状態であった場合には、ジョブキュー番号(Jとする。)は3である。また、この行のジョブキュー数を1増やす。図5に示す例では、ジョブキュー数は2から3に変更される。そして、ジョブスケジューリング手段401は、ステップS205で、ジョブキュー402におけるジョブキューJ(この例ではジョブキュー3)にジョブを入れる。
If there is a line whose value in the job name column is “read file”, the
ステップS201において、ジョブ名称欄における名称がジョブキュー402に入れようとしているジョブのジョブ名称と一致している行が、ジョブ情報テーブル408に存在しなかった場合には、ジョブスケジューリング手段401は、新たにジョブキューnを作成し、一意なジョブキュー番号を付加する(ステップS203)。ここで、新たに生成されたジョブキューnのジョブキュー番号を3(J=3、またn=3)とする。
In step S201, if the job information table 408 does not include a line in the job name column that matches the job name of the job to be entered in the
次いで、ジョブスケジューリング手段401は、ステップS204で、ジョブ情報テーブル408に新たな行を追加する。新規に追加される行の各欄の値は、ジョブ名称欄がキューに入れようとしているジョブ名称、ジョブ実行数欄が0、キュージョブ数欄が1、ジョブキュー番号欄がステップS203で新規に作成したジョブキューnに対応するジョブキュー番号である。この例では、ジョブ名称欄は「ファイル読み込み」、ジョブキュー番号欄は3になる。そして、ジョブスケジューリング手段401は、ステップS205で、ステップS203で新規に作成したジョブキューnに、キューに入れようとしていたジョブを入れる。ここでは、ジョブキュー402におけるジョブキュー番号3のジョブキューすなわちジョブキュー3にジョブを入れる。
Next, the
次に、ジョブ実行手段103においてジョブ実行ユニット104に空きができ、新規にジョブを実行する際のジョブスケジューリング手段401の動作を説明する。図7は、ジョブスケジューリング手段401が新規ジョブをジョブ実行手段103に渡す方法のフローチャートである。
Next, the operation of the
ジョブスケジューリング手段401は、新規ジョブをジョブ実行手段103に渡す際に、ジョブ情報テーブル408の行のうち、ジョブ実行数が一番少ない行を一つ選択する(ステップS301)。選択された行を行Pとする。例えば、ジョブ情報テーブル408が図5に示すように形成されている場合には、「整合性検査」か「内容比較」のどちらかの行を選択する。このように、ジョブ実行数が一番少ない行が複数あった場合には、あらかじめ定められた決定方法によって、どの行を選択するか決定する。この決定方法には、キュージョブ数を用いる方法、ジョブキュー番号を用いる方法などが考えられる。ここでは、ジョブキュー番号を用いる方法を採用して、ジョブキュー番号が小さい「内容比較」を選んだとする。
When the
次に、ジョブスケジューリング手段401は、ステップS301で選んだ行Pのジョブキュー番号(Kとする。)を取得する(ステップS302)。この例では、その値は1である。さらに、同行のキュージョブ数を1減らし、代わりに実行ジョブ数を1増やす。この例では、キュージョブ数は1になり、実行ジョブ数は2になる。そして、ジョブスケジューリング手段401は、ステップS302で取得したジョブキュー番号Kのジョブキューからジョブを一つ取り出し、ジョブ実行手段103に渡す(ステップS303)。
Next, the
次に、ジョブ実行手段103がジョブを終了した場合のジョブスケジューリング手段401の動作を説明する。図8は、ジョブスケジューリング手段401がジョブ実行手段103からジョブの終了を通知された場合の動作を示すフローチャートである。
Next, the operation of the
ジョブスケジューリング手段401は、ジョブ実行手段103からジョブの終了を通知された場合に、終了したジョブのジョブ名称Mをジョブ実行手段103から取得する(ステップS401)。終了したジョブのジョブ名称の通知はジョブ終了の通知とともになされてもよい。ここでは、例えば「整合性検査」というジョブ名称のジョブが終了したとする(M=「整合性検査」)。
When the
次に、ジョブスケジューリング手段401は、ジョブ情報テーブル408から、ジョブ名称欄の値がステップS401で取得したジョブ名称Mと一致する行を取得する(ステップS402)。取得された行を行Sとする。ジョブ情報テーブル408が図5に示すように形成されていた場合には、ジョブ名称「整合性検査」に対応する最初の行を取得する。次いで、ジョブスケジューリング手段401は、ステップS402で取得したジョブ情報テーブル408の行のジョブ実行数欄の値を1減らす(ステップS403)。ジョブ情報テーブ408が図5に示すように形成されていた場合には、先頭の行のジョブ実行欄の値を1から0にする。
Next, the
さらに、ジョブスケジューリング手段401は、ステップS402で取得したジョブ情報テーブル408の行Sの、ジョブ実行欄の値とキュージョブ数欄の値がともに0であるかどうかを検査する(ステップS404)。ステップS404の検査結果が真(「Y」)である場合には、ジョブスケジューリング手段401は、ステップS402で取得したジョブ情報テーブル408の行Sをジョブ情報テーブルから削除して処理を終了する。ステップS404の検査結果が偽(「N」)である場合には、ジョブスケジューリング手段401は何もせず処理を終了する。
Further, the
以上のように、本実施の形態でも、ステップS301において、ジョブ名称で区分されているジョブ情報テーブル408の行のうち、ジョブ実行数が一番少ない行を一つ選択し、選択した行に対応するジョブをジョブ実行手段103に渡すので、ジョブ実行手段103において実行されているジョブのジョブ名称とはできるだけ異なるジョブ名称を持つジョブが、ジョブ実行手段103に新たに投入される。
As described above, also in the present embodiment, in step S301, one of the rows of the job information table 408 divided by job name is selected with the smallest number of job executions and corresponds to the selected row. Since the job to be executed is transferred to the
上記の各実施の形態では、効率的な資源利用を図るジョブスケジューリングを、ユーザの負担がなくかつ少ないシステム資源の消費で行える。効率的な資源利用が図れる理由は、一般に、ジョブ名称が同じジョブでは、ジョブの動作自体は同じで、異なるのはジョブに与えられるパラメータであり、資源利用の性質が似る傾向にあることによる。また、各ジョブが、大きなジョブの一部をなしているような場合には、各ジョブは入出力部分、計算部分など機能毎に特化していることが多く、ジョブ名称が異なれば資源利用の性質が異なる傾向にあることよる。すなわち、実行するジョブ名称を分散させることで、ジョブの資源利用性質が分散し、資源が効率的に利用される。 In each of the above embodiments, job scheduling for efficient resource use can be performed without user burden and with low system resource consumption. The reason why efficient resource use can be achieved is that, in general, jobs with the same job name have the same job operation, and the difference is a parameter given to the job, and the nature of resource use tends to be similar. In addition, when each job is part of a large job, each job is specialized for each function, such as input / output part and calculation part. This is because the properties tend to be different. In other words, by distributing the names of jobs to be executed, the resource usage characteristics of jobs are distributed, and resources are used efficiently.
また、ユーザの負担がない理由は、ジョブの資源予測をユーザが入力しなくてよいからである。 Also, the reason that there is no burden on the user is that the user does not have to input job resource prediction.
そして、システム資源の消費が少ない理由は、上記の各実施の形態の方式が事前のエミュレーションを必要としないので、スケジューリング自体に必要なシステム資源を少なくすることができるためである。さらに、上記の各実施の形態のスケジューリング方法で使用するジョブ名称は、一般的なシステムではジョブに必ず付加されている情報であり、これを利用するためにユーザやシステムには負担が増加しないためである。 The reason for the low consumption of system resources is that the system according to each of the above embodiments does not require prior emulation, so that the system resources necessary for scheduling itself can be reduced. Furthermore, the job name used in the scheduling method of each of the above embodiments is information that is always added to the job in a general system, and the burden on the user and system does not increase to use this information. It is.
本発明は、複数のジョブを並列に実行可能な計算機システムに効果的に適用できる。 The present invention can be effectively applied to a computer system capable of executing a plurality of jobs in parallel.
101 ジョブスケジューリング手段
102 ジョブキュー
103 ジョブ実行手段
104 ジョブ実行ユニット
105 入出力資源
106 計算能力資源(計算資源)
107 メモリ資源
401 ジョブスケジューリング手段
402 ジョブキュー
408 ジョブ情報テーブル
101
107
Claims (8)
新たなジョブを実行可能になったときに、実行中のジョブの数が最も少ないものに対応するジョブの名称を持つジョブを実行させることを特徴とするジョブスケジューリング方法。 A job scheduling method for performing job scheduling in a computer system capable of executing a plurality of jobs in parallel by a job name of a job being executed ,
A job scheduling method comprising: executing a job having a job name corresponding to a job having the smallest number of jobs being executed when a new job can be executed .
請求項1記載のジョブスケジューリング方法。 Job scheduling method of claim 1, wherein using a table the number of jobs is set in and during standby executed according to the job name.
複数のジョブを並列に実行するジョブ実行手段と、
待機中のジョブを保持するジョブキューと、
実行中のジョブのジョブ名称によりジョブをスケジューリングする手段であって、新たなジョブを実行可能になったときに、前記ジョブキューに保持されているジョブのうち実行中のジョブの数が最も少ないものに対応するジョブの名称を持つジョブを前記ジョブ実行手段に渡すジョブスケジューリング手段とを備えた
ことを特徴とする計算機システム。 In a computer system that can execute multiple jobs in parallel,
Job execution means for executing a plurality of jobs in parallel;
A job queue that holds waiting jobs, and
A means for scheduling a job based on the job name of the job being executed, and having the smallest number of jobs being executed among the jobs held in the job queue when a new job can be executed And a job scheduling means for passing a job having a job name corresponding to the job execution means to the job execution means.
請求項3記載の計算機システム。 The job scheduling unit is a job having a name that matches the name of the job with the smallest number of jobs having the same job name in the job being executed by the job execution unit when the job execution unit becomes capable of executing a new job. The computer system according to claim 3 , wherein the computer system is taken out from a job queue and passed to the job execution unit.
ジョブの名称に応じてジョブ実行手段で実行中およびジョブキューで待機中のジョブ数が設定されるテーブルを有し、
ジョブ実行手段が新たなジョブを実行可能になったときに、前記テーブルにおける実行中のジョブ数が最も少ないものに対応するジョブの名称を持つジョブを、前記ジョブ実行手段に渡す
請求項4記載の計算機システム。 Job scheduling means
According to the name of the job, it has a table in which the number of jobs being executed in the job execution means and waiting in the job queue is set,
When the job execution means is ready for performing a new job, a job with the name of the job number of the job being executed corresponds to the most low in the table, according to claim 4, wherein passing said job execution means Computer system.
請求項5記載の計算機システム。 The computer system according to claim 5 , wherein the job queue is classified according to a job name.
請求項6記載の計算機システム。 When a job queuing request is made and the job name of the job does not exist in the table, the job scheduling unit creates a column corresponding to the job name, and the job execution unit notifies the end of the job 7. The computer system according to claim 6 , wherein the number of jobs being executed in the column corresponding to the job name of the job is decremented by 1, and the column is deleted when the number of jobs after subtraction becomes 0.
前記ジョブ実行手段が新たなジョブを実行可能になったときに、前記ジョブ実行手段が実行中のジョブにおける同一ジョブ名称を持つジョブの数が最も少ないものの名称と一致する名称を持つジョブを、前記ジョブキューから取り出して前記ジョブ実行手段に渡す処理を実行させるためのジョブスケジューリングプログラム。 A computer having job execution means for executing a plurality of jobs in parallel and a job queue for holding waiting jobs,
When the job execution unit becomes capable of executing a new job, the job having the name that matches the name of the smallest job having the same job name among the jobs being executed by the job execution unit is A job scheduling program for executing processing to be taken out from a job queue and passed to the job execution means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004016945A JP3931883B2 (en) | 2004-01-26 | 2004-01-26 | Job scheduling method, computer system, and job scheduling program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004016945A JP3931883B2 (en) | 2004-01-26 | 2004-01-26 | Job scheduling method, computer system, and job scheduling program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005209077A JP2005209077A (en) | 2005-08-04 |
JP3931883B2 true JP3931883B2 (en) | 2007-06-20 |
Family
ID=34901937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004016945A Expired - Fee Related JP3931883B2 (en) | 2004-01-26 | 2004-01-26 | Job scheduling method, computer system, and job scheduling program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3931883B2 (en) |
-
2004
- 2004-01-26 JP JP2004016945A patent/JP3931883B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005209077A (en) | 2005-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379272B2 (en) | Autoscaling using file access or cache usage for cluster machines | |
JP5650952B2 (en) | Multi-core / thread workgroup calculation scheduler | |
US20150058858A1 (en) | Dynamic task prioritization for in-memory databases | |
US20070024898A1 (en) | System and method for executing job step, and computer product | |
US20050081208A1 (en) | Framework for pluggable schedulers | |
JP2012511204A (en) | How to reorganize tasks to optimize resources | |
KR101640848B1 (en) | Job Allocation Method on Multi-core System and Apparatus thereof | |
CN113535367A (en) | Task scheduling method and related device | |
JPWO2006100752A1 (en) | Distributed processing management apparatus, distributed processing management method, distributed processing management program | |
CN109840149B (en) | Task scheduling method, device, equipment and storage medium | |
CN111708639A (en) | Task scheduling system and method, storage medium and electronic device | |
TWI554945B (en) | Routine task allocating method and multicore computer using the same | |
JP2007188523A (en) | Task execution method and multiprocessor system | |
EP2840513B1 (en) | Dynamic task prioritization for in-memory databases | |
US20090158289A1 (en) | Workflow execution plans through completion condition critical path analysis | |
JP5444900B2 (en) | Job execution management system, job execution management method, job execution management program | |
JP4723465B2 (en) | Job allocation program and job allocation method | |
JP3931883B2 (en) | Job scheduling method, computer system, and job scheduling program | |
CN113225269B (en) | Container-based workflow scheduling method, device and system and storage medium | |
JP5045576B2 (en) | Multiprocessor system and program execution method | |
JP6349837B2 (en) | Scheduler apparatus, scheduling method therefor, arithmetic processing system, and computer program | |
JP6753521B2 (en) | Computational resource management equipment, computational resource management methods, and programs | |
US11789773B2 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device | |
JP2008159019A (en) | Execution processing device of program | |
JP2015090688A (en) | Mapreduce job management system and mapreduce job management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20051118 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20051118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061024 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061215 |
|
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: 20070220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070305 |
|
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: 20100323 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120323 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120323 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140323 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |