[go: up one dir, main page]

JP2024165558A - Job management program, job management method, and job management device - Google Patents

Job management program, job management method, and job management device Download PDF

Info

Publication number
JP2024165558A
JP2024165558A JP2023081840A JP2023081840A JP2024165558A JP 2024165558 A JP2024165558 A JP 2024165558A JP 2023081840 A JP2023081840 A JP 2023081840A JP 2023081840 A JP2023081840 A JP 2023081840A JP 2024165558 A JP2024165558 A JP 2024165558A
Authority
JP
Japan
Prior art keywords
job
execution
computing device
time
premise
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023081840A
Other languages
Japanese (ja)
Inventor
郁夫 三吉
Ikuo Mitsuyoshi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu FSAS Inc
Original Assignee
Fujitsu FSAS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu FSAS Inc filed Critical Fujitsu FSAS Inc
Priority to JP2023081840A priority Critical patent/JP2024165558A/en
Publication of JP2024165558A publication Critical patent/JP2024165558A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

To provide a job management program, job management method and job management device capable of suppressing a charge while keeping the completion deadline time of a job.SOLUTION: A job management program which controls a hybrid system comprising an on-premise computing device operating in an on-premise environment and a cloud computing device operating in a charging cloud environment, causes the on-premise computing device to start execution of a first job when sequentially executing the first job, a second job, and a third job in this order, allocates the second job to the cloud computing device when the execution time of the second job is shorter than the execution time of the third job in a case where the execution of any of the second job and the third job does not complete until the predetermined completion deadline time when executed after the other is executed after the execution completion of the first job, and allocates processing of causing the on-premise computing device to execute the third job to a computer.SELECTED DRAWING: Figure 5

Description

本発明は、ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置に関する。 The present invention relates to a job management program, a job management method, and a job management device.

近年、テクノロジの進歩にしたがって、扱われるデータのサイズや量は急激に増加している。それに伴い、データを迅速に処理するために処理能力が高いHPC(High Performance Computing)システムに注目が集まっている。 In recent years, with advances in technology, the size and volume of data being handled has increased dramatically. As a result, attention has been focused on HPC (High Performance Computing) systems, which have high processing power for quickly processing data.

HPCシステムは、高価なため各企業が保有する台数が少なく、利用者それぞれが自由に使用できる環境にないため、各利用者が個別に1つのHPCシステムを利用することが多い。複数の利用者により個別に利用される場合、HPCシステムは、投入された各ジョブを逐次実行する。 HPC systems are expensive, so companies own only a small number of them, and because users are not free to use them, users often use one HPC system individually. When used individually by multiple users, the HPC system executes each submitted job sequentially.

また、HPCシステムには、自社で保有するサーバを用いるオンプレミス環境とともに外部の課金クラウドに配置されたサーバを用いるクラウド環境とを併用してジョブを処理するハイブリッドHPCシステムが存在する。 In addition, there are hybrid HPC systems that process jobs using both an on-premise environment using a company's own servers and a cloud environment using servers deployed in an external billing cloud.

ジョブの結果を利用する業務において納期等の期限が存在する場合、ジョブは、期限から逆算される実行完了期限であるジョブの終了デッドライン時刻を遵守することが求められる。従来、バッチ処理のジョブスケジューラはfirst-come first-servedの考え方が基本である。そこで、固定の計算機設備下で納期を短縮するために、納期が近いなどなるべく早く処理すべき対象ジョブを優先扱いして、先行ジョブを追い越す又は停めることが行われていた。 When a deadline exists for a business operation that uses the results of a job, the job is required to meet the job's deadline, which is the deadline for completing execution calculated backwards from the deadline. Traditionally, batch processing job schedulers are based on the idea of first-come, first-served. Therefore, in order to shorten delivery times on fixed computer equipment, priority was given to jobs that should be processed as quickly as possible, such as those with an approaching deadline, and the preceding jobs were overtaken or stopped.

これに対して、近年クラウドサービスが広まり、使用料さえ支払えば、走行中ジョブを停めることなく速やかに他のジョブを実行することが可能となった。クラウドサービスとオンプレミス環境の計算機設備とを併用するハイブリッドHPCシステムでは、作業納期とクラウドサービス使用料とをバランスよく最適化することが望ましい。 In response to this, cloud services have become widespread in recent years, and as long as the usage fee is paid, it is now possible to execute other jobs promptly without stopping the running job. In a hybrid HPC system that combines cloud services and on-premise computing facilities, it is desirable to achieve a good balance between work delivery dates and cloud service usage fees.

なお、オンプレミス環境、プライベートクラウド環境、パブリッククラウド環境を含むリソースについて、各リソースへの配置時の削減可能コストを用いてアプリケーションに対するリソースの配置先を適正化する管理サーバの技術が提案されている。また、パブリッククラウドとオンプレミスデータセンタとの両者の稼働状況を参照しつつタスク管理を行うコンテナ実行管理システムが提案されている。 A management server technology has been proposed that optimizes the placement of resources for applications using the reducible cost of placement on each resource, including on-premise environments, private cloud environments, and public cloud environments. A container execution management system has also been proposed that manages tasks while referring to the operating status of both the public cloud and on-premise data centres.

特開2021-60745号公報JP 2021-60745 A 特開2022-144518号公報JP 2022-144518 A

しかしながら、単に削減可能コストを考慮して配置先リソースを決定する場合、作業納期を守ることが困難となる場合が存在する。また、クラウド環境とオンプレミス環境との作業状況を参照してタスク管理を行う場合、コストが考慮されておらず実運用においてリソースを適切に配置することは困難である。 However, when deciding where to place resources, simply taking into account the possible cost savings, it can be difficult to meet work deadlines. In addition, when managing tasks by referencing the work status in cloud and on-premise environments, costs are not taken into account, making it difficult to properly place resources in actual operations.

開示の技術は、上記に鑑みてなされたものであって、ジョブの終了デッドライン時刻を守りつつ課金を抑えることができるジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置を提供することを目的とする。 The disclosed technology has been developed in consideration of the above, and aims to provide a job management program, a job management method, and a job management device that can reduce charges while meeting job completion deadlines.

本願の開示するジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置の一つの態様において、ジョブ管理プログラムは、オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムを制御する。そして、ジョブ管理プログラムは、第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ、前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブを前記オンプレミス計算装置に割り当てる処理をコンピュータに実行させる。 In one aspect of the job management program, job management method, and job management device disclosed in the present application, the job management program controls a hybrid system including an on-premise computing device operating in an on-premise environment and a cloud computing device operating in a billing cloud environment. The job management program causes the on-premise computing device to start execution of the first job when the first job, the second job, and the third job are executed in sequence, and when neither the second job nor the third job is completed by the respective end deadline times that are predetermined to be executed after the other job is executed after the first job is completed, if the expected execution time of the second job is shorter than the expected execution time of the third job, the job management program causes a computer to execute a process of assigning the second job to the cloud computing device and the third job to the on-premise computing device.

1つの側面では、本発明は、ジョブの終了デッドライン時刻を守りつつ課金を抑えることができる。 In one aspect, the present invention can reduce charges while meeting job completion deadlines.

図1は、実施例に係るハイブリッドHPCシステムのブロック図である。FIG. 1 is a block diagram of a hybrid HPC system according to an embodiment. 図2は、ジョブ管理テーブルの一例を示す図である。FIG. 2 is a diagram illustrating an example of a job management table. 図3は、ジョブ実行履歴テーブルの一例を示す図である。FIG. 3 is a diagram illustrating an example of a job execution history table. 図4は、ジョブ実行処理の全体を示すフローチャートである。FIG. 4 is a flow chart showing the entire job execution process. 図5は、実施例1に係るジョブ管理装置によるリソース選択実行処理のフローチャートである。FIG. 5 is a flowchart of a resource selection and execution process performed by the job management device according to the first embodiment. 図6は、実施例1に係るジョブ管理装置による請求額算出処理のフローチャートである。FIG. 6 is a flowchart of a billing amount calculation process performed by the job management device according to the first embodiment. 図7は、ジョブの投入順に逐次実行する場合と実施例1に係るジョブ管理装置がジョブを実行する場合との実行状況を示す図である。FIG. 7 is a diagram showing an execution state in a case where jobs are executed in the order in which they were submitted, and in a case where the job management device according to the first embodiment executes jobs. 図8は、実施例2に係るジョブ管理装置によるジョブの実行状況の一例を示す図である。FIG. 8 is a diagram illustrating an example of a job execution status by the job management device according to the second embodiment. 図9Aは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第1フローチャートである。FIG. 9A is a first flowchart of a resource selection and execution process by the job management device according to the third embodiment. 図9Bは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第2フローチャートである。FIG. 9B is a second flowchart of the resource selection and execution process by the job management device according to the third embodiment. 図10は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行結果の比較を示す図である。FIG. 10 is a diagram showing a comparison of execution results between the job management device according to the second embodiment and the job management device according to the third embodiment. 図11は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行状況の比較を示す図である。FIG. 11 is a diagram illustrating a comparison of execution status between the job management device according to the second embodiment and the job management device according to the third embodiment. 図12は、ジョブ管理装置のハードウェア構成図である。FIG. 12 is a diagram showing the hardware configuration of the job management device.

以下に、本願の開示するジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置が限定されるものではない。 Below, examples of the job management program, job management method, and job management device disclosed in the present application are described in detail with reference to the drawings. Note that the job management program, job management method, and job management device disclosed in the present application are not limited to the following examples.

図1は、実施例に係るハイブリッドHPCシステムのブロック図である。ハイブリッドHPCシステム1は、ジョブ管理装置10、利用者端末装置20、オンプレミス計算装置30及びクラウド計算装置40を有する。ジョブ管理装置10は、複数の利用者端末装置20、オンプレミス計算装置30及びクラウド計算装置40とネットワークで接続される。 FIG. 1 is a block diagram of a hybrid HPC system according to an embodiment. The hybrid HPC system 1 includes a job management device 10, a user terminal device 20, an on-premise computing device 30, and a cloud computing device 40. The job management device 10 is connected to a plurality of user terminal devices 20, on-premise computing devices 30, and cloud computing devices 40 via a network.

利用者端末装置20は、複数存在する。例えば、ハイブリッドHPCシステム1が企業保有のシステムであれば、利用者端末装置20は、各部署が保有する端末装置等であり、それぞれの部署の従業員により使用される。利用者端末装置20は、実行させるジョブをジョブ管理装置10へ送信する。ジョブはオンプレミス計算装置30又はクラウド計算装置40のいずれでも実行可能であるが、ジョブの実行を要求する利用者としては、使用料が安いことからなるべくオンプレミス計算装置30でジョブが実行されることが好ましい。 There are multiple user terminal devices 20. For example, if the hybrid HPC system 1 is a company-owned system, the user terminal devices 20 are terminal devices owned by each department and are used by employees of each department. The user terminal devices 20 transmit jobs to be executed to the job management device 10. Jobs can be executed on either the on-premise computing device 30 or the cloud computing device 40, but for users requesting job execution, it is preferable that jobs be executed on the on-premise computing device 30 as much as possible because the usage fee is low.

オンプレミス計算装置30は、ハイブリッドHPCシステム1を保有する組織が有するオンプレミス環境で動作する高性能計算機である。オンプレミス計算装置30は、例えばスーパーコンピュータである。オンプレミス計算装置30は1台であってもよいし、複数台であってもよい。 The on-premise computing device 30 is a high-performance computer that operates in an on-premise environment owned by the organization that owns the hybrid HPC system 1. The on-premise computing device 30 is, for example, a supercomputer. There may be one on-premise computing device 30 or multiple on-premise computing devices 30.

オンプレミス計算装置30は、ジョブ管理装置10からのジョブの実行命令を受けて、入力されたジョブを実行する。ジョブ実行後に、オンプレミス計算装置30は、ジョブの実行結果とともに実行完了の通知をジョブ管理装置10へ送信する。 The on-premise computing device 30 receives a job execution command from the job management device 10 and executes the input job. After the job is executed, the on-premise computing device 30 transmits a notification of completion of the execution together with the execution result of the job to the job management device 10.

クラウド計算装置40は、ハイブリッドHPCシステム1を保有する組織の外のクラウド環境で動作する高性能計算機である。クラウド計算装置40は、例えばスーパーコンピュータである。クラウド計算装置40は1台であってもよいし、複数台であってもよい。 The cloud computing device 40 is a high-performance computer that operates in a cloud environment outside the organization that owns the hybrid HPC system 1. The cloud computing device 40 is, for example, a supercomputer. There may be one cloud computing device 40 or multiple cloud computing devices 40.

クラウド計算装置40は、ジョブ管理装置10からのジョブの実行命令を受けて、入力されたジョブを実行する。ジョブ実行後に、クラウド計算装置40は、ジョブの実行結果とともに実行完了の通知をジョブ管理装置10へ送信する。 The cloud computing device 40 receives a job execution command from the job management device 10 and executes the input job. After the job is executed, the cloud computing device 40 transmits a notification of completion of execution together with the execution result of the job to the job management device 10.

ジョブ管理装置10は、例えば、サーバ装置である。ジョブ管理装置10は、各利用者端末装置20から投入されたジョブを受信する。そして、ジョブ管理装置10は、投入された各ジョブを逐次実行するためのスケジューリングを行う。この際、ジョブ管理装置10は、利用者により指定された最大実行時間及び終了デッドライン時刻を守り且つオンプレミス計算装置30及びクラウド計算装置40の使用料を考慮する。そして、ジョブ管理装置10は、ジョブ毎に実行する装置としてオンプレミス計算装置30又はクラウド計算装置40のいずれかを選択する。その後、ジョブ管理装置10は、スケジューリングにしたがって、各ジョブをオンプレミス計算装置30又はクラウド計算装置40に実行させる。その後、ジョブ管理装置10は、ジョブの実行結果を各利用者端末装置20へ送信する。さらに、ジョブ管理装置10は、使用料を各利用者端末装置20に通知して使用料の請求を行う。 The job management device 10 is, for example, a server device. The job management device 10 receives jobs submitted from each user terminal device 20. Then, the job management device 10 schedules the sequential execution of each submitted job. At this time, the job management device 10 observes the maximum execution time and the end deadline time specified by the user and takes into account the usage fees of the on-premise computing device 30 and the cloud computing device 40. Then, the job management device 10 selects either the on-premise computing device 30 or the cloud computing device 40 as the device to execute each job. Then, the job management device 10 causes each job to be executed by the on-premise computing device 30 or the cloud computing device 40 according to the scheduling. Then, the job management device 10 transmits the execution results of the job to each user terminal device 20. Furthermore, the job management device 10 notifies each user terminal device 20 of the usage fee and charges the usage fee.

以下に、ジョブ管理装置10の詳細について説明する。ジョブ管理装置10は、図1に示すように、受付部11、ジョブ管理テーブル12、ジョブ実行管理部13、ジョブ実行履歴テーブル14及び請求額算出部15を有する。 The job management device 10 will be described in detail below. As shown in FIG. 1, the job management device 10 has a reception unit 11, a job management table 12, a job execution management unit 13, a job execution history table 14, and a billing amount calculation unit 15.

受付部11は、利用者により投入されたジョブを利用者端末装置20から受信する。ここで、投入されたジョブには、最大実行時間及び終了デッドライン時刻の情報が付加されている。最大実行時間は、投入されたジョブを実行する時間の上限値であり、投入されたジョブの実行が開始されてから最大実行時間が経過するとジョブの実行が終了し、それまでに得られた結果が実行結果とされる。また、終了デッドライン時刻は、利用者が求めるジョブ実行完了の期限であり、例えば、作業納期からの逆算で求められる。ジョブ管理装置10は、終了デッドライン時刻までにジョブの実行を完了することが求められる。すなわち、終了デッドライン時刻から最大実行時間を減算した時刻が、そのジョブの実行開始の最終期限である実行開始期限時刻となる。 The reception unit 11 receives jobs submitted by users from the user terminal device 20. Here, the submitted jobs are accompanied by information on the maximum execution time and the end deadline time. The maximum execution time is the upper limit of the time to execute the submitted job, and when the maximum execution time has elapsed since the start of execution of the submitted job, the job ends, and the results achieved up to that point are regarded as the execution result. The end deadline time is the deadline for completing job execution required by the user, and is calculated backwards from the work delivery date, for example. The job management device 10 is required to complete the execution of the job by the end deadline time. In other words, the time obtained by subtracting the maximum execution time from the end deadline time is the execution start deadline time, which is the final deadline for starting execution of the job.

次に、受付部11は、受信したジョブをジョブ管理テーブル12に登録する。例えば、受付部11は、ジョブ管理テーブル12に新たにジョブ管理レコードを追加して、追加したジョブ管理レコードにジョブ投入時刻、ジョブ投入者の指定した最大実行時間及び終了デッドライン時刻を登録する。さらに、受付部11は、終了デッドライン時刻から最大実行時間を減算して実行開始期限時刻を算出する。次に、受付部11は、算出した実行開始期限時刻を追加したジョブ管理レコードに登録する。また、受付部11は、追加したジョブ管理レコードにおける実行状態の欄に、そのジョブが実行前であることを示す「実行開始待ち」の情報を登録する。 Next, the reception unit 11 registers the received job in the job management table 12. For example, the reception unit 11 adds a new job management record to the job management table 12, and registers the job submission time, the maximum execution time specified by the job submitter, and the end deadline time in the added job management record. Furthermore, the reception unit 11 calculates the execution start deadline time by subtracting the maximum execution time from the end deadline time. Next, the reception unit 11 registers the calculated execution start deadline time in the added job management record. The reception unit 11 also registers information of "waiting for execution start" in the execution status column of the added job management record, indicating that the job is not yet executed.

図2は、ジョブ管理テーブルの一例を示す図である。図2に示すように、ジョブ管理テーブル12は、投入されたジョブ毎に各行で表されるジョブ管理レコードを有する。そして、ジョブ管理レコードには、ジョブ投入時刻、最大実行時間、終了デッドライン時刻、実行開始期限時刻及び実行状態が登録される。ジョブ管理レコードは、ジョブの投入時に受付部11により生成され且つ受付部11によりジョブID(Identifier)が割り当てられ、さらに、ジョブ投入時刻、最大実行時間、終了デッドライン時刻及び実行開始期限時刻が登録される。また、ジョブ管理テーブル12における実行状態は、そのジョブ管理レコードに登録されたジョブIDが割り当てられたジョブが実行前か、実行中か又は実行後かを示す情報である。実行状態は、ジョブ管理レコードの作成当初は受付部11により実行開始待ちと登録され、その後、ジョブの実行状態に応じてジョブ実行管理部13により情報が更新される。以下では、実行状態が実行開始待ちのジョブを「実行開始待ちジョブ」と呼び、実行状態が実行中のジョブを「実行中ジョブ」と呼び、実行状態が実行終了のジョブを「実行終了ジョブ」と呼ぶ。 2 is a diagram showing an example of a job management table. As shown in FIG. 2, the job management table 12 has a job management record represented by each row for each submitted job. The job submission time, maximum execution time, end deadline time, execution start deadline time, and execution status are registered in the job management record. The job management record is generated by the reception unit 11 when the job is submitted, and a job ID (Identifier) is assigned by the reception unit 11. Furthermore, the job submission time, maximum execution time, end deadline time, and execution start deadline time are registered in the job management record. The execution status in the job management table 12 is information indicating whether the job to which the job ID registered in the job management record is assigned is before execution, during execution, or after execution. When the job management record is first created, the execution status is registered as waiting to start by the reception unit 11, and the information is then updated by the job execution management unit 13 according to the execution status of the job. In what follows, a job whose execution state is waiting to start will be referred to as a "job waiting to start execution", a job whose execution state is running will be referred to as a "job currently running", and a job whose execution state is finished will be referred to as a "job that has finished execution".

ジョブ実行管理部13は、オンプレミス計算装置30によるジョブの実行が終了して空きが発生すると以下のリソース選択実行処理を実行する。オンプレミス計算装置30は、実行するジョブが存在する状態で空いていればいずれかのジョブが投入されるため、ジョブが存在すればオンプレミス計算装置30は連続してジョブを実行することになる。ジョブ実行管理部13は、ジョブ管理テーブル12を確認して、ジョブ管理テーブル12に登録された実行開始待ちジョブの情報を取得して列挙する。実行開始待ちジョブが1つもジョブ管理テーブル12に登録されていなければ、ジョブ実行管理部13は、ジョブのスケジューリング処理を終了する。 When the on-premise computing device 30 finishes executing a job and an empty space is created, the job execution management unit 13 executes the following resource selection and execution process. If the on-premise computing device 30 is empty and there is a job to be executed, any job is submitted to it, so if a job exists, the on-premise computing device 30 will execute the job continuously. The job execution management unit 13 checks the job management table 12, and obtains and lists information on jobs waiting to start execution that are registered in the job management table 12. If no jobs waiting to start execution are registered in the job management table 12, the job execution management unit 13 ends the job scheduling process.

実行開始待ちジョブが1つの場合、ジョブ実行管理部13は、そのジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、そのジョブをオンプレミス計算装置30に投入して、そのジョブの実行をオンプレミス計算装置30に指示する。 When there is one job waiting to start execution, the job execution management unit 13 selects the on-premise computing device 30 as the device that will execute the job. The job execution management unit 13 then submits the job to the on-premise computing device 30 and instructs the on-premise computing device 30 to execute the job.

また、実行開始待ちジョブが複数の場合、ジョブ実行管理部13は、実行開始待ちジョブをジョブ投入順にソートする。ここでは、ソートされて並べられた実行開始待ちジョブのうち先頭のジョブを「第1の実行候補ジョブ」と呼び、先頭から2番目のジョブを「第2の実行候補ジョブ」と呼ぶ。 In addition, when there are multiple jobs waiting to start execution, the job execution management unit 13 sorts the jobs waiting to start execution in the order in which they were submitted. Here, the first job among the sorted jobs waiting to start execution is called the "first execution candidate job," and the second job from the top is called the "second execution candidate job."

ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間を現在時刻に加算した結果を第1の実行候補ジョブの実行終了予想時刻とする。次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行終了予想時刻と第2の実行候補ジョブの実行開始期限時刻とを比較する。第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻以前であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30に投入して、第1の実行候補ジョブの実行をオンプレミス計算装置30に指示する。 The job execution management unit 13 adds the maximum execution time of the first execution candidate job to the current time, and sets the result as the expected execution end time of the first execution candidate job. Next, the job execution management unit 13 compares the expected execution end time of the first execution candidate job with the execution start deadline time of the second execution candidate job. If the expected execution end time of the first execution candidate job is before the execution start deadline time of the second execution candidate job, the job execution management unit 13 selects the on-premise computing device 30 as the device that will execute the first execution candidate job. Then, the job execution management unit 13 submits the first execution candidate job to the on-premise computing device 30 and instructs the on-premise computing device 30 to execute the first execution candidate job.

第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅ければ、ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間と第2の実行候補ジョブの最大実行時間とを比較する。 If the expected execution end time of the first execution candidate job is later than the execution start deadline time of the second execution candidate job, the job execution management unit 13 compares the maximum execution time of the first execution candidate job with the maximum execution time of the second execution candidate job.

第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間以上であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30に投入して、第1の実行候補ジョブの実行をオンプレミス計算装置30に指示する。 If the maximum execution time of the first execution candidate job is equal to or greater than the maximum execution time of the second execution candidate job, the job execution management unit 13 selects the on-premise computing device 30 as a device for executing the first execution candidate job. The job execution management unit 13 then submits the first execution candidate job to the on-premise computing device 30 and instructs the on-premise computing device 30 to execute the first execution candidate job.

逆に、第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間より短ければ、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてクラウド計算装置40を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをクラウド計算装置40に投入して、第1の実行候補ジョブの実行をクラウド計算装置40に指示する。 Conversely, if the maximum execution time of the first execution candidate job is shorter than the maximum execution time of the second execution candidate job, the job execution management unit 13 selects the cloud computing device 40 as the device that will execute the first execution candidate job. After that, the job execution management unit 13 submits the first execution candidate job to the cloud computing device 40 and instructs the cloud computing device 40 to execute the first execution candidate job.

その後、ジョブ実行管理部13は、オンプレミス計算装置30に空きが発生するまで待機する。ジョブ実行管理部13は、待機中に実行開始待ち状態ジョブの実行開始期限時刻に到達するか否かを監視する。待機中に実行開始待ち状態ジョブの実行開始期限時刻に達しなければ、ジョブ実行管理部13は、上述したリソース選択実行処理を実行する。これに対して、待機中に実行開始待ち状態ジョブの実行開始期限時刻が到来した場合、ジョブ実行管理部13は、以下のクラウド利用実行処理を実行する。 The job execution management unit 13 then waits until an available space is available in the on-premise computing device 30. While waiting, the job execution management unit 13 monitors whether the execution start deadline of the job waiting to start execution is reached. If the execution start deadline of the job waiting to start execution is not reached while waiting, the job execution management unit 13 executes the resource selection execution process described above. On the other hand, if the execution start deadline of the job waiting to start execution arrives while waiting, the job execution management unit 13 executes the following cloud usage execution process.

ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブを実行させるクラウド計算装置40を選択する。そして、ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブをクラウド計算装置40に投入して、そのジョブの実行をクラウド計算装置40に指示する。 The job execution management unit 13 selects a cloud computing device 40 to execute the job awaiting execution whose execution start deadline has arrived. The job execution management unit 13 then submits the job awaiting execution whose execution start deadline has arrived to the cloud computing device 40, and instructs the cloud computing device 40 to execute the job.

ジョブ実行管理部13は、オンプレミス計算装置30又はクラウド計算装置40のいずれにジョブを実行させた場合でも、以下の処理を実行する。ジョブ実行管理部13は、ジョブの実行開始時に、ジョブ管理テーブル12の実行を開始したジョブに対応するジョブ管理レコードの実行状態を実行中に変更する。さらに、ジョブ実行管理部13は、ジョブ実行履歴テーブル14にジョブ実行履歴レコードを追加する。そして、ジョブ実行管理部13は、実行を開始したジョブのジョブIDを追加したジョブ実行履歴レコードに登録し、且つ、選択した実行場所、ジョブの実行の識別情報として割り当てた実行ID及び実行開始時刻を登録する。 The job execution management unit 13 executes the following process regardless of whether the job is executed by the on-premise computing device 30 or the cloud computing device 40. When the job execution starts, the job execution management unit 13 changes the execution state of the job management record corresponding to the job that has started to be executed in the job management table 12 to "in execution". Furthermore, the job execution management unit 13 adds a job execution history record to the job execution history table 14. Then, the job execution management unit 13 registers the job ID of the job that has started to be executed in the added job execution history record, and also registers the selected execution location, the execution ID assigned as identification information for the job execution, and the execution start time.

