JP7828692B2 - コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化) - Google Patents

コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化)

Info

Publication number
JP7828692B2
JP7828692B2 JP2021201066A JP2021201066A JP7828692B2 JP 7828692 B2 JP7828692 B2 JP 7828692B2 JP 2021201066 A JP2021201066 A JP 2021201066A JP 2021201066 A JP2021201066 A JP 2021201066A JP 7828692 B2 JP7828692 B2 JP 7828692B2
Authority
JP
Japan
Prior art keywords
batch
batch jobs
jobs
job
batch job
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.)
Active
Application number
JP2021201066A
Other languages
English (en)
Other versions
JP2022094945A (ja
Inventor
シー ボ ズー
シー ユ ワン
シャオ シャオ ペイ
チン リー
ルー ザオ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022094945A publication Critical patent/JP2022094945A/ja
Application granted granted Critical
Publication of JP7828692B2 publication Critical patent/JP7828692B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本開示は、バッチジョブ処理、より具体的には、バッチジョブのスケジューリングの最適化のための方法、システム、及びコンピュータプログラム製品に関連する。
バッチジョブは、一般企業の内部プロセス、E‐ビジネス、及びオンラインプロセスなどといった様々なタスクを実行するのに使用され得る。通常、バッチジョブは、定期的に(例えば、毎日又は毎週など)実行され、各バッチジョブの順序(すなわち、スケジューリング)は、バッチスケジューラにより管理される。
バッチジョブのスケジューリングを最適化して、可能な限り短い期間内にバッチジョブを完了すること、並びに、複数のバッチジョブによるリソースの同時消費の問題を回避することが望ましい。
この概要は、発明を実施するための形態において以下にさらに説明される簡略化された形態の概念の選択を紹介するために提供される。この概要は、特許請求されている主題の重要な特徴又は必須の特徴を特定することも、特許請求されている主題の範囲を限定するために用いられることも意図されていない。
本開示の第1態様によると、バッチジョブのスケジューリングの最適化のためのコンピュータ実装方法が提供される。方法は、1又は複数のプロセッサによって、バッチジョブのセットと、バッチジョブのセットにおけるバッチジョブの間の接続関係と、バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間とを取得する段階を含み得る。方法はまた、1又は複数のプロセッサによって、バッチジョブのセットの有向重み付きグラフを生成する段階であって、当該有向重み付きグラフにおいて、ノードはバッチジョブを表し、2つのノードの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、ノードの重みはノードに対応するバッチジョブの実行時間を表す、段階を含み得る。方法はまた、1又は複数のプロセッサによって、バッチジョブのセットにおけるバッチジョブの間の同じリソースの消費に関する情報を取得する段階を含み得る。方法はまた、1又は複数のプロセッサによって、バッチジョブのセットにおけるバッチジョブの間の同じリソースの消費に関する情報に基づいて、有向重み付きグラフを最適化する段階を含み得る。
本開示の第2態様によると、システムが提供される。システムは、処理ユニットと、処理ユニットに結合されそこに命令を格納するメモリとを備える。命令は、処理ユニットにより実行される場合、上記の方法の動作を実行する。
本開示の第3態様によると、プログラム命令が具現化されたコンピュータ可読記憶媒体を備えるコンピュータプログラム製品が提供される。プログラム命令は、プロセッサに上記の方法の動作を実行させるために、プロセッサによって実行可能である。
上記の概要は、本開示の各例示された実施形態又は全ての実装を説明することを意図するものではない。
本願に含まれる図面は、本明細書に組み込まれ、その一部を形成する。それらは、本開示の実施形態を示し、明細書に加えて、本開示の原理を説明する。図面は、特定の実施形態を例示するのみであり、本開示を限定するものではない。
添付図面における本開示のいくつかの実施形態のより詳細な説明を通して、本開示の上記及び他の目的、特徴、及び利点がより明らかになるであろう。本開示の実施形態において、同じ参照は、概して同じコンポーネントを指す。図面の様々な特徴は縮尺通りではない。これは、図面が詳細な説明に関連して本開示を当業者が理解することを容易にするにあたっての明確性のためのものだからである。図面は以下に直ちに説明される。
本開示のいくつかの実施形態に係るクラウドコンピューティングノードを示す。
本開示のいくつかの実施形態に係るクラウドコンピューティング環境を示す。
本開示のいくつかの実施形態に係る抽象化モデル層を示す。
銀行の3つの業務部門により実行されるバッチジョブの3つの例示的なセットを示す。
セットにおける各バッチジョブの実行時間と、バッチジョブによる消費されたリソースとを示す。
本開示のいくつかの実施形態に係る、バッチジョブのスケジューリングを最適化するための提案された例示的な最適化システムの概略図を示す。
本開示のいくつかの実施形態に係る図5に示されたバッチジョブのセットの有向重み付きグラフを示す。
本開示のいくつかの実施形態に係る、図7に示されたバッチジョブのセットの2つの再構成された有向重み付きグラフを示す。 本開示のいくつかの実施形態に係る、図7に示されたバッチジョブのセットの2つの再構成された有向重み付きグラフを示す。
本開示のいくつかの実施形態に係る別のバッチジョブのセットの別の有向重み付きグラフを示す。
本開示のいくつかの実施形態に係る、図9に示されたバッチジョブのセットの2つの再構成された有向重み付きグラフを示す。 本開示のいくつかの実施形態に係る、図9に示されたバッチジョブのセットの2つの再構成された有向重み付きグラフを示す。
本開示のいくつかの実施形態に係るバッチジョブのスケジューリングを最適化するための例示的な方法のフローチャートを示す。
本開示のいくつかの実施形態に係る、図11に示された動作1140を実装するための例示的な方法のフローチャートを示す。
本開示のいくつかの実施形態に係る、図11に示された動作1140を実装するための例示的な方法の別のフローチャートを示す。
本開示のいくつかの実施形態に係る、図13に示された動作を実装するための例示的な方法のフローチャートを示す。
本開示の実施形態はここで、添付の図に関連して詳細に説明される。
添付図面に関連して以下の説明が提供され、特許請求の範囲及びその均等物により定義される例示的な実施形態の包括的な理解を助ける。以下の説明には、こうした理解を助けるための様々な具体的な詳細が含まれるが、これらは単なる例示とみなされることになる。したがって、当業者は、本明細書に説明された実施形態の様々な変形及び修正が、本開示の範囲及び趣旨から逸脱することなく行われ得ることを認識するであろう。さらに、周知の機能及び構造の説明は、明確さ及び簡潔さのために省略され得る。
以下の説明及び特許請求の範囲において使用される用語及び単語は、書誌的意味に限定されることはないが、単に実施形態に対する明らかで一貫した理解を可能にするために使用される。したがって、例示的な実施形態の以下の説明は図示の目的のみで提供され、添付の特許請求の範囲及びその均等物により定義される実施形態を限定する目的で提供されるものではないことが、当業者にとって明らかであるべきである。
単数形の「a」、「an」及び「the」は、文脈により別様に明確に規定されない限り、複数の指示対象を含むことが理解される。したがって、例えば、「あるコンポーネント表面(a component surface)」への参照は、文脈により別様に明確に規定されない限り、1又は複数のそのような表面への参照を含む。
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実装は、クラウドコンピューティング環境に限定されるものではないことが理解される。むしろ、本開示の実施形態は、現在既知である、又はより後になって開発されるあらゆる他のタイプのコンピューティング環境と連携して実装可能である。
クラウドコンピューティングは、サービスのプロバイダとの最小の管理努力又は相互作用を伴って迅速にプロビジョニングされてリリースされ得る、構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするサービス供給のモデルである。このクラウドモデルは、少なくとも5つの特性と、少なくとも3つのサービスモデルと、少なくとも4つの展開モデルとを含み得る。
特性は、以下の通りである。
オンデマンドセルフサービス:クラウド消費者は、サーバ時間及びネットワークストレージなどのコンピューティング能力を、人間がサービスプロバイダと相互作用することを必要とせずに自動で、必要に応じて、一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:能力は、ネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用する複数の消費者にサービス提供するためにプールされ、異なる物理及び仮想リソースが、需要に応じて動的に割り当て及び再割り当てされる。概して消費者は提供されるリソースの厳密な位置についての制御又は知識を有しないが、より高い抽象化レベル(例えば、国、州、又はデータセンタ)で位置を指定可能であり得るという点で、位置独立性の意味がある。
迅速な伸縮性:能力は、素早くスケールアウトするように、いくつかの場合には自動で、迅速かつ伸縮自在にプロビジョニングし、素早くスケールインするように迅速にリリースすることができる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時間に任意の量で購入できる。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブユーザアカウント)に対して適切ないくつかの抽象化レベルでのメータリング能力を利用して、リソース使用を自動で制御して最適化する。リソース使用は、モニタリング、制御、及び報告され、利用されるサービスのプロバイダ及び消費者の両方に透明性を提供することができる。
サービスモデルは、以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通して、様々なクライアントデバイスからアクセス可能である。消費者は、限定的なユーザ固有のアプリケーション構成設定は例外であり得るが、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又はさらには個々のアプリケーション能力を含む基礎となるクラウドインフラストラクチャを管理又は制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成された消費者が作成又は取得したアプリケーションを展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む基礎となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション及び場合によってはアプリケーションホスティング環境構成を介した制御を有する。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、及び他の基礎的なコンピューティングリソースをプロビジョニングすることである。消費者は、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開及び実行可能である。消費者は、基礎となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、及び、場合によっては、選択されたネットワークコンポーネント(例えばホストファイアウォール)の限定された制御に対する制御を有する。
展開モデルは、以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、ある組織のためにのみ動作される。それは、組織又はサードパーティによって管理され得、オンプレミス又はオフプレミスに存在し得る。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織により共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス考慮事項)を持つ特定のコミュニティをサポートする。それは、組織又はサードパーティによって管理され得、オンプレミス又はオフプレミスに存在し得る。
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大きな業界団体に対して利用可能であり、クラウドサービスを販売する組織によって所有されている。
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティとして留まるが、データ及びアプリケーションの携帯性を可能にする標準化された技術又は独自の技術(例えば、クラウド間の負荷分散のためのクラウドバースティング)により共に結び付けられた2又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の組成物である。
クラウドコンピューティング環境はサービス指向型であり、ステートレス性、低結合性、モジュール性、及び意味的相互運用性に焦点を当てる。クラウドコンピューティングの中核には、相互接続されたノードで構成されるネットワークを含むインフラストラクチャが存在する。
ここで図1を参照すると、クラウドコンピューティングノードの例の模式図が示される。クラウドコンピューティングノード10は、好適なクラウドコンピューティングノードの1つの例であるのみで、本明細書に説明されている開示の実施形態の使用範囲又は機能性に対して任意の限定を示唆することを意図するものではない。いずれにしても、クラウドコンピューティングノード10は、上記に記載の機能のいずれも実装若しくは実行又はその両方が可能である。
クラウドコンピューティングノード10には、コンピュータシステム/サーバ12又は通信デバイスなどのポータブル電子デバイスが存在し、これらは、多数の他の汎用又は専用コンピューティングシステム環境又は構成とともに動作可能である。コンピュータシステム/サーバ12とともに使用するのに好適であり得る、周知のコンピューティングシステム、環境、若しくは構成、又はその組み合わせの例としては、限定されるものではないが、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な消費者向け電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び、上記のシステム若しくはデバイスのいずれかを含む分散型クラウドコンピューティング環境等が挙げられる。
コンピュータシステム/サーバ12は、コンピュータシステムによって実行される、プログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明され得る。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含み得る。コンピュータシステム/サーバ12は、分散型クラウドコンピューティング環境において実施してよく、ここで、タスクは、通信ネットワークを通して結合されているリモート処理デバイスによって実行される。分散型クラウドコンピューティング環境において、プログラムモジュールは、メモリストレージデバイスを含むローカルコンピュータシステム記憶媒体及びリモートコンピュータシステム記憶媒体の両方に位置してよい。
図1に示すように、クラウドコンピューティングノード10におけるコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ12のコンポーネントは、限定されるものではないが、1又は複数のプロセッサ又は処理ユニット16と、システムメモリ28と、システムメモリ28を含む様々なシステムコンポーネントを1又は複数のプロセッサ又は処理ユニット16に結合するバス18とを含み得る。
バス18は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び様々なバスアーキテクチャのいずれかを使用するプロセッサ又はローカルバスを含む、いくつかのタイプのバス構造のいずれかの1又は複数を表している。限定ではなく例として、そのようなアーキテクチャとしては、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスが挙げられる。
コンピュータシステム/サーバ12は、通常、様々なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ12によってアクセス可能な任意の利用可能な媒体であってよく、そのような媒体は、揮発性媒体及び不揮発性媒体、取り外し可能な媒体及び取り外し不可能な媒体のどちらも含む。
システムメモリ28は、ランダムアクセスメモリ(RAM)30若しくはキャッシュメモリ32、又はその組み合わせなどの揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ12は、他の取り外し可能な/取り外し不可能な、揮発性/不揮発性コンピュータシステム記憶媒体をさらに含み得る。単に例として、ストレージシステム34は、取り外し不可能な不揮発性磁気媒体(図示せず、典型的には「ハードドライブ」と呼ばれる)に対して読み出し及び書き込みを行うために設けることができる。図示していないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピーディスク」)に対して読み出し及び書き込みを行うための磁気ディスクドライブと、CD-ROM、DVD-ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクに対して読み出し若しくは書き込みを行うための光ディスクドライブとを設けることができる。そのような場合において、それぞれを1又は複数のデータメディアインタフェースによってバス18に接続することができる。以下にさらに図示及び説明されるように、メモリ28は、本開示の実施形態の機能を実行するように構成されたプログラムモジュールの(例えば、少なくとも1つの)セットを有する少なくとも1つのプログラム製品を含み得る。
オペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータだけでなく、プログラムモジュール42のセット(少なくとも1つ)を含むプログラム/ユーティリティ40が、限定ではなく例としてメモリ28に格納されてよい。オペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々、又はそれらのいくつかの組み合わせは、ネットワーク環境の実装を含んでよい。プログラムモジュール42は一般に、本明細書に説明された開示の実施形態の機能若しくは方法又はその両方を実行する。
コンピュータシステム/サーバ12は、キーボード、ポインティングデバイス、ディスプレイ24などといった1又は複数の外部デバイス14、ユーザがコンピュータシステム/サーバ12と相互作用できるようにする1又は複数のデバイス、若しくは、コンピュータシステム/サーバ12が1又は複数の他のコンピューティングデバイスと通信できるようにする任意のデバイス(例えば、ネットワークカード、モデムなど)又はその組み合わせと通信してもよい。そのような通信は、入出力(I/O)インタフェース22を介して行うことができる。またさらに、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、若しくはパブリックネットワーク(例えば、インターネット)、又はその組み合わせなどの1又は複数のネットワークと通信することができる。図示のように、ネットワークアダプタ20は、バス18を介して、コンピュータシステム/サーバ12の他のコンポーネントと通信する。図示していないが、他のハードウェア若しくはソフトウェアコンポーネント又はその組み合わせをコンピュータシステム/サーバ12とともに使用できることを理解されたい。限定されるものではないが、例は、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブストレージシステムなどを含む。
ここで図2を参照すると、例示的なクラウドコンピューティング環境50が示される。示されるように、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、若しくは自動車コンピュータシステム54N、又はその組み合わせなどの、クラウド消費者によって使用されるローカルコンピューティングデバイスと通信し得る、1又は複数のクラウドコンピューティングノード10を含む。ノード10は互いに通信し得る。ノードは、上記したようなプライベートクラウド、コミュニティクラウド、パブリッククラウド若しくはハイブリッドクラウド又はそれらの組み合わせなどの1又は複数のネットワークにおいて、物理的又は仮想的にグループ化(図示せず)されてよい。これにより、クラウドコンピューティング環境50は、クラウド消費者がローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとしてのインフラストラクチャ、サービスとしてのプラットフォーム若しくはサービスとしてのソフトウェア又はその組み合わせを提供できるようにする。図2に図示されるコンピューティングデバイス54A-Nのタイプは、専ら例示的なものを意図し、コンピューティングノード10及びクラウドコンピューティング環境50は、任意のタイプのネットワーク若しくはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを用いて)又はその両方を通して、任意のタイプのコンピュータ化されたデバイスと通信可能であることを理解されたい。
ここで図3を参照すると、クラウドコンピューティング環境50(図2)によって提供される機能抽象化層のセットが示されている。図3に図示されるコンポーネント、層及び機能は、専ら例示であることを意図しており、本開示の実施形態は、これらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、並びにネットワーク及びネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67と、データベースソフトウェア68とを含む。
仮想化層70は、以下の例の仮想エンティティがそこから提供され得る抽象化層を提供する:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75。
1つの例において、管理層80は、以下に記載される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するのに利用されるコンピューティングリソース及び他のリソースの動的調達を提供する。測定及び価格設定82は、リソースがクラウドコンピューティング環境内で用いられる際のコスト追跡及びこれらのリソースの消費に対する課金又は請求書送付を提供する。1つの例において、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、データ及び他のリソースの保護だけでなく、クラウド消費者及びタスクのための本人確認を提供する。ユーザポータル83は、クラウドコンピューティング環境へのアクセスを消費者及びシステム管理者に提供する。サービスレベル管理84は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)の計画及び履行85は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前手配及び調達を提供する。
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例は、マッピング及びナビゲーション91と、ソフトウェア開発及びライフサイクル管理92と、仮想教室教育提供93と、データ分析処理94と、取引処理95と、バッチジョブ最適化スケジューリング96とを含む。
上述したように、バッチジョブはタスクを実行するのに使用され、バッチジョブのスケジューリングはバッチスケジューラにより管理される。銀行業務は、事業の一例である。銀行が業務のために開いている昼間の間、オンライン取引処理(OLTP)が主な業務となる。オンライン取引は、金銭出納係、e‐バンキング、自動取引装置(ATM)等を含む異なるチャネルで行われる。夜には、銀行は多くの場合に例えば午後10時から午前5時などの特定の期間(トータルバッチウィンドウと称される)を選択して、データ統合のための終業処理のために定期的にバッチ動作を集中化し、主に、バッチ保留、発行、預金及び融資利息決済処理、消去及び調整、サードパーティ調整ファイル、データプラットフォームデータ処理、一般的な元帳口座調整、記述、一般的な元帳口座調整、記述などといったバッチ会計処理を行う。これらのバッチジョブの実行は通常、個人事業部門、法人事業部門、クレジットカード事業部門、顧客情報事業部門などといった異なる事業部門によって、段階的に実行される。
図4は、銀行の3つの事業部門により実行されるバッチジョブの3つの例示的なセットを示す。バッチジョブのセット401は、第1バッチウィンドウ内で、個人事業部門により実行される(例えば、実行時間は25分間である)。バッチジョブのセット402は、第2バッチウィンドウ内で、法人事業部門により実行される(例えば、実行時間は45分間である)。バッチジョブのセット403は、第3バッチウィンドウ内で、クレジットカード事業部門により実行される(例えば、実行時間は30分間である)。
事業部門内で、バッチ処理は異なるバッチジョブに補正される。例えば、図4を参照すると、バッチジョブのセット401は、以下のバッチジョブを備える:代理店発行(ジョブ1)、利率決済(ジョブ2)、形式更新(ジョブ3)、保留(ジョブ4)、消去及び調整(ジョブ5)、サードパーティ(ジョブ6)、一般元帳調整(ジョブ7)、及び計算書(ジョブ8)。バッチジョブのセット402は、以下のバッチジョブを備える:保留(ジョブA)、収集(ジョブB)、要約(ジョブC)、調整(ジョブD)、形式更新(ジョブE)、消去(ジョブF)、レポート(ジョブG)、及びサードパーティ(ジョブH)。バッチジョブのセット403は、以下のバッチジョブを備える:料金徴収(ジョブa)、調整(ジョブb)、ポイント(ジョブc)、サードパーティ(ジョブd)。払い戻し及び返済(ジョブe)、口座更新(ジョブf)、自動返済(ジョブg)、請求書発行(ジョブh)、及び権利更新(ジョブi)。さらに、バッチジョブのスケジューリングは、業務ロジックに従って実行される。これらのバッチジョブは、優先度ルールに準拠するように特定の順序で実行され得る。異なるバッチジョブ間の相互関係(例えば、いくつかのバッチジョブは、バッチジョブ処理を実装するべく、実行の前に、入力データの生成又は他のバッチジョブによる出力を必要とする)は、これらの異なるジョブを連続して実行させる。例えば、個人事業部門において、ジョブ1、ジョブ3、ジョブ7及びジョブ8などのいくつかのジョブは連続的に実行され得る一方、それらの間に業務ロジック関係又は相互関係が存在しない場合に、ジョブ3、ジョブ4、ジョブ5及びジョブ6などのいくつかのジョブは同時に又は並列に実行され得る。
図5は、セット401における各バッチジョブの実行時間と、バッチジョブによる消費されたリソースとを示す。いくつかのジョブは、例えば、両方がファイルAにアクセスする必要があるジョブ3及びジョブ5のように、同時に同じリソースを消費し得る。2つのジョブが同時にファイルAにアクセスする場合、それはバッチスケジューラにおけるリソース衝突を発生させ得る。したがって、バッチスケジューラは、図4に示されたバッチジョブの順序を直接実行することはできない。バッチスケジューラが、ファイルAにジョブ5がまずアクセスすることを可能にして、また実行順序をジョブ1→ジョブ5→ジョブ3→ジョブ7→ジョブ8(ここで「→」は、連続アクセスを表し、「//」は並列アクセスを表す)にする場合、次に、バッチジョブのセット401の総時間は、バッチウィンドウ(25分)を超える、7+10+5+5+5=27分である。しかしながら、バッチスケジューラが、ファイルAにジョブ3がまずアクセスすることを可能にして、また実行順序をジョブ1→ジョブ3→(ジョブ5//(ジョブ7→ジョブ8))にする場合、次に、バッチジョブのセット401の総時間は、バッチウィンドウ(25分)内の7+5+10//(5+5)=22分である。さらに、後者のバッチジョブスケジューリングは、バッチジョブのセットの実行時間をも節約する。
したがって、バッチジョブのスケジューリングを最適化して、可能な限り短い期間内にバッチジョブを完了すること、並びに、複数のバッチジョブによるリソースの同時消費の問題を回避することが望ましい。
バッチジョブを実装するためのパラメータは、例えば、以下から選択されたパラメータを備え得る:バッチジョブにより使用されるリソース、及びバッチジョブの実行時間等。
「リソース」という用語は、バッチジョブの動作をサポートするコンピューティングデバイスのパラメータ、能力又は機能を指す。同じコンピュータデバイスは一般に、いくつかのリソースと関連付けられる。同様に、同じリソースは複数のバッチジョブにより(それらによりアクセスされる又はその間で共有されるなど)消費され得る。リソースが1つのバッチジョブにより一度消費されると、リソースはロックされ、他のバッチジョブは当該リソースを消費することができない。バッチジョブを消費することによってリソースがリリースされる場合にのみ、他のバッチジョブが当該リソースを消費するために競合し得る。リソースは、ハードウェアリソース又はソフトウェアリソースであり得る。例えば、ハードウェアリソースは、ディスク、メモリ、ネットワーク、プロセッサ、及びRAM等を含み得、ソフトウェアリソースは、ファイル、データベースにおけるテーブル、及びデータベース接続等を含み得る。「リソース使用」は、バッチジョブによるリソースの消費を指す。
図6は、本開示のいくつかの実施形態に係る、バッチジョブのスケジューリングを最適化するための提案された例示的な最適化システム600の概略図を示す。最適化システム600は、バッチジョブのスケジューリングを最適化するためのスタンドアロンツール、又は、IBM Tivoli Workload Scheduler(TWS)などの既存のワークロードスケジューラ製品のコンポーネント/プラグインであり得る。最適化システム600がスタンドアロンツールとして実装される場合、本開示の実施形態に係る最適化システム600は、図1のコンピュータシステム/サーバ12によって又は図2に示されたクラウドコンピューティングノード10によって実装され得ることに留意すべきである。最適化システム600が既存のワークロードスケジューラ製品のコンポーネント/プラグインとして実装される場合、本開示の実施形態に係る既存のワークロードスケジューラ製品は、図1のコンピュータシステム/サーバ12によって又は図2に示されたクラウドコンピューティングノード10によって実装され得る。また、最適化システム600は、既存のワークロードスケジューラ製品のソフトウェアコンポーネントであり得る。
図6に示されるように、最適化システム600は、ジョブ実行時間取得モジュール601と、ジョブスケジュールグラフ生成器602と、リソース消費量取得モジュール603と、ジョブスケジュールオプティマイザ604とを備え得る。図6は例示的な実装システムの図示を提供するのみであり、異なる実施形態が実装され得るシステムに関して任意の限定を示唆しないことが理解されるであろう。示されたシステム環境に対して、多くの修正が行われ得る。
図6を参照すると、ジョブ実行時間取得モジュール601は、セット401などのバッチジョブのセットにおける各バッチジョブのそれぞれの実行時間を取得するように構成される。いくつかの実施形態において、ジョブ実行時間取得モジュール601は、例えば、バッチジョブのセットにおけるそれぞれのバッチジョブの実行時間の統計をモニタリング及び継続するジョブ実行統計ツール605などから、直接バッチジョブのセットにおけるそれぞれのバッチジョブのそれぞれの実行時間を取得し得る。いくつかの実施形態において、ジョブ実行統計ツール605は、それぞれのバッチジョブのそれぞれの実行時間を複数回取得するべく、バッチジョブのセットにおける各バッチジョブの実行をモニタリングするのみである。特定の実施形態において、ジョブ実行統計ツール605は、バッチジョブのセットにおけるそれぞれのバッチジョブの全てのモニタリングされた実行時間を、ジョブ実行時間取得モジュール601に入力し得る。次に、ジョブ実行時間取得モジュール601は、ジョブ実行時間取得モジュール601の出力としての各バッチジョブの平均実行時間をジョブスケジュールグラフ生成器602に供給し得る。いくつかの実施形態において、ジョブ実行時間取得モジュール601は、ユーザが、各バッチジョブの実行時間を、ジョブ実行統計ツール605を直接介して、ジョブ実行時間取得モジュール601の出力、及びジョブスケジュールグラフ生成器602の入力として入力することを可能にし得る。
いくつかの実施形態において、ジョブスケジュールグラフ生成器602は、スケジューリングのために最適化される予定のバッチジョブのセットの有向重み付きグラフを生成するように構成される。一方では、ジョブスケジュールグラフ生成器602は、ジョブ実行時間取得モジュール601から、バッチジョブのセットにおけるバッチジョブの各々のそれぞれの実行時間を取得し得る。その一方で、ジョブスケジュールグラフ生成器602は、TWSなどのワークロードスケジューラ製品606から又はバッチジョブ記述ファイルから、バッチジョブのセットの全てのバッチジョブ及びそれらの接続関係を取得し得る。図5に示されたバッチジョブのセット401の全てのバッチジョブ及びそれらの接続関係は、ワークロードスケジューラ製品606の出力の一例である。いくつかの実施形態において、ユーザは、最適化システム600の外部のユーザインタフェース(UI)ツールから、バッチジョブのセットの全てのバッチジョブ及びそれらの接続関係を編集し得る。
いくつかの実施形態において、バッチジョブのセットの有向重み付きグラフを生成する場合、ジョブスケジュールグラフ生成器602は、有向重み付きグラフのノードとしてバッチジョブを表し、有向重み付きグラフの2つの対応するノード間の有向エッジとして2つのバッチジョブ間の有向接続関係を表し、有向重み付きグラフの各ノードの重みとして各バッチジョブの実行時間を表し、有向重み付きグラフに2つの擬似ノードを追加して有向重み付きグラフのルートノードと終点ノードとをそれぞれ表し得る。
図7に示されるように、図5に示されたバッチジョブのセット401の有向重み付きグラフが示され、ここでノード701はバッチジョブ3を表し、有向エッジ702はバッチジョブ7とバッチジョブ8との間の有向接続関係を表し、703はノード701の重みが5であることを表し、擬似ノード704はルートノード及び擬似ノードを表し、705は終点ノードを表す。以下では、バッチジョブのセットの有向重み付きグラフを説明する場合、「ノード」及び「バッチジョブ」という2つの用語は、同じ意味を有し、入れ替え可能に使用され得る。
いくつかの実施形態において、リソース消費量取得モジュール603は、バッチジョブのセットにおけるバッチジョブの間における同じリソースの消費に関する情報を取得するように構成される。再び図6を参照すると、リソース消費量取得モジュール603は、各バッチジョブのコードをスキャンして各バッチジョブの挙動を分析し、各バッチジョブのフェーズの各々の各バッチジョブにより消費されるリソースを取得するコードスキャンツール607から、各バッチジョブにより消費されたリソースを取得し得る。リソース消費量取得モジュール603は次に、各バッチジョブにより消費されるリソースから同じリソースの消費に関する情報を取得する。いくつかの実施形態において、リソース消費量取得モジュール603は、バッチジョブの間の同じリソースの消費に関する情報を、n×n行列であるリソース消費量行列(RCM)で表し得、ここでnは、バッチジョブのセットにおけるバッチジョブの数である。RCMにおいて、リソースは、例えば、リソースファイルAは1としてラベリングされ、リソースファイルBは2としてラベリングされ、リソースメモリは3としてラベリングされる等、別々にラベリングされる。例えば、セット401のRCMは以下のように示される。
ここで、RCMのi番目の行とj番目の列の要素は、i番目のバッチジョブ及びj番目のバッチジョブの両方がリソース1を消費するという状況を示す。i番目のバッチジョブ及びj番目のバッチジョブが任意の同じリソースを消費しない場合、RCM(i,j)及びRCM(j,i)の2つの要素は0であり、i番目のバッチジョブ及びj番目のバッチジョブの両方が、ラベルが1であるファイルAのリソースを消費する場合、RCM(i,j)及びRCM(j,i)の2つの要素は1であり、i番目のバッチジョブ及びj番目のバッチジョブの両方が、ラベルが2であるファイルBのリソースを消費する場合、RCM(i,j)及びRCM(j,i)の2つの要素は2であり、以下同様である。RCMは対称行列であることが分かる。RCMはバッチジョブの間の同じリソースの消費に関する情報を表すデータ構造の一種に過ぎないことが理解されるべきである。バッチジョブの間の同じリソースの消費に関する情報は、他のデータ構造により表されることもでき、又は、データ構造の代わりに、XMLファイルなどといったファイル形式で表されることができる。
いくつかの実施形態において、ジョブスケジュールオプティマイザ604は、バッチジョブの間の同じリソースの消費に関する情報に基づいて、バッチジョブのセットの有向重み付きグラフを最適化するように構成される。言い換えれば、ジョブスケジュールオプティマイザ604は、ジョブスケジュールグラフ生成器602からバッチジョブのセットの有向重み付きグラフを、リソース消費量取得モジュール603からバッチジョブの間の同じリソースの消費に関する情報を受信して、次に、バッチジョブの間の同じリソースの消費に関する情報に基づいてバッチジョブのセットの有向重み付きグラフを最適化し、同じリソースの同時消費の問題を回避する だけでなく、最小限の期間内にタスクを完了し得る。
いくつかの実施形態において、バッチジョブの間の同じリソースの消費に関する情報に基づいてバッチジョブのセットの有向重み付きグラフを最適化する間に、ジョブスケジュールオプティマイザ604は、第1実装において、バッチジョブのセットの有向重み付きグラフの各ノードに、例えば、存在の幅優先探索(BFS)アルゴリズムを使用してまずアクセスし得、その結果、有向重み付きグラフにおける全てのノードがアクセスされ得る。一般に、BFSアルゴリズムは、ツリー又はグラフデータ構造をトラバース又は検索するためのアルゴリズムである。それはツリールート(又はグラフのいくつかの任意のノードであり、場合によっては「検索キー」と称される)において開始し、次の深さレベルにおけるノードに移動する前に、現在の深さにおいて全ての隣接ノードを探索する。以下では、図7に示されたバッチジョブのセット401の有向重み付きグラフ及びセット401の上記のRCMは、ジョブスケジュールオプティマイザ604の入力の例とされ、ジョブスケジュールオプティマイザ604がどのように第1実装における有向重み付きグラフを最適化するべきかを説明する。ジョブスケジュールオプティマイザ604は、有向重み付きグラフの第1レベルにおいてノード1及びノード2に並列にまずアクセスし得る。バッチジョブ1及びバッチジョブ2は、RCM(RCM(1,2)=RCM(2,1)=0)に示されるように任意の同じリソースを消費しないので、ジョブスケジュールオプティマイザ604は、ノード1の次のレベルにおける並列サブノード、すなわちノード3、4、5及び6を検索することを継続し得る。このレベルにおいて、バッチジョブ3及びバッチジョブ5はラベルが1であるファイルAのリソース(RCM(3,5)=RCM(5,3)=0)を消費し、他の並列のジョブはRCMに従って任意の同じリソースを消費しないので、ジョブスケジュールオプティマイザ604は、ノード3及びノード5のシーケンス(順序)を再編成し得る。バッチジョブシーケンス配置1において、ジョブスケジュールオプティマイザ604は、バッチジョブ3にまずファイルAを消費させ得、次に、図5に示された有向重み付きグラフは、図8aに示されたバッチジョブのセット401の再構成された有向重み付きグラフに変更され得、バッチジョブのセット401の総実行時間は、バッチウィンドウ(25分)内の7+5+10//(5+5)=22分である。バッチジョブシーケンス配置2において、ジョブスケジュールオプティマイザ604は、バッチジョブ5にまずファイルAを消費させ得、次に、図5に示された有向重み付きグラフは、図8bに示されたバッチジョブのセット401の再構成された有向重み付きグラフに変更され得、バッチジョブのセット401の総実行時間は、バッチウィンドウ(25分)を超える7+10+5+5+5=27分である。バッチジョブシーケンス配置1におけるバッチジョブのセット401の総実行時間はバッチジョブシーケンス配置2のそれより短いので、バッチジョブシーケンス配置1がより良い解決手段であることが決定できる。有向重み付きグラフの残りのレベルにおけるノードの間の同じリソースの消費に関する他の情報が存在しないので、ジョブスケジュールオプティマイザ604は、図8aに示されたバッチジョブシーケンス配置1における再構成された有向重み付きグラフを、最適化結果として出力し得る。
いくつかの実施形態において、さらに第1実装において、2つの並列ノードより多くの並列バッチジョブがバッチジョブのセット401におけるバッチジョブの間の同じリソースの消費に関する情報に基づいて同じリソースを消費する場合、ジョブスケジュールオプティマイザ604は、これらの並列バッチジョブを、数学的配置などの複数のバッチジョブシーケンス配置に配置し得る。例えば、3つの並列ノード(例えば、ジョブ3、ジョブ5及びジョブ4)が存在する場合、6個のバッチジョブシーケンス配置、すなわち、
が存在し、6個のバッチジョブシーケンス配置は、(ジョブ3、ジョブ4、ジョブ5)、(ジョブ3、ジョブ5、ジョブ4)、(ジョブ4、ジョブ3、ジョブ5)、(ジョブ4、ジョブ5、ジョブ3)、(ジョブ5、ジョブ3、ジョブ4)、及び(ジョブ5、ジョブ4、ジョブ3)であり得る。次にジョブスケジュールオプティマイザ604は、それぞれのバッチジョブシーケンス配置に対するバッチジョブのセットのそれぞれの実行時間を計算して、バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択して、これはジョブスケジュールオプティマイザ604の出力となり得る。いくつかの実施形態において、2又はそれより多くのバッチジョブシーケンス配置がバッチジョブのセットの最小の総実行時間の要件を満たす場合、2又はそれより多くのバッチジョブシーケンス配置のうち1つは、最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとしてランダムで選択され得る。
いくつかの実施形態において、2又はそれより多くのバッチジョブにより消費される他のリソースが存在する場合、上記のプロセスは、バッチジョブのセットにおけるリソースの衝突を回避するだけでなく、バッチジョブのセットの処理時間を低減するべく、繰り返され得る。
いくつかの実施形態において、バッチジョブの間の同じリソースの消費に関する情報に基づいてバッチジョブのセットの有向重み付きグラフを最適化している間、ジョブスケジュールオプティマイザ604は、第2実装において、RCMなどのバッチジョブの間の同じリソースの消費に関する情報にまずアクセスして、バッチジョブのセットにおいて同じリソースを消費する関連するバッチジョブを取得して、次に、同じリソースを消費する関連するバッチジョブが有向重み付きグラフに基づく並列バッチジョブであるかどうかを決定し得る。ジョブスケジュールオプティマイザ604が、同じリソースを消費する関連するバッチジョブが並列バッチジョブであると決定する場合、ジョブスケジュールオプティマイザ604は、当該関連するバッチジョブを、数学的配置などの複数のバッチジョブシーケンス配置に配置し得、次に、ジョブスケジュールオプティマイザ604は、それぞれのバッチジョブシーケンス配置のバッチジョブのセットのそれぞれの総実行時間を計算して、バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンス、すなわち、ジョブスケジュールオプティマイザ604の出力として選択し得る。2又はそれより多くのバッチジョブシーケンス配置がバッチジョブのセットの最小の総実行時間の要件を満たす場合、ジョブスケジュールオプティマイザ604は、2又はそれより多くのバッチジョブシーケンス配置のうち1つを、ジョブスケジュールオプティマイザの出力に対するバッチジョブシーケンス配置としてランダムで選択し得る。
さらに図7に示されたバッチジョブのセット401の有向重み付きグラフ及びセット401の上記のRCMを、ジョブスケジュールオプティマイザ604の入力の例として、ジョブスケジュールオプティマイザ604がどのように第2実装における有向重み付きグラフを最適化するかを説明する。セット401の上記のRCMに基づいて、ジョブスケジュールオプティマイザ604は、バッチジョブ3及びバッチジョブ5の両方がリソースファイルAを消費するので、それらが関連するバッチジョブであることを決定し得る。ジョブスケジュールオプティマイザ604はさらに、ジョブ3及びジョブ5の両方が、バッチジョブのセット401の有向重み付きグラフに基づく並列バッチジョブであることを決定し得る。次に、ジョブスケジュールオプティマイザ604は、以前のように、バッチジョブシーケンス配置1(ジョブ3、ジョブ5)及びバッチジョブシーケンス配置2(ジョブ5、ジョブ3)などの数学的配置で、2つのバッチジョブを配置し得る。上記の実施形態と同様に、バッチジョブシーケンス配置2のそれより短い22分の総実行時間を有するバッチジョブシーケンス配置1は、ジョブスケジュールオプティマイザ604の出力に対するバッチジョブシーケンス配置として選択される。2つより多くの並列バッチジョブが同じリソースを消費する場合又は2又はそれより多くのバッチジョブにより消費される他のリソースが存在する場合、プロセスは上記の実施形態と同様である。
いくつかの実施形態において、バッチジョブの間の同じリソースの消費に関する情報に基づいてバッチジョブのセットの有向重み付きグラフを最適化している間、いくつかのバッチジョブは、同じリソースを消費する上記の関連するバッチジョブであるが、関連するバッチジョブは、有向重み付きグラフに基づく並列バッチジョブではない。例えば、図9は、本開示のいくつかの実施形態に係るバッチジョブの別のセット900の別の有向重み付きグラフを示す。ここで、セット900の総実行時間は22分である。ジョブスケジュールオプティマイザ604は、ジョブ4及びジョブ9の両方が、バッチジョブの間の同じリソースの消費に関する情報に従って同じリソース(ファイルB)を消費し、両方のバッチジョブは上記の関連するバッチジョブであることを決定する。ジョブスケジュールオプティマイザ604は、当該2つのバッチジョブは有向重み付きグラフに基づく並列ジョブではないことを決定し得、ジョブ4及びジョブ9の両方の実行期間が、セット900がそれぞれ実行を開始してから(7分~13分)及び(3分~17分)であることをさらに決定し得る。2つの実行期間は、ジョブスケジュールオプティマイザ604が、リソースファイルBを同時に消費する両方のバッチジョブを決定し得るように、時間オーバーラップを有する。
ここで図10aを参照すると、いくつかの実施形態において、ジョブスケジュールオプティマイザ604は、2つのバッチジョブを、例えば、バッチジョブシーケンス配置3(ジョブ9、ジョブ4)及びバッチジョブシーケンス配置4(ジョブ4、ジョブ9)のような数学的配置などの複数のバッチジョブシーケンス配置に配置し得る。バッチジョブシーケンス配置3において、ジョブスケジュールオプティマイザ604は、図10aに示されるように、バッチジョブ9の前に、7+6-3=10分の実行時間を有する1001で示される空のジョブ4'を追加することにより、ジョブ4にまずリソースファイルBを消費させ、バッチジョブのセット900の再構成された有向重み付きグラフを形成する。次に、セット900のジョブ9に関連するローカル実行時間は、3+10+14=27分である。
ここで図10bを参照すると、バッチジョブシーケンス配置4において、ジョブスケジュールオプティマイザ604は、バッチジョブ4の前に、3+14-7=10分の実行時間を有する1002で示される空のジョブ9'を追加することにより、ジョブ9にまずリソースファイルBを消費させ、バッチジョブのセット900の再構成された有向重み付きグラフを形成する。次に、セット900のジョブ4に関連するローカル実行時間は、7+10+6=23分である。バッチジョブシーケンス配置3及びバッチジョブシーケンス配置4の両方の実行時間は、セット900の実行時間(22分)より長いが、バッチジョブシーケンス配置4の実行時間はバッチジョブシーケンス配置3の実行時間より短い。したがって、ジョブスケジュールオプティマイザ604は、空のバッチジョブ9'を有するバッチジョブシーケンス配置4を、図9に示されたセット900の最適化された有向重み付きグラフとして選択し得る。
いくつかの実施形態において、第1実装では、いくつかのバッチジョブが並列バッチジョブではないが同時に同じリソースを消費することを決定することが困難な場合がある。したがって、全ての並列バッチジョブが処理された後、最適化システム600は、第1実装により出力される最適化された有向重み付きグラフのバッチジョブのセットにおけるバッチジョブの間の同じリソースの消費に関する情報を取得して、第2実装の一部を実行して、さらに最適化された有向重み付きグラフを取得し得る。
図11は、本開示のいくつかの実施形態に係るバッチジョブのスケジューリングを最適化するための例示的な方法1100のフローチャートを示す。方法1100は、図6における最適化システム600、又は任意の他の好適なコンピュータ/コンピューティングシステムにより実装され得る。理解を簡単にするために、方法1100は、図6に関連して説明される。
動作1110において、最適化システム600は、バッチジョブのセットと、バッチジョブのセットにおけるバッチジョブの間の接続関係と、バッチジョブのセットにおけるそれぞれのバッチジョブのそれぞれの実行時間とを取得し得る。
動作1120において、最適化システム600は、バッチジョブのセットの有向重み付きグラフを生成し得、ここで、有向重み付きグラフにおいて、ノードはバッチジョブを表し、2つのノードの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、ノードの重みは、ノードに対応するバッチジョブの実行時間を表し、2つの擬似ノードは、ルートノード及び終点ノードのそれぞれを表す。
動作1130において、最適化システム600は、バッチジョブのセットにおけるバッチジョブの間の同じリソースの消費に関する情報を取得し得る。
動作1140において、最適化システム600は、バッチジョブの間の同じリソースの消費に関する情報に基づいてバッチジョブのセットの有向重み付きグラフを最適化し、バッチジョブのセットの最適化された有向重み付きグラフを取得し得る。
いくつかの実施形態において、図12は、本開示のいくつかの実施形態に係る、図11に示された動作1140を実装するための例示的な方法1200のフローチャートを示す。理解を簡単にするために、方法1200は、図6に関連して説明される。
動作1210において、最適化システム600は、幅優先探索(BFS)アルゴリズムを使用して、バッチジョブのセットの有向重み付きグラフのそれぞれのノードにアクセスし得る。
動作1220において、有向重み付きグラフにおけるノードの複数の並列サブノードが、バッチジョブのセットにおけるバッチジョブの間の同じリソースの消費に関する情報に従って同じリソースを消費すると決定したことに応答して、最適化システム600は、数学的配置などの複数のバッチジョブシーケンス配置に複数の並列サブノードを配置し得る。
動作1230において、最適化システム600は、それぞれのバッチジョブシーケンス配置に対するバッチジョブのセットのそれぞれの総実行時間を計算し得る。
動作1240において、最適化システム600は、バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択し得る。
いくつかの実施形態において、図13は、本開示のいくつかの実施形態に係る、図11に示された動作1140を実装するための例示的な方法1300の別のフローチャートを示す。理解を簡単にするために、方法1300は、図6に関連して説明される。
動作1310において、最適化システム600は、バッチジョブの間の同じリソースの消費に関する情報にアクセスして、バッチジョブのセットにおいて同じリソースを消費する関連するバッチジョブを取得し得る。
動作1320において、最適化システム600は、バッチジョブのセットの有向重み付きグラフに従って、関連するバッチジョブが並列バッチジョブであるかどうかを決定し得る。
関連するバッチジョブが並列バッチジョブであると決定したことに応答して、最適化システム600はまず、関連するバッチジョブを、動作1330における数学的配置などの複数のバッチジョブシーケンス配置に配置し得、次に、動作1340におけるそれぞれのバッチジョブシーケンス配置に対するバッチジョブのセットのそれぞれの総実行時間を計算し得、次に、バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、動作1350で最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択し得る。
関連するバッチジョブが並列バッチジョブではないと決定したことに応答して、最適化システム600はさらに、関連するバッチジョブが動作1360において同時に同じリソースを消費するかどうかを決定し得る。
関連するバッチジョブが同時に同じリソースを消費すると決定したことに応答して、最適化システム600はまず、関連するバッチジョブを、動作1370における数学的配置などの複数のバッチジョブシーケンス配置に配置し得、次に、動作1380における複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、実行時間を有するそれぞれの空のバッチジョブを追加し得、動作1390においてそれぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対して、バッチジョブのセットのそれぞれの実行時間を計算し得、次に、バッチジョブのセットの最小の総実行時間を有するそれぞれの空のバッチジョブを有するバッチジョブシーケンス配置を、動作1395で最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択し得る。
いくつかの実施形態において、図14は、本開示のいくつかの実施形態に係る、図13に示された動作1370を実装するための例示的な方法1400のフローチャートを示す。理解を簡単にするために、方法1400は、図6に関連して説明される。
動作1410において、最適化システム600は、有向重み付きグラフにおけるルートノードから関連するノードのそれぞれのノードのそれぞれの実行時間を決定し得る。
動作1420において、最適化システム600は、関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有するかどうかを決定し得る。
動作1430において、関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有すると決定したことに応答して、最適化システム600は、関連するバッチジョブが同時に同じリソースを消費すると決定し得る。そうでなければ、1440において、最適化システム600は、関連するバッチジョブが同時に同じリソースを消費しないと決定し得る。
いくつかの実施形態において、バッチジョブの間の同じリソースの消費に関する情報はRCMとして表され、当該RCMはn×n行列であり、nはセットにおけるバッチジョブの数であり、RCMのi番目の行及びj番目の列における要素は、i番目のバッチジョブ及びj番目のバッチジョブが同時にリソースを消費する状況を示す。いくつかの実施形態において、リソースはRCMにおいて別々にラベリングされており、i番目のバッチジョブ及びj番目のバッチジョブが任意の同じリソースを消費しない場合、RCM(i,j)及びRCM(j,i)の2つの要素は0であり、i番目のバッチジョブ及びj番目のバッチジョブが、ラベルが1であるファイルAのリソースを消費する場合、RCM(i,j)及びRCM(j,i)の2つの要素は1であり、i番目のバッチジョブ及びj番目のバッチジョブが、ラベルが2であるファイルBのリソースを消費する場合、RCM(i,j)及びRCM(j,i)の2つの要素は2であり、以下同様である。
本開示は、統合の考え得る任意の技術的な詳細レベルにおけるシステム、方法若しくはコンピュータプログラム製品又はその組み合わせであってよい。コンピュータプログラム製品は、プロセッサに、本開示の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数可)を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、限定されるものではないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述のものの任意の好適な組み合わせとしてよい。コンピュータ可読記憶媒体のより具体的な例についての非包括的リストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカード又は命令を記録した溝に突起した構造体などの機械的にエンコードされたデバイス、及び前述の任意の好適な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書において用いられる場合、電波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)又は、ワイヤを通じて伝送される電気信号などの一時的な信号それ自体とは解釈されない。
本明細書に記載のコンピュータ可読プログラム命令は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、若しくは無線ネットワーク、又はその組み合わせを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに又は外部コンピュータ若しくは外部ストレージデバイスにダウンロードできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、若しくはエッジサーバ、又はその組み合わせを含んでよい。各コンピューティング/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するように転送する。
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、又は、Smalltalk(登録商標)、C++などといったオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語を含む1又は複数のプログラミング言語の任意の組み合わせにおいて記述されたソースコード又はオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータで全体的に、スタンドアローン型ソフトウェアパッケージとしてユーザのコンピュータで部分的に、ユーザのコンピュータで部分的に、及びリモートコンピュータで部分的に又はリモートコンピュータ若しくはサーバで全体的に実行されてよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含むあらゆる種類のネットワークを通じてユーザのコンピュータに接続されてよく、この接続は、(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われてよい。いくつかの実施形態において、例えば、プログラム可能なロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム可能なロジックアレイ(PLA)を含む電子回路は、本開示の態様を実行するべく、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してよい。
本開示の態様は、本開示の実施形態による方法、装置(システム)及びコンピュータプログラム製品のフローチャート図若しくはブロック図又はその両方を参照して本明細書で説明される。フローチャート図若しくはブロック図、又はその両方の各ブロック、並びに、フローチャート図若しくはブロック図、又はその両方のブロックの組み合わせは、コンピュータ可読プログラム命令により実装され得ることを理解されたい。
これらのコンピュータ可読プログラム命令は、マシンを生成するようにコンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供して、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置を介して実行される命令が、フローチャート若しくはブロック図の単数若しくは複数のブロック、又はその両方において指定されている機能/動作を実装する手段を生成するようにしてよい。これらのコンピュータ可読プログラム命令はまたコンピュータ可読記憶媒体内に格納されてよく、当該命令は、コンピュータ、プログラム可能データ処理装置若しくは他のデバイス、又はその組み合わせに対し、特定の態様で機能するよう命令し得、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャート若しくはブロック図の単数若しくは複数のブロック又はその組み合わせに指定された機能/動作の態様を実装する命令を含む製品を備えるようになる。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能な装置、又は他のデバイス上で一連の動作ステップを実行させてコンピュータ実装プロセスを生成するように、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイスにロードして、コンピュータ、他のプログラム可能な装置、又は他のデバイス上で実行される命令が、フローチャート若しくはブロック図の単数若しくは複数のブロック、又はその両方において指定されている機能/動作を実装するようにしてもよい。
図中のフローチャート及びブロック図は、本開示の様々な実施形態に係るシステム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の部分を表す場合がある。いくつかの代替的な実装において、ブロックに記載された機能は図面に記載された順序以外の順序で発生し得る。例えば、連続して示されている2つのブロックは、実際は、1つのステップとして実現されても、同時に、実質的に同時に、部分的に若しくは全体的に時間重複する形で実行されてもよく、又は、ブロックは、関与する機能に応じて逆の順序で実行される場合もあり得る。ブロック図若しくはフローチャート図又はその両方の各ブロック、並びにブロック図若しくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能若しくは動作を実行、又は、専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装できることにも留意されたい。
本開示の様々な実施形態の説明は、図示の目的で提示されており、包括的である又は開示された実施形態に限定されることを意図するものではない。記載された実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、若しくは市場に見られる技術に対する技術的改善点を最も良く説明するように、又は、当業者が本明細書に開示された実施形態を理解できるように選択されている。

Claims (27)

  1. 1又は複数のプロセッサによって、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの有向重み付きグラフを生成する段階であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する段階と
    を備え、
    前記有向重み付きグラフを最適化する段階が、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの前記有向重み付きグラフのそれぞれのノードにアクセスする段階と、
    前記有向重み付きグラフにおけるノードの複数の並列サブノードが、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に従って前記同じリソースを消費すると決定したことに応答して、前記1又は複数のプロセッサによって、前記複数の並列サブノードを複数のバッチジョブシーケンス配置に配置する段階と、
    前記1又は複数のプロセッサによって、それぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する段階と
    を有する、コンピュータ実装方法。
  2. 1又は複数のプロセッサによって、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの有向重み付きグラフを生成する段階であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する段階と、
    を備え、
    前記有向重み付きグラフを最適化する段階が、
    前記1又は複数のプロセッサによって、前記バッチジョブの間の同じリソースの消費に関する前記情報にアクセスして、前記バッチジョブのセットにおいて前記同じリソースを消費する関連するバッチジョブを取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの前記有向重み付きグラフに従って、前記関連するバッチジョブが並列バッチジョブであるかどうかを決定する段階と、
    前記関連するバッチジョブが前記並列バッチジョブであると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブを複数のバッチジョブシーケンス配置に配置する段階と、
    前記1又は複数のプロセッサによって、それぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する段階と
    を有する、コンピュータ実装方法。
  3. 前記有向重み付きグラフを最適化する段階はさらに、
    前記関連するバッチジョブは前記並列バッチジョブではないと決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する段階と、
    前記関連するバッチジョブが同時に前記同じリソースを消費すると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブを前記複数のバッチジョブシーケンス配置に配置する段階と、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、前記1又は複数のプロセッサによって、実行時間を有するそれぞれの空のバッチジョブを追加する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブと前記バッチジョブのセットの前記最小の総実行時間とを有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用される前記バッチジョブシーケンスとして選択する段階と
    を備える、請求項に記載のコンピュータ実装方法。
  4. 1又は複数のプロセッサによって、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの有向重み付きグラフを生成する段階であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得して、前記バッチジョブのセットにおいて前記同じリソースを消費する関連するバッチジョブを取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する段階と
    を備え、
    前記有向重み付きグラフを最適化する段階はさらに、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの前記有向重み付きグラフに従って、前記関連するバッチジョブが並列バッチジョブであるかどうかを決定する段階と、
    前記関連するバッチジョブは前記並列バッチジョブではないと決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する段階と、
    前記関連するバッチジョブが同時に前記同じリソースを消費すると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブを複数のバッチジョブシーケンス配置に配置する段階と、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、前記1又は複数のプロセッサによって、実行時間を有するそれぞれの空のバッチジョブを追加する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブと前記バッチジョブのセットの最小の総実行時間とを有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する段階と
    を有する、コンピュータ実装方法。
  5. 前記有向重み付きグラフを最適化する段階が、
    前記関連するバッチジョブが前記並列バッチジョブではなく、同時に前記同じリソースを消費するものである場合に、前記同じリソースの同時消費を避けるべく前記有向重み付きグラフを更に最適化する段階と、
    前記バッチジョブシーケンス配置に従って前記バッチジョブの処理を実行する段階と
    更に有し、
    前記処理を実行する段階が、
    各バッチジョブに対して、当該バッチジョブの実行中に前記リソースの1または複数をロックして、他のバッチジョブが前記同じリソースを消費することを防ぎ、そして、各バッチジョブの完了後に前記リソースをリリースさせる段階を有する、請求項2に記載のコンピュータ実装方法。
  6. 前記有向重み付きグラフを最適化する段階はさらに、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、前記1又は複数のプロセッサによって、実行時間を有するそれぞれの空のバッチジョブを追加する段階、
    を有し、
    前記バッチジョブのセットのそれぞれの総実行時間を計算する段階が、前記それぞれの空のバッチジョブに対して行われる、
    請求項5に記載のコンピュータ実装方法。
  7. 前記有向重み付きグラフにおいて、第1擬似ノードはルートノードを表し、第2擬似ノードは終点ノードを表し、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する前記段階は、
    前記1又は複数のプロセッサによって、前記有向重み付きグラフにおける前記ルートノードから関連するノードのそれぞれのノードのそれぞれの実行時間を決定する段階と、
    前記1又は複数のプロセッサによって、前記関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有するかどうかを決定する段階と、
    前記関連するノードのそれぞれのノードの前記それぞれの実行期間が前記時間オーバーラップを有すると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費すると決定する段階と
    を備える、請求項3、又は6のいずれか一項に記載のコンピュータ実装方法。
  8. 前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する前記段階はさらに、
    前記関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有しないと決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費しないと決定する段階を備える、請求項3、、6又は7のいずれか一項に記載のコンピュータ実装方法。
  9. 前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報はリソース消費量行列(RCM)として表され、前記RCMは、n×n行列であり、nは前記セットにおけるバッチジョブの数であり、前記RCMのi番目の行及びj番目の列における要素は、i番目のバッチジョブ及びj番目のバッチジョブがリソースを消費する状況を示す、請求項1からのいずれか一項に記載のコンピュータ実装方法。
  10. 処理ユニットと、
    前記処理ユニットに結合されそこに命令を格納するメモリと
    を備えるシステムであって、
    前記命令は、前記処理ユニットにより実行される場合、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する段階と、
    前記バッチジョブのセットの有向重み付きグラフを生成する段階であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、段階と、
    1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する段階と
    を備える動作を実行
    前記有向重み付きグラフを最適化する段階は、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの前記有向重み付きグラフのそれぞれのノードにアクセスする段階と、
    前記有向重み付きグラフにおけるノードの複数の並列サブノードが、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に従って前記同じリソースを消費すると決定したことに応答して、前記1又は複数のプロセッサによって、前記複数の並列サブノードを複数のバッチジョブシーケンス配置に配置する段階と、
    前記1又は複数のプロセッサによって、それぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する段階と
    を有する、システム。
  11. 処理ユニットと、
    前記処理ユニットに結合されそこに命令を格納するメモリと
    を備えるシステムであって、
    前記命令は、前記処理ユニットにより実行される場合、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する段階と、
    前記バッチジョブのセットの有向重み付きグラフを生成する段階であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、段階と、
    1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する段階と
    を備える動作を実行し、
    前記有向重み付きグラフを最適化する段階は、
    前記1又は複数のプロセッサによって、前記バッチジョブの間の同じリソースの消費に関する前記情報にアクセスして、前記バッチジョブのセットにおいて前記同じリソースを消費する関連するバッチジョブを取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの前記有向重み付きグラフに従って、前記関連するバッチジョブが並列バッチジョブであるかどうかを決定する段階と、
    前記関連するバッチジョブが前記並列バッチジョブであると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブを複数のバッチジョブシーケンス配置に配置する段階と、
    前記1又は複数のプロセッサによって、それぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する段階と
    有する、記載のシステム。
  12. 前記有向重み付きグラフを最適化する段階はさらに、
    前記関連するバッチジョブは前記並列バッチジョブではないと決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する段階と、
    前記関連するバッチジョブが同時に前記同じリソースを消費すると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブを前記複数のバッチジョブシーケンス配置に配置する段階と、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、前記1又は複数のプロセッサによって、実行時間を有するそれぞれの空のバッチジョブを追加する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブと前記バッチジョブのセットの前記最小の総実行時間とを有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用される前記バッチジョブシーケンスとして選択する段階と
    を備える、請求項11に記載のシステム。
  13. 処理ユニットと、
    前記処理ユニットに結合されそこに命令を格納するメモリと
    を備えるシステムであって、
    前記命令は、前記処理ユニットにより実行される場合、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する段階と、
    前記バッチジョブのセットの有向重み付きグラフを生成する段階であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、段階と、
    1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得して、ットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得して、前記バッチジョブのセットにおいて前記同じリソースを消費する関連するバッチジョブを取得する段階と、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する段階と
    を備える動作を実行し、
    前記有向重み付きグラフを最適化する段階はさらに、
    前記1又は複数のプロセッサによって、前記バッチジョブのセットの前記有向重み付きグラフに従って、前記関連するバッチジョブが並列バッチジョブであるかどうかを決定する段階と、
    前記関連するバッチジョブは前記並列バッチジョブではないと決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する段階と、
    前記関連するバッチジョブが同時に前記同じリソースを消費すると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブを複数のバッチジョブシーケンス配置に配置する段階と、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、前記1又は複数のプロセッサによって、実行時間を有するそれぞれの空のバッチジョブを追加する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する段階と、
    前記1又は複数のプロセッサによって、前記それぞれの空のバッチジョブと前記バッチジョブのセットの最小の総実行時間とを有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する段階と
    を有する、システム。
  14. 前記有向重み付きグラフを最適化する段階が、
    前記関連するバッチジョブが前記並列バッチジョブではなく、同時に前記同じリソースを消費するものである場合に、前記同じリソースの同時消費を避けるべく前記有向重み付きグラフを更に最適化する段階と、
    前記バッチジョブシーケンス配置に従って前記バッチジョブの処理を実行する段階と
    更に有し、
    前記処理を実行する段階が、
    各バッチジョブに対して、当該バッチジョブの実行中に前記リソースの1または複数をロックして、他のバッチジョブが前記同じリソースを消費することを防ぎ、そして、各バッチジョブの完了後に前記リソースをリリースさせる段階を有する、請求項11に記載のシステム。
  15. 前記有向重み付きグラフを最適化する段階はさらに、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、前記1又は複数のプロセッサによって、実行時間を有するそれぞれの空のバッチジョブを追加する段階、
    を有し、
    前記バッチジョブのセットのそれぞれの総実行時間を計算する段階が、前記それぞれの空のバッチジョブに対して行われる、請求項14に記載のシステム。
  16. 前記有向重み付きグラフにおいて、第1擬似ノードはルートノードを表し、第2擬似ノードは終点ノードを表し、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する前記段階は、
    前記1又は複数のプロセッサによって、前記有向重み付きグラフにおける前記ルートノードから関連するノードのそれぞれのノードのそれぞれの実行時間を決定する段階と、
    前記1又は複数のプロセッサによって、前記関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有するかどうかを決定する段階と、
    前記関連するノードのそれぞれのノードの前記それぞれの実行期間が前記時間オーバーラップを有すると決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費すると決定する段階と
    を備える、請求項12、13又は15のいずれか一項に記載のシステム。
  17. 前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する前記段階はさらに、
    前記関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有しないと決定したことに応答して、前記1又は複数のプロセッサによって、前記関連するバッチジョブが同時に前記同じリソースを消費しないと決定する段階を備える、請求項12、13、15又は16のいずれか一項に記載のシステム。
  18. 前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報はリソース消費量行列(RCM)として表され、前記RCMは、n×n行列であり、nは前記セットにおけるバッチジョブの数であり、前記RCMのi番目の行及びj番目の列における要素は、i番目のバッチジョブ及びj番目のバッチジョブがリソースを消費する状況を示す、請求項10から17のいずれか一項に記載のシステム。
  19. プロセッサに、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する手順と、
    前記バッチジョブのセットの有向重み付きグラフを生成する手順であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、手順と、
    前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得する手順と、
    前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する手順と
    を実行させ、
    前記有向重み付きグラフを最適化する手順は、
    前記バッチジョブのセットの前記有向重み付きグラフのそれぞれのノードにアクセスする手順と、
    前記有向重み付きグラフにおけるノードの複数の並列サブノードが、前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に従って前記同じリソースを消費すると決定したことに応答して、前記複数の並列サブノードを複数のバッチジョブシーケンス配置に配置する手順と、
    それぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する手順と、
    前記バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する手順と
    を有する、コンピュータプログラム。
  20. プロセッサに、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する手順と、
    前記バッチジョブのセットの有向重み付きグラフを生成する手順であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、手順と、
    前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得する手順と、
    前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する手順と
    を実行させ、
    前記有向重み付きグラフを最適化する手順が、
    前記バッチジョブの間の同じリソースの消費に関する前記情報にアクセスして、前記バッチジョブのセットにおいて前記同じリソースを消費する関連するバッチジョブを取得する手順と、
    前記バッチジョブのセットの前記有向重み付きグラフに従って、前記関連するバッチジョブが並列バッチジョブであるかどうかを決定する手順と、
    前記関連するバッチジョブが前記並列バッチジョブであると決定したことに応答して、前記関連するバッチジョブを複数のバッチジョブシーケンス配置に配置する手順と、
    それぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する手順と、
    前記バッチジョブのセットの最小の総実行時間を有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する手順と
    有する、コンピュータプログラム。
  21. 前記有向重み付きグラフを最適化する手順はさらに、
    前記関連するバッチジョブは前記並列バッチジョブではないと決定したことに応答して、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する手順と、
    前記関連するバッチジョブが同時に前記同じリソースを消費すると決定したことに応答して、前記関連するバッチジョブを前記複数のバッチジョブシーケンス配置に配置する手順と、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、実行時間を有するそれぞれの空のバッチジョブを追加する手順と、
    前記それぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する手順と、
    前記それぞれの空のバッチジョブと前記バッチジョブのセットの前記最小の総実行時間とを有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する手順と
    を備える、請求項20に記載のコンピュータプログラム。
  22. プロセッサに、
    バッチジョブのセットと、
    前記バッチジョブのセットにおけるバッチジョブの間の接続関係と、
    前記バッチジョブのセットにおける各バッチジョブのそれぞれの実行時間と
    を取得する手順と、
    前記バッチジョブのセットの有向重み付きグラフを生成する手順であって、前記有向重み付きグラフにおいて、ノードはバッチジョブを表し、前記ノードのうち2つの間の有向エッジは2つの対応するバッチジョブの間の有向接続関係を表し、前記ノードの重みは前記ノードに対応する前記バッチジョブの前記実行時間を表す、手順と、
    前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する情報を取得して、前記バッチジョブのセットにおいて前記同じリソースを消費する関連するバッチジョブを取得する手順と、
    前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報に基づいて、前記有向重み付きグラフを最適化する手順と
    を実行させ、
    前記有向重み付きグラフを最適化する手順はさらに、
    前記バッチジョブのセットの前記有向重み付きグラフに従って、前記関連するバッチジョブが並列バッチジョブであるかどうかを決定する手順と、
    前記関連するバッチジョブは前記並列バッチジョブではないと決定したことに応答して、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する手順と、
    前記関連するバッチジョブが同時に前記同じリソースを消費すると決定したことに応答して、前記関連するバッチジョブを複数のバッチジョブシーケンス配置に配置する手順と、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、実行時間を有するそれぞれの空のバッチジョブを追加する手順と、
    前記それぞれの空のバッチジョブを有するそれぞれのバッチジョブシーケンス配置に対する前記バッチジョブのセットのそれぞれの総実行時間を計算する手順と、
    前記それぞれの空のバッチジョブと前記バッチジョブのセットの最小の総実行時間とを有するバッチジョブシーケンス配置を、前記最適化された有向重み付きグラフにおいて使用されるバッチジョブシーケンスとして選択する手順と
    を有する、コンピュータプログラム。
  23. 前記有向重み付きグラフを最適化する段階が、
    前記関連するバッチジョブが前記並列バッチジョブではなく、同時に前記同じリソースを消費するものである場合に、前記同じリソースの同時消費を避けるべく前記有向重み付きグラフを更に最適化する手順と、
    前記バッチジョブシーケンス配置に従って前記バッチジョブの処理を実行する手順と
    更に有し、
    前記処理を実行する手順が、
    各バッチジョブに対して、当該バッチジョブの実行中に前記リソースの1または複数をロックして、他のバッチジョブが前記同じリソースを消費することを防ぎ、そして、各バッチジョブの完了後に前記リソースをリリースさせる手順を有する、請求項20に記載のコンピュータプログラム。
  24. 前記有向重み付きグラフを最適化する手順はさらに、
    前記複数のバッチジョブシーケンス配置の各々について、関連するバッチジョブのそれぞれの部分とのリソース衝突を回避すべく、実行時間を有するそれぞれの空のバッチジョブを追加する手順、
    を有し、
    前記バッチジョブのセットのそれぞれの総実行時間を計算する手順が、前記それぞれの空のバッチジョブに対して行われる、請求項23に記載のコンピュータプログラム。
  25. 前記有向重み付きグラフにおいて、第1擬似ノードはルートノードを表し、第2擬似ノードは終点ノードを表し、前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する前記手順は、
    前記有向重み付きグラフにおける前記ルートノードから関連するノードのそれぞれのノードのそれぞれの実行時間を決定する手順と、
    前記関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有するかどうかを決定する手順と、
    前記関連するノードのそれぞれのノードの前記それぞれの実行期間が前記時間オーバーラップを有すると決定したことに応答して、前記関連するバッチジョブが同時に前記同じリソースを消費すると決定する手順と
    を備える、請求項21、22又は24のいずれか一項に記載のコンピュータプログラム。
  26. 前記関連するバッチジョブが同時に前記同じリソースを消費するかどうかを決定する前記手順はさらに、
    前記関連するノードのそれぞれのノードのそれぞれの実行期間が時間オーバーラップを有しないと決定したことに応答して、前記関連するバッチジョブが同時に前記同じリソースを消費しないと決定する手順を備える、請求項21、22、24又は25のいずれか一項に記載のコンピュータプログラム。
  27. 前記バッチジョブのセットにおける前記バッチジョブの間の同じリソースの消費に関する前記情報はリソース消費量行列(RCM)として表され、前記RCMは、n×n行列であり、nは前記セットにおけるバッチジョブの数であり、前記RCMのi番目の行及びj番目の列における要素は、i番目のバッチジョブ及びj番目のバッチジョブがリソースを消費する状況を示す、請求項19から26のいずれか一項に記載のコンピュータプログラム。
JP2021201066A 2020-12-15 2021-12-10 コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化) Active JP7828692B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/121,934 US12008399B2 (en) 2020-12-15 2020-12-15 Optimization for scheduling of batch jobs
US17/121,934 2020-12-15

Publications (2)

Publication Number Publication Date
JP2022094945A JP2022094945A (ja) 2022-06-27
JP7828692B2 true JP7828692B2 (ja) 2026-03-12

Family

ID=79270166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021201066A Active JP7828692B2 (ja) 2020-12-15 2021-12-10 コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化)

Country Status (4)

Country Link
US (1) US12008399B2 (ja)
JP (1) JP7828692B2 (ja)
DE (1) DE102021129633A1 (ja)
GB (1) GB2604704A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4163790B1 (en) 2021-10-05 2026-01-28 Tata Consultancy Services Limited Method and system for predicting batch processes
CN116501499B (zh) * 2023-05-17 2023-09-19 建信金融科技有限责任公司 数据跑批方法、装置、电子设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018193A (ja) 2005-07-06 2007-01-25 Toshiba Corp 実行情報推定装置、実行情報推定方法および実行情報推定プログラム
JP2009230584A (ja) 2008-03-24 2009-10-08 Nomura Research Institute Ltd ジョブ処理システムおよびジョブ管理方法
US20110107341A1 (en) 2009-11-03 2011-05-05 International Business Machines Corporation Job scheduling with optimization of power consumption
JP2011100263A (ja) 2009-11-05 2011-05-19 Nec Corp 仮想コンピュータシステム、仮想コンピュータ管理方法および管理プログラム
JP2011118794A (ja) 2009-12-07 2011-06-16 Fujitsu Ltd バッチジョブ処理時間推定プログラム、方法及び装置
JP2011123817A (ja) 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
JP2012048331A (ja) 2010-08-25 2012-03-08 Nomura Research Institute Ltd ジョブ管理装置およびコンピュータプログラム
JP2015022606A (ja) 2013-07-22 2015-02-02 富士通株式会社 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
WO2016079802A1 (ja) 2014-11-18 2016-05-26 株式会社日立製作所 バッチ処理システムおよびその制御方法
US20180276040A1 (en) 2017-03-23 2018-09-27 Amazon Technologies, Inc. Event-driven scheduling using directed acyclic graphs
JP2020177599A (ja) 2019-04-23 2020-10-29 日本電気株式会社 ジョブ管理方法、ジョブ管理装置、ジョブ管理システム、プログラム
CN111949832A (zh) 2020-08-14 2020-11-17 中国工商银行股份有限公司 批量作业依赖关系的解析方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6805502B2 (en) 2001-01-23 2004-10-19 Xerox Corporation Method for determining optimal batch sizes for processing print jobs in a printing environment
US7168064B2 (en) 2003-03-25 2007-01-23 Electric Cloud, Inc. System and method for supplementing program builds with file usage information
US20050198636A1 (en) 2004-02-26 2005-09-08 International Business Machines Corporation Dynamic optimization of batch processing
US8171474B2 (en) 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US8572616B2 (en) 2006-05-25 2013-10-29 International Business Machines Corporation Apparatus, system, and method for managing z/OS batch jobs with prerequisites
US20130139164A1 (en) * 2011-11-28 2013-05-30 Sap Ag Business Process Optimization
US20140298343A1 (en) * 2013-03-26 2014-10-02 Xerox Corporation Method and system for scheduling allocation of tasks
US9645848B2 (en) 2013-05-20 2017-05-09 International Business Machines Corporation Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
US10977092B2 (en) 2015-10-16 2021-04-13 Qualcomm Incorporated Method for efficient task scheduling in the presence of conflicts
US10268512B2 (en) * 2016-06-23 2019-04-23 International Business Machines Corporation Optimizing simultaneous startup or modification of inter-dependent machines with specified priorities
FR3076370B1 (fr) 2017-12-30 2020-11-27 Bull Sas Procede et systeme pour l'optimisation de l'ordonnancement de traitements par lot

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018193A (ja) 2005-07-06 2007-01-25 Toshiba Corp 実行情報推定装置、実行情報推定方法および実行情報推定プログラム
JP2009230584A (ja) 2008-03-24 2009-10-08 Nomura Research Institute Ltd ジョブ処理システムおよびジョブ管理方法
US20110107341A1 (en) 2009-11-03 2011-05-05 International Business Machines Corporation Job scheduling with optimization of power consumption
JP2011100263A (ja) 2009-11-05 2011-05-19 Nec Corp 仮想コンピュータシステム、仮想コンピュータ管理方法および管理プログラム
JP2011118794A (ja) 2009-12-07 2011-06-16 Fujitsu Ltd バッチジョブ処理時間推定プログラム、方法及び装置
JP2011123817A (ja) 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
JP2012048331A (ja) 2010-08-25 2012-03-08 Nomura Research Institute Ltd ジョブ管理装置およびコンピュータプログラム
JP2015022606A (ja) 2013-07-22 2015-02-02 富士通株式会社 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
WO2016079802A1 (ja) 2014-11-18 2016-05-26 株式会社日立製作所 バッチ処理システムおよびその制御方法
US20180276040A1 (en) 2017-03-23 2018-09-27 Amazon Technologies, Inc. Event-driven scheduling using directed acyclic graphs
JP2020177599A (ja) 2019-04-23 2020-10-29 日本電気株式会社 ジョブ管理方法、ジョブ管理装置、ジョブ管理システム、プログラム
CN111949832A (zh) 2020-08-14 2020-11-17 中国工商银行股份有限公司 批量作业依赖关系的解析方法及装置

Also Published As

Publication number Publication date
GB2604704A (en) 2022-09-14
US20220188148A1 (en) 2022-06-16
GB202117268D0 (en) 2022-01-12
DE102021129633A1 (de) 2022-06-15
US12008399B2 (en) 2024-06-11
JP2022094945A (ja) 2022-06-27

Similar Documents

Publication Publication Date Title
US8380837B2 (en) Software license management within a cloud computing environment
US8909769B2 (en) Determining optimal component location in a networked computing environment
CN102763085B (zh) 使用云服务目录来供应服务
US9503549B2 (en) Real-time data analysis for resource provisioning among systems in a networked computing environment
US8966175B2 (en) Automated storage provisioning within a clustered computing environment
US20130311988A1 (en) Migrating virtual machines between networked computing environments based on resource utilization
US20140201569A1 (en) Disaster recovery in a networked computing environment
US20140136712A1 (en) Cloud resources as a service multi-tenant data model
US9225662B2 (en) Command management in a networked computing environment
US10635579B2 (en) Optimizing tree pruning for decision trees
US20190268435A1 (en) Resource pre-caching and tenant workflow recognition using cloud audit records
CN114327852A (zh) 基于性能和成本来平衡大型机和分布式工作负载
JP2022549590A (ja) インテグリティ監視のためのミューテーション・イベント検出
WO2023152364A1 (en) Workflow data redistribution in hybrid public/private computing environments
JP2023538941A (ja) コンテナ化された環境のインテリジェントバックアップ及び復元
JP7828692B2 (ja) コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化)
US11740825B2 (en) Object lifecycle management in a dispersed storage system
US20170161333A1 (en) Searching data on a synchronization data stream
US11204923B2 (en) Performance for query execution
JP7410040B2 (ja) 仮想エージェント・システムにおけるクエリ認識レジリエンシの判断
US9342527B2 (en) Sharing electronic file metadata in a networked computing environment
US10067849B2 (en) Determining dynamic statistics based on key value patterns
US20230103149A1 (en) Adaptively compressing a deep learning model
US20230394026A1 (en) Techniques for learning the best order of identifiers system in an online manner
US20230229469A1 (en) Probe deployment

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20250916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20260210

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20260217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260226

R150 Certificate of patent or registration of utility model

Ref document number: 7828692

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150