IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社富士通エフサスの特許一覧

特開2024-165558ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置
<>
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図1
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図2
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図3
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図4
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図5
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図6
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図7
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図8
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図9A
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図9B
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図10
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図11
  • 特開-ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165558
(43)【公開日】2024-11-28
(54)【発明の名称】ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置
(51)【国際特許分類】
   G06F 9/48 20060101AFI20241121BHJP
   G06F 9/50 20060101ALI20241121BHJP
【FI】
G06F9/48 300F
G06F9/50 150A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023081840
(22)【出願日】2023-05-17
(71)【出願人】
【識別番号】598057291
【氏名又は名称】エフサステクノロジーズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】三吉 郁夫
(57)【要約】
【課題】ジョブの終了デッドライン時刻を守りつつ課金を抑えることができるジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置を提供する。
【解決手段】オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムを制御するジョブ管理プログラムであって、第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、第1ジョブの実行をオンプレミス計算装置に開始させ、第2ジョブ及び第3ジョブのいずれも、第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、第2ジョブの実行時間が第3ジョブの実行時間より短かければ第2ジョブをクラウド計算装置に割り当て、第3ジョブをオンプレミス計算装置に実行させる処理をコンピュータに割り当てる。
【選択図】図5
【特許請求の範囲】
【請求項1】
オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムを制御するジョブ管理プログラムであって、
第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、
前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、
前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ、前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブを前記オンプレミス計算装置に割り当てる
処理をコンピュータに実行させることを特徴とするジョブ管理プログラム。
【請求項2】
前記第1ジョブの実行完了後に前記第3ジョブを前記オンプレミス計算装置に実行させ、
前記第2ジョブの終了デッドライン時刻までに前記第2ジョブを終わらせるための実行開始期限時刻までに前記第3ジョブの実行が完了した場合、前記第3ジョブの実行完了後に前記第2ジョブを前記オンプレミス計算装置に実行させる
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載のジョブ管理プログラム。
【請求項3】
前記第1ジョブ、前記第2ジョブ及び前記第3ジョブのそれぞれの最大実行時間及び終了デッドライン時刻を取得し、前記最大実行時間及び前記実行予想時間を基に、前記第1ジョブの実行完了後に前記第3ジョブの実行を開始すると、予め決められた前記第3ジョブの終了デットライン時刻までに前記第3ジョブの実行が完了しないか否かを判定する処理を前記コンピュータに実行させることを特徴とする請求項1に記載のジョブ管理プログラム。
【請求項4】
前記第1ジョブ、前記第2ジョブ及び前記第3ジョブのそれぞれについて、同種のジョブの過去の実行結果に基づく前記最大実行時間と実際の実行結果との比率を表す実行時間予測係数を前記最大実行時間に乗算してそれぞれの前記実行予想時間を算出し、算出した前記実行予想時間を基に、前記第1ジョブの実行完了後に前記第3ジョブの実行を開始すると、予め決められた前記第3ジョブの終了デットライン時刻までに前記第3ジョブの実行が完了しないか否かを判定する処理を前記コンピュータに実行させることを特徴とする請求項3に記載のジョブ管理プログラム。
【請求項5】
前記第2ジョブ及び前記第3ジョブについてそれぞれの最大実行時間及び終了デッドライン時刻を取得し、
前記第2ジョブ及び前記第3ジョブについて前記終了デッドライン時刻から前記最大実行時間を減算してそれぞれの実行開始期限時刻を算出し、
前記第2ジョブ及び前記第3ジョブについてそれぞれの実行結果である実行時間を取得し、
前記実行開始期限時刻を基に前記第2ジョブ及び前記第3ジョブそれぞれが順に行われた場合に前記クラウド計算装置で実行されるジョブを特定し、特定したジョブの前記実行時間で前記クラウド計算装置の使用料の合計金額を按分して前記第2ジョブ及び前記第3ジョブについてそれぞれの前記クラウド計算装置の使用料を算出する
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載のジョブ管理プログラム。
【請求項6】
オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムにおけるジョブ管理方法であって、
ジョブ管理装置が、
第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、
前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、
前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブをオンプレミス計算装置に割り当てる
ことを特徴とするジョブ管理方法。
【請求項7】
オンプレミス環境で動作するオンプレミス計算装置、課金クラウド環境で動作するクラウド計算装置及びジョブ管理装置を含むハイブリッドシステムであって、
前記ジョブ管理装置は、
第1ジョブ、第2ジョブ及び第3ジョブを順に受け付ける受付部と、
前記受付部による受け付け順に前記第1ジョブ、前記第2ジョブ及び前記第3ジョブを逐次実行する際、前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブをオンプレミス計算装置に割り当てるジョブ実行管理部と
を備えたことを特徴とするジョブ管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置に関する。
【背景技術】
【0002】
近年、テクノロジの進歩にしたがって、扱われるデータのサイズや量は急激に増加している。それに伴い、データを迅速に処理するために処理能力が高いHPC(High Performance Computing)システムに注目が集まっている。
【0003】
HPCシステムは、高価なため各企業が保有する台数が少なく、利用者それぞれが自由に使用できる環境にないため、各利用者が個別に1つのHPCシステムを利用することが多い。複数の利用者により個別に利用される場合、HPCシステムは、投入された各ジョブを逐次実行する。
【0004】
また、HPCシステムには、自社で保有するサーバを用いるオンプレミス環境とともに外部の課金クラウドに配置されたサーバを用いるクラウド環境とを併用してジョブを処理するハイブリッドHPCシステムが存在する。
【0005】
ジョブの結果を利用する業務において納期等の期限が存在する場合、ジョブは、期限から逆算される実行完了期限であるジョブの終了デッドライン時刻を遵守することが求められる。従来、バッチ処理のジョブスケジューラはfirst-come first-servedの考え方が基本である。そこで、固定の計算機設備下で納期を短縮するために、納期が近いなどなるべく早く処理すべき対象ジョブを優先扱いして、先行ジョブを追い越す又は停めることが行われていた。
【0006】
これに対して、近年クラウドサービスが広まり、使用料さえ支払えば、走行中ジョブを停めることなく速やかに他のジョブを実行することが可能となった。クラウドサービスとオンプレミス環境の計算機設備とを併用するハイブリッドHPCシステムでは、作業納期とクラウドサービス使用料とをバランスよく最適化することが望ましい。
【0007】
なお、オンプレミス環境、プライベートクラウド環境、パブリッククラウド環境を含むリソースについて、各リソースへの配置時の削減可能コストを用いてアプリケーションに対するリソースの配置先を適正化する管理サーバの技術が提案されている。また、パブリッククラウドとオンプレミスデータセンタとの両者の稼働状況を参照しつつタスク管理を行うコンテナ実行管理システムが提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2021-60745号公報
【特許文献2】特開2022-144518号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、単に削減可能コストを考慮して配置先リソースを決定する場合、作業納期を守ることが困難となる場合が存在する。また、クラウド環境とオンプレミス環境との作業状況を参照してタスク管理を行う場合、コストが考慮されておらず実運用においてリソースを適切に配置することは困難である。
【0010】
開示の技術は、上記に鑑みてなされたものであって、ジョブの終了デッドライン時刻を守りつつ課金を抑えることができるジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示するジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置の一つの態様において、ジョブ管理プログラムは、オンプレミス環境で動作するオンプレミス計算装置と課金クラウド環境で動作するクラウド計算装置とを含むハイブリッドシステムを制御する。そして、ジョブ管理プログラムは、第1ジョブ、第2ジョブ及び第3ジョブの順に逐次実行する際、前記第1ジョブの実行を前記オンプレミス計算装置に開始させ、前記第2ジョブ及び前記第3ジョブのいずれも、前記第1ジョブの実行完了後に他方が実行された後に実行されると予め決められたそれぞれの終了デットライン時刻までに実行が完了しない場合、前記第2ジョブの実行予想時間が前記第3ジョブの実行予想時間より短かければ、前記第2ジョブを前記クラウド計算装置に割り当て、前記第3ジョブを前記オンプレミス計算装置に割り当てる処理をコンピュータに実行させる。
【発明の効果】
【0012】
1つの側面では、本発明は、ジョブの終了デッドライン時刻を守りつつ課金を抑えることができる。
【図面の簡単な説明】
【0013】
図1図1は、実施例に係るハイブリッドHPCシステムのブロック図である。
図2図2は、ジョブ管理テーブルの一例を示す図である。
図3図3は、ジョブ実行履歴テーブルの一例を示す図である。
図4図4は、ジョブ実行処理の全体を示すフローチャートである。
図5図5は、実施例1に係るジョブ管理装置によるリソース選択実行処理のフローチャートである。
図6図6は、実施例1に係るジョブ管理装置による請求額算出処理のフローチャートである。
図7図7は、ジョブの投入順に逐次実行する場合と実施例1に係るジョブ管理装置がジョブを実行する場合との実行状況を示す図である。
図8図8は、実施例2に係るジョブ管理装置によるジョブの実行状況の一例を示す図である。
図9A図9Aは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第1フローチャートである。
図9B図9Bは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第2フローチャートである。
図10図10は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行結果の比較を示す図である。
図11図11は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行状況の比較を示す図である。
図12図12は、ジョブ管理装置のハードウェア構成図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示するジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置が限定されるものではない。
【実施例0015】
図1は、実施例に係るハイブリッドHPCシステムのブロック図である。ハイブリッドHPCシステム1は、ジョブ管理装置10、利用者端末装置20、オンプレミス計算装置30及びクラウド計算装置40を有する。ジョブ管理装置10は、複数の利用者端末装置20、オンプレミス計算装置30及びクラウド計算装置40とネットワークで接続される。
【0016】
利用者端末装置20は、複数存在する。例えば、ハイブリッドHPCシステム1が企業保有のシステムであれば、利用者端末装置20は、各部署が保有する端末装置等であり、それぞれの部署の従業員により使用される。利用者端末装置20は、実行させるジョブをジョブ管理装置10へ送信する。ジョブはオンプレミス計算装置30又はクラウド計算装置40のいずれでも実行可能であるが、ジョブの実行を要求する利用者としては、使用料が安いことからなるべくオンプレミス計算装置30でジョブが実行されることが好ましい。
【0017】
オンプレミス計算装置30は、ハイブリッドHPCシステム1を保有する組織が有するオンプレミス環境で動作する高性能計算機である。オンプレミス計算装置30は、例えばスーパーコンピュータである。オンプレミス計算装置30は1台であってもよいし、複数台であってもよい。
【0018】
オンプレミス計算装置30は、ジョブ管理装置10からのジョブの実行命令を受けて、入力されたジョブを実行する。ジョブ実行後に、オンプレミス計算装置30は、ジョブの実行結果とともに実行完了の通知をジョブ管理装置10へ送信する。
【0019】
クラウド計算装置40は、ハイブリッドHPCシステム1を保有する組織の外のクラウド環境で動作する高性能計算機である。クラウド計算装置40は、例えばスーパーコンピュータである。クラウド計算装置40は1台であってもよいし、複数台であってもよい。
【0020】
クラウド計算装置40は、ジョブ管理装置10からのジョブの実行命令を受けて、入力されたジョブを実行する。ジョブ実行後に、クラウド計算装置40は、ジョブの実行結果とともに実行完了の通知をジョブ管理装置10へ送信する。
【0021】
ジョブ管理装置10は、例えば、サーバ装置である。ジョブ管理装置10は、各利用者端末装置20から投入されたジョブを受信する。そして、ジョブ管理装置10は、投入された各ジョブを逐次実行するためのスケジューリングを行う。この際、ジョブ管理装置10は、利用者により指定された最大実行時間及び終了デッドライン時刻を守り且つオンプレミス計算装置30及びクラウド計算装置40の使用料を考慮する。そして、ジョブ管理装置10は、ジョブ毎に実行する装置としてオンプレミス計算装置30又はクラウド計算装置40のいずれかを選択する。その後、ジョブ管理装置10は、スケジューリングにしたがって、各ジョブをオンプレミス計算装置30又はクラウド計算装置40に実行させる。その後、ジョブ管理装置10は、ジョブの実行結果を各利用者端末装置20へ送信する。さらに、ジョブ管理装置10は、使用料を各利用者端末装置20に通知して使用料の請求を行う。
【0022】
以下に、ジョブ管理装置10の詳細について説明する。ジョブ管理装置10は、図1に示すように、受付部11、ジョブ管理テーブル12、ジョブ実行管理部13、ジョブ実行履歴テーブル14及び請求額算出部15を有する。
【0023】
受付部11は、利用者により投入されたジョブを利用者端末装置20から受信する。ここで、投入されたジョブには、最大実行時間及び終了デッドライン時刻の情報が付加されている。最大実行時間は、投入されたジョブを実行する時間の上限値であり、投入されたジョブの実行が開始されてから最大実行時間が経過するとジョブの実行が終了し、それまでに得られた結果が実行結果とされる。また、終了デッドライン時刻は、利用者が求めるジョブ実行完了の期限であり、例えば、作業納期からの逆算で求められる。ジョブ管理装置10は、終了デッドライン時刻までにジョブの実行を完了することが求められる。すなわち、終了デッドライン時刻から最大実行時間を減算した時刻が、そのジョブの実行開始の最終期限である実行開始期限時刻となる。
【0024】
次に、受付部11は、受信したジョブをジョブ管理テーブル12に登録する。例えば、受付部11は、ジョブ管理テーブル12に新たにジョブ管理レコードを追加して、追加したジョブ管理レコードにジョブ投入時刻、ジョブ投入者の指定した最大実行時間及び終了デッドライン時刻を登録する。さらに、受付部11は、終了デッドライン時刻から最大実行時間を減算して実行開始期限時刻を算出する。次に、受付部11は、算出した実行開始期限時刻を追加したジョブ管理レコードに登録する。また、受付部11は、追加したジョブ管理レコードにおける実行状態の欄に、そのジョブが実行前であることを示す「実行開始待ち」の情報を登録する。
【0025】
図2は、ジョブ管理テーブルの一例を示す図である。図2に示すように、ジョブ管理テーブル12は、投入されたジョブ毎に各行で表されるジョブ管理レコードを有する。そして、ジョブ管理レコードには、ジョブ投入時刻、最大実行時間、終了デッドライン時刻、実行開始期限時刻及び実行状態が登録される。ジョブ管理レコードは、ジョブの投入時に受付部11により生成され且つ受付部11によりジョブID(Identifier)が割り当てられ、さらに、ジョブ投入時刻、最大実行時間、終了デッドライン時刻及び実行開始期限時刻が登録される。また、ジョブ管理テーブル12における実行状態は、そのジョブ管理レコードに登録されたジョブIDが割り当てられたジョブが実行前か、実行中か又は実行後かを示す情報である。実行状態は、ジョブ管理レコードの作成当初は受付部11により実行開始待ちと登録され、その後、ジョブの実行状態に応じてジョブ実行管理部13により情報が更新される。以下では、実行状態が実行開始待ちのジョブを「実行開始待ちジョブ」と呼び、実行状態が実行中のジョブを「実行中ジョブ」と呼び、実行状態が実行終了のジョブを「実行終了ジョブ」と呼ぶ。
【0026】
ジョブ実行管理部13は、オンプレミス計算装置30によるジョブの実行が終了して空きが発生すると以下のリソース選択実行処理を実行する。オンプレミス計算装置30は、実行するジョブが存在する状態で空いていればいずれかのジョブが投入されるため、ジョブが存在すればオンプレミス計算装置30は連続してジョブを実行することになる。ジョブ実行管理部13は、ジョブ管理テーブル12を確認して、ジョブ管理テーブル12に登録された実行開始待ちジョブの情報を取得して列挙する。実行開始待ちジョブが1つもジョブ管理テーブル12に登録されていなければ、ジョブ実行管理部13は、ジョブのスケジューリング処理を終了する。
【0027】
実行開始待ちジョブが1つの場合、ジョブ実行管理部13は、そのジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、そのジョブをオンプレミス計算装置30に投入して、そのジョブの実行をオンプレミス計算装置30に指示する。
【0028】
また、実行開始待ちジョブが複数の場合、ジョブ実行管理部13は、実行開始待ちジョブをジョブ投入順にソートする。ここでは、ソートされて並べられた実行開始待ちジョブのうち先頭のジョブを「第1の実行候補ジョブ」と呼び、先頭から2番目のジョブを「第2の実行候補ジョブ」と呼ぶ。
【0029】
ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間を現在時刻に加算した結果を第1の実行候補ジョブの実行終了予想時刻とする。次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行終了予想時刻と第2の実行候補ジョブの実行開始期限時刻とを比較する。第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻以前であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30に投入して、第1の実行候補ジョブの実行をオンプレミス計算装置30に指示する。
【0030】
第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅ければ、ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間と第2の実行候補ジョブの最大実行時間とを比較する。
【0031】
第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間以上であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30に投入して、第1の実行候補ジョブの実行をオンプレミス計算装置30に指示する。
【0032】
逆に、第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間より短ければ、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてクラウド計算装置40を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをクラウド計算装置40に投入して、第1の実行候補ジョブの実行をクラウド計算装置40に指示する。
【0033】
その後、ジョブ実行管理部13は、オンプレミス計算装置30に空きが発生するまで待機する。ジョブ実行管理部13は、待機中に実行開始待ち状態ジョブの実行開始期限時刻に到達するか否かを監視する。待機中に実行開始待ち状態ジョブの実行開始期限時刻に達しなければ、ジョブ実行管理部13は、上述したリソース選択実行処理を実行する。これに対して、待機中に実行開始待ち状態ジョブの実行開始期限時刻が到来した場合、ジョブ実行管理部13は、以下のクラウド利用実行処理を実行する。
【0034】
ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブを実行させるクラウド計算装置40を選択する。そして、ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブをクラウド計算装置40に投入して、そのジョブの実行をクラウド計算装置40に指示する。
【0035】
ジョブ実行管理部13は、オンプレミス計算装置30又はクラウド計算装置40のいずれにジョブを実行させた場合でも、以下の処理を実行する。ジョブ実行管理部13は、ジョブの実行開始時に、ジョブ管理テーブル12の実行を開始したジョブに対応するジョブ管理レコードの実行状態を実行中に変更する。さらに、ジョブ実行管理部13は、ジョブ実行履歴テーブル14にジョブ実行履歴レコードを追加する。そして、ジョブ実行管理部13は、実行を開始したジョブのジョブIDを追加したジョブ実行履歴レコードに登録し、且つ、選択した実行場所、ジョブの実行の識別情報として割り当てた実行ID及び実行開始時刻を登録する。
【0036】
また、ジョブ実行管理部13は、ジョブの実行終了の通知をオンプレミス計算装置30又はクラウド計算装置40から受けると、ジョブ管理テーブル12の実行を終了したジョブに対応するジョブ管理レコードの実行状態を実行終了に変更する。さらに、ジョブ実行管理部13は、ジョブ実行履歴テーブル14の実行を終了したジョブに対応するジョブ実行履歴レコードに実行時間を登録する。また、クラウド計算装置40によりそのジョブが実行された場合、ジョブ実行管理部13は、予め決められた算出方法に基づいて、そのジョブの実行によるクラウドサービス使用料を算出する。そして、ジョブ実行管理部13は、実行を終了したジョブに対応するジョブ実行履歴レコードにクラウドサービス使用料を登録する。
【0037】
ここで、図2の状態121は、ジョブIDが#1のジョブが実行中であり、ジョブIDが#2及び#3のジョブが実行開始待ちの状態のジョブ管理テーブル12である。例えば、以下では、ジョブIDが#1~#3のジョブをそれぞれ、ジョブ#1~#3」と呼ぶ。ジョブ#2及び#3が実行開始待ちの状態でジョブ#1の実行が開始されると、ジョブ実行管理部13は、ジョブ管理テーブル12を状態121に遷移させる。
【0038】
また、図2の状態122は、ジョブ#1の実行が終了して、ジョブ#2及び#3が実行中の状態のジョブ管理テーブル12である。例えば、ジョブ#1の実行が終了しジョブ#2~#3が実行されると、ジョブ実行管理部13は、ジョブ管理テーブル12を状態122に遷移させる。
【0039】
図3は、ジョブ実行履歴テーブルの一例を示す図である。ジョブが無い状態からオンプレミス計算装置30によりジョブ#1の実行が開始されると、ジョブ実行管理部13は、ジョブ実行履歴テーブル14にジョブ#1のジョブ実行履歴レコードを追加する。さらに、ジョブ実行管理部13は、ジョブ#1のジョブ実行履歴レコードに、実行場所としてオンプレミス計算装置30を登録し、且つ、実行ID及び実行開始時刻を登録して、ジョブ実行履歴テーブル14を状態141に遷移させる。
【0040】
ここで、ジョブ実行履歴テーブル14におけるクラウドサービス利用必要フラグは、そのジョブの実行にクラウドサービスを利用しなくてもよかったかどうかを示す情報であり、後述する請求額算出部15により登録される。
【0041】
また、状態141からジョブ#2がクラウド計算装置40で実行され且つジョブ#3がオンプレミス計算装置30で実行されると、ジョブ実行管理部13は、ジョブ#2及び#3のジョブ実行履歴レコードを追加する。その後、ジョブ#1~#3の実行が完了すると、ジョブ実行管理部13は、それぞれの実行時間及びクラウドサービス使用料を登録して、ジョブ実行履歴テーブル14を状態142に遷移させる。
【0042】
請求額算出部15は、全てのジョブの実行が完了して実行開始待ちジョブがなくなった場合等をクラウドサービス使用料の請求額計算時として、以下の請求額算出処理を実行する。請求額算出部15は、ジョブ実行履歴テーブル14に登録されたクラウドサービス使用料の合計値を算出する。
【0043】
次に、請求額算出部15は、ジョブ実行履歴テーブル14に登録された実行終了状態のジョブをジョブ投入順にソートする。次に、請求額算出部15は、ソート結果の先頭のジョブのジョブ投入時刻をジョブ管理テーブル12から取得して、オンプレミス計算装置30の利用開始可能時刻の初期値として設定する。次に、請求額算出部15は、クラウドサービス合計利用時間見積値の初期値である0に設定する。
【0044】
次に、請求額算出部15は、ソートしたジョブの各ジョブについてソート順に前から以下の処理を実行する。ここでは、処理の対象とするジョブを対象ジョブと呼ぶ。請求額算出部15は、対象ジョブの実行開始期限時刻をジョブ管理テーブル12から取得して、その時点でのオンプレミス計算装置30の利用開始可能時刻と比較する。
【0045】
対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻より早い場合、請求額算出部15は、ジョブ実行履歴テーブル14における対象ジョブのジョブ実行履歴レコードにおけるクラウドサービス利用必要フラグの値として「該当」を登録する。次に、請求額算出部15は、クラウドサービス合計利用時間見積値に対象ジョブの実行時間を加算する。
【0046】
逆に、対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻以降の場合、ジョブ実行履歴テーブル14における対象ジョブのジョブ実行履歴レコードにおけるクラウドサービス利用必要フラグの値として「非該当」を登録する。次に、請求額算出部15は、オンプレミス計算装置30の利用開始可能時刻に対象ジョブの実行時間を加算してオンプレミス計算装置30の利用開始可能時刻を更新する。
【0047】
例えば、ジョブ#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に遷移させる。
【0048】
請求額算出部15は、ソートした全てのジョブについて以上の処理を行った後、クラウドサービス利用必要フラグの値が「該当」とされたジョブのそれぞれについて、実行時間をクラウドサービス合計利用時間見積値で除算する。そして、請求額算出部15は、クラウドサービス使用料合計値に除算結果を乗じて、クラウドサービス利用必要フラグの値が「該当」とされたジョブのそれぞれのクラウドサービス使用料請求額を算出する。
【0049】
その後、請求額算出部15は、クラウドサービス利用必要フラグの値が「該当」とされたジョブの投入元の利用者端末装置2に算出したクラウドサービス使用料請求額を通知する。また、請求額算出部15は、クラウドサービス利用必要フラグの値が「非該当」とされたジョブの投入元の利用者端末装置2にはオンプレミス計算装置30の使用料請求額を通知する。
【0050】
図4は、ジョブ実行処理の全体を示すフローチャートである。次に、図4を参照して、ハイブリッドHPCシステム1におけるジョブ実行処理の全体的な流れを説明する。
【0051】
ジョブ管理装置10は、オンプレミス計算装置30に空きが発生したか否かを判定する(ステップS1)。
【0052】
オンプレミス計算装置30に空きが発生した場合(ステップS1:肯定)、ジョブ管理装置10は、リソース選択実行処理を実行する(ステップS2)。
【0053】
これに対して、オンプレミス計算装置30に空きが発生していない場合(ステップS1:否定)、ジョブ管理装置10は、実行開始期限時刻が到来した実行開始待ちジョブが存在するか否かを判定する(ステップS3)。実行開始期限時刻が到来した実行開始待ちジョブが存在しない場合(ステップS3:否定)、ジョブ実行処理は、ステップS1へ戻る。
【0054】
これに対して、実行開始期限時刻が到来した実行開始待ちジョブが存在する場合(ステップS3:肯定)、ジョブ管理装置10は、クラウド利用実行処理を実行する(ステップS4)。具体的には、ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブを実行させるクラウド計算装置40を選択する。そして、ジョブ実行管理部13は、実行開始期限時刻が到来した実行開始待ちジョブをクラウド計算装置40に投入して、そのジョブの実行をクラウド計算装置40に指示する。
【0055】
その後、ジョブ管理装置10は、シャットダウンの指示の有無等に基づいて動作を終了するか否かを判定する(ステップS5)。動作を継続する場合(ステップS5:否定)、ジョブ実行処理は、ステップS1へ戻る。
【0056】
これに対して、動作を終了する場合(ステップS5:肯定)、ジョブ管理装置10は、ジョブ実行処理を終了する。
【0057】
図5は、実施例1に係るジョブ管理装置によるリソース選択実行処理のフローチャートである。図5に示したフローは、図4のステップS2で実行される処理の一例にあたる。次に、図5を参照して、本実施例に係るジョブ管理装置10によるリソース選択実行処理の流れを説明する。
【0058】
ジョブ実行管理部13は、ジョブ管理テーブル12を参照して、実行開始待ちジョブを列挙する(ステップS101)。
【0059】
次に、ジョブ実行管理部13は、実行開始待ちジョブが1つ以上存在するか否かを判定する(ステップS102)。実行開始待ちジョブが1つも存在しない場合(ステップS102:否定)、ジョブ実行管理部13は、リソース選択実行処理を終了する。
【0060】
これに対して、実行開始待ちジョブが1つ以上存在する場合(ステップS102:肯定)、ジョブ実行管理部13は、実行開始待ちジョブが1つか否かを判定する(ステップS103)。
【0061】
実行開始待ちジョブが1つの場合(ステップS103:肯定)、ジョブ実行管理部13は、その1つの実行開始待ちジョブを実行させるリソースとしてオンプレミス計算装置30を選択する(ステップS104)。
【0062】
そして、ジョブ実行管理部13は、実行開始待ちジョブをオンプレミス計算装置30で実行させる(ステップS105)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。
【0063】
これに対して、実行開始待ちジョブが複数の場合(ステップS103:否定)、ジョブ実行管理部13は、実行開始待ちジョブを投入順にソートする(ステップS106)。
【0064】
次に、ジョブ実行管理部13は、ソート結果の先頭のジョブである第1の実行候補ジョブの最大実行時間を現在時刻に加算した結果を第1の実行候補ジョブの実行終了予想時刻として算出する(ステップS107)。
【0065】
次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅いか否かを判定する(ステップS108)。
【0066】
第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅い場合(ステップS108:肯定)、ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間より長いか否かを判定する(ステップS109)。
【0067】
第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間より長い場合(ステップS109:肯定)、ジョブ実行管理部13は、第1の実行候補ジョブを実行させるリソースとしてクラウド計算装置40を選択する(ステップS110)。
【0068】
そして、ジョブ実行管理部13は、第1の実行候補ジョブをクラウド計算装置40で実行させる(ステップS111)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。
【0069】
一方、第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻以前の場合(ステップS108:否定)、ジョブ実行管理部13は、以下の処理を実行する。同様に、第1の実行候補ジョブの最大実行時間が第2の実行候補ジョブの最大実行時間以上の場合(ステップS109:否定)も、ジョブ実行管理部13は、以下の処理を実行する。ジョブ実行管理部13は、第1の実行候補ジョブを実行させるリソースとしてオンプレミス計算装置30を選択する(ステップS112)。
【0070】
そして、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30で実行させる(ステップS113)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。
【0071】
図6は、実施例1に係るジョブ管理装置による請求額算出処理のフローチャートである。次に、図6を参照して、本実施例に係るジョブ管理装置10による請求額算出処理の流れを説明する。
【0072】
請求額算出部15は、ジョブ実行履歴テーブル14に登録されたクラウドサービス使用料の合計値を算出する(ステップS201)。
【0073】
次に、請求額算出部15は、ジョブ実行履歴テーブル14に登録された実行終了状態のジョブをジョブ投入順にソートする(ステップS202)。
【0074】
次に、請求額算出部15は、ソート結果の先頭のジョブのジョブ投入時刻をジョブ管理テーブル12から取得して、オンプレミス計算装置30の利用開始可能時刻の初期値として設定する(ステップS203)。
【0075】
次に、請求額算出部15は、クラウドサービス合計利用時間見積値の初期値である0に設定する(ステップS204)。
【0076】
次に、請求額算出部15は、ソート結果の先頭のジョブから連番で1から順に最後のジョブまで番号を割り当てる。ここで、最後のジョブにはNが割り当てられたとする。そして、請求額算出部15は、nを1に設定する(ステップS205)。
【0077】
次に、請求額算出部15は、nがNより大きいか否かを判定する(ステップS206)。
【0078】
nがN以下の場合(ステップS206:否定)、請求額算出部15は、番号nが割り当てられたジョブを対象ジョブとして選択する(ステップS207)。
【0079】
対象ジョブの実行開始期限時刻をジョブ管理テーブル12から取得して、オンプレミス計算装置30の利用開始可能時刻以前か否かを判定する(ステップS208)。
【0080】
対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻以前の場合(ステップS208:肯定)、請求額算出部15は、対象ジョブのクラウドサービス利用必要フラグの値を「該当」に設定する(ステップS209)。
【0081】
次に、請求額算出部15は、クラウドサービス合計利用時間見積値に番号nが割り当てられたジョブの実行時間を加算して更新する(ステップS210)。
【0082】
これに対して、対象ジョブの実行開始期限時刻がオンプレミス計算装置30の利用開始可能時刻より遅い場合(ステップS208:否定)、請求額算出部15は、対象ジョブのクラウドサービス利用必要フラグの値を「非該当」に設定する(ステップS211)。
【0083】
次に、請求額算出部15は、オンプレミス計算装置30の利用開始可能時刻に対象ジョブの実行時間を加算してオンプレミス計算装置30の利用開始可能時刻を更新する(ステップS212)。
【0084】
その後、請求額算出部15は、nを1つインクリメントする(ステップS213)。そして、請求額算出処理は、ステップS206に戻る。これにより、請求額算出部15は、ソートされたジョブの先頭のジョブから最後のジョブまでクラウドサービス利用必要フラグの値を設定することができる。
【0085】
一方、nがNより大きい場合(ステップS206:肯定)、請求額算出部15は、nを1に設定する(ステップS214)。
【0086】
次に、請求額算出部15は、番号nが割り当てられたジョブを対象ジョブとして選択する(ステップS215)。
【0087】
次に、請求額算出部15は、対象ジョブのクラウドサービス利用必要フラグの値が「該当」であるか否かを判定する(ステップS216)。対象ジョブのクラウドサービス利用必要フラグの値が「非該当」の場合(ステップS216:否定)、請求額算出処理は、ステップS218へ進む。
【0088】
これに対して、対象ジョブのクラウドサービス利用必要フラグの値が「該当」の場合(ステップS216:肯定)、請求額算出部15は、実行時間をクラウドサービス合計利用時間見積値で除算する。そして、請求額算出部15は、クラウドサービス使用料合計値に除算結果を乗じて、対象ジョブのクラウドサービス使用料請求額を算出する(ステップS217)。
【0089】
その後、請求額算出部15は、nがNに達したか否かを判定する(ステップS218)。nがN未満の場合(ステップS218:否定)、請求額算出部15は、nを1つインクリメントする(ステップS219)。そして、請求額算出処理は、ステップS215に戻る。
【0090】
これに対して、nがNに達した場合(ステップS218:肯定)、請求額算出部15は、クラウドサービス利用必要フラグの値が「該当」のジョブの送信元の利用者端末装置2へ、そのジョブについてのクラウドサービス使用料請求額を使用料請求額として通知する。また、請求額算出部15は、クラウドサービス利用必要フラグの値が「非該当」とされたジョブの投入元の利用者端末装置2にはオンプレミス計算装置30の使用料請求額を通知する(ステップS220)。
【0091】
図7は、ジョブの投入順に逐次実行する場合と実施例1に係るジョブ管理装置がジョブを実行する場合との実行状況を示す図である。グラフ201及び202は、横軸で時間を表し、縦軸でインスタンスを表す。終了デッドライン時刻211~213は、それぞれジョブ#1~#3のそれぞれの終了デッドライン時刻である。ここでは、1台のオンプレミス計算装置30が1つずつジョブを実行する場合で説明する。
【0092】
グラフ201は、ジョブの投入順に逐次実行する場合の実行結果を示す。斜線パターンを付したジョブの実行が、クラウド計算装置40によるジョブ実行を表す。この場合、オンプレミス計算装置30は、ジョブ#1の実行終了後、ジョブ#2の実行を開始する。そして、ジョブ#2の実行中にジョブ#3の実行開始期限時刻が到来するため、ジョブ#3がクラウド計算装置40により実行される。
【0093】
これに対して、グラフ202が、実施例1に係るジョブ管理装置10によるジョブの実行結果を示す。この場合、ジョブ#1の実行終了後、ジョブ#3の実行時間がジョブ#2の実行時間よりも長いため、ジョブ#2は、クラウド計算装置40により実行される。そして、ジョブ#3は、オンプレミス計算装置30により実行される。
【0094】
このように、本実施例に係るジョブ管理装置10は、実行時間が短いジョブをクラウド計算装置40で実行させ、実行時間が長いジョブをオンプレミス計算装置30で実行させる。これにより、ハイブリッドHPCシステム1における全体的な課金を抑えることが可能となる。
【0095】
以上に説明したように、本実施例に係るジョブ管理装置は、ジョブの実行終了予想時刻が次のジョブの実行開始期限時刻よりも早ければ、そのジョブをオンプレミス環境で実行させる。また、ジョブの最大実行時間が次のジョブの最大実行時間以上であれば、そのジョブをオンプレミス環境で実行させる。逆に、ジョブの実行終了予想時刻が次のジョブの実行開始期限時刻以降であり且つ最大実行時間が次のジョブの最大実行時間より短ければ、ジョブ管理装置は、そのジョブをクラウド環境で実行させる。さらに、オンプレミス環境に空きが無い状態で特定のジョブの指定された終了デッドライン時刻から算出した実行開始期限時刻が到来すると、ジョブ管理装置は、そのジョブをクラウド環境で実行させる。
【0096】
これにより、各ジョブの指定された終了デッドライン時刻を守りつつ、なるべく実行時間が短いジョブをクラウド環境で実行することができる。したがって、ジョブの終了デッドライン時刻を守りつつ課金を抑えることができる。
【0097】
(変形例)
実施例1ではジョブ管理装置10は、最大実行時間を用いてジョブをオンプレミス計算装置30で実行させるかクラウド計算装置40で実行させるかを決定した。ただし、最大実行時間はジョブを完了させるために多めに見積もられた時間であり、実際にはより短い時間で実行が終了することが通常である。そこで、本変形例に係るジョブ管理装置10は、過去のジョブの実行結果から各ジョブの実行時間を予測してオンプレミス計算装置30で実行させるかクラウド計算装置40で実行させるかを決定する。以下に本変形例に係るオンプレミス計算装置30の詳細について説明する。
【0098】
本変形例に係るジョブ実行管理部13は、過去に実行された多数のジョブの実行結果から算出された、ジョブの特徴に応じた実行時間予測係数を予め有する。ジョブの特徴としては、計算の種類や計算回数等が含まれる。
【0099】
ジョブ実行管理部13は、第1の実行候補ジョブの特徴に応じた実行時間予測係数を特定する。そして、ジョブ実行管理部13は、第1の実行候補ジョブの最大実行時間に第1の実行候補ジョブの実行時間予測係数を乗じて、第1の実行候補ジョブの実行予想時間を算出する。次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行予想時間を現在時刻に加算した結果を第1の実行候補ジョブの実行終了予想時刻とする。
【0100】
次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行終了予想時刻と第2の実行候補ジョブの実行開始期限時刻とを比較する。第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻以前であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、第1の実行候補ジョブをオンプレミス計算装置30に投入して、第1の実行候補ジョブの実行をオンプレミス計算装置30に指示する。
【0101】
逆に、第1の実行候補ジョブの実行終了予想時刻が第2の実行候補ジョブの実行開始期限時刻より遅ければ、ジョブ実行管理部13は、第2の実行候補ジョブの特徴に応じた実行時間予測係数を特定する。そして、ジョブ実行管理部13は、第2の実行候補ジョブの最大実行時間に第2の実行候補ジョブの実行時間予測係数を乗じて、第2の実行候補ジョブの実行予想時間を算出する。次に、ジョブ実行管理部13は、第1の実行候補ジョブの実行予想時間と第2の実行候補ジョブの実行予想時間とを比較する。
【0102】
第1の実行候補ジョブの実行予想時間が第2の実行候補ジョブの実行予想時間以上であれば、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてオンプレミス計算装置30を選択する。
【0103】
逆に、第1の実行候補ジョブの実行予想時間が第2の実行候補ジョブの実行予想時間より短ければ、ジョブ実行管理部13は、第1の実行候補ジョブを実行させる装置としてクラウド計算装置40を選択する。
【0104】
以上に説明したように、本変形例に係るジョブ管理装置は、過去のジョブの実行結果に基づいて最大実行時間から各ジョブの実際の実行時間を予測してオンプレミス環境で実行させるかクラウド環境で実行させるかを決定する。最大実行時間は余裕をもって見積もられており、実際の実行時間とは大きな差が存在する場合が多い。そのため、過去のジョブの実行結果に基づいて予測した実行時間の方が現実に即した値と考えることができ、より適切にジョブの実行環境を選択することができる。したがって、ジョブの終了デッドライン時刻を守りつつより適切に課金を抑えることができる。
【実施例0105】
次に、実施例2について説明する。本実施例に係るハイブリッドHPCシステム1も図1で示される。本実施例に係るジョブ管理装置10は、実行開始期限時刻がなるべく近く且つ最大実行時間がなるべく長いジョブをオンプレミス計算装置30で実行させる。そして、ジョブ管理装置10は、実行開始期限時刻までにオンプレミス計算装置30が実行開始待ちジョブを実行可能な状態になると、そのジョブをオンプレミス計算装置30で実行させる。以下に、本実施例に係るジョブ管理装置10によるジョブの実行環境の選択の詳細について説明する。以下の説明では、実施例1と同様の各部の機能については説明を省略する。
【0106】
ジョブ実行管理部13は、オンプレミス計算装置30によるジョブの実行が終了して空きが発生すると以下のリソース選択実行処理を実行する。ジョブ実行管理部13は、ジョブ管理テーブル12を確認して、ジョブ管理テーブル12に登録された実行開始待ちジョブの情報を取得して列挙する。実行開始待ちジョブが1つもジョブ管理テーブル12に登録されていなければ、ジョブ実行管理部13は、ジョブのスケジューリング処理を終了する。
【0107】
実行開始待ちジョブが1つの場合、ジョブ実行管理部13は、そのジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、そのジョブをオンプレミス計算装置30に投入して、そのジョブの実行をオンプレミス計算装置30に指示する。
【0108】
一方、実行開始待ちジョブが複数の場合、ジョブ実行管理部13は、実行開始待ちジョブを実行開始期限時刻の昇順且つ最大実行時間の降順に取得した実行開始待ちジョブをソートする。ここで、ソートされて並べられた実行開始待ちジョブのうち先頭のジョブを「第1の実行候補ジョブ」と呼び、先頭から2番目のジョブを「第2の実行候補ジョブ」と呼ぶ。この後、ジョブ実行管理部13は、実施例1と同様の処理を行う。
【0109】
すなわち、本実施例に係るジョブ実行管理部13は、実行開始期限時刻の昇順且つ最大実行時間の降順に取得した実行開始待ちジョブをソートすることが実施例1のジョブ実行管理部13と異なる。このようなソートを行うことで、ジョブ実行管理部13は、実行開始期限時刻が早いジョブからオンプレミス計算装置30で実行する。さらに、ジョブ実行管理部13は、実行開始期限時刻の遅いジョブを実行開始期限時刻が早いジョブの実行終了後にオンプレミス計算装置30で実行する、もしくは、その前に実行開始期限時刻が到来するとクラウド計算装置40で実行する。
【0110】
図8は、実施例2に係るジョブ管理装置によるジョブの実行状況の一例を示す図である。グラフ203及び204は、横軸で時間を表し、縦軸でインスタンスを表す。終了デッドライン時刻211~213は、それぞれジョブ#1~#3のそれぞれの終了デッドライン時刻である。ここでは、1台のオンプレミス計算装置30が1つずつジョブを実行する場合で説明する。斜線パターンを付したジョブの実行が、クラウド計算装置40によるジョブ実行を表す。
【0111】
グラフ203は、次に実行するジョブの実行開始期限時刻までにオンプレミス計算装置30に空きが発生しない場合の実行結果である。ジョブ#1の実行終了後、ジョブ管理装置10は、ジョブ#2の実行開始期限時刻がジョブ#3の実行開始期限時刻よりも遅いことから、ジョブ#3をオンプレミス計算装置30に実行させる。その後、ジョブ#3が実行中にジョブ#2の実行開始期限時刻が到来すると、ジョブ管理装置10は、グラフ203に示すようにジョブ#2をクラウド計算装置40に実行させる。
【0112】
これに対して、ジョブ#2の実行開始期限時刻以前にジョブ#3の実行が終了すると、その時点で、ジョブ管理装置10は、ジョブ#2に対するリソース選択実行処理を行う。この場合、オンプレミス計算装置30が空いており且つジョブ#2しかないので、ジョブ管理装置10は、ジョブ#2を実行させるリソースとしてオンプレミス計算装置30を選択する。そして、ジョブ管理装置10は、グラフ204に示すようにジョブ#2をオンプレミス計算装置30に実行させる。
【0113】
ここで、以上の説明では、ジョブ実行管理部13は、最大実行時間を用いて各ジョブの実行環境の選択を行った。ただし、ジョブ実行管理部13は、最大実行時間に代えて、最大実行時間に対象のジョブの実行時間予測係数を乗じた結果を用いてもよい。
【0114】
以上に説明したように、本実施例に係るジョブ管理装置は、各ジョブの実行開始期限時刻を待ってその実行開始期限時刻までにオンプレミス環境で実行可能となれば、ジョブをオンプレミス環境で実行し、そうでなければクラウド環境で実行する。これにより、より多くのジョブをオンプレミス環境で実行することができ、ジョブの終了デッドライン時刻を守りつつより適切に課金を抑えることができる。
【実施例0115】
次に、実施例3について説明する。本実施例に係るハイブリッドHPCシステム1も図1で示される。本実施例に係るジョブ管理装置10は、2つ以上のジョブを比べてなるべくクラウド計算装置40の合計利用時間が短くなるようにオンプレミス計算装置30に実行させるジョブを決定する。以下に、本実施例に係るジョブ管理装置10によるジョブの実行環境の選択の詳細について説明する。以下の説明では、実施例1と同様の各部の機能については説明を省略する。ここでは、オンプレミス計算装置30が複数存在しそれぞれが1つずつジョブを逐次実行する場合で説明する。
【0116】
ジョブ実行管理部13は、オンプレミス計算装置30によるジョブの実行が終了して空きが発生すると以下のリソース選択実行処理を実行する。ジョブ実行管理部13は、ジョブ管理テーブル12を確認して、ジョブ管理テーブル12に登録された実行開始待ちジョブの情報を取得して列挙する。実行開始待ちジョブが1つもジョブ管理テーブル12に登録されていなければ、ジョブ実行管理部13は、ジョブのスケジューリング処理を終了する。
【0117】
実行開始待ちジョブが1つの場合、ジョブ実行管理部13は、そのジョブを実行させる装置としてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、そのジョブをオンプレミス計算装置30に投入して、そのジョブの実行をオンプレミス計算装置30に指示する。
【0118】
一方、実行開始待ちジョブが複数の場合、ジョブ実行管理部13は、実行開始待ちジョブを実行開始期限時刻の昇順且つ最大実行時間の降順に取得した実行開始待ちジョブをソートする。
【0119】
ジョブ実行管理部13は、ソート結果の先頭ジョブの最大実行時間を現在時刻に加算した結果を先頭ジョブの実行終了予想時刻とする。また、ジョブ実行管理部13は、オンプレミス計算装置30における実行中ジョブそれぞれについて、実行中ジョブ毎に実行開始時刻に最大実行時間を加算して、加算結果をその実行中ジョブの実行終了予想時刻とする。そして、ジョブ実行管理部13は、先頭ジョブ及びオンプレミス計算装置30における全ての実行中ジョブの実行終了予想時間のうち最速の実行終了予想時間をオンプレミス計算装置30の空き発生予想時刻とする。
【0120】
次に、ジョブ実行管理部13は、ソート結果のジョブのうち実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早いジョブを抽出する。そして、ジョブ実行管理部13は、抽出したジョブをソートの順番で第1~第Nのオンプレミス実行候補ジョブとする。
【0121】
次に、ジョブ実行管理部13は、第1~第Nのオンプレミス実行候補ジョブのそれぞれから順に対象オンプレミス実行候補ジョブを選択して、以下のリソース選択実行処理を実行する。ジョブ実行管理部13は、対象オンプレミス実行候補ジョブの最大実行時間を現在時刻に加算した結果を、オンプレミス計算装置30の利用開始可能予想時刻の初期値とする。また、ジョブ実行管理部13は、クラウドサービス合計利用時間試算値の初期値を0とする。
【0122】
次に、ジョブ実行管理部13は、第1~第Nのオンプレミス実行候補ジョブのうちの対象オンプレミス実行候補ジョブ以外のジョブから番号順に1つずつジョブを選択して、以下の処理を順番に行う。以下では、ジョブ実行管理部13により選択されたジョブを選択ジョブと呼ぶ。ジョブ実行管理部13は、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早い場合、クラウドサービス合計利用時間試算値に選択ジョブの最大実行時間を加算する。これに対して、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻以降の場合、ジョブ実行管理部13は、オンプレミス計算装置30の空き発生予想時刻に選択ジョブの最大実行時間を加算する。
【0123】
これにより、ジョブ実行管理部13は、N通りの対象オンプレミス実行候補ジョブについて、クラウドサービス合計利用時間試算値を算出する。そして、ジョブ実行管理部13は、クラウドサービス合計利用時間試算値の値が最小となるオンプレミス実行候補ジョブを選択する。そして、ジョブ実行管理部13は、選択したオンプレミス実行候補ジョブを実行させるリソースとしてオンプレミス計算装置30を選択する。その後、ジョブ実行管理部13は、選択したオンプレミス実行候補ジョブをオンプレミス計算装置30に投入して、選択したオンプレミス実行候補ジョブをオンプレミス計算装置30に実行させる。
【0124】
図9Aは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第1フローチャートである。また、図9Bは、実施例3に係るジョブ管理装置によるリソース選択実行処理の第2フローチャートである。次に、図9A及び9Bを参照して、本実施例に係るジョブ管理装置10によるリソース選択実行処理の流れを説明する。
【0125】
ジョブ実行管理部13は、ジョブ管理テーブル12を参照して、実行開始待ちジョブを列挙する(ステップS301)。
【0126】
次に、ジョブ実行管理部13は、実行開始待ちジョブが1つ以上存在するか否かを判定する(ステップS302)。実行開始待ちジョブが1つも存在しない場合(ステップS302:否定)、ジョブ実行管理部13は、リソース選択実行処理を終了する。
【0127】
これに対して、実行開始待ちジョブが1つ以上存在する場合(ステップS302:肯定)、ジョブ実行管理部13は、実行開始待ちジョブが1つか否かを判定する(ステップS303)。
【0128】
実行開始待ちジョブが1つの場合(ステップS303:肯定)、ジョブ実行管理部13は、その1つの実行開始待ちジョブを実行させるリソースとしてオンプレミス計算装置30を選択する(ステップS304)。
【0129】
そして、ジョブ実行管理部13は、実行開始待ちジョブをオンプレミス計算装置30で実行させる(ステップS305)。その後、ジョブ実行管理部13は、リソース選択実行処理を終了する。
【0130】
これに対して、実行開始待ちジョブが複数の場合(ステップS303:否定)、ジョブ実行管理部13は、実行開始待ちジョブを実行開始期限時刻の昇順且つ最大実行時間の降順に実行開始待ちジョブをソートする(ステップS306)。
【0131】
次に、ジョブ実行管理部13は、ソート結果の先頭ジョブの最大実行時間を現在時刻に加算して先頭ジョブの実行終了予想時刻を算出する(ステップS307)。
【0132】
また、ジョブ実行管理部13は、オンプレミス計算装置30における実行中ジョブそれぞれについて、実行中ジョブ毎に実行開始時刻に最大実行時間を加算して実行終了予想時刻を算出する(ステップS308)。
【0133】
次に、ジョブ実行管理部13は、先頭ジョブ及びオンプレミス計算装置30における全ての実行中ジョブの実行終了予想時刻のうち最速の実行終了予想時刻をオンプレミス計算装置30の空き発生予想時刻と決定する(ステップS309)。
【0134】
次に、ジョブ実行管理部13は、ソート結果のジョブのうち実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早いジョブを抽出する。そして、ジョブ実行管理部13は、抽出したジョブをソートの順番で第1~第Nのオンプレミス実行候補ジョブと決定する(ステップS310)。
【0135】
次に、ジョブ実行管理部13は、n=1とする(ステップS311)。
【0136】
次に、ジョブ実行管理部13は、第nのオンプレミス実行候補ジョブを対象オンプレミス実行候補ジョブとする(ステップS312)。
【0137】
次に、ジョブ実行管理部13は、対象オンプレミス実行候補ジョブの最大実行時間を現在時刻に加算した結果を、オンプレミス計算装置30の利用開始可能予想時刻の初期値として設定する(ステップS313)。
【0138】
また、ジョブ実行管理部13は、クラウドサービス合計利用時間試算値の初期値を0に設定する(ステップS314)。
【0139】
次に、ジョブ実行管理部13は、第1~第Nのオンプレミス実行候補ジョブのうち第nのオンプレミス実行候補ジョブ以外の最も若番の未選択のジョブを選択ジョブとして1つ選択する(ステップS315)。
【0140】
ジョブ実行管理部13は、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早いか否かを判定する(ステップS316)。
【0141】
選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻より早い場合(ステップS316:肯定)、クラウドサービス合計利用時間試算値に選択ジョブの最大実行時間を加算する(ステップS317)。
【0142】
これに対して、選択ジョブの実行開始期限時刻がオンプレミス計算装置30の空き発生予想時刻以降の場合(ステップS316:否定)、ジョブ実行管理部13は、オンプレミス計算装置30の空き発生予想時刻に選択ジョブの最大実行時間を加算する(ステップS318)。
【0143】
その後、ジョブ実行管理部13は、第nのオンプレミス実行候補ジョブ以外のオンプレミス実行候補ジョブの全てについて検討済みか否かを判定する(ステップS319)。検討していないオンプレミス実行候補ジョブが残っている場合(ステップS319:否定)、リソース選択実行処理は、ステップS315へ戻る。
【0144】
これに対して、第nのオンプレミス実行候補ジョブ以外のオンプレミス実行候補ジョブの全てについて検討済みの場合(ステップS319:肯定)、ジョブ実行管理部13は、次の処理に進む。ジョブ実行管理部13は、n=Nか否か、すなわちオンプレミス実行候補ジョブ全てについて対象オンプレミス実行候補ジョブとして検討済みか否かを判定する(ステップS320)。
【0145】
n=Nでない場合(ステップS320:否定)、ジョブ実行管理部13は、nを1つインクリメントする(ステップS321)。その後、リソース選択実行処理は、ステップS312へ戻る。
【0146】
これに対して、n=Nの場合(ステップS320:肯定)、ジョブ実行管理部13は、
クラウドサービス合計利用時間試算値が最小となるオンプレミス実行候補ジョブを選択する(ステップS322)。
【0147】
その後、ジョブ実行管理部13は、選択したオンプレミス実行候補ジョブをオンプレミス計算装置30に実行させる(ステップS323)。
【0148】
図10は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行結果の比較を示す図である。ここでは、図10に示すジョブ管理テーブル12に登録されたジョブ#11~#13を実行する場合で説明する。
【0149】
実施例2に係るジョブ管理装置10を用いてジョブを実行した場合の実行結果を示すジョブ実行履歴テーブル14は、状態301のようになる。また、実施例3に係るジョブ管理装置10を用いてジョブを実行した場合の実行結果を示すジョブ実行履歴テーブル14は、状態302のようになる。この場合、実施例3に係るジョブ管理装置10を用いてジョブを実行した場合の方が、実施例2に係るジョブ管理装置10を用いてジョブを実行した場合に比べて、クラウドサービス使用料の合計額が16.4から15.2に減少する。すなわち、より適切に課金を抑えることができる。
【0150】
図11は、実施例2に係るジョブ管理装置と実施例3に係るジョブ管理装置との実行状況の比較を示す図である。グラフ303及び304は、横軸で時間を表し、縦軸でインスタンスを表す。終了デッドライン時刻311~313は、それぞれジョブ#11~#13のそれぞれの終了デッドライン時刻である。斜線パターンを付したジョブの実行が、クラウド計算装置40によるジョブ実行を表す。
【0151】
グラフ303は、実施例2に係るジョブ管理装置10による実行結果を示す。この場合、実施例2に係るジョブ管理装置10は、実行開始期限時刻が最も早く且つ最大実行時間が最も長いジョブ#13をオンプレミス計算装置30で実行させる。そして、ジョブ#13が実行される間に、ジョブ#11及び#12の実行開始期限時刻が到来するため、実施例2に係るジョブ管理装置10は、ジョブ#11及び#12をクラウド計算装置40で実行させる。
【0152】
これに対して、グラフ304は、実施例3に係るジョブ管理装置10による実行結果を示す。この場合、実施例3に係るジョブ管理装置10は、なるべく実行開始期限時刻が早く且つ最大実行時間が長いジョブであって、クラウドサービス合計利用時間がなるべく短くなるジョブとしてジョブ#12を選択して、オンプレミス計算装置30で実行させる。そして、ジョブ#12が実行される間に、ジョブ#13の実行開始期限時刻が到来するため、実施例3に係るジョブ管理装置10は、ジョブ#13をクラウド計算装置40で実行させる。また、ジョブ#12の実行終了までにジョブ#11の実行開始期限時刻が到来しないため、実施例3に係るジョブ管理装置10は、ジョブ#11をオンプレミス計算装置30で実行させることができる。そして、実施例3に係るジョブ管理装置10は、ジョブ#11~#13のいずれも終了デッドライン時刻までに実行を終了させることができる。
【0153】
ここで、以上の説明では、ジョブ実行管理部13は、最大実行時間を用いて各ジョブの実行環境の選択を行った。ただし、ジョブ実行管理部13は、最大実行時間に代えて、最大実行時間に対象のジョブの実行時間予測係数を乗じた結果を用いてもよい。
【0154】
以上に説明したように、本実施例に係るジョブ管理装置は、2つ以上のジョブをまとめて検討し、なるべく実行開始期限時刻が早く且つ最大実行時間が長いジョブであって、クラウドサービス合計利用時間がなるべく短くなるジョブをオンプレミス環境で実行させる。これにより、より多くのジョブをオンプレミス環境で実行することができ、ジョブの終了デッドライン時刻を守りつつより適切に課金を抑えることができる。
【0155】
(ハードウェア構成)
図12は、ジョブ管理装置のハードウェア構成図である。次に、図12を参照して、ジョブ管理装置10の各機能を実現するためのハードウェア構成の一例について説明する。
【0156】
図12に示すように、ジョブ管理装置10は、例えば、CPU(Central Processing Unit)91、メモリ92、ハードディスク93及びネットワークインタフェース94を有する。CPU91は、バスを介して、メモリ92、ハードディスク93及びネットワークインタフェース94に接続される。
【0157】
ネットワークインタフェース94は、ジョブ管理装置10と外部装置との間の通信のためのインタフェースである。ネットワークインタフェース94は、例えば、利用者端末装置20、オンプレミス計算装置30及びクラウド計算装置40とCPU91との間の通信を中継する。
【0158】
ハードディスク93は、補助記憶装置である。ハードディスク93は、図1に例示した、ジョブ管理テーブル12及びジョブ実行履歴テーブル14を格納する。また、ハードディスク93は、図1に例示した、受付部11、ジョブ実行管理部13及び請求額算出部15の機能を実現するプログラムを格納する。
【0159】
メモリ92は、主記憶装置である。メモリ92は、例えば、DRAM(Dynamic Random Access Memory)を用いることができる。
【0160】
CPU91は、ハードディスク93から各種プログラムを読み出して、メモリ92に展開して実行する。これにより、CPU91は、図1に例示した、受付部11、ジョブ実行管理部13及び請求額算出部15の機能を実現する。
【符号の説明】
【0161】
1 ハイブリッドHPCシステム
10 ジョブ管理装置
11 受付部
12 ジョブ管理テーブル
13 ジョブ実行管理部
14 ジョブ実行履歴テーブル
15 請求額算出部
20 利用者端末装置
30 オンプレミス計算装置
40 クラウド計算装置
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11
図12