JP2008152618A - ジョブ割当プログラム、方法及び装置 - Google Patents

ジョブ割当プログラム、方法及び装置 Download PDF

Info

Publication number
JP2008152618A
JP2008152618A JP2006341081A JP2006341081A JP2008152618A JP 2008152618 A JP2008152618 A JP 2008152618A JP 2006341081 A JP2006341081 A JP 2006341081A JP 2006341081 A JP2006341081 A JP 2006341081A JP 2008152618 A JP2008152618 A JP 2008152618A
Authority
JP
Japan
Prior art keywords
job
computer
assignment
notification
processing
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.)
Granted
Application number
JP2006341081A
Other languages
English (en)
Other versions
JP4992408B2 (ja
Inventor
Taketoshi Yoshida
武俊 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006341081A priority Critical patent/JP4992408B2/ja
Priority to US11/901,982 priority patent/US8510742B2/en
Publication of JP2008152618A publication Critical patent/JP2008152618A/ja
Application granted granted Critical
Publication of JP4992408B2 publication Critical patent/JP4992408B2/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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

【課題】フレキシブルなジョブ割当を可能とする。
【解決手段】本方法では、ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てる。具体的には、生成されたジョブの処理に必要な構成を有するコンピュータを特定する工程と、現在のジョブの生成状態に応じた、ジョブの割当態様を特定する工程と、特定された上記ジョブの割当態様に従って、特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する工程と、ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成されたジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する工程とを含む。
【選択図】図1

Description

本発明は、異なる構成を有する複数のコンピュータをネットワークで相互接続して利用する際のジョブ割当技術に関する。
従来のグリッド・システムの多くはプッシュ(Push)型と呼ばれるジョブ(Job)割当方式を採用している。Push型のJob割当方式においては、特定のコンピュータが、Jobの生成、Jobを処理する他のコンピュータの処理負荷情報の管理、Jobの割り当てなどを一元的に行う。
また、Pull型と呼ばれるJob取得方式もある。これは、Jobを生成するコンピュータと、それとは別にJobを取得し処理するコンピュータとの組み合わせにて実施される。そして、Jobを取得し処理するコンピュータは、それ自身の処理負荷管理を行い、その情報を基にJobの取得要求をJobを生成するコンピュータに送信し、取得可能ならば取得して処理し、結果をJobを生成するコンピュータに通知するというものである。
さらに、特開2005−352697号公報には、分割したジョブを複数のクライアントで分散処理させるときに、全体の処理時間を短縮するための技術が開示されている。具体的には、グリッドコンピューティングによって負荷分散処理が可能な画像形成システムにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、ジョブスケジューラは、同じジョブを複数のクライアント装置に割り当て、同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させるようになっている。しかしながら、クライアント装置ではジョブの割り当てを拒否することはできず、Push型のJob割当方式の変形となっている。
また、特開2005−182796号公報には、グリッド・コンピューティング・システム上のデータ・オペレーションおよび実行資源の自律的管理のための技術が開示されている。具体的には、自律的管理装置が、モニタ・モジュール、ポリシー・モジュール、および調整モジュールを含む。モニタ・モジュールは、トリガ・イベントを求めてグリッド・コンピューティング・システムを監視するように構成される。ポリシー・モジュールは、複数のシステム・ポリシーのうちの1つにアクセスするように構成される。複数のシステム・ポリシーのそれぞれは、グリッド・コンピューティング・システムのシステム資源の動作制御パラメータに対応する。調整モジュールは、認識したトリガ・イベントに応答して、複数のシステム・ポリシーのうちの1つに従って、システム資源を自律的に調整するように構成される。本公報では、Job実行計算機の負荷情報を一元的に管理することが開示されているが、Jobの投入条件や投入の判断については述べられていない。
さらに、特開2006−48273号公報には、グリッドコンピューティングによる負荷分散可能なシステムと、グリッドに対してジョブを依頼する画像形成装置から構成される、画像処理システムにおいてグリッドジョブを操作部から投入する際に、ユーザにとって柔軟にかつ容易な構成を提供するための技術が開示されている。具体的には、グリッドジョブを実行する際に、直ちにジョブの実行を要求する第1のモードか、後でジョブを実行してもかまわない第2のモードかを指定し、第2のモードの場合は、入力された画像を一旦保存し、ジョブの依頼が可能になったときに、保存した画像に対してグリッドを用いた処理を行う。グリッドジョブを実行する際に、グループ化したホストから最適なお薦めグリッドグループを選択し、選択されたグリッドグループを用いてグリッド処理を行う。しかし、本公報の技術は、ジョブをどのようなグループに割り当てるかに着目しており、クライアントによるJobの取得可否判断などについては考慮されていない。
特開2005−352697号公報 特開2005−182796号公報 特開2006−48273号公報
以上挙げた公開公報には上で述べたような問題がある。
また、Push型のJob割当方法には、以下のような問題がある。すなわち、Jobが一旦コンピュータに割り当てられると、その処理が終了するか削除されない限り、そのコンピュータに留まり他のコンピュータがそのジョブを処理する事が出来ず、また、同じJobを同時に別々のコンピュータに処理させたとしても、その処理結果を管理するJobを新たに定義しなければならなかった。特に、より処理能力の高いコンピュータが空き状態になったにも関らず、遅いコンピュータで処理を継続するしかないため、全体の処理時間が短縮できないという問題があった。例えば、処理能力100を要するJob(A)が他のコンピュータが忙しく、処理能力10しかないコンピュータ(A)に割り当てられたとする。処理能力200のコンピュータ(B)が空き状態になったが、Job(A)は未だ30程度しか終わっていない場合、従来はそのままコンピュータ(A)で処理を継続するしかなかった。コンピュータ(A)で処理が30の時点でコンピュータ(B)に割り当てれば、コンピュータ(A)と較べ処理能力50のJobとして処理でき、コンピュータ(A)で残り処理70を処理する時間より短時間で処理できるはずであるが、そのような処理はできない。
また別の問題として、コンピュータに障害が発生した場合、それを認識するまでに時間がかかり、その分Jobの割り当てが非効率になるという問題もある。Push型のJob割当方法は、一般的に、コンピュータの状態を一元的に管理している。その一般的な方法として各コンピュータからそれぞれの状態に関するデータを管理元に定期的に通知する方法が採用される。障害を早く検出するにはこの定期的な通知の間隔を短くすれば良いが、ネットワーク負荷が高くなり、また、通知元及び通知先のコンピュータの負荷も上がるという問題もある。
一方、Pull型のJob割当方法においては、コンピュータの処理能力の一元的管理は行われておらず、各コンピュータのJob取得は各コンピュータのポリシーに任されており、Jobの要求する処理能力とコンピュータの処理能力との組み合わせが必ずしも適切に行われないという問題がある。例えば、Job数がコンピュータの数より多い場合においてJobの取得を各コンピュータのポリシーに全て任せてしまうと、同じJobを複数のコンピュータで取得してしまう場合や、コンピュータがまったく割り当てられないJobが発生してしまうという問題もある。
以上のように従来の方式では、Jobとコンピュータの状態に応じたフレキシブルなJob割当の切り替えができておらず、結果として処理時間が長くかかってしまうといった問題が生ずる場合がある。特に、Push型のJob割当方法及びPull型のJob割当方法の良い部分がうまく利用できていない。
従って、本発明の目的は、フレキシブルなJob割当を可能とする新規な技術を提供することである。
また、本発明の他の目的は、処理時間の短縮を可能とする新規なJob割当技術を提供することである。
さらに、本発明の他の目的は、Jobを処理するコンピュータの負荷状態を集中的に管理することなくJob等の状態に応じて動的にJobの割り当てを切り替えるための技術を提供することである。
本発明の第1の態様に係るジョブ割当方法は、ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当方法であって、各コンピュータの構成のデータを格納するプロファイル管理データ格納部(例えば実施の形態におけるサーバプロファイル管理テーブル)を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、ジョブの生成状態に対応してジョブに対するコンピュータの割当態様に関するデータ(例えば実施の形態におけるJob生成通知条件)を格納する割当態様データ格納部(例えば実施の形態におけるJob生成通知定義ファイル)を用いて、現在のジョブの生成状態に応じた、ジョブの割当態様を特定するステップと、特定された上記ジョブの割当態様に従って、特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成されたジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送ステップとを含む。
このようにジョブを処理する各コンピュータの負荷状態を管理せずに、またジョブ割当通知ではなくジョブ生成通知を送付することによって、マスタコンピュータの処理負荷を削減することができる。なお、その結果として、ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信することがあるが、その場合にはいずれかのコンピュータがジョブを取得するようにジョブ生成通知を送信する。また、ジョブの割当態様に従って、1又は複数のコンピュータにジョブ生成通知が送信されるので、フレキシブルなジョブ割当が行われる。
また、本発明の第1の態様において、ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成されたジョブに対応してジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部(例えば実施の形態におけるJob割当管理テーブル)に登録するステップと、ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出するステップと、割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、ジョブの割当態様を特定するステップと、特定された上記ジョブの割当態様が処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、処理結果が未登録のジョブの処理に必要な構成を有し且つ処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信するステップとをさらに含むようにしてもよい。
一旦ジョブを処理するコンピュータが決まったとしても、その後の状態変化に応じて再度コンピュータを割り当てれば、処理時間を短縮できる可能性があるためである。
また、上で述べたジョブの割当態様に関するデータが、ジョブの数がコンピュータの数以上である状態の場合には、同一ジョブに複数のコンピュータの割り当てを禁止し、ジョブの数がコンピュータの数未満である状態の場合には、同一ジョブに複数のコンピュータの割り当てを許容することを表すデータを含むようにしてもよい。繁忙に応じてコンピュータの重複割当の可否を判定するものである。
さらに、上で述べた再送ステップが、ジョブの割当態様が、生成されたジョブに1のコンピュータを割り当てることを示している場合、送信ステップ以降のステップ又は特定ステップで特定されたコンピュータの全てからジョブ取得拒否通知を受信した場合には特定ステップ以降のステップを実施するステップを含むようにしてもよい。なお、ジョブ取得拒否通知の受信は、所定期間内にジョブ取得通知を受信しない場合と等価とする場合もある。
また、上で述べた再送ステップが、ジョブの割当態様が、生成されたジョブに複数のコンピュータを割り当てることを示している場合、特定ステップで特定されたコンピュータの全てからジョブ取得拒否通知を受信した際には特定ステップ以降のステップを実施するステップを含むようにしてもよい。少なくとも1のコンピュータがジョブを処理するようにするためである。
さらに、本発明の第1の態様において、生成されたジョブの優先度が所定の基準より高いか判断するステップと、生成されたジョブの優先度が所定の基準より高い場合には、ジョブの割当態様にかかわらず、特定ステップにおいて特定された複数のコンピュータにジョブ生成通知を送信する送信ステップとをさらに含むようにしてもよい。このようにすることによって、優先度の高いジョブは処理時間の短縮が見込める。
また、上で述べた特定ステップが、生成されたジョブで用いられるアプリケーションの実行数がライセンス総数より少ないか判断するステップと、生成されたジョブで用いられるアプリケーションの実行数がライセンス総数より少ないと判断された場合、当該アプリケーションがインストールされており且つ生成されたジョブの処理に必要な他の構成を有するコンピュータを特定するステップとを含むようにしてもよい。浮動ライセンスの場合にはこのように対処することができる。なお、固定ライセンスの場合にはコンピュータの構成で判断できる。
また、生成されたジョブが、計算処理数が指定された多数決型のジョブである場合、各計算処理を1つのジョブとして取り扱うようにする場合もある。例えば、奇数個のジョブを生成し、それぞれについてコンピュータを割り当てれば、その結果を多数決で特定することができるようになる。
さらに、生成されたジョブが、計算処理数が無指定の多数決型のジョブである場合、ジョブの割当態様にかかわらず、特定ステップにおいて特定された所定数のコンピュータにジョブ生成通知を送信するステップをさらに含むようにしてもよい。
本発明の第2の態様に係るジョブ割当方法は、各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、ジョブの生成状態に対応してジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、ジョブの割当態様を特定するステップと、特定された上記ジョブの割当態様に従って、特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成されたジョブに対応してジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部に登録するステップと、ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出するステップと、割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、ジョブの割当態様を特定するステップと、特定された上記ジョブの割当態様が処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、処理結果が未登録のジョブの処理に必要な構成を有し且つ処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信するステップとを含む。このようにジョブの割当態様を動的に切り替えて処理時間の短縮を図るものである。
なお、本方法をコンピュータに実行させるためのプログラムを作成することができ、このプログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
本発明によれば、フレキシブルなJob割当が可能となる。
また、本発明の他の側面によれば、処理時間の短縮が可能となる。
さらに、本発明の他の側面によれば、Jobを処理するコンピュータの負荷状態を集中的に管理することなくJob等の状態に応じて動的にJobの割り当てを切り替えることができるようになる。
図1に本発明の一実施の形態におけるシステム概要を示す。例えば、ネットワーク11乃至13には、本実施の形態における主要な処理を実施するマスタコンピュータ3と、当該マスタコンピュータ3によって管理され且つJobの生成通知が送られるサーバA乃至Dとが接続される。ネットワーク11乃至13は、通信品質が一定でなく、また画一的でもないネットワークである。
各サーバは、CPU(Central Processing Unit)やメモリなどの使用率などを測定し、Job生成通知の諾否を判断する負荷管理部51と、負荷管理部51によるJob生成通知の諾否の基準に関するデータであるJob取得ポリシーを格納するJob取得ポリシー格納部52とを有する。各サーバは、異なる処理能力を有し、またOS(Operating System)やハードウエア・アーキテクチャも異なる。
また、マスタコンピュータ3は、マスタコンピュータ3により管理される各サーバのプロファイル情報を格納するサーバプロファイル管理テーブル33と、Jobを生成する処理を行うJob生成部32と、Job生成部32により生成されたJobに関するデータを格納するJob割当管理テーブル37と、Job生成通知の通知態様を規定するJob生成通知定義ファイル35と、サーバプロファイル管理テーブル33とJob割当管理テーブル37とJob生成通知定義ファイル35と用いて適切なサーバにJob生成通知を行うJob生成通知処理部34と、各サーバからプロファイル情報を受信してサーバプロファイル管理テーブル33に格納するサーバプロファイル管理部31と、Job生成通知が通知されたサーバからデータを受信して必要に応じてJob割当管理テーブル37に登録するJob割当管理部36とを有する。Job割当管理部36とJob生成通知部34とは連携して動作する。
サーバプロファイル管理テーブル33は、図10Aに示すように、各サーバについて、Job生成通知の通知条件、OS、CPU種別、実行可能なアプリケーションなどの構成情報を格納する。特定のアプリケーションについて、システム全体で使用可能なライセンス数が決まっているが、当該ライセンス数を超えて当該特定のアプリケーションがサーバにインストールされている場合には、特定のアプリケーションについてのライセンス総数も、サーバプロファイル管理テーブル33において管理される。なお、本実施の形態では、マスタコンピュータ3による管理からはずれるサーバについては、サーバプロファイル管理テーブル33においてその項目が削除されるか又は無効化される。
Job生成通知定義ファイル35は、サーバへのJob生成通知条件を格納する。例えば、図10Bに示すように、Job割当管理テーブル37に登録されており且つ処理結果が未登録であるJob数がJobを割り当て可能なサーバ数以上である場合のJob生成通知の通知ポリシー(例えば全てのサーバに重複なしにJobを割り当てる)と、Job割当管理テーブル37に登録されており且つ処理結果が未登録であるJob数がJobを割り当て可能なサーバ数未満である場合のJob生成通知の通知ポリシー(例えば能力の低いサーバを2台残して可能であれば他の複数の空きサーバにJobを重複して割り当てる)とを格納する。なお、多数決型のJob(具体的には、計算結果が計算毎に異なり、多数決で計算結果を採用するようなJob)であって、Jobの割当が行われるべきサーバ数の指定がないJobの場合に用いられるデフォルトのサーバ数も格納されている。
Job割当管理テーブル37は、Job生成部32によって生成されたJobのデータを図1に示すように木構造で管理する。図10Cに示すように、各Jobのデータは、Jobの処理内容(例えばCプログラム)、本Jobを取得しているサーバのリスト及びJobの状態、前後のJobID(Jobのリンク情報)、Jobの処理要件(例えばOS種別やCPU種別)、Jobの優先度、Job処理結果などを含む。Job処理結果は、処理が完了しなければ登録されない。
次に、図1に示したシステムの処理内容について図2乃至図9を用いて説明する。まず、図2を用いてJob生成部32の処理について説明する。Job生成部32は、最初にユーザなどからの要求に応じてJobを1つ生成し(ステップS1)、Job割当管理テーブル37に、Jobの処理内容、Jobの処理要件及びJobの優先度などを含むJobの情報を登録する(ステップS3)。Jobに関連性がある場合には、前後のJobIDも登録する。そして、Job生成通知部34にJob(具体的にはJobID)を通知する(ステップS5)。その後、全てのJobが登録されたか判断する(ステップS7)。まだ登録すべきJobが存在している場合にはステップS1に戻り、全てのJobが登録された場合には、処理を終了する。Job生成自体は従来と同様であり、これ以上述べない。
次に、Jobをサーバに割り当てる際の処理について図3を用いて説明する。Job生成通知部34は、Job生成部32からJob生成の通知(JobIDの通知)を受信する(ステップS11)。そして、Job生成通知部34は、Job割当管理テーブル37から通知に係るJobの処理要件等を読み出す(ステップS13)。そして、サーバプロファイル管理テーブル33に対して、Jobの処理要件を満たすサーバを検索し、抽出する(ステップS15)。例えば、このステップにおいて複数のサーバを抽出しておく。なお、1つもサーバが抽出できない場合には、このステップでサーバが抽出されるようになるまで待機する。
その後、Job生成通知部34は、Job生成通知定義ファイル35から、サーバへのJob生成通知条件を読み出す(ステップS17)。上で述べたように、本実施の形態におけるJob生成通知定義ファイル35によれば、Job数がサーバ数以上か、Job数がサーバ数未満であるかで、Job割当の態様が異なる。
そして、Job生成通知部34は、Job生成通知条件に従って、ステップS15で抽出されたサーバにJob生成通知を送信する(ステップS19)。Job生成通知は、JobIDを含み、さらにJob実行に必要なデータ全てを含む。Job生成通知部34は、1のJobに複数のサーバを割り当てるようなJob生成通知条件が適用される場合(以下、ケースAと呼ぶ)には、ステップS15で抽出されたサーバのうちJob生成通知条件に従った数のサーバにJob生成通知を送信する。一方、Job生成通知部34は、1のJobに1のサーバを割り当てるようなJob生成通知条件が適用される場合(以下、ケースBと呼ぶ)には、ステップS15で抽出されたサーバのうち最も条件の良い1のサーバにJob生成通知を送信する。なお、Job生成通知部34は、Job生成通知の送信先サーバのIDなどをJob割当管理部36に出力しておく。
Job生成通知を受信したサーバの処理については、図4Aを用いて説明する。まず、サーバの負荷管理部51は、Job生成通知を受信し(ステップS31)、Job取得ポリシー格納部52からJob取得ポリシーを読み出す(ステップS33)。さらに、負荷管理部51は、CPU使用率、メモリ使用率などの負荷指標を取得する(ステップS35)。本ステップの内容は従来技術と同様であるから、ここでは詳しく述べない。そして、取得した負荷指標がJob取得ポリシーに従っているか判断する(ステップS37)。例えば、CPU使用率が70%以下の時にJobを取得するといったJob取得ポリシーが規定されている場合には、CPU使用率が70%以下であるか判断する。取得した負荷指標がJob取得ポリシーに従っていないと判断された場合には、負荷管理部51は、JobIDを含むJob取得拒否通知をマスタコンピュータ3に送信する(ステップS39)。一方、取得した負荷指標がJob取得ポリシーに従っていると判断された場合には、負荷管理部51は、JobIDを含むJob取得通知をマスタコンピュータ3に送信する(ステップS41)。このような処理をJob生成通知を受信する毎に判断する。
なお、負荷管理部51は、サーバプロファイル管理部31に対して、定期的に又は任意のタイミングで、自サーバがJobの割り当てを受けるか否か、プロファイル情報の更新の有無などについて通知する。サーバプロファイル管理部31は、負荷管理部51からの通知に従ってサーバプロファイル管理テーブル33を更新する。なお、サーバは、Job取得通知を送信した場合には、Jobの処理を開始し、処理が終了すれば、処理結果をJob割当管理部36に送信する。
図3の説明に戻って、Job割当管理部36は、サーバからJob取得通知又はJob取得拒否通知を受信し(ステップS21)、Job取得拒否通知を受信したか判断する(ステップS23)。ケースAの場合には、Job生成通知の全ての送信先サーバからJob取得拒否通知を受信したか判断する。ケースBの場合には、Job生成通知の送信先サーバからJob取得拒否通知を受信したか判断する。なお、所定時間内にJob取得通知又はJob取得拒否通知を受信しない場合も、Job取得拒否通知を受信したものとして取り扱う。Job取得拒否通知を受信した場合には、ステップS15で抽出された全てのサーバについて通知を行ったか判断する(ステップS25)。ケースAの場合、ステップS23でJob生成通知の全ての送信先サーバからJob取得拒否通知を受信したと判断されているので自動的にステップS15に移行する。一方、ケースBの場合、ステップS15で複数のサーバが抽出されれば、これまでにその全てにJob生成通知を送信したか判断する。
Job生成通知を送信していないサーバが存在する場合にはステップS19に戻る。一方、Job生成通知を送信していないサーバが存在しない場合にはステップS15に戻る。このように、Job割当管理テーブル37において、サーバが割り当てられていないJobについては、繰り返しサーバプロファイル管理テーブル33を参照して少なくとも1のサーバが割り当てられるようにする。
なお、一度Job取得拒否通知を送信してきたサーバについては、本処理フロー中では、再度Job生成通知を送信しないように管理しても良い。
一方、Job取得拒否通知ではなくJob取得通知を受信した場合には、Job割当管理部36は、Job割当管理テーブル37の該当JobのデータにJob取得サーバIDを登録する(ステップS27)。ケースAの場合、1のサーバからJob取得通知を受信した場合には、そのサーバのサーバIDを登録する。複数のサーバからJob取得通知を受信した場合には、それらのサーバの全てのサーバIDを登録する。ケースBの場合には、1のサーバにJobが割り当てられたことになるので、当該サーバのサーバIDを登録する。
このような処理を実施することによって、Job生成通知定義ファイル35に格納されているJob生成通知条件に応じたJob割当が行われるようになる。より具体的には、Job数が多い場合には、1のJobを1のサーバに割り当て、Job数が少ない場合には、1のJobを1以上のサーバに割り当てて、より早くJobの処理を完了したサーバの処理結果を採用することができるようになる。
また、Job生成通知に応じるか否かは、各サーバが自ら判断するため、マスタコンピュータ3では、各サーバの稼働状況を監視する必要がない。従って、マスタコンピュータ3の処理負荷が減少する。また、サーバに障害が発生した場合には、Job取得通知が返信されないため、他のサーバにJob生成通知を送り直すこととなる。
但し、Jobは従来のような単純な割り当てではない。本実施の形態では、サーバが自らの負荷などに基づきJob生成通知に応じてJob取得通知を送信するかJob取得拒否通知を送信するか判断した結果として、Job割り当てが決定するという点において、Pull型のJob割り当てとなっている。
なお、サーバは、Jobの処理が完了すると、Jobの処理結果をJob割当管理部36に通知する。Job割当管理部36は、Jobの処理結果を該当するJobデータに登録する。また、Job割当管理部36は、当該Jobに複数のサーバが割り当てられている場合には、そのうちの1のサーバからJobの処理結果を受信すると、他のサーバについてJobの終了を通知するJob制御通知を送信し、該当サーバにJobの処理を終了させる。処理に割り当てたリソースが無駄になるためである。
また、上で述べた処理フローではケースAの場合でも最悪の場合1のサーバにしかJobが割り当てられない場合もある。このような状況を回避するため、2以上のサーバからJob取得通知を受信しない場合にはステップS23からステップS25に移行するようにしても良い。
また、図4Bに示すような処理も、図3及び図4Aのスレッドとは別スレッドで定期的に又は任意のタイミングで実行される。まず、Job生成通知部34は、Job割当管理テーブル37を検索し、処理未了のJobを抽出する(ステップS101)。処理結果が登録されていないJobを特定する。もし、処理未了のJobが存在する場合には、処理未了のJobのデータを読み出しておく。そして、処理未了のJobが存在するか判断し(ステップS103)、処理未了のJobが存在しない場合には、処理を終了する。一方、処理未了のJobが存在する場合には、Job生成通知部34は、Job割当管理テーブル37とサーバプロファイル管理テーブル33とを参照して、現在のJob割当状態を特定する(ステップS105)。すなわち、Job数とサーバ数とを特定する。そして、Job生成通知定義ファイル35に格納されているJob生成通知条件に基づき、1のJobに複数のサーバを割り当て可能な状態にあるか判断する(ステップS107)。上で述べた例では、Job数がサーバ数未満であれば1のJobに複数のサーバを割り当て可能である。Job数がサーバ数以上であるような1のJobに複数のサーバを割り当て不能な状態であれば、処理を終了する。
そして、1のJobに複数のサーバを割り当て可能な状態であると判断された場合には、Job生成通知部34は、サーバプロファイル管理テーブル33を検索し、処理未了のJobの処理要件を満たし且つ当該Jobに割り当てられているサーバより高性能なサーバ(より条件の良いサーバ。具体的には、CPUの処理速度が速いなど。)を抽出する(ステップS109)。以下の処理は、ステップS101で複数のJobが抽出された場合には各Jobについて実施する。ステップS109でサーバが抽出できたか判断し(ステップS111)、抽出できなければ処理を終了する。一方、ステップS109でサーバが抽出できた場合には、Job生成通知部34は、抽出されたサーバにJob生成通知を送信する(ステップS113)。これに対してサーバは図4Aに示した処理を実施する。そうすれば、サーバは、Job取得通知又はJob取得拒否通知をマスタコンピュータ3に送信する。
マスタコンピュータ3のJob割当管理部36は、Job取得通知又はJob取得拒否通知をサーバから受信する(ステップS115)。そして、Job割当管理部36は、Job取得拒否通知を受信したか判断し(ステップS117)、Job取得拒否通知を受信した場合には、処理を終了する。一方、Job取得通知を受信した場合には、Job割当管理テーブル37の該当JobのデータにJob取得サーバのIDを登録する(ステップS119)。そして処理を終了する。
このような処理を行うことによって、最初は能力の低いサーバしか割り当てられてられなかったが、その後Jobの数が減少したりサーバ数が増加するなどでサーバに余裕が生ずると、後からでも能力の高いサーバをそのJobに割り当てることによって、早期に処理結果を得られるようになる。なお、Jobを実施することとなったサーバがフリーズしたり、ネットワークがダウンした場合も対処可能となる。
次に、上で述べた処理の変形として、プログラムのライセンスをも考慮した場合の処理内容を説明する。第1の変形例として、サーバが特定のアプリケーションについて固定のライセンスを有する場合における処理を図5及び図6を用いて説明する。
まず、Job生成通知部34は、Job生成部32からJob生成の通知(JobIDの通知)を受信する(ステップS51)。そして、Job生成通知部34は、Job割当管理テーブル37から通知に係るJobの処理要件を読み出す(ステップS53)。そして、サーバプロファイル管理テーブル33に対して、Jobの処理要件を満たすサーバを検索し、抽出する(ステップS55)。例えば、このステップにおいて複数のサーバを抽出しておく。
さらに、Job生成通知部34は、Job割当管理テーブル37を参照して、ステップS55で抽出されたサーバのうち、ライセンスを保有し且つそのライセンスのプログラムを未実行であるサーバを特定する(ステップS57)。そして、Job生成通知部34は、Job生成通知定義ファイル35から、サーバへのJob生成通知条件を読み出す(ステップS59)。
その後、Job生成通知部34は、Job生成通知条件に従って、ステップS57で特定されたサーバにJob生成通知を送信する(ステップS61)。Job生成通知は、JobIDを含み、さらにJob実行に必要なデータ全てを含む。Job生成通知部34は、ケースAの場合、ステップS57で特定されたサーバのうちJob生成通知条件に従った数のサーバにJob生成通知を送信する。一方、Job生成通知部34は、ケースBの場合、ステップS57で特定されたサーバのうち最も条件の良い1のサーバにJob生成通知を送信する。なお、Job生成通知部34は、Job生成通知の送信先サーバのIDなどをJob割当管理部36に出力しておく。
一方、サーバ側の処理は、図4Aに示したものと同じである。
処理は端子Aを介して図6の処理に移行して、Job割当管理部36は、サーバからJob取得通知又はJob取得拒否通知を受信し(ステップS63)、Job取得拒否通知を受信したか判断する(ステップS65)。ケースAの場合には、Job生成通知の全ての送信先サーバからJob取得拒否通知を受信したか判断する。ケースBの場合には、Job生成通知の送信先サーバからJob取得拒否通知を受信したか判断する。Job取得拒否通知を受信した場合には、ステップS57で特定された全てのサーバについて通知を行ったか判断する(ステップS67)。ケースAの場合、ステップS65でJob生成通知の全ての送信先サーバからJob取得拒否通知を受信したと判断されているので自動的に端子Cを介してステップS55に移行する。一方、ケースBの場合、ステップS57で複数のサーバが特定されれば、これまでにその全てにJob生成通知を送信したか判断する。
Job生成通知を送信していないサーバが存在する場合には端子Bを介してステップS61に戻る。一方、Job生成通知を送信していないサーバが存在しない場合には端子Cを介してステップS55に戻る。
一方、Job取得拒否通知ではなくJob取得通知を受信した場合には、Job割当管理部36は、Job割当管理テーブル37の該当JobのデータにJob取得サーバIDを登録する(ステップS69)。ケースAの場合、1のサーバからJob取得通知を受信した場合には、そのサーバのサーバIDを登録する。複数のサーバからJob取得通知を受信した場合には、それらのサーバの全てのサーバIDを登録する。ケースBの場合には、1のサーバにJobが割り当てられたことになるので、当該サーバのサーバIDを登録する。
このようにすれば、アプリケーションに固定のライセンスが割り当てられている場合に対応することができる。
なお、図4Bの処理フローも別スレッドで実施される。
このようにすればアプリケーションのライセンスを考慮しなければならない場合でも対処できるようになる。
また、ライセンス総数より多くアプリケーションをサーバにインストールしておき、そのアプリケーションの同時実行サーバ数をライセンス総数に制限する場合には、ステップS57の代わりに以下のような処理を実施すればよい。具体的には、Job生成通知部34は、Job実行に必要なライセンス・アプリケーションを実行しているサーバ数がライセンス総数未満であるか判断する。ライセンス総数は、サーバプロファイル管理テーブル33において各アプリケーションについて管理されている。Job実行に必要なライセンス・アプリケーションを実行しているサーバ数は、Job割当管理テーブル37を検索して計数する。ここで、Job実行に必要なライセンス・アプリケーションを実行しているサーバ数がライセンス総数となっている場合には、これ以上ライセンス・アプリケーションを実行することはできないので、当該ライセンス・アプリケーションの実行がいずれかのサーバで終了するまで、待機する。
そして、Job実行に必要なライセンス・アプリケーションを実行しているサーバ数がライセンス総数未満である場合には、Job生成通知部34は、ライセンス・アプリケーションを未実行であるサーバを抽出する。ライセンス・アプリケーションがインストールされているサーバはサーバプロファイル管理テーブル33から特定され、そのサーバがライセンス・アプリケーションを未実行であるか否かはJob割当管理テーブル37を検索することによって判断できる。
このようにすれば、浮動ライセンス方式を採用している場合にも対応することができる。
次に、Jobの優先度を考慮する場合の変形例について図7を用いて説明する。以下に説明する処理は、図3のステップS19に代わって実施する。
まず、Job生成通知部34は、Job割当管理テーブル37から、生成されたJobの優先度を取得する(ステップS71)。そして、優先度が所定値X以上であるか判断する(ステップS73)。優先すべきJobほど優先度の値が大きくなる場合に、このような判断を行い、優先すべきJobほど優先度の値が小さくなる場合には、優先度が所定値X以下であるか判断する。
優先度が所定値X未満である場合には、Job生成通知部34は、Job生成通知条件に従って、ステップS15で抽出されたサーバにJob生成通知を送信する(ステップS75)。ステップS19の説明と同様の処理を行う。一方、優先度が所定値X以上である場合には、Job生成通知部34は、Job生成通知条件にかかわらず、ステップS15で抽出された複数のサーバに、Job生成通知を送信する(ステップS77)。すなわち、優先度が所定値X以上である場合には、ケースAと同様に、Jobの処理要件を満たす複数のサーバに当該Jobを割り当てることによって、可能な限り早期に処理結果を得るようにする。
このようにすれば、優先度に応じてJob割当を切り替えて、優先度が高い場合には可能な限り早期に処理結果を取得できるようになる。
次に、計算結果が計算毎に異なり、多数決で計算結果を特定するような多数決型Jobを取り扱う変形例を図8及び図9を用いて説明する。
基本的に、Job生成部32は、図2のステップS3の代わりに図8の処理を行う。まず、Job生成部32は、生成されたJobが多数決型であるか判断する(ステップS81)。生成されたJobが多数決型でない場合には、通常どおりJobのデータを、Job割当管理テーブル37に登録する(ステップS83)。そして元の処理に戻る。
一方、生成されたJobが多数決型である場合には、Job数の指定があるか判断する(ステップS85)。Job数の指定がない場合には、指定数なしの多数決型Jobとして、Jobのデータを、Job割当管理テーブル37に登録する(ステップS87)。そして元の処理に戻る。
また、Job数の指定がある場合には、指定Job数のJobのデータを、Job割当管理テーブル37に登録する(ステップS89)。Job割当管理テーブル37には、指定Job数のJobのデータを各々並列的な関係として登録する。より具体的には、親ノードが多数決型Jobの全体に関するノードで、個々のJobについては当該親ノードの子ノードとして並列(すなわち同列)に配置される。そして元の処理に戻る。
このようにJob数が指定されていれば、個々のJobをJob割当管理テーブル37に登録する。一方、Job数が指定されていなければ、指定数なしの多数決型JobとしてJobを登録し、実際にJob生成通知を送信する際に、所定数のサーバにJobが割り当てられるようにする。
次に、このような多数決型Jobの場合のJob通知処理について図9を用いて説明する。Job生成通知部34は、ステップS19の代わりに以下の処理を実施する。
まず、Job生成通知部34は、Job割当管理テーブル37から読み出したJobが指定数なしの多数決型Jobである判断する(ステップS91)。指定数なしの多数決型Jobでない場合には、Job生成通知部34は、Job生成通知条件に従って、ステップS15で特定されたサーバに送信する(ステップS93)。なお、子ノードについてのみ通常どおり処理する。そして元の処理に戻る。
一方、指定数なし多数決型Jobである場合には、Job生成通知定義ファイル35に規定されたデフォルトの数のサーバに、Job生成通知を送信する(ステップS95)。なお、1つでもJob取得拒否通知を受け取った場合には、代替となるサーバにJob生成通知を送信する。また、Job割当管理部36は、多数決型Jobの計算結果の集計を行ってJob割当管理テーブル37に登録する。指定数ありの多数決型Jobの場合には、子ノードにそれぞれの処理結果を登録し、親ノードにJob割当管理部36の集計結果を登録する。
このようにすれば多数決型Jobでも簡単に取り扱うことができるようになる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば図1に示した機能ブロック図は、必ずしも実際のプログラム・モジュール構成に対応しない。また、処理フローについても同様の効果を奏する場合には、処理ステップの順番を入れ替えたり並行して実施することも可能である。
また、マスタコンピュータ3についても複数のコンピュータにより実施される場合もある。
さらに、Job生成通知定義ファイル35に格納されるJob生成通知条件については1つの例のみ示したが、このJob生成通知条件を変更することによって、様々な態様でJob生成通知を行うことができるようになる。例えば、上で述べた例ではJob数とサーバ数とで2段階の切り替えを行っていたが、より多くの段階で処理を切り替えるようにしても良い。また、別のパラメータを導入して処理を切り替えるようにしてもよい。さらにJob生成通知を送信する順番などについての条件が登録される場合もある。
なお、マスタコンピュータ3及び各サーバは、コンピュータ装置であって、図11に示すように当該コンピュータ装置においては、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS)及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
(付記1)
ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当プログラムであって、
前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、
ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、
前記ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成された前記ジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送ステップと、
を、マスタコンピュータに実行させるためのジョブ割当プログラム。
(付記2)
前記ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成された前記ジョブに対応して前記ジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部に登録するステップと、
前記ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出するステップと、
前記割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
特定された前記ジョブの割当態様が前記処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、前記処理結果が未登録のジョブの処理に必要な構成を有し且つ前記処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信するステップと、
をさらにマスタコンピュータに実行させる付記1記載のジョブ割当プログラム。
(付記3)
前記ジョブの割当態様に関するデータが、
前記ジョブの数が前記コンピュータの数以上である状態の場合には、同一ジョブに複数のコンピュータの割り当てを禁止し、
前記ジョブの数が前記コンピュータの数未満である状態の場合には、同一ジョブに複数のコンピュータの割り当てを許容する
ことを表すデータを含む付記1記載のジョブ割当プログラム。
(付記4)
前記再送ステップが、
前記ジョブの割当態様が、生成された前記ジョブに1のコンピュータを割り当てることを示している場合、前記送信ステップ以降のステップ又は前記特定ステップで特定されたコンピュータの全てから前記ジョブ取得拒否通知を受信した場合には前記特定ステップ以降のステップを実施するステップ
を含む付記1記載のジョブ割当プログラム。
(付記5)
前記再送ステップが、
前記ジョブの割当態様が、生成された前記ジョブに複数のコンピュータを割り当てることを示している場合、前記特定ステップで特定されたコンピュータの全てから前記ジョブ取得拒否通知を受信した際には前記特定ステップ以降のステップを実施するステップ
を含む付記1記載のジョブ割当プログラム。
(付記6)
生成された前記ジョブの優先度が所定の基準より高いか判断するステップと、
生成された前記ジョブの優先度が所定の基準より高い場合には、前記ジョブの割当態様にかかわらず、前記特定ステップにおいて特定された複数のコンピュータにジョブ生成通知を送信する送信ステップと、
をさらに含む付記1記載のジョブ割当プログラム。
(付記7)
前記特定ステップが、
生成された前記ジョブで用いられるアプリケーションの実行数がライセンス総数より少ないか判断するステップと、
生成された前記ジョブで用いられるアプリケーションの実行数がライセンス総数より少ないと判断された場合、当該アプリケーションがインストールされており且つ生成された前記ジョブの処理に必要な他の構成を有するコンピュータを特定するステップと、
を含む付記1記載のジョブ割当プログラム。
(付記8)
生成された前記ジョブが、計算処理数が指定された多数決型のジョブである場合、各前記計算処理を1つの前記ジョブとして取り扱うことを特徴とする付記1記載のジョブ割当プログラム。
(付記9)
生成された前記ジョブが、計算処理数が無指定の多数決型のジョブである場合、前記ジョブの割当態様にかかわらず、前記特定ステップにおいて特定された所定数のコンピュータにジョブ生成通知を送信するステップ、
をさらに含む付記1記載のジョブ割当プログラム。
(付記10)
ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当プログラムであって、
前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、
ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、
前記ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成された前記ジョブに対応して前記ジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部に登録するステップと、
前記ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出するステップと、
前記割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
特定された前記ジョブの割当態様が前記処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、前記処理結果が未登録のジョブの処理に必要な構成を有し且つ前記処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信するステップと、
を、マスタコンピュータに実行させるためのジョブ割当プログラム。
(付記11)
ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当方法であって、
前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、
ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、
前記ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成された前記ジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送ステップと、
を含み、マスタコンピュータに実行されるジョブ割当方法。
(付記12)
ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当装置であって、
前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定手段と、
ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定する手段と、
特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信手段と、
前記ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成された前記ジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送手段と、
を有するジョブ割当装置。
(付記13)
ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当装置であって、
前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定手段と、
ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定する手段と、
特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信手段と、
前記ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成された前記ジョブに対応して前記ジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部に登録する手段と、
前記ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出する手段と、
前記割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、前記ジョブの割当態様を特定する手段と、
特定された前記ジョブの割当態様が前記処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、前記処理結果が未登録のジョブの処理に必要な構成を有し且つ前記処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信する手段と、
を有するジョブ割当装置。
(付記14)
マスタコンピュータで管理されるコンピュータにより実行されるジョブ取得方法であって、
前記マスタコンピュータからジョブ生成通知を受信するステップと、
前記ジョブ生成通知を受信時点で、前記コンピュータの負荷状態が所定の基準より低いか判断するステップと、
前記コンピュータの負荷状態が前記所定の基準より低い場合には、前記マスタコンピュータにジョブ取得通知を送信するステップと、
前記コンピュータの負荷状態が前記所定の基準以上である場合には、前記マスタコンピュータにジョブ取得拒否通知を送信するステップと、
を含むジョブ取得方法。
本発明の実施の形態におけるシステムの概要図である。 ジョブ生成部の処理フローを示す図である。 Job生成通知を送信する際の処理フローを示す図である。 各サーバの処理フローを示す図である。 Jobメンテナンス処理の処理フローを示す図である。 アプリケーションのライセンスを考慮した場合の処理フローを示す図である。 アプリケーションのライセンスを考慮した場合の処理フローを示す図である。 優先度に基づく切り替え処理の処理フローを示す図である。 多数決型Job生成処理の処理フローを示す図である。 多数決型Job通知処理の処理フローを示す図である。 サーバプロファイル管理テーブルの一例を示す図である。 Job生成通知定義ファイルの一例を示す図である。 Job割当管理テーブルの一例を示す図である。 コンピュータの機能ブロックを示す図である。
符号の説明
11乃至13 ネットワーク
51 負荷管理部 52 Job取得ポリシー格納部
31 サーバプロファイル管理部
32 Job生成部
33 サーバプロファイル管理テーブル
34 Job生成通知部
35 Job生成通知定義ファイル
36 Job割当管理部
37 Job割当管理テーブル

Claims (8)

  1. ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当プログラムであって、
    前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、
    ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
    特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、
    前記ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成された前記ジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送ステップと、
    をマスタコンピュータに実行させるためのジョブ割当プログラム。
  2. 前記ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成された前記ジョブに対応して前記ジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部に登録するステップと、
    前記ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出するステップと、
    前記割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
    特定された前記ジョブの割当態様が前記処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、前記処理結果が未登録のジョブの処理に必要な構成を有し且つ前記処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信するステップと、
    をさらにマスタコンピュータに実行させる請求項1記載のジョブ割当プログラム。
  3. 前記ジョブの割当態様に関するデータが、
    前記ジョブの数が前記コンピュータの数以上である状態の場合には、同一ジョブに複数のコンピュータの割り当てを禁止し、
    前記ジョブの数が前記コンピュータの数未満である状態の場合には、同一ジョブに複数のコンピュータの割り当てを許容する
    ことを表すデータを含む請求項1記載のジョブ割当プログラム。
  4. 前記再送ステップが、
    前記ジョブの割当態様が、生成された前記ジョブに1のコンピュータを割り当てることを示している場合、前記送信ステップ以降のステップ又は前記特定ステップで特定されたコンピュータの全てから前記ジョブ取得拒否通知を受信した場合には前記特定ステップ以降のステップを実施するステップ
    を含む請求項1記載のジョブ割当プログラム。
  5. 前記再送ステップが、
    前記ジョブの割当態様が、生成された前記ジョブに複数のコンピュータを割り当てることを示している場合、前記特定ステップで特定されたコンピュータの全てから前記ジョブ取得拒否通知を受信した際には前記特定ステップ以降のステップを実施するステップ
    を含む請求項1記載のジョブ割当プログラム。
  6. ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当プログラムであって、
    前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、
    ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
    特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、
    前記ジョブ生成通知に対する応答としてジョブ取得通知を受信した場合には、生成された前記ジョブに対応して前記ジョブ取得通知の送信元のコンピュータの識別情報をジョブ割当データ格納部に登録するステップと、
    前記ジョブ割当データ格納部を検索して、処理結果が未登録のジョブを抽出するステップと、
    前記割当態様データ格納部を用いて、抽出時点のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
    特定された前記ジョブの割当態様が前記処理結果が未登録のジョブにコンピュータの重複割当を許容するものである場合、前記処理結果が未登録のジョブの処理に必要な構成を有し且つ前記処理結果が未登録のジョブを現在処理しているコンピュータより性能が高いコンピュータへジョブ生成通知を送信するステップと、
    をマスタコンピュータに実行させるためのジョブ割当プログラム。
  7. ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当装置であって、
    前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定手段と、
    ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定する手段と、
    特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信手段と、
    前記ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成された前記ジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送手段と、
    を有するジョブ割当装置。
  8. ジョブを処理する各コンピュータの負荷状態を管理することなく当該各コンピュータにジョブを割り当てるジョブ割当方法であって、
    前記各コンピュータの構成のデータを格納するプロファイル管理データ格納部を用いて、生成されたジョブの処理に必要な構成を有するコンピュータを特定する特定ステップと、
    ジョブの生成状態に対応して前記ジョブに対するコンピュータの割当態様に関するデータを格納する割当態様データ格納部を用いて、現在のジョブの生成状態に応じた、前記ジョブの割当態様を特定するステップと、
    特定された前記ジョブの割当態様に従って、前記特定ステップにおいて特定されたコンピュータのうち少なくともいずれかにジョブ生成通知を送信する送信ステップと、
    前記ジョブ生成通知に対する応答としてジョブ取得拒否通知を受信した場合、生成された前記ジョブの処理に必要な構成を有するコンピュータへのジョブ生成通知の送信を再実施する再送ステップと、
    を含み、マスタコンピュータに実行されるジョブ割当プログラム。
JP2006341081A 2006-12-19 2006-12-19 ジョブ割当プログラム、方法及び装置 Expired - Fee Related JP4992408B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006341081A JP4992408B2 (ja) 2006-12-19 2006-12-19 ジョブ割当プログラム、方法及び装置
US11/901,982 US8510742B2 (en) 2006-12-19 2007-09-20 Job allocation program for allocating jobs to each computer without intensively managing load state of each computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006341081A JP4992408B2 (ja) 2006-12-19 2006-12-19 ジョブ割当プログラム、方法及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012000028A Division JP5354033B2 (ja) 2012-01-04 2012-01-04 ジョブ割当プログラム、方法及び装置

Publications (2)

Publication Number Publication Date
JP2008152618A true JP2008152618A (ja) 2008-07-03
JP4992408B2 JP4992408B2 (ja) 2012-08-08

Family

ID=39529194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006341081A Expired - Fee Related JP4992408B2 (ja) 2006-12-19 2006-12-19 ジョブ割当プログラム、方法及び装置

Country Status (2)

Country Link
US (1) US8510742B2 (ja)
JP (1) JP4992408B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175638A (ja) * 2010-02-15 2011-09-08 Accenture Global Services Ltd 遠隔技術員による複数の同時セッションサポート
US8458521B2 (en) 2010-02-15 2013-06-04 Accenture Global Services Limited Remote technical support employing a configurable executable application
WO2014148247A1 (ja) * 2013-03-19 2014-09-25 株式会社日立製作所 処理制御システム、処理制御方法、および処理制御プログラム
US9495666B2 (en) 2011-12-15 2016-11-15 Accenture Global Services Limited End-user portal system for remote technical support

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090402B1 (en) 2003-09-26 2012-01-03 Iwao Fujisaki Communication device
JP5294014B2 (ja) * 2008-12-26 2013-09-18 株式会社日立製作所 ファイル共有方法、計算機システム及びジョブスケジューラ
US20110265982A1 (en) * 2010-04-29 2011-11-03 International Business Machines Corporation Controlling coolant flow to multiple cooling units in a computer system
JP5388134B2 (ja) * 2010-08-06 2014-01-15 株式会社日立製作所 計算機システム、及び、移動データ決定方法
US8924547B1 (en) * 2012-06-22 2014-12-30 Adtran, Inc. Systems and methods for managing network devices based on server capacity
CN105912309A (zh) * 2015-10-30 2016-08-31 乐视移动智能信息技术(北京)有限公司 一种在应用程序窗口禁止通知的方法及装置
US10509685B2 (en) * 2015-12-14 2019-12-17 VCE IP Holding Company, LLC Methods, systems, and computer readable mediums for workload clustering

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160647A (ja) * 1993-12-08 1995-06-23 Oki Electric Ind Co Ltd 分散処理システム
JP2001325041A (ja) * 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム
JP2003016043A (ja) * 2001-06-28 2003-01-17 Fujitsu Ltd インターネットを用いた分散処理システム及び方法
JP2004240671A (ja) * 2003-02-05 2004-08-26 Hitachi Ltd 分散計算機の処理方法及びシステム
JP2005352697A (ja) * 2004-06-09 2005-12-22 Canon Inc コンピュータシステム、及び該システムにおけるジョブの割り当て方法
WO2006100752A1 (ja) * 2005-03-22 2006-09-28 Fujitsu Limited 分散処理管理装置、分散処理管理方法、分散処理管理プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9414951D0 (en) * 1994-07-25 1994-09-14 British Telecomm Computer system having client-server architecture
JP2003058266A (ja) 2001-08-09 2003-02-28 Hokuriku Electric Power Co Inc:The ライセンス管理方法とライセンス管理プログラム
US7020797B2 (en) * 2001-09-10 2006-03-28 Optimyz Software, Inc. Automated software testing management system
JP3732818B2 (ja) * 2002-09-26 2006-01-11 パナソニック コミュニケーションズ株式会社 配信サーバ及び複合機並びに配信サーバシステム
JP2004246592A (ja) 2003-02-13 2004-09-02 Mitsubishi Electric Corp ジョブ実行管理装置
US7568199B2 (en) * 2003-07-28 2009-07-28 Sap Ag. System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US8332483B2 (en) * 2003-12-15 2012-12-11 International Business Machines Corporation Apparatus, system, and method for autonomic control of grid system resources
JP2005293492A (ja) 2004-04-05 2005-10-20 Mitsubishi Electric Corp サーバ、端末、および情報システム
US7810099B2 (en) * 2004-06-17 2010-10-05 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
JP2006048273A (ja) 2004-08-03 2006-02-16 Canon Inc 画像処理システム
JP4800299B2 (ja) * 2005-03-22 2011-10-26 富士通株式会社 コスト情報管理システム、コスト情報管理方法およびコスト情報管理プログラム
JP4768354B2 (ja) * 2005-08-15 2011-09-07 富士通株式会社 ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160647A (ja) * 1993-12-08 1995-06-23 Oki Electric Ind Co Ltd 分散処理システム
JP2001325041A (ja) * 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム
JP2003016043A (ja) * 2001-06-28 2003-01-17 Fujitsu Ltd インターネットを用いた分散処理システム及び方法
JP2004240671A (ja) * 2003-02-05 2004-08-26 Hitachi Ltd 分散計算機の処理方法及びシステム
JP2005352697A (ja) * 2004-06-09 2005-12-22 Canon Inc コンピュータシステム、及び該システムにおけるジョブの割り当て方法
WO2006100752A1 (ja) * 2005-03-22 2006-09-28 Fujitsu Limited 分散処理管理装置、分散処理管理方法、分散処理管理プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175638A (ja) * 2010-02-15 2011-09-08 Accenture Global Services Ltd 遠隔技術員による複数の同時セッションサポート
US8386289B2 (en) 2010-02-15 2013-02-26 Accenture Global Services Limited Multiple simultaneous session support by a remote technician
US8458521B2 (en) 2010-02-15 2013-06-04 Accenture Global Services Limited Remote technical support employing a configurable executable application
US8577710B2 (en) 2010-02-15 2013-11-05 Accenture Global Service Limited Multiple simultaneous session support by a remote technician using preliminary queues
US9111246B2 (en) 2010-02-15 2015-08-18 Accenture Global Services Limited Multiple simultaneous session support by a remote technician using preliminary queues
US10860957B2 (en) 2010-02-15 2020-12-08 Accenture Global Services Limited Multiple simultaneous session support by a remote technician using preliminary queues
US9495666B2 (en) 2011-12-15 2016-11-15 Accenture Global Services Limited End-user portal system for remote technical support
WO2014148247A1 (ja) * 2013-03-19 2014-09-25 株式会社日立製作所 処理制御システム、処理制御方法、および処理制御プログラム
US9501326B2 (en) 2013-03-19 2016-11-22 Hitachi, Ltd. Processing control system, processing control method, and processing control program
JP6062034B2 (ja) * 2013-03-19 2017-01-18 株式会社日立製作所 処理制御システム、処理制御方法、および処理制御プログラム

