JP2011180894A - ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法 - Google Patents

ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法 Download PDF

Info

Publication number
JP2011180894A
JP2011180894A JP2010045436A JP2010045436A JP2011180894A JP 2011180894 A JP2011180894 A JP 2011180894A JP 2010045436 A JP2010045436 A JP 2010045436A JP 2010045436 A JP2010045436 A JP 2010045436A JP 2011180894 A JP2011180894 A JP 2011180894A
Authority
JP
Japan
Prior art keywords
job
priority
procedure
user
computing resource
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.)
Ceased
Application number
JP2010045436A
Other languages
English (en)
Inventor
Yoshifumi Ujihashi
善史 宇治橋
Koichi Kumon
耕一 久門
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 JP2010045436A priority Critical patent/JP2011180894A/ja
Priority to US13/018,917 priority patent/US8539495B2/en
Publication of JP2011180894A publication Critical patent/JP2011180894A/ja
Ceased legal-status Critical Current

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
    • 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/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】優先度が著しく低下したユーザに対してジョブの実行機会を適切に与えること。
【解決手段】コンピュータに、記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定する決定手順と、前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、前記計算資源に割り当てられた前記ジョブについて、前記優先度を低下させる低下手順と、時間の経過に応じて前記優先度を上昇させる回復手順とを実行させ、前記割当手順は、前記ジョブの実行開始時から一定時間後において、前記優先度回復手順による前記優先度の上昇幅が前記優先度低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する。
【選択図】図8

Description

