JP4308241B2 - ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム - Google Patents

ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム Download PDF

Info

Publication number
JP4308241B2
JP4308241B2 JP2006305614A JP2006305614A JP4308241B2 JP 4308241 B2 JP4308241 B2 JP 4308241B2 JP 2006305614 A JP2006305614 A JP 2006305614A JP 2006305614 A JP2006305614 A JP 2006305614A JP 4308241 B2 JP4308241 B2 JP 4308241B2
Authority
JP
Japan
Prior art keywords
task
job
computer
processing
node
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.)
Expired - Fee Related
Application number
JP2006305614A
Other languages
English (en)
Other versions
JP2008123205A (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
Priority to JP2006305614A priority Critical patent/JP4308241B2/ja
Priority to US11/933,725 priority patent/US8219997B2/en
Publication of JP2008123205A publication Critical patent/JP2008123205A/ja
Application granted granted Critical
Publication of JP4308241B2 publication Critical patent/JP4308241B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Description

本発明は、ジョブのタスクを分散処理する技術に関し、より詳細には、ジョブ実行時に自律的にタスクを分割して処理する方法、その方法を実現するシステム及びその方法をコンピュータで実現するためのコンピュータプログラムに関する。
グリッド・コンピューティング等の分散処理においては、計算機資源のリソースに対してジョブ(タスク)を割り当てることは、ジョブのパフォーマンス(終了時刻等)やリソース環境の稼働率を左右する重要な決定要素となっている。非特許文献1には、各ジョブの動作特徴を予め観測し、幾つかのパラメータ(CPU平均使用率、CPU使用のバースト率等)で表現されるプロファイルを作成して、割り当ての計画に利用する方法が示されている。ジョブの実行中に特別なドライバー等を用いて、リソースのサービス品質であるQoS(Quality of Service)を制御することによりその計画は遂行される。しかし、この方法には、プロファイルのない初めてのようなジョブに対応できないこと、たとえプロファイルの少数パラメータを利用しても複数ジョブがリソースを共有する状況を正確に予測することが困難であること、リソースのQoS制御のために特別な処理が必要であること等、重大な課題が残っている。
一方、非特許文献2には、稼動中のジョブを動的に他のリソース環境に再配置させる手法が示されている。アプリケーション層でのジョブには一切の修正を加えることなく、タスクに分割されたジョブ全体を他のリソース環境に移動させるので、実行中のジョブの状況に応じて実行の計画を動的に変更するといった用途に適用できる。しかし、タスクの構成を変えることなくジョブ全体を移動単位とするので、移動先として十分に適合するリソース環境が利用可能であることを前提とする。従って、高い使用率で稼動するリソース環境の場合には、移動先の割り当てが困難となることがある。それに、移動した後のジョブ実行の品質を保証するものではない。
また、特許文献1には、各ノードのタスク負荷量を定期的に格納するテーブルを共通アクセス可能な各ノードの共有メモリに有し、自ノード内で生成されたタスクが制限時間内に処理できないと判断されるときに、共有メモリを参照して自ノードより低いタスク負荷量の他ノードを探索し、処理できないタスクの代替処理を他ノードに依頼するようにした動的負荷分散並列計算機システムが示されている。各ノードで処理タスクが増加したときに、その増加分に対して動的に対応することができる。しかし、絶えず全てのノードにおけるタスク負荷量を検査してそのデータを各ノードの共有メモリに保持しておかなければならず、共有メモリを参照したときに自ノードより低いタスク負荷量の他ノードが常に見出される保証はなく、タスクの代替処理を他ノードに依頼できない事態も起こり得る。
さらに、特許文献2には、管理サーバにより、ジョブが割り当てられた計算機の稼動状況を監視し、稼動状況がジョブ終了時間等の所定の条件を満たさない場合に未完了のジョブを検出し、未完了のジョブを実行するのに必要なリソースの情報に基づき実行可能な他の計算機を抽出して、未完了のジョブを他の計算機に割り当てるようにしたジョブスケジューリング管理方法が示されている。リソースの稼動状況に応じたジョブスケジューリングを行うことができるが、ジョブを実行する複数の計算機について、ジョブ実行内容、ジョブ実行に必要なリソース、使用可能なリソース等の情報を常に管理サーバで集中管理して、管理サーバだけでジョブのスケジュールをしなければならない。
B. Urgaonkar and P. Shenoy andT. Roscoe, "ResourceOverbooking and Application Profiling in Shared Hosting Platforms", In Proceedings of the FifthSymposium on Operating Systems Design and Implementation (OSDI), December 2002. Paul Ruth, Junghwan Rhee,Dongyan Xu, Rick Kennell, Sebastien Goasguen, "Autonomic Live Adaptation ofVirtual Computational Environments in a Multi Domain Infrastructure", International Conference onAutonomic Computing (ICAC) 2006 特開平9−160884号公報 特開2005−31771号公報
本発明は、上記先行技術の課題を解決することができる、特に、稼動状況を事前に予測できないようなジョブ及びリソース環境に対して、SLA(Service Level Agreement)及びSLO(Service Level Objective)等のジョブの要求を満たすように動的に且つ自律的にリソースの割り当て及び変更を行うことができるジョブ実行を実現することを目的とする。本発明の目的には、そのようなジョブ実行を実現する、ジョブを実行時に自律的にタスクを分割して処理する方法、その方法を実現するシステム及びその方法をコンピュータで実現するためのコンピュータプログラムを提供することが含まれる。本発明では、上記先行技術の課題を解決する際に、既に利用可能なリソース環境(Globus Toolkit 4 等)の上で動作させる等の汎用性も考慮され、さらに、均一な処理性能を有するリソース環境だけでなく、異機種混合のリソース環境や処理性能が変化するようなリソース環境においても、柔軟で適切なリソースの割り当てを行えることも考慮されている。
本発明によるネットワーク接続された複数のコンピュータで任意のタスク数に分割可能なジョブを実行する方法では、少なくとも次のことを行う。先ず、複数のコンピュータの中の1つのコンピュータにジョブを提供して、1つのコンピュータでジョブのタスクを所定時間処理する。そして、1つのコンピュータの処理装置により、所定時間におけるタスク処理の進捗率を算出して進捗率及び所定時間に基づき1つのコンピュータでのタスク処理の完了時間を推定する。それから、その処理装置により、推定した完了時間がジョブの要求項目を満たすか否かを判定する。この判定で推定した完了時間が要求項目を満たす場合には、1つのコンピュータにおけるジョブのタスクを1つのコンピュータで処理して結果を生成する。しかし、この判定で推定した完了時間が要求項目を満たさない場合には、その処理装置により、1つのコンピュータにおけるジョブのタスクを1つのコンピュータに残すタスクと複数のコンピュータの中の他のコンピュータに移動するタスクとに分割する。そして、残したジョブのタスクを1つのコンピュータで更に所定時間処理すると共、その処理装置により、移動するタスクを他のコンピュータに移動して処理させる。特に、この推定した完了時間が要求項目を満たさない場合には、推定した完了時間が要求項目を満たすまで、タスク処理の完了時間を推定することからジョブのタスクを分割して残したジョブのタスクを更に所定時間処理すると共に移動するタスクを他のコンピュータに移動して処理させることまでを繰り返す。それから、その処理装置により、他のコンピュータから移動して処理させたタスクの結果を取得して取得した結果と1つのコンピュータで処理したタスクの結果とをマージする。
本発明による上記方法では、好ましくは、移動するタスクを他のコンピュータに移動して処理させることに、1つのコンピュータでジョブのタスクを処理するのと同じ様にして他のコンピュータに移動したタスクについても処理することを含み、また、他のコンピュータから移動して処理させたタスクの結果を取得することに、他のコンピュータで同じ様にしてタスクを処理してマージした結果を他のコンピュータから1つのコンピュータに戻すことを含と良い。
本発明による任意のタスク数に分割可能なジョブを実行するシステムは、ネットワーク接続された複数のコンピュータと複数のコンピュータにネットワーク接続されたセンター・コンソールとを含み、少なくとも次の構成を成す。即ち、コンピュータが、コンピュータの処理装置により実行される、ジョブのタスクを分割して結果をマージするための拡張部を含む拡張アプリケーション部と、その処理装置により実行される、拡張アプリケーション部を起動して拡張アプリケーション部にジョブのタスクを分割させ結果をマージさせる実行アダプタ部と、その処理装置により実行される、実行アダプタ部を起動して拡張アプリケーション部及び実行アダプタ部を管理する実行管理部とを含む。また、センター・コンソールが、センター・コンソールの処理装置により実行される、実行アダプタ部からコンピュータにおけるジョブの実行状況データを取得し、コンピュータでジョブのタスクを分割するときに、分割タスクを移動する移動先として複数のコンピュータから他のコンピュータを選択して実行アダプタ部に指示する実行情報管理部を含む。
本発明による上記システムでは、好ましくは、拡張アプリケーション部の拡張部に、コンピュータで処理したジョブのタスク数を監視し、タスク処理の進捗率のデータを生成する進捗監視部と、コンピュータで未処理のタスクをコンピュータの記憶装置から読み出して分割し、移動するタスクのデータを生成して記憶装置に記憶する分割処理部と、分割により残したタスクを処理した結果のデータと、分割により移動したタスクを移動先で処理した結果のデータとをマージするマージ処理部と、進捗監視部、分割処理部及びマージ処理部を実行アダプタ部から呼び出すためのフック用ライブラリと、を含むと良い。 さらに、実行アダプタ部に、進捗監視部からタスク処理の進捗率のデータを取得してタスク処理の完了時間を推定し、コンピュータのメモリ装置からジョブの要求項目のデータを取得して、推定した完了時間が要求項目を満たすか否かを判定する分割判定部と、記憶装置から分割により移動するタスクのデータを準備し、メモリ装置から移動先のデータを取得し、実行管理部に提供してタスクの移動を実行させるタスク移動処理部と、移動先で移動したタスクを処理することが終了したかを監視するタスク終了監視部と、を含むと良い。
本発明による上記システムでは、センター・コンソールが、ユーザーからジョブのアプリケーションソフト及びデータを受け付け、アプリケーションソフトから拡張されたアプリケーションソフトを作成すると共に実行アダプタソフトを作成し、ジョブのデータ、拡張されたアプリケーションソフト及び実行アダプタソフトをコンピュータに提供してジョブを実行させ、コンピュータからジョブを実行した結果を受け取ってユーザーに提供するようにすると良い。
本発明によるネットワーク接続された複数のコンピュータで任意のタスク数に分割可能なジョブを実行するためのプログラムは、複数のコンピュータの中の1つのコンピュータに、少なくとも次のことを実行させる。即ち、先ず、ジョブのタスクを所定時間処理することである。そして、1つのコンピュータの処理装置により、所定時間におけるタスク処理の進捗率を算出して進捗率及び所定時間に基づき1つのコンピュータでのタスク処理の完了時間を推定することである。それから、その処理装置により、推定した完了時間がジョブの要求項目を満たすか否かを判定することである。この判定で推定した完了時間が要求項目を満たす場合には、1つのコンピュータにおけるジョブのタスクを1つのコンピュータで処理して結果を生成することである。しかし、この判定で推定した完了時間が要求項目を満たさない場合には、その処理装置により、1つのコンピュータにおけるジョブのタスクを1つのコンピュータに残すタスクと複数のコンピュータの中の他のコンピュータに移動するタスクとに分割することである。そして、残したジョブのタスクを1つのコンピュータで更に所定時間処理すると共、その処理装置により、移動するタスクを他のコンピュータに移動して処理させることである。特に、この推定した完了時間が要求項目を満たさない場合には、推定した完了時間が要求項目を満たすまで、タスク処理の完了時間を推定することからジョブのタスクを分割して残したジョブのタスクを更に所定時間処理すると共に移動するタスクを他のコンピュータに移動して処理させることまでを繰り返すことである。それから、その処理装置により、他のコンピュータから移動して処理させたタスクの結果を取得して取得した結果と1つのコンピュータで処理したタスクの結果とをマージすることである。
本発明により、稼動状況を事前に予測できないようなジョブ及びリソース環境に対して、ジョブの要求を満たすように動的に且つ自律的にリソースの割り当て及び変更を行うことができるジョブ実行が達成される。そのようなリソースの割り当ては、スケーラブルで汎用性があり、様々なリソース環境に柔軟で適切に対応できて、リソース環境の動的な状況変化にロバストである。
本発明の実施態様では、任意の数のタスクに分割できるジョブが複数のノードで実行される。そして、各ノードにおけるタスクの稼動状況に応じて、必要であれば各ノードでタスクを適宜分割すると共に一部を他のノードに移動させて実行することにより、スケーラブルで適正なタスク分割を伴うジョブの分散実行が実現される。そのような分割可能なジョブとしては、多くのパラメータをそれぞれ試行するパラメータ・スイープ(parameter sweep)・アプリケーション、モンテカルロ・シミュレーション、分割統治(divide and conquer)・アプリケーション等が挙げられる。タスクの稼動状況に応じたタスク分割を伴うジョブの分散実行においては、データ処理の手順に次の動作を含む。
(1) ジョブ全体を1つのノードに送り、1つのタスクとして実行を開始する。
(2) ノードでのタスク処理において、実行終了希望時刻(デッドライン)やリソース使用コスト(課金)等の要求項目(SLA/SLO)に対して結果的に違反しそうな状況であると判定されたとき、実行中のタスクを一時的に中断する。
(3) ジョブデータの範囲を分ける等の処理により、タスクを分割する。
(4) 処理タスクを残して、それ以外の分割タスクを他のノードに移動する。
(5) 処理タスク及び分割タスクをそれぞれ再開あるいは開始する。
(6) 各ノードにおいて、(2) から (5) の手順を繰り返す。
各ノードでは、ジョブ実行状況の詳細を予測するのではなくて、単純なカウンタ等を用いて要求項目違反の可能性を判定する。例えば、進捗を表すカウンタと総タスク量と経過時間とから、定期的に予想終了時刻を見積もり、所定のデッドラインと比較して要求項目違反の可能性を判定する。この判定は、各ノードで独立して行われるので、異機種が混ざった環境でも非常にロバストに動作するし、また、ローカル・ジョブによるパフォーマンスの揺らぎ等の影響についても柔軟に追従する。なお、最終的なジョブの結果は、分割・移動により動的に構成されたノードの階層的な木構造の関係を利用して、木構造の葉から根の方向へ逆に辿ることにより結果を階層的に集計することで、最初のノードに戻される。
本発明の1実施態様では、センター・コンソールとして機能するコンピュータ・システムの処理装置により実現される実行情報管理部が、リソースの全ノード群の上位に位置し、ユーザーからの問合せのインターフェースになったり、ジョブ全体の進捗状況やリソースの使用状況の監視、分割タスクの移動先ノード候補の提示等を行ったりして、ジョブ実行の全体をサポートする。センター・コンソールのコンピュータ・システムは、ジョブ定義のためのジョブ記述ファイルとノードのジョブ進捗状況を記録したテーブルとを記憶装置に保持する。ジョブ定義は、基本的にグリッド・システムに投入されるジョブの性質を記述したものであり、次のような情報を含む。
- ジョブに関するSLO、例えば、実行終了希望時刻(デッドライン)。
- アプリケーションに固有のパラメータ等を記述している入力ファイル。
- ジョブを最初に投入した(木構造の根の部分となる)ノードのID。
また、ノードのジョブ実行状況管理テーブルは、次の項目を含む。
- ノードID。
- 終了ジョブ割合。
- リソース使用率。
- 処理すべきタスクの一部を移動させた移動先ノードリスト。
また、ジョブ実行ノードとして機能するコンピュータ・システムの処理装置により実現される実行アダプタ部が、グリッド・ミドルウエアによって起動された後に、ジョブ(タスク)のアプリケーションが拡張された拡張部を備える拡張アプリケーション部によってタスクの進捗状況を監視する。実行アダプタ部は、ノードのリソース使用率も監視して、定期的に実行情報管理部に報告する。実行情報管理部は、ジョブの分割・移動を行うノードから移動先ノードの問い合わせを受けたときに、その報告に基づいた適切な移動先ノードを回答する。タスクの進捗状況に応じてタスクを分割・移動するとき、実行アダプタ部は、拡張部によって、タスクの処理を一時的に中断させ、タスクを分割させ、分割タスクを他のノードに移動させ、残ったタスクを再開させる。また、実行アダプタ部は、拡張部によって、残ったタスクの処理結果と移動したタスクの処理結果をマージさせる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施形態の説明の全体を通じて同じ要素には同じ番号を付している。
図1に、本発明の1実施形態に係る、ジョブ実行時に自律的にタスクを分割して処理するジョブ実行システム100の概略構成を示す。図1に示されるように、本発明によるジョブ実行システム100の実施形態においては,ネットワーク105を介してセンター・コンソール110が複数のノード120に接続されている。センター・コンソール110は、ノード120で実行するジョブについての情報の入出力とノード120でのジョブ実行状況の監視とを行う。ジョブを実際に実行するノード120が計算機資源130を構成する。計算機資源130の複数のノード120は、ノード1、ノード2、...ノードnのように、それぞれがまたネットワーク105で接続されている。
センター・コンソール110は、入出力されるジョブについての情報を処理する、例えばCPUのような処理装置111と、キーボード、マウス等の入力装置112と,ジョブ実行システム100におけるジョブ実行状況の情報を表示する例えばCRTディスプレイのような表示装置113と、種々のデータを記憶する例えばHDDのような記憶装置114とを含むコンピュータ・システムで構成される。本発明を実施した場合には、ノード120でのジョブ実行の情報を管理する実行情報管理部115が処理装置111により実現される。実行情報管理部115については後で説明する。ジョブを処理するアプリケーションソフト、ジョブを記述したジョブ記述ファイル、処理対象のジョブデータ等のジョブについての情報は、入力装置112から入力しても良いし、又は、センター・コンソール110にネットワークで接続された端末装置等の外部装置から入力しても良い。
計算機資源130における各ノード120も,例えばCPUのような処理装置121と、例えばDRAMのようなメモリ装置122と,例えばHDDのような記憶装置123を含むコンピュータ・システムのようなジョブの実行に必要な機能を有するものであれば良く,それらの性能や機種は同一である必要はない。本発明は、クラスタ環境のみならず,グリッド環境に代表されるような異機種混合環境に対しても適用可能である。本発明を実施した場合には、ジョブを処理するソフトウェアのためのアプリケーション部124及びジョブの実行を管理するための実行管理部125に加えて、ジョブ実行時にタスクを分割して移動する実行アダプタ部126が処理装置121により実現される。
各ノード120では、実行管理部125のもとでアプリケーション部124のソフトウェアが実行される。実行管理部125は、任意のアプリケーションソフトを起動することができ、アプリケーションソフトの開始から終了までを管理し,呼び出し側との間で入出力データを確実にやりとりすることを保証する。実行管理部125は、例えば既存の製品であるGlobus Toolkit等を用いて実施することができる。本発明では、実行管理部125においてアプリケーション部124のアプリケーションソフトを直接起動せず,それらの間にソフトウェアで実現される実行アダプタ部126を介してアプリケーション部124のアプリケーションソフトを起動する。
図2は、センター・コンソール110における実行情報管理部115の主要機能の1実施形態をその構成及びデータの流れと共に示す機能ブロック図である。ジョブ受付部200は,入力装置112等から、ユーザーが処理依頼するジョブを記述したファイル(デッドラインの記述を含む)即ちジョブ記述ファイルと、実際にそのジョブを処理するアプリケーションソフトと、処理の対象となるジョブデータとを受け付ける。そして、センター・コンソール110がユーザー依頼のジョブを本発明に従って実行するようなジョブ実行サービスを提供する場合には、実行アダプタソフト、拡張されたアプリケーションソフト、ジョブ記述ファイル及びジョブデータが、ジョブセットにしてジョブ受付部200から適当なノード120の実行管理部125に提供される。この段階ではどのノード120に提供しても構わない。なお、センター・コンソール110が実行アダプタソフト及び拡張されたアプリケーションソフトを提供せずに、ユーザーがそれらを準備してジョブセットをセンター・コンソール110に提供し、センター・コンソール110からジョブセットを適当なノード120の実行管理部125に提供しても良い。右端の一番上にあるジョブセットを提供された実行管理部125は、最初にジョブの処理を実行するノード120に存在し、先ず実行アダプタソフトを起動して実行アダプタ部126を生成し、その後、実行アダプタ部126がアプリケーションソフトで生成されるアプリケーション部124を起動する。
ジョブ実行状況監視部205は、ジョブを処理しているノード120の実行アダプタ部126と通信し、終了ジョブ割合及びリソース使用率の各データを取得し、ジョブ実行状況表示部210へ各ノードのジョブ終了率のデータを提供する。また、ジョブ実行状況監視部205は、それらの終了ジョブ割合及びリソース使用率の各データを記憶装置114に提供する。それらの各データは、記憶装置114に設定されているノード管理テーブル300に保持されると共に随時更新される。ジョブ実行状況監視部205と通信する実行アダプタ部126は簡略のため1つしか示されていないが、ジョブ実行状況監視部205が複数のノード120の実行アダプタ部126と通信してそれらのデータを取得することを理解されたい。
ジョブ実行状況表示部210は、受け取った各ノードのジョブ終了率のデータに基づいて、ジョブ処理全体についての進捗状況のデータを表示装置113に提供する。実行情報管理部115では、ジョブ実行状況監視部205からの各ノードのジョブ終了率のデータからジョブ全体についての進捗状況のデータを算出することができる。これにより、ジョブ全体についての進捗状況が、センター・コンソール110で表示装置113に表示され、そのセンターのオペレータ又はユーザーに通知される。
移動先選択部215は、実行アダプタ部126によりジョブを分割・移動する必要が生じた場合に、記憶装置114のノード管理テーブル300を参照して各ノードのリソース使用率データを取得する。そして、移動先選択部215は、例えばそのリソース使用率データから各ノードのCPU使用率を調べて最もCPU使用率が低いノードを選択する、又はリソース使用率データを取得していないジョブ処理に未関与のノード等、各ノードのリソース使用率データに基づいて移動先ノードを選択し、選択した移動先ノードのノード名データをその実行アダプタ部126に提供する。ジョブの分割によりタスクを移動する必要が生じるノードは1つとは限らないので、移動先選択部215と通信する実行アダプタ部126は簡略のため1つしか示されていないが、移動先選択部215が複数のノード120の実行アダプタ部126と通信して移動先ノード名のデータを提供することを理解されたい。
結果出力部220は、最初にジョブ処理の実行を依頼したノード120の実行管理部125からジョブ処理の結果ファイルを受け取り、記憶装置114の結果ファイル305に保存する。右端の一番上にある実行管理部125について述べたとおり、右端の一番上と一番下にある実行管理部125は同じノードのものである。
図3に、記憶装置114に設定されているノード管理テーブル300のデータ構成の1例を示す。ノード管理テーブル300は、各ノードでのジョブ処理の実行状況を管理するテーブルなので、次のような項目についてのデータを含む。ノード名の欄にはノードIDのようなノードを一意に識別できる名称のデータを格納する。図3にはノード1及びノード2が代表的に示されている。終了ジョブ割合の欄には各ノードでの現時点で処理したタスクの割合を示すデータを格納する。各ノードではタスクが一つ一つ処理されるので、タスクを処理するたびに処理されたタスク数をカウントしてジョブの全タスク数と比較することにより、終了ジョブ割合は算出され得る。図3の(A)に示されるように、ジョブ実行開始直後の所定時間にノード1では2%のタスクが終了し、ノード2ではタスクの処理はまだ行われていない。しかし、図3の(B)に示されるように、ノード1でのジョブの分割と移動後には、ノード1では3%のタスクが終了し、ノード2では1%のタスクが終了している。リソース使用率の欄には各ノードでのCPU、メモリ等計算機資源の使用率のデータを格納する。各ノードのOSコマンド(UNIX(R)であればvmstat等)を利用することにより、リソース使用率のデータを取得することができる。ジョブ実行開始直後の所定時間にノード1では80%のリソースが使用されている。しかし、ノード1でのタスクの分割と移動後にはノード1では50%のリソースが使用され、ノード2では60%のリソースが使用されている。移動先ノードリストの欄には各ノードから他ノードへタスクが移動した場合の移動先ノード名のデータを格納する。ノード1でのジョブの分割と移動後にはノード1からノード2へタスクが分割されて移動している。これらの項目のデータは、ノード名の欄を除いて適宜更新される。
図4は,ノード120における実行アダプタ部126及び拡張アプリケーション部127の主要機能の1実施形態を実行管理部125と共に示す機能ブロック図である。従来のアプリケーションソフトでは、実行管理部125が、ジョブデータを受け取ると記憶装置123のジョブデータファイル400に保存してアプリケーション部を起動する。アプリケーション部では、ジョブデータとして与えられたタスクが、記憶装置123のジョブデータファイル400からジョブデータ処理部405に読み込まれて、タスク処理部410で処理される。そして、結果データが、結果データ処理部415に書き出されて実行管理部125に渡される。本発明においては、図1に示されたノード120のアプリケーション部124は、拡張されたアプリケーションソフトにより生成される拡張アプリケーション部127の構成を成す。拡張アプリケーション部127では、実行管理部125がジョブセットを受け取ると、実行アダプタソフト、拡張されたアプリケーションソフト及びジョブ記述ファイルが、記憶装置123のジョブ用ソフトファイル420に保持される。また、タスク処理部410で生成される結果データが、記憶装置123の結果データファイル425に保持される。そして、拡張アプリケーション部127には、拡張部430が設けられている。拡張部430には、分割処理部431、マージ処理部432、進捗監視部433及びそれらとタスク処理部410との間に介在するフック用ライブラリ434が含まれる。このように、ノード120でタスクを自律的に分割して移動することを実現するためにアプリケーション部124は拡張される。先に述べたとおり、実行情報管理部115からジョブセットが提供されたノード120の実行管理部125は、先ず実行アダプタソフトを起動して実行アダプタ部126を生成し、その後、実行アダプタ部126が拡張されたアプリケーションソフトを起動して拡張アプリケーション部127を生成する。
拡張部430のフック用ライブラリ434は、定期的に実行アダプタ部126の分割判定部435と通信して、タスク分割の判定を行う。このとき、拡張部430の進捗監視部433が、呼び出されてタスク処理の進捗率を算出し実行アダプタ部126に提供する。実行アダプタ部126は、タスク処理の進捗率から終了ジョブ割合を求めて、実行情報管理部115のジョブ実行状況監視部205に提供する。実行アダプタ部126は、分割判定部435で分割が必要と判定されたら、センター・コンソール110の実行情報管理部115に問い合わせて移動先のノードを確保し、その移動先ノード名のデータをメモリ装置122の移動先ノードリストに記憶する。そして、実行アダプタ部126は、分割ジョブデータを記憶装置123に書き出すための分割ジョブデータファイル440のファイル名をフック用ライブラリ434に通知する。
フック用ライブラリ434は拡張部430の分割処理部431を呼び出し、分割処理部431により、未処理タスクが記憶装置123から読み出されて分割され、移動する部分がファイル名指定の記憶装置123の分割ジョブデータファイル440に書き出され保持される。また、自ノードでのタスク処理範囲が残す部分だけに修正される。そして、タスク移動の準備ができたことが実行アダプタ部126に通知される。特に、拡張アプリケーション部127では分割比率と出力ファイル名が指定されて、未処理ジョブデータが指定された分割比率で分けられると共に、移動される未処理ジョブデータが指定された出力ファイルに書き出される。この出力ファイルは移動先ノードに提供されて、移動先ノードで処理対象の入力ファイルとなる。
実行アダプタ126のタスク移動処理部445により、ジョブ定義のジョブ記述ファイルが作成され、拡張アプリケーション部127と実行アダプタ部126(指定したファイル名)と共に、実行管理部125に新しいタスクの移動が依頼される。このとき、移動先ノードは、分割判定部435で確保してメモリ装置122に記憶した移動先ノードリストのノードである。移動先ノードでのタスク処理が終了すると、移動先ノードから分割結果データが提供され記憶装置123の分割結果データファイル450に保持される。
拡張アプリケーション部127でのタスク処理が終了したら、フック用ライブラリ434によりマージ処理が行なわれる。フック用ライブラリ434は、実行アダプタ126のタスク終了監視部455に問い合わせて、タスク処理を委譲した移動先ノードがタスク処理を終了するのを待って、分割結果データを入手し、記憶装置123の分割結果データファイル450に保持する。そして、フック用ライブラリ434は、拡張部430のマージ処理部432を呼び出し、マージ処理部432は、分割結果データを記憶装置123の分割結果データファイル450から読み込み、記憶装置123の結果データファイル425に記憶されている自ノードの結果データとマージする。これを、タスク処理を委譲した移動先ノードの数だけ繰り返す。タスク処理部410では、マージ処理が終ると、マージされた結果データが、最後に結果データとして結果データ処理部415に書き出され、実行管理部125に渡される。
実行管理部125は、グリッド・ミドルウエア等から成り、実行アダプタ部126を起動するのであるが、それ以外に、ジョブデータ等ジョブセットを他ノードの実行管理部125から受け取り、記憶装置123に保存する。図4には、実行管理部125はジョブデータ等ジョブセットを他ノードの実行管理部125から受け取るように示されているが、最初にジョブが提供されたノードの場合には、他ノードの実行管理部125ではなくてセンター・コンソール110の実行情報管理部115であることを理解されたい。また、実行管理部125は、拡張アプリケーション部127の結果データ処理部415から結果データを取得し、ジョブセットを提供した他ノードの実行管理部125にその結果データを戻す。このように、実行管理部125はジョブセットの入力から結果データの出力に至るまでのプロセスを管理する。実行管理部125のこのような処理に例えば既存のツールであるGlobus Toolkit 4(GT4)やGRAM(Globus Resource Allocation Manager)を用いることができる(図4の460)。さらに、実行管理部125は、ノードでタスクを分割して移動する場合に、実行アダプタ部126のタスク移動処理部445から実行アダプタソフト、アプリケーションソフト及びジョブ記述ファイルと分割・移動されるジョブデータ及び移動先ノード名データとを取得して、その移動先ノードの実行管理部125にそれらを提供する。実行管理部125のこのような処理に例えば既存のglobusrun-wsを用いることができる(図4の465)。
図5に、本発明の実施によりアプリケーションを拡張する方法を概略的に示す。図5の(A)に対象となる1例に過ぎないアプリケーションの基本動作が示されている。対象となるアプリケーションは、ジョブの処理を開始し(ステップ500)、ジョブデータを入力データとして読み込み(ステップ505)、全てのタスクを処理したかどうかを判定し(ステップ510)、全てのタスクを処理した場合には、ジョブ処理を終了し(ステップ515)、全てのタスクを処理していない場合には、一つずつタスクの処理を行い(ステップ520)、最後に結果データを記憶装置123の結果データファイル425に出力する、以上の動作を行うものとする。この他にも、再帰的にタスクを処理するアプリケーション等が考えられる。
図5の(B)に本発明による拡張されたアプリケーションの動作が示されている。本発明においては,アプリケーション本来の処理フローは変更することなく,拡張部(太線の部分)を図5の(B)の処理フローに示されるステップ525及び530の位置に挿入するだけで,ジョブの自律的な分割・移動の機能を実現している。この拡張された機能は、所定の頻度で例えばタスクを処理するたびにジョブの分割が必要かどうかのテストを行い、必要であれば実際に分割を行うためのジョブ分割処理のフックを追加することと、全てのタスクを終了した後でジョブ実行時に他のノードに移動したタスク処理の結果を集めてマージするためのマージ処理のフックを追加することである。拡張部430に、これらのフックのためにフック用ライブラリ434が追加される以外に、分割処理部431、マージ処理部432及び進捗監視部433が、処理フローとは独立したコールバックの形式で追加される。これらのコールバック型拡張部(コンポーネント)はそれぞれフック用ライブラリ434から同期的に呼び出される。なお、タスクが分割・移動された場合には、分割後に残ったタスクを処理した結果が、拡張アプリケーション部127の一時的な出力ファイルに書き出される。最終的には、移動先ノードからの結果とマージして本来のジョブの処理結果を生成する。
図6に、ジョブ分割処理のフック(図5のステップ525)における動作を概略的に表わした流れを600として示す。フック用ライブラリ434によりフックを開始して(ステップ605)、先ず、拡張部430の進捗監視部433を呼び出し、タスク処理の進捗率を取得する(ステップ610)。次に、実行アダプタ部126の分割判定部435に取得した進捗率を提供して分割の判定をさせる(ステップ615)。分割判定部435によりタスクの分割が必要であると判定されたときには、分割したジョブデータを書き込むためのファイル名と分割比とを分割判定部435から受け取る。タスクの分割が必要でなければ(ステップ620)、フック処理を終える(ステップ645)。タスクの分割が必要であれば(ステップ620)、コールバック型拡張部の分割処理部431を呼び出し、分割比とファイル名を渡して分割を依頼する(ステップ625)。分割処理部431により分割されたタスクの第1部分、例えばタスクの前半部分を移動するかどうかを判定し(ステップ630)、分割タスクの第1部分を移動する場合には、実行アダプタ部126のタスク移動処理部445に分割タスクの第1部分を移動先ノードに移動させる(ステップ635)。移動しない分割されたタスクの第2部分、例えばタスクの後半部分は、実行アダプタ部126により自ノードでの処理のため追加起動される。分割タスクの第1部分を移動させない場合には、実行アダプタ部126のタスク移動処理部445に分割タスクの第2部分を移動先ノードに移動させる(ステップ640)。移動しない分割タスクの第1部分は、実行アダプタ部126により自ノードでの処理のため追加起動される。いずれの場合も、実行アダプタ部126に分割タスクの第1部分又は第2部分の移動を依頼して、フック処理を終了する(ステップ645)。
図7は、実行アダプタ部126の分割判定部435における処理の概略な流れを700として示す。分割判定部435では、進捗監視部433からのタスク処理の進捗率に基づいてタスク分割の必要性を判定し、タスク分割が必要であれば移動先ノードを確保して、分割ジョブデータを書き込むための分割入力ファイル名と分割比とを決める。先ず、図6のステップ610よりメモリ装置122に保持されている、進捗監視部433から取得したタスク処理の進捗率p(0<p<1)が入力として提供され、メモリ装置122の開始時刻のデータを参照して、経過時間Tを算定する(ステップ705)。次に、進捗率pと経過時間Tとから、ジョブの完了までに掛かる完了時間Tを、T=T(1−p)/pより推定する(ステップ710)。それから、メモリ装置122に保持されているデッドライン時刻のデータを参照してデッドライン時刻までに残っている残余時間を算定し、完了時間Tと比較する(ステップ715)。残余時間のほうが長ければ、分割不要として分割判定の処理を終え、図6のステップ620へ進む。残余時間が完了時間Tよりも長くなければ、センター・コンソール110の実行情報管理部115に問い合わせて、移動先のノードを確保する(ステップ720)。このとき、実行情報管理部115より確保した移動先ノード名のデータをメモリ装置122の移動先ノードリストに記録・更新しておく。なお、センター・コンソール110の実行情報管理部115に問い合わせる方法のほかにも、P2P(ピア・ツー・ピア)方式でブロードキャストを使って周囲のノードの実行管理部125に問い合わせて移動先ノードを決定する方法もある。さらに、分割比を決定する(ステップ725)。分割比の決定については後で言及する。分割したタスクの内の移動する部分を書き込むためのファイル名を決定して、分割入力ファイル名のデータをメモリ装置122に記録・更新する(ステップ730)。最後に分割比とファイル名の各データを呼び出して、それらを出力として図6のステップ620に進む。タスクの分割が必要でなければ、何も出力しない。
図8は、実行アダプタ部126のタスク移動処理部445における処理の概略な流れを800として示す。図6のステップ630より、タスク移動処理部445は、タスク移動の依頼を受けたら、以下のステップで処理を進める。先ず、分割されたタスクの結果を書き込むためのファイル名を決定して、分割出力ファイル名のデータをメモリ装置122に記録・更新する(ステップ805)。次に、メモリ装置122の移動先ノード名等の情報を参照して、ジョブ定義のジョブ記述ファイルを作成する(ステップ810)。それから、記憶装置123のジョブ用ソフトファイル420からジョブ記述ファイル、実行アダプタソフト及び拡張されたアプリケーションソフトを実行管理部125に提供して、分割ジョブ実行の依頼を行わせる(ステップ815)。
図9を参照して、オーバーヘッドを考慮したタスク分割の割合決定方法900について説明する。あるノードAにおいて、タスクの分割が必要と判断されたなら、先ず、分割データのコピー等の準備に掛かる準備時間TSIと、遠隔ノードBでの処理が完了した後で処理結果を受け取るのに掛かる取得時間TSOとを想定して、推定した完了時間Tにそれらを足し合わせて2分割にし、Tの内のノードAに残す例えば前半部のような分割タスク第1部分の所要時間をTとし、Tの内の残りをノードBに委譲する例えば後半部のような分割タスク第2部分の所要時間をTとする。ノードAとノードBとに性能の差がある場合には、その性能比をr(ノードBがノードAよりも処理速度が遅い場合は、r<1)として、図9に示すように、重み付けをした分割比を計算する。
=T+T
=TSI+TSO+T/r より
=T/(1+r) + r(TSI+TSO)/(1+r)
=rT/(1+r) − r(TSI+TSO)/(1+r)
これらの所要時間T及びTの比率より、即ち、残すタスク対移動するタスクの比率がT対Tの比率となるように、タスクの分割比を決めると良い。この分割処理により短縮される実行時間Tは、Tから第1部分の所要時間Tと分割処理のオーバーヘッドT及びマージ処理のオーバーヘッドTとを差し引いた長さになる。この長さTがゼロ以下となる場合には分割による効果がなく、逆に分割によりジョブ実行時間が延びると判断できる。従って、TがTに比べてある程度大きい場合に限り分割処理を進めるといった判断が必要になる。例えば、計算ノードの上限数から主に決められる閾値sを設定して、T/T>sを判定する。
=(T−TSI−TSO)r/(1+r) −T−T >sT
図10に、ジョブデータが再帰的に複数ノードで分割・移動される1例1000を示す。センター・コンソール110の実行情報管理部115は、図10に示すように、ジョブデータ(100%)、実行アダプタソフト(EA)、アプリケーションソフト(A)及びジョブ記述ファイル(JD)を適当なノード(ここではノード1)に全て投入する。ノード1では、先に説明した手順に沿ってジョブを実行するが、デッドラインを満たせないと予想され、タスクの分割・移動の必要性が生じた段階でノード2へタスクの移動を行う。図10では、ジョブ全体の2%を処理した段階で残り98%を2分割し、49%をノード2へ移動させたことを表している。また、さらに1%を処理した後再びタスクの移動の必要が生じ、残り48%を2分割し、今度はノード3へ24%のタスクを移動させたことを表している。そして、さらに2%を処理した後再びタスクの移動の必要が生じ、残り22%を2分割し、今度はノード5へ11%のタスクを移動させたことを表している。
他のノードでも同様のことが起きている。即ち、ノード2でも、ノード1からジョブデータの49%を提供され、1%を処理した後タスクの移動の必要が生じ、残り48%を2分割し、ノード4へ24%のタスクを移動させたことを表している。また、さらに2%を処理した後再びタスクの移動の必要が生じ、残り22%を2分割し、今度はノード7へ11%のタスクを移動させたことを表している。やはり、ノード4でも、ノード2からジョブデータの24%を提供され、2%を処理した後タスクの移動の必要が生じ、残り22%を2分割し、ノード8へ11%のタスクを移動させたことを表している。この例は、分割・移動がノード1→ノード2、ノード2→ノード4、ノード1→ノード3、ノード1→ノード5、ノード2→ノード7、ノード4→ノード8の順に起きた場合を示している。このように、本発明では、実際にどのような順番でタスクの分割・移動が発生するかは、前もって予測しないし、またその必要もない。
図11は、マージ処理のフック(図5のステップ530)における動作を概略的に表わした流れを1100として示す。マージ処理のフックの動作では、図5(B)の510より開始され、先ず、実行アダプタ部126のタスク終了監視部455にタスク終了待ちであることを通知してタスク終了のモニタを依頼する(ステップ1105)。次に、マージすべき分割結果が存在するか判定する(ステップ1110)。マージすべき分割結果がなければ、図5(B)の535へ進んでフック処理を終了する。マージすべき分割結果があれば、分割結果データを出力したファイル名を拡張部430のマージ処理部432に提供してマージ処理部432を呼び出し、マージ処理を行って結果データを更新する(ステップ1115)。このようにして、自ノードよりタスクを分割・移動させた移動先ノードからの結果を全て読み込みマージしたら、自ノードにおける最終結果データとして実行管理部125から出力する。
図12に、マージ処理のタスク終了待ち(図11のステップ1105)における動作を概略的に表わした流れを1200として示す。実行アダプタ部126のタスク終了監視部455で移動先ノードのタスク終了を待つ処理の流れは、次のとおりである。図5(B)の510又は図11の1115より開始され、メモリ装置122を参照して、移動先のタスクが全て終了したかどうかを判定する(ステップ1205)。移動先のタスクが全て終了したならば、図11の1110を経て図5(B)の535へ進み、マージ処理は不要として終了する。移動先のタスクが全て終了していなければ、未了移動先タスクが終了するまでブロックして待つ(ステップ1210)。未了移動先タスクが終了したら、移動先分割タスクの結果データのファイルを準備して記憶装置123の分割結果データファイル450に書き込む(ステップ1215)。その後は、図11の1110へ進む。
図13に、各ノードでタスクが終了した後、各ノードにおける処理結果がどのように回収・マージされ、全体の結果がセンター・コンソール110の実行情報管理部115へと戻って来るかを示す。マージの処理は分割・移動の過程を逆に辿ることによって行われる。例えば、分割・移動の過程でノード2→ノード4→ノード8という順にタスクが分散したため、末端のノード8でタスクが終了した後、部分結果ファイルがノード4へと戻され、さらにノード4における部分結果とマージされた結果がノード2へ戻される、という過程に従う。ノード2だけでなく、ノード1より分割・移動が生じた他のノード3及5からも部分結果ファイルがノード1へと戻される。このようして、各ノードで得られた結果はマージされつつ最初にジョブを投入したノード1へと戻り、ノード1でジョブ全体の最終結果が得られる。
図14は、本発明によるタスクの分割・移動の様子を分かり易く表した概念図である。本発明では、タスク処理において目標のデッドラインを満たすために、少しずつタスクの分割を各ノードで繰り返して、最終的にリソースの全ノードでデッドライン目標を達成できるようにする。先ず、(a)に示されるように、最初は全体量等が不明のジョブを処理するものとする。このジョブに対するデッドラインが与えられる。(b)で、例えばセンター・コンソールから投入されて1つのノードでタスク処理が開始される。短時間(T)だけタスク処理が実行されて(角柱の濃い部分)、タスク処理の終了時間が推定される。これによって、最初は全体量等が不明であったが、ジョブの試行と試行からの推定とで、終了時間が推定されジョブの全体量が大体把握される。明らかに推定される終了時間(角柱の下端)はデッドラインを超えている。そこで、(c)では、ノードのタスク処理が中断され、タスクの分割が行われてタスクの後半部分(角柱の下部分)が他ノードに移動される。(d)では、タスク処理が再開され、タスク処理が行われている各ノードでは、また短時間(T)だけタスク処理が行われて(角柱の濃い部分)、タスク処理の終了時間が再び推定される。各ノードでの推定される終了時間(角柱の下端)は、リソース使用率の変動やタスクの分割・移動により変化する。最初のノードでは、(c)及び(d)の分割時の終了時間よりも、夫々(d)及び(e)での再度推定した終了時間のほうが長い。(e)でも、全ての分割されたタスクがデッドライン前に完了すると推定されるまで、推定される終了時間(角柱の下端)がデッドラインを超えているかの検査が各ノードで行われ、タスクの中断、分割、移動及び再開は繰り返される。
デッドライン目標が達成可能であると判定された後も、そのような検査を定期的に繰り返し各ノードで行うことにより、リソースの使用状況が時々刻々と変化している場合にも柔軟に追従することができる。また、タスクの全体量が少ない程、終了時間の推定精度は高くなる。従って、タスクの分割により各ノードではタスクの量を少なくして終了時間を推定することができるので、デッドライン目標を達成可能であるかどうかの検査は結果の確度が担保される。図14により、1つのノードに投入したジョブを実行しながら自律的にタスクを分割して、そのジョブを最終的に6つのノードに分散して実行することになった経緯が分かる。なお、各ノードでタスクが次々と分割時に2分割される例が示されているが、分割時に2分割よりも多いい複数分割を適切な分割比率で行うようにしても良く、本発明におけるタスク分割がそのような2分割に限定されないことを理解されたい。また、各ノードにおけるデッドラインまでの空いた時間は、同様に他のジョブを実行するために使われる。
図15は、本発明において5つの異なる複数のジョブがどのように稼動するかその様子を表したグラフである。図15の(A)は、要求リソース(プロセッサ)数と想定処理時間とを与えてスケジュールを作成し、リソースを予約してそれら複数のジョブを処理する従来方式を示している。このように、スケジュールを作成するためにも、それら複数のジョブについての情報が事前に必要である。これに対して、図15の(B)は、本発明によりジョブを実行中に自律的にタスクを分割しながらリソースを割り当ててそれら複数のジョブを処理する方式を示している。図15の(A)のような異なるジョブ間にリソースが稼動していないような時間は存在せず、リソースの稼働率が高くなり、そのために全体的にジョブの終了時刻も早くなっていることが分かる。
以上、実施形態を用いて本発明の説明を行ったが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に種々の変更又は改良を加えることが可能であり、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
本発明の1実施形態に係るジョブ実行システムの概略構成を示す図である。 実行情報管理部の主要機能の1実施形態を示す機能ブロック図である。 センター・コンソールの記憶装置におけるノード管理テーブルのデータ構成例を示す図である。 実行アダプタ部及び拡張アプリケーション部の主要機能の1実施形態を示す機能ブロック図である。 本発明の実施によりアプリケーションを拡張する方法を概略的に示す図である。 ジョブ分割処理のフックにおける動作を概略的に表わした流れ図である。 分割判定部における動作を概略的に表わした流れ図である。 タスク移動処理部における動作を概略的に表わした流れ図である。 オーバーヘッドを考慮したタスク分割の割合決定方法を概略的に示す図である。 本発明によるタスクの分割・移動の様子を分かり易く表した概念図である。 マージ処理のフックにおける動作を概略的に表わした流れ図である。 タスク終了監視部における動作を概略的に表わした流れ図である。 各ノードから処理結果が回収・マージされる1例を示す図である。 ジョブデータが再帰的に複数ノードで分割・移動される1例を示す図である。 5つの異なる複数のジョブがどのように稼動するかを表したグラフである。
符号の説明
100 ジョブ実行システム
110 センター・コンソール
111 処理装置
114 記憶装置
115 実行情報管理部
120 ノード
121 処理装置
122 メモリ装置
123 記憶装置
125 実行管理部
126 実行アダプタ部
127 拡張アプリケーション部
430 拡張部
431 分割処理部
432 マージ処理部
433 進捗監視部
434 フック用ライブラリ
435 分割判定部
445 タスク移動処理部
455 タスク終了監視部

Claims (7)

  1. ネットワーク接続された複数のコンピュータで任意のタスク数に分割可能なジョブを実行するジョブ実行方法であって、
    前記複数のコンピュータの中の1つのコンピュータに前記ジョブを提供して、前記1つのコンピュータで前記ジョブのタスクを所定時間処理し、
    前記1つのコンピュータの処理装置により、前記所定時間におけるタスク処理の進捗率を算出して前記進捗率及び前記所定時間に基づき前記1つのコンピュータでのタスク処理の完了時間を推定し、
    前記処理装置により、前記推定した完了時間が前記ジョブの要求項目を満たすか否かを判定し、
    前記推定した完了時間が前記要求項目を満たす場合には、前記1つのコンピュータにおける前記ジョブのタスクを前記1つのコンピュータで処理して結果を生成し、
    前記推定した完了時間が前記要求項目を満たさない場合には、前記処理装置により、前記1つのコンピュータにおける前記ジョブのタスクを前記1つのコンピュータに残すタスクと前記複数のコンピュータの中の他のコンピュータに移動するタスクとに分割し、
    残した前記ジョブのタスクを前記1つのコンピュータで更に所定時間処理すると共、前記処理装置により、前記移動するタスクを前記他のコンピュータに移動して処理させ、
    前記移動して処理させるタスクについても、前記他のコンピュータにより、前記進捗率及び前記所定時間に基づく前記他のコンピュータでのタスク処理の完了時間を推定し、当該完了時間が前記要求項目を満たすか否かを判定し、当該完了時間が前記要求項目を満たす場合には、前記他のコンピュータで処理して結果を生成し、当該完了時間が前記要求項目を満たさない場合には、前記他のコンピュータに残すタスクと前記複数のコンピュータの中の更に他のコンピュータに移動するタスクとに分割し、当該残したタスクを前記他のコンピュータで更に所定時間処理すると共、当該移動するタスクを前記更に他のコンピュータに移動して処理させることを、移動して処理させるコンピュータでのタスク処理の推定した完了時間が前記要求項目を満たすまで、繰り返し、
    前記タスクを移動したコンピュータにより、前記移動して処理させたタスクの結果を前記処理させたコンピュータから取得して前記取得した結果と前記タスクを移動したコンピュータで更に所定時間処理したタスクの結果とをマージすることを、前記他のコンピュータに戻るまで繰り返し、
    前記処理装置により、前記他のコンピュータから前記移動して処理させたタスクの結果を取得して前記取得した結果と前記1つのコンピュータで更に所定時間処理したタスクの結果とをマージする、
    ことを含む前記ジョブ実行方法。
  2. 前記進捗率を算出することが、前記処理装置により、処理したタスク数を監視及び計数して前記ジョブの処理すべきタスク数に対する比率を計算することを含む、請求項1に記載のジョブ実行方法。
  3. 前記タスク処理の完了時間を推定することが、前記処理装置により、前記完了時間をTとし、前記所定時間をTとし、前記進捗率をpとして、T=T(1−p)/pを計算することを含む、請求項1又は2に記載のジョブ実行方法。
  4. 前記推定した完了時間が前記ジョブの要求項目を満たすか否かを判定することが、前記要求項目を前記ジョブのデッドライン時刻(実行終了希望時刻)として、前記処理装置により、前記デッドライン時刻までの残余時間が前記推定した完了時間よりも長いか否かを判定することを含む、請求項1に記載のジョブ実行方法。
  5. 前記推定した完了時間が前記ジョブの要求項目を満たすか否かを判定することが、前記要求項目を前記コンピュータの使用コスト(課金)から定まる前記ジョブについて前記コンピュータを使用できる使用可能時間として、前記処理装置により、前記使用可能時間が前記推定した完了時間よりも長いか否かを判定することを含む、請求項1に記載のジョブ実行方法。
  6. 前記他のコンピュータとして前記複数のコンピュータの中のリソース使用率が低いコンピュータを選択して、前記リソース使用率が低いコンピュータに前記移動するタスクを移動して処理させることを含む、請求項1に記載のジョブ実行方法。
  7. 前記1つのコンピュータに前記ジョブを提供することが、前記複数のコンピュータに接続されたセンター・コンソールから前記1つのコンピュータに前記ジョブを提供することを含み、前記移動するタスクを前記他のコンピュータに移動して処理させることが、前記センター・コンソールが選択した前記他のコンピュータに前記移動するタスクを移動して処理させることを含み、前記センター・コンソールが前記1つのコンピュータでマージした結果を前記ジョブの結果として受け取る、請求項1に記載のジョブ実行方法。
JP2006305614A 2006-11-10 2006-11-10 ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム Expired - Fee Related JP4308241B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006305614A JP4308241B2 (ja) 2006-11-10 2006-11-10 ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US11/933,725 US8219997B2 (en) 2006-11-10 2007-11-01 Execution the job that is divided into job tasks based on the estimated completion time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006305614A JP4308241B2 (ja) 2006-11-10 2006-11-10 ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム

Publications (2)

Publication Number Publication Date
JP2008123205A JP2008123205A (ja) 2008-05-29
JP4308241B2 true JP4308241B2 (ja) 2009-08-05

Family

ID=39370692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006305614A Expired - Fee Related JP4308241B2 (ja) 2006-11-10 2006-11-10 ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム

Country Status (2)

Country Link
US (1) US8219997B2 (ja)
JP (1) JP4308241B2 (ja)

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010012122A1 (en) * 2008-07-29 2010-02-04 Lucent Technologies Inc. The method and apparatus for the resource sharing between user devices in computer network
US8312037B1 (en) * 2008-08-28 2012-11-13 Amazon Technologies, Inc. Dynamic tree determination for data processing
US9002721B2 (en) * 2008-10-08 2015-04-07 Appirio, Inc. System and method for project management and completion
US8671412B2 (en) * 2008-10-24 2014-03-11 International Business Machines Corporation Calculating and communicating level of carbon offsetting required to compensate for performing a computing task
US7587718B1 (en) * 2008-10-31 2009-09-08 Synopsys, Inc. Method and apparatus for enforcing a resource-usage policy in a compute farm
US8819106B1 (en) 2008-12-12 2014-08-26 Amazon Technologies, Inc. Managing distributed execution of programs
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8621476B2 (en) * 2008-12-15 2013-12-31 Korea Advanced Institute Of Science And Technology Method and apparatus for resource management in grid computing systems
EP2370904A4 (en) * 2008-12-26 2012-07-04 Mimos Berhad METHOD FOR MANAGING CALCULATION RESOURCES VIA A NETWORK
US8296419B1 (en) 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US9569270B2 (en) 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US8190744B2 (en) * 2009-05-28 2012-05-29 Palo Alto Research Center Incorporated Data center batch job quality of service control
JP5377093B2 (ja) * 2009-06-08 2013-12-25 三菱電機株式会社 計算機システム、計算機リソース制御方法および計算機リソース制御プログラム
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US20120173604A1 (en) * 2009-09-18 2012-07-05 Nec Corporation Data center system, reconfigurable node, reconfigurable node controlling method and reconfigurable node control program
JP5036791B2 (ja) * 2009-11-19 2012-09-26 Necアクセステクニカ株式会社 データ処理システム、データ処理方法およびデータ処理プログラム
GB2475897A (en) * 2009-12-04 2011-06-08 Creme Software Ltd Resource allocation using estimated time to complete jobs in a grid or cloud computing environment
JP2011123817A (ja) * 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
KR101644800B1 (ko) * 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
US9319281B2 (en) 2010-05-14 2016-04-19 Hitachi, Ltd. Resource management method, resource management device, and program product
JP5465105B2 (ja) * 2010-06-21 2014-04-09 三菱電機株式会社 計算機システム及びコンピュータプログラム及びパイプライン処理方法
WO2012027478A1 (en) 2010-08-24 2012-03-01 Jay Moorthi Method and apparatus for clearing cloud compute demand
US8640137B1 (en) 2010-08-30 2014-01-28 Adobe Systems Incorporated Methods and apparatus for resource management in cluster computing
CN102033777B (zh) * 2010-09-17 2013-03-20 中国资源卫星应用中心 基于ice的分布式作业调度引擎
US8479204B1 (en) * 2010-09-30 2013-07-02 Emc Corporation Techniques for determining transaction progress
US8375389B2 (en) * 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
US8812677B2 (en) * 2010-12-21 2014-08-19 Hitachi, Ltd. Data processing method and apparatus for remote storage system
US8892960B2 (en) 2011-01-19 2014-11-18 Oracle International Corporation System and method for determining causes of performance problems within middleware systems
US8631280B2 (en) * 2011-01-19 2014-01-14 Oracle International Corporation Method of measuring and diagnosing misbehaviors of software components and resources
US8600725B2 (en) 2011-01-19 2013-12-03 Oracle International Corporation System and method for providing a static model map of behaviors in a middleware system, for use in identifying system problems
US8627150B2 (en) 2011-01-19 2014-01-07 Oracle International Corporation System and method for using dependency in a dynamic model to relate performance problems in a complex middleware environment
US9600523B2 (en) 2011-01-19 2017-03-21 Oracle International Corporation Efficient data collection mechanism in middleware runtime environment
US20120192200A1 (en) * 2011-01-21 2012-07-26 Rao Jayanth N Load Balancing in Heterogeneous Computing Environments
US8935318B1 (en) * 2011-03-28 2015-01-13 Google Inc. Opportunistic job processing in a distributed computer environment
TWI561995B (en) * 2011-04-26 2016-12-11 Intel Corp Load balancing in heterogeneous computing environments
US8612580B2 (en) * 2011-05-31 2013-12-17 Microsoft Corporation Distributed computing framework
EP2541408B1 (en) * 2011-06-28 2020-10-07 Amadeus S.A.S. Method and system for processing data for database modification
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
JP2013061845A (ja) * 2011-09-14 2013-04-04 Ricoh Co Ltd 携帯機器及びその制御方法
US8904397B2 (en) * 2011-10-31 2014-12-02 International Business Machines Corporation Staggering execution of scheduled tasks based on behavioral information
US9047396B2 (en) 2011-10-31 2015-06-02 International Business Machines Corporation Method, system and computer product for rescheduling processing of set of work items based on historical trend of execution time
US9355009B2 (en) * 2011-10-31 2016-05-31 International Business Machines Corporation Performance of scheduled tasks via behavior analysis and dynamic optimization
US9430286B2 (en) * 2011-12-12 2016-08-30 International Business Machines Corporation Authorizing distributed task processing in a distributed storage network
US20180083930A1 (en) * 2011-12-12 2018-03-22 International Business Machines Corporation Reads for dispersed computation jobs
US9021499B2 (en) * 2012-01-10 2015-04-28 Hewlett-Packard Development Company, L.P. Moving a logical device between processor modules in response to identifying a varying load pattern
KR101827369B1 (ko) * 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
US20210382763A1 (en) * 2012-03-02 2021-12-09 Pure Storage, Inc. Efficient Data Encoding And Processing In A Storage Network
US9195684B2 (en) * 2012-03-02 2015-11-24 Cleversafe, Inc. Redundant task execution in a distributed storage and task network
WO2013137917A1 (en) * 2012-03-15 2013-09-19 Hewlett-Packard Development Company, L.P. Determining a schedule for a job to replicate an object stored on a storage appliance
US9672073B2 (en) * 2012-06-07 2017-06-06 Sybase, Inc. Non-periodic check-pointing for fine granular retry of work in a distributed computing environment
GB2505184A (en) * 2012-08-21 2014-02-26 Ibm Checking data quality of an application program by monitoring runtime behaviour
JP5965488B2 (ja) * 2012-08-28 2016-08-03 株式会社日立システムズ グリッド構成管理システムおよびグリッド構成管理方法
JP2014044677A (ja) * 2012-08-28 2014-03-13 Fujitsu Ltd 送信制御プログラム、通信ノード、および送信制御方法
US9058215B2 (en) * 2012-10-19 2015-06-16 Sap Se Integration of a calculation engine with a software component
US9043644B2 (en) * 2012-12-04 2015-05-26 International Business Machines Corporation Using separate processes to handle short-lived and long-lived jobs to reduce failure of processes
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US20140244330A1 (en) * 2013-02-22 2014-08-28 Innovations 10.01, Llc System and method for assessing and managing a facility
US20140245319A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for enabling an application to run on a cloud computing system
US20140278715A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Estimating required time for process granularization
US20140278640A1 (en) * 2013-03-15 2014-09-18 Companyons, Inc. Business workflow management systems and methods
US20140297234A1 (en) * 2013-03-29 2014-10-02 International Business Machines Corporation Forecasting production output of computing system fabrication test using dynamic predictive model
JP6209862B2 (ja) * 2013-05-24 2017-10-11 富士通株式会社 プログラム、ジョブ監視支援方法、情報処理装置およびシステム
US20140358626A1 (en) * 2013-06-04 2014-12-04 Hewlett-Packard Development Company, L.P. Assessing the impact of an incident in a service level agreement
US9665386B2 (en) 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
CN103336720B (zh) * 2013-06-17 2016-07-06 湖南大学 一种基于slurm的具有数据依赖关系的作业执行方法
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
WO2014208139A1 (ja) 2013-06-28 2014-12-31 日本電気株式会社 異常検出装置、制御方法、及びプログラム
JP6236996B2 (ja) * 2013-08-28 2017-11-29 富士通株式会社 情報処理装置および情報処理装置の制御方法
US9857974B2 (en) * 2013-10-03 2018-01-02 International Business Machines Corporation Session execution decision
US10496233B2 (en) * 2013-10-23 2019-12-03 Micro Focus Llc Tracking a status of a process
JP6221701B2 (ja) 2013-12-03 2017-11-01 富士通株式会社 制御プログラム、制御装置及び制御方法
KR20150106233A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 복수의 전자 장치에서 기능을 수행하는 방법 및 전자 장치
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9612878B2 (en) * 2014-03-31 2017-04-04 International Business Machines Corporation Resource allocation in job scheduling environment
JP2017520032A (ja) * 2014-04-17 2017-07-20 アビニシオ テクノロジー エルエルシー 処理環境の統合監視および制御
US9959142B2 (en) * 2014-06-17 2018-05-01 Mediatek Inc. Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium
US9983901B2 (en) * 2014-07-09 2018-05-29 Google Llc Dynamic shard allocation adjustment
US9167047B1 (en) 2014-09-24 2015-10-20 Oracle International Corporation System and method for using policies to support session recording for user account management in a computing environment
US9148454B1 (en) * 2014-09-24 2015-09-29 Oracle International Corporation System and method for supporting video processing load balancing for user account management in a computing environment
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
WO2016079802A1 (ja) * 2014-11-18 2016-05-26 株式会社日立製作所 バッチ処理システムおよびその制御方法
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
WO2016132497A1 (ja) * 2015-02-19 2016-08-25 株式会社日立製作所 データ分析システム及びデータ分析方法
CA2987734A1 (en) 2015-04-28 2016-11-03 Solano Labs, Inc. Cost optimization of cloud computing resources
US9442770B1 (en) * 2015-06-04 2016-09-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload execution timing device in a virtual machine environment
US9606792B1 (en) * 2015-11-13 2017-03-28 International Business Machines Corporation Monitoring communication quality utilizing task transfers
US10379897B2 (en) * 2015-12-14 2019-08-13 Successfactors, Inc. Adaptive job scheduling utilizing packaging and threads
GB2545508B (en) 2015-12-18 2019-04-10 Imagination Tech Ltd Controlling operation of a GPU
KR101730271B1 (ko) 2015-12-18 2017-04-25 한국과학기술원 복수의 모바일 단말간 에너지 소모 형평성을 고려한 태스크 최적 분배 기법
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
AU2017276777B2 (en) * 2016-06-10 2022-06-09 Schneider Electric Industries Sas Method and system for providing proxy service in an industrial system
US10594798B2 (en) * 2016-06-16 2020-03-17 Veniam, Inc. Systems and methods for managing containers in a network of moving things
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US11240305B2 (en) * 2016-07-28 2022-02-01 At&T Intellectual Property I, L.P. Task allocation among devices in a distributed data storage system
US10430799B1 (en) * 2017-02-03 2019-10-01 Numerify, Inc. System and method for determining a time threshold guarantee of a task for updating in a penalty clause of a service level agreement
US10547673B2 (en) * 2017-02-09 2020-01-28 International Business Machines Corporation Data and task reallocation in distributed computing platforms
US10445140B1 (en) * 2017-06-21 2019-10-15 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10725826B1 (en) * 2017-06-21 2020-07-28 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10541939B2 (en) * 2017-08-15 2020-01-21 Google Llc Systems and methods for provision of a guaranteed batch
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10841397B2 (en) 2018-04-17 2020-11-17 Vmware, Inc. Methods, apparatus, and systems to dynamically discover and host services in fog servers
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11108640B2 (en) * 2018-12-20 2021-08-31 Advantest Corporation Controlling devices in a decentralized storage environment
US10810042B2 (en) * 2019-01-18 2020-10-20 Rubrik, Inc. Distributed job scheduler with intelligent job splitting
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11494237B2 (en) * 2019-06-26 2022-11-08 Microsoft Technology Licensing, Llc Managing workloads of a deep neural network processor
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
CN111008073A (zh) * 2019-11-22 2020-04-14 珠海格力电器股份有限公司 一种数据处理方法及装置
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
GB2592609B (en) * 2020-03-03 2023-05-31 Imagination Tech Ltd Resource allocation in a parallel processing system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
CN111641678A (zh) * 2020-04-29 2020-09-08 深圳壹账通智能科技有限公司 任务调度方法、装置、电子设备及介质
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN113961351B (zh) * 2021-10-28 2022-12-30 北京百度网讯科技有限公司 深度学习模型的分布式训练方法、装置、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628323A (ja) 1992-07-06 1994-02-04 Nippon Telegr & Teleph Corp <Ntt> プロセス実行制御方法
JPH09160884A (ja) 1995-12-04 1997-06-20 Mitsubishi Electric Corp 動的負荷分散並列計算機
JPH09282288A (ja) 1996-04-09 1997-10-31 Fujitsu Ltd 複数計算機運用システム
US20020169680A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation Method and apparatus for building commercial distributed computing networks via computer cost subsidization
JP2003099412A (ja) 2001-09-21 2003-04-04 Hitachi Eng Co Ltd 超並列コンピュータ
JP2005031771A (ja) 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
US7171531B2 (en) * 2004-01-14 2007-01-30 Hewlett-Packard Development Company, L.P. Process job flow analysis
JP2006100752A (ja) 2004-09-30 2006-04-13 Sanyo Electric Co Ltd 回路装置およびその製造方法
JP4410661B2 (ja) 2004-11-09 2010-02-03 株式会社日立製作所 分散制御システム
US7849462B2 (en) * 2005-01-07 2010-12-07 Microsoft Corporation Image server
EP1862904A4 (en) 2005-03-22 2009-06-03 Fujitsu Ltd DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM
JP2006338264A (ja) 2005-06-01 2006-12-14 Toyota Infotechnology Center Co Ltd タスク割当装置およびタスク割当方法
JP4370313B2 (ja) 2006-07-10 2009-11-25 三菱電機株式会社 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム

Also Published As

Publication number Publication date
US20080115143A1 (en) 2008-05-15
US8219997B2 (en) 2012-07-10
JP2008123205A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
JP4308241B2 (ja) ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US7406689B2 (en) Jobstream planner considering network contention &amp; resource availability
Hamscher et al. Evaluation of job-scheduling strategies for grid computing
KR101994506B1 (ko) Paas 자원들, 작업들 및 스케줄링의 분리 기법
JP6114829B2 (ja) 仮想環境における演算インフラストラクチャのリアルタイム最適化
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
US8095933B2 (en) Grid project modeling, simulation, display, and scheduling
US7784056B2 (en) Method and apparatus for scheduling grid jobs
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
CN106874084B (zh) 一种分布式工作流调度的方法、装置及计算机设备
EP3675434B1 (en) Distributed system resource allocation method, device and system
WO2012066640A1 (ja) 計算機システム、マイグレーション方法及び管理サーバ
KR20140109940A (ko) Paas 계층적 스케일링 및 자동 스케일링 기법
JP2012525641A (ja) アプリケーション効率エンジン
Schulte et al. Introducing the vienna platform for elastic processes
CN111443870B (zh) 一种数据处理的方法、设备及存储介质
CN107251007B (zh) 集群计算服务确保装置和方法
JP6620609B2 (ja) 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
KR20070041462A (ko) 유효자원 쿼럼 생성 모듈 기반 그리드 자원 관리 시스템 및그 방법
Kumar et al. Load balancing algorithm to minimize the makespan time in cloud environment
JP2007102332A (ja) 負荷分散システム及び負荷分散方法
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
Burchard et al. VRM: A failure-aware grid resource management system
Yau et al. Distributed monitoring and adaptation of multiple qos in service-based systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090331

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: 20090428

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090430

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees