JP2021077180A - ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 - Google Patents
ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 Download PDFInfo
- Publication number
- JP2021077180A JP2021077180A JP2019204385A JP2019204385A JP2021077180A JP 2021077180 A JP2021077180 A JP 2021077180A JP 2019204385 A JP2019204385 A JP 2019204385A JP 2019204385 A JP2019204385 A JP 2019204385A JP 2021077180 A JP2021077180 A JP 2021077180A
- Authority
- JP
- Japan
- Prior art keywords
- job
- jobs
- execution
- information
- scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000010365 information processing Effects 0.000 title claims abstract description 88
- 238000010586 diagram Methods 0.000 description 42
- 230000006870 function Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】優先度が高いジョブの実行タイミングの遅延を抑制しながら各ジョブの実行を効率的に行うことを可能とするジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法を提供する。
【解決手段】実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行い、スケジューリングを行う処理では、特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う。
【選択図】図28
【解決手段】実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行い、スケジューリングを行う処理では、特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う。
【選択図】図28
Description
本発明は、ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法に関する。
例えば、利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、サービスの提供を行うために必要な業務システムの構築を行う。そして、事業者は、このような業務システムにおいて、例えば、各ジョブの実行時間の決定等を行うジョブスケジューラを動作させる。
具体的に、ジョブスケジューラは、新たなジョブが投入された場合に、各ノードにおけるジョブの実行状況等の情報に基づいて、新たなジョブを実行可能なノードの特定を行う。そして、ジョブスケジューラは、特定したノードのうちのいずれかに対して、新たなジョブの実行指示を行う(例えば、特許文献1参照)。
ここで、新たなジョブが複数投入された場合、ジョブスケジューラは、例えば、各ジョブの実行順序が各ジョブの優先度に従うように、各ジョブの実行タイミングについてのスケジューリングを行う。
しかしながら、例えば、各ジョブの実行に用いられるノードの数や各ジョブの実行時間にばらつきがある場合、ジョブスケジューラは、各ノードのリソースを効率的に使用可能なスケジュールを生成することができず、全ジョブの実行終了タイミングが遅延する可能性がある。
そこで、ジョブスケジューラは、例えば、各ノードのリソースが可能な限り効率的に使われるように、各ジョブの実行タイミングについてのスケジューリングを行う。これにより、ジョブスケジューラは、全ジョブの実行終了タイミングの遅延を抑制することが可能になる。
しかしながら、この場合、優先度の高いジョブ(例えば、先に投入されたジョブ)の実行タイミングが大きく遅れる可能性があり、必要なシステム要件を満たすことができなくなる可能性がある。
そこで、一つの側面では、本発明は、優先度が高いジョブの実行タイミングの遅延を抑制しながら各ジョブの実行を効率的に行うことを可能とするジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法を提供することを目的とする。
実施の形態の一態様では、実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、処理をコンピュータに実行させ、前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う。
一つの側面によれば、優先度が高いジョブの実行タイミングの遅延を抑制しながら各ジョブの実行を効率的に行う。
[情報処理システムの構成]
初めに、情報処理システム10の構成について説明を行う。図1は、情報処理システム10の構成について説明する図である。
初めに、情報処理システム10の構成について説明を行う。図1は、情報処理システム10の構成について説明する図である。
情報処理システム10は、ジョブの実行タイミングのスケジューリングを行うジョブスケジューラが動作する情報処理装置1と、事業者が必要な操作を行う操作端末2とを有する。また、情報処理システム10は、情報処理装置1によって行われたスケジューリングに従ってジョブの実行を行うジョブ実行装置3を有する。
ジョブ実行装置3は、複数のノード(複数の物理マシン)から構成される装置であり、例えば、HPC(High Performance Computing)システムである。また、操作端末2は、インターネット等のネットワークNWを介して情報処理装置1とアクセスが可能な端末である。
図1に示す例において、事業者は、操作端末2を介して、各ジョブの実行に用いるノード数や各ジョブの実行時間を情報処理装置1に入力する。そして、情報処理装置1は、操作端末2から入力された各情報に基づいて、各ジョブの実行タイミングのスケジュールを示す情報(以下、スケジュール情報とも呼ぶ)を生成してジョブ実行装置3に送信する。その後、ジョブ実行装置3は、情報処理装置1から送信されたスケジュール情報に従って、各ジョブの実行を行う。以下、情報処理装置1において行われる各ジョブのスケジューリングについて説明を行う。
[ジョブのスケジューリングについての具体例]
図2から図4は、各ジョブのスケジューリングの具体例について説明を行う図である。図2から図4に示す例における横軸及び縦軸は、時間及びノードの識別番号をそれぞれ示している。また、図2から図4に示す例における各ジョブの数字は、各ジョブの優先度を示している。
図2から図4は、各ジョブのスケジューリングの具体例について説明を行う図である。図2から図4に示す例における横軸及び縦軸は、時間及びノードの識別番号をそれぞれ示している。また、図2から図4に示す例における各ジョブの数字は、各ジョブの優先度を示している。
具体的に、図2から図4は、優先度が「1」であるジョブ(以下、ジョブ1とも呼ぶ)と、優先度が「2」であるジョブ(以下、ジョブ2とも呼ぶ)と、優先度が「3」であるジョブ(以下、ジョブ3とも呼ぶ)と、優先度が「4」であるジョブ(以下、ジョブ4とも呼ぶ)と、優先度が「5」であるジョブ(以下、ジョブ5とも呼ぶ)とのスケジューリングを説明する図である。
なお、図2から図4に示す例において、ジョブ1の実行に用いるノードの数及び実行時間のそれぞれが「40(ノード)」及び「40(分)」であり、ジョブ2の実行に用いるノードの数及び実行時間のそれぞれが「20(ノード)」及び「50(分)」であり、ジョブ3の実行に用いるノードの数及び実行時間のそれぞれが「80(ノード)」及び「20(分)」であり、ジョブ4の実行に用いるノードの数及び実行時間のそれぞれが「80(ノード)」及び「30(分)」であり、ジョブ5の実行に用いるノードの数及び実行時間のそれぞれが「40(ノード)」及び「20(分)」であるものとして説明を行う。また、以下、優先度の値がより小さいジョブが他のジョブよりも優先して実行されるものとして説明を行う。さらに、以下、ジョブ実行装置3が有するジョブの数が100(ノード)であるものとして説明を行う。
[0(分)におけるスケジューリング]
初めに、時間が「0(分)」であるタイミングにおけるジョブのスケジューリングについて説明を行う。
初めに、時間が「0(分)」であるタイミングにおけるジョブのスケジューリングについて説明を行う。
初めに、情報処理装置1(ジョブスケジューラ)は、ジョブ実行装置3が有するノードの数が「100(ノード)」であって、かつ、ジョブ1の実行に用いるノードの数が「40(ノード)」であると特定する。そのため、情報処理装置1は、ジョブ1を最初から実行させることができると判定する。
次に、情報処理装置1は、ジョブ1の実行が行われる場合、ジョブの実行を行っていないノードの数が「60(ノード)」であり、かつ、ジョブ2の実行に用いるノードの数が「20(ノード)」であると特定する。そのため、情報処理装置1は、ジョブ1とともにジョブ2についても最初から実行させることができると判定する。
続いて、情報処理装置1は、ジョブ1及びジョブ2の実行が行われる場合、ジョブの実行を行っていないノードの数が「40(ノード)」であり、かつ、ジョブ3の実行に用いるノードの数が「80(ノード)」であると特定する。そのため、情報処理装置1は、ジョブ1及びジョブ2とともにジョブ3の実行を行うことができないと判定する。
したがって、情報処理装置1は、図2に示すように、例えば、時間が「0(分)」であるタイミング(最初のタイミング)において、ノード番号が「1」から「40」である40(ノード)を用いてジョブ1の実行を行い、かつ、ノード番号が「41」から「60」である20(ノード)を用いてジョブ2の実行を行うことを決定する。
[40(分)におけるスケジューリング]
次に、時間が「40(分)」であるタイミング(ジョブ1の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
次に、時間が「40(分)」であるタイミング(ジョブ1の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
情報処理装置1は、時間が「40(分)」であるタイミングにおいてジョブ1の実行が終了した場合、ジョブの実行を行っていないノードの数が「60(ノード)」であり、かつ、ジョブ3の実行に用いるノードの数が「80(ノード)」であると特定する。
そのため、情報処理装置1は、図2に示すように、例えば、時間が「40(分)」であるタイミングにおいて、ジョブ3の実行を行うことができないと判定する。
[50(分)におけるスケジューリング]
次に、時間が「50(分)」であるタイミング(ジョブ2の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
次に、時間が「50(分)」であるタイミング(ジョブ2の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
情報処理装置1は、時間が「50(分)」であるタイミングにおいてジョブ2の実行が終了した場合、ジョブの実行を行っていないノードの数が「100(ノード)」であり、かつ、ジョブ3の実行に用いるノードの数が「80(ノード)」であると特定する。
そのため、情報処理装置1は、図2に示すように、例えば、時間が「50(分)」のタイミングにおいて、ノード番号が「1」から「80」である80(ノード)を用いてジョブ3の実行を行うことを決定する。
[70(分)におけるスケジューリング]
次に、時間が「70(分)」であるタイミング(ジョブ3の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
次に、時間が「70(分)」であるタイミング(ジョブ3の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
情報処理装置1は、時間が「70(分)」であるタイミングにおいてジョブ3の実行が終了した場合、ジョブの実行を行っていないノードの数が「100(ノード)」であり、かつ、ジョブ4の実行に用いるノードの数が「80(ノード)」であると特定する。
そのため、情報処理装置1は、図2に示すように、例えば、時間が「70(分)」のタイミングにおいて、ノード番号が「1」から「80」である80(ノード)を用いてジョブ4の実行を行うことを決定する。
[100(分)におけるスケジューリング]
次に、時間が「100(分)」であるタイミング(ジョブ4の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
次に、時間が「100(分)」であるタイミング(ジョブ4の実行が終了したタイミング)におけるジョブのスケジューリングについて説明を行う。
情報処理装置1は、時間が「100(分)」であるタイミングにおいてジョブ4の実行が終了した場合、ジョブの実行を行っていないノードの数が「100(ノード)」であり、かつ、ジョブ5の実行に用いるノードの数が「40(ノード)」であると特定する。
そのため、情報処理装置1は、図2に示すように、例えば、時間が「100(分)」のタイミングにおいて、ノード番号が「1」から「40」である40(ノード)を用いてジョブ5の実行を行うことを決定する。
すなわち、図2に示す例は、ジョブ1からジョブ5までの各ジョブの実行に120(分)を要する場合を示している。
ここで、例えば、優先度が高いジョブを実行させることができない時間帯であるが、優先度が低いジョブであれば実行させることができる時間帯が存在する場合、情報処理装置1は、優先度が低いジョブを優先度が高いジョブよりも先に実行させることが可能である。
具体的に、図2で説明した例において、ジョブ1及びジョブ2の実行が行われている場合、ジョブの実行を行っていないノードの数が「40(ノード)」であるのに対し、ジョブ5の実行に用いるノードの数は「20(ノード)」である。そのため、情報処理装置1は、図3に示すように、時間が「0(分)」であるタイミングにおいて、ジョブ1、ジョブ2及びジョブ5を実行させる旨の判定を行うことが可能である。
すなわち、情報処理装置1は、図3に示す方法(以下、従来の方法とも呼ぶ)を採用することにより、図2で説明した場合よりも各ジョブの実行を効率的に行うことが可能になる。
しかしながら、図2や図3に示す例において、各ジョブの実行に用いられるノードの数や各ジョブの実行時間のばらつきが大きい場合、情報処理装置1は、各ノードのリソースを効率的に使用することが可能なスケジュールを生成することができず、全ジョブの実行終了タイミングが遅延する可能性がある。
そこで、情報処理装置1は、例えば、図4に示すように、各ノードのリソースが可能な限り効率的に使われるように、各ジョブの実行タイミングについてのスケジューリングを行う。これにより、情報処理装置1は、全ジョブの実行終了タイミングの遅延を抑制することが可能になる。
しかしながら、この場合、図4に示すように、例えば、先に投入されたジョブ1の実行タイミングが大きく遅れる場合があり、必要なシステム要件を満たすことができなくなる可能性がある。
そこで、本実施の形態における情報処理装置1は、実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成する。そして、情報処理装置1は、複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含むジョブ群(以下、特定のジョブ群とも呼ぶ)に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う。この場合、情報処理装置1は、特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う。
すなわち、情報処理装置1は、優先度が高いジョブを含むジョブ群に含まれる各ジョブを他のジョブ群に含まれる各ジョブよりも優先させる一方、同じジョブ群に含まれるジョブ間の関係においては優先度を考慮することなくスケジューリングを行う。
これにより、情報処理装置1は、優先度の高いジョブの実行タイミングの遅延防止と各ジョブの効率的な実行との両方が達成されるように、各ジョブの実行タイミングについてのスケジューリングを行うことが可能になる。
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を説明する図である。
次に、情報処理システム10のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を説明する図である。
情報処理装置1は、図5に示すように、プロセッサであるCPU101と、メモリ102と、通信装置103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、ジョブの実行タイミングのスケジューリングを行う処理(以下、ジョブスケジューリング処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体104は、例えば、ジョブスケジューリング処理を行う際に用いられる情報を記憶する記憶部130(以下、情報格納領域130とも呼ぶ)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行してジョブスケジューリング処理を行う。
また、通信装置103は、例えば、ネットワークNWを介して操作端末2との通信を行う。
[情報処理システムの機能]
次に、情報処理システム10の機能について説明を行う。図6は、情報処理装置1の機能のブロック図である。
次に、情報処理システム10の機能について説明を行う。図6は、情報処理装置1の機能のブロック図である。
情報処理装置1は、図6に示すように、例えば、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、情報受信部111と、情報管理部112と、ジョブ送信部113と、ジョブ群生成部114と、スケジューリング部115と、実行指示部116と、所要時間特定部117と、平均時間算出部118と、ジョブ数決定部119とを含む各種機能を実現する。
また、情報処理装置1は、例えば、図6に示すように、ジョブ情報131と、ジョブキュー情報132と、ジョブ状況情報133と、ジョブ群情報134と、ジョブ数情報135と、スケジュール情報136とを情報格納領域130に記憶する。
情報受信部111は、例えば、事業者が操作端末2を介して入力したジョブを受信する。また、情報受信部111は、例えば、事業者が操作端末2を介して入力した各種情報を受信する。具体的に、情報受信部111は、各ジョブの実行に用いるノードの数を示す情報や各ジョブの実行時間を示す情報(以下、これらを総称してジョブ情報131とも呼ぶ)を受信する。
情報管理部112は、情報受信部111が受信したジョブ情報131を情報格納領域130に記憶する。また、情報管理部112は、情報受信部111が受信したジョブの優先度(例えば、情報処理装置1に対するジョブの投入順位)を示すジョブキュー情報132を生成して情報格納領域130に記憶する。
さらに、情報管理部112は、各ジョブの実行状況を示すジョブ状況情報133を生成して情報格納領域130に記憶する。具体的に、情報管理部112は、例えば、新たなジョブの実行開始を検知した場合、その旨を示すジョブ状況情報133を生成して情報格納領域130に記憶する。また、情報管理部112は、例えば、ジョブの実行終了を検知した場合、その旨を示すジョブ状況情報133を生成して情報格納領域130に記憶する。
ジョブ送信部113は、例えば、情報受信部111が受信したジョブをジョブ実行装置3に送信する。
ジョブ群生成部114は、情報受信部111が受信した各ジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成する。具体的に、ジョブ群生成部114は、例えば、情報受信部111が受信した各ジョブを投入順序が早い順にグルーピングすることによって1以上のジョブ群を生成する。そして、情報管理部112は、ジョブ群生成部114が生成した1以上のジョブ群を示すジョブ群情報134を生成して情報格納領域130に記憶する。
なお、ジョブ群生成部114は、例えば、情報格納領域130に記憶されたジョブキュー情報132及びジョブ数情報135を参照し、ジョブキュー情報132に情報が含まれるジョブをジョブ数情報135が示す数のジョブごとにグルーピングすることによって、1以上のジョブ群を生成するものであってよい。
スケジューリング部115は、情報受信部111が受信した各ジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブよりも優先して実施されるように行う。
この場合、スケジューリング部115は、特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う。具体的に、スケジューリング部115は、例えば、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを、各ジョブ群に含まれる各ジョブについてのスケジュールとして特定する。そして、情報管理部112は、スケジューリング部115が特定したスケジュールを示すスケジュール情報136を生成して情報格納領域130に記憶する。
実行指示部116は、情報格納領域130に記憶されたスケジュール情報136をジョブ実行装置3に送信する。
所要時間特定部117は、情報格納領域130に記憶されたジョブ状況情報133を参照し、実行が終了したジョブごとに、各ジョブを含むジョブ群において最初に実行されたジョブの実行開始時間から各ジョブの実行開始時間までの所要時間(すなわち、各ジョブの実行が開始されるまでに要した待機時間)をそれぞれ特定する。
平均時間算出部118は、情報格納領域130に記憶されたジョブ状況情報133を参照し、実行が終了したジョブのうち、所定の条件を満たすジョブに対応する所要時間の平均時間を算出する。具体的に、平均時間算出部118は、例えば、実行が終了したジョブのうち、優先度が高い複数のジョブ(例えば、予め定められた数のジョブ)に対応する所要時間の平均時間を算出する。
ジョブ数決定部119は、情報格納領域130に記憶されたジョブ数情報135が現在よりも小さい値を示すように更新(再決定)する。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図7は、第1の実施の形態におけるジョブスケジューリング処理の概略を説明するフローチャート図である。
次に、第1の実施の形態の概略について説明する。図7は、第1の実施の形態におけるジョブスケジューリング処理の概略を説明するフローチャート図である。
情報処理装置1は、図7に示すように、スケジューリング開始タイミングになるまで待機する(S1のNO)。スケジューリング開始タイミングは、例えば、ジョブの実行が開始されたタイミングまたはジョブの実行が終了したタイミングであってよい。
そして、スケジューリング開始タイミングになった場合(S1のYES)、情報処理装置1は、実行対象の複数のジョブを優先度が高い順にグルーピングすることによって複数のジョブ群を生成する(S2)。
その後、情報処理装置1は、複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブが優先されるように、かつ、特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように行う(S3)。
これにより、情報処理装置1は、優先度の高いジョブの実行タイミングの遅延防止と、各ジョブの効率的な実行(各ジョブの実行時におけるジョブ実行装置3のリソース使用率の向上)との両方が達成されるように、各ジョブの実行タイミングについてのスケジューリングを行うことが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図8から図13は、第1の実施の形態におけるジョブスケジューリング処理の詳細を説明するフローチャート図である。また、図14から図28は、第1の実施の形態におけるジョブスケジューリング処理の詳細を説明する図である。
次に、第1の実施の形態の詳細について説明する。図8から図13は、第1の実施の形態におけるジョブスケジューリング処理の詳細を説明するフローチャート図である。また、図14から図28は、第1の実施の形態におけるジョブスケジューリング処理の詳細を説明する図である。
[ジョブ管理処理]
初めに、ジョブスケジューリング処理のうち、ジョブの管理を行う処理(以下、ジョブ管理処理とも呼ぶ)について説明を行う。図8から図10は、ジョブ管理処理を説明するフローチャート図である。
初めに、ジョブスケジューリング処理のうち、ジョブの管理を行う処理(以下、ジョブ管理処理とも呼ぶ)について説明を行う。図8から図10は、ジョブ管理処理を説明するフローチャート図である。
情報処理装置1の情報受信部111は、図8に示すように、例えば、操作端末2から送信されたジョブを受信するまで待機する(S11のNO)。
そして、ジョブを受信した場合(S11のYES)、情報処理装置1のジョブ送信部113は、S11の処理で受信したジョブをジョブ実行装置3に送信する(S12)。
また、情報処理装置1の情報管理部112は、この場合、S11の処理で受信したジョブに対応するジョブ情報131を、情報格納領域130に記憶されたジョブキュー情報132に追加する(S13)。具体的に、情報管理部112は、例えば、S11の処理においてジョブとともに受信したジョブ情報131を、情報格納領域130に記憶されたジョブキュー情報132に追加する。以下、ジョブキュー情報132の具体例について説明を行う。
[ジョブキュー情報の具体例(1)]
図14は、ジョブキュー情報132の具体例について説明する図である。
図14は、ジョブキュー情報132の具体例について説明する図である。
図14に示すジョブキュー情報132は、ジョブキュー情報132に含まれる各情報を識別する情報が設定される「項番」と、各ジョブの名称が設定される「ジョブ名」と、各ジョブに対応するジョブ情報131のうち、各ジョブの実行に用いるノードの数が設定される「ノード数」と、各ジョブに対応するジョブ情報131のうち、各ジョブの実行時間が設定される「実行時間」とを項目として有する。また、図14に示すジョブキュー情報132は、S11の処理で情報受信部111が各ジョブを受信した時間が設定される「受付時間」を項目として有する。
具体的に、図14に示すジョブキュー情報132において、「項番」が「1」である情報には、「ジョブ名」として「JOB−A2」が設定され、「ノード数」として「20(ノード)」が設定され、「実行時間」として「20(分)」が設定され、「受付時間」として「11:12」が設定されている。
また、図14に示すジョブキュー情報132において、「項番」が「2」である情報には、「ジョブ名」として「JOB−C5」が設定され、「ノード数」として「60(ノード)」が設定され、「実行時間」として「20(分)」が設定され、「受付時間」として「11:15」が設定されている。
また、図14に示すジョブキュー情報132において、「項番」が「3」である情報には、「ジョブ名」として「JOB−D1」が設定され、「ノード数」として「40(ノード)」が設定され、「実行時間」として「30(分)」が設定され、「受付時間」として「11:16」が設定されている。図14に含まれる他の情報についての説明は省略する。
図9に戻り、情報受信部111は、ジョブ実行装置3において新たなジョブの実行が開始されたことを検知するまで待機する(S21のNO)。具体的に、例えば、情報受信部111は、新たなジョブの実行を開始した旨の情報をジョブ実行装置3から受信するまで待機する。
そして、ジョブ実行装置3において新たなジョブの実行が開始されたことを検知した場合(S21のYES)、情報管理部112は、情報格納領域130に記憶されたジョブ状況情報133に、S21の処理で実行が開始したことを検知したジョブに対応する情報を追加する(S22)。
さらに、情報管理部112は、この場合、情報格納領域130に記憶されたジョブキュー情報132から、S21の処理で実行が開始したことを検知したジョブに対応する情報を削除する(S23)。
また、情報受信部111は、図10に示すように、ジョブ実行装置3においてジョブの実行が終了したことを検知するまで待機する(S31のNO)。具体的に、例えば、情報受信部111は、ジョブの実行を終了した旨の情報をジョブ実行装置3から受信するまで待機する。
そして、ジョブ実行装置3においてジョブの実行が終了したことを検知した場合(S31のYES)、情報管理部112は、情報格納領域130に記憶されたジョブ状況情報133から、S31の処理で実行が終了したことを検知したジョブに対応する情報を削除する(S32)。以下、ジョブ状況情報133の具体例について説明を行う。
[ジョブ状況情報の具体例(1)]
図15は、ジョブ状況情報133の具体例について説明する図である。
図15は、ジョブ状況情報133の具体例について説明する図である。
図15に示すジョブ状況情報133は、ジョブ状況情報133に含まれる各情報を識別する情報が設定される「項番」と、各ジョブ(ジョブ実行装置3において実行中のジョブ)の名称が設定される「ジョブ名」と、各ジョブの実行に用いられているノードを示す情報が設定される「実行ノード」とを項目として有する。また、図15に示すジョブ状況情報133は、各ジョブの実行開始時間が設定される「実行開始時間」と、各ジョブの実行終了予定時間が設定される「実行終了時間」とを項目として有する。なお、以下、ジョブ実行装置3が有する100(ノード)の識別情報がそれぞれN1からN100であるものとして説明を行う。
具体的に、図15に示すジョブ状況情報133において、「項番」が「1」である情報には、「ジョブ名」として「JOB−A4」が設定され、「実行ノード」として「N1」から「N40」が設定され、「実行開始時間」として「11:40」が設定され、「実行終了時間」として「12:00」が設定されている。
また、図15に示すジョブ状況情報133において、「項番」が「2」である情報には、「ジョブ名」として「JOB−B2」が設定され、「実行ノード」として「N41」から「N80」が設定され、「実行開始時間」として「11:50」が設定され、「実行終了時間」として「12:00」が設定されている。
また、図15に示すジョブ状況情報133において、「項番」が「3」である情報には、「ジョブ名」として「JOB−A7」が設定され、「実行ノード」として「N81」から「N100」が設定され、「実行開始時間」として「11:20」が設定され、「実行終了時間」として「12:00」が設定されている。
すなわち、図15に示すジョブ状況情報133は、ジョブ実行装置3において3つのジョブが実行中であり、全てのジョブの実行が12時に終了する予定であることを示している。
[ジョブスケジューリング処理のメイン処理]
次に、ジョブスケジューリング処理のメイン処理について説明を行う。図11及び図12は、ジョブスケジューリング処理のメイン処理を説明するフローチャート図である。
次に、ジョブスケジューリング処理のメイン処理について説明を行う。図11及び図12は、ジョブスケジューリング処理のメイン処理を説明するフローチャート図である。
情報受信部111は、図11に示すように、例えば、S23またはS32の処理が実行されるまで待機する(S41のNO)。すなわち、情報受信部111は、ジョブ実行装置3において新たなジョブの実行が開始されるまで、または、ジョブ実行装置3においてジョブの実行が終了するまで待機する。
そして、S23またはS32の処理が実行された場合(S41のYES)、情報処理装置1のジョブ群生成部114は、情報格納領域130に記憶されたジョブキュー情報132とジョブ群情報134とを参照し、実行待ちのジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成する(S42)。具体的に、ジョブ群生成部114は、例えば、ジョブ群情報134が示す数のジョブごとにジョブ群を生成する。
その後、情報管理部112は、S42の処理で生成した1以上のジョブ群に対応するジョブ群情報134を生成して情報格納領域130に記憶する(S43)。以下、ジョブ群情報134の具体例について説明を行う。
[ジョブ群情報の具体例(1)]
図16は、ジョブ群情報134の具体例について説明する図である。
図16は、ジョブ群情報134の具体例について説明する図である。
図16に示すジョブ群情報134は、ジョブ群情報134に含まれる各情報を識別する情報が設定される「項番」と、各ジョブの名称が設定される「ジョブ名」と、各ジョブ群の名称が設定される「ジョブ群名」とを項目として有する。
具体的に、図14で説明したジョブキュー情報132において、「ジョブ名」に設定されたジョブ名は、「受付時間」に設定された時間が早い順に、「JOB−A2」、「JOB−C5」、「JOB−D1」、「JOB−A8」、「JOB−A6」、「JOB−D5」、「JOB−C3」、「JOB−B3」、「JOB−D9」及び「JOB−C2」である。
そのため、例えば、ジョブ数情報135が示す値が「3」である場合、情報管理部112は、「ジョブ名」に「JOB−A2」、「JOB−C5」または「JOB−D1」が設定された情報(「項番」が「1」、「2」または「3」である情報)の「ジョブ群名」のそれぞれに「G1」を設定する。
同様に、情報管理部112は、「ジョブ名」に「JOB−A8」、「JOB−A6」または「JOB−D5」が設定された情報(「項番」が「4」、「5」または「6」である情報)の「ジョブ群名」のそれぞれに「G2」を設定し、「ジョブ名」に「JOB−C3」、「JOB−B3」または「JOB−D9」が設定された情報(「項番」が「7」、「8」または「9」である情報)の「ジョブ群名」のそれぞれに「G3」を設定し、「ジョブ名」に「JOB−C2」が設定された情報(「項番」が「10」である情報)の「ジョブ群名」に「G4」を設定する。
なお、以下、「ジョブ群名称」が「G1」であるジョブ群をジョブ群G1とも呼び、「ジョブ群名称」が「G2」であるジョブ群をジョブ群G2とも呼び、「ジョブ群名称」が「G3」であるジョブ群をジョブ群G3とも呼び、「ジョブ群名称」が「G4」であるジョブ群をジョブ群G4とも呼ぶ。
図11に戻り、情報処理装置1のスケジューリング部115は、情報格納領域130に記憶されたジョブ状況情報133を参照し、ジョブの実行が現在行われていないノードを特定する(S44)。
そして、スケジューリング部115は、図12に示すように、情報格納領域130に記憶されたジョブ群情報134に情報が含まれる1のジョブ群を特定する(S51)。
続いて、スケジューリング部115は、S51の処理で特定した1のジョブ群に含まれる各ジョブの実行タイミングのスケジュールのうち、全ジョブの実行終了時間が最も早くなるスケジュールを特定する(S52)。以下、S52の処理で特定されるスケジューリングの具体例について説明を行う。
[スケジュールの具体例(1)]
図17及び図18は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。図17及び図18は、1回目のS51の処理で特定されたジョブ群がジョブ群G1である場合について説明する図である。
図17及び図18は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。図17及び図18は、1回目のS51の処理で特定されたジョブ群がジョブ群G1である場合について説明する図である。
具体的に、図14で説明したジョブキュー情報132において、「ジョブ名」が「JOB−A2」である情報(「項番」が「1」である情報)の「ノード数」及び「実行時間」には、それぞれ「20(ノード)」及び「20(分)」が設定されている。また、「ジョブ名」が「JOB−C5」である情報(「項番」が「2」である情報)の「ノード数」及び「実行時間」には、それぞれ「60(ノード)」及び「20(分)」が設定されており、「ジョブ名」が「JOB−D1」である情報(「項番」が「3」である情報)の「ノード数」及び「実行時間」には、それぞれ「40(ノード)」及び「30(分)」が設定されている。
ここで、例えば、ジョブ1及びジョブ2を最初に実行する場合、図17(A)及び図17(B)に示すように、ジョブ1、ジョブ2及びジョブ3の全ての実行終了に要する時間は、50(分)になる。一方、例えば、ジョブ2及びジョブ3を最初に実行する場合、図17(C)及び図17(D)に示すように、ジョブ1、ジョブ2及びジョブ3の全ての実行終了に要する時間は、40(分)になる。同様に、例えば、ジョブ1及びジョブ3を最初に実行する場合、図17(E)及び図17(F)に示すように、ジョブ1、ジョブ2及びジョブ3の全ての実行終了に要する時間は、40(分)になる。
そのため、スケジューリング部115は、図18に示すように、例えば、ジョブ2及びジョブ3を最初に実行するスケジュール(全てのジョブの実行終了に要する時間が最も短いスケジュールのうちの1つ)を選択する。
図12に戻り、情報管理部112は、S52の処理で特定したスケジュールに従って、情報格納領域130に記憶されたスケジュール情報136を更新する(S53)。以下、スケジュール情報136の具体例について説明を行う。
[スケジュール情報の具体例(1)]
図19は、スケジュール情報136の具体例について説明する図である。図19は、1回目のS51の処理で特定されたジョブ群がジョブ群G1である場合に生成されるスケジュール情報136の具体例について説明する図である。
図19は、スケジュール情報136の具体例について説明する図である。図19は、1回目のS51の処理で特定されたジョブ群がジョブ群G1である場合に生成されるスケジュール情報136の具体例について説明する図である。
図19に示すスケジュール情報136は、スケジュール情報136に含まれる各情報を識別する情報が設定される「項番」と、各ジョブの名称が設定される「ジョブ名」と、各ジョブの実行に用いられるノードを示す情報が設定される「実行ノード」とを項目として有する。また、図19に示すスケジュール情報136は、各ジョブの実行開始時間が設定される「実行開始時間」と、各ジョブの実行終了予定時間が設定される「実行終了時間」とを項目として有する。
具体的に、図18で説明したスケジュールは、ジョブ1の実行ノードがN1からN20であって、ジョブ1の実行時間が12時20分から12時40分であることを示している。また、図18で説明したスケジュールは、ジョブ2の実行ノードがN1からN60であって、ジョブ2の実行時間が12時から12時20分であることを示している。また、図18で説明したスケジュールは、ジョブ3の実行ノードがN61からN100であって、ジョブ3の実行時間が12時から12時30分であることを示している。
そのため、情報管理部112は、図19に示すように、「ジョブ名」が「JOB−A2」である情報(「項番」が「1」である情報)の「実行ノード」に「N1」から「N20」を設定し、「実行開始時間」に「12:20」を設定し、「実行終了時間」に「12:40」を設定する。また、情報管理部112は、「ジョブ名」が「JOB−C5」である情報(「項番」が「2」である情報)の「実行ノード」に「N1」から「N60」を設定し、「実行開始時間」に「12:00」を設定し、「実行終了時間」に「12:20」を設定する。また、情報管理部112は、「ジョブ名」が「JOB−D1」である情報(「項番」が「3」である情報)の「実行ノード」に「N61」から「N100」を設定し、「実行開始時間」に「12:00」を設定し、「実行終了時間」に「12:30」を設定する。
図12に戻り、S51の処理で全てのジョブ群を特定した場合(S54のYES)、情報処理装置1の実行指示部116は、情報格納領域130に記憶されたスケジュール情報136をジョブ実行装置3に送信する(S55)。
すなわち、実行指示部116は、この場合、スケジュール情報136の生成が完了したと判定してジョブ実行装置3に送信する。
一方、S51の処理で全てのジョブ群を特定していない場合(S54のNO)、実行指示部116は、S51以降の処理を再度行う。
[スケジュールの具体例(2)]
次に、2回目のS51の処理で特定されたジョブ群がジョブ群G2である場合に選択されるスケジュールの具体例について説明を行う。図20は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。
次に、2回目のS51の処理で特定されたジョブ群がジョブ群G2である場合に選択されるスケジュールの具体例について説明を行う。図20は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。
具体的に、図14で説明したジョブキュー情報132において、「ジョブ名」が「JOB−A8」である情報(「項番」が「4」である情報)の「ノード数」及び「実行時間」には、それぞれ「60(ノード)」及び「10(分)」が設定されている。また、「ジョブ名」が「JOB−A6」である情報(「項番」が「5」である情報)の「ノード数」及び「実行時間」には、それぞれ「20(ノード)」及び「10(分)」が設定されており、「ジョブ名」が「JOB−D5」である情報(「項番」が「6」である情報)の「ノード数」及び「実行時間」には、それぞれ「40(ノード)」及び「10(分)」が設定されている。
ここで、図18に示す例において、「時間(分)」が「20(分)」であるタイミングから「時間(分)」が「40(分)」であるタイミングまでの時間帯では、ジョブ1が実行される予定になっている。また、図18に示す例において、「時間(分)」が「20(分)」であるタイミングから「時間(分)」が「30(分)」であるタイミングまでの時間帯では、ジョブ3が実行される予定になっている。
そのため、スケジューリング部115は、図20に示すように、例えば、「時間(分)」が「20(分)」であるタイミングから「時間(分)」が「30(分)」であるタイミングまでの間(ジョブ1及びジョブ3が実行されている時間帯)においてジョブ6を実行し、「時間(分)」が「30(分)」であるタイミングから「時間(分)」が「40(分)」であるタイミングまでの間(ジョブ1が実行されている時間帯)においてジョブ4及びジョブ5を実行するスケジュール(全てのジョブの実行終了に要する時間が最も短いスケジュールのうちの1つ)を選択する。
[スケジュール情報の具体例(2)]
次に、2回目のS51の処理で特定されたジョブ群がジョブ群G2である場合に生成されるスケジュール情報136の具体例について説明を行う。図21は、スケジュール情報136の具体例について説明する図である。
次に、2回目のS51の処理で特定されたジョブ群がジョブ群G2である場合に生成されるスケジュール情報136の具体例について説明を行う。図21は、スケジュール情報136の具体例について説明する図である。
図20で説明したスケジュールは、ジョブ4の実行ノードがN21からN80であって、ジョブ4の実行時間が12時30分から12時40分であることを示している。また、図20で説明したスケジュールは、ジョブ5の実行ノードがN81からN100であって、ジョブ5の実行時間が12時30分から12時40分であることを示している。また、図20で説明したスケジュールは、ジョブ6の実行ノードがN21からN60であって、ジョブ6の実行時間が12時20分から12時30分であることを示している。
そのため、情報管理部112は、図21の下線部分に示すように、「ジョブ名」が「JOB−A8」である情報(「項番」が「4」である情報)の「実行ノード」に「N21」から「N80」を設定し、「実行開始時間」に「12:30」を設定し、「実行終了時間」に「12:40」を設定する。また、情報管理部112は、「ジョブ名」が「JOB−A6」である情報(「項番」が「5」である情報)の「実行ノード」に「N81」から「N100」を設定し、「実行開始時間」に「12:30」を設定し、「実行終了時間」に「12:40」を設定する。また、情報管理部112は、「ジョブ名」が「JOB−D5」である情報(「項番」が「6」である情報)の「実行ノード」に「N21」から「N60」を設定し、「実行開始時間」に「12:20」を設定し、「実行終了時間」に「12:30」を設定する。
[スケジュールの具体例(3)]
次に、3回目のS51の処理で特定されたジョブ群がジョブ群G3である場合に選択されるスケジュールの具体例について説明を行う。図22は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。
次に、3回目のS51の処理で特定されたジョブ群がジョブ群G3である場合に選択されるスケジュールの具体例について説明を行う。図22は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。
具体的に、図14で説明したジョブキュー情報132において、「ジョブ名」が「JOB−C3」である情報(「項番」が「7」である情報)の「ノード数」及び「実行時間」には、それぞれ「100(ノード)」及び「10(分)」が設定されている。また、「ジョブ名」が「JOB−B3」である情報(「項番」が「8」である情報)の「ノード数」及び「実行時間」には、それぞれ「80(ノード)」及び「10(分)」が設定されており、「ジョブ名」が「JOB−D9」である情報(「項番」が「9」である情報)の「ノード数」及び「実行時間」には、それぞれ「80(ノード)」及び「30(分)」が設定されている。
ここで、図20に示す例において、「時間(分)」が「40(分)」であるタイミングでは、ジョブ1からジョブ6の全ジョブの実行が終了する予定になっている。
そのため、スケジューリング部115は、図22に示すように、例えば、「時間(分)」が「40(分)」であるタイミングから「時間(分)」が「50(分)」であるタイミングまでの間においてジョブ7を実行し、「時間(分)」が「50(分)」であるタイミングから「時間(分)」が「60(分)」であるタイミングまでの間においてジョブ8を実行し、「時間(分)」が「60(分)」であるタイミングから「時間(分)」が「90(分)」であるタイミングまでの間においてジョブ9を実行するスケジュール(全てのジョブの実行終了に要する時間が最も短いスケジュールのうちの1つ)を選択する。
[スケジュール情報の具体例(3)]
次に、3回目のS51の処理で特定されたジョブ群がジョブ群G3である場合に生成されるスケジュールの具体例について説明を行う。図23は、スケジュール情報136の具体例について説明する図である。
次に、3回目のS51の処理で特定されたジョブ群がジョブ群G3である場合に生成されるスケジュールの具体例について説明を行う。図23は、スケジュール情報136の具体例について説明する図である。
図22で説明したスケジュールは、ジョブ7の実行ノードがN1からN100であって、ジョブ7の実行時間が12時40分から12時50分であることを示している。また、図22で説明したスケジュールは、ジョブ8の実行ノードがN1からN80であって、ジョブ8の実行時間が12時50分から13時であることを示している。また、図22で説明したスケジュールは、ジョブ9の実行ノードがN1からN80であって、ジョブ9の実行時間が13時から13時30分であることを示している。
そのため、情報管理部112は、図23の下線部分に示すように、「ジョブ名」が「JOB−C3」である情報(「項番」が「7」である情報)の「実行ノード」に「N1」から「N100」を設定し、「実行開始時間」に「12:40」を設定し、「実行終了時間」に「12:50」を設定する。また、情報管理部112は、「ジョブ名」が「JOB−B3」である情報(「項番」が「8」である情報)の「実行ノード」に「N1」から「N80」を設定し、「実行開始時間」に「12:50」を設定し、「実行終了時間」に「13:00」を設定する。また、情報管理部112は、「ジョブ名」が「JOB−D9」である情報(「項番」が「9」である情報)の「実行ノード」に「N1」から「N80」を設定し、「実行開始時間」に「13:00」を設定し、「実行終了時間」に「13:30」を設定する。
[スケジュールの具体例(4)]
次に、4回目のS51の処理で特定されたジョブ群がジョブ群G4である場合に選択されるスケジュールの具体例について説明を行う。図24は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。
次に、4回目のS51の処理で特定されたジョブ群がジョブ群G4である場合に選択されるスケジュールの具体例について説明を行う。図24は、ジョブの実行タイミングのスケジュールの具体例について説明する図である。
具体的に、図14で説明したジョブキュー情報132において、「ジョブ名」が「JOB−C2」である情報(「項番」が「10」である情報)の「ノード数」及び「実行時間」には、それぞれ「60(ノード)」及び「20(分)」が設定されている。
ここで、図22に示す例において、「時間(分)」が「90(分)」であるタイミングでは、ジョブ1からジョブ9の全ての実行が終了する予定になっている。
そのため、スケジューリング部115は、図24に示すように、例えば、「時間(分)」が「90(分)」であるタイミングから「時間(分)」が「110(分)」であるタイミングまでの間においてジョブ10を実行するスケジュールを選択する。
[スケジュール情報の具体例(4)]
次に、4回目のS51の処理で特定されたジョブ群がジョブ群G4である場合に生成されるスケジュールの具体例について説明を行う。図25は、スケジュール情報136の具体例について説明する図である。
次に、4回目のS51の処理で特定されたジョブ群がジョブ群G4である場合に生成されるスケジュールの具体例について説明を行う。図25は、スケジュール情報136の具体例について説明する図である。
図24で説明したスケジュールは、ジョブ10の実行ノードがN1からN60であって、ジョブ10の実行時間が13時30分から13時50分であることを示している。そのため、情報管理部112は、図25の下線部分に示すように、「ジョブ名」が「JOB−C2」である情報(「項番」が「10」である情報)の「実行ノード」に「N1」から「N60」を設定し、「実行開始時間」に「13:30」を設定し、「実行終了時間」に「13:50」を設定する。
そして、実行指示部116は、S55の処理において、図25に示すスケジュール情報136をジョブ実行装置3に送信する。
これにより、情報処理装置1は、優先度の高いジョブ(例えば、投入順序の早いジョブ)の実行タイミングの遅延防止と、各ジョブの効率的な実行との両方が達成されるように、各ジョブをジョブ実行装置3に実行させることが可能になる。
[ジョブキュー情報の具体例(2)]
次に、ジョブ実行装置3が図25で説明したスケジュール情報136(実行指示部116が送信したスケジュール情報136)に従ってジョブの実行を開始した場合におけるジョブキュー情報132の具体例について説明を行う。図26は、ジョブキュー情報132の具体例について説明する図である。具体的に、図26は、図25に示すスケジュール情報136に情報が含まれるジョブのうち、ジョブ2及びジョブ3の実行が開始された場合におけるジョブキュー情報132の具体例を説明する図である。
次に、ジョブ実行装置3が図25で説明したスケジュール情報136(実行指示部116が送信したスケジュール情報136)に従ってジョブの実行を開始した場合におけるジョブキュー情報132の具体例について説明を行う。図26は、ジョブキュー情報132の具体例について説明する図である。具体的に、図26は、図25に示すスケジュール情報136に情報が含まれるジョブのうち、ジョブ2及びジョブ3の実行が開始された場合におけるジョブキュー情報132の具体例を説明する図である。
この場合、情報管理部112は、図26に示すように、図14で説明したジョブキュー情報132に含まれる情報から、ジョブ2及びジョブ3に対応する情報(「項番」が「2」及び「3」である情報)を削除する(S23)。
また、例えば、図25で説明したスケジュール情報136を作成するためのジョブスケジューリング処理の実行中に、「ジョブ名」が「JOB−E1」であるジョブ及び「ジョブ名」が「JOB−E2」であるジョブが投入された場合、情報管理部112は、図26の下線部分に示すように、「ジョブ名」に「JOB−E1」を設定した情報(「項番」が「11」である情報)と、「ジョブ名」に「JOB−E2」を設定した情報(「項番」が「12」である情報)とを追加する(S13)。
[ジョブ状況情報の具体例(2)]
次に、ジョブ実行装置3が図25で説明したスケジュール情報136(実行指示部116が送信したスケジュール情報136)に従ってジョブの実行を開始した場合におけるジョブ状況情報133の具体例について説明を行う。図27は、ジョブ状況情報133の具体例について説明する図である。具体的に、図27は、図25に示すスケジュール情報136に情報が含まれるジョブのうち、ジョブ2及びジョブ3の実行が開始された場合におけるジョブ状況情報133の具体例を説明する図である。
次に、ジョブ実行装置3が図25で説明したスケジュール情報136(実行指示部116が送信したスケジュール情報136)に従ってジョブの実行を開始した場合におけるジョブ状況情報133の具体例について説明を行う。図27は、ジョブ状況情報133の具体例について説明する図である。具体的に、図27は、図25に示すスケジュール情報136に情報が含まれるジョブのうち、ジョブ2及びジョブ3の実行が開始された場合におけるジョブ状況情報133の具体例を説明する図である。
この場合、情報管理部112は、図27に示すように、ジョブ2に対応する情報(「項番」が「1」である情報)と、ジョブ3に対応する情報(「項番」が「2」である情報)とを含むジョブ状況情報133を生成する(S22)。
なお、情報処理装置1は、S52の処理において、S51の処理で特定したジョブ群に含まれる各ジョブのうち、ジョブ実行装置3において同時に実行可能なジョブの組合せを特定し、さらに、特定したジョブの組合せのうち、各組合せに含まれるジョブの実行に要するノードの数が最大である組合せ(以下、特定の組合せとも呼ぶ)を特定するものであってもよい。そして、情報処理装置1は、特定した特定の組合せに含まれる各ジョブが同時に実行されるスケジュールを、S51の処理で特定したジョブ群に対応するスケジュールとして特定するものであってもよい。
また、情報処理装置1は、例えば、S52の処理で特定したスケジュールにおける全ジョブの実行終了時間が、S52の処理を前回行った際に特定したスケジュールにおける全ジョブの実行終了時間と同じだった場合、ジョブスケジューリング処理のメイン処理を中断し、例えば、従来の方法を用いることによって残りのジョブのスケジューリングを行うものであってもよい。
これにより、情報処理装置1は、S52の処理の実行に伴う処理負担を軽減させることが可能になる。
[ジョブ数更新処理]
次に、ジョブスケジューリング処理のうち、ジョブ数情報135の更新を行う処理(以下、ジョブ数更新処理とも呼ぶ)について説明を行う。図13は、ジョブ数更新処理を説明するフローチャート図である。
次に、ジョブスケジューリング処理のうち、ジョブ数情報135の更新を行う処理(以下、ジョブ数更新処理とも呼ぶ)について説明を行う。図13は、ジョブ数更新処理を説明するフローチャート図である。
情報処理装置1の所要時間特定部117は、図13に示すように、ジョブ数情報更新タイミングになるまで待機する(S61のNO)。ジョブ数情報更新タイミングは、例えば、S55の処理でジョブ実行装置3に送信したスケジュール情報136に情報が含まれる全ジョブの実行が終了したタイミングであってよい。
そして、ジョブ数情報更新タイミングになった場合(S61のYES)、所要時間特定部117は、情報格納領域130に記憶されたジョブ状況情報133を参照し、例えば、ジョブ数更新処理が前回行われた後に実行が終了したジョブごとに、各ジョブを含むジョブ群において最初に実行されたジョブの実行開始時間から各ジョブの実行開始時間までの所要時間をそれぞれ特定する(S62)。
続いて、情報処理装置1の平均時間算出部118は、ジョブ数更新処理が前回行われた後に実行が終了したジョブのうち、優先度が高い複数のジョブに対応する所要時間の平均時間を算出する(S63)。
具体的に、平均時間算出部118は、例えば、優先度が高い所定数のジョブに対応する所要時間の平均時間の算出を行うものであってよい。また、平均時間算出部118は、例えば、優先度が上位所定%(パーセント)に含まれるジョブに対応する所要時間の平均時間の算出を行うものであってよい。
その後、情報処理装置1のジョブ数決定部119は、S63の処理で算出した平均時間が特定の閾値を上回るか否かを判定する(S64)。
その結果、S63の処理で算出した平均時間が特定の閾値を上回ると判定した場合(S64のYES)、ジョブ数決定部119は、情報格納領域130に記憶されたジョブ数情報135が現在よりも小さい値を示すように更新する(S65)。
一方、S63で算出した平均時間が特定の閾値を上回らないと判定した場合(S64のNO)、ジョブ数決定部119は、S65の処理を行わない。
すなわち、情報処理装置1は、優先度の高い複数のジョブにおいて、実行タイミングが許容範囲外であったジョブの割合が高いと判定した場合、各ジョブ群に含まれるジョブの数が少なくなるように調整を行う。
これにより、情報処理装置1は、優先度の高いジョブの実行タイミングの遅延を安定的に防止することが可能になる。
なお、ジョブ数決定部119は、S63で算出した平均時間が特定の閾値と異なる他の閾値を下回ると判定した場合、情報格納領域130に記憶されたジョブ数情報135が現在よりも大きい値を示すように更新するものであってもよい。
このように、本実施の形態における情報処理装置1は、実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成する。そして、情報処理装置1は、複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う。この場合、情報処理装置1は、特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う。
すなわち、情報処理装置1は、優先度が高いジョブを含むジョブ群に含まれる各ジョブを他のジョブ群に含まれる各ジョブよりも優先させる一方、同じジョブ群に含まれるジョブ間の関係においては優先度を考慮することなくスケジューリングを行う。
これにより、情報処理装置1は、優先度の高いジョブの実行タイミングの遅延防止と各ジョブの効率的な実行との両方が達成されるように、各ジョブの実行タイミングについてのスケジューリングを行うことが可能になる。
具体的に、本実施の形態における情報処理装置1は、図28(A)に示すように、従来の方法を用いた場合(図28(B))と比較して、各ジョブの実行完了時間を早めることが可能になり、かつ、優先度の高いジョブ(例えば、ジョブ1)の実行タイミングの大幅な遅延を防止することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、
処理をコンピュータに実行させ、
前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、
処理をコンピュータに実行させ、
前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
(付記2)
付記1において、
前記複数のジョブは、複数のノードにおいて実行され、
前記スケジューリングを行う処理では、前記複数のジョブに含まれる特定のジョブについての実行タイミングのスケジューリングを行う場合、前記特定のジョブの実行タイミングが、前記特定のジョブの実行に要する数のノードが使用可能な時間帯のうちの最も早い時間帯になるように、前記複数のジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
付記1において、
前記複数のジョブは、複数のノードにおいて実行され、
前記スケジューリングを行う処理では、前記複数のジョブに含まれる特定のジョブについての実行タイミングのスケジューリングを行う場合、前記特定のジョブの実行タイミングが、前記特定のジョブの実行に要する数のノードが使用可能な時間帯のうちの最も早い時間帯になるように、前記複数のジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
(付記3)
付記1において、
前記スケジューリングを行う処理では、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
付記1において、
前記スケジューリングを行う処理では、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
(付記4)
付記1において、
前記複数のジョブは、複数のノードにおいて実行され、
前記スケジューリングを行う処理では、
前記1以上のジョブ群ごとに、各ジョブ群に含まれるジョブのうち、前記複数のノードにおいて同時に実行可能なジョブの組合せを特定し、
前記1以上のジョブ群ごとに、特定した前記ジョブの組合せのうち、各組合せに含まれるジョブの実行に要するノードの数が最大である特定の組合せを特定し、
前記1以上のジョブ群ごとに、特定した前記特定の組合せに含まれる各ジョブが同時に実行されるスケジュールを選択することにより、各ジョブ群に含まれるジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
付記1において、
前記複数のジョブは、複数のノードにおいて実行され、
前記スケジューリングを行う処理では、
前記1以上のジョブ群ごとに、各ジョブ群に含まれるジョブのうち、前記複数のノードにおいて同時に実行可能なジョブの組合せを特定し、
前記1以上のジョブ群ごとに、特定した前記ジョブの組合せのうち、各組合せに含まれるジョブの実行に要するノードの数が最大である特定の組合せを特定し、
前記1以上のジョブ群ごとに、特定した前記特定の組合せに含まれる各ジョブが同時に実行されるスケジュールを選択することにより、各ジョブ群に含まれるジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。
(付記5)
付記1において、
前記生成する処理では、前記複数のジョブを優先度が高い順に所定数ずつグルーピングする、
ことを特徴とするジョブスケジューリングプログラム。
付記1において、
前記生成する処理では、前記複数のジョブを優先度が高い順に所定数ずつグルーピングする、
ことを特徴とするジョブスケジューリングプログラム。
(付記6)
付記5において、さらに、
前記複数のジョブの実行後、前記複数のジョブごとに、各ジョブを含む前記ジョブ群において最初に実行されたジョブの実行開始時間から各ジョブの実行開始時間までの所要時間をそれぞれ特定し、
前記複数のジョブのうち、所定の条件を満たすジョブに対応する前記所要時間の平均時間を算出し、
算出した前記平均時間が閾値を上回っている場合、前記所定数がより小さい数になるように前記所定数の再決定を行う、
処理をコンピュータに実行させることを特徴とするジョブスケジューリングプログラム。
付記5において、さらに、
前記複数のジョブの実行後、前記複数のジョブごとに、各ジョブを含む前記ジョブ群において最初に実行されたジョブの実行開始時間から各ジョブの実行開始時間までの所要時間をそれぞれ特定し、
前記複数のジョブのうち、所定の条件を満たすジョブに対応する前記所要時間の平均時間を算出し、
算出した前記平均時間が閾値を上回っている場合、前記所定数がより小さい数になるように前記所定数の再決定を行う、
処理をコンピュータに実行させることを特徴とするジョブスケジューリングプログラム。
(付記7)
付記6において、
前記算出する処理では、前記複数のジョブのうち、優先度が高い複数のジョブに対応する前記所要時間の平均時間を算出する、
ことを特徴とするジョブスケジューリングプログラム。
付記6において、
前記算出する処理では、前記複数のジョブのうち、優先度が高い複数のジョブに対応する前記所要時間の平均時間を算出する、
ことを特徴とするジョブスケジューリングプログラム。
(付記8)
付記6において、さらに、
算出した前記平均時間が他の閾値を下回っている場合、前記所定数がより大きい数になるように前記所定数の再決定を行う、
処理をコンピュータに実行させることを特徴とするジョブスケジューリングプログラム。
付記6において、さらに、
算出した前記平均時間が他の閾値を下回っている場合、前記所定数がより大きい数になるように前記所定数の再決定を行う、
処理をコンピュータに実行させることを特徴とするジョブスケジューリングプログラム。
(付記9)
実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成するジョブ群生成部と、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行うスケジューリング部と、を有し、
前記スケジューリング部は、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とする情報処理装置。
実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成するジョブ群生成部と、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行うスケジューリング部と、を有し、
前記スケジューリング部は、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とする情報処理装置。
(付記10)
付記9において、
前記スケジューリング部は、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とする情報処理装置。
付記9において、
前記スケジューリング部は、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とする情報処理装置。
(付記11)
実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、
処理をコンピュータに実行させ、
前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリング方法。
実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、
処理をコンピュータに実行させ、
前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリング方法。
(付記12)
付記11において、
前記スケジューリングを行う処理では、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリング方法。
付記11において、
前記スケジューリングを行う処理では、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリング方法。
1:情報処理装置 2:操作端末
3:ジョブ実行装置 10:情報処理システム
NW:ネットワーク
3:ジョブ実行装置 10:情報処理システム
NW:ネットワーク
Claims (9)
- 実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、
処理をコンピュータに実行させ、
前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。 - 請求項1において、
前記複数のジョブは、複数のノードにおいて実行され、
前記スケジューリングを行う処理では、前記複数のジョブに含まれる特定のジョブについての実行タイミングのスケジューリングを行う場合、前記特定のジョブの実行タイミングが、前記特定のジョブの実行に要する数のノードが使用可能な時間帯のうちの最も早い時間帯になるように、前記複数のジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。 - 請求項1において、
前記スケジューリングを行う処理では、前記1以上のジョブ群ごとに、各ジョブ群に含まれる全てのジョブの実行完了時間が最も早くなるスケジュールを選択することにより、各ジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。 - 請求項1において、
前記複数のジョブは、複数のノードにおいて実行され、
前記スケジューリングを行う処理では、
前記1以上のジョブ群ごとに、各ジョブ群に含まれるジョブのうち、前記複数のノードにおいて同時に実行可能なジョブの組合せを特定し、
前記1以上のジョブ群ごとに、特定した前記ジョブの組合せのうち、各組合せに含まれるジョブの実行に要するノードの数が最大である特定の組合せを特定し、
前記1以上のジョブ群ごとに、特定した前記特定の組合せに含まれる各ジョブが同時に実行されるスケジュールを選択することにより、各ジョブ群に含まれるジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリングプログラム。 - 請求項1において、
前記生成する処理では、前記複数のジョブを優先度が高い順に所定数ずつグルーピングする、
ことを特徴とするジョブスケジューリングプログラム。 - 請求項5において、さらに、
前記複数のジョブの実行後、前記複数のジョブごとに、各ジョブを含む前記ジョブ群において最初に実行されたジョブの実行開始時間から各ジョブの実行開始時間までの所要時間をそれぞれ特定し、
前記複数のジョブのうち、所定の条件を満たすジョブに対応する前記所要時間の平均時間を算出し、
算出した前記平均時間が閾値を上回っている場合、前記所定数がより小さい数になるように前記所定数の再決定を行う、
処理をコンピュータに実行させることを特徴とするジョブスケジューリングプログラム。 - 請求項6において、
前記算出する処理では、前記複数のジョブのうち、優先度が高い複数のジョブに対応する前記所要時間の平均時間を算出する、
ことを特徴とするジョブスケジューリングプログラム。 - 実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成するジョブ群生成部と、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行うスケジューリング部と、を有し、
前記スケジューリング部は、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とする情報処理装置。 - 実行対象の複数のジョブを優先度が高い順にグルーピングすることによって1以上のジョブ群を生成し、
前記複数のジョブについての実行タイミングのスケジューリングを、優先度がより高いジョブを含む特定のジョブ群に含まれる各ジョブのスケジューリングが他のジョブ群に含まれる各ジョブのスケジューリングよりも優先して実施されるように行う、
処理をコンピュータに実行させ、
前記スケジューリングを行う処理では、前記特定のジョブ群に含まれる全てのジョブの実行完了時間が所定の条件を満たすように、前記特定のジョブ群に含まれる各ジョブについての実行タイミングのスケジューリングを行う、
ことを特徴とするジョブスケジューリング方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019204385A JP2021077180A (ja) | 2019-11-12 | 2019-11-12 | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 |
US17/073,489 US11550626B2 (en) | 2019-11-12 | 2020-10-19 | Information processing apparatus, job scheduling method, and non-transitory computer-readable storage medium |
EP20203310.6A EP3822784A1 (en) | 2019-11-12 | 2020-10-22 | Job scheduling program, information processing apparatus, and job scheduling method |
CN202011215976.2A CN112860390A (zh) | 2019-11-12 | 2020-11-04 | 作业调度程序、信息处理设备和作业调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019204385A JP2021077180A (ja) | 2019-11-12 | 2019-11-12 | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021077180A true JP2021077180A (ja) | 2021-05-20 |
Family
ID=73013228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019204385A Pending JP2021077180A (ja) | 2019-11-12 | 2019-11-12 | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11550626B2 (ja) |
EP (1) | EP3822784A1 (ja) |
JP (1) | JP2021077180A (ja) |
CN (1) | CN112860390A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946430B (zh) * | 2021-12-20 | 2022-05-06 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
CN115202850B (zh) * | 2022-09-09 | 2022-12-20 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
GB2624514A (en) * | 2022-09-23 | 2024-05-22 | Samsung Electronics Co Ltd | Method for optimising usage of a processing unit for executing machine learning models |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334378A (ja) * | 1994-06-03 | 1995-12-22 | Nec Corp | タスクスケジューリング方法 |
US20060190943A1 (en) * | 2005-02-22 | 2006-08-24 | Northrop Grumman Corporation | System and a method for scheduling tasks |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3221249B2 (ja) | 1994-10-04 | 2001-10-22 | 富士ゼロックス株式会社 | 出力装置およびジョブ管理装置 |
JP4935595B2 (ja) * | 2007-09-21 | 2012-05-23 | 富士通株式会社 | ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム |
US10353774B2 (en) * | 2015-10-30 | 2019-07-16 | International Business Machines Corporation | Utilizing storage unit latency data in a dispersed storage network |
US20130074088A1 (en) * | 2011-09-19 | 2013-03-21 | Timothy John Purcell | Scheduling and management of compute tasks with different execution priority levels |
EP3121716A1 (en) * | 2015-07-21 | 2017-01-25 | Robert Bosch Gmbh | Method and apparatus for hosting a multitasking guest on a host system |
US9842000B2 (en) * | 2015-09-18 | 2017-12-12 | Salesforce.Com, Inc. | Managing processing of long tail task sequences in a stream processing framework |
GB2545435B (en) * | 2015-12-15 | 2019-10-30 | Advanced Risc Mach Ltd | Data processing systems |
US10095597B2 (en) * | 2016-01-13 | 2018-10-09 | International Business Machines Corporation | Managing a set of wear-leveling data using a set of thread events |
US20170213171A1 (en) * | 2016-01-21 | 2017-07-27 | Accenture Global Solutions Limited | Intelligent scheduling and work item allocation |
US10545796B2 (en) * | 2017-05-04 | 2020-01-28 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items |
US11113101B2 (en) * | 2017-06-05 | 2021-09-07 | Marvell Asia Pte, Ltd. | Method and apparatus for scheduling arbitration among a plurality of service requestors |
CN108762896B (zh) * | 2018-03-26 | 2022-04-12 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
US11100604B2 (en) * | 2019-01-31 | 2021-08-24 | Advanced Micro Devices, Inc. | Multiple application cooperative frame-based GPU scheduling |
US11366689B2 (en) * | 2019-02-26 | 2022-06-21 | Nxp Usa, Inc. | Hardware for supporting OS driven observation and anticipation based on more granular, variable sized observation units |
-
2019
- 2019-11-12 JP JP2019204385A patent/JP2021077180A/ja active Pending
-
2020
- 2020-10-19 US US17/073,489 patent/US11550626B2/en active Active
- 2020-10-22 EP EP20203310.6A patent/EP3822784A1/en not_active Withdrawn
- 2020-11-04 CN CN202011215976.2A patent/CN112860390A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334378A (ja) * | 1994-06-03 | 1995-12-22 | Nec Corp | タスクスケジューリング方法 |
US20060190943A1 (en) * | 2005-02-22 | 2006-08-24 | Northrop Grumman Corporation | System and a method for scheduling tasks |
US7793294B2 (en) * | 2005-02-22 | 2010-09-07 | Northrop Grumman Corporation | System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task |
Also Published As
Publication number | Publication date |
---|---|
US11550626B2 (en) | 2023-01-10 |
US20210141667A1 (en) | 2021-05-13 |
CN112860390A (zh) | 2021-05-28 |
EP3822784A1 (en) | 2021-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021077180A (ja) | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 | |
Rahman et al. | A dynamic critical path algorithm for scheduling scientific workflow applications on global grids | |
US9996388B1 (en) | Systems and methods for managing the execution of processing jobs | |
US20090083746A1 (en) | Method for job management of computer system | |
US6560628B1 (en) | Apparatus, method, and recording medium for scheduling execution using time slot data | |
US7441240B2 (en) | Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling | |
US8566285B2 (en) | Method and system for scheduling and controlling backups in a computer system | |
CN113238838A (zh) | 一种任务调度方法、装置及计算机可读存储介质 | |
JPWO2006100752A1 (ja) | 分散処理管理装置、分散処理管理方法、分散処理管理プログラム | |
JP4697805B2 (ja) | データ処理装置 | |
CN103309738A (zh) | 用户作业调度方法及装置 | |
JP4912927B2 (ja) | タスク割当装置、及びタスク割当方法 | |
CN104199739A (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
US8028291B2 (en) | Method and computer program product for job selection and resource allocation of a massively parallel processor | |
JP2009230581A (ja) | バッチジョブ制御システム、管理ノード、およびバッチジョブ制御方法 | |
KR101335038B1 (ko) | 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘 | |
US10866837B2 (en) | Distributed job framework and task queue | |
US9367361B2 (en) | Information processing device, method for processing information, and non-transitory computer-readable recording medium having stored therein information processing program | |
CN107589985B (zh) | 一种面向大数据平台的两阶段作业调度方法及系统 | |
JP2021189885A (ja) | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 | |
JP2021189461A (ja) | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 | |
JP2016018348A (ja) | ジョブ管理方法、ジョブ管理システム、およびジョブ管理プログラム | |
Kumar et al. | Arrival based deadline aware job scheduling algorithm in cloud | |
JP2001043096A (ja) | ソフトリアルタイムにおけるスケジューリング方法 | |
JP7434893B2 (ja) | 情報処理管理装置および情報処理管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220708 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230905 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240305 |