本発明は、ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法に関し、特に計算資源へのジョブの割り当て順を制御するジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法に関する。
従来、科学技術関連等の高負荷のジョブ(例えば、完了までに数日を要する計算)は、計算センター等に配置された並列スーパコンピュータやコンピュータ・クラスタ等(以下、「計算資源」という。)を利用して行われている。一般的に、このような計算資源は複数のユーザ(例えば、数十人の研究者等)によって共用される。したがって、限られた計算資源を各ユーザに公平に割り当てるため、各ユーザによって投入されるジョブの実行のスケジューリングを適切に行う必要がある。
斯かるジョブの実行は、一般的に次のように行われる。
(1)ユーザがジョブスケジューラのジョブキューにジョブを投入する
(2)ジョブスケジューラがジョブキューのジョブを、各ジョブの優先度順に計算資源にディスパッチする。この処理はジョブがジョブキューに無くなるか、割り付け可能な計算資源が無くなるまで行われる。
(3)ユーザによる新規ジョブの投入やジョブの終了等により、ジョブキュー内のジョブのディスパッチが可能となるようなトリガが発生すると、(2)のスケジューリング処理を行う。
ここで、各ジョブの優先度は基本的にジョブの投入順序やジョブを所有するユーザの優先度に基づいてジョブ投入時に決定される。なお、ユーザの優先度(以下、「ユーザ優先度」という。)とは、ユーザ間の優先順位をいい、ジョブの優先度とは異なる。ジョブの優先度は、同一ユーザに属するジョブ間の優先度をいう。
しかし、ジョブ投入時に決定されるジョブの優先度のみでディスパッチ順序が決定されると、ユーザの優先度の高いユーザや、或るユーザによって先に投入された大量のジョブによって計算資源が占有されてしまう現象が発生する。このような1ユーザによる計算資源の占有を防ぐために、一般的なジョブスケジューラはフェアシェア機能を備えている。
例えば、特許文献1では、ユーザの優先度を図1に示されるように動的に変化させることで、計算資源の割り当ての公平性を担保している。
図1は、特許文献1に記載されたユーザの優先度の推移例を示す図である。
特許文献1では、動的に変化するユーザの優先度を「動的優先度」と定義している。また、各ユーザには、ユーザの重要度に応じて予め静的な優先度(静的優先度)が設定されている。静的優先度は、ユーザごとに定められた、一定期間(例えば、1年等)あたりの計算資源の利用可能量(例えば、CPU数×時間)に基づいて定められる。
ジョブがディスパッチされ、計算資源によってジョブの実行が開始されると(ジョブ開始時)、当該ジョブに係るユーザはペナルティを受けた状態となる。すなわち、図1に示されるように、ジョブの実行の開始に応じて当該ジョブに係るユーザの動的優先度は、当該ジョブによる計算資源の予測利用量(例えば、CPU数×一定時間(本実施の形態では、予測実行時間)。以下、単に「予測利用量」という。)だけ低下する。ペナルティを受けている状態では、他のユーザより相対的に動的優先度が下がり、該当ユーザのジョブのディスパッチ順序が下がる。なお、予測利用量は、ジョブの入力時にユーザによって設定される。予測実行時間とは、当該ジョブが終了するために必要とされる時間を言う。利用CPUとは、ユーザが利用するCPUの数である。
ジョブの実行の開始によりペナルティを受けた後(動的優先度が下げられた後)、当該ジョブに係るユーザの動的優先度は、一定期間あたりの計算資源の利用可能量に応じた回復率によって、時間の経過に応じて徐々に回復する。したがって、一定期間あたりに利用可能な計算資源の量が多いユーザ程、ペナルティを早期に減少させることができる。図1では、ジョブ開始時からジョブ終了時の間において線形に動的優先度が増加(上昇)している。なお、動的優先度の最大値は静的優先度とされる。したがって、動的優先度が静的優先度に達した後は、それ以上動的優先度は上昇しない。
図1に示される方式によれば、自らに設定された一定期間あたりの計算資源の利用可能量を超えて計算資源を利用したユーザのジョブのディスパッチ順序は下げられる(すなわち、一定期間経過後も静的優先度には復帰できない。)。したがって、各ユーザが許可された範囲内において公平に計算資源を利用可能なようにフェアシェア機能を実現(動的優先度を調整)することが可能となる。
特開2009−277041号公報
但し、図1に示されるような動的優先度の制御方式が実現されている環境において、計算資源に空き(CPUの空き)が多く存在する状況で、或るユーザ(以下、「ユーザA」という。)のジョブが大量に投入された場合について考える。この場合、他のユーザのジョブが存在しないために、たとえユーザAが多くのペナルティを受けた状態であってもユーザAのジョブが大量に実行されてしまう可能性がある。
その結果、ユーザAの動的優先度は、次に示されるように推移する。図2は、特定のユーザのジョブが大量に投入された場合の動的優先度の推移の例を示す図である。
同図において、ユーザAの動的優先度は、a、b、c、d、e、fのタイミングで低下している。これは、それぞれのタイミングにおいてユーザAのジョブがディスパッチされたことによる。その結果、ユーザAの動的優先度は極端に低下し、しばらく回復できない状況となっている。したがって、他のユーザによってジョブが投入され場合、当該他ユーザのジョブによってディスパッチ順序が追い抜かれる状態が長期にわたって継続する可能性が有る。
しかしながら、計算資源に空きが有る状況におけるジョブの投入は、計算資源の有効利用に繋がる。そうすると、計算資源を理想的に利用したユーザに対して上記のようなペナルティが課されるのは酷であると考えられる。したがって、当該ユーザには何らかの救済手段が与えられるのが妥当であると考えられる。
本発明は、上記の点に鑑みてなされたものであって、優先度が著しく低下したユーザに対してジョブの実行機会を適切に与えることができるジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法の提供を目的とする。
そこで上記課題を解決するため、ジョブスケジューリングプログラムは、コンピュータに、記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定する決定手順と、前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、前記計算資源に割り当てられた前記ジョブについて、前記優先度を低下させる低下手順と、時間の経過に応じて前記優先度を上昇させる回復手順とを実行させ、前記割当手順は、前記ジョブの実行開始時から一定時間後において、前記優先度回復手順による前記優先度の上昇幅が前記優先度低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する。
開示された技術によれば、優先度が著しく低下したユーザに対してジョブの実行機会を適切に与えることができる。
特許文献1に記載されたユーザの優先度の推移例を示す図である。 特定のユーザのジョブが大量に投入された場合の動的優先度の推移の例を示す図である。 本発明の実施の形態における計算システム構成例を示す図である。 本発明の実施の形態におけるジョブスケジューリング装置のハードウェア構成例を示す図である。 第一の実施の形態における優先度の制御方式による優先度の推移の例を示す図である。 第一の実施の形態においてジョブ投入時にジョブスケジューリング装置によって実行される処理手順を説明するためのフローチャートである。 ジョブ構造体とユーザ構造体とが関連付けられた状態を示す図である。 第一の実施の形態におけるジョブのスケジューリング処理の処理手順を説明するためのフローチャートである。 ジョブ構造体のソート結果としてのデータ構造を示す図である。 第一の実施の形態におけるジョブの終了時にジョブスケジューリング装置によって実行される処理手順を説明するためのフローチャートである。 第二の実施の形態における優先度の制御方式による優先度の推移の例を示す図である。 第二の実施の形態におけるジョブのスケジューリング処理の処理手順を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図3は、本発明の実施の形態における計算システム構成例を示す図である。同図において、ジョブスケジューリング装置10と一つ以上の計算資源20とはLAN(Local Area Network)等のネットワーク30(有線又は無線の別は問わない。)を介して接続されている。
ジョブスケジューリング装置10は、ユーザからジョブの入力の受け付け、入力されたジョブの計算資源20への割り当て(ディスパッチ)順序の制御、及びジョブのディスパッチ等を行うコンピュータである。ジョブスケジューリング装置10は、ジョブ受付部11、優先度算出部12、ディスパッチ部13、ジョブ終了通知受付部14、及びジョブ解放部15等を有する。これら各部は、ジョブスケジューリング装置10にインストールされたプログラムが、ジョブスケジューリング装置10のCPUに実行させる処理により実現される。
「ユーザ」には複数のユーザから構成されるグループであっても良いが、説明の都合上、以下、ユーザで統一する。
ジョブ受付部11は、ジョブの投入を受け付ける。優先度算出部12は、後述される動的優先度等の算出を行う。ディスパッチ部13は、割り当て手段の一例であり、ジョブを計算資源20にディスパッチする(割り当てる)。ジョブ終了通知受付部14は、計算資源20よりジョブの終了通知を受信する。ジョブ解放部15は、終了通知を受けたジョブに関する解放処理を実行する。
計算資源20は、割り当てられた(ディスパッチされた)ジョブを実行する計算資源であり、例えば、並列スーパコンピュータやコンピュータ・クラスタ等に相当する。すなわち、図中において例示されている計算資源20a、20b、及び20cは、必ずしも一台のコンピュータであるとは限らず、相互結合網で結合された複数のコンピュータであってもよい。また、各計算資源20を一つ又は複数のCPUとして捉えてもよい。
図4は、本発明の実施の形態におけるジョブスケジューリング装置のハードウェア構成例を示す図である。図4のジョブスケジューリング装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、入力装置107、及びタイマー108等を有する。
ジョブスケジューリング装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってジョブスケジューリング装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。タイマー108は、時計である。
なお、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。
続いて、第一の実施の形態における優先度の制御方式の概要を説明する。第一の実施の形態における優先度の制御方式は、各ユーザのジョブのディスパッチ順序(実行順序)を決定するためのユーザごとの優先度は動的に変化する。斯かる優先度を以下「動的優先度」という。一方、各ユーザには、ユーザの重要度に応じて予め静的な優先度(静的優先度)が設定されている。静的優先度は、ユーザごとに定められた、一定期間(例えば、1年等)あたりの計算資源20の利用可能量(例えば、CPU数×時間)に基づいて定められる。但し、静的優先度は、全ユーザに対して共通の値が適用されてもよい。
動的優先度は、ジョブのディスパッチにより当該ジョブによる計算資源20の予測利用量(例えば、CPU数×予測実行時間。以下、単に「予測利用量」という。)だけ低下する(ペナルティを受ける)。ペナルティを受けた後(動的優先度が下げられた後)、当該ジョブに係るユーザの動的優先度は、一定期間あたりの計算資源20の利用可能量に応じた回復率によって、時間の経過に応じて徐々に回復(上昇)する。動的優先度の最大値は静的優先度とされる。したがって、動的優先度が静的優先度に達した後は、それ以上動的優先度は上昇しない。
なお、静的優先度と動的優先度とを区別しない場合、単に「優先度」という。本実施の形態では、優先度の最大値は「0」であるとする。但し、優先度は相対的な指標であるためその絶対値には特段の意味はない。
本実施の形態では、更に、図5に示されるような制御が行われる。図5は、第一の実施の形態における優先度の制御方式による優先度の推移の例を示す図である。
同図において、ユーザAの現在時刻tnの動的優先度の値はPnであり、他のユーザ(ユーザB、ユーザC等)に比べて極端に低下している。これは、時刻ta、tb、tc、及びtdにおいて、ユーザAのジョブがディスパッチされ、ユーザAに対して、いわゆるペナルティが課されたためである。
この状況において、本実施の形態では、以下の式(1)が満たされるジョブであれば、ユーザAのジョブであってもディスパッチを可能とする救済措置(例外措置)がとられる。
CPU数 ≦ 回復率 ・・・(1)
式(1)は、以下の式(2)と同義である。
予測利用量 ≦ 予測実行時間×回復率 ・・・(2)
何故ならば、予測利用量とは、CPU数×予測実行時間である。そうすると、式(2)は、以下の式(3)に変形することができる。
CPU数×予測実行時間 ≦ 予測実行時間×回復率 ・・・(3)
式(3)の両辺を予測実行時間で除すると式(1)が得られる。
すなわち、本実施の形態では、現在時刻から予測実行時間経過後に、現在時刻の動的優先度以上の動的優先度への回復が見込まれるジョブについては、他のユーザとの動的優先度の相対的な関係に拘わらず、ディスパッチが可能とされる。ここで、現在時刻から予測実行時間経過後に、現在時刻の動的優先度以上の動的優先度への回復が見込まれるジョブとは、予測実行時間の間の動的優先度の上昇幅が、ジョブのディスパッチによる動的優先度の低下幅以上であるジョブに相当する。
例えば、式(2)において、予測利用量によるペナルティ(ジョブのディスパッチによる動的優先度の低下)を負債と捉え、予測実行時間×回復率をジョブが終了するまでの収入と捉えると、返済可能な範囲の負債は認めようということである。そうすることで、ユーザAの動的優先度が負のスパイラルに陥るのを防止しつつ、ユーザAのジョブにディスパッチの機会を与えることができる。但し、ユーザAに関して実行中のジョブ数が所定の制限値以下(例えば、0)であることが条件とされる。複数のジョブに関して重複して救済措置を認めた場合、動的優先度の負のスパイラルを防止することができなくなる可能性があるからである。また、救済措置であるのにも拘わらず、多数のジョブの実行を許可するのは公平性の担保の観点より適切でないと考えるからである。公平性の観点からは、実行中のジョブ数に対する制限値は、0(セロ)であることが好ましい。但し、当該制限値は運用に応じて適宜定めればよい。
また、式(1)の意味として、次のような説明もできる。予測利用量は、CPU数×予測実行時間によって算出される。ここで、予測実行時間の時間の単位を「時」とすると、1時間当たりのペナルティは、CPU数である。一方、予測実行時間の間における動的優先度の回復幅は、予測実行時間の間におけるペナルティの回収量であると考えることができる。ここで、予測実行時間の間の動的優先度の回復幅は、予測実行時間×回復率によって算出される。そうすると、1時間当たりの回復率は、1時間当たりのペナルティの回収量である。したがって、式(1)のように、CPU数と回復率とが直接比較できるのである。すなわち、1時間当たりのペナルティが、1時間当たりのペナルティの回収量以下であれば、予測実行時間経過後に、現在時刻よりも動的優先度は低下することは無いのである。なお、回復率に関する時間の単位(単位時間)は、予測実行時間の単位(単位時間)と一致している必要がある。
図5について、具体的に説明する。図5におけるユーザAに関して、現在時刻tnにおいて、予測実行時間がΔt1であるジョブがジョブキューに投入されている場合、破線Ldがディスパッチ可否の分岐線となる。すなわち、ユーザAの動的優先度の推移線が、破線Ldと重なるか、破線Ldよりも上側(点線L1側)を通るようなジョブのディスパッチは可能とされる。一方、当該推移線が破線Ldより下を通るようなジョブのディスパッチは拒否される。このことは、当該ジョブの予測利用可能量がq1の範囲内であれば、当該ジョブのディスパッチは可能とされることを意味する。例えば、当該ジョブの予測利用可能量がq1−aである場合、当該ジョブのディスパッチによって、ユーザAの動的優先度は点線L1のよう推移する。その結果、予測実行時間Δt1後におけるユーザAの動的優先度の値は、現在時刻tnのPnよりもΔp1分だけ増加する。したがって、この場合、当該ジョブのディスパッチは可能となる。一方、当該ジョブの予測利用可能量がq2である場合、当該ジョブのディスパッチによって、ユーザAの動的優先度は点線L2のよう推移する。その結果、予測実行時間Δt1後におけるユーザAの動的優先度の値は、現在時刻tnのPnよりもΔp2分だけ低下してしまう。したがって、この場合、当該ジョブのディスパッチは拒否される。
以下、上記した方式を実現するためにジョブスケジューリング装置10が実行する処理手順等について具体的に説明する。
図6は、第一の実施の形態においてジョブ投入時にジョブスケジューリング装置によって実行される処理手順を説明するためのフローチャートである。
ステップS101において、ジョブ受付部11は、表示装置106や入力装置107等を介して、ジョブ、当該ジョブの実行を要求するユーザの識別子(ユーザID)、CPU数、及び当該ジョブの予測実行時間の入力を受け付ける。また、必要に応じてジョブの優先度が入力されてもよい。ジョブの優先度は、ユーザの優先度(静的優先度、動的優先度)とは異なり、同一ユーザに係るジョブ間における優劣関係を示す指標である。なお、本実施の形態において、ジョブの実体については特に限定されない。計算のためのパラメータの集合であってもよいし、計算のロジック(プログラム)を含むデータであってもよい。
続いて、ジョブ受付部11は、当該ジョブのジョブ構造体をメモリ装置103内に生成し、生成されたジョブ構造体に当該ジョブのジョブID、CPU数、当該ジョブの予測実行時間、当該ジョブの優先度、及び現在時刻等を記録する(S102)。ここで、ジョブ構造体とは、ジョブに属する属性情報を管理するためのデータ(構造体)であり、ジョブごとに生成される。なお、現在時刻は、ジョブの投入時刻として記録される。
続いて、ジョブ受付部11は、ユーザIDに基づいて、生成されたジョブ構造体とユーザ構造体とを関連付ける(S103)。ユーザ構造体とは、ユーザに関する属性情報(ユーザ情報)を管理するためのデータ(構造体)であり、補助記憶装置102に永続化(保存)されているユーザ情報に基づいて、所定のタイミング(例えば、ジョブスケジューリング装置10の起動時等)でユーザごとにメモリ装置103内に生成される。
図7は、ジョブ構造体とユーザ構造体とが関連付けられた状態を示す図である。同図では、ジョブ構造体501a、501b、及び501c、並びにユーザ構造体502a、502b、及び502cが示されている。
ジョブ構造体とユーザ構造体との関連付けにより、ジョブ構造体には関連先のユーザ構造体へのポインタ(位置情報又は識別情報)が登録される。図中では、ジョブ構造体501a及び501cは、ユーザ構造体502cに関連付けられている。ジョブ構造体501bは、ユーザ構造体502bに関連付けられている。なお、ジョブ構造体501a、501b、501cのそれぞれのジョブIDは、0、2、3である。
ユーザ構造体は、ユーザID、最終更新日時(tupdate)、最終更新日時の動的優先度(Pupdate)、回復率(R)、静的優先度(Pmax)、及び実行中ジョブ数カウンタ(JobNum)等をメンバ変数として有する。ユーザIDは、上記におけるユーザIDと同義である。最終更新日時とは、動的優先度の最終更新日時である。最終更新日時の動的優先度は、スケジューリング処理等において最後に算出された動的優先度である。回復率は、動的優先度の回復率であり、一定期間あたりの計算資源20の利用可能量に基づいて算出される。より詳しくは、回復率は、一定期間あたりに計算資源20の利用可能量分だけ動的優先度が回復する値(利用可能量を一定期間によって除した値)に設定される。但し、他の要因が考慮されて、回復率が補正されてもよい。また、回復率は、全ユーザに対して共通の値が適用されてもよい。なお、一定期間における時間の単位は、ジョブに対する予測実行時間の単位と同じとされる。静的優先度は、各ユーザの静的優先度であり、動的優先度の最大値として扱われる。実行中ジョブ数カウンタは、ユーザIDに係るユーザに関して実行中のジョブ数である。実行中とは、計算資源20に対してディスパッチされ、計算資源20より終了通知を受けていない状態をいう。
ステップS103では、ステップS101において入力されたユーザIDを有するユーザ構造体へのポインタが、ステップS102において生成されたジョブ構造体に登録される。
続いて、ジョブスケジューリング装置10は、ジョブ構造体及びユーザ構造体等を用いてジョブのスケジューリング(ジョブのディスパッチ順序の決定及びディスパッチ等)を行う(S104)。
ステップS104の詳細について説明する。図8は、第一の実施の形態におけるジョブのスケジューリング処理の処理手順を説明するためのフローチャートである。同図の処理は、ジョブの投入時のみならず所定のタイミングで繰り返し(例えば定期的に)実行される。
ステップS201において、優先度算出部12は、メモリ装置103上にロードされている全てのユーザ構造体に基づいて、全ユーザのそれぞれの現時点の動的優先度を算出する(S201)。なお、ここで全ユーザとは、計算システムのユーザとして予めスケジューリング装置10にユーザ情報が登録されているユーザをいい、現時点においてジョブが投入されている入力されているユーザのみに限られない。
ここで、
now:現時点の動的優先度
update:最終更新日時の動的優先度
max:ユーザ毎の静的優先度
R:回復率
now:現在日時
update:最終更新日時
とすると、動的優先度Pnowは、以下の計算を行うことよって算出される。
tmp=Pupdate+R×(tnow−tupdate)としたとき、
now=Ptmp(Ptmp<Pmaxのとき)
now=Pmax(Ptmp>=Pmaxのとき)
すなわち、動的優先度Pnowは、基本的に最終更新日時の動的優先度Pupdateに対して時間の経過に応じた回復分(R×(tnow−tupdate))を加算した値となる。但し、最大値は、ユーザ毎の静的優先度Pmaxとされる。以上の計算を行うにあたり、tnow以外のパラメータは、各ユーザ構造体に格納されている値が用いられる。tnowは、タイマー108より取得される。
優先度算出部12は、また、動的優先度の算出に応じて各ユーザ構造体のメンバ変数の値を更新する。具体的には、最終更新日時tupdateに現在日時を代入し、最終更新日時の動的優先度Pupdateに算出された動的優先度を代入する。なお、S201における動的優先度の算出処理は、動的優先度の線形な回復を実現するための処理である。
続いて、ディスパッチ部13は、各ジョブ構造体が関連付いているユーザ構造体の最終更新日時の動的優先度Pupdateの高い順に(降順に)、各ジョブ構造体をソートする(S202)。同一のユーザに属する複数のジョブ(同一のユーザ構造体に関連付いている複数のジョブ構造体)については、各ジョブ構造体に記録されているジョブの優先度又はジョブの投入時刻に基づいて順番が決定されればよい。例えば、ジョブの優先度が高い方が優先される。ジョブの優先度が一致する場合は、ジョブの投入時刻が早い方が優先される。
図9は、ジョブ構造体のソート結果としてのデータ構造を示す図である。同図に示されるように、ジョブ構造体のソート結果は、ジョブリスト503に登録される。ジョブリスト503は、ジョブ構造体へのポインタの配列である。すなわち、ソートされた順番でジョブ構造体のポインタがジョブリスト503の各要素に登録される。同図では、最終更新日時の動的優先度Pupdateの値が0.0であるユーザ構造体502cに関連付いているジョブ構造体501a及び501cのポインタが、ジョブリスト503の1番目、2番目に登録されている。続いて、最終更新日時の動的優先度Pupdateの値が−25.3456であるユーザ構造体502bに関連付いているジョブ構造体501bのポインタが、ジョブリスト503の3番目に登録されている。
なお、図9におけるユーザ構造体のメンバ変数の値は、図7の値に対して更新されていないが、これは便宜的なものである。
続いて、ディスパッチ部13は、実行中ジョブカウンタJobNumの値が0であるユーザ構造体に関連付いているジョブ構造体が先頭となるように、ジョブ構造体をソートし、ソート結果をジョブリスト503へ反映する(S203)。すなわち、実行中のジョブが無いユーザのジョブが優先される。但し、実行中のジョブカウンタJobNumの値が0であるユーザ構造体が無い場合、実行中ジョブカウンタJobNumの値が所定の制限値以下であるユーザ構造体に関連付いているジョブ構造体が先頭となるようにしてもよい。該当するジョブ構造体が複数存在する場合は、実行中ジョブカウンタJobNumが小さい方を優先させればよい。
続いて、ディスパッチ部13は、ジョブリスト503に登録されている順番で1つのジョブ構造体を参照対象とし、当該ジョブ構造体に対応するジョブを取得する(S204)。以下、参照対象とされたジョブ構造体を「カレントジョブ構造体」という。なお、ディスパッチ待ちのジョブはジョブIDに関連付けられてメモリ装置103又は補助記憶装置102に記録されている。したがって、ステップS204において、ディスパッチ部13は、カレントジョブ構造体のジョブIDに基づいてジョブを取り出す。
続いて、ディスパッチ部13は、カレントジョブ構造体に関連付けられているユーザ構造体(以下、「カレントユーザ構造体」という。)の実行中ジョブカウンタJobNumの値が0であるか否かを判定する(S205)。すなわち、カレントジョブ構造体に係るユーザについて、実行中のジョブは一つも無いかか否かが判定される。但し、図5において説明したように、実行中ジョブカウンタJobNumの値が0所定の制限値以下であるか否かが判定されてもよい。
当該ジョブカウンタJobNumの値が0(又は所定の制限値以下)である場合(S205でYes)、ディスパッチ部13は、カレントジョブ構造体に記録されているCPU数は、カレントユーザ構造体の回復率R以下であるか否かを判定する(S206)。当該CPU数が当該回復率Rより大きい場合(S206でNo)、未処理の他のジョブ構造体についてステップS204以降が実行される。
当該CPU数が当該回復率R以下である場合(S206でYes)、ディスパッチ部13は、取り出されたジョブ(カレントジョブ)を計算資源20に割り当てる(ディスパッチする)ことが可能であるか否かを判定する(S207)。当該判定は、カレントジョブが必要とする分(CPU数)だけ計算資源20に空きが有るか否かに基づいて行われる。
計算資源20にカレントジョブが必要とする分の空きが有る場合(S207でYes)、優先度算出部12は、カレントジョブに係るユーザの動的優先度Pupdateを更新する(S208)。当該更新は、以下の計算によって行われる。
update←Pupdate−r×Testimate
estimate:予測実行時間
r:CPU数
ここで、(r×Testimate)は、予測利用量に相当する。すなわち、当該更新は、ジョブ開始時(ディスパッチ時)の動的優先度の低下(ペナルティ)を実現するためのものである。なお、計算のための動的優先度Pupdateの値は、カレントジョブのジョブ構造体が関連付いているユーザ構造体の値が用いられる。CPU数r及び予測実行時間Testimateの値は、カレントジョブのジョブ構造体に記録されている値が用いられる。また、カレントジョブのユーザのユーザ構造体の動的優先度Pupdateは計算結果の動的優先度によって更新される。最終更新日時Tupdateはカレントジョブの開始(ディスパッチ)日時によって更新される。
続いて、ディスパッチ部13は、カレントジョブを計算資源20にディスパッチする(S209)。これにより、ディスパッチ先の計算資源20によってカレントジョブが実行される。なお、カレントジョブのディスパッチに際し、ディスパッチ部13は、ジョブの開始日時をカレントジョブのジョブ構造体に記録する。続いて、ディスパッチ部13は、カレントユーザ構造体の実行中ジョブカウントJobNumに1を加算する(S210)。続いて、ステップS202以降が繰り返される。
一方、計算資源20にカレントジョブが必要とする分の空きが無い場合(S207でNo)、ディスパッチ部13は、ジョブリスト503に登録されている全てのジョブ構造体について処理を行ったか否かを判定する(S211)。未処理のジョブ構造体が有る場合(S211でNo)、未処理のジョブ構造体についてステップS204以降が実行される。全てのジョブ構造体ついて処理が完了した場合(S211でYes)、ディスパッチ部13は、当該スケジューリング処理を終了させる。
なお、ステップS207において、ディスパッチ不可と判定された場合、カレントジョブのディスパッチが可能となるまで(カレントジョブのCPU数分のCPUの空きが出来るまで)待機するようにしてもよい。
続いて、ジョブの実行が終了した際に実行される処理について説明する。図10は、第一の実施の形態におけるジョブの終了時にジョブスケジューリング装置によって実行される処理手順を説明するためのフローチャートである。
ジョブが終了すると、当該ジョブを実行していた計算資源20より、終了したジョブ(終了ジョブ)のジョブIDが通知される。ステップS301において、ジョブスケジューリング装置10のジョブ終了通知受信部14は、当該通知を受信する。続いて、優先度算出部12は、終了ジョブに係るユーザの動的優先度Pupdateを更新する(S302)。当該更新は、以下の計算によって行われる。
update←Pupdate+r×(Testimate−Tactual
actual:実績実行時間
ここで、(r×Tactual)は、実績利用量に相当する。すなわち、ステップS301における動的優先度Pupdateの更新は、ジョブ開始時のペナルティとされた予測利用量と、実際に利用した計算資源の利用量(実績利用量)との差分によって動的優先度を補正するためのものである。斯かる補正により、予測利用量と実績利用量とのずれを埋め合わせることができ、より公平に動的優先度を制御することが可能となる。
なお、計算のための動的優先度Pupdateの値は、終了ジョブのジョブIDを有するジョブ構造体に関連付けられているユーザ構造体(カレントユーザ構造体)の値が用いられる。CPU数r及び予測実行時間Testimateの値は、当該ジョブ構造体に記録されている値が用いられる。実績実行時間は、当該ジョブ構造体に記録されているジョブの開始日時と、ジョブの終了通知が受信された日時とに基づいて算出される。また、カレントユーザ構造体の動的優先度Pupdateは計算結果の動的優先度によって更新され、最終更新日時Tupdateは、ジョブの終了通知が受信された日時によって更新される。
続いて、ジョブ解放部15は、終了ジョブの解放処理を実行する(S303)。具体的には、終了ジョブに係るジョブ構造体がメモリ装置103内より削除される。また、ジョブリスト503における、当該ジョブへのポインタが削除される。
続いて、ジョブ解放部15は、カレントジョブ構造体の実行中ジョブカウントJobNumより1を減算する(S304)。
以上の処理によって、図5において説明した本実施の形態における動的優先度の制御方式が実現される。
上述したように、第一の実施の形態によれば、救済措置を適用することにより、一時的に計算資源20の利用過多が発生し、動的優先度が極端に低下したユーザに関するジョブあっても、ディスパッチ対象とすることができる。
その結果、動的優先度が極端に低下したユーザについて、長期間にわたってジョブが全く実行されなくなるという事態の発生の回避が可能となる。
また、救済措置の対象とするジョブは、ユーザの回復率との関係において制限される。したがって、他のユーザとの公平性が適切に担保され(フェアシェアの正当性が維持され)、かつ、該当ユーザの動的優先度の低下に歯止めが掛からなくなるといった事態の発生を防止することができる。
次に、第二の実施の形態について説明する。図11は、第二の実施の形態における優先度の制御方式による優先度の推移の例を示す図である。図11中、図5と同一部分には同一符号を付し、その説明は省略する。また、第二の実施の形態において、特に言及しない点については、第一の実施の形態と同様でよい。
同図において、時刻teは、ユーザAに関する全てのジョブの実行が終了した時刻を示す。「全てのジョブの実行が終了した」とは、全てのジョブの実行が同時に終了したことのみを意味するものではない。換言すれば、時刻teは、ユーザAに関して実行中のジョブが一つも無くなった時刻である。なお、時刻teにおいてユーザAの動的優先度は上昇している。この現象は、上記した予測利用量と実績利用量との差分に基づく補正によるものである。
第二の実施の形態では、ユーザAに関して、実行中のジョブが1つも無くなった後、次のジョブの予測利用量だけ動的優先度が回復したら、他のユーザの動的優先度との相対的関係に拘わらず、当該次のジョブのディスパッチを可能とするという救済措置がとられる。「次のジョブの予測利用量だけ動的優先度が回復したら」とは、ジョブディスパッチ時のペナルティを受けた後の動的優先度が、時刻teにおける動的優先度Pe以上を維持できることを意味する。すなわち、ジョブ開始時における動的優先度の低下幅が、時刻teから当該ジョブの実行開始時(ディスパッチ時)における動的優先度の上昇幅以下であるジョブであれば、他のユーザの動的優先度との相対的関係に拘わらず、当該次のジョブのディスパッチが可能となる。
具体的には、図11において、ユーザAに関しては、時刻teから現在時刻tmまでの間に、q5だけ動的優先度が上昇している。したがって、予測利用量がq5以下のジョブであれば、ディスパッチは可能とされる。
そうすることで、第一の実施の形態と同様に、ユーザAの動的優先度が負のスパイラルに陥るのを防止しつつ、ユーザAのジョブにディスパッチの機会を与えることができる。また、ユーザAに関してジョブが一つも実行中でないことが自動的に救済措置の適用条件となる。したがって、動的優先度の負のスパイラルを防止することができなくなる可能性を低下させることができる。また、他のユーザ間との公平性も適切に担保される。なお、図11における時刻teを、ユーザAの実行中のジョブ数が所定の制限値以下となった時点としてもよい。この場合、救済措置の適用条件は、ユーザAに関してジョブが所定の制限値以下であることとなる。
以下、上記した方式を実現するためにジョブスケジューリング装置10が実行する処理手順等について具体的に説明する。
図12は、第二の実施の形態におけるジョブのスケジューリング処理の処理手順を説明するためのフローチャートである。図12中、図8と同一ステップには同一ステップ番号を付し、その説明は省略する。
同図では、図8においけるステップS206が、ステップS206aに置き換えられている。
ステップS206aにおいて、ディスパッチ部13は、カレントユーザ構造体に係るユーザカレントユーザ)に属する実行中のジョブ数が0となった時点(又は所定の制限値以下となった時点)から、カレントユーザの動的優先度が所定量回復しているか否かを判定する。ここで、所定量は、カレントジョブ構造体に係るジョブの予測利用量である。
カレントユーザに属する実行中のジョブ数が0となった時点又は所定の制限値以下となった時点の動的優先度は、カレントユーザ構造体の最終更新日時の動的優先度Pupdateである。動的優先度Pupdateが更新される機会は、ステップS201、S208、及び図10のステップ302であるところ、待機ジョブが有り、かつ、実行中のジョブ数が0となった状態又は所定の制限値以下となった状態におけるカレントユーザ構造体の動的優先度Pupdateの値は、図10のステップS302において記録されたものであるからである。
したがって、カレントユーザの現時点の動的優先度Pnowの算出方法は、ステップS201で採用したものと同じでよい。実行中のジョブ数が0となった時点又は所定の制限値以下となった時点からの動的優先度の回復量は、Pnow−カレントユーザ構造体の動的優先度Pupdateによって算出される。一方、カレントジョブ構造体係るジョブの予測利用量は、カレントジョブ構造体に記録されているCPU数×予測実行時間によって算出される。したがって、ステップS206aでは、
CPU数×予測実行時間 ≦ Pnow−カレントユーザ構造体の動的優先度Pupdate
であるか否かが判定される。
カレントユーザの動的優先度が所定量回復している場合(S206aでYes)、ステップS207以降が実行される。カレントユーザの動的優先度が所定量回復していない場合(S206でNo)、未処理の他のジョブ構造体についてステップS204以降が実行される。
上述したように、第二の実施の形態によっても、第一の実施の形態と同様の効果を得ることができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
コンピュータに、
記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定する決定手順と、
前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
前記計算資源に割り当てられた前記ジョブについて、前記優先度を低下させる低下手順と、
時間の経過に応じて前記優先度を上昇させる回復手順とを実行させ、
前記割当手順は、前記ジョブの実行開始時から一定時間後において、前記優先度回復手順による優先度の上昇幅が前記優先度低下手順による優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリングプログラム。
(付記2)
前記決定手順は、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ジョブの割り当て順を決定し、
前記低下手順は、前記計算資源に割り当てられた前記ジョブに係るユーザについて、前記優先度を低下させ、
前記回復手順は、時間の経過に応じて前記ユーザの前記優先度を上昇させ、
前記割当手順は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記ジョブの実行開始時から一定時間後において、前記回復手順による前記優先度の上昇幅が前記低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、付記1記載のジョブスケジューリングプログラム。
(付記3)
前記低下手順は、前記計算資源に割り当てられたジョブに係るユーザについて、当該ジョブを実行するCPU数及び予測実行時間に基づいて、前記優先度を低下させ、
前記回復手順は、前記記憶手段に記録された前記優先度の回復率に基づいて、時間の経過に応じて各ユーザの前記優先度を上昇させ、
前記割当手順は、前記CPU数が前記回復率以下のジョブであれば、前記計算資源へ割り当てを実行する、付記2記載のジョブスケジューリングプログラム。
(付記4)
コンピュータに、
記憶手段に記録されている、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ユーザより受け付けられたジョブの割り当て順を決定する決定手順と、
前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
前記計算資源に割り当てられた前記ジョブに係るユーザについて、前記優先度を低下させる低下手順と、
時間の経過に応じて前記ユーザの前記優先度を上昇させる回復手順とを実行させ、
前記割当手順は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記低下手順による前記優先度の低下幅が、前記回復手順による前記優先度の上昇幅以下であるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリングプログラム。
(付記5)
前記割当手順は、前記計算資源に割り当てられているジョブ数が0であるユーザに係るジョブついて、前記計算資源への割り当てを実行する付記2乃至4いずれか一項記載のジョブスケジューリングプログラム。
(付記6)
記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定し、前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手段と、
前記計算資源に割り当てられた前記ジョブについて前記優先度を低下させ、時間の経過に応じて前記優先度を上昇させる優先度算出手段とを有し、
前記割当手段は、前記ジョブの実行開始時から一定時間後において、前記優先度算出手段による前記優先度の上昇幅が前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリング装置。
(付記7)
前記割当手段は、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ジョブの割り当て順を決定し、
前記優先度算出手段は、前記計算資源に割り当てられた前記ジョブに係るユーザについて前記優先度を低下させ、時間の経過に応じて前記ユーザの前記優先度を上昇させ、
前記割当手段は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記ジョブの実行開始時から一定時間後において、前記記優先度算出手段による前記優先度の上昇幅が前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、付記6記載のジョブスケジューリング装置。
(付記8)
前記優先度算出手段は、前記計算資源に割り当てられたジョブに係るユーザについて当該ジョブを実行するCPU数及び予測実行時間に基づいて前記優先度を低下させ、前記記憶手段に記録された前記優先度の回復率に基づいて時間の経過に応じて各ユーザの前記優先度を上昇させ、
前記割当手段は、前記CPU数が前記回復率以下のジョブであれば、前記計算資源へ割り当てを実行する、付記7記載のジョブスケジューリング装置。
(付記9)
記憶手段に記録されている、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ユーザより受け付けられたジョブの割り当て順を決定し、前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手段と、
前記計算資源に割り当てられた前記ジョブに係るユーザについて前記優先度を低下させ、時間の経過に応じて前記ユーザの前記優先度を上昇させる優先度算出手段とを有し、
前記割当手段は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記優先度算出手段による前記優先度の低下幅が、前記優先度の上昇幅以下であるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリング装置。
(付記10)
前記割当手段は、前記計算資源に割り当てられているジョブ数が0であるユーザに係るジョブついて、前記計算資源への割り当てを実行する付記7乃至9いずれか一項記載のジョブスケジューリング装置。
(付記11)
コンピュータが、
記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定する決定手順と、
前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
前記計算資源に割り当てられた前記ジョブについて、前記優先度を低下させる低下手順と、
時間の経過に応じて前記優先度を上昇させる回復手順とを実行し、
前記割当手順は、前記ジョブの実行開始時から一定時間後において、前記優先度回復手順による優先度の上昇幅が前記優先度低下手順による優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリング方法。
(付記12)
前記決定手順は、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ジョブの割り当て順を決定し、
前記低下手順は、前記計算資源に割り当てられた前記ジョブに係るユーザについて、前記優先度を低下させ、
前記回復手順は、時間の経過に応じて前記ユーザの前記優先度を上昇させ、
前記割当手順は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記ジョブの実行開始時から一定時間後において、前記回復手順による前記優先度の上昇幅が前記低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、付記11記載のジョブスケジューリング方法。
(付記13)
前記低下手順は、前記計算資源に割り当てられたジョブに係るユーザについて、当該ジョブを実行するCPU数及び予測実行時間に基づいて、前記優先度を低下させ、
前記回復手順は、前記記憶手段に記録された前記優先度の回復率に基づいて、時間の経過に応じて各ユーザの前記優先度を上昇させ、
前記割当手順は、前記CPU数が前記回復率以下のジョブであれば、前記計算資源へ割り当てを実行する、付記12記載のジョブスケジューリング方法。
(付記14)
コンピュータが、
記憶手段に記録されている、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ユーザより受け付けられたジョブの割り当て順を決定する決定手順と、
前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
前記計算資源に割り当てられた前記ジョブに係るユーザについて、前記優先度を低下させる低下手順と、
時間の経過に応じて前記ユーザの前記優先度を上昇させる回復手順とを実行し、
前記割当手順は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記低下手順による前記優先度の低下幅が、前記回復手順による前記優先度の上昇幅以下であるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリング方法。
(付記15)
前記割当手順は、前記計算資源に割り当てられているジョブ数が0であるユーザに係るジョブついて、前記計算資源への割り当てを実行する付記12乃至14いずれか一項記載のジョブスケジューリング方法。
10 ジョブスケジューリング装置
11 ジョブ受付部
12 優先度算出部
13 ディスパッチ部
14 ジョブ終了通知受付部
15 ジョブ解放部
20、20a、20b、20c 計算資源
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
108 タイマー
B バス

Claims (7)

  1. コンピュータに、
    記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定する決定手順と、
    前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
    前記計算資源に割り当てられた前記ジョブについて、前記優先度を低下させる低下手順と、
    時間の経過に応じて前記優先度を上昇させる回復手順とを実行させ、
    前記割当手順は、前記ジョブの実行開始時から一定時間後において、前記優先度回復手順による前記優先度の上昇幅が前記優先度低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリングプログラム。
  2. 前記決定手順は、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ジョブの割り当て順を決定し、
    前記低下手順は、前記計算資源に割り当てられた前記ジョブに係るユーザについて、前記優先度を低下させ、
    前記回復手順は、時間の経過に応じて前記ユーザの前記優先度を上昇させ、
    前記割当手順は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記ジョブの実行開始時から一定時間後において、前記回復手順による前記優先度の上昇幅が前記低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、請求項1記載のジョブスケジューリングプログラム。
  3. 前記低下手順は、前記計算資源に割り当てられたジョブに係るユーザについて、当該ジョブを実行するCPU数及び予測実行時間に基づいて、前記優先度を低下させ、
    前記回復手順は、前記記憶手段に記録された前記優先度の回復率に基づいて、時間の経過に応じて各ユーザの前記優先度を上昇させ、
    前記割当手順は、前記CPU数が前記回復率以下のジョブであれば、前記計算資源へ割り当てを実行する、請求項2記載のジョブスケジューリングプログラム。
  4. コンピュータに、
    記憶手段に記録されている、ジョブの計算資源への割り当て順に関する、ユーザ毎の優先度に基づいて、ユーザより受け付けられたジョブの割り当て順を決定する決定手順と、
    前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
    前記計算資源に割り当てられた前記ジョブに係るユーザについて、前記優先度を低下させる低下手順と、
    時間の経過に応じて前記ユーザの前記優先度を上昇させる回復手順とを実行させ、
    前記割当手順は、前記計算資源に割り当てられているジョブ数が所定値以下であるユーザについて、前記低下手順による前記優先度の低下幅が、前記回復手順による前記優先度の上昇幅以下であるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリングプログラム。
  5. 前記割当手順は、前記計算資源に割り当てられているジョブ数が0であるユーザに係るジョブついて、前記計算資源への割り当てを実行する請求項2乃至4いずれか一項記載のジョブスケジューリングプログラム。
  6. 記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定し、前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手段と、
    前記計算資源に割り当てられた前記ジョブについて前記優先度を低下させ、時間の経過に応じて前記優先度を上昇させる優先度算出手段とを有し、
    前記割当手段は、前記ジョブの実行開始時から一定時間後において、前記優先度算出手段による前記優先度の上昇幅が前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリング装置。
  7. コンピュータが、
    記憶手段に記録されている、ジョブの計算資源への割り当て順に関する優先度に基づいて、ジョブの割り当て順を決定する決定手順と、
    前記割り当て順に基づいて、前記ジョブを前記計算資源に割り当てる割当手順と、
    前記計算資源に割り当てられた前記ジョブについて、前記優先度を低下させる低下手順と、
    時間の経過に応じて前記優先度を上昇させる回復手順とを実行し、
    前記割当手順は、前記ジョブの実行開始時から一定時間後において、前記優先度回復手順による前記優先度の上昇幅が前記優先度低下手順による前記優先度の低下幅以上となるジョブであれば、前記計算資源への割り当てを実行する、ジョブスケジューリング方法。
JP2010045436A 2010-03-02 2010-03-02 ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法 Ceased JP2011180894A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010045436A JP2011180894A (ja) 2010-03-02 2010-03-02 ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
US13/018,917 US8539495B2 (en) 2010-03-02 2011-02-01 Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010045436A JP2011180894A (ja) 2010-03-02 2010-03-02 ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法

Publications (1)

Publication Number Publication Date
JP2011180894A true JP2011180894A (ja) 2011-09-15

Family

ID=44342766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010045436A Ceased JP2011180894A (ja) 2010-03-02 2010-03-02 ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法

Country Status (2)

Country Link
US (1) US8539495B2 (ja)
JP (1) JP2011180894A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016167121A (ja) * 2015-03-09 2016-09-15 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021493B2 (en) * 2012-09-14 2015-04-28 International Business Machines Corporation Management of resources within a computing environment
US9436739B2 (en) * 2013-12-13 2016-09-06 Vmware, Inc. Dynamic priority-based query scheduling
WO2015156822A1 (en) * 2014-04-11 2015-10-15 Hewlett Packard Development Company, L.P. Environment preference
CN107801204B (zh) * 2016-08-29 2022-03-22 中兴通讯股份有限公司 流量分配方法及无线接入点
US11182209B2 (en) * 2018-09-21 2021-11-23 Google Llc Distributed job scheduling system
US10884809B2 (en) * 2019-01-25 2021-01-05 Vmware, Inc. Cross-cloud workflow management
WO2024026788A1 (en) * 2022-08-04 2024-02-08 Nokia Shanghai Bell Co., Ltd. Synchronization of jobs

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005516303A (ja) * 2002-01-30 2005-06-02 リアル・エンタープライズ・ソリューションズ・ディヴェロップメント・ビー・ヴィー 優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム
JP2009277041A (ja) * 2008-05-15 2009-11-26 Fujitsu Ltd 優先度制御プログラム、優先度制御装置、及び優先度制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE9901146D0 (sv) * 1998-11-16 1999-03-29 Ericsson Telefon Ab L M A processing system and method
US20030037091A1 (en) * 2001-08-09 2003-02-20 Kozo Nishimura Task scheduling device
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
US7437446B2 (en) * 2002-09-30 2008-10-14 Electronic Data Systems Corporation Reporting of abnormal computer resource utilization data
US7562362B1 (en) * 2003-06-18 2009-07-14 Apple Inc. User control of task priority
US8166483B2 (en) * 2004-08-06 2012-04-24 Rabih Chrabieh Method and apparatus for implementing priority management of computer operations
JP4276201B2 (ja) * 2005-03-31 2009-06-10 富士通株式会社 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
JP4611922B2 (ja) * 2006-03-28 2011-01-12 富士通株式会社 制御プログラム、制御方法および制御装置
US8205205B2 (en) * 2007-03-16 2012-06-19 Sap Ag Multi-objective allocation of computational jobs in client-server or hosting environments
JP2009069921A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム
US8365177B2 (en) * 2009-01-20 2013-01-29 Oracle International Corporation Dynamically monitoring and rebalancing resource allocation of monitored processes based on execution rates of measuring processes at multiple priority levels

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005516303A (ja) * 2002-01-30 2005-06-02 リアル・エンタープライズ・ソリューションズ・ディヴェロップメント・ビー・ヴィー 優先スケジューリングを備えたマルチプログラミングコンピュータシステムにおける優先レベルを設定する方法、マルチプログラミングコンピュータシステムおよびそれらのプログラム
JP2009277041A (ja) * 2008-05-15 2009-11-26 Fujitsu Ltd 優先度制御プログラム、優先度制御装置、及び優先度制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016167121A (ja) * 2015-03-09 2016-09-15 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム

Also Published As

Publication number Publication date
US8539495B2 (en) 2013-09-17
US20110191779A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
JP5120061B2 (ja) 優先度制御プログラム、優先度制御装置、及び優先度制御方法
JP2011180894A (ja) ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
EP3853731B1 (en) Commitment-aware scheduler
US8856797B1 (en) Reactive auto-scaling of capacity
US7743378B1 (en) Method and apparatus for multi-dimensional priority determination for job scheduling
US7752622B1 (en) Method and apparatus for flexible job pre-emption
US20080250260A1 (en) Information processing apparatus, scheduler, and schedule control method of information processing apparatus
US20130254776A1 (en) Method to reduce queue synchronization of multiple work items in a system with high memory latency between processing nodes
US7844968B1 (en) System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US9374314B2 (en) QoS aware balancing in data centers
CN109086135B (zh) 资源伸缩方法、装置、计算机设备及存储介质
JP6201530B2 (ja) 情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法
US8214836B1 (en) Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
US20140137122A1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
JP4555145B2 (ja) バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
CN114968565A (zh) 资源管理方法、装置、电子设备、存储介质及服务器
JPH0816410A (ja) スケジュール制御装置とその方法
CN101908004A (zh) 促进请求执行的装置和方法
CN102184124B (zh) 任务调度方法及系统
JP6439559B2 (ja) 計算機システム、計算機、ジョブ実行時刻予測方法及びジョブ実行時刻予測プログラム
JP2015148909A (ja) 並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラム
CN115858169A (zh) 一种作业资源分配方法、装置、电子设备及存储介质
JP2011018281A (ja) ジョブ実行管理システム、ジョブ実行管理方法、ジョブ実行管理プログラム
US10180858B2 (en) Parallel computing device, parallel computing system, and job control method
CN110764886B (zh) 一种支持多分区处理的批量作业协同调度方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140415

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140722

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20141125