Also Published As

Publication number Publication date
JP4992408B2 (ja) 2012-08-08
US8510742B2 (en) 2013-08-13
US20080148272A1 (en) 2008-06-19

Similar Documents

Publication Publication Date Title
JP4992408B2 (ja) ジョブ割当プログラム、方法及び装置
US10003500B2 (en) Systems and methods for resource sharing between two resource allocation systems
US9104498B2 (en) Maximizing server utilization within a datacenter
CN104915407B (zh) 一种基于Hadoop多作业环境下的资源调度方法
US8826291B2 (en) Processing system
US8239868B2 (en) Computer system, servers constituting the same, and job execution control method and program
JP5770721B2 (ja) 情報処理システム
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
CN109564528B (zh) 分布式计算中计算资源分配的***和方法
US20130145203A1 (en) Dynamically configureable placement engine
CN112162865A (zh) 服务器的调度方法、装置和服务器
CN109766172B (zh) 一种异步任务调度方法以及装置
CN111258746B (zh) 资源分配方法和服务设备
US11438271B2 (en) Method, electronic device and computer program product of load balancing
WO2019056771A1 (zh) 分布式存储***升级管理的方法、装置及分布式存储***
WO2020238989A1 (zh) 一种调度任务处理实体的方法及装置
US10013288B2 (en) Data staging management system
Bok et al. An efficient MapReduce scheduling scheme for processing large multimedia data
JP2017037492A (ja) 分散処理プログラム、分散処理方法および分散処理装置
US9384050B2 (en) Scheduling method and scheduling system for multi-core processor system
US20170078372A1 (en) Breadth-First Resource Allocation System and Methods
CN110914805A (zh) 用于分层任务调度的计算***
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
JP4485592B2 (ja) 計算機システムおよび計算機システムの計算機制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120104

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120111

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

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

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

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees