JP2021190001A - Job scheduling program, information processing apparatus, and job scheduling method - Google Patents
Job scheduling program, information processing apparatus, and job scheduling method Download PDFInfo
- Publication number
- JP2021190001A JP2021190001A JP2020097647A JP2020097647A JP2021190001A JP 2021190001 A JP2021190001 A JP 2021190001A JP 2020097647 A JP2020097647 A JP 2020097647A JP 2020097647 A JP2020097647 A JP 2020097647A JP 2021190001 A JP2021190001 A JP 2021190001A
- Authority
- JP
- Japan
- Prior art keywords
- job
- jobs
- execution time
- parameter
- value
- 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.)
- Withdrawn
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 title claims description 51
- 238000012545 processing Methods 0.000 claims description 48
- 238000004458 analytical method Methods 0.000 description 40
- 238000004364 calculation method Methods 0.000 description 36
- 238000009826 distribution Methods 0.000 description 29
- 238000004088 simulation Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、ジョブスケジューリングプログラム、情報処理装置およびジョブスケジューリング方法に関する。 The present invention relates to a job scheduling program, an information processing apparatus, and a job scheduling method.
HPC(High Performance Computing)システムなどの大規模なコンピュータシステム(以下、単にシステムと呼ぶこともある)は、大量の計算ノードを用いてジョブを実行する。そのため各計算ノードへのジョブの割当を管理するためのジョブスケジューリングが重要となる。 A large-scale computer system (hereinafter, also referred to simply as a system) such as an HPC (High Performance Computing) system executes a job using a large number of computing nodes. Therefore, job scheduling for managing job allocation to each compute node is important.
ジョブスケジューリングでは、例えば各ジョブの実行のために使用される計算ノードおよび各ジョブの実行のために計算ノードが使用される時間を示すスケジュールが決定される。そしてシステムは、スケジュールに従ってジョブを実行する。 Job scheduling determines, for example, a schedule that indicates the compute node used to execute each job and the time the compute node is used to execute each job. The system then executes the job according to the schedule.
ジョブスケジューリングに関する技術としては、例えば推定処理時間に基づいた手動操作により、自動スケジューリングの結果を適切に変更することを可能とするジョブスケジューリングシステムが提案されている。また例えば、時間軸方向をいくつかのスケジュール区間に分割し、個々のジョブをそのスケジュール区間単位に切り上げてスケジューリングする技術が提案されている。 As a technique related to job scheduling, a job scheduling system has been proposed that makes it possible to appropriately change the result of automatic scheduling by, for example, a manual operation based on an estimated processing time. Further, for example, a technique has been proposed in which the time axis direction is divided into several schedule sections, and individual jobs are rounded up to the schedule section for scheduling.
ジョブの実行のために計算ノードが使用される実際の時間(つまり、ジョブの実行時間)は、事前に分からない。そこで、ユーザが計算ノードの使用を希望する時間として指定した時間を用いて、ジョブスケジューリングすることが考えられる。システムでは、ユーザが指定した時間はジョブの打ち切り時間として使用される。すなわち、実行開始からユーザが指定した時間内に完了できないジョブの実行は、その時間が経過した時点で打ち切りとなり、ジョブの実行時間が指定された時間を超過することはない。そのため、ユーザが指定した時間に基づいてジョブスケジューリングを行えば、ユーザが指定した時間とジョブの実行時間とに差があっても、スケジュール通りに各ジョブの実行を開始することができる。しかしながら、ジョブの実際の実行時間がユーザの指定した時間より短い場合、その時間の差が大きいとシステムの使用効率が低下する。 The actual time the compute node is used to run the job (that is, the job run time) is not known in advance. Therefore, it is conceivable to schedule the job using the time specified by the user as the desired time to use the compute node. In the system, the time specified by the user is used as the job termination time. That is, the execution of a job that cannot be completed within the time specified by the user from the start of execution is terminated when that time elapses, and the execution time of the job does not exceed the specified time. Therefore, if job scheduling is performed based on the time specified by the user, the execution of each job can be started according to the schedule even if there is a difference between the time specified by the user and the execution time of the job. However, if the actual execution time of the job is shorter than the time specified by the user, the system usage efficiency will decrease if the time difference is large.
ここで、ジョブの実行時間を高精度に予測できれば、予測した実行時間に基づいてジョブスケジューリングを行うことで、システムの使用効率を向上させることが可能となる。ただし、実行されたジョブが予測した実行時間までに完了できなかった場合、そのジョブが予定の時間を超過して実行され、それ以降の他のジョブの実行スケジュールが崩れてしまう。ジョブの実行スケジュールが崩れると、システムの使用効率が却って悪化する可能性がある。 Here, if the job execution time can be predicted with high accuracy, it is possible to improve the system usage efficiency by performing job scheduling based on the predicted execution time. However, if the executed job cannot be completed by the expected execution time, the job will be executed beyond the scheduled time, and the execution schedule of other jobs after that will be disrupted. If the job execution schedule is broken, the system usage efficiency may worsen.
1つの側面では、本件は、システムの使用効率を向上させることを目的とする。 In one aspect, the present case aims to improve the efficiency of use of the system.
1つの案では、コンピュータに以下の処理を実行させるジョブスケジューリングプログラムが提供される
コンピュータは、新規に投入される第1ジョブおよび実行が終了した複数の第2ジョブそれぞれのパラメータを含む、第1ジョブおよび複数の第2ジョブそれぞれのジョブ情報に基づいて、第1ジョブの第1パラメータの値と複数の第2ジョブそれぞれの第1パラメータと同種の第2パラメータの値とが一致するか否かを判定する。そしてコンピュータは、複数の第2ジョブに、第2パラメータの値が第1パラメータの値と一致するジョブが含まれていない場合、第1ジョブが開始してから実行が打ち切られるまでの時間を第1ジョブがスケジューリングされる際の推定実行時間に決定する。またコンピュータは、複数の第2ジョブに、第2パラメータの値が第1パラメータの値と一致する一以上の第3ジョブが含まれる場合、一以上の第3ジョブそれぞれの過去に実行された際の実行時間に基づいて、推定実行時間を決定する。
In one proposal, the computer to which the job scheduling program for causing the computer to execute the following processing includes the parameters of the newly submitted first job and the plurality of second jobs whose execution has been completed, respectively, as the first job. And whether or not the value of the first parameter of the first job matches the value of the first parameter of each of the plurality of second jobs and the value of the second parameter of the same type based on the job information of each of the plurality of second jobs. judge. Then, when the plurality of second jobs do not include a job whose value of the second parameter matches the value of the first parameter, the computer sets the time from the start of the first job to the termination of execution. 1 Determines the estimated execution time when a job is scheduled. Further, when the computer includes one or more third jobs whose values of the second parameter match the values of the first parameter, when the plurality of second jobs are executed in the past of each of the one or more third jobs. Determine the estimated execution time based on the execution time of.
1態様によれば、システムの使用効率を向上させることができる。 According to one aspect, the efficiency of use of the system can be improved.
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
Hereinafter, the present embodiment will be described with reference to the drawings. It should be noted that each embodiment can be implemented by combining a plurality of embodiments within a consistent range.
[First Embodiment]
First, the first embodiment will be described.
図1は、第1の実施の形態に係るジョブスケジューリング方法の一例を示す図である。図1には、ジョブスケジューリング方法を実施する情報処理装置10が示されている。情報処理装置10は、例えばジョブスケジューリング方法の処理手順が記述されたジョブスケジューリングプログラムを実行することにより、ジョブスケジューリング方法を実施することができる。 FIG. 1 is a diagram showing an example of a job scheduling method according to the first embodiment. FIG. 1 shows an information processing apparatus 10 that implements a job scheduling method. The information processing apparatus 10 can implement the job scheduling method by, for example, executing a job scheduling program in which the processing procedure of the job scheduling method is described.
情報処理装置10は、例えばHPCシステム1に接続されており、HPCシステム1に新規に投入される第1ジョブ2のスケジューリングに用いられる実行時間を推定する。情報処理装置10は、ジョブスケジューリング方法を実現するために、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサ、または演算回路である。
The information processing apparatus 10 is connected to, for example, the
記憶部11は、ジョブ情報11a,11b,・・・を記憶する。ジョブ情報11a,11b,・・・は、対応するジョブのパラメータを含む。ジョブのパラメータとしては、例えばジョブの名称を示すパラメータ(ジョブ名)、ジョブを投入したユーザの名称を示すパラメータ(ユーザ名)およびユーザが所属するグループを示すパラメータ(グループ名)等がある。また実行が終了したジョブのパラメータとしては、ジョブの実行時間がある。ジョブ情報11a,11b,・・・には、第1ジョブ2および実行が終了した複数の第4ジョブそれぞれのジョブ情報が含まれる。
The storage unit 11
まず処理部12は、第1ジョブ2と類似する、実行が終了した第2ジョブ3a,3b,・・・を特定する。例えば処理部12は、第1ジョブ2および実行が終了した複数の第4ジョブそれぞれのジョブ情報と所定の計算式を用いて、第1ジョブ2と複数の第4ジョブそれぞれとの類似度を計算する。処理部12は、2つのジョブの類似度を、例えば2つのジョブのトピック分布の類似度を計算するための計算式を用いて計算する。処理部12は、第1ジョブ2と複数の第4ジョブそれぞれとの類似度に基づいて、複数の第4ジョブの中から第1ジョブ2とジョブ情報が類似する第2ジョブ3a,3b,・・・を特定する。例えば処理部12は、複数の第4ジョブのうち、第1ジョブ2との類似度が高い順に所定数のジョブを、第2ジョブ3a,3b,・・・として特定する。
First, the processing unit 12 identifies the
次に処理部12は、第1ジョブ2および第2ジョブ3a,3b,・・・それぞれのジョブ情報に基づいて、第1ジョブ2の第1パラメータの値と第2ジョブ3a,3b,・・・それぞれの第1パラメータと同種の第2パラメータの値とが一致するか否かを判定する。例えば第1パラメータは複数であり、複数の第1パラメータには、ジョブ名、ユーザ名およびグループ名が含まれる。
Next, the processing unit 12 sets the values of the first parameters of the
そして処理部12は、第1ジョブ2がスケジューリングされる際の推定実行時間を決定する。処理部12は、第2ジョブ3a,3b,・・・に、第2パラメータの値が第1パラメータの値と一致するジョブが含まれていない場合、第1ジョブ2が開始してから実行が打ち切られるまでの時間を第1ジョブ2がスケジューリングされる際の推定実行時間に決定する。例えば処理部12は、第1ジョブ2のジョブ情報に含まれる、第1ジョブ2が開始してから実行が打ち切られるまでの時間を示すパラメータ(例えば、要求実行時間)を参照する。そして処理部12は、第1ジョブ2の要求実行時間を第1ジョブ2がスケジューリングされる際の推定実行時間に決定する。
Then, the processing unit 12 determines the estimated execution time when the
処理部12は、第2ジョブ3a,3b,・・・に、第2パラメータの値が第1パラメータの値と一致する第3ジョブ4a,4b,・・・が含まれる場合、第3ジョブ4a,4b,・・・それぞれの過去に実行された際の実行時間に基づいて、推定実行時間を決定する。例えば処理部12は、第3ジョブ4a,4b,・・・それぞれの過去に実行された際の実行時間のうちの最大実行時間に基づいて、推定実行時間を決定する。処理部12は、推定実行時間を、第3ジョブ4a,4b,・・・それぞれの実行時間のうちの最大実行時間に決定してもよいし、第3ジョブ4a,4b,・・・それぞれの実行時間のうちの最大実行時間を所定の割合だけ増減したものに決定してもよい。
When the
第1ジョブ2は、決定された推定実行時間に基づいてスケジューリングされる。第1ジョブ2は、処理部12によってスケジューリングされてもよいし、他の情報処理装置によってスケジューリングされてもよい。例えば処理部12は、第1ジョブ2を含む、HPCシステム1に投入された複数のジョブのスケジューリングを行う。処理部12は、第1ジョブ2の実行のためにHPCシステム1の計算ノードが推定実行時間だけ使用されるものとしてスケジューリングを行う。
The
このような情報処理装置10によれば、処理部12は、第2パラメータの値が第1パラメータの値と一致するジョブがなければ、第1ジョブ2が開始してから実行が打ち切られるまでの時間を第1ジョブ2がスケジューリングされる際の推定実行時間に決定する。また処理部12は、第2パラメータの値が第1パラメータの値と一致する第3ジョブ4a,4b,・・・があれば、第3ジョブ4a,4b,・・・それぞれの過去に実行された際の実行時間に基づいて、推定実行時間を決定する。
According to such an information processing apparatus 10, if there is no job whose value of the second parameter matches the value of the first parameter, the processing unit 12 starts the
ここで第1ジョブ2の推定実行時間より第1ジョブ2の実際の実行時間が長いと、第1ジョブ2を実行していた計算ノードは、第1ジョブ2の後に実行を予定していたジョブを開始予定時刻に開始できない。また第1ジョブ2の推定実行時間より第1ジョブ2の実際の実行時間が短いと、第1ジョブ2を実行していた計算ノードは、次のジョブの実行予定時刻まで待機することとなる。なお次のジョブの実行予定時刻まで待機することよりも、次のジョブを開始予定時刻に開始できないことのほうがHPCシステム1の使用効率を低下させる。
Here, if the actual execution time of the
そこで情報処理装置10は、第2パラメータの値が第1パラメータの値と一致する第3ジョブ4a,4b,・・・に基づいて、第1ジョブ2の実行時間を予測する。情報処理装置10は、第2パラメータの値が第1パラメータの値と一致するジョブがない(つまり、第1ジョブ2の実行時間を予測できない)場合、実行が打ち切られるまでの時間を推定実行時間に決定し、推定実行時間が実際の実行時間より長くなるようにする。また情報処理装置10は、第2パラメータの値が第1パラメータの値と一致する第3ジョブ4a,4b,・・・がある場合、第1ジョブ2の予測の実行時間を推定実行時間に決定し、計算ノードがジョブを実行していない時間が短くなるようにする。これにより、情報処理装置10は、HPCシステム1の使用効率を向上させることができる。
Therefore, the information processing apparatus 10 predicts the execution time of the
また処理部12は、第3ジョブ4a,4b,・・・がある場合、第3ジョブ4a,4b,・・・それぞれの過去に実行された際の実行時間のうちの最大実行時間に基づいて、推定実行時間を決定する。これにより情報処理装置10は、推定実行時間が実際の実行時間より長くなるようにできる。 Further, when there are third jobs 4a, 4b, ..., The processing unit 12 is based on the maximum execution time of the execution times when the third jobs 4a, 4b, ... Are executed in the past. , Determine the estimated execution time. As a result, the information processing apparatus 10 can make the estimated execution time longer than the actual execution time.
また第1パラメータにはジョブ名、ユーザ名およびグループ名が含まれる。これにより情報処理装置10は、第1ジョブと同じような内容で、実行が終了したジョブの実行時間に基づいて、第1ジョブの推定実行時間を精度良く決定できる。 Further, the first parameter includes a job name, a user name and a group name. As a result, the information processing apparatus 10 can accurately determine the estimated execution time of the first job based on the execution time of the job whose execution has been completed, with the same contents as the first job.
また処理部12は、複数の第4ジョブの中から第1ジョブ2とジョブ情報が類似する第2ジョブ3a,3b,・・・を特定し、第2ジョブ3a,3b,・・・に第3ジョブ4a,4b,・・・が含まれるか否かに応じて上記の処理を実行する。これにより情報処理装置10は、第1ジョブとジョブ情報が類似する、実行が終了したジョブの実行時間に基づいて、第1ジョブの推定実行時間を精度良く決定できる。
Further, the processing unit 12 identifies the
なお処理部12は、第2ジョブ3a,3b,・・・に、第3ジョブ4a,4b,・・・が含まれる場合の、推定実行時間の決定では、第1パラメータと別種の第3パラメータに応じて、次のように推定実行時間を決定してもよい。
When the
処理部12は、第3ジョブ4a,4b,・・・それぞれのジョブ情報に示される、第3ジョブ4a,4b,・・・それぞれの第3パラメータを参照する。そして処理部12は、第3ジョブ4a,4b,・・・すべての第3パラメータの値が同じである場合、第3ジョブ4a,4b,・・・それぞれの過去に実行された際の実行時間に基づいて、推定実行時間を決定する。また処理部12は、第3ジョブ4a,4b,・・・すべての第3パラメータの値が同じでない場合、第1ジョブ2が開始してから実行が打ち切られるまでの時間を推定実行時間に決定する。これにより情報処理装置10は、推定実行時間が実際の実行時間より短くなることをさらに抑止できる。
The processing unit 12 refers to the third parameters of the third jobs 4a, 4b, ... Shown in the job information of the third jobs 4a, 4b, .... Then, when the values of the third jobs 4a, 4b, ..., All the third parameters are the same, the processing unit 12 has the execution time when the third jobs 4a, 4b, ... The estimated execution time is determined based on. Further, the processing unit 12 determines the time from the start of the
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、HPCシステムに投入するジョブの実行時間を推定し、推定した実行時間に基づいてジョブスケジューリングをするものである。
[Second Embodiment]
Next, the second embodiment will be described. In the second embodiment, the execution time of the job to be input to the HPC system is estimated, and the job scheduling is performed based on the estimated execution time.
図2は、第2の実施の形態のシステム構成例を示す図である。HPCシステム30は、複数の計算ノード31,32,・・・を有している。計算ノード31,32,・・・は、投入されたジョブを実行するコンピュータである。
FIG. 2 is a diagram showing a system configuration example of the second embodiment. The
HPCシステム30内の計算ノード31,32,・・・は、HPC運用管理サーバ200に接続されている。HPC運用管理サーバ200は、HPCシステム30の運用管理を行うコンピュータである。例えばHPC運用管理サーバ200は、実行待ちのジョブについて、管理サーバ100が推定したジョブの実行時間に基づいてジョブスケジューリングを行う。そしてHPC運用管理サーバ200は、作成したジョブの実行スケジュールに従って、計算ノード31,32,・・・にジョブの実行を指示する。
The
HPC運用管理サーバ200は、ネットワーク20を介して端末装置41,42,・・・および管理サーバ100に接続されている。端末装置41,42,・・・は、HPCシステム30によるジョブの実行を希望するユーザが使用するコンピュータである。端末装置41,42,・・・は、ユーザの入力に基づいてHPCシステム30に実行させるジョブの内容を示すジョブ情報を生成し、生成したジョブ情報を含むジョブ投入要求を、HPC運用管理サーバ200に送信する。
The HPC
管理サーバ100は、HPC運用管理サーバ200によるHPCシステム30のジョブスケジューリングを支援するコンピュータである。管理サーバ100は、HPC運用管理サーバ200から、実行するジョブおよび実行が終了したジョブのジョブ情報を取得する。なお、実行が終了したジョブのジョブ情報には、ジョブの実行時間を示す情報が含まれる。管理サーバ100は、実行が終了したジョブのジョブ情報と実行時間とに基づいて、新規に投入されたジョブ(新規投入ジョブ)の実行時間を推定する。そして管理サーバ100は、HPC運用管理サーバ200に、新規投入ジョブの推定実行時間を送信する。
The
図3は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
FIG. 3 is a diagram showing a configuration example of the hardware of the management server. The entire device of the
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
The
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
Peripheral devices connected to the bus 109 include a
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
The
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
A monitor 21 is connected to the
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
A keyboard 22 and a mouse 23 are connected to the
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
The
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
The
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
The
管理サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。計算ノード31,32,・・・、HPC運用管理サーバ200、および端末装置41,42,・・・も、管理サーバ100と同様のハードウェアで実現できる。なお計算ノード31,32,・・・は、計算ノード31,32,・・・同士で高速通信を行うためのインターコネクト用インタフェースをさらに有している。図1に示した第1の実施の形態の情報処理装置10も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
The
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
The
図2に示すシステムにおいて、HPC運用管理サーバ200と管理サーバ100とが連係動作し、HPCシステム30で実行されるジョブのスケジューリングが行われる。例えば管理サーバ100が、新規投入ジョブがHPCシステム30で実行される場合の実行時間を推定する。HPC運用管理サーバ200は、新規投入ジョブの推定実行時間に基づいて、計算ノード31,32,・・・それぞれが実行するジョブのスケジュールを生成するためのジョブスケジューリングを行う。
In the system shown in FIG. 2, the HPC
図4は、スケジュールの一例を示す図である。スケジュール50は、HPC運用管理サーバ200が複数の新規投入ジョブを推定実行時間に基づいてスケジューリングしたスケジュールの一例である。スケジュール50の縦軸は、計算ノード数を示す。なお図4の水平な点線は、計算ノード31,32,・・・の総数を示す。スケジュール50の横軸は、時間を示す。第2の実施の形態では、現在から所定時間経過後までのスケジューリング期間が複数の区間に分割されている。なお、スケジューリング期間における最初の区間を0番目の区間ということがある。また各区間は等間隔でもよいし、それぞれ異なる間隔でもよい。図4ではジョブは、縦の長さがジョブの実行に用いられる計算ノード数、横の長さがジョブの推定実行時間を示す長方形で示される。長方形内の数字は、ジョブの優先度を示す。HPC運用管理サーバ200は、以下のようにスケジュール50を生成する。
FIG. 4 is a diagram showing an example of a schedule. Schedule 50 is an example of a schedule in which the HPC
HPC運用管理サーバ200は、0番目の区間から2番目の区間までの期間に、優先度が1のジョブを割り当てる。またHPC運用管理サーバ200は、0番目の区間から1番目の区間までの期間に、優先度が2のジョブを割り当てる。またHPC運用管理サーバ200は、0番目の区間から4番目の区間までの期間に、優先度が3のジョブを割り当てる。またHPC運用管理サーバ200は、0番目の区間から3番目の区間までの期間に、優先度が4のジョブを割り当てる。
The HPC
ここで優先度が1〜5のジョブそれぞれの実行に用いられる計算ノード数の合計は、計算ノード31,32,・・・の総数を超える。よってHPC運用管理サーバ200は、すでに優先度が1〜4のジョブがスケジューリングされている0番目の区間には、優先度が5のジョブをスケジューリングできない。また同様に、HPC運用管理サーバ200は、優先度が5のジョブを1〜2番目の区間にスケジューリングできない。よってHPC運用管理サーバ200は、3番目の区間から6番目の区間までの期間に、優先度が5のジョブを割り当てる。またHPC運用管理サーバ200は、優先度が6のジョブを0〜4番目の区間にスケジューリングできないため、5番目の区間から8番目の区間までの期間に、優先度が6のジョブを割り当てる。
Here, the total number of calculation nodes used to execute each
上記のようにして、ジョブの推定実行時間に基づいたスケジューリングが行われる。なお、ジョブの実際の実行時間は実行前に分からないため、推定実行時間に基づいたスケジューリング通りにジョブが実行されないことがある。そこで次に、推定実行時間が実際の実行時間より長い場合および推定実行時間が実際の実行時間より短い場合の、ジョブの実行に与える影響について説明する。 As described above, scheduling is performed based on the estimated execution time of the job. Since the actual execution time of the job is not known before execution, the job may not be executed according to the scheduling based on the estimated execution time. Therefore, next, the influence on the job execution when the estimated execution time is longer than the actual execution time and when the estimated execution time is shorter than the actual execution time will be described.
図5は、推定実行時間と実際の実行時間との差の第1の影響の例を示す図である。実行結果61は、ジョブの実際の実行時間が実行前から分かっていると仮定して(つまり、推定実行時間=実際の実行時間として)スケジューリングされたスケジュールに従って、優先度が1〜4のジョブがHPCシステム30で実行された結果である。実行結果61では、優先度が1のジョブおよび優先度が2のジョブは、0番目の区間で実行されている。また実行結果61では、優先度が3のジョブは、1番目の区間で実行されている。また実行結果61では、優先度が4のジョブは、2番目の区間から3番目の区間までの期間で実行されている。
FIG. 5 is a diagram showing an example of the first effect of the difference between the estimated execution time and the actual execution time. In the execution result 61, jobs having a priority of 1 to 4 are assigned according to a scheduled schedule assuming that the actual execution time of the job is known before the execution (that is, estimated execution time = actual execution time). It is the result of execution in
スケジュール62は、優先度が2のジョブの実行時間が実際の実行時間より長めに推定された場合に、実行結果61に示す優先度が1〜4のジョブがスケジューリングされたスケジュールである。スケジュール62では、優先度が1のジョブは、0番目の区間にスケジューリングされている。またスケジュール62では、優先度が2のジョブは、0番目の区間から1番目の区間の期間にスケジューリングされている。
The schedule 62 is a schedule in which the jobs having the
ここで、優先度が1のジョブ、優先度が2のジョブおよび優先度が3のジョブそれぞれの実行に用いられる計算ノード数の合計は、計算ノード31,32,・・・の総数を超える。そのため優先度が3のジョブは2番目の区間にスケジューリングされている。一方優先度が1のジョブ、優先度が2のジョブおよび優先度が4のジョブそれぞれの実行に用いられる計算ノード数の合計は、計算ノード31,32,・・・の総数以下である。そのため優先度が4のジョブは、0番目の区間から1番目の区間の期間に、優先度が3のジョブを追い越してスケジューリングされている(バックフィルされている)。
Here, the total number of calculated nodes used to execute the job having the
実行結果63は、スケジュール62に従って優先度が1〜4のジョブがHPCシステム30で実行された結果である。実行結果63では、優先度が1のジョブおよび優先度が2のジョブは、0番目の区間で実行されている。また実行結果63では、優先度が3のジョブは、2番目の区間で実行されている。また実行結果63では、優先度が4のジョブは、0番目の区間から1番目の区間までの期間で実行されている。
The execution result 63 is a result of the
このように実行結果63では、実行結果61よりも1番目の区間でHPCシステム30の使用効率が低下する。なお実行結果61では、2番目の区間から3番目の区間までの期間で優先度が4のジョブのみが実行されている。しかし実行結果63では、2番目の区間から3番目の区間までの期間で、新しく投入されたジョブを空いている計算ノードにスケジューリングできるため、HPCシステム30の使用効率は低下しない。よって推定実行時間が実際の実行時間より長い場合、HPCシステム30の使用効率が低下する。
As described above, in the execution result 63, the usage efficiency of the
図6は、推定実行時間と実際の実行時間との差の第2の影響の例を示す図である。実行結果71は、ジョブの実際の実行時間が実行前から分かっていると仮定して、図5に示した例とは別の優先度が1〜4のジョブがHPCシステム30で実行された結果である。実行結果71では、優先度が1のジョブは、0番目の区間で実行されている。また実行結果71では、優先度が2のジョブおよび優先度が4のジョブは、0番目の区間から1番目の区間までの期間で実行されている。また実行結果71では、優先度が3のジョブは、2番目の区間で実行されている。
FIG. 6 is a diagram showing an example of the second effect of the difference between the estimated execution time and the actual execution time. The execution result 71 is the result of executing a job having a priority of 1 to 4 in the
スケジュール72は、優先度が2のジョブの実行時間が実際の実行時間より短めに推定された場合に、実行結果71に示す優先度が1〜4のジョブがスケジューリングされたスケジュールである。スケジュール72では、優先度が1のジョブおよび優先度が2のジョブは、0番目の区間にスケジューリングされている。またスケジュール72では、優先度が3のジョブは、1番目の区間にスケジューリングされている。またスケジュール72では、優先度が4のジョブは、2番目の区間から3番目の区間の期間にスケジューリングされている。
The schedule 72 is a schedule in which jobs with
実行結果73は、スケジュール72に従って優先度が1〜4のジョブがHPCシステム30で実行された結果である。実行結果73では、優先度が1のジョブは、0番目の区間で実行されている。また実行結果73では、優先度が2のジョブは、0番目の区間から1番目の区間までの期間で実行されている。
The execution result 73 is a result of the
ここで、優先度が2のジョブおよび優先度が3のジョブそれぞれの実行に用いられる計算ノード数の合計は、計算ノード31,32,・・・の総数を超える。そのため実行結果73では、優先度が3のジョブは、スケジューリングされている1番目の区間で実行されず、2番目の区間で実行されている。また実行結果73では、優先度が4のジョブは、3番目の区間から4番目の区間までの期間で実行されている。
Here, the total number of calculated nodes used to execute the job having the
このように実行結果71では0番目の区間から1番目の区間までの期間で実行されている優先度4のジョブは、実行結果73では3番目の区間から4番目の区間までの期間で実行されている。これにより、実行結果73では、実行結果71よりも0番目の区間および1番目の区間でHPCシステム30の使用効率が低下する。よって推定実行時間が実際の実行時間より短い場合、HPCシステム30の使用効率が低下する。
In this way, the job of
上記のように、推定実行時間が実際の実行時間より長い場合も短い場合も、HPCシステム30の使用効率が低下することがある。図5に示すように推定実行時間が実際の実行時間より長い場合、各ジョブはスケジュール62に示される開始時間通りに開始される。一方図6に示すように推定実行時間が実際の実行時間より短い場合、スケジュール72に示されるジョブの開始時間が遅れることがある。よって推定実行時間が実際の実行時間より長い場合よりも短い場合のほうが、HPCシステム30の使用効率が低下する。また以下では、推定実行時間に対するシステムの使用効率のシミュレーション結果について説明する。
As described above, the efficiency of use of the
図7は、シミュレーション結果の一例を示す図である。シミュレーション結果81は、推定実行時間の条件を変えてシミュレーションした際のシステムの使用効率を示す。シミュレーション結果81には、推定実行時間をジョブが開始してから実行が打ち切られるまでの時間(要求実行時間)に設定した場合の、システムの使用効率が示される。またシミュレーション結果81には、推定実行時間が実際の実行時間(実測)より長い場合と短い場合とを含む場合のシステムの使用効率が示される。またシミュレーション結果81には、推定実行時間が実際の実行時間より長い場合のみを含む場合のシステムの使用効率が示される。またシミュレーション結果81には、推定実行時間が実際の実行時間より短い場合のみを含む場合のシステムの使用効率が示される。またシミュレーション結果81には、推定実行時間が実際の実行時間と等しくなる場合のシステムの使用効率が示される。 FIG. 7 is a diagram showing an example of simulation results. The simulation result 81 shows the usage efficiency of the system when the simulation is performed by changing the conditions of the estimated execution time. The simulation result 81 shows the efficiency of use of the system when the estimated execution time is set to the time from the start of the job to the termination of execution (request execution time). Further, the simulation result 81 shows the usage efficiency of the system when the estimated execution time is longer than the actual execution time (actual measurement) and when it is shorter than the actual execution time. Further, the simulation result 81 shows the efficiency of use of the system when the estimated execution time is longer than the actual execution time. Further, the simulation result 81 shows the efficiency of use of the system when the estimated execution time is shorter than the actual execution time. Further, the simulation result 81 shows the efficiency of use of the system when the estimated execution time is equal to the actual execution time.
シミュレーション結果81では、システムの使用効率の一例として充填率および計算ノード数ごとの平均待ち時間が示されている。充填率R(%)は、以下の式で表される。
R=100×(P+Q)/(82944×DAY×24×3600) (1)
Pは、シミュレーション期間中に実行が終了したジョブが使用した計算ノードと使用時間との積の合計である。Qは、シミュレーション期間中に実行が終了しなかったジョブが使用した計算ノードと使用時間との積の合計である。DAYは、シミュレーション期間(日)であり、例えば12.9である。なおPは、以下の式で表される。
P=Σ((node_num)×(elapse)) (2)
式(2)のΣは、シミュレーション期間中に実行が終了したジョブについて、かっこ内の値を合計することを示す。node_numは、ジョブが使用した計算ノード数である。elapseは、ジョブが計算ノードを使用した秒単位の時間(実行時間)である。またQは、以下の式で表される。
Q=Σ((node_num)×(start+DAY−job_start))
(3)
式(3)のΣは、シミュレーション期間中に実行が終了しなかったジョブについて、かっこ内の値を合計することを示す。startは、シミュレーションが開始した時刻である。job_startは、ジョブの実行が開始した時刻である。つまり、start+DAY−job_startは、シミュレーション期間中にジョブが計算ノードを使用した秒単位の時間である。
In the simulation result 81, the filling rate and the average waiting time for each number of calculation nodes are shown as an example of the utilization efficiency of the system. The filling factor R (%) is expressed by the following formula.
R = 100 × (P + Q) / (82944 × DAY × 24 × 3600) (1)
P is the total product of the calculated node used by the job whose execution is completed during the simulation period and the usage time. Q is the sum of the products of the calculated nodes used by the jobs whose execution did not finish during the simulation period and the usage time. DAY is a simulation period (day), for example 12.9. Note that P is expressed by the following equation.
P = Σ ((node_num) × (elapse)) (2)
Σ in the equation (2) indicates that the values in parentheses are summed for the jobs whose execution has been completed during the simulation period. node_num is the number of compute nodes used by the job. elapse is the time (execution time) in seconds that the job used the compute node. Further, Q is expressed by the following equation.
Q = Σ ((node_num) × (start + DAY-job_start))
(3)
Σ in the equation (3) indicates that the values in parentheses are summed for the jobs whose execution has not been completed during the simulation period. start is the time when the simulation started. job_start is the time when the job execution started. That is, start + DAY-job_start is the time in seconds that the job used the compute node during the simulation period.
また待ち時間W(h)は、以下の式で表される。
W=(job_start−job_sub)/3600 (4)
job_subは、ジョブの投入時刻である。つまりjob_start−job_subは、ジョブが投入されてから実行されるまでの秒単位の時間である。
The waiting time W (h) is expressed by the following equation.
W = (job_start-job_sub) / 3600 (4)
job_sub is the job submission time. That is, job_start-job_sub is the time in seconds from the submission of the job to the execution.
なお図7の下線は、各システムの使用効率の指標について、推定実行時間が実際の実行時間と等しくなる場合以外の条件のうち、最も好適なものを示す。このようなシミュレーション結果81にも示されるように、推定実行時間が実際の実行時間より長い場合よりも短い場合のほうが、HPCシステム30の使用効率が低下する。
The underline in FIG. 7 shows the most suitable condition for the index of the utilization efficiency of each system, except for the case where the estimated execution time is equal to the actual execution time. As shown in such a simulation result 81, the usage efficiency of the
そこで第2の実施の形態の管理サーバ100は、新規投入ジョブの実行時間が予測できる可能性が低ければ、要求実行時間をジョブの推定実行時間に決定する。また管理サーバ100は、新規投入ジョブの実行時間が予測できる可能性が高ければ、予測した実行時間に基づいてジョブの推定実行時間に決定する。
Therefore, if it is unlikely that the execution time of the newly submitted job can be predicted, the
管理サーバ100は、実行済みのジョブのうち、新規投入ジョブに類似し、所定のパラメータの値が一致するジョブの実行時間に基づいて、新規投入ジョブの実行時間を予測する。所定のパラメータは、例えばジョブの名称を示すジョブ名、ジョブを投入したユーザの名称を示すユーザ名およびユーザが所属するグループを示すグループ名である。そのために、管理サーバ100は、まず例えば新規投入ジョブに類似するジョブ(類似ジョブ)を特定する。ジョブ間の類似度は、ジョブの実行要求を入力したユーザのユーザID、ジョブの種別、ジョブ実行時の並列度(何台の計算ノードで並列実行させるか)などの、ジョブのステイタスを示すパラメータを含む情報(以下、ジョブステイタス情報)の類似度で表される。ジョブステイタス情報は、第1の実施の形態で説明したジョブ情報の一例である。
The
各ジョブのジョブステイタス情報は、ジョブのステイタスに関する項目の項目名とその項目の値との組を複数含む文書である。文書間の類似度の算出に利用可能な技術として、潜在的ディリクレ配分法(LDA:Latent Dirichlet Allocation)推定モデルがある。例えば管理サーバ100は、LDA推定モデルを用いて、各ジョブのジョブステイタス情報に表されるトピック分布を算出し、ジョブ間のトピック分布の類似度をジョブの類似度とする。
The job status information of each job is a document including a plurality of sets of item names of items related to job status and values of the items. As a technique that can be used to calculate the similarity between documents, there is a latent Dirichlet Allocation (LDA) estimation model. For example, the
LDA推定モデルは、トピックモデルの一種である。トピックモデルは、文書が複数の潜在的なトピックから確率的に生成される(文書内の各単語はあるトピックが持つ確率分布に従って出現する)と仮定したモデルである。LDA推定モデルを用いると、分析対象となる文書データの集合から、各文書に表されているトピックの混合比率を推定することができる。 The LDA estimation model is a kind of topic model. The topic model is a model that assumes that a document is probabilistically generated from multiple potential topics (each word in the document appears according to the probability distribution of a topic). Using the LDA estimation model, it is possible to estimate the mixing ratio of the topics represented in each document from the set of document data to be analyzed.
各文書のトピック分布の生成には、多項分布の共役事前分布であるディリクレ分布(dirichlet distribution)が利用される。なお、ディリクレ分布は、以下の式で表される。 The Dirichlet distribution, which is a conjugate prior of the multinomial distribution, is used to generate the topic distribution for each document. The Dirichlet distribution is expressed by the following equation.
式(5)は、ハイパーパラメータであるベクトルαの元で、ベクトルxが生じる確率を示している。Γはガンマ関数である。ベクトルxは、確率変数を示す実数ベクトルである。Kはトピック数である。kはトピックのインデックスである。 Equation (5) shows the probability that the vector x is generated under the hyperparameter vector α. Γ is a gamma function. The vector x is a real vector indicating a random variable. K is the number of topics. k is a topic index.
管理サーバ100は、トレーニングデータセットであるジョブステイタス情報群から、各文章(ジョブステイタス情報)にどんな単語が出現するかをそれぞれ調べる。そして管理サーバ100は、同じ文章内にどの単語が多く出現するかカウントすることで、同じ文章内に出現する確率が高い単語をグルーピングし、これをトピックとする。
The
具体的には、管理サーバ100は、各文書および各単語について以下の式(6)により、確率を計算する。
Specifically, the
Nは文書集合の全単語数である。Vは全語彙数(全文書集合に含まれる単語の種類数)である。dは文書のインデックスである。nは単語のインデックスである。vは語彙のインデックスである。wはある1つの単語である。zはある1つのトピックである。バックスラッシュは、集合からの差を示す。βは、単語分布のハイパーパラメータである。式(6)は、文書dにおける単語wd,nについてのトピックzd,nのサンプリング式である。 N is the total number of words in the document set. V is the total number of vocabularies (the number of types of words contained in the entire document set). d is the index of the document. n is a word index. v is a vocabulary index. w is a word. z is a topic. The backslash indicates the difference from the set. β is a hyperparameter of word distribution. Equation (6) is a sampling equation for topics z d, n for words w d, n in document d.
管理サーバ100は、式(6)で得られる確率が高い(例えば所定値以上の)単語の組み合わせをトピックとする。すなわち管理サーバ100は、LDA推定モデルを用いた学習の結果、トピックに属する単語の集合を得る。
The
管理サーバ100は、各ジョブのジョブステイタス情報に含まれる単語が属するトピックに基づいて、ジョブステイタス情報のトピック分布を計算する。管理サーバ100は、各ジョブのジョブステイタス情報に基づいて生成されたトピック分布をジョブ間で比較して、ジョブ間の類似度を算出することができる。
The
例えば管理サーバ100は、類似ジョブを、トピック分布の類似度によって推定する。例えば管理サーバ100は、トピック分布間のコサイン類似度を計算することで、ジョブの類似度を算出する。
For example, the
管理サーバ100は、ジョブごとにトピック分布を算出する。トピック分布は、トピックのインデックスを要素番号とし、文書(ジョブステイタス情報)内での該当トピックの出現頻度の値を要素とするベクトルで表すことができる。管理サーバ100は、新規投入ジョブのトピック分布を示すベクトルと、実行が終了しているジョブのトピック分布を示すベクトルとのコサイン類似度を算出し、ジョブ間の類似度とする。これにより、比較対象のジョブそれぞれのトピック分布に共通のトピックが多く含まれるほど、類似度が高くなる。
The
なお管理サーバ100は、新規投入ジョブのトピック分布に含まれる各トピックと、実行が終了しているジョブのトピック分布に含まれる各トピックとの類似度を算出し、トピック間の類似度に基づいて、ジョブ分布間の類似度を算出してもよい。例えば管理サーバ100は、比較対象のトピック分布それぞれに含まれるトピック間の類似度の合計を、トピック分布の類似度とする。
The
管理サーバ100は、トピック間の類似度Skk'を、例えばベクトル空間法で計測することができる。ベクトル空間法は、語彙空間Vにおけるトピックごとの語彙の出現頻度ベクトルの余弦で定義される。k番目のトピックとk’番目のトピック間の類似度を式で表すと、以下の式で表される。
The
nkは、k番目のトピックの出現頻度ベクトルである。nk'は、k’番目のトピックの出現頻度ベクトルnkである。
このように、LDA推定モデルを用いて各ジョブのトピック分布を計算し、トピック分布間の類似度によって、ジョブの類似度を算出することができる。管理サーバ100は、すでに実行が終了しているジョブのうち、新規投入ジョブとの類似度に基づいて所定数の類似ジョブを特定する。そして管理サーバ100は、所定数の類似ジョブのうち、新規投入ジョブとジョブ名、ユーザ名およびグループ名が一致する類似ジョブの実行時間に基づいて、新規投入ジョブの実行時間が予測できる可能性が高いか否かを判定する。ここで、ジョブ名、ユーザ名およびグループ名が同じジョブには、様々な作成段階のジョブが含まれることがある。
n k is the frequency vector of the kth topic. n k 'is, k' is the appearance frequency vector n k of th topic.
In this way, the topic distribution of each job can be calculated using the LDA estimation model, and the job similarity can be calculated by the similarity between the topic distributions. The
図8は、ジョブ作成過程の一例を示す図である。ジョブ91,92,93は、それぞれジョブ名、ユーザ名およびグループ名が同一のジョブである。ジョブ91は、例えばスクリプトが動作するか否かを確認するためのジョブである。ジョブ91は、使用する計算ノード数が1つであると設定されている。またジョブ91は、使用するデータが極めて小さい。またジョブ91は、要求実行時間が極めて短く設定されている。ジョブ92は、例えば複数の計算ノードを使った動作ができるか否かを確認するためのジョブである。ジョブ92は、使用する計算ノード数が複数であると設定されている。またジョブ92は、使用するデータが小さい。またジョブ92は、要求実行時間が短く設定されている。ジョブ93は、例えば完成したスクリプトを実行するためのジョブである。ジョブ93は、使用する計算ノード数が多量であると設定されている。またジョブ93は、使用するデータが大きい。またジョブ93は、要求実行時間が長く設定されている。 FIG. 8 is a diagram showing an example of a job creation process. Jobs 91, 92, and 93 are jobs having the same job name, user name, and group name, respectively. The job 91 is, for example, a job for confirming whether or not the script operates. Job 91 is set to use one compute node. Further, the data used by the job 91 is extremely small. Further, the job 91 is set to have an extremely short request execution time. The job 92 is, for example, a job for confirming whether or not an operation using a plurality of calculation nodes can be performed. The job 92 is set to use a plurality of calculation nodes. Further, the data used by the job 92 is small. Further, the job 92 is set to have a short request execution time. Job 93 is, for example, a job for executing a completed script. Job 93 is set to use a large number of calculation nodes. Further, the job 93 uses a large amount of data. Further, the job 93 has a long request execution time.
このようにジョブ名、ユーザ名およびグループ名が同一のジョブであっても作成段階によって実行するスクリプトの規模が異なることがある。ここで新規投入ジョブで実行されるスクリプトと規模が異なるスクリプトを実行するジョブは、新規投入ジョブの実行時間の予測に役立たないことがある。例えば完成したスクリプトを実行する新規投入ジョブの実行時間の予測に、一部の処理をテストするためのスクリプトを実行するジョブの実行時間を使用することは有効ではない。 In this way, even if the job has the same job name, user name, and group name, the scale of the script to be executed may differ depending on the creation stage. Here, a job that executes a script whose scale is different from the script executed by the newly submitted job may not be useful for predicting the execution time of the newly submitted job. For example, it is not effective to use the execution time of the job that executes the script to test some processing to predict the execution time of the newly submitted job that executes the completed script.
そこで管理サーバ100は、新規投入ジョブとジョブ名、ユーザ名およびグループ名が一致する類似ジョブに、ジョブの規模を示すパラメータの値が異なるジョブが含まれていなければ、新規投入ジョブの実行時間を予測できる可能性が高いと判定する。また管理サーバ100は、新規投入ジョブとジョブ名、ユーザ名およびグループ名が一致する類似ジョブに、ジョブの規模を示すパラメータが異なるジョブが含まれていれば、新規投入ジョブの実行時間を予測できる可能性が高くないと判定する。
Therefore, the
なおジョブの規模を示すパラメータとしては、例えば要求実行時間や使用計算ノード数が含まれる。またジョブの規模を示すパラメータとしては、例えば要求実行時間や使用する計算ノード数に応じたジョブの区分を示すキューが含まれる。第2の実施の形態では、ジョブの規模を示すパラメータは、ジョブステイタス情報に示されたジョブ名、ユーザ名、グループ名および実際の実行時間を除くすべてのパラメータとする。 The parameters indicating the scale of the job include, for example, the request execution time and the number of calculation nodes used. Further, the parameter indicating the scale of the job includes, for example, a queue indicating the classification of the job according to the request execution time and the number of calculation nodes to be used. In the second embodiment, the parameters indicating the scale of the job are all parameters except the job name, the user name, the group name, and the actual execution time shown in the job status information.
以下、推定実行時間によるジョブスケジューリング方法について詳細に説明する。
図9は、ジョブスケジューリングのための各装置の機能を示すブロック図である。HPC運用管理サーバ200は、DB210、タイマ部220、情報取得部230、ジョブスケジューリング部240、および制御指示部250を有する。
Hereinafter, the job scheduling method based on the estimated execution time will be described in detail.
FIG. 9 is a block diagram showing the functions of each device for job scheduling. The HPC
DB210は、実行するジョブのステイタスを示すジョブステイタス情報を記憶する。タイマ部220は、HPCシステム30からジョブごとのジョブステイタス情報を収集するタイミングを管理する。例えばタイマ部220は、一定の時間間隔で、ジョブステイタス情報の収集を情報取得部230に指示する。
The
情報取得部230は、タイマ部220からの指示に応じて、HPCシステム30から、ジョブステイタス情報を取得する。情報取得部230は、取得したジョブステイタス情報を、DB210に格納する。
The
ジョブスケジューリング部240は、新規投入ジョブの推定実行時間と使用計算ノード数に基づいて、新規投入ジョブが実行される所定の期間を決定することで(新規投入ジョブを所定の期間に割り当てて)実行スケジュールを作成する。例えばジョブスケジューリング部240は、割当候補期間において、他のジョブの合計使用計算ノード数に新規投入ジョブの使用計算ノード数を足しても計算ノード31,32,・・・の総数以下の場合、新規投入ジョブを割当候補期間に割り当てる。制御指示部250は、ジョブスケジューリング部240によって作成された実行スケジュールに従って、HPCシステム30にジョブの実行を指示する。
The
管理サーバ100は、DB110、タイマ部120、メトリクス収集部130、LDA学習部140、類似ジョブ特定部150、過去運用分析部160および予測結果送信部170を有する。
The
DB110は、新規投入ジョブごとの推定実行時間の決定に使用する情報を記憶する。タイマ部120は、一定の時間間隔で、HPC運用管理サーバ200からの情報収集を、メトリクス収集部130に指示する。
The
メトリクス収集部130は、タイマ部120の指示に応じて、HPC運用管理サーバ200からジョブステイタス情報を取得する。メトリクス収集部130は、取得したジョブステイタス情報をDB110に格納する。
The
LDA学習部140は、ジョブステイタス情報に基づいて、LDA推定モデルを生成する。例えばLDA学習部140は、複数のジョブのジョブ情報に含まれる単語を解析し、トピックごとのグループに単語を分類する。LDA学習部140は、学習結果をDB110に格納する。
The
類似ジョブ特定部150は、LDA推定モデルに基づいて、新規投入ジョブとジョブステイタス情報が類似する、すでに実行が終了したジョブ(類似ジョブ)を特定する。類似ジョブ特定部150は、例えば類似ジョブを登録したリストをDB110に格納する。
The similar
過去運用分析部160は、新規投入ジョブの推定実行時間を決定する。例えば過去運用分析部160は、ジョブ名、ユーザ名およびグループ名(ジョブ名等)が新規投入ジョブと一致する類似ジョブがあるか否かを判定する。過去運用分析部160は、ジョブ名等が新規投入ジョブと一致する類似ジョブがある場合、ジョブ名等が新規投入ジョブと一致する類似ジョブそれぞれの、実際の実行時間を除くすべてのパラメータが一致するか否かを判定する。
The past
そして過去運用分析部160は、ジョブ名等が新規投入ジョブと一致する類似ジョブそれぞれの、実際の実行時間を除くすべてのパラメータが一致する場合、ジョブ名等が新規投入ジョブと一致する類似ジョブの実際の実行時間に基づいて推定実行時間を決定する。例えば過去運用分析部160は、ジョブ名等が新規投入ジョブと一致する類似ジョブの最大実行時間を新規投入ジョブの推定実行時間に決定する。また例えば過去運用分析部160は、ジョブ名等が新規投入ジョブと一致する類似ジョブの実行時間の範囲が所定の範囲内の場合、ジョブ名等が新規投入ジョブと一致する類似ジョブの実行時間の平均を新規投入ジョブの推定実行時間に決定する。
Then, in the past
また過去運用分析部160は、ジョブ名等が新規投入ジョブと一致する類似ジョブがない場合または、ジョブ名等が新規投入ジョブと一致する類似ジョブの一部のパラメータが異なる場合、新規投入ジョブの要求実行時間を新規投入ジョブの推定実行時間に決定する。予測結果送信部170は、新規投入ジョブの推定実行時間を、HPC運用管理サーバ200に送信する。
If there is no similar job whose job name or the like matches the newly submitted job, or when some parameters of the similar job whose job name or the like matches the newly submitted job are different, the past
なお、図9に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図9に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。 The line connecting each element shown in FIG. 9 indicates a part of the communication path, and a communication path other than the shown communication path can be set. Further, the function of each element shown in FIG. 9 can be realized, for example, by causing a computer to execute a program module corresponding to the element.
図10は、管理サーバのDBに格納される情報の一例を示す図である。図10の例では、DB110には、ジョブ情報111、学習結果情報112、および類似ジョブ情報113が格納されている。ジョブ情報111は、ジョブごとのジョブステイタス情報である。学習結果情報112は、LDAによる学習結果を示す情報である。類似ジョブ情報113は、新規投入ジョブに類似するジョブを示す情報である。
FIG. 10 is a diagram showing an example of information stored in the DB of the management server. In the example of FIG. 10, the
図11は、ジョブ情報の一例を示す図である。ジョブ情報111には、例えばジョブごとのジョブステイタス情報111a,111b,・・・が含まれている。ジョブステイタス情報111a,111b,・・・には、ジョブID、ジョブ名、ジョブの実行を要求しているユーザのユーザ名、該当ユーザが属するグループのグループ名など、ジョブの実行に関連するパラメータが含まれる。
FIG. 11 is a diagram showing an example of job information. The
またジョブステイタス情報111a,111b,・・・のパラメータには、ジョブが開始してから実行が打ち切られるまでの要求実行時間やジョブの実行に対する使用計算ノード数が含まれる。またジョブステイタス情報111a,111b,・・・のパラメータには、要求実行時間や使用する計算ノード数に応じたジョブの区分を示すキューが含まれる。また実行済みのジョブのジョブステイタス情報のパラメータには、該当ジョブの実行時間が含まれる。
Further, the parameters of the
図12は、学習結果情報の一例を示す図である。学習結果情報112は、LDA推定モデルによる学習結果である。学習結果情報112には、トピックを示すトピック番号に対応付けて、そのトピックに属する単語が登録されている。
FIG. 12 is a diagram showing an example of learning result information. The learning result
図13は、類似ジョブ情報の一例を示す図である。例えば類似ジョブ情報113には、学習結果情報112に基づいて判定された、新規投入ジョブそれぞれに対する類似ジョブリスト113a,113b,・・・が含まれる。類似ジョブリスト113a,113b,・・・には、LDA推定モデルの学習結果情報112に基づいて判定された、実行前のジョブに類似する所定数のジョブのジョブIDが示される。
FIG. 13 is a diagram showing an example of similar job information. For example, the
次に実行時間推定処理の手順について説明する。
図14は、実行時間推定処理の手順の一例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
Next, the procedure of the execution time estimation process will be described.
FIG. 14 is a flowchart showing an example of the procedure of the execution time estimation process. Hereinafter, the process shown in FIG. 14 will be described along with the step numbers.
[ステップS101]タイマ部120は、前回の実行時間推定処理の実行からの経過時間を計測し、所定時間が経過した場合、ジョブステイタス情報の取得をメトリクス収集部130に指示する。メトリクス収集部130は、HPC運用管理サーバ200からジョブステイタス情報を収集する。メトリクス収集部130は、取得した情報をDB110に格納する。
[Step S101] The
[ステップS102]LDA学習部140と類似ジョブ特定部150が連携して、推定実行時間を決定する対象の新規投入ジョブ(以下では、単に新規投入ジョブという)に類似する所定数の(例えば、10個の)類似ジョブを抽出する。抽出されたジョブは、新規投入ジョブに対応する類似ジョブリスト(例えば、類似ジョブリスト113a)にジョブIDが登録される。類似ジョブ抽出処理の詳細については後述する(図15参照)。
[Step S102] The
[ステップS103]過去運用分析部160は、ジョブ名、ユーザ名およびグループ名(ジョブ名等)が新規投入ジョブと一致する類似ジョブがあるか否かを判定する。例えば過去運用分析部160は、ジョブステイタス情報111a,111b,・・・のうち、新規投入ジョブのジョブステイタス情報と類似ジョブリスト113aに登録された類似ジョブそれぞれのジョブステイタス情報とを参照する。そして過去運用分析部160は、新規投入ジョブのジョブステイタス情報に示されるジョブ名、ユーザ名およびグループ名と類似ジョブそれぞれのジョブステイタス情報に示されるジョブ名、ユーザ名およびグループ名とが一致するか否かを判定する。
[Step S103] The past
過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブがあると判定した場合、処理をステップS104に進める。また過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブがないと判定した場合、処理をステップS108に進める。
When the past
[ステップS104]過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致するすべての類似ジョブで他のパラメータも一致するか否かを判定する。例えば過去運用分析部160は、新規投入ジョブのジョブステイタス情報と、ステップS103でジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致すると判定された類似ジョブそれぞれのジョブステイタス情報とを参照する。そして過去運用分析部160は、参照したすべてのジョブステイタス情報で、実際の実行時間を除くすべてのパラメータが一致する場合、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブは、他のパラメータも一致すると判定する。
[Step S104] The past
過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致するすべての類似ジョブで他のパラメータも一致すると判定した場合、処理をステップS105に進める。また過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブで他のパラメータが一致しないジョブがあると判定した場合、処理をステップS108に進める。
If the past
[ステップS105]過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブの実行時間の範囲は10分以内であるか否かを判定する。例えば過去運用分析部160は、ステップS103でジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致すると判定された類似ジョブそれぞれのジョブステイタス情報に示される実際の実行時間を参照する。そして過去運用分析部160は、参照した実際の実行時間のうちの最大の時間と最小の時間との差が10分以内であれば、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブの実行時間の範囲は10分以内であると判定する。
[Step S105] The past
過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブの実行時間の範囲は10分以内であると判定した場合、処理をステップS106に進める。過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブの実行時間の範囲は10分以内ではないと判定した場合、処理をステップS107に進める。
When the past
[ステップS106]過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブの平均実行時間を新規投入ジョブの推定実行時間に決定する。例えば過去運用分析部160は、ステップS103でジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致すると判定された類似ジョブそれぞれのジョブステイタス情報に示される実際の実行時間の平均を新規投入ジョブの推定実行時間に決定する。そして、処理が終了する。
[Step S106] The past
[ステップS107]過去運用分析部160は、ジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致する類似ジョブの最大実行時間を新規投入ジョブの推定実行時間に決定する。例えば過去運用分析部160は、ステップS103でジョブ名、ユーザ名およびグループ名が新規投入ジョブと一致すると判定された類似ジョブそれぞれのジョブステイタス情報に示される実際の実行時間を参照する。そして過去運用分析部160は、参照した実際の実行時間のうちの最大の時間を新規投入ジョブの推定実行時間に決定する。そして、処理が終了する。
[Step S107] The past
[ステップS108]過去運用分析部160は、要求実行時間を新規投入ジョブの推定実行時間に決定する。例えば過去運用分析部160は、新規投入ジョブのジョブステイタ
ス情報に示される要求実行時間を新規投入ジョブの推定実行時間に決定する。
[Step S108] The past
このように過去運用分析部160は、新規投入ジョブとジョブ名、ユーザ名およびグループ名(ジョブ名等)が一致する類似ジョブがあるか否かを判定する。新規投入ジョブとジョブ名等が一致する類似ジョブがなければ、新規投入ジョブの要求実行時間を新規投入ジョブの推定実行時間に決定する。これにより過去運用分析部160は、新規投入ジョブの実行時間を予測することが難しい場合、新規投入ジョブの推定実行時間を新規投入ジョブが実行された場合の実際の実行時間よりも長くする。
In this way, the past
なお新規投入ジョブの推定実行時間が実際の実行時間より短いと、HPCシステム30は新規投入ジョブの次に実行を予定していたジョブを予定していた時刻に実行できないことがある。すると予定時刻に実行できなかったジョブがスケジューリングされていたことで、本来実行できたジョブの実行が後回しにされることがある。過去運用分析部160は、新規投入ジョブの実行時間を予測することが難しい場合でも、新規投入ジョブの推定実行時間を実際の実行時間よりも長くすることで、推定実行時間が実際の実行時間より短いことによるHPCシステム30の使用効率の低下を抑止できる。
If the estimated execution time of the newly submitted job is shorter than the actual execution time, the
また過去運用分析部160は、新規投入ジョブとジョブ名等が一致する類似ジョブがあれば、ジョブ名等が一致する類似ジョブの実際の実行時間に基づいて、新規投入ジョブの推定実行時間を決定する。これにより過去運用分析部160は、実際の実行時間と推定実行時間が近くなるようにし、計算ノードがジョブを実行していない時間が短くなるようにする。よって、HPCシステム30の使用効率を向上させることができる。
Further, if there is a similar job whose job name and the like match with the newly submitted job, the past
また過去運用分析部160は、新規投入ジョブとジョブ名等が一致する類似ジョブすべてについて、実際の実行時間を除くすべてのパラメータが一致するか否かを判定する。そして、実際の実行時間を除くすべてのパラメータが一致する場合、過去運用分析部160は、ジョブ名等が一致する類似ジョブの実際の実行時間に基づいて、新規投入ジョブの推定実行時間を決定する。また、新規投入ジョブとジョブ名等が一致する類似ジョブの中で、実際の実行時間以外のパラメータが一致しないジョブがある場合、過去運用分析部160は、新規投入ジョブの要求実行時間を新規投入ジョブの推定実行時間に決定する。
Further, the past
つまり過去運用分析部160は、新規投入ジョブとジョブ名等が一致する類似ジョブに、新規投入ジョブと作成段階が異なるジョブが含まれている場合、新規投入ジョブの実行時間の予測が困難と判定する。これにより、推定実行時間が実際の実行時間より短くなることをさらに抑止できる。
That is, the past
また過去運用分析部160は、新規投入ジョブとジョブ名等が一致する類似ジョブそれぞれの実際の実行時間のうちの最大実行時間に基づいて、新規投入ジョブの推定実行時間を決定する。これにより、新規投入ジョブとジョブ名等が一致する類似ジョブそれぞれの実際の実行時間に基づいて、推定実行時間が実際の実行時間より長くなるようにできる。
Further, the past
次に類似ジョブ抽出処理の手順について説明する。
図15は、類似ジョブ抽出処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
Next, the procedure for similar job extraction processing will be described.
FIG. 15 is a flowchart showing an example of the procedure of the similar job extraction process. Hereinafter, the process shown in FIG. 15 will be described along with the step numbers.
[ステップS111]LDA学習部140は、すべてのジョブのジョブステイタス情報内の出現単語を抽出する。
[ステップS112]LDA学習部140は、LDA推定モデルを用いて単語をトピックに分類する。すなわちLDA学習部140は、前述の式(6)を用いて、共通のジョブステイタス情報に出現する確率の高い単語同士を同じグループにグルーピングし、生成されたグループをトピックとする。LDA学習部140は、生成したトピックと、各トピックに属する単語のリストとを、学習結果情報112としてDB110に格納する。
[Step S111] The
[Step S112] The
[ステップS113]類似ジョブ特定部150は、LDA推定モデルによる学習結果に基づいて、すべてのジョブについて、該当ジョブのジョブステイタス情報に含まれるトピック分布を算出する。
[Step S113] The similar
[ステップS114]類似ジョブ特定部150は、LDA推定モデルによる学習結果から得られたトピック分布に基づいて、新規投入ジョブのトピック分布と、既に実行が終了している他のジョブのトピック分布との類似度を計算する。
[Step S114] The similar
[ステップS115]類似ジョブ特定部150は、ステップS114で算出された類似度が上位10個のジョブのジョブIDを、類似ジョブリスト113aに登録する。そして類似ジョブ特定部150は、類似ジョブリスト113aをDB110に格納する。
[Step S115] The similar
このようにして新規投入ジョブとジョブステイタス情報が類似する類似ジョブを抽出できる。類似ジョブを用いることで、新規投入ジョブの実行時間が精度良く予測できる。
次にジョブスケジューリング処理の手順について説明する。
In this way, similar jobs with similar job status information can be extracted from newly submitted jobs. By using similar jobs, the execution time of newly submitted jobs can be predicted accurately.
Next, the procedure of job scheduling processing will be described.
図16は、ジョブスケジューリング処理の手順の一例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS121]ジョブスケジューリング部240は、ジョブの実行状況をロードする。例えばジョブスケジューリング部240は、DB110に記憶されたHPC30がHPCシステム30のスケジュール(例えばスケジュール50)に割当前のジョブのジョブステイタス情報を管理サーバ100から取得する。またジョブスケジューリング部240は、管理サーバ100からスケジュール50に割当前のジョブの推定実行時間を取得する。
FIG. 16 is a flowchart showing an example of the procedure of the job scheduling process. Hereinafter, the process shown in FIG. 16 will be described along with the step numbers.
[Step S121] The
[ステップS122]ジョブスケジューリング部240は、スケジュール50に割当前のジョブの優先度を決定する。例えばジョブスケジューリング部240は、スケジュール50に割当前のジョブそれぞれについて、投入された時刻が早いほど優先度が高くなるように優先度を決定する。
[Step S122] The
[ステップS123]ジョブスケジューリング部240は、変数Xに初期値「1」を設定する。
[ステップS124]ジョブスケジューリング部240は、変数Nに初期値「0」を設定する。
[Step S123] The
[Step S124] The
[ステップS125]ジョブスケジューリング部240は、優先度XのジョブをN番目の区間から割当可能であるか否かを判定する。例えばジョブスケジューリング部240は、N番目の区間の始めから優先度Xのジョブの推定実行時間経過した時点が含まれる区間を特定する。ジョブスケジューリング部240は、スケジュール50を参照し、N番目の区間から特定した区間までの期間(割当候補期間)に含まれる各区間それぞれで、合計使用計算ノード数を特定する。ジョブスケジューリング部240は、割当候補期間に含まれる各区間で、合計使用計算ノード数に優先度Xのジョブの使用計算ノード数を足した値が、計算ノード31,32,・・・の総数以下の場合、優先度XのジョブをN番目の区間から割当可能であると判定する。
[Step S125] The
ジョブスケジューリング部240は、優先度XのジョブをN番目の区間から割当可能であると判定した場合、処理をステップS128に進める。またジョブスケジューリング部240は、優先度XのジョブをN番目の区間から割当不可能であると判定した場合、処理をステップS126に進める。
When the
[ステップS126]ジョブスケジューリング部240は、N番目の区間がスケジューリング期間の最後の区間であるか否かを判定する。ジョブスケジューリング部240は、N番目の区間がスケジューリング期間の最後の区間であると判定した場合、処理をステップS129に進める。またジョブスケジューリング部240は、N番目の区間がスケジューリング期間の最後の区間ではないと判定した場合、処理をステップS127に進める。
[Step S126] The
[ステップS127]ジョブスケジューリング部240は、変数Nに1を加算する(N=N+1)。そして処理がステップS125に進む。
[ステップS128]ジョブスケジューリング部240は、優先度XのジョブをN番目の区間から割り当てる。例えばジョブスケジューリング部240は、優先度XのジョブをステップS125で特定した割当候補期間に割り当てるようスケジュール50を更新する。
[Step S127] The
[Step S128] The
[ステップS129]ジョブスケジューリング部240は、優先度Xのジョブが最後のジョブであるか否かを判定する。ジョブスケジューリング部240は、優先度Xのジョブが最後のジョブであると判定した場合、処理を終了する。またジョブスケジューリング部240は、優先度Xのジョブが最後のジョブではないと判定した場合、処理をステップS130に進める。
[Step S129] The
[ステップS130]ジョブスケジューリング部240は、変数Xに1を加算する(X=X+1)。そして処理がステップS124に進む。
このようにして、推定実行時間を用いたジョブスケジューリングが行われる。そしてジョブスケジューリングの結果であるスケジュール50に従って、HPCシステム30は、効率よくジョブを実行することができる。
[Step S130] The
In this way, job scheduling using the estimated execution time is performed. Then, the
〔その他の実施の形態〕
第2の実施の形態では、HPC運用管理サーバ200は、スケジュール期間を複数の区間に分割し、各ジョブの終了時刻をスケジュール区間単位に切り上げてスケジューリングしているが、ジョブの終了予定時刻の直後に次のジョブをスケジューリングしてもよい。つまりHPC運用管理サーバ200は、図4に示すジョブ間の間隔を詰めてスケジューリングしてもよい。
[Other embodiments]
In the second embodiment, the HPC
また第2の実施の形態では、新規投入ジョブとジョブ名、ユーザ名およびグループ名が一致する類似ジョブが特定されたが、管理サーバ100は、ジョブを実行するシステムで設定できるパラメータに応じた他のパラメータが一致する類似ジョブを特定してもよい。また第2の実施の形態では、ジョブの規模を示すパラメータは、ジョブ名、ユーザ名、グループ名および実行時間を除くすべてのパラメータであったが、ジョブを実行するシステムで設定できるパラメータに応じた他の所定のパラメータであってもよい。
Further, in the second embodiment, a similar job whose job name, user name, and group name match with the newly submitted job is specified, but the
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 Although the embodiment has been illustrated above, the configuration of each part shown in the embodiment can be replaced with another having the same function. Further, any other components or processes may be added. Further, any two or more configurations (features) of the above-described embodiments may be combined.
1 HPCシステム
2 第1ジョブ
3a,3b,・・・ 第2ジョブ
4a,4b,・・・ 第3ジョブ
10 情報処理装置
11 記憶部
11a,11b,・・・ ジョブ情報
12 処理部
1
Claims (7)
新規に投入される第1ジョブおよび実行が終了した複数の第2ジョブそれぞれのパラメータを含む、前記第1ジョブおよび前記複数の第2ジョブそれぞれのジョブ情報に基づいて、前記第1ジョブの第1パラメータの値と前記複数の第2ジョブそれぞれの前記第1パラメータと同種の第2パラメータの値とが一致するか否かを判定し、
前記複数の第2ジョブに、前記第2パラメータの値が前記第1パラメータの値と一致するジョブが含まれていない場合、前記第1ジョブが開始してから実行が打ち切られるまでの時間を前記第1ジョブがスケジューリングされる際の推定実行時間に決定し、
前記複数の第2ジョブに、前記第2パラメータの値が前記第1パラメータの値と一致する一以上の第3ジョブが含まれる場合、前記一以上の第3ジョブそれぞれの過去に実行された際の実行時間に基づいて、前記推定実行時間を決定する、
処理を実行させるジョブスケジューリングプログラム。 On the computer
The first of the first jobs is based on the job information of each of the first job and the plurality of second jobs, including the parameters of the newly submitted first job and the plurality of second jobs whose execution has been completed. It is determined whether or not the value of the parameter matches the value of the first parameter of each of the plurality of second jobs and the value of the second parameter of the same type.
When the plurality of second jobs do not include a job whose value of the second parameter matches the value of the first parameter, the time from the start of the first job to the termination of execution is described above. Determined by the estimated execution time when the first job is scheduled,
When the plurality of second jobs include one or more third jobs whose values of the second parameter match the values of the first parameter, when each of the one or more third jobs has been executed in the past. Determines the estimated execution time based on the execution time of
A job scheduling program that executes processing.
請求項1記載のジョブスケジューリングプログラム。 In the determination of the estimated execution time when the plurality of second jobs include the one or more third jobs whose values of the second parameter match the values of the first parameter, the one or more first jobs are used. The estimated execution time is determined based on the maximum execution time of the execution times when each of the three jobs has been executed in the past.
The job scheduling program according to claim 1.
前記一以上の第3ジョブすべての前記第3パラメータの値が同じでない場合、前記第1ジョブが開始してから実行が打ち切られるまでの時間を前記推定実行時間に決定する、
請求項1または2記載のジョブスケジューリングプログラム。 In the determination of the estimated execution time when the plurality of second jobs include the one or more third jobs whose values of the second parameter match the values of the first parameter, the one or more first jobs are used. When the values of the first parameter of all three jobs and the third parameter of another type are the same, the estimated execution time is determined based on the execution time of each of the one or more third jobs in the past. death,
If the values of the third parameter are not the same for all of the one or more third jobs, the time from the start of the first job to the termination of execution is determined as the estimated execution time.
The job scheduling program according to claim 1 or 2.
請求項1ないし3のいずれかに記載のジョブスケジューリングプログラム。 The first parameter is plural, and the plurality of first parameters include a parameter indicating the name of the job, a parameter indicating the name of the user who submitted the job, and a parameter indicating the group to which the user belongs.
The job scheduling program according to any one of claims 1 to 3.
請求項1ないし4のいずれかに記載のジョブスケジューリングプログラム。 The degree of similarity between the first job and each of the plurality of fourth jobs calculated by using the job information of each of the first job and the plurality of fourth jobs whose execution has been completed and a predetermined formula on the computer. Based on the above, the plurality of second jobs having similar job information to the first job are identified from the plurality of fourth jobs.
The job scheduling program according to any one of claims 1 to 4.
前記第1ジョブおよび前記複数の第2ジョブそれぞれのジョブ情報に基づいて、前記第1ジョブの第1パラメータの値と前記複数の第2ジョブそれぞれの前記第1パラメータと同種の第2パラメータの値とが一致するか否かを判定し、前記複数の第2ジョブに、前記第2パラメータの値が前記第1パラメータの値と一致するジョブが含まれていない場合、前記第1ジョブが開始してから実行が打ち切られるまでの時間を前記第1ジョブがスケジューリングされる際の推定実行時間に決定し、前記複数の第2ジョブに、前記第2パラメータの値が前記第1パラメータの値と一致する一以上の第3ジョブが含まれる場合、前記一以上の第3ジョブそれぞれの過去に実行された際の実行時間に基づいて、前記推定実行時間を決定する処理部と、
を有する情報処理装置。 A storage unit for storing job information of the first job and the plurality of second jobs, including parameters of the newly input first job and the plurality of second jobs whose execution has been completed.
Based on the job information of the first job and the plurality of second jobs, the value of the first parameter of the first job and the value of the second parameter of the same type as the first parameter of each of the plurality of second jobs. If the plurality of second jobs do not include a job whose value of the second parameter matches the value of the first parameter, the first job is started. The time from when the execution is terminated is determined as the estimated execution time when the first job is scheduled, and the value of the second parameter matches the value of the first parameter for the plurality of second jobs. When one or more third jobs are included, a processing unit that determines the estimated execution time based on the execution time of each of the one or more third jobs in the past, and a processing unit.
Information processing device with.
新規に投入される第1ジョブおよび実行が終了した複数の第2ジョブそれぞれのパラメータを含む、前記第1ジョブおよび前記複数の第2ジョブそれぞれのジョブ情報に基づいて、前記第1ジョブの第1パラメータの値と前記複数の第2ジョブそれぞれの前記第1パラメータと同種の第2パラメータの値とが一致するか否かを判定し、
前記複数の第2ジョブに、前記第2パラメータの値が前記第1パラメータの値と一致するジョブが含まれていない場合、前記第1ジョブが開始してから実行が打ち切られるまでの時間を前記第1ジョブがスケジューリングされる際の推定実行時間に決定し、
前記複数の第2ジョブに、前記第2パラメータの値が前記第1パラメータの値と一致する一以上の第3ジョブが含まれる場合、前記一以上の第3ジョブそれぞれの過去に実行された際の実行時間に基づいて、前記推定実行時間を決定する、
ジョブスケジューリング方法。 The computer
The first of the first jobs is based on the job information of each of the first job and the plurality of second jobs, including the parameters of the newly submitted first job and the plurality of second jobs whose execution has been completed. It is determined whether or not the value of the parameter matches the value of the first parameter of each of the plurality of second jobs and the value of the second parameter of the same type.
When the plurality of second jobs do not include a job whose value of the second parameter matches the value of the first parameter, the time from the start of the first job to the termination of execution is described above. Determined by the estimated execution time when the first job is scheduled,
When the plurality of second jobs include one or more third jobs whose values of the second parameter match the values of the first parameter, when each of the one or more third jobs has been executed in the past. Determines the estimated execution time based on the execution time of
Job scheduling method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020097647A JP2021190001A (en) | 2020-06-04 | 2020-06-04 | Job scheduling program, information processing apparatus, and job scheduling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020097647A JP2021190001A (en) | 2020-06-04 | 2020-06-04 | Job scheduling program, information processing apparatus, and job scheduling method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021190001A true JP2021190001A (en) | 2021-12-13 |
Family
ID=78849654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020097647A Withdrawn JP2021190001A (en) | 2020-06-04 | 2020-06-04 | Job scheduling program, information processing apparatus, and job scheduling method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021190001A (en) |
-
2020
- 2020-06-04 JP JP2020097647A patent/JP2021190001A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Witt et al. | Predictive performance modeling for distributed batch processing using black box monitoring and machine learning | |
US11762918B2 (en) | Search method and apparatus | |
EP3640799A1 (en) | Determining an allocation of computing resources for a job | |
CN102667724B (en) | For dynamically managing the method and system of accelerator resource | |
JP4550781B2 (en) | Real-time soaring search word detection method and real-time soaring search word detection system | |
TWI433035B (en) | Scaling instruction intervals to identify collection points for representative instruction traces | |
US20190245766A1 (en) | Performance evaluation method, apparatus for performance evaluation, and non-transitory computer-readable storage medium for storing program | |
JP7040319B2 (en) | Operation management device, destination recommended method and destination recommended program | |
US20210359514A1 (en) | Information processing apparatus and job scheduling method | |
US20150033233A1 (en) | Job delay detection method and information processing apparatus | |
US10887199B2 (en) | Performance adjustment method, apparatus for performance adjustment, and non-transitory computer-readable storage medium for storing program | |
US20160352822A1 (en) | Command process load balancing system | |
US11809505B2 (en) | Method for pushing information, electronic device | |
JP2020129314A (en) | Job power prediction program, job power prediction method, and job power prediction device | |
US20220391672A1 (en) | Multi-task deployment method and electronic device | |
JP6658507B2 (en) | Load estimation system, information processing device, load estimation method, and computer program | |
CN109471862A (en) | Data processing method and device, electronic equipment, storage medium | |
Maroulis et al. | A holistic energy-efficient real-time scheduler for mixed stream and batch processing workloads | |
US20130124817A1 (en) | Information processing apparatus | |
US20220027758A1 (en) | Information processing apparatus and information processing method | |
Park et al. | Queue congestion prediction for large-scale high performance computing systems using a hidden Markov model | |
JP7235960B2 (en) | Job power prediction program, job power prediction method, and job power prediction device | |
US11734063B2 (en) | Job management based on generated execution time prediction model and prediction accuracy | |
CN114297478A (en) | Page recommendation method, device, equipment and storage medium | |
US20160110117A1 (en) | Computer system and method for controlling hierarchical storage therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231108 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240129 |