また、ジョブ実行管理部13は、ジョブの実行終了の通知をオンプレミス計算装置30又はクラウド計算装置40から受けると、ジョブ管理テーブル12の実行を終了したジョブに対応するジョブ管理レコードの実行状態を実行終了に変更する。さらに、ジョブ実行管理部13は、ジョブ実行履歴テーブル14の実行を終了したジョブに対応するジョブ実行履歴レコードに実行時間を登録する。また、クラウド計算装置40によりそのジョブが実行された場合、ジョブ実行管理部13は、予め決められた算出方法に基づいて、そのジョブの実行によるクラウドサービス使用料を算出する。そして、ジョブ実行管理部13は、実行を終了したジョブに対応するジョブ実行履歴レコードにクラウドサービス使用料を登録する。 When the job execution management unit 13 receives a notification of the end of job execution from the on-premise computing device 30 or the cloud computing device 40, it changes the execution state of the job management record corresponding to the finished job in the job management table 12 to "executed". Furthermore, the job execution management unit 13 registers the execution time in the job execution history record corresponding to the finished job in the job execution history table 14. Furthermore, when the job is executed by the cloud computing device 40, the job execution management unit 13 calculates the cloud service usage fee for the execution of the job based on a predetermined calculation method. Then, the job execution management unit 13 registers the cloud service usage fee in the job execution history record corresponding to the finished job.

ここで、図2の状態121は、ジョブIDが#1のジョブが実行中であり、ジョブIDが#2及び#3のジョブが実行開始待ちの状態のジョブ管理テーブル12である。例えば、以下では、ジョブIDが#1~#3のジョブをそれぞれ、ジョブ#1~#3」と呼ぶ。ジョブ#2及び#3が実行開始待ちの状態でジョブ#1の実行が開始されると、ジョブ実行管理部13は、ジョブ管理テーブル12を状態121に遷移させる。 Here, state 121 in FIG. 2 is the job management table 12 in a state where job with job ID #1 is being executed, and jobs with job IDs #2 and #3 are waiting to start execution. For example, hereinafter, jobs with job IDs #1 to #3 are referred to as "jobs #1 to #3," respectively. When job #1 starts execution while jobs #2 and #3 are waiting to start execution, the job execution management unit 13 transitions the job management table 12 to state 121.

また、図2の状態122は、ジョブ#1の実行が終了して、ジョブ#2及び#3が実行中の状態のジョブ管理テーブル12である。例えば、ジョブ#1の実行が終了しジョブ#2~#3が実行されると、ジョブ実行管理部13は、ジョブ管理テーブル12を状態122に遷移させる。 In addition, state 122 in FIG. 2 is the job management table 12 in a state where job #1 has finished execution and jobs #2 and #3 are being executed. For example, when job #1 finishes execution and jobs #2 to #3 are being executed, the job execution management unit 13 transitions the job management table 12 to state 122.

図3は、ジョブ実行履歴テーブルの一例を示す図である。ジョブが無い状態からオンプレミス計算装置30によりジョブ#1の実行が開始されると、ジョブ実行管理部13は、ジョブ実行履歴テーブル14にジョブ#1のジョブ実行履歴レコードを追加する。さらに、ジョブ実行管理部13は、ジョブ#1のジョブ実行履歴レコードに、実行場所としてオンプレミス計算装置30を登録し、且つ、実行ID及び実行開始時刻を登録して、ジョブ実行履歴テーブル14を状態141に遷移させる。 Figure 3 is a diagram showing an example of a job execution history table. When the on-premise computing device 30 starts execution of job #1 from a state where there is no job, the job execution management unit 13 adds a job execution history record of job #1 to the job execution history table 14. Furthermore, the job execution management unit 13 registers the on-premise computing device 30 as the execution location in the job execution history record of job #1, registers the execution ID and the execution start time, and transitions the job execution history table 14 to state 141.

ここで、ジョブ実行履歴テーブル14におけるクラウドサービス利用必要フラグは、そのジョブの実行にクラウドサービスを利用しなくてもよかったかどうかを示す情報であり、後述する請求額算出部15により登録される。 The cloud service usage requirement flag in the job execution history table 14 is information indicating whether or not a cloud service could have been used to execute the job, and is registered by the billing amount calculation unit 15, which will be described later.

また、状態141からジョブ#2がクラウド計算装置40で実行され且つジョブ#3がオンプレミス計算装置30で実行されると、ジョブ実行管理部13は、ジョブ#2及び#3のジョブ実行履歴レコードを追加する。その後、ジョブ#1~#3の実行が完了すると、ジョブ実行管理部13は、それぞれの実行時間及びクラウドサービス使用料を登録して、ジョブ実行履歴テーブル14を状態142に遷移させる。 Furthermore, when job #2 is executed on the cloud computing device 40 and job #3 is executed on the on-premise computing device 30 from state 141, the job execution management unit 13 adds job execution history records for jobs #2 and #3. After that, when the execution of jobs #1 to #3 is completed, the job execution management unit 13 registers the execution time and cloud service usage fee for each, and transitions the job execution history table 14 to state 142.

請求額算出部15は、全てのジョブの実行が完了して実行開始待ちジョブがなくなった場合等をクラウドサービス使用料の請求額計算時として、以下の請求額算出処理を実行する。請求額算出部15は、ジョブ実行履歴テーブル14に登録されたクラウドサービス使用料の合計値を算出する。 The billing calculation unit 15 executes the following billing calculation process when it determines that the billing amount for cloud service usage is calculated when all jobs have been executed and there are no more jobs waiting to be executed. The billing calculation unit 15 calculates the total amount of cloud service usage fees registered in the job execution history table 14.

次に、請求額算出部15は、ジョブ実行履歴テーブル14に登録された実行終了状態のジョブをジョブ投入順にソートする。次に、請求額算出部15は、ソート結果の先頭のジョブのジョブ投入時刻をジョブ管理テーブル12から取得して、オンプレミス計算装置30の利用開始可能時刻の初期値として設定する。次に、請求額算出部15は、クラウドサービス合計利用時間見積値の初期値である0に設定する。 The billing calculation unit 15 then sorts the jobs that have finished execution and are registered in the job execution history table 14 in the order in which the jobs were submitted. The billing calculation unit 15 then obtains the job submission time of the top job in the sorted result from the job management table 12, and sets this as the initial value of the time when the on-premise computing device 30 can start using the job. The billing calculation unit 15 then sets the initial value of the estimated total cloud service usage time to 0.

次に、請求額算出部15は、ソートしたジョブの各ジョブについてソート順に前から以下の処理を実行する。ここでは、処理の対象とするジョブを対象ジョブと呼ぶ。請求額算出部15は、対象ジョブの実行開始期限時刻をジョブ管理テーブル12から取得して、その時点でのオンプレミス計算装置30の利用開始可能時刻と比較する。 Next, the billing calculation unit 15 executes the following process for each job in the sorted jobs, starting from the beginning in sorted order. Here, the job to be processed is called the target job. The billing calculation unit 15 obtains the execution start deadline time of the target job from the job management table 12, and compares it with the available start time of the on-premise computing device 30 at that time.

対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻より早い場合、請求額算出部15は、ジョブ実行履歴テーブル14における対象ジョブのジョブ実行履歴レコードにおけるクラウドサービス利用必要フラグの値として「該当」を登録する。次に、請求額算出部15は、クラウドサービス合計利用時間見積値に対象ジョブの実行時間を加算する。 If the execution start deadline time of the target job is earlier than the available time of the on-premise computing device 30, the billing calculation unit 15 registers "Applicable" as the value of the cloud service usage requirement flag in the job execution history record of the target job in the job execution history table 14. Next, the billing calculation unit 15 adds the execution time of the target job to the estimated total cloud service usage time.

逆に、対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻以降の場合、ジョブ実行履歴テーブル14における対象ジョブのジョブ実行履歴レコードにおけるクラウドサービス利用必要フラグの値として「非該当」を登録する。次に、請求額算出部15は、オンプレミス計算装置30の利用開始可能時刻に対象ジョブの実行時間を加算してオンプレミス計算装置30の利用開始可能時刻を更新する。 Conversely, if the execution start deadline time of the target job is after the available time of the on-premise computing device 30, "Not applicable" is registered as the value of the cloud service usage requirement flag in the job execution history record of the target job in the job execution history table 14. Next, the billing amount calculation unit 15 adds the execution time of the target job to the available time of the on-premise computing device 30 to update the available time of the on-premise computing device 30.

例えば、ジョブ#1~#3の実行の終了後のジョブ実行履歴テーブル14が図3の状態142の場合、請求額算出部15は、ジョブ#1のジョブ投入時刻を利用開始可能時刻の初期値とする。そして、請求額算出部15は、ジョブ#1の実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻より遅い場合、ジョブ実行履歴テーブル14におけるジョブ#1のクラウドサービス利用必要フラグの値として「非該当」を登録する。さらに、請求額算出部15は、オンプレミス計算装置30の利用開始可能時刻の初期値である0にジョブ#1の実行時間を加算してオンプレミス計算装置30の利用開始可能時刻を更新する。請求額算出部15は、同様にジョブ#2についても、クラウドサービス利用必要フラグの登録及び利用開始可能時刻の更新を行う。次に、請求額算出部15は、ジョブ#3の実行開始期限時刻と更新されたオンプレミス計算装置30の利用開始可能時刻とを比較する。ジョブ#3の実行開始期限時刻が更新されたオンプレミス計算装置30の利用開始可能時刻以前の場合、請求額算出部15は、ジョブ実行履歴テーブル14におけるジョブ#3のクラウドサービス利用必要フラグの値として「該当」を登録する。さらに、請求額算出部15は、クラウドサービス合計利用時間見積値にジョブ#3の実行時間を加算する。これにより、請求額算出部15は、ジョブ実行履歴テーブル14を図3の状態143に遷移させる。 For example, when the job execution history table 14 after the execution of jobs #1 to #3 is in state 142 of FIG. 3, the billing calculation unit 15 sets the job input time of job #1 as the initial value of the available time. If the execution start deadline time of job #1 is later than the available time of the on-premise computing device 30, the billing calculation unit 15 registers "Not applicable" as the value of the cloud service usage required flag of job #1 in the job execution history table 14. Furthermore, the billing calculation unit 15 adds the execution time of job #1 to 0, which is the initial value of the available time of the on-premise computing device 30, to update the available time of the on-premise computing device 30. Similarly, the billing calculation unit 15 also registers the cloud service usage required flag and updates the available time of the on-premise computing device 30 for job #2. Next, the billing calculation unit 15 compares the execution start deadline time of job #3 with the updated available time of the on-premise computing device 30. If the execution start deadline time of job #3 is before the updated available time of the on-premise computing device 30, the billing calculation unit 15 registers "Applicable" as the value of the cloud service usage requirement flag of job #3 in the job execution history table 14. Furthermore, the billing calculation unit 15 adds the execution time of job #3 to the estimated total cloud service usage time. As a result, the billing calculation unit 15 transitions the job execution history table 14 to state 143 in FIG. 3.

請求額算出部15は、ソートした全てのジョブについて以上の処理を行った後、クラウドサービス利用必要フラグの値が「該当」とされたジョブのそれぞれについて、実行時間をクラウドサービス合計利用時間見積値で除算する。そして、請求額算出部15は、クラウドサービス使用料合計値に除算結果を乗じて、クラウドサービス利用必要フラグの値が「該当」とされたジョブのそれぞれのクラウドサービス使用料請求額を算出する。 After performing the above process for all sorted jobs, the billing calculation unit 15 divides the execution time by the estimated total cloud service usage time for each job whose cloud service usage requirement flag has the value "applicable". The billing calculation unit 15 then multiplies the total cloud service usage fee by the result of this division to calculate the billing amount for the cloud service usage fee for each job whose cloud service usage requirement flag has the value "applicable".

その後、請求額算出部15は、クラウドサービス利用必要フラグの値が「該当」とされたジョブの投入元の利用者端末装置2に算出したクラウドサービス使用料請求額を通知する。また、請求額算出部15は、クラウドサービス利用必要フラグの値が「非該当」とされたジョブの投入元の利用者端末装置2にはオンプレミス計算装置30の使用料請求額を通知する。 Then, the billing calculation unit 15 notifies the calculated billing amount for cloud service usage to the user terminal device 2 that submitted the job for which the value of the cloud service usage necessary flag is set to "applicable." The billing calculation unit 15 also notifies the user terminal device 2 that submitted the job for which the value of the cloud service usage necessary flag is set to "not applicable" of the billing amount for usage of the on-premise computing device 30.

図4は、ジョブ実行処理の全体を示すフローチャートである。次に、図4を参照して、ハイブリッドHPCシステム1におけるジョブ実行処理の全体的な流れを説明する。 Figure 4 is a flowchart showing the entire job execution process. Next, the overall flow of job execution processing in the hybrid HPC system 1 will be explained with reference to Figure 4.

ジョブ管理装置10は、オンプレミス計算装置30に空きが発生したか否かを判定する(ステップS1)。 The job management device 10 determines whether or not an available space has been created in the on-premise computing device 30 (step S1).

オンプレミス計算装置30に空きが発生した場合(ステップS1:肯定)、ジョブ管理装置10は、リソース選択実行処理を実行する(ステップS2)。 If an available space is available on the on-premise computing device 30 (step S1: Yes), the job management device 10 executes a resource selection and execution process (step S2).

これに対して、オンプレミス計算装置30に空きが発生していない場合(ステップS1:否定)、ジョブ管理装置10は、実行開始期限時刻が到来した実行開始待ちジョブが存在するか否かを判定する(ステップS3)。実行開始期限時刻が到来した実行開始待ちジョブが存在しない場合(ステップS3:否定)、ジョブ実行処理は、ステップS1へ戻る。 On the other hand, if there is no free space in the on-premise computing device 30 (step S1: No), the job management device 10 determines whether there is a job waiting to start execution whose execution start deadline has arrived (step S3). If there is no job waiting to start execution whose execution start deadline has arrived (step S3: No), the job execution process returns to step S1.

これに対して、実行開始期限時刻が到来した実行開始待ちジョブが存在する場合(ステップS3:肯定)、ジョブ管理装置10は、クラウド利用実行処理を実行する(ステップS4)。具体的には、ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブを実行させるクラウド計算装置40を選択する。そして、ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブをクラウド計算装置40に投入して、そのジョブの実行をクラウド計算装置40に指示する。 On the other hand, if there is a job waiting to start execution whose execution start deadline has arrived (step S3: Yes), the job management device 10 executes a cloud-utilizing execution process (step S4). Specifically, the job execution management unit 13 selects a cloud computing device 40 to execute the job waiting to start execution whose execution start deadline has arrived. Then, the job execution management unit 13 submits the job waiting to start execution whose execution start deadline has arrived to the cloud computing device 40, and instructs the cloud computing device 40 to execute the job.

その後、ジョブ管理装置10は、シャットダウンの指示の有無等に基づいて動作を終了するか否かを判定する(ステップS5)。動作を継続する場合(ステップS5:否定)、ジョブ実行処理は、ステップS1へ戻る。 Then, the job management device 10 determines whether to end the operation based on the presence or absence of a shutdown instruction, etc. (step S5). If the operation is to be continued (step S5: No), the job execution process returns to step S1.

これに対して、動作を終了する場合(ステップS5:肯定)、ジョブ管理装置10は、ジョブ実行処理を終了する。 On the other hand, if the operation is to be terminated (step S5: Yes), the job management device 10 terminates the job execution process.

図5は、実施例1に係るジョブ管理装置によるリソース選択実行処理のフローチャートである。図5に示したフローは、図4のステップS2で実行される処理の一例にあたる。次に、図5を参照して、本実施例に係るジョブ管理装置10によるリソース選択実行処理の流れを説明する。 Figure 5 is a flowchart of the resource selection execution process by the job management device according to the first embodiment. The flow shown in Figure 5 corresponds to an example of the process executed in step S2 of Figure 4. Next, the flow of the resource selection execution process by the job management device 10 according to the present embodiment will be described with reference to Figure 5.

ジョブ実行管理部13は、ジョブ管理テーブル12を参照して、実行開始待ちジョブを列挙する(ステップS101)。 The job execution management unit 13 refers to the job management table 12 and lists jobs waiting to start execution (step S101).

次に、ジョブ実行管理部13は、実行開始待ちジョブが1つ以上存在するか否かを判定する(ステップS102)。実行開始待ちジョブが1つも存在しない場合(ステップS102:否定)、ジョブ実行管理部13は、リソース選択実行処理を終了する。 Next, the job execution management unit 13 determines whether or not there is one or more jobs waiting to start execution (step S102). If there is no job waiting to start execution (step S102: No), the job execution management unit 13 ends the resource selection execution process.

これに対して、実行開始待ちジョブが1つ以上存在する場合(ステップS102:肯定)、ジョブ実行管理部13は、実行開始待ちジョブが1つか否かを判定する(ステップS103)。 In contrast, if there is one or more jobs waiting to start execution (step S102: Yes), the job execution management unit 13 determines whether there is one job waiting to start execution (step S103).

実行開始待ちジョブが1つの場合(ステップS103:肯定)、ジョブ実行管理部13は、その1つの実行開始待ちジョブを実行させるリソースとしてオンプレミス計算装置30を選択する(ステップS104)。 If there is one job waiting to start execution (step S103: Yes), the job execution management unit 13 selects the on-premise computing device 30 as a resource to execute the one job waiting to start execution (step S104).

そして、ジョブ実行管理部13は、実行開始待ちジョブをオンプレミス計算装置30で実行させる(ステップS105)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。 Then, the job execution management unit 13 executes the job that is waiting to start execution on the on-premise computing device 30 (step S105). After that, the job execution management unit 13 ends the resource selection and execution process.

これに対して、実行開始待ちジョブが複数の場合(ステップS103:否定)、ジョブ実行管理部13は、実行開始待ちジョブを投入順にソートする(ステップS106)。 On the other hand, if there are multiple jobs waiting to start execution (step S103: No), the job execution management unit 13 sorts the jobs waiting to start execution in the order in which they were submitted (step S106).

次に、ジョブ実行管理部13は、ソート結果の先頭のジョブである第1の実行候補ジョブの最大実行時間を現在時刻に加算した結果を第1の実行候補ジョブの実行終了予想時刻として算出する(ステップS107)。 Next, the job execution management unit 13 calculates the estimated execution end time of the first execution candidate job, which is the first job in the sorted result, by adding the maximum execution time of the first execution candidate job to the current time (step S107).

次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅いか否かを判定する(ステップS108)。 Next, the job execution management unit 13 determines whether the expected execution end time of the first execution candidate job is later than the execution start deadline time of the second execution candidate job (step S108).

第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅い場合(ステップS108:肯定)、ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間より長いか否かを判定する(ステップS109)。 If the expected end time of the first execution candidate job is later than the execution start deadline time of the second execution candidate job (step S108: Yes), the job execution management unit 13 determines whether the maximum execution time of the first execution candidate job is longer than the maximum execution time of the second execution candidate job (step S109).

第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間より長い場合(ステップS109:肯定)、ジョブ実行管理部13は、第1の実行候補ジョブを実行させるリソースとしてクラウド計算装置40を選択する(ステップS110)。 If the maximum execution time of the first execution candidate job is longer than the maximum execution time of the second execution candidate job (step S109: Yes), the job execution management unit 13 selects the cloud computing device 40 as a resource for executing the first execution candidate job (step S110).

そして、ジョブ実行管理部13は、第1の実行候補ジョブをクラウド計算装置40で実行させる(ステップS111)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。 Then, the job execution management unit 13 causes the cloud computing device 40 to execute the first execution candidate job (step S111). After that, the job execution management unit 13 ends the resource selection and execution process.

一方、第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻以前の場合(ステップS108:否定)、ジョブ実行管理部13は、以下の処理を実行する。同様に、第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間以上の場合(ステップS109:否定)も、ジョブ実行管理部13は、以下の処理を実行する。ジョブ実行管理部13は、第1の実行候補ジョブを実行させるリソースとしてオンプレミス計算装置30を選択する(ステップS112)。 On the other hand, if the expected end time of the first execution candidate job is before the execution start deadline time of the second execution candidate job (step S108: No), the job execution management unit 13 executes the following process. Similarly, if the maximum execution time of the first execution candidate job is equal to or greater than the maximum execution time of the second execution candidate job (step S109: No), the job execution management unit 13 also executes the following process. The job execution management unit 13 selects the on-premise computing device 30 as a resource for executing the first execution candidate job (step S112).

そして、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30で実行させる(ステップS113)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。 Then, the job execution management unit 13 executes the first execution candidate job on the on-premise computing device 30 (step S113). After that, the job execution management unit 13 ends the resource selection and execution process.

図6は、実施例1に係るジョブ管理装置による請求額算出処理のフローチャートである。次に、図6を参照して、本実施例に係るジョブ管理装置10による請求額算出処理の流れを説明する。 Figure 6 is a flowchart of the billing amount calculation process by the job management device according to the first embodiment. Next, the flow of the billing amount calculation process by the job management device 10 according to the present embodiment will be described with reference to Figure 6.

請求額算出部15は、ジョブ実行履歴テーブル14に登録されたクラウドサービス使用料の合計値を算出する(ステップS201)。 The billing calculation unit 15 calculates the total amount of cloud service usage fees registered in the job execution history table 14 (step S201).

次に、請求額算出部15は、ジョブ実行履歴テーブル14に登録された実行終了状態のジョブをジョブ投入順にソートする(ステップS202)。 Next, the billing calculation unit 15 sorts the jobs that have been completed and are registered in the job execution history table 14 in the order in which they were submitted (step S202).

次に、請求額算出部15は、ソート結果の先頭のジョブのジョブ投入時刻をジョブ管理テーブル12から取得して、オンプレミス計算装置30の利用開始可能時刻の初期値として設定する(ステップS203)。 Next, the billing calculation unit 15 obtains the job input time of the first job in the sorted result from the job management table 12, and sets it as the initial value of the available start time of the on-premise computing device 30 (step S203).

次に、請求額算出部15は、クラウドサービス合計利用時間見積値の初期値である0に設定する(ステップS204)。 Next, the billing calculation unit 15 sets the estimated total cloud service usage time to an initial value of 0 (step S204).

次に、請求額算出部15は、ソート結果の先頭のジョブから連番で1から順に最後のジョブまで番号を割り当てる。ここで、最後のジョブにはNが割り当てられたとする。そして、請求額算出部15は、nを1に設定する(ステップS205)。 Next, the billing calculation unit 15 assigns consecutive numbers from 1 to the first job in the sorting result through to the last job. Here, it is assumed that the last job is assigned N. The billing calculation unit 15 then sets n to 1 (step S205).

次に、請求額算出部15は、nがNより大きいか否かを判定する(ステップS206)。 Next, the billing calculation unit 15 determines whether n is greater than N (step S206).

nがN以下の場合(ステップS206:否定)、請求額算出部15は、番号nが割り当てられたジョブを対象ジョブとして選択する(ステップS207)。 If n is less than or equal to N (step S206: No), the billing calculation unit 15 selects the job to which the number n is assigned as the target job (step S207).

対象ジョブの実行開始期限時刻をジョブ管理テーブル12から取得して、オンプレミス計算装置30の利用開始可能時刻以前か否かを判定する(ステップS208)。 The execution start deadline time of the target job is obtained from the job management table 12, and it is determined whether it is before the time when the on-premise computing device 30 can start being used (step S208).

対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻以前の場合(ステップS208:肯定)、請求額算出部15は、対象ジョブのクラウドサービス利用必要フラグの値を「該当」に設定する(ステップS209)。 If the execution start deadline time of the target job is before the time when the on-premise computing device 30 can start using the target job (step S208: Yes), the billing amount calculation unit 15 sets the value of the cloud service usage requirement flag of the target job to "applicable" (step S209).

次に、請求額算出部15は、クラウドサービス合計利用時間見積値に番号nが割り当てられたジョブの実行時間を加算して更新する(ステップS210)。 Next, the billing calculation unit 15 updates the estimated total cloud service usage time by adding the execution time of the job assigned number n (step S210).

これに対して、対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻より遅い場合(ステップS208:否定)、請求額算出部15は、対象ジョブのクラウドサービス利用必要フラグの値を「非該当」に設定する(ステップS211)。 In contrast, if the execution start deadline time of the target job is later than the time when the on-premise computing device 30 can start using the target job (step S208: No), the billing amount calculation unit 15 sets the value of the cloud service usage requirement flag of the target job to "not applicable" (step S211).

次に、請求額算出部15は、オンプレミス計算装置30の利用開始可能時刻に対象ジョブの実行時間を加算してオンプレミス計算装置30の利用開始可能時刻を更新する(ステップS212)。 Next, the billing calculation unit 15 adds the execution time of the target job to the available time of the on-premise computing device 30 to update the available time of the on-premise computing device 30 (step S212).

その後、請求額算出部15は、nを1つインクリメントする(ステップS213)。そして、請求額算出処理は、ステップS206に戻る。これにより、請求額算出部15は、ソートされたジョブの先頭のジョブから最後のジョブまでクラウドサービス利用必要フラグの値を設定することができる。 Then, the billing calculation unit 15 increments n by 1 (step S213). Then, the billing calculation process returns to step S206. This allows the billing calculation unit 15 to set the value of the cloud service usage requirement flag for the sorted jobs from the first job to the last job.

一方、nがNより大きい場合(ステップS206:肯定)、請求額算出部15は、nを1に設定する(ステップS214)。 On the other hand, if n is greater than N (step S206: Yes), the billing amount calculation unit 15 sets n to 1 (step S214).

次に、請求額算出部15は、番号nが割り当てられたジョブを対象ジョブとして選択する(ステップS215)。 Next, the billing calculation unit 15 selects the job to which the number n is assigned as the target job (step S215).

次に、請求額算出部15は、対象ジョブのクラウドサービス利用必要フラグの値が「該当」であるか否かを判定する(ステップS216)。対象ジョブのクラウドサービス利用必要フラグの値が「非該当」の場合(ステップS216:否定)、請求額算出処理は、ステップS218へ進む。 Next, the billing calculation unit 15 determines whether the value of the cloud service usage requirement flag for the target job is "applicable" (step S216). If the value of the cloud service usage requirement flag for the target job is "not applicable" (step S216: No), the billing calculation process proceeds to step S218.

これに対して、対象ジョブのクラウドサービス利用必要フラグの値が「該当」の場合(ステップS216:肯定)、請求額算出部15は、実行時間をクラウドサービス合計利用時間見積値で除算する。そして、請求額算出部15は、クラウドサービス使用料合計値に除算結果を乗じて、対象ジョブのクラウドサービス使用料請求額を算出する(ステップS217)。 In contrast, if the value of the cloud service usage requirement flag for the target job is "Applicable" (step S216: Yes), the billing calculation unit 15 divides the execution time by the estimated total cloud service usage time. Then, the billing calculation unit 15 multiplies the total cloud service usage fee by the result of the division to calculate the billing amount for the cloud service usage fee for the target job (step S217).

その後、請求額算出部15は、nがNに達したか否かを判定する(ステップS218)。nがN未満の場合(ステップS218:否定)、請求額算出部15は、nを1つインクリメントする(ステップS219)。そして、請求額算出処理は、ステップS215に戻る。 Then, the billing amount calculation unit 15 determines whether n has reached N (step S218). If n is less than N (step S218: No), the billing amount calculation unit 15 increments n by 1 (step S219). Then, the billing amount calculation process returns to step S215.

これに対して、nがNに達した場合(ステップS218:肯定)、請求額算出部15は、クラウドサービス利用必要フラグの値が「該当」のジョブの送信元の利用者端末装置2へ、そのジョブについてのクラウドサービス使用料請求額を使用料請求額として通知する。また、請求額算出部15は、クラウドサービス利用必要フラグの値が「非該当」とされたジョブの投入元の利用者端末装置2にはオンプレミス計算装置30の使用料請求額を通知する(ステップS220)。 On the other hand, if n reaches N (step S218: Yes), the billing calculation unit 15 notifies the user terminal device 2 that is the sender of a job for which the cloud service usage flag has a value of "applicable" of the cloud service usage fee billing amount for that job as the usage fee billing amount. In addition, the billing calculation unit 15 notifies the user terminal device 2 that is the sender of a job for which the cloud service usage flag has a value of "not applicable" of the usage fee billing amount for the on-premise computing device 30 (step S220).

図7は、ジョブの投入順に逐次実行する場合と実施例1に係るジョブ管理装置がジョブを実行する場合との実行状況を示す図である。グラフ201及び202は、横軸で時間を表し、縦軸でインスタンスを表す。終了デッドライン時刻211~213は、それぞれジョブ#1~#3のそれぞれの終了デッドライン時刻である。ここでは、1台のオンプレミス計算装置30が1つずつジョブを実行する場合で説明する。 Figure 7 shows the execution status when jobs are executed sequentially in the order in which they were submitted, and when the job management device according to the first embodiment executes the jobs. In graphs 201 and 202, the horizontal axis represents time, and the vertical axis represents instances. End deadline times 211 to 213 are the end deadline times of jobs #1 to #3, respectively. Here, a case will be described in which one on-premise computing device 30 executes jobs one at a time.

グラフ201は、ジョブの投入順に逐次実行する場合の実行結果を示す。斜線パターンを付したジョブの実行が、クラウド計算装置40によるジョブ実行を表す。この場合、オンプレミス計算装置30は、ジョブ#1の実行終了後、ジョブ#2の実行を開始する。そして、ジョブ#2の実行中にジョブ#3の実行開始期限時刻が到来するため、ジョブ#3がクラウド計算装置40により実行される。 Graph 201 shows the execution results when jobs are executed sequentially in the order in which they were submitted. The execution of jobs with a diagonal line pattern represents job execution by the cloud computing device 40. In this case, the on-premise computing device 30 starts executing job #2 after finishing execution of job #1. Then, since the execution start deadline time for job #3 arrives while job #2 is being executed, job #3 is executed by the cloud computing device 40.

これに対して、グラフ202が、実施例1に係るジョブ管理装置10によるジョブの実行結果を示す。この場合、ジョブ#1の実行終了後、ジョブ#3の実行時間がジョブ#2の実行時間よりも長いため、ジョブ#2は、クラウド計算装置40により実行される。そして、ジョブ#3は、オンプレミス計算装置30により実行される。 In contrast, graph 202 shows the results of job execution by the job management device 10 according to the first embodiment. In this case, after the execution of job #1 is completed, the execution time of job #3 is longer than the execution time of job #2, so job #2 is executed by the cloud computing device 40. Then, job #3 is executed by the on-premise computing device 30.

このように、本実施例に係るジョブ管理装置10は、実行時間が短いジョブをクラウド計算装置40で実行させ、実行時間が長いジョブをオンプレミス計算装置30で実行させる。これにより、ハイブリッドHPCシステム1における全体的な課金を抑えることが可能となる。 In this way, the job management device 10 according to this embodiment executes jobs with short execution times on the cloud computing device 40 and executes jobs with long execution times on the on-premise computing device 30. This makes it possible to reduce overall charges in the hybrid HPC system 1.

以上に説明したように、本実施例に係るジョブ管理装置は、ジョブの実行終了予想時刻が次のジョブの実行開始期限時刻よりも早ければ、そのジョブをオンプレミス環境で実行させる。また、ジョブの最大実行時間が次のジョブの最大実行時間以上であれば、そのジョブをオンプレミス環境で実行させる。逆に、ジョブの実行終了予想時刻が次のジョブの実行開始期限時刻以降であり且つ最大実行時間が次のジョブの最大実行時間より短ければ、ジョブ管理装置は、そのジョブをクラウド環境で実行させる。さらに、オンプレミス環境に空きが無い状態で特定のジョブの指定された終了デッドライン時刻から算出した実行開始期限時刻が到来すると、ジョブ管理装置は、そのジョブをクラウド環境で実行させる。 As described above, the job management device according to this embodiment executes a job in an on-premise environment if the predicted execution end time of the job is earlier than the execution start deadline time of the next job. Also, if the maximum execution time of the job is equal to or longer than the maximum execution time of the next job, the job management device executes the job in an on-premise environment. Conversely, if the predicted execution end time of the job is after the execution start deadline time of the next job and the maximum execution time is shorter than the maximum execution time of the next job, the job management device executes the job in a cloud environment. Furthermore, if there is no free space in the on-premise environment and the execution start deadline time calculated from the specified end deadline time of a specific job arrives, the job management device executes the job in a cloud environment.

これにより、各ジョブの指定された終了デッドライン時刻を守りつつ、なるべく実行時間が短いジョブをクラウド環境で実行することができる。したがって、ジョブの終了デッドライン時刻を守りつつ課金を抑えることができる。 This allows jobs with as short an execution time as possible to be executed in a cloud environment while adhering to the specified deadline for each job. This allows you to reduce charges while still adhering to the job's deadline.

(変形例)
実施例1ではジョブ管理装置10は、最大実行時間を用いてジョブをオンプレミス計算装置30で実行させるかクラウド計算装置40で実行させるかを決定した。ただし、最大実行時間はジョブを完了させるために多めに見積もられた時間であり、実際にはより短い時間で実行が終了することが通常である。そこで、本変形例に係るジョブ管理装置10は、過去のジョブの実行結果から各ジョブの実行時間を予測してオンプレミス計算装置30で実行させるかクラウド計算装置40で実行させるかを決定する。以下に本変形例に係るオンプレミス計算装置30の詳細について説明する。
(Modification)
In the first embodiment, the job management device 10 uses the maximum execution time to determine whether to execute a job on the on-premise computing device 30 or the cloud computing device 40. However, the maximum execution time is a time that is overestimated in order to complete a job, and the execution is usually completed in a shorter time than the maximum execution time. Therefore, the job management device 10 according to this modified example predicts the execution time of each job from the execution results of past jobs and determines whether to execute the job on the on-premise computing device 30 or the cloud computing device 40. Details of the on-premise computing device 30 according to this modified example are described below.

本変形例に係るジョブ実行管理部13は、過去に実行された多数のジョブの実行結果から算出された、ジョブの特徴に応じた実行時間予測係数を予め有する。ジョブの特徴としては、計算の種類や計算回数等が含まれる。 The job execution management unit 13 in this modified example has in advance an execution time prediction coefficient according to the characteristics of the job, which is calculated from the execution results of many jobs executed in the past. The job characteristics include the type of calculation, the number of calculations, etc.

ジョブ実行管理部13は、第1の実行候補ジョブの特徴に応じた実行時間予測係数を特定する。そして、ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間に第1の実行候補ジョブの実行時間予測係数を乗じて、第1の実行候補ジョブの実行予想時間を算出する。次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行予想時間を現在時刻に加算した結果を第1の実行候補ジョブの実行終了予想時刻とする。 The job execution management unit 13 identifies an execution time prediction coefficient according to the characteristics of the first execution candidate job. Then, the job execution management unit 13 multiplies the maximum execution time of the first execution candidate job by the execution time prediction coefficient of the first execution candidate job to calculate the predicted execution time of the first execution candidate job. Next, the job execution management unit 13 adds the predicted execution time of the first execution candidate job to the current time, and sets the result as the predicted execution end time of the first execution candidate job.

次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行終了予想時刻と第2の実行候補ジョブの実行開始期限時刻とを比較する。第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻以前であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30に投入して、第1の実行候補ジョブの実行をオンプレミス計算装置30に指示する。 Next, the job execution management unit 13 compares the predicted execution end time of the first execution candidate job with the execution start deadline time of the second execution candidate job. If the predicted execution end time of the first execution candidate job is before the execution start deadline time of the second execution candidate job, the job execution management unit 13 selects the on-premise computing device 30 as the device that will execute the first execution candidate job. Then, the job execution management unit 13 submits the first execution candidate job to the on-premise computing device 30 and instructs the on-premise computing device 30 to execute the first execution candidate job.

逆に、第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅ければ、ジョブ実行管理部13は、第2の実行候補ジョブの特徴に応じた実行時間予測係数を特定する。そして、ジョブ実行管理部13は、第2の実行候補ジョブの最大実行時間に第2の実行候補ジョブの実行時間予測係数を乗じて、第2の実行候補ジョブの実行予想時間を算出する。次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行予想時間と第2の実行候補ジョブの実行予想時間とを比較する。 Conversely, if the predicted execution end time of the first execution candidate job is later than the execution start deadline time of the second execution candidate job, the job execution management unit 13 identifies an execution time prediction coefficient according to the characteristics of the second execution candidate job. Then, the job execution management unit 13 multiplies the maximum execution time of the second execution candidate job by the execution time prediction coefficient of the second execution candidate job to calculate the predicted execution time of the second execution candidate job. Next, the job execution management unit 13 compares the predicted execution time of the first execution candidate job with the predicted execution time of the second execution candidate job.

第1の実行候補ジョブの実行予想時間が第2の実行候補ジョブの実行予想時間以上であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。 If the expected execution time of the first execution candidate job is equal to or longer than the expected execution time of the second execution candidate job, the job execution management unit 13 selects the on-premise computing device 30 as the device that will execute the first execution candidate job.

逆に、第1の実行候補ジョブの実行予想時間が第2の実行候補ジョブの実行予想時間より短ければ、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてクラウド計算装置40を選択する。 Conversely, if the expected execution time of the first execution candidate job is shorter than the expected execution time of the second execution candidate job, the job execution management unit 13 selects the cloud computing device 40 as the device to execute the first execution candidate job.

以上に説明したように、本変形例に係るジョブ管理装置は、過去のジョブの実行結果に基づいて最大実行時間から各ジョブの実際の実行時間を予測してオンプレミス環境で実行させるかクラウド環境で実行させるかを決定する。最大実行時間は余裕をもって見積もられており、実際の実行時間とは大きな差が存在する場合が多い。そのため、過去のジョブの実行結果に基づいて予測した実行時間の方が現実に即した値と考えることができ、より適切にジョブの実行環境を選択することができる。したがって、ジョブの終了デッドライン時刻を守りつつより適切に課金を抑えることができる。 As described above, the job management device according to this modified example predicts the actual execution time of each job from the maximum execution time based on the results of past job execution, and determines whether to execute the job in an on-premise environment or a cloud environment. The maximum execution time is estimated with a margin of error, and there are many cases where the maximum execution time differs significantly from the actual execution time. Therefore, the execution time predicted based on the results of past job execution can be considered a more realistic value, and the job execution environment can be more appropriately selected. Therefore, it is possible to more appropriately reduce charges while meeting the job completion deadline.

次に、実施例2について説明する。本実施例に係るハイブリッドHPCシステム1も図1で示される。本実施例に係るジョブ管理装置10は、実行開始期限時刻がなるべく近く且つ最大実行時間がなるべく長いジョブをオンプレミス計算装置30で実行させる。そして、ジョブ管理装置10は、実行開始期限時刻までにオンプレミス計算装置30が実行開始待ちジョブを実行可能な状態になると、そのジョブをオンプレミス計算装置30で実行させる。以下に、本実施例に係るジョブ管理装置10によるジョブの実行環境の選択の詳細について説明する。以下の説明では、実施例1と同様の各部の機能については説明を省略する。 Next, a second embodiment will be described. A hybrid HPC system 1 according to this embodiment is also shown in FIG. 1. A job management device 10 according to this embodiment causes an on-premise computing device 30 to execute a job whose execution start deadline is as close as possible and whose maximum execution time is as long as possible. Then, when the on-premise computing device 30 becomes capable of executing a job waiting to start execution by the execution start deadline, the job management device 10 causes the on-premise computing device 30 to execute the job. Details of the selection of a job execution environment by the job management device 10 according to this embodiment will be described below. In the following description, the functions of each part similar to those of the first embodiment will be omitted.

ジョブ実行管理部13は、オンプレミス計算装置30によるジョブの実行が終了して空きが発生すると以下のリソース選択実行処理を実行する。ジョブ実行管理部13は、ジョブ管理テーブル12を確認して、ジョブ管理テーブル12に登録された実行開始待ちジョブの情報を取得して列挙する。実行開始待ちジョブが1つもジョブ管理テーブル12に登録されていなければ、ジョブ実行管理部13は、ジョブのスケジューリング処理を終了する。 When the on-premise computing device 30 finishes executing a job and an available resource is created, the job execution management unit 13 executes the following resource selection and execution process. The job execution management unit 13 checks the job management table 12, and obtains and lists information on jobs waiting to start execution that are registered in the job management table 12. If no jobs waiting to start execution are registered in the job management table 12, the job execution management unit 13 ends the job scheduling process.

実行開始待ちジョブが1つの場合、ジョブ実行管理部13は、そのジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、そのジョブをオンプレミス計算装置30に投入して、そのジョブの実行をオンプレミス計算装置30に指示する。 When there is one job waiting to start execution, the job execution management unit 13 selects the on-premise computing device 30 as the device that will execute the job. The job execution management unit 13 then submits the job to the on-premise computing device 30 and instructs the on-premise computing device 30 to execute the job.

一方、実行開始待ちジョブが複数の場合、ジョブ実行管理部13は、実行開始待ちジョブを実行開始期限時刻の昇順且つ最大実行時間の降順に取得した実行開始待ちジョブをソートする。ここで、ソートされて並べられた実行開始待ちジョブのうち先頭のジョブを「第1の実行候補ジョブ」と呼び、先頭から2番目のジョブを「第2の実行候補ジョブ」と呼ぶ。この後、ジョブ実行管理部13は、実施例1と同様の処理を行う。 On the other hand, if there are multiple jobs waiting to start execution, the job execution management unit 13 sorts the acquired jobs waiting to start execution in ascending order of execution start deadline time and descending order of maximum execution time. Here, the first job among the sorted jobs waiting to start execution is called the "first execution candidate job," and the second job from the top is called the "second execution candidate job." After this, the job execution management unit 13 performs the same process as in Example 1.

すなわち、本実施例に係るジョブ実行管理部13は、実行開始期限時刻の昇順且つ最大実行時間の降順に取得した実行開始待ちジョブをソートすることが実施例1のジョブ実行管理部13と異なる。このようなソートを行うことで、ジョブ実行管理部13は、実行開始期限時刻が早いジョブからオンプレミス計算装置30で実行する。さらに、ジョブ実行管理部13は、実行開始期限時刻の遅いジョブを実行開始期限時刻が早いジョブの実行終了後にオンプレミス計算装置30で実行する、もしくは、その前に実行開始期限時刻が到来するとクラウド計算装置40で実行する。 That is, the job execution management unit 13 according to this embodiment differs from the job execution management unit 13 according to the first embodiment in that it sorts the acquired pending jobs in ascending order of execution start deadline time and descending order of maximum execution time. By sorting in this manner, the job execution management unit 13 executes the jobs with the earliest execution start deadline time on the on-premise computing device 30. Furthermore, the job execution management unit 13 executes the jobs with the latest execution start deadline time on the on-premise computing device 30 after the execution of the jobs with the earlier execution start deadline time is completed, or executes them on the cloud computing device 40 when the execution start deadline time arrives before that.

図8は、実施例2に係るジョブ管理装置によるジョブの実行状況の一例を示す図である。グラフ203及び204は、横軸で時間を表し、縦軸でインスタンスを表す。終了デッドライン時刻211~213は、それぞれジョブ#1~#3のそれぞれの終了デッドライン時刻である。ここでは、1台のオンプレミス計算装置30が1つずつジョブを実行する場合で説明する。斜線パターンを付したジョブの実行が、クラウド計算装置40によるジョブ実行を表す。 Figure 8 is a diagram showing an example of the execution status of a job by a job management device according to the second embodiment. In graphs 203 and 204, the horizontal axis represents time and the vertical axis represents instances. End deadline times 211 to 213 are the end deadline times of jobs #1 to #3, respectively. Here, a case will be described in which one on-premise computing device 30 executes jobs one by one. The execution of a job marked with a diagonal line pattern represents job execution by a cloud computing device 40.

グラフ203は、次に実行するジョブの実行開始期限時刻までにオンプレミス計算装置30に空きが発生しない場合の実行結果である。ジョブ#1の実行終了後、ジョブ管理装置10は、ジョブ#2の実行開始期限時刻がジョブ#3の実行開始期限時刻よりも遅いことから、ジョブ#3をオンプレミス計算装置30に実行させる。その後、ジョブ#3が実行中にジョブ#2の実行開始期限時刻が到来すると、ジョブ管理装置10は、グラフ203に示すようにジョブ#2をクラウド計算装置40に実行させる。 Graph 203 shows the execution result when no free space is available on the on-premise computing device 30 by the execution start deadline of the next job to be executed. After the execution of job #1 is completed, the job management device 10 causes the on-premise computing device 30 to execute job #3 because the execution start deadline of job #2 is later than the execution start deadline of job #3. Thereafter, when the execution start deadline of job #2 arrives while job #3 is being executed, the job management device 10 causes the cloud computing device 40 to execute job #2, as shown in graph 203.

これに対して、ジョブ#2の実行開始期限時刻以前にジョブ#3の実行が終了すると、その時点で、ジョブ管理装置10は、ジョブ#2に対するリソース選択実行処理を行う。この場合、オンプレミス計算装置30が空いており且つジョブ#2しかないので、ジョブ管理装置10は、ジョブ#2を実行させるリソースとしてオンプレミス計算装置30を選択する。そして、ジョブ管理装置10は、グラフ204に示すようにジョブ#2をオンプレミス計算装置30に実行させる。 In contrast, when the execution of job #3 ends before the execution start deadline of job #2, the job management device 10 performs resource selection and execution processing for job #2 at that time. In this case, since the on-premise computing device 30 is available and there is only job #2, the job management device 10 selects the on-premise computing device 30 as the resource for executing job #2. Then, the job management device 10 causes the on-premise computing device 30 to execute job #2, as shown in graph 204.

ここで、以上の説明では、ジョブ実行管理部13は、最大実行時間を用いて各ジョブの実行環境の選択を行った。ただし、ジョブ実行管理部13は、最大実行時間に代えて、最大実行時間に対象のジョブの実行時間予測係数を乗じた結果を用いてもよい。 In the above explanation, the job execution management unit 13 selected the execution environment for each job using the maximum execution time. However, instead of the maximum execution time, the job execution management unit 13 may use the result of multiplying the maximum execution time by the execution time prediction coefficient of the target job.

以上に説明したように、本実施例に係るジョブ管理装置は、各ジョブの実行開始期限時刻を待ってその実行開始期限時刻までにオンプレミス環境で実行可能となれば、ジョブをオンプレミス環境で実行し、そうでなければクラウド環境で実行する。これにより、より多くのジョブをオンプレミス環境で実行することができ、ジョブの終了デッドライン時刻を守りつつより適切に課金を抑えることができる。 As described above, the job management device according to this embodiment waits until the execution start deadline of each job, and if the job can be executed in the on-premises environment by that execution start deadline, executes the job in the on-premises environment; otherwise, executes the job in the cloud environment. This allows more jobs to be executed in the on-premises environment, and makes it possible to more appropriately reduce charges while meeting the job end deadline.

次に、実施例3について説明する。本実施例に係るハイブリッドHPCシステム1も図1で示される。本実施例に係るジョブ管理装置10は、2つ以上のジョブを比べてなるべくクラウド計算装置40の合計利用時間が短くなるようにオンプレミス計算装置30に実行させるジョブを決定する。以下に、本実施例に係るジョブ管理装置10によるジョブの実行環境の選択の詳細について説明する。以下の説明では、実施例1と同様の各部の機能については説明を省略する。ここでは、オンプレミス計算装置30が複数存在しそれぞれが1つずつジョブを逐次実行する場合で説明する。 Next, a third embodiment will be described. A hybrid HPC system 1 according to this embodiment is also shown in FIG. 1. A job management device 10 according to this embodiment compares two or more jobs and determines a job to be executed by an on-premise computing device 30 so as to shorten the total usage time of the cloud computing device 40 as much as possible. Details of the selection of a job execution environment by the job management device 10 according to this embodiment will be described below. In the following explanation, explanations of the functions of each part similar to those of the first embodiment will be omitted. Here, a case will be described in which there are multiple on-premise computing devices 30, each of which executes one job at a time sequentially.

ジョブ実行管理部13は、オンプレミス計算装置30によるジョブの実行が終了して空きが発生すると以下のリソース選択実行処理を実行する。ジョブ実行管理部13は、ジョブ管理テーブル12を確認して、ジョブ管理テーブル12に登録された実行開始待ちジョブの情報を取得して列挙する。実行開始待ちジョブが1つもジョブ管理テーブル12に登録されていなければ、ジョブ実行管理部13は、ジョブのスケジューリング処理を終了する。 When the on-premise computing device 30 finishes executing a job and an available resource is created, the job execution management unit 13 executes the following resource selection and execution process. The job execution management unit 13 checks the job management table 12, and obtains and lists information on jobs waiting to start execution that are registered in the job management table 12. If no jobs waiting to start execution are registered in the job management table 12, the job execution management unit 13 ends the job scheduling process.

実行開始待ちジョブが1つの場合、ジョブ実行管理部13は、そのジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、そのジョブをオンプレミス計算装置30に投入して、そのジョブの実行をオンプレミス計算装置30に指示する。 When there is one job waiting to start execution, the job execution management unit 13 selects the on-premise computing device 30 as the device that will execute the job. The job execution management unit 13 then submits the job to the on-premise computing device 30 and instructs the on-premise computing device 30 to execute the job.

一方、実行開始待ちジョブが複数の場合、ジョブ実行管理部13は、実行開始待ちジョブを実行開始期限時刻の昇順且つ最大実行時間の降順に取得した実行開始待ちジョブをソートする。 On the other hand, if there are multiple jobs waiting to start execution, the job execution management unit 13 sorts the acquired jobs waiting to start execution in ascending order of execution start deadline time and descending order of maximum execution time.

ジョブ実行管理部13は、ソート結果の先頭ジョブの最大実行時間を現在時刻に加算した結果を先頭ジョブの実行終了予想時刻とする。また、ジョブ実行管理部13は、オンプレミス計算装置30における実行中ジョブそれぞれについて、実行中ジョブ毎に実行開始時刻に最大実行時間を加算して、加算結果をその実行中ジョブの実行終了予想時刻とする。そして、ジョブ実行管理部13は、先頭ジョブ及びオンプレミス計算装置30における全ての実行中ジョブの実行終了予想時間のうち最速の実行終了予想時間をオンプレミス計算装置30の空き発生予想時刻とする。 The job execution management unit 13 adds the maximum execution time of the top job in the sorted result to the current time, and regards the result as the expected execution end time of the top job. In addition, for each job currently being executed in the on-premise computing device 30, the job execution management unit 13 adds the maximum execution time to the execution start time for each currently being executed job, and regards the sum as the expected execution end time of the currently being executed job. Then, the job execution management unit 13 regards the earliest expected execution end time of the expected execution end times of the top job and all currently being executed jobs in the on-premise computing device 30 as the expected time when the on-premise computing device 30 becomes available.

次に、ジョブ実行管理部13は、ソート結果のジョブのうち実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早いジョブを抽出する。そして、ジョブ実行管理部13は、抽出したジョブをソートの順番で第1~第Nのオンプレミス実行候補ジョブとする。 The job execution management unit 13 then extracts jobs from the sorted jobs whose execution start deadline time is earlier than the expected time when the on-premise computing device 30 becomes available. The job execution management unit 13 then sets the extracted jobs as the first to Nth on-premise execution candidate jobs in the order of sorting.

次に、ジョブ実行管理部13は、第1~第Nのオンプレミス実行候補ジョブのそれぞれから順に対象オンプレミス実行候補ジョブを選択して、以下のリソース選択実行処理を実行する。ジョブ実行管理部13は、対象オンプレミス実行候補ジョブの最大実行時間を現在時刻に加算した結果を、オンプレミス計算装置30の利用開始可能予想時刻の初期値とする。また、ジョブ実行管理部13は、クラウドサービス合計利用時間試算値の初期値を0とする。 The job execution management unit 13 then selects a target on-premise execution candidate job from each of the first to Nth on-premise execution candidate jobs in order, and executes the following resource selection and execution process. The job execution management unit 13 adds the maximum execution time of the target on-premise execution candidate job to the current time, and sets the result as the initial value of the predicted time when the on-premise computing device 30 can start using the job. The job execution management unit 13 also sets the initial value of the estimated cloud service total usage time to 0.

次に、ジョブ実行管理部13は、第1~第Nのオンプレミス実行候補ジョブのうちの対象オンプレミス実行候補ジョブ以外のジョブから番号順に1つずつジョブを選択して、以下の処理を順番に行う。以下では、ジョブ実行管理部13により選択されたジョブを選択ジョブと呼ぶ。ジョブ実行管理部13は、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早い場合、クラウドサービス合計利用時間試算値に選択ジョブの最大実行時間を加算する。これに対して、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻以降の場合、ジョブ実行管理部13は、オンプレミス計算装置30の空き発生予想時刻に選択ジョブの最大実行時間を加算する。 Next, the job execution management unit 13 selects jobs one by one in numerical order from among the first to Nth on-premise execution candidate jobs other than the target on-premise execution candidate job, and performs the following processing in order. Hereinafter, the job selected by the job execution management unit 13 is referred to as the selected job. If the execution start deadline of the selected job is earlier than the expected time when the on-premise computing device 30 will become available, the job execution management unit 13 adds the maximum execution time of the selected job to the estimated cloud service total usage time. On the other hand, if the execution start deadline of the selected job is after the expected time when the on-premise computing device 30 will become available, the job execution management unit 13 adds the maximum execution time of the selected job to the expected time when the on-premise computing device 30 will become available.

これにより、ジョブ実行管理部13は、N通りの対象オンプレミス実行候補ジョブについて、クラウドサービス合計利用時間試算値を算出する。そして、ジョブ実行管理部13は、クラウドサービス合計利用時間試算値の値が最小となるオンプレミス実行候補ジョブを選択する。そして、ジョブ実行管理部13は、選択したオンプレミス実行候補ジョブを実行させるリソースとしてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、選択したオンプレミス実行候補ジョブをオンプレミス計算装置30に投入して、選択したオンプレミス実行候補ジョブをオンプレミス計算装置30に実行させる。 As a result, the job execution management unit 13 calculates the estimated cloud service total usage time value for the N target on-premise execution candidate jobs. Then, the job execution management unit 13 selects the on-premise execution candidate job for which the estimated cloud service total usage time value is the smallest. Then, the job execution management unit 13 selects the on-premise computing device 30 as a resource for executing the selected on-premise execution candidate job. Thereafter, the job execution management unit 13 submits the selected on-premise execution candidate job to the on-premise computing device 30, and causes the on-premise computing device 30 to execute the selected on-premise execution candidate job.

図9Aは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第1フローチャートである。また、図9Bは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第2フローチャートである。次に、図9A及び9Bを参照して、本実施例に係るジョブ管理装置10によるリソース選択実行処理の流れを説明する。 Figure 9A is a first flowchart of the resource selection execution process by the job management device according to the third embodiment. Also, Figure 9B is a second flowchart of the resource selection execution process by the job management device according to the third embodiment. Next, the flow of the resource selection execution process by the job management device 10 according to the present embodiment will be described with reference to Figures 9A and 9B.

ジョブ実行管理部13は、ジョブ管理テーブル12を参照して、実行開始待ちジョブを列挙する(ステップS301)。 The job execution management unit 13 refers to the job management table 12 and lists jobs waiting to start execution (step S301).

次に、ジョブ実行管理部13は、実行開始待ちジョブが1つ以上存在するか否かを判定する(ステップS302)。実行開始待ちジョブが1つも存在しない場合(ステップS302:否定)、ジョブ実行管理部13は、リソース選択実行処理を終了する。 Next, the job execution management unit 13 determines whether or not there is one or more jobs waiting to start execution (step S302). If there is no job waiting to start execution (step S302: No), the job execution management unit 13 ends the resource selection execution process.

これに対して、実行開始待ちジョブが1つ以上存在する場合(ステップS302:肯定)、ジョブ実行管理部13は、実行開始待ちジョブが1つか否かを判定する(ステップS303)。 In contrast, if there is one or more jobs waiting to start execution (step S302: Yes), the job execution management unit 13 determines whether there is one job waiting to start execution (step S303).

実行開始待ちジョブが1つの場合(ステップS303:肯定)、ジョブ実行管理部13は、その1つの実行開始待ちジョブを実行させるリソースとしてオンプレミス計算装置30を選択する(ステップS304)。 If there is one job waiting to start execution (step S303: Yes), the job execution management unit 13 selects the on-premise computing device 30 as a resource to execute the one job waiting to start execution (step S304).

そして、ジョブ実行管理部13は、実行開始待ちジョブをオンプレミス計算装置30で実行させる(ステップS305)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。 Then, the job execution management unit 13 executes the job that is waiting to start execution on the on-premise computing device 30 (step S305). After that, the job execution management unit 13 ends the resource selection and execution process.

これに対して、実行開始待ちジョブが複数の場合(ステップS303:否定)、ジョブ実行管理部13は、実行開始待ちジョブを実行開始期限時刻の昇順且つ最大実行時間の降順に実行開始待ちジョブをソートする(ステップS306)。 In contrast, if there are multiple jobs waiting to start execution (step S303: No), the job execution management unit 13 sorts the jobs waiting to start execution in ascending order of execution start deadline time and descending order of maximum execution time (step S306).

次に、ジョブ実行管理部13は、ソート結果の先頭ジョブの最大実行時間を現在時刻に加算して先頭ジョブの実行終了予想時刻を算出する(ステップS307)。 Next, the job execution management unit 13 adds the maximum execution time of the top job in the sorted result to the current time to calculate the expected execution end time of the top job (step S307).

また、ジョブ実行管理部13は、オンプレミス計算装置30における実行中ジョブそれぞれについて、実行中ジョブ毎に実行開始時刻に最大実行時間を加算して実行終了予想時刻を算出する(ステップS308)。 The job execution management unit 13 also calculates the expected execution end time for each running job in the on-premise computing device 30 by adding the maximum execution time to the execution start time for each running job (step S308).

次に、ジョブ実行管理部13は、先頭ジョブ及びオンプレミス計算装置30における全ての実行中ジョブの実行終了予想時刻のうち最速の実行終了予想時刻をオンプレミス計算装置30の空き発生予想時刻と決定する(ステップS309)。 Next, the job execution management unit 13 determines the earliest expected execution end time among the expected execution end times of the leading job and all running jobs in the on-premise computing device 30 as the expected time when availability will occur in the on-premise computing device 30 (step S309).

次に、ジョブ実行管理部13は、ソート結果のジョブのうち実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早いジョブを抽出する。そして、ジョブ実行管理部13は、抽出したジョブをソートの順番で第1~第Nのオンプレミス実行候補ジョブと決定する(ステップS310)。 Next, the job execution management unit 13 extracts jobs from the sorted results whose execution start deadline time is earlier than the expected time when the on-premise computing device 30 will be available. The job execution management unit 13 then determines the extracted jobs as the first to Nth on-premise execution candidate jobs in the order of sorting (step S310).

次に、ジョブ実行管理部13は、n=1とする(ステップS311)。 Next, the job execution management unit 13 sets n=1 (step S311).

次に、ジョブ実行管理部13は、第nのオンプレミス実行候補ジョブを対象オンプレミス実行候補ジョブとする(ステップS312)。 Next, the job execution management unit 13 sets the nth on-premise execution candidate job as the target on-premise execution candidate job (step S312).

次に、ジョブ実行管理部13は、対象オンプレミス実行候補ジョブの最大実行時間を現在時刻に加算した結果を、オンプレミス計算装置30の利用開始可能予想時刻の初期値として設定する(ステップS313)。 Next, the job execution management unit 13 adds the maximum execution time of the target on-premise execution candidate job to the current time and sets the result as the initial value of the predicted time when the on-premise computing device 30 can start using (step S313).

また、ジョブ実行管理部13は、クラウドサービス合計利用時間試算値の初期値を0に設定する(ステップS314)。 The job execution management unit 13 also sets the initial value of the estimated total cloud service usage time to 0 (step S314).

次に、ジョブ実行管理部13は、第1~第Nのオンプレミス実行候補ジョブのうち第nのオンプレミス実行候補ジョブ以外の最も若番の未選択のジョブを選択ジョブとして1つ選択する(ステップS315)。 Next, the job execution management unit 13 selects one of the first to Nth on-premise execution candidate jobs, other than the nth on-premise execution candidate job, that is the lowest-numbered unselected job, as a selected job (step S315).

ジョブ実行管理部13は、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早いか否かを判定する(ステップS316)。 The job execution management unit 13 determines whether the execution start deadline time of the selected job is earlier than the expected time when the on-premise computing device 30 becomes available (step S316).

選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早い場合(ステップS316:肯定)、クラウドサービス合計利用時間試算値に選択ジョブの最大実行時間を加算する(ステップS317)。 If the execution start deadline time of the selected job is earlier than the expected time when the on-premise computing device 30 will be available (step S316: Yes), the maximum execution time of the selected job is added to the estimated total cloud service usage time (step S317).

これに対して、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻以降の場合(ステップS316:否定)、ジョブ実行管理部13は、オンプレミス計算装置30の空き発生予想時刻に選択ジョブの最大実行時間を加算する(ステップS318)。 In contrast, if the execution start deadline of the selected job is after the expected time when the on-premise computing device 30 becomes available (step S316: No), the job execution management unit 13 adds the maximum execution time of the selected job to the expected time when the on-premise computing device 30 becomes available (step S318).

その後、ジョブ実行管理部13は、第nのオンプレミス実行候補ジョブ以外のオンプレミス実行候補ジョブの全てについて検討済みか否かを判定する(ステップS319)。検討していないオンプレミス実行候補ジョブが残っている場合(ステップS319:否定)、リソース選択実行処理は、ステップS315へ戻る。 Then, the job execution management unit 13 determines whether all on-premise execution candidate jobs other than the n-th on-premise execution candidate job have been considered (step S319). If there are on-premise execution candidate jobs that have not been considered (step S319: No), the resource selection and execution process returns to step S315.

これに対して、第nのオンプレミス実行候補ジョブ以外のオンプレミス実行候補ジョブの全てについて検討済みの場合(ステップS319:肯定)、ジョブ実行管理部13は、次の処理に進む。ジョブ実行管理部13は、n=Nか否か、すなわちオンプレミス実行候補ジョブ全てについて対象オンプレミス実行候補ジョブとして検討済みか否かを判定する(ステップS320)。 On the other hand, if all on-premise execution candidate jobs other than the n-th on-premise execution candidate job have been considered (step S319: Yes), the job execution management unit 13 proceeds to the next process. The job execution management unit 13 determines whether n=N, i.e., whether all on-premise execution candidate jobs have been considered as target on-premise execution candidate jobs (step S320).

n=Nでない場合(ステップS320:否定)、ジョブ実行管理部13は、nを1つインクリメントする(ステップS321)。その後、リソース選択実行処理は、ステップS312へ戻る。 If n=N is not true (step S320: No), the job execution management unit 13 increments n by 1 (step S321). After that, the resource selection and execution process returns to step S312.

これに対して、n=Nの場合(ステップS320:肯定)、ジョブ実行管理部13は、
クラウドサービス合計利用時間試算値が最小となるオンプレミス実行候補ジョブを選択する(ステップS322)。
On the other hand, if n=N (step S320: Yes), the job execution management unit 13
An on-premise execution candidate job that has the smallest estimated total cloud service usage time is selected (step S322).

その後、ジョブ実行管理部13は、選択したオンプレミス実行候補ジョブをオンプレミス計算装置30に実行させる(ステップS323)。 Then, the job execution management unit 13 causes the on-premise computing device 30 to execute the selected on-premise execution candidate job (step S323).

図10は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行結果の比較を示す図である。ここでは、図10に示すジョブ管理テーブル12に登録されたジョブ#11~#13を実行する場合で説明する。 Figure 10 is a diagram showing a comparison of execution results between the job management device according to the second embodiment and the job management device according to the third embodiment. Here, a case where jobs #11 to #13 registered in the job management table 12 shown in Figure 10 are executed will be described.

実施例2に係るジョブ管理装置10を用いてジョブを実行した場合の実行結果を示すジョブ実行履歴テーブル14は、状態301のようになる。また、実施例3に係るジョブ管理装置10を用いてジョブを実行した場合の実行結果を示すジョブ実行履歴テーブル14は、状態302のようになる。この場合、実施例3に係るジョブ管理装置10を用いてジョブを実行した場合の方が、実施例2に係るジョブ管理装置10を用いてジョブを実行した場合に比べて、クラウドサービス使用料の合計額が16.4から15.2に減少する。すなわち、より適切に課金を抑えることができる。 The job execution history table 14 showing the execution results when a job is executed using the job management device 10 according to the second embodiment is as shown in state 301. The job execution history table 14 showing the execution results when a job is executed using the job management device 10 according to the third embodiment is as shown in state 302. In this case, the total cloud service usage fee is reduced from 16.4 to 15.2 when the job is executed using the job management device 10 according to the third embodiment, compared to when the job is executed using the job management device 10 according to the second embodiment. In other words, charges can be more appropriately reduced.

図11は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行状況の比較を示す図である。グラフ303及び304は、横軸で時間を表し、縦軸でインスタンスを表す。終了デッドライン時刻311~313は、それぞれジョブ#11~#13のそれぞれの終了デッドライン時刻である。斜線パターンを付したジョブの実行が、クラウド計算装置40によるジョブ実行を表す。 FIG. 11 is a diagram showing a comparison of the execution status between the job management device according to the second embodiment and the job management device according to the third embodiment. In graphs 303 and 304, the horizontal axis represents time and the vertical axis represents instances. End deadline times 311 to 313 are the end deadline times of jobs #11 to #13, respectively. The execution of jobs marked with a diagonal line pattern represents job execution by the cloud computing device 40.

グラフ303は、実施例2に係るジョブ管理装置10による実行結果を示す。この場合、実施例2に係るジョブ管理装置10は、実行開始期限時刻が最も早く且つ最大実行時間が最も長いジョブ#13をオンプレミス計算装置30で実行させる。そして、ジョブ#13が実行される間に、ジョブ#11及び#12の実行開始期限時刻が到来するため、実施例2に係るジョブ管理装置10は、ジョブ#11及び#12をクラウド計算装置40で実行させる。 Graph 303 shows the execution result by the job management device 10 according to the second embodiment. In this case, the job management device 10 according to the second embodiment executes job #13, which has the earliest execution start deadline time and the longest maximum execution time, on the on-premise computing device 30. Then, since the execution start deadline times of jobs #11 and #12 arrive while job #13 is being executed, the job management device 10 according to the second embodiment executes jobs #11 and #12 on the cloud computing device 40.

これに対して、グラフ304は、実施例3に係るジョブ管理装置10による実行結果を示す。この場合、実施例3に係るジョブ管理装置10は、なるべく実行開始期限時刻が早く且つ最大実行時間が長いジョブであって、クラウドサービス合計利用時間がなるべく短くなるジョブとしてジョブ#12を選択して、オンプレミス計算装置30で実行させる。そして、ジョブ#12が実行される間に、ジョブ#13の実行開始期限時刻が到来するため、実施例3に係るジョブ管理装置10は、ジョブ#13をクラウド計算装置40で実行させる。また、ジョブ#12の実行終了までにジョブ#11の実行開始期限時刻が到来しないため、実施例3に係るジョブ管理装置10は、ジョブ#11をオンプレミス計算装置30で実行させることができる。そして、実施例3に係るジョブ管理装置10は、ジョブ#11~#13のいずれも終了デッドライン時刻までに実行を終了させることができる。 In contrast, graph 304 shows the execution result by the job management device 10 according to the third embodiment. In this case, the job management device 10 according to the third embodiment selects job #12 as a job with an execution start deadline as early as possible and a maximum execution time as long as possible, and executes it on the on-premise computing device 30 as a job that shortens the total cloud service usage time as much as possible. Then, since the execution start deadline time of job #13 arrives while job #12 is being executed, the job management device 10 according to the third embodiment executes job #13 on the cloud computing device 40. Also, since the execution start deadline time of job #11 does not arrive by the time the execution of job #12 is completed, the job management device 10 according to the third embodiment can execute job #11 on the on-premise computing device 30. Then, the job management device 10 according to the third embodiment can complete the execution of all of jobs #11 to #13 by the end deadline time.

ここで、以上の説明では、ジョブ実行管理部13は、最大実行時間を用いて各ジョブの実行環境の選択を行った。ただし、ジョブ実行管理部13は、最大実行時間に代えて、最大実行時間に対象のジョブの実行時間予測係数を乗じた結果を用いてもよい。 In the above explanation, the job execution management unit 13 selected the execution environment for each job using the maximum execution time. However, instead of the maximum execution time, the job execution management unit 13 may use the result of multiplying the maximum execution time by the execution time prediction coefficient of the target job.

以上に説明したように、本実施例に係るジョブ管理装置は、2つ以上のジョブをまとめて検討し、なるべく実行開始期限時刻が早く且つ最大実行時間が長いジョブであって、クラウドサービス合計利用時間がなるべく短くなるジョブをオンプレミス環境で実行させる。これにより、より多くのジョブをオンプレミス環境で実行することができ、ジョブの終了デッドライン時刻を守りつつより適切に課金を抑えることができる。 As described above, the job management device according to this embodiment considers two or more jobs together and executes in an on-premises environment the job with the earliest possible execution start deadline and the longest possible maximum execution time, which will result in the shortest possible total cloud service usage time. This allows more jobs to be executed in an on-premises environment, and makes it possible to more appropriately reduce charges while still meeting job end deadlines.

(ハードウェア構成)
図12は、ジョブ管理装置のハードウェア構成図である。次に、図12を参照して、ジョブ管理装置10の各機能を実現するためのハードウェア構成の一例について説明する。
(Hardware configuration)
12 is a diagram showing a hardware configuration of the job management apparatus 10. Next, an example of a hardware configuration for realizing each function of the job management apparatus 10 will be described with reference to FIG.

図12に示すように、ジョブ管理装置10は、例えば、CPU(Central Processing Unit)91、メモリ92、ハードディスク93及びネットワークインタフェース94を有する。CPU91は、バスを介して、メモリ92、ハードディスク93及びネットワークインタフェース94に接続される。 As shown in FIG. 12, the job management device 10 has, for example, a CPU (Central Processing Unit) 91, a memory 92, a hard disk 93, and a network interface 94. The CPU 91 is connected to the memory 92, the hard disk 93, and the network interface 94 via a bus.

ネットワークインタフェース94は、ジョブ管理装置10と外部装置との間の通信のためのインタフェースである。ネットワークインタフェース94は、例えば、利用者端末装置20、オンプレミス計算装置30及びクラウド計算装置40とCPU91との間の通信を中継する。 The network interface 94 is an interface for communication between the job management device 10 and an external device. The network interface 94 relays communication between the CPU 91 and, for example, the user terminal device 20, the on-premise computing device 30, and the cloud computing device 40.

ハードディスク93は、補助記憶装置である。ハードディスク93は、図1に例示した、ジョブ管理テーブル12及びジョブ実行履歴テーブル14を格納する。また、ハードディスク93は、図1に例示した、受付部11、ジョブ実行管理部13及び請求額算出部15の機能を実現するプログラムを格納する。 The hard disk 93 is an auxiliary storage device. The hard disk 93 stores the job management table 12 and the job execution history table 14 illustrated in FIG. 1. The hard disk 93 also stores programs that realize the functions of the reception unit 11, the job execution management unit 13, and the billing amount calculation unit 15 illustrated in FIG. 1.

メモリ92は、主記憶装置である。メモリ92は、例えば、DRAM(Dynamic Random Access Memory)を用いることができる。 Memory 92 is a main storage device. Memory 92 may be, for example, a dynamic random access memory (DRAM).

CPU91は、ハードディスク93から各種プログラムを読み出して、メモリ92に展開して実行する。これにより、CPU91は、図1に例示した、受付部11、ジョブ実行管理部13及び請求額算出部15の機能を実現する。 The CPU 91 reads various programs from the hard disk 93, expands them into the memory 92, and executes them. In this way, the CPU 91 realizes the functions of the reception unit 11, the job execution management unit 13, and the billing amount calculation unit 15 illustrated in FIG. 1.

1 ハイブリッドHPCシステム
10 ジョブ管理装置
11 受付部
12 ジョブ管理テーブル
13 ジョブ実行管理部
14 ジョブ実行履歴テーブル
15 請求額算出部
20 利用者端末装置
30 オンプレミス計算装置
40 クラウド計算装置
REFERENCE SIGNS LIST 1 Hybrid HPC system 10 Job management device 11 Reception unit 12 Job management table 13 Job execution management unit 14 Job execution history table 15 Billing amount calculation unit 20 User terminal device 30 On-premise computing device 40 Cloud computing device

Claims (7)

オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムを制御するジョブ管理プログラムであって、
第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、
前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、
前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ、前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブを前記オンプレミス計算装置に割り当てる
処理をコンピュータに実行させることを特徴とするジョブ管理プログラム。
A job management program for controlling a hybrid system including an on-premise computing device operating in an on-premise environment and a cloud computing device operating in a billing cloud environment, comprising:
When the first job, the second job, and the third job are executed in this order,
Initiating execution of the first job on the on-premise computing device;
and if neither the second job nor the third job is completed by a respective end deadline time that is predetermined to be executed after the other job is executed after the first job is completed, and if an expected execution time of the second job is shorter than an expected execution time of the third job, the second job is assigned to the cloud computing device and the third job is assigned to the on-premise computing device.
前記第1ジョブの実行完了後に前記第3ジョブを前記オンプレミス計算装置に実行させ、
前記第2ジョブの終了デッドライン時刻までに前記第2ジョブを終わらせるための実行開始期限時刻までに前記第3ジョブの実行が完了した場合、前記第3ジョブの実行完了後に前記第2ジョブを前記オンプレミス計算装置に実行させる
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載のジョブ管理プログラム。
causing the on-premise computing device to execute the third job after completion of execution of the first job;
2. The job management program according to claim 1, further comprising: causing the computer to execute a process of causing the on-premise computing device to execute the second job after completion of the third job, when execution of the third job is completed by an execution start deadline time for finishing the second job by an end deadline time of the second job.
前記第1ジョブ、前記第2ジョブ及び前記第3ジョブのそれぞれの最大実行時間及び終了デッドライン時刻を取得し、前記最大実行時間及び前記実行予想時間を基に、前記第1ジョブの実行完了後に前記第3ジョブの実行を開始すると、予め決められた前記第3ジョブの終了デットライン時刻までに前記第3ジョブの実行が完了しないか否かを判定する処理を前記コンピュータに実行させることを特徴とする請求項1に記載のジョブ管理プログラム。 The job management program according to claim 1, characterized in that the computer is caused to execute a process of acquiring the maximum execution time and the end deadline time of each of the first job, the second job, and the third job, and determining, based on the maximum execution time and the predicted execution time, whether or not the execution of the third job will be completed by a predetermined end deadline time of the third job if the execution of the third job is started after the execution of the first job is completed. 前記第1ジョブ、前記第2ジョブ及び前記第3ジョブのそれぞれについて、同種のジョブの過去の実行結果に基づく前記最大実行時間と実際の実行結果との比率を表す実行時間予測係数を前記最大実行時間に乗算してそれぞれの前記実行予想時間を算出し、算出した前記実行予想時間を基に、前記第1ジョブの実行完了後に前記第3ジョブの実行を開始すると、予め決められた前記第3ジョブの終了デットライン時刻までに前記第3ジョブの実行が完了しないか否かを判定する処理を前記コンピュータに実行させることを特徴とする請求項3に記載のジョブ管理プログラム。 The job management program according to claim 3, characterized in that the computer is caused to execute a process of calculating the predicted execution time for each of the first job, the second job, and the third job by multiplying the maximum execution time by an execution time prediction coefficient that represents the ratio between the maximum execution time based on past execution results of the same type of job and the actual execution result, and determining whether or not the execution of the third job will be completed by a predetermined deadline for the end of the third job if the execution of the third job is started after the execution of the first job is completed, based on the calculated predicted execution time. 前記第2ジョブ及び前記第3ジョブについてそれぞれの最大実行時間及び終了デッドライン時刻を取得し、
前記第2ジョブ及び前記第3ジョブについて前記終了デッドライン時刻から前記最大実行時間を減算してそれぞれの実行開始期限時刻を算出し、
前記第2ジョブ及び前記第3ジョブについてそれぞれの実行結果である実行時間を取得し、
前記実行開始期限時刻を基に前記第2ジョブ及び前記第3ジョブそれぞれが順に行われた場合に前記クラウド計算装置で実行されるジョブを特定し、特定したジョブの前記実行時間で前記クラウド計算装置の使用料の合計金額を按分して前記第2ジョブ及び前記第3ジョブについてそれぞれの前記クラウド計算装置の使用料を算出する
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載のジョブ管理プログラム。
obtaining a maximum execution time and a deadline for completion of each of the second job and the third job;
calculating an execution start deadline time for each of the second job and the third job by subtracting the maximum execution time from the end deadline time;
acquiring execution times, which are execution results, for the second job and the third job,
2. The job management program according to claim 1, further comprising: identifying a job to be executed on the cloud computing device when the second job and the third job are executed in sequence based on the execution start deadline time; and calculating a usage fee of the cloud computing device for each of the second job and the third job by prorating a total amount of usage fees of the cloud computing device based on the execution time of the identified job.
オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムにおけるジョブ管理方法であって、
ジョブ管理装置が、
第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、
前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、
前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブをオンプレミス計算装置に割り当てる
ことを特徴とするジョブ管理方法。
A job management method in a hybrid system including an on-premise computing device operating in an on-premise environment and a cloud computing device operating in a billing cloud environment, comprising:
A job management device
When the first job, the second job, and the third job are executed in this order,
Initiating execution of the first job on the on-premise computing device;
and when neither the second job nor the third job is completed by a respective end deadline time that is predetermined to be executed after the other job is executed after the first job is completed, if an expected execution time of the second job is shorter than an expected execution time of the third job, the second job is assigned to the cloud computing device and the third job is assigned to an on-premise computing device.
オンプレミス環境で動作するオンプレミス計算装置、課金クラウド環境で動作するクラウド計算装置及びジョブ管理装置を含むハイブリッドシステムであって、
前記ジョブ管理装置は、
第1ジョブ、第2ジョブ及び第3ジョブを順に受け付ける受付部と、
前記受付部による受け付け順に前記第1ジョブ、前記第2ジョブ及び前記第3ジョブを逐次実行する際、前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブをオンプレミス計算装置に割り当てるジョブ実行管理部と
を備えたことを特徴とするジョブ管理装置。
A hybrid system including an on-premise computing device operating in an on-premise environment, a cloud computing device operating in a billing cloud environment, and a job management device,
The job management device includes:
a reception unit that sequentially receives the first job, the second job, and the third job;
and a job execution management unit that, when sequentially executing the first job, the second job, and the third job in an order of acceptance by the acceptance unit, starts execution of the first job on the on-premises computing device, and, when neither the second job nor the third job is completed by a respective end deadline time that is predetermined to be executed after the other job is executed after the first job is completed, assigns the second job to the cloud computing device and assigns the third job to an on-premises computing device if an expected execution time of the second job is shorter than an expected execution time of the third job.
JP2023081840A 2023-05-17 2023-05-17 Job management program, job management method, and job management device Pending JP2024165558A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023081840A JP2024165558A (en) 2023-05-17 2023-05-17 Job management program, job management method, and job management device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023081840A JP2024165558A (en) 2023-05-17 2023-05-17 Job management program, job management method, and job management device

Publications (1)

Publication Number Publication Date
JP2024165558A true JP2024165558A (en) 2024-11-28

Family

ID=93608822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023081840A Pending JP2024165558A (en) 2023-05-17 2023-05-17 Job management program, job management method, and job management device

Country Status (1)

Country Link
JP (1) JP2024165558A (en)

Similar Documents

Publication Publication Date Title
CN112783659B (en) Resource allocation method, device, computer equipment and storage medium
CN110389816B (en) Method, apparatus and computer readable medium for resource scheduling
KR100509794B1 (en) Method of scheduling jobs using database management system for real-time processing
CN110991808B (en) Task allocation method and device
CN109766172B (en) Asynchronous task scheduling method and device
CN110096353A (en) Method for scheduling task and device
US20100153957A1 (en) System and method for managing thread use in a thread pool
CN113205235B (en) Customer service dispatching method and device
CN111776896B (en) Elevator dispatching method and device
CN118227289A (en) Task scheduling method, device, electronic equipment, storage medium and program product
CN105824705B (en) A task assignment method and electronic device
WO2020211358A1 (en) Database scheduling method and apparatus, and computer device and storage medium
RU2696299C2 (en) Control when initiating elementary tasks on server platform
CN109189581B (en) A job scheduling method and device
JP2024165558A (en) Job management program, job management method, and job management device
CN104735134B (en) A kind of method and apparatus serviced for providing calculating
CN116258304A (en) Task allocation method and device, electronic equipment and storage medium
JP5867215B2 (en) Information processing apparatus, information processing method, and information processing program
CN108121598A (en) Socket buffer resource management and device
CN113986097A (en) Task scheduling method and device and electronic equipment
US7865903B2 (en) Processing messages of agents
CN110197314B (en) A scheduling method and device
CN113204434B (en) Planned task execution method and device based on k8s and computer equipment
CN117785486B (en) Environment resource allocation method, device, equipment and medium
CN115924657B (en) High-rise building elevator dispatching method, storage medium and equipment for intelligent building

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240906

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20250611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20250611