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

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

▶ 日立ヴァンタラ株式会社の特許一覧

<>
  • 特開-演算装置、演算方法 図1
  • 特開-演算装置、演算方法 図2
  • 特開-演算装置、演算方法 図3
  • 特開-演算装置、演算方法 図4
  • 特開-演算装置、演算方法 図5
  • 特開-演算装置、演算方法 図6
  • 特開-演算装置、演算方法 図7
  • 特開-演算装置、演算方法 図8
  • 特開-演算装置、演算方法 図9
  • 特開-演算装置、演算方法 図10
  • 特開-演算装置、演算方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024125739
(43)【公開日】2024-09-19
(54)【発明の名称】演算装置、演算方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240911BHJP
【FI】
G06F9/50 150Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023033763
(22)【出願日】2023-03-06
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】アフマッド アヴァイス
(72)【発明者】
【氏名】林 真一
(72)【発明者】
【氏名】仲野 香緒里
(57)【要約】
【課題】特定のバッチジョブに適するインスタンスであるかを判断できる。
【解決手段】演算装置は、ジョブリストを格納する記憶部と、クレジットを消費することでバースト処理が可能なインスタンスに関する演算を行う演算部とを備え、ジョブリストは、バッチジョブのリストであり、バッチジョブは、ジョブの実行を開始できる時刻とジョブが完了しているべき時刻との組み合わせである時間枠、およびジョブの大きさに関するデータの組み合わせが複数組含まれ、バースト処理は、常に利用可能なジョブの処理速度であるベースラインを超えた最高速度以下でのジョブの処理であり、演算部は、ジョブリストに記載のバッチジョブを対象に時間枠においてジョブの完了が可能か否かを判断する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ジョブリストを格納する記憶部と、クレジットを消費することでバースト処理が可能なインスタンスに関する演算を行う演算部とを備え、
前記ジョブリストは、バッチジョブのリストであり、
前記バッチジョブは、ジョブの実行を開始できる時刻と前記ジョブが完了しているべき時刻との組み合わせである時間枠、および前記ジョブの大きさに関するデータの組み合わせが複数組含まれ、
前記バースト処理は、常に利用可能な前記ジョブの処理速度であるベースラインを超えた最高速度以下での前記ジョブの処理であり、
前記演算部は、前記ジョブリストに記載の前記バッチジョブを対象に前記時間枠において前記ジョブの完了が可能か否かを判断する、演算装置。
【請求項2】
請求項1に記載の演算装置において、
前記記憶部にはインスタンスリストがさらに格納され、
前記インスタンスリストには、インスタンスごとの前記ベースライン、前記最高速度、前記クレジットの最高残高、および当該インスタンスを利用するために要する費用であるコストが記載されており、
前記演算部は、前記ジョブリストに記載の全ての前記バッチジョブについて前記時間枠に完了でき前記コストが最も小さい前記インスタンスを特定する、演算装置。
【請求項3】
請求項2に記載の演算装置において、
前記演算部は、時刻ごとのそれぞれの前記バッチジョブにおける前記ジョブの残量、および前記クレジットの残量を算出するシミュレーションを行う、演算装置。
【請求項4】
請求項3に記載の演算装置において、
前記演算部は、前記コストが最も低い前記インスタンスを最初に選択して前記シミュレーションを行い、少なくとも1つの前記バッチジョブが前記時間枠に前記ジョブを完了できない場合に、次に前記コストが低い前記インスタンスを選択して前記シミュレーションを行う、演算装置。
【請求項5】
請求項1に記載の演算装置において、
前記ジョブは第1の記憶装置から第2の記憶装置へのデータの転送であり、前記ベースラインおよび前記最高速度の相違は、データの転送速度の相違である、演算装置。
【請求項6】
請求項1に記載の演算装置において、
前記ジョブは演算の実行であり、前記ベースラインおよび前記最高速度の相違は、単位時間における演算回数の相違である、演算装置。
【請求項7】
請求項2に記載の演算装置において、
前記演算部によるシミュレーションの結果を可視化した可視化図を作成する可視化部をさらに備える、演算装置。
【請求項8】
請求項2に記載の演算装置において、
前記演算部はさらに、あらかじめ設定された前記インスタンスと、当該演算部が特定した前記コストが最も小さい前記インスタンスとのコストの差を算出する、演算装置。
【請求項9】
請求項2に記載の演算装置において、
前記バッチジョブに関する仮想マシンのインスタンスを、前記演算部が特定した前記コストが最も小さい前記インスタンスに変更する変更指令部をさらに備える、演算装置。
【請求項10】
ジョブリストを格納する記憶部と、クレジットを消費することでバースト処理が可能なインスタンスに関する演算を行う演算部とを備える演算装置が実行する演算方法であって、
前記ジョブリストは、バッチジョブのリストであり、
前記バッチジョブは、ジョブの実行を開始できる時刻と前記ジョブが完了しているべき時刻との組み合わせである時間枠、および前記ジョブの大きさに関するデータの組み合わせが複数組含まれ、
前記バースト処理は、常に利用可能な前記ジョブの処理速度であるベースラインを超えた最高速度以下での前記ジョブの処理であり、
前記ジョブリストに記載の前記バッチジョブを対象に前記時間枠において前記ジョブの完了が可能か否かを判断することを含む、演算方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置および演算方法に関する。
【背景技術】
【0002】
オンラインでのコンピュータリソースの時間貸しが広く利用されている。コンピュータリソースは、処理能力が高いほど高価な使用料が課されるため、必要最低限のコンピュータリソースを選択するニーズがある。特許文献1には、プロセッサを備え、所定の利用中インスタンスを移行させる候補となる、パブリッククラウドが提供するバースト可能インスタンスに関する情報を提供するバースト可能インスタンス推奨装置であって、前記プロセッサは、前記利用中インスタンスの性能時系列データに基づいて、前記利用中インスタンスを移行可能な前記パブリッククラウドが提供する第1候補バースト可能インスタンスを特定し、特定した前記第1候補バースト可能インスタンスについて、前記性能時系列データよりも高い負荷の発生を推定した高負荷性能時系列データを算出し、前記高負荷性能時系列データの場合のペナルティを算出し、前記第1候補バースト可能インスタンスについてのコストと、前記ペナルティとを認識可能に表示させるバースト可能インスタンス推奨装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2021/0398176号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている発明では、特定のバッチジョブに適するインスタンスであるかを判断できない。
【課題を解決するための手段】
【0005】
本発明の第1の態様による演算装置は、ジョブリストを格納する記憶部と、クレジットを消費することでバースト処理が可能なインスタンスに関する演算を行う演算部とを備え、前記ジョブリストは、バッチジョブのリストであり、前記バッチジョブは、ジョブの実行を開始できる時刻と前記ジョブが完了しているべき時刻との組み合わせである時間枠、および前記ジョブの大きさに関するデータの組み合わせが複数組含まれ、前記バースト処理は、常に利用可能な前記ジョブの処理速度であるベースラインを超えた最高速度以下での前記ジョブの処理であり、前記演算部は、前記ジョブリストに記載の前記バッチジョブを対象に前記時間枠において前記ジョブの完了が可能か否かを判断する。
本発明の第2の態様による演算方法は、ジョブリストを格納する記憶部と、クレジットを消費することでバースト処理が可能なインスタンスに関する演算を行う演算部とを備える演算装置が実行する演算方法であって、前記ジョブリストは、バッチジョブのリストであり、前記バッチジョブは、ジョブの実行を開始できる時刻と前記ジョブが完了しているべき時刻との組み合わせである時間枠、および前記ジョブの大きさに関するデータの組み合わせが複数組含まれ、前記バースト処理は、常に利用可能な前記ジョブの処理速度であるベースラインを超えた最高速度以下での前記ジョブの処理であり、前記ジョブリストに記載の前記バッチジョブを対象に前記時間枠において前記ジョブの完了が可能か否かを判断することを含む。
【発明の効果】
【0006】
本発明によれば、特定のバッチジョブに適するインスタンスであるかを判断できる。
【図面の簡単な説明】
【0007】
図1】バッチ処理システムの全体構成図
図2】汎用計算機のハードウエア構成図
図3】インスタンスリストおよびジョブリストの一例を示す図
図4】リソースリストおよびシミュレーション結果の一例を示す図
図5】クレジットの増減および通信速度を説明する図
図6】シミュレーション結果可視化図の一例を示す図
図7】演算部による処理を示すフローチャート
図8】演算部による処理を示すフローチャート
図9】インスタンスリストの更新画面の一例を示す図
図10】ジョブリストの更新画面の一例を示す図
図11】可視化部による出力画面の一例を示す図
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、図1図11を参照して、本発明に係る演算装置である管理サーバの第1の実施の形態を説明する。
【0009】
図1は、管理サーバを含むバッチ処理システムSの全体構成図である。バッチ処理システムSは、第1サーバ2000a、第2サーバ2000b、仮想サーバ4000、管理サーバ6000、およびクライアント9000を含む。以下では、バッチ処理システムSを利用する人間を「ユーザ」と呼ぶ。たとえばバッチ処理システムSの設定を変更することや、動作を確認することもバッチ処理システムSの利用に含まれる。ユーザは一人でもよいし複数人でもよい。ユーザは状況により異なる人でもよいし、常に同じ人でもよい。
【0010】
第1サーバ2000aは、データベースを扱う第1DBソフトウエア2310aおよび第1ディスク2900aを備える。第2サーバ2000bは、データベースを扱う第2DBソフトウエア2310bおよび第2ディスク2900bを備える。第1ディスク2900aおよび第2ディスク2900bに格納されるデータは、バッチジョブにより第3ディスク4900にコピーされる。このバッチジョブは、第1DBソフトウエア2310、第2DBソフトウエア2310b、およびバックアップソフトウエア4310のいずれにより実行されてもよい。
【0011】
仮想サーバ4000は、仮想マシンでありバックアップソフトウエア4310および第3ディスク4900を備える。仮想サーバ4000は、性能が異なるインスタンスのいずれかである。本実施の形態では仮想サーバ4000に最適なインスタンスを算出する。本実施の形態では、インスタンスごとに利用可能なデータの転送速度が異なる。なお本実施の形態では、説明を簡潔にするために第1ディスク2900aや第2ディスク2900bのデータ転送速度は十分に高速であり、仮想サーバ4000のデータ転送速度がボトルネックになると仮定する。
【0012】
管理サーバ6000は、APIインタフェース100と、演算部6320と、更新部6330と、収集部6340と、変更指令部6360と、可視化部6370と、を備える。管理サーバ6000が備える記憶装置には、各種データT1000が格納される。各種データT1000は、インスタンスリストT1100、ジョブリストT1200、リソースリストT1300、およびシミュレーション結果T1400を含む。APIインタフェース100は、ソフトウエアコンポーネントが相互に通信することでデータを共有するソフトウエアである。収集部6340は、APIインタフェース100を介して仮想サーバ4000が現在使用しているインスタンスに関するデータを取得し、リソースリストT1300に書き込む。
【0013】
更新部6330は、ユーザの入力に基づきインスタンスリストT1100およびジョブリストT1200を更新する。演算部6320は、インスタンスリストT1100およびジョブリストT1200に基づき後述する演算を行い、シミュレーション結果T1400およびリソースリストT1300を更新する。変更指令部6360は、リソースリストT1300を読み込み、必要に応じて仮想サーバ4000のインスタンスを変更する。可視化部6370は、シミュレーション結果T1400を可視化してクライアント9000に提示する。
【0014】
クライアント9000は、ユーザが使用するコンピュータである。クライアント9000はGUIアプリ9100を備え、GUIアプリ9100が管理サーバ6000と通信して後述するGUI画面をユーザに提示する。なおユーザはクライアント9000を介して管理サーバ6000の更新部6330にアクセスしてもよい。
【0015】
図2は、第1サーバ2000a、第2サーバ2000b、管理サーバ6000、およびクライアント9000に共通するハードウエアを有する汎用計算機40のハードウエア構成図である。なお仮想サーバ4000は仮想ハードウエアとして汎用計算機40と同様の構成を備えるが、物理的な構成を有しない。仮想サーバ4000を実現する不図示のハードウエア装置は汎用計算機40と同様の構成を有する。なお仮想サーバ4000は、第1サーバ2000a、第2サーバ2000b、および管理サーバ6000のいずれかにより実現されてもよい。第1サーバ2000a、第2サーバ2000b、管理サーバ6000、およびクライアント9000のハードウエア構成は同一でなくてもよく、汎用計算機40が備えないハードウエアをさらに備えてもよい。
【0016】
汎用計算機40は、中央演算装置であるCPU41、読み出し専用の記憶装置であるROM42、読み書き可能な記憶装置であるRAM43、ユーザインタフェースである入出力装置44、通信装置45、および記憶装置46を備える。CPU41がROM42に格納されるプログラムをRAM43に展開して実行することで様々な演算を行う。汎用計算機40は、CPU41、ROM42、およびRAM43の組み合わせの代わりに書き換え可能な論理回路であるFPGA(Field Programmable Gate Array)や特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)により実現されてもよい。また汎用計算機40は、CPU41、ROM42、およびRAM43の組み合わせの代わりに、異なる構成の組み合わせ、たとえばCPU41、ROM42、RAM43とFPGAの組み合わせにより実現されてもよい。
【0017】
入出力装置44は、キーボード、マウス、および液晶ディスプレイなどである。ただし汎用計算機40は、入出力装置44の代わりに、キーボード、マウス、および液晶ディスプレイを接続可能な通信ポートを備えてもよい。人間は、入出力装置44を用いて汎用計算機40と情報を授受する。ただし入出力装置44は必須の構成ではない。特に第1サーバ2000a、第2サーバ2000b、および管理サーバ6000は、入出力装置44を備えなくてもよい。通信装置45は、たとえばネットワークインタフェースカードであり、他の装置との通信を実現する。通信装置45が利用する通信プロトコルは任意である。記憶装置46は不揮発性の記憶装置である。
【0018】
図3は、インスタンスリストT1100およびジョブリストT1200の一例を示す図である。インスタンスリストT1100およびジョブリストT1200は、あらかじめ作成されてもよいし、更新部6330が新規に作成してもよいし、更新部6330が一部を追加や削除してもよい。
【0019】
インスタンスリストT1100は、利用可能なインスタンスの一覧表である。本実施の形態では、インスタンスごとに利用可能なデータの転送速度が異なる。本実施の形態では、転送速度、データ転送速度、処理速度、およびスループットは同じ意味である。また以下では、転送速度を単に「速度」とも呼ぶ。インスタンスリストT1100には、各インスタンスのインスタンス名T1110、基準速度T1120、最高速度T1130、最大クレジットT1140、および時間単価T1150が含まれる。本実施の形態では、コストでソートしており最上段が最も低コストである。インスタンス名T1110は、インスタンスの名称や識別子である。本実施の形態では説明の便宜のためにインスタンス名T1110を「VM」と数字の組み合わせとしている。後述するように、この数字が大きくなるほど高性能かつ高コストである。
【0020】
基準速度T1120は、当該インスタンスが常に利用可能なデータの転送速度であり、「ベースライン」とも呼ぶ。最高速度T1130は、当該インスタンスが利用可能な最高の速度である。最大クレジットT1140は、当該インスタンスが保持可能な最大のクレジットである。クレジットについては後に詳述する。時間単価T1150は、当該インスタンスを利用するためのコストである。インスタンスは、コストと性能が正の相関関係を有する。すなわち、時間単価T1150が大きいほど、基準速度T1120、最高速度T1130、および最大クレジットT1140が大きい傾向にある。
【0021】
ジョブリストT1200は、バッチ処理システムSが実行すべきジョブの一覧表である。ジョブリストT1200には、ジョブ名T1210、データ転送量T1220、時間枠開始時刻T1230、時間枠終了時刻1240、およびリソース名1250が含まれる。ジョブ名T1210は、ジョブの名称や識別子である。本実施の形態では説明の便宜のためにジョブ名T1210を「ジョブ」と数字の組み合わせとしている。インスタンス名T1110とは異なり、ジョブ名T1210の数字の大きさは特別な意味を持たない。データ転送量T1220は、当該ジョブにおいて転送すべきデータの総量である。
【0022】
時間枠開始時刻T1230は、当該ジョブを開始する時刻である。時間枠終了時刻1240は、当該ジョブが完了しているべき時刻である。当該ジョブは時間枠開始時刻T1230よりも前の時刻に開始できず、時間枠終了時刻1240を超えて実行することは許されない。リソース名1250は、当該ジョブを実行するリソースの識別子である。当該リソースがいずれのインスタンスを利用するかはジョブリストT1200には記載されておらず、後述するように演算部6320が最適なインスタンスを計算できる。なお本実施の形態では、各リソースが途中でインスタンスを変更することは想定していない。
【0023】
図3に示す例では、ジョブ名T1210が「ジョブ1」のジョブは、時間枠が1時0分から1時5分であり、仮想サーバ4000に対して50GBのデータが転送されることが示されている。なお図3に示す例ではリソース名T1250が「仮想サーバ」、すなわち図1の仮想サーバ4000のみであるが、不図示の仮想サーバに関するジョブが記載されてもよい。
【0024】
図4は、リソースリストT1300およびシミュレーション結果T1400の一例を示す図である。リソースリストT1300は収集部6340および演算部6320により作成され、シミュレーション結果T1400は演算部6320により作成される。
【0025】
リソースリストT1300は、リソース名T1310、現状インスタンスT1320、理想インスタンスT1330、およびコスト差T1340を含む。なおリソースリストT1300には、符号T1350で示すようにディスクなどクレジット機構を使用する他のリソースがさらに含まれてもよい。
【0026】
リソース名T1310はリソースの識別子でありジョブリストT1200におけるリソース名T1250に対応する。現状インスタンスT1320は、当該リソースの現在のインスタンスであり、インスタンスリストT1100のインスタンス名T1110のいずれかが入力される。理想インスタンスT1330は当該リソースに最適なインスタンスであり、演算部6320により算出される。コスト差T1340は、現状インスタンスT1320と理想インスタンスT1330のコストの差である。図4に示す例では、「仮想サーバ」は現状インスタンスT1320と理想インスタンスT1330が一致しており、コスト差T1340はゼロである。その一方で、「Server 3」は現状インスタンスT1320が「VM3」であるが理想インスタンスT1330は「VM1」でありコスト差T1340が「-1.0」であることが示されている。なお「Server 3」は図1には示されていない仮想サーバである。
【0027】
シミュレーション結果T1400は、演算部6320が特定のリソースとインスタンスの組み合わせを対象として演算した結果である。具体的にはシミュレーション結果T1400は、シミュレーションにより得られた各時刻における各ジョブの残量、クレジット、および転送速度である。図4にはシミュレーション結果T1400を1つしか記載していないが、リソースとインスタンスの組み合わせごとに異なるシミュレーション結果T1400が生成される。
【0028】
図5は、クレジットの増減および通信速度を説明する図である。図5では、容器の大きさが最大クレジットを示し、容器に溜まっている液体がクレジット残高を示す。容器への液体の流入がクレジットの増加を示し、容器からの液体の流出がクレジットの消費を示す。上段に示すC100は、要求速度が基準速度よりも大きく、かつクレジット残高がゼロではない場合を示している。この場合は、符号C150で示すようにクレジットが減少しており、消費率が要求速度に比例する。インスタンスが利用可能な最大速度は、インスタンスリストT1100における最高速度T1130の値である。以下では、処理速度が基準速度よりも早い処理を「バースト処理」とも呼ぶ。すなわちバースト処理はクレジットの消費が条件となる。またバースト処理は、常に利用可能なジョブの処理速度であるベースラインを超えた最高速度以下でのジョブの処理とも呼べる。
【0029】
中段に示すC200は、要求速度が基準速度よりも小さい場合を示している。この場合は、符号C250で示すようにクレジットが増加しており、増加率が基準速度に比例する。クレジットが最大値に達すると、クレジットの増加が終了する。またこの場合は、要求速度が基準速度よりも小さいので、インスタンスは要求速度そのものを利用できる。下段に示すC300は、要求速度が基準速度よりも大きく、かつクレジット残高がゼロである場合を示している。この場合は、速度が基準速度に制限され、かつ取得クレジットがゼロとなる。
【0030】
図6は、可視化部6370が生成するシミュレーション結果可視化図G6000の一例を示す図である。シミュレーション結果可視化図G6000は、演算部6320が生成したシミュレーション結果T1400に基づき生成される。前述のとおり、シミュレーション結果はリソースおよびインスタンスの組み合わせに対して生成される。図6に示す例は、処理対象リソースが「仮想サーバ」、利用インスタンスが「VM2」の場合である。
【0031】
シミュレーション結果可視化図G6000は、時間枠G6100、ジョブ残量G6200、クレジット推移G6300、および速度推移G6400を含む。時間枠G6100、ジョブ残量G6200、クレジット推移G6300、および速度推移G6400は時間軸が同一であり、符号P10~P100で示す破線のそれぞれは、同一時刻を示している。
【0032】
時間枠G6100は、ジョブリストT1200に記載された処理対象リソースのジョブに関する時間枠をガントチャートとして示している。すなわち時間枠G6100はシミュレーション結果T1400ではなくジョブリストT1200に基づき生成される。具体的には、時間枠開始時刻T1230から時間枠終了時刻T1240までの時刻をハッチングで示し、そのハッチングの上部にジョブの名称を記載している。
【0033】
ジョブ残量G6200は、各ジョブのデータ残量の時系列変化を示すグラフである。時刻ごとの各ジョブのデータ残量はシミュレーション結果T1400に記載されている。ただしシミュレーション結果T1400に記載がない時刻の各ジョブのデータ残量は、直前に記載されたそのジョブのデータ残量と同一、またはゼロとする。ジョブ残量G6200における各グラフの縦軸は、ジョブごとにスケールが異なってもよいし、全てのジョブでスケールを統一してもよい。
【0034】
クレジット推移G6300は、処理対象リソースのクレジットの推移を示す時系列グラフである。時刻ごとのクレジットはシミュレーション結果T1400に記載されている。各リソースが保有可能なクレジットには上限が設定されており、予め定められた最大値よりは多くならない。またクレジットの下限はゼロである。
【0035】
速度推移G6400は、処理対象リソースの速度の推移を示す時系列グラフである。時刻ごとの速度はシミュレーション結果T1400に記載されている。前述のとおり、インスタンスごとにあらかじめ速度の上限、および基準値が設定されている。本実施の形態における各リソースの速度は、ゼロ、基準値、および最大値のいずれかに設定される。
【0036】
時刻P10は「ジョブ1」の時間枠開始時刻であり、この時刻に転送を開始する。時刻P20は、「ジョブ1」が転送を終了した時刻である。時刻P10から時刻P20の間にクレジットが消費され、最大の速度が利用される。時刻P30は「ジョブ1」の時間枠終了時刻である。「ジョブ1」は時間枠終了時刻よりも前に終了している。時刻P20から時刻P40の間はいずれのジョブも実行されないので、クレジットが時間の経過とともに増加し最大値まで達している。
【0037】
時刻P40は「ジョブ2」の時間枠開始時刻であり、時刻P50は「ジョブ3」の時間枠開始時刻である。時刻P40から「ジョブ2」を開始し、クレジットを消費して最大速度で処理を行うが、時刻P50の時点ではまだ「ジョブ2」が完了していない。時刻P50には「ジョブ3」が開始され、2つのジョブで速度が均等に配分される。そのためジョブ残量G6200における「ジョブ2」のデータ残量を示す直線の傾きが時刻P50を境に緩やかになっている。
【0038】
時刻P60に「ジョブ2」は完了するが、「ジョブ3」は完了していないため処理を継続する。時刻P60に「ジョブ2」が完了するため、「ジョブ3」は他のジョブと共有する必要がなくなり、時刻P60以降はジョブ残量G6200における「ジョブ3」のデータ残量を示す直線の傾きが急になる。時刻P70は「ジョブ2」の時間枠終了時刻であり、「ジョブ2」は時刻P70よりも前に完了している。
【0039】
時刻P80にクレジットがゼロとなり、速度が基準速度にまで落ちる。そのため時刻P80以降はジョブ残量G6200における「ジョブ3」のデータ残量を示す直線の傾きが緩やかになる。時刻P90に、「ジョブ3」のデータ転送が終了する。時刻T90以降はジョブが存在しないため、クレジットが時間の経過とともに増加する。時刻P100は「ジョブ3」の時間枠終了時刻であり、「ジョブ3」は時刻P100よりも前に完了している。以上が図Kの説明である。
【0040】
図7および図8は、演算部6320による処理を示すフローチャートである。ステップS301では演算部6320は、未処理のリソースのいずれかを処理対象リソースとして選択する。続くステップS302では演算部6320は、処理対象リソースが使用する仮のインスタンスとして、最小のインスタンスを選択してステップS303に進む。たとえば図3に示す例では「VM1」を選択する。
【0041】
ステップS303では演算部6320は、時刻をゼロに設定する。ただし、ここでは最も早い時間として便宜的に「ゼロ」と言っているに過ぎず、ジョブリストT1200における時間枠開始時刻T1230のうち最も早い時刻以前であればよい。なお時刻ゼロにおけるクレジットは、予め定められた値であり、たとえばゼロまたは最大値である。
【0042】
ステップS304では演算部6320は、予め定めた時間、たとえば1秒だけ時刻を進める。以下では、この時間を「単位時間」と呼ぶ。続くステップS305では演算部6320は、実行中のジョブが存在するか否かを判断する。演算部6320は、実行中のジョブが存在すると判断する場合はステップS310のシミュレーション中核処理に進み、実行中のジョブが存在しないと判断する場合はステップS306に進む。演算部6320は実行中のジョブの有無を次のように判断できる。すなわち演算部6320は、時間枠開始時刻が現在の時刻以前のジョブを抽出し、抽出したジョブから完了済みのジョブを削除し、残るジョブが存在するか否かで判断できる。
【0043】
ステップS306では演算部6320は、処理対象リソースのクレジットを増加させてステップS304に戻る。増加させるクレジットの値は、予め定められた値、たとえば処理対象リソースの基準速度に所定の比例係数を乗じた値である。ステップS310におけるシミュレーション中核処理は、図8を参照して詳しく説明する。
【0044】
シミュレーション中核処理の最初のステップであるステップS311では演算部6320は、処理対象リソースの現在時刻におけるクレジットがゼロであるか否かを判断する。演算部6320は、クレジットがゼロと判断する場合はステップS312に進み、クレジットがゼロではないと判断する場合はステップS313に進む。ステップS312では演算部6320は、速度を基準値に設定してステップS314に進む。ステップS313では演算部6320は、速度を最大値に設定してステップS314に進む。
【0045】
ステップS314では演算部6320は、実行中のジョブの数に応じて各ジョブの速度を等分する。たとえばステップS312またはステップS313において速度が15Gbpsに設定され、実行中のジョブが3つある場合には、各ジョブの速度は5Gbpsに設定される。続くステップS315では演算部6320は、各ジョブのデータ残量を速度に応じて減少させる。具体的には、ステップS314においてジョブの数で等分された値に、ステップS304において進める時間の長さである単位時間を乗じてデータ残量を減少させる。たとえばステップS314においてジョブの数で等分された値が5Gbpsであり、単位時間が1秒の場合にはデータ量を5Gb減少させる。
【0046】
続くステップS316では演算部6320は、クレジットを減少させて図8に示す処理を終了する。減少させるクレジットの値は、予め定められた一定値でもよいし最高速度に応じた値でもよい。図7に戻って説明を続ける。
【0047】
ステップS310の次に実行されるステップS321では演算部6320は、時間枠の終了までに完了しないジョブが存在するか否かを判断する。たとえば図3に示す例において、時刻「01:05:01」に「ジョブ1」が完了していない場合は、本ステップで肯定判断される。演算部6320は、時間枠の終了までに完了すると判断する場合はステップS322に進む。演算部6320は、時間枠の終了までに完了しないジョブが存在すると判断する場合はステップS323に進み、一ランク上のインスタンスを選択してステップS303に戻る。インスタンスのランクを上げることで、コストは高くなるが基準速度および最高速度の少なくとも一方は改善されるため、時間内にジョブが完了する可能性が高くなる。
【0048】
ステップS322では演算部6320は、処理対象リソースの全てのジョブが完了したか否かを判断する。ここで言う「全てのジョブ」とは、現在時刻までに時間枠の開始時刻を迎えたジョブだけでなく、ジョブリストT1200に記載されている、リソース名1250が処理対象リソースである全てのジョブのことである。演算部6320は、全てのジョブが完了したと判断する場合はステップS323に進み、完了していないジョブが存在すると判断する場合はステップS304に戻る。
【0049】
ステップS323では演算部6320は、現在のインスタンスを最適インスタンスに設定する。なぜならば、現在のインスタンスが全ジョブを時間枠の終了までに完了できる最も低コストなインスタンスだからである。続くステップS324では演算部6320は、現在設定されているインスタンスとのコスト差を算出する。続くステップS325では演算部6320は、シミュレーション結果をシミュレーション結果T1400に出力する。具体的には演算部6320は、各時刻における各ジョブの残量、クレジット、および速度を出力する。ただし演算部6320は、ステップS321において肯定判断した際にはシミュレーションの経過を消去し、最適なインスタンスを用いた場合のシミュレーション結果のみを出力する。
【0050】
続くステップS326では演算部6320は、未処理のリソースが存在するか否かを判断し、未処理のリソースが存在すると判断する場合はステップS301に戻り、未処理のリソースが存在しないと判断する場合は図7に示す処理を終了する。
【0051】
図9は、インスタンスリストT1100の更新画面の一例を示す図である。この画面は更新部6330により生成される。図9の上部には既存のインスタンスリストT1100が示されている。ただしインスタンスリストT1100の右端には削除ボタンG1100および修正ボタンG1200が配置される。ユーザがいずれかの行の削除ボタンG1100を押すと、その行のデータが削除される。ユーザがいずれかの行の修正ボタンG1200を押すと、その行のデータがインスタンス入力フォームG2000に入力される。
【0052】
ユーザは図9下部に示すインスタンス入力フォームG2000を用いて新たなインスタンスの登録および既存のインスタンスの修正ができる。符号G2100はインスタンス名T1110の入力フィールドである。符号G2200は、基準速度T1120の入力フィールドである。符号G2300は、最高速度T1130の入力フィールドである。符号G2400は、最大クレジットT1140の入力フィールドである。符号G2500はインスタンスの追加または変更をするための送信ボタンである。ユーザが送信ボタンG2400を押すと、更新部6330がインスタンスリストT1100を更新する。
【0053】
図10は、ジョブリストT1200の更新画面の一例を示す図である。この画面は更新部6330により生成される。図10の上部には既存のジョブリストT1200が示されている。ただしジョブリストT1200の右端には削除ボタンG1100および修正ボタンG1200が配置される。ユーザがいずれかの行の削除ボタンG1100を押すと、その行のデータが削除される。ユーザがいずれかの行の修正ボタンG1200を押すと、その行のデータがジョブ入力フォームG4000に入力される。
【0054】
ユーザは図10下部に示すジョブ入力フォームG4000を用いて新たなインスタンスの登録および既存のインスタンスの修正ができる。符号G4100はジョブ名T1210の入力フィールドである。符号G4200はデータ転送量T1220の入力フィールドである。符号G4300は時間枠開始時刻T1230の入力フィールドである。符号G4400は時間枠終了時刻T1240の入力フィールドである。符号4450はリソース名T1250の入力フィールドである。符号G4500はジョブを追加または変更をするための登録ボタンである。ユーザが登録ボタンG4500を押すと、更新部6330がジョブリストT1200を更新する。符号G4600は、最適なインスタンスサイズを確認するためのボタンである。ユーザがこのボタンを押すと、演算部6320が起動してシミュレーション結果T1400を生成する。さらにその後に可視化部6370が起動してシミュレーション結果T1400を表示する。
【0055】
図11は、可視化部6370による出力画面の一例を示す図である。符号G5000は、演算部6320が算出した最適なインスタンス、すなわちリソースリストT1300における理想インスタンスT1330を示す。符号G5100は、現状のインスタンスと最適なインスタンスとのコストの差、すなわちコスト差T1340を示す。符号G5500はインスタンスの種類を最適化するボタンである。ユーザがボタンG5500を押すと、変更指令部6360がリソースリストT1300を参照して最適なインスタンスに変更する。図11の下部に示すシミュレーション結果可視化図G6000図6と同様なので説明を省略する。
【0056】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)演算装置とも呼べる管理サーバ6000は、ジョブリストT1200を格納する記憶部であるRAM43と、クレジットを消費することでバースト処理が可能なインスタンスに関する演算を行う演算部6320とを備える。ジョブリストT1200は、バッチジョブのリストである。バッチジョブは、時間枠開始時刻T1230と時間枠終了時刻T1240との組み合わせである時間枠、およびデータ転送量T1220の組み合わせが複数組含まれる。バースト処理は、常に利用可能なジョブの処理速度であるベースラインを超えた最高速度以下でのジョブの処理である。演算部6320は、ジョブリストT1200に記載のバッチジョブを対象に時間枠においてジョブの完了が可能か否かを判断する。そのため管理サーバ6000は、特定のバッチジョブに適するインスタンスであるか否かを判断できる。
【0057】
(2)RAM43にはインスタンスリストT1100が格納される。インスタンスリストT1100には、インスタンスごとのベースラインである基準速度T1120、最高速度T1130、最大クレジットT1140、および時間単価T1150が記載されている。演算部6320は、ジョブリストに記載の全てのバッチジョブについて時間枠に完了できコストが最も小さいインスタンスを特定する。そのため管理サーバ6000、最適なインスタンスを特定できる。
【0058】
(3)演算部6320は、時刻ごとのそれぞれのバッチジョブにおけるジョブの残量、およびクレジットの残量を算出するシミュレーションを行う。
【0059】
(4)演算部6320は、コストが最も低いインスタンスを最初に選択してシミュレーションを行い、少なくとも1つのバッチジョブが時間枠にジョブを完了できない場合に、次にコストが低いインスタンスを選択してシミュレーションを行う。
【0060】
(5)ジョブは第1ディスク2900aまたは第2ディスク2900bから第3ディスク4900へのデータの転送であり、ベースラインおよび最高速度の相違は、データの転送速度の相違である。
【0061】
(変形例1)
上述した実施の形態では、ジョブはデータの転送であった。しかしジョブはデータの転送に限定されず、コンピュータリソースを利用する様々な処理を対象とできる。たとえば、ジョブは演算の実行であってもよい。この場合には単位時間における演算回数の相違がベースラインおよび最高速度の相違となる。具体的には、ジョブが利用できるCPUの使用率、CPUのコア数、物理CPUの数などがベースラインおよび最高速度の相違となる。
【0062】
(変形例2)
上述した実施の形態では、演算部6320はリソースごとに最適なインスタンスを特定した。しかし演算部630は、あるリソースとあるインスタンスの組み合わせにおいて、ジョブリストT1200に記載のバッチジョブを対象に時間枠においてジョブの完了が可能か否かを判断するだけでもよい。具体的には、リソースとインスタンスがあらかじめ指定されたうえで、図7のステップS303~S322までの処理を実行するだけでもよい。
【0063】
(変形例3)
上述した実施の形態では、演算部6320はランクを1つずつ上げて最適なインスタンスを特定した(図7のステップS323)。しかし演算部6320は、必ずしも1つずつランクを上げなくてもよい。たとえば2ずつランクを上げてもよいし、1~5の間でランダムにランクを上げてもよい。
【0064】
(変形例4)
バッチ処理システムSはハイブリッドクラウド、すなわちパブリッククラウドとプライベートクラウドの混合構成を対象としてもよい。ただしこの場合には、演算部6320が演算対象とするリソースは、パブリッククラウドに配置される仮想マシンに限定してよい。プライベートクラウドに配された仮想マシンは、自身が保有するリソースを用いるので制限する必要がないためである。
【0065】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
【0066】
上述した各実施の形態および変形例において、プログラムはROM42に格納されるとしたが、プログラムは不揮発性の記憶装置に格納されていてもよい。また、汎用計算機40が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと汎用計算機40が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
【0067】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0068】
40 :演算装置
4000 :仮想サーバ
4900 :第3ディスク
6000 :管理サーバ
6320 :演算部
6330 :更新部
6340 :収集部
6360 :変更指令部
6370 :可視化部
G6000 :シミュレーション結果可視化図
S :バッチ処理システム
T1100 :インスタンスリスト
T1200 :ジョブリスト
T1300 :リソースリスト
T1400 :シミュレーション結果
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11