JP4935595B2 - ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム - Google Patents

ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム Download PDF

Info

Publication number
JP4935595B2
JP4935595B2 JP2007245741A JP2007245741A JP4935595B2 JP 4935595 B2 JP4935595 B2 JP 4935595B2 JP 2007245741 A JP2007245741 A JP 2007245741A JP 2007245741 A JP2007245741 A JP 2007245741A JP 4935595 B2 JP4935595 B2 JP 4935595B2
Authority
JP
Japan
Prior art keywords
job
execution
priority
calculation
nodes
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
JP2007245741A
Other languages
English (en)
Other versions
JP2009075956A (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.)
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 JP2007245741A priority Critical patent/JP4935595B2/ja
Priority to US12/209,531 priority patent/US20090083746A1/en
Publication of JP2009075956A publication Critical patent/JP2009075956A/ja
Application granted granted Critical
Publication of JP4935595B2 publication Critical patent/JP4935595B2/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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • 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)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

この発明は、複数の計算ノードから構成されたクラスタ上で実行されるジョブを管理するジョブ管理方法、ジョブ管理装置およびジョブ管理プログラムに関し、特に、複数の計算ノード間で情報をやりとりしながら処理を進めていくタイプのジョブを実行する場合にもクラスタに含まれる計算ノードを効率よく活用できるジョブ管理方法、ジョブ管理装置およびジョブ管理プログラムに関する。
科学技術計算のような膨大な計算能力を必要とするジョブを実行するため、複数の計算ノードを組み合わせて構成された計算機クラスタ(以下、単に「クラスタ」という)が利用されている。このようなクラスタを備える情報処理環境においては、各計算ノードを効率的に活用できるように、計算ノードへのジョブの割り当てを管理するジョブ管理装置が設けられる。
一般に、クラスタにおいて実行されるジョブは、短時間で目的を達成するために、予め決められた数の計算ノード上で処理を並列実行するように構成されており、ジョブ管理装置は、新たなジョブが投入されると、そのジョブが必要とする数だけの計算ノードを確保し、ジョブにそれらの計算ノードを割り当てる。そして、ジョブ管理装置は、投入されたジョブが必要とする計算ノードの総数が、クラスタを構成する計算ノードの数を上回った場合には、高い優先度を与えられたジョブに優先的に計算ノードを割り当てる。
例えば、特許文献1において開示されているジョブ管理装置(スケジュール制御装置)は、新たに高優先度のジョブが投入されたときに、そのジョブが必要とする数の未使用の計算ノード(以下、未使用の計算ノードを「空きノード」という)がクラスタに無いと、実行中の処理のうち低優先度のジョブの処理を実行停止状態にし、それらの処理によって使用されていた計算ノードを、新たに投入された高優先度のジョブに割り当てる。
特開平8−16410号公報
しかしながら、上記の特許文献1において開示されているジョブ管理装置は、高優先度のジョブが新たに投入された場合に、低優先度のジョブの処理を無作為に選択して実行停止状態にしていた。このため、低優先度のジョブの処理を実行停止状態にした後に、計算ノードが有効に活用されなくなってしまうという問題があった。
具体的には、クラスタにおいて実行されるジョブには、複数の計算ノード間で情報をやりとりしながら処理を進めていくジョブがある。このようなジョブにおいては、ある計算ノード上で実行されている処理が何らかの理由で実行停止状態となった場合、他の計算ノード上で実行されている同一ジョブの処理も、実行停止状態となった処理と情報をやりとりできなくなるため、実行を継続できなくなり、実質的に実行停止状態に等しい状態となる。
例えば、実行中のジョブAが4つの計算ノード間で情報をやりとりしながら処理を進めていくジョブであったとする。そして、1つの計算ノードを使用する高優先度のジョブBの投入にともなって、そのうちの1つの計算ノード上の処理が実行停止状態となり、その計算ノードがジョブBに割り当てられたと仮定する。この場合、ジョブAを実行している他の3つの計算ノード上の処理は、実行停止状態となった処理と情報をやりとりできなくなるため、実質的に実行停止状態となり、3つの計算ノードが有効に活用されなくなってしまう。
この発明は、上述した従来技術による問題点を解消するためになされた発明であり、複数の計算ノード間で情報をやりとりしながら処理を進めていくタイプのジョブを実行する場合にもクラスタに含まれる計算ノードを効率よく活用できるジョブ管理方法、ジョブ管理装置およびジョブ管理プログラムの提供を目的とする。
上述した課題を解決し、目的を達成するため、本方法は、コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上のジョブを第2のジョブとして選択する実行停止ジョブ選択ステップと、前記第2のジョブの全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行ステップと、前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開ステップとを含むことを特徴とする。
この方法によれば、新たなジョブが受け付けられた場合に、そのジョブを実行するために不足している計算ノード数以上の計算ノードを使用して実行されているジョブを実行停止状態とし、実行停止状態となったジョブが使用していた計算ノードと空きノードを使用して新たなジョブを実行するようにしたので、実行中のジョブの処理の一部が実行停止状態となって、そのジョブの他の処理が計算ノードを割り当てられたまま実行停止状態と同様の状態になる事態を防止でき、クラスタに含まれる計算ノードを効率よく活用できる。
また、本方法は、上記の方法の他の態様において、前記優先実行ステップにおいて前記第1のジョブの実行が開始された後に前記コンピュータクラスタに前記空き計算ノードが存在する場合に、実行に必要な前記計算ノード数が前記空き計算ノード数以下で、実行所要時間が前記第1のジョブの実行所要時間以下で、かつ前記コンピュータクラスタにおいて実行されていないジョブを第3のジョブとして選択する空き計算ノード活用ジョブ選択ステップと、前記空き計算ノードにおいて前記第3のジョブを実行させる空きノード活用ジョブ実行ステップとをさらに含むことを特徴とする。
この方法によれば、新たなジョブを実行させた後にできた空きノードを活用して、新たなジョブよりも早く実行が終了するジョブを実行するようにしたので、新たなジョブの実行が完了した後に実行停止状態のジョブを復帰させる時期を遅らせずに、クラスタに含まれる計算ノードを効率よく活用できる。
また、本方法は、上記の方法の他の態様において、前記実行停止ジョブ選択ステップは、前記第2のジョブの選択肢が複数存在する場合に、該選択肢の中で最も優先度が低い前記ジョブ、あるいは実行に必要な前記計算ノード数が最も少ない前記ジョブを前記第2のジョブとして選択することを特徴とする。
この方法によれば、実行に必要な計算ノード数が最も少ないジョブを実行停止状態にする対象として選択するようにしたので、ジョブを実行停止状態にするために要するオーバーヘッドを最小にし、クラスタに含まれる計算ノードを効率よく活用できる。
なお、上記方法の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用した態様も本発明の態様として有効である。
本発明によれば、実行中のジョブの処理の一部が実行停止状態となって、そのジョブの他の処理が計算ノードを割り当てられたまま実行停止状態と同様の状態になる事態を防止でき、クラスタに含まれる計算ノードを効率よく活用できるという効果を奏する。
以下に、本発明に係るジョブ管理方法、ジョブ管理装置およびジョブ管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によっては、この発明は限定されない。
まず、本実施例に係るジョブ管理処理の概要について説明する。図1は、本実施例に係るジョブ管理方法が実行されるクラスタシステムの一例を示す図である。同図に示すように、クラスタシステム1は、クラスタ2と、ジョブ管理装置10と、端末装置30a〜30cとによって構成される。
クラスタ2は、計算ノード20a〜20dを結合して構成された計算機群である。なお、図1は、クラスタ2が、4つの計算ノードからなる例を示しているが、クラスタ2は、任意の数の計算ノードを含んでもよく、含まれる計算ノードが多くなるほど、大きな計算処理能力を有するようになる。例えば、クラスタ2は、100台以上の計算ノードを結合して構成されていてもよい。
ジョブ管理装置10は、クラスタ2において実行すべきジョブを端末装置30a〜30cから受け付け、受け付けたジョブの計算ノード20a〜20dへの割り当てをスケジューリングする装置である。ジョブ管理装置10が受け付けるジョブには、優先度と実行に必要な計算ノード数とが予め指定されており、ジョブ管理装置10は、これらの情報に基づいて、計算ノード20a〜20dができるだけ有効に活用されるようにスケジューリングを行う。なお、本明細書におけるジョブとは、所定の目的のために構成された処理の単位を意味し、具体的には、1ないし複数の実行可能なプログラムや、これらのプログラムの実行を制御するためのスクリプトや、これらのプログラムの実行に必要なデータ等からなる。例えば、膨大な計算時間を必要とする科学技術計算処理や、業務系の月次バッチ処理や、3次元データに基づく3次元映像の生成処理等が、本明細書におけるジョブに相当する。
端末装置30a〜30cは、ジョブの実行をジョブ管理装置10に依頼し、実行結果をジョブ管理装置10から取得する装置である。端末装置30a〜30cは、ネットワーク40によってジョブ管理装置10と接続される。
なお、クラスタシステム1は、クラスタシステムの一般的な例を示しており、従来のジョブ管理方法も同様の環境で実行される。また、計算ノード20a〜20dの実体は、独立して演算処理を実行できれば何であってもよい。例えば、計算ノード20a〜20dのそれぞれは、独立した筐体を有する情報処理装置であってもよいし、マルチプロセッサ型の情報処理装置が備えるCPUの1つであってもよいし、マルチコア型のCPU上のコアの1つであってもよいし、ソフトウェアによって実現された仮想計算機であってもよい。
図2は、本実施例に係るジョブ管理処理の概要を説明するための説明図である。同図は、クラスタシステム1に高優先度のジョブXが投入された場面を示している。同図において、クラスタシステム1は、16個の計算ノードを結合して構成されたクラスタ2と、ジョブ管理装置10に相当するジョブ管理装置11を有している。ジョブ管理装置11は、従来のジョブ管理方法を実行する装置であり、投入されているがまだ計算ノードが割り当てられていないジョブを保持する実行待ちジョブ記憶領域11aと、実行停止状態となったジョブを保持する実行停止ジョブ記憶領域11bとを有している。
そして、図2において、クラスタ2内、実行待ちジョブ記憶領域11a内および実行停止ジョブ記憶領域11b内の矩形は、ジョブを表している。具体的には、矩形の数は、ジョブが必要としている計算ノード数を示している。矩形内の上部の文字は、ジョブの名前を示し、下部の数字のうち、“/”より前の部分は、ジョブの優先度を示し、“/”より後の部分は、ジョブの実行所要時間を示している。なお、本実施例における優先度は、1〜10のいずれかの値をとり、値が大きいほど優先度が高くなる。また、実行所要時間は、実行開始から実行完了までに要する時間の予測値であり、単位は分である。
図2のクラスタシステム1では、優先度が「6」で実行所要時間が「90分」のジョブAが2つの計算ノードを使用して処理を実行しており、優先度が「6」で実行所要時間が「90分」のジョブBが5つの計算ノードを使用して処理を実行しており、優先度が「6」で実行所要時間が「60分」のジョブCが6つの計算ノードを使用して処理を実行しており、優先度が「6」で実行所要時間が「120分」のジョブDが3つの計算ノードを使用して処理を実行している。
また、実行待ちジョブ記憶領域11aには、優先度が「6」で実行所要時間が「120分」であり、2つの計算ノードを必要とするジョブEと、優先度が「6」で実行所要時間が「150分」であり、1つの計算ノードを必要とするジョブFと、優先度が「6」で実行所要時間が「100分」であり、1つの計算ノードを必要とするジョブGとが保持されており、実行停止ジョブ記憶領域11bは空である。
そのとき、優先度が「10」で実行所要時間が「120分」であり、4つの計算ノードを必要とする高優先度のジョブXが投入されると、ジョブ管理装置11は、ジョブXを優先的に実行させるため、ジョブXが必要とする4個の計算ノードをクラスタ2から選択し、それらの計算ノード上で実行されている処理を実行停止状態とする。そして、実行停止状態となった処理が使用していた計算ノードをジョブXに割り当てて実行させる。
図2に示した例では、ジョブXを優先的に実行させるために、ジョブAに割り当てられていた計算ノードの1つと、ジョブCに割り当てられていた計算ノードの1つと、ジョブBに割り当てられていた計算ノードの2つがジョブXに割り当てられている。このように、従来のジョブ管理処理では、高優先度のジョブXが新たに投入された場合に、ジョブXが必要とするだけの空きノードがなくても、ジョブXよりも優先度が低いジョブによって使用されている計算ノード上で動作している処理を実行停止状態にすれば、ジョブXが必要とする計算ノードが確保される。
しかしながら、ジョブ管理装置11は、実行中の処理が、他の計算ノード上で実行されている同一ジョブの処理と情報をやりとりしながら処理を進めていくタイプの処理であるか否かを考慮せずに、実行停止状態にする処理を選択する。このため、例えば、図2に示した例で、ジョブA、ジョブBおよびジョブCが、割り当てられた計算ノード間で情報をやりとりしながら処理を進めていくタイプのジョブであった場合に、実行停止状態となっていない処理も、実行停止状態となった処理と情報をやりとりできないためにそれ以上処理を進められず、実質的に実行停止と等しい状態となり、斜線で示した9個の計算ノードが有効に活用されない状態となってしまう。
本実施例に係るジョブ管理処理は、このような問題を解決するため、高優先度のジョブが投入され、そのジョブが必要とする数の空きノードがない場合に、各計算ノードが有効に活用されるように考慮して、並列実行されている同一のジョブの処理をまとめて実行停止状態とする。
図2におけるジョブ管理装置12は、本実施例に係るジョブ管理処理を実行する装置であり、実行待ちジョブ記憶領域11aと実行停止ジョブ記憶領域11bに代えて、実行待ちジョブ記憶領域12aと実行停止ジョブ記憶領域12bを有している。
同図に示すように、優先度が「10」で実行所要時間が「120分」であり、4つの計算ノードを必要とする高優先度のジョブXが投入されると、ジョブ管理装置12は、ジョブXを優先的に実行させるため、クラスタ2において実行中のジョブの中から実行停止状態とするジョブを選択する。実行停止状態とするジョブとして選択されるのは、ジョブXよりも優先度が低く、ジョブXを実行するために不足している計算ノード数以上の計算ノードを割り当てられているジョブのうち、優先度が最も低いジョブである。そして、候補となるジョブが複数存在する場合には、割り当てられている計算ノード数が最も少ないジョブが選択される。
図2に示した例では、5つの計算ノードを割り当てられているジョブBが、実行停止状態にするジョブとして選択されている。この例では、新たに投入された高優先度のジョブXを実行するために不足している計算ノードの数は4であり、5つの計算ノードを割り当てられているジョブBと6つの計算ノードを割り当てられているジョブCの優先度がいずれも「6」であるので、この2つのジョブが実行停止状態にする対象の候補である。このうち、ジョブBが実行停止状態にする対象として選択されているのは、割り当てられている計算ノードの数が少ないためである。
このように、高優先度のジョブを実行する場合に、不足数以上の計算ノードを割り当てられているジョブを実行停止状態とする対象として選択するのは、ジョブに割り当てられている計算ノードの一部で実行されている処理が実行停止状態とされて、その処理と情報をやりとりする同一ジョブの処理が計算ノードを占有したまま実行停止状態と等しい状態となり、それらの計算ノードが有効に活用されなくなる事態を防止するためである。
また、候補が複数ある場合に、割り当てられている計算ノード数が最も少ないジョブを選択するのは、実行停止状態にするために要するオーバーヘッドを最小にするためである。すなわち、実行停止状態を実現するには、実行中の処理のメモリイメージをファイルにダンプし、ジョブ管理装置12の実行停止ジョブ記憶領域12bへ転送するといったオーバーヘッドが必要となるので、これを最小にするためである。
こうして、5つの計算ノードを割り当てられているジョブBを実行停止状態とし、4つの計算ノードを必要とするジョブXを実行させると、1つの計算ノードが空きノードとなる。このような空きノードを有効に活用するため、本実施例に係るジョブ管理処理では、実行待ちジョブ記憶領域12aに保持されている実行待ちジョブの中で、実行に必要なジョブの数が空きノード数以下であり、実行所要時間がジョブXの実行所要時間以下であるジョブが選択され、そのジョブに空きノードが割り当てられる。そして、候補となるジョブが複数存在する場合には、空きノードをより有効に活用できるジョブ、すなわち、そのジョブに空きノードを割り当てたときに、ジョブXの実行完了までにクラスタ2内の計算ノードが遊休状態になる時間の合計が最も短くなるジョブが選択される。
図2に示した例では、空きノードの数は1であり、1以下の計算ノードを必要とする実行待ちジョブは、ジョブFとジョブGである。これらのジョブのうち、ジョブFの実行所要時間は、「150分」であり、ジョブXの実行所要時間である「120分」を超過しているため、実行所要時間が「100分」であるジョブGが空きノードを活用して実行されるジョブ(以下、「空きノード活用ジョブ」という)として選択されている。
このように、実行所要時間が高優先度のジョブの実行所要時間以下であるジョブが空きノード活用ジョブとして選択されるのは、高優先度のジョブの実行が完了した後に、実行停止状態にしたジョブを速やかに復帰させるためである。図2の例に従って説明すると、空きノード活用ジョブとしてジョブFを選択すると、ジョブXの実行が完了した後も、ジョブFの実行が完了するまでは、実行停止状態とされたジョブBを復帰させられない。このため、ジョブBの実行完了が遅れるとともに、ジョブXの実行が完了した後からジョブFの実行が完了するまでの間、ジョブXに割り当てられていた計算ノードが有効に活用されない。一方、空きノード活用ジョブとしてジョブGを選択すると、ジョブXの実行が完了した後、ジョブBを速やかに復帰させられるとともに、計算ノードが遊休状態となる時間が短くなる。
ところで、図2の例では、実行停止状態となったジョブBの優先度を待機中の他のジョブの優先度よりも低く設定し直し、空きノード活用ジョブであるジョブGの優先度を実行中の他のジョブの優先度よりも高く設定している。これは、優先度の関係により、ジョブBの一部が予期しないタイミングで復帰させられたり、ジョブGが実行停止状態にされたりする事態を防止するためである。
図2の例では、高優先度のジョブが投入された場合に、単一のジョブを実行停止状態とする例を示したが、複数のジョブの組合せを実行停止状態にするようにしてもよい。図3は、複数のジョブの組合せを実行停止状態にする処理の一例を示す図である。
図3に示した例では、4つの計算ノードを必要とする高優先度のジョブXを優先的に実行させるために、2つの計算ノードが割り当てられているジョブAと、3つの計算ノードを割り当てられているジョブDの組合せが実行停止状態にする対象として選択されている。ジョブBに割り当てられている計算ノード数は5つであり、上記の組合せに割り当てられている計算ノード数と同数であるが、図3の例では、ジョブBの優先度が「7」であり、ジョブAおよびジョブDの優先度「6」よりも高くなっているため、上記の組合せが実行停止状態にする対象として選択される。
このように、複数のジョブの組合せを実行停止状態にする対象として選択すれば、実行停止状態にする対象を柔軟に選択できるようになる。特に、数多くの計算ノードを必要とする高優先度のジョブが投入された場合、不足数以上の計算ノードを割り当てられている単一のジョブが存在しない場合があり得るが、そのような場合でも、複数のジョブの組合せを実行停止状態にする対象として選択するようにすれば、実行停止状態にする対象を選択できる。
なお、実行停止状態にする対象だけでなく、空きノード活用ジョブも複数のジョブの組合せとして選択できる。空きノード活用ジョブを複数のジョブの組合せとして選択すれば、空きノード活用ジョブを柔軟に選択できるようになるとともに、計算ノードが遊休状態となる時間がさらに少なくなるように空きノード活用ジョブを選択できる。
また、図2および図3では、高優先度のジョブが投入された場合に、実行停止状態となる処理が最も少なくなるようにジョブを選択する例を示したが、計算ノードが遊休状態となる時間が最小になるように、単一のジョブもしくは複数のジョブの組合せを実行停止状態してもよい。
ここでは、説明を簡単にするため、単一のジョブのみを実行停止状態にする例を示す。図4は、計算ノードが遊休状態となる時間が最小になるように実行停止状態にする対象を選択する処理の一例を示す図である。図4に示した例では、4つの計算ノードを必要とする高優先度のジョブXを優先的に実行させるために、6つの計算ノードが割り当てられているジョブCが実行停止状態にする対象として選択されている。
図4の例では、5つの計算ノードを割り当てられているジョブBを実行停止状態にするのも可能であるが、その場合、実行所要時間が「100分」のジョブGが空きノード活用ジョブとして選択され、ジョブGの実行が完了した後、実行所要時間が「120」であるジョブXの実行が完了するまでの間に、ジョブGに割り当てられていた計算ノードが20分間遊休状態となってしまう。一方、ジョブCを実行停止状態とすれば、実行所要時間が「120分」のジョブEを空きノード活用ジョブとして選択でき、ジョブEとジョブXの実行はほぼ同時に完了し、計算ノードが遊休状態となる時間は発生しない。
このように、計算ノードが遊休状態となる時間が最小になるように、単一のジョブもしくは複数のジョブの組合せを実行停止状態にするようにすれば、計算ノードを最大限に有効活用できる。
次に、本実施例に係るジョブ管理装置12の構成について説明する。図5は、本実施例に係るジョブ管理装置12の構成を示すブロック図である。同図に示すように、ジョブ管理装置12は、記憶部121と、入力部122と、表示部123と、ネットワークインターフェース部124と、制御部125とを有する。
記憶部121は、各種情報を記憶する記憶デバイスであり、実行待ちジョブ記憶領域121aと、実行停止ジョブ記憶領域121bと、ジョブ管理情報記憶領域121c、ジョブ割当情報記憶領域121dとを有する。実行待ちジョブ記憶領域121aは、投入されているがまだ計算ノードを割り当てられていないジョブを保持する記憶領域であり、実行待ちジョブ記憶領域12aに相当する。実行停止ジョブ記憶領域121bは、実行停止状態となったジョブを保持する記憶領域であり、実行停止ジョブ記憶領域12bに相当する。
ジョブ管理情報記憶領域121cは、ジョブ管理情報を記憶する記憶領域である。ジョブ管理情報の一例を図6−1および図6−2に示す。ジョブ管理情報は、投入されたジョブの状態を管理するための情報であり、ジョブID、優先度、ノード数、実行所要時間、実行時間、ステータス、復帰対象ジョブ、投入日時、チェックポイントといった項目を有し、ジョブ毎に情報が1行ずつ格納される。
ジョブIDはジョブを識別するための識別子である。優先度、ノード数および実行所要時間は、ジョブの投入時に指定されたパラメータであり、それぞれ、当該のジョブの優先度、実行するために必要な計算ノードの数、実行開始から実行完了までに要する時間(予測時間)を示す。実行時間は、当該のジョブに計算ノードが割り当てられた時間の累計値である。
ステータスは、ジョブの状態を示し、「実行待ち」、「実行中」もしくは「実行停止」のいずれかの状態をとる。「実行待ち」は、当該のジョブにまだ計算ノードが割り当てられておらず、実行待ちジョブ記憶領域121aに保持されている状態を示す。「実行中」は、当該のジョブに計算ノードが割り当てられて実行中である状態を示す。そして、「実行停止」は、当該のジョブが実行停止状態とされ、実行停止ジョブ記憶領域121bに保持されている状態を示す。
復帰対象ジョブは、当該のジョブを優先的に実行するために実行停止状態にされたジョブ、もしくは、当該のジョブが空きノード活用ジョブとして実行されるときに実行停止状態にされたジョブのジョブIDと実行停止状態にされる直前の優先度を示す。投入日時は、当該のジョブが投入された時刻であり、チェックポイントは、ジョブの優先度を調整するための値である。チェックポイントについては、後ほど詳しく説明する。
図6−1に示したジョブ管理情報は、図2においてジョブXが投入される前の各ジョブの状態を示しており、ジョブGに対応する情報は、ジョブIDが「G」、優先度が「6」、ノード数が「1」、実行所要時間が「100」、実行時間が「0」、ステータスが「実行待ち」、復帰対象ジョブが未設定、投入日時が「2007/7/5 15:55」、チェックポイントが「360」となっている。
また、図6−2に示したジョブ管理情報は、図2においてジョブXが投入された直後の各ジョブの状態を示しており、ジョブXに対応する情報が新たに登録されている。また、空きノード有効活用ジョブとして選択されたジョブGに対応する情報が更新されており、優先度が「7」、ステータスが「実行中」、復帰対象ジョブが「B(6)」、チェックポイントが「60」となっている。なお、復帰対象ジョブの「B(6)」は、ジョブGが空きノード活用ジョブとして実行されるときに実行停止状態にされたジョブのジョブIDが「B」であり、そのジョブの優先度が「6」となる。
ジョブ割当情報記憶領域121dは、ジョブ割当情報を記憶する記憶領域である。ジョブ割当情報の一例を図7に示す。ジョブ割当情報は、各計算ノードがどのジョブに割り当てられているかを管理するための情報であり、ノードID、ジョブIDといった項目を有し、計算ノード毎に情報が1行ずつ格納される。ノードIDは、計算ノードを識別するための識別子である。ジョブIDはジョブを識別するための識別子であり、ジョブ管理情報のジョブIDと対応する。
図7に示したジョブ割当情報は、図2においてジョブXが投入される前の各計算ノードの状態を示しており、例えば、ノードIDが「1」および「2」の計算ノードが「A」のジョブIDを有するジョブに割り当てられている状態を示している。
入力部122は、情報や操作指示を入力するためのデバイスであり、例えば、キーボードやマウスからなる。表示部123は、各種情報を表示するためのデバイスであり、例えば、液晶表示装置からなる。ネットワークインターフェース部124は、ネットワーク通信を実現するためのインターフェース装置である。
制御部125は、ジョブ管理装置12を全体制御する制御部であり、受付部125aと、優先実行部125bと、実行停止ジョブ選択部125cと、空きノード活用ジョブ選択部125dと、実行制御部125eと、優先度調整部125fと、実行停止ジョブ実行再開部125gと、シミュレート部125hとを有する。
受付部125aは、端末装置30a〜30c等からジョブの実行要求を受け付ける処理部である。受付部125aは、受け付けた実行要求に含まれるジョブを実行待ちジョブ記憶領域121aに格納する。また、受付部125aは、ジョブの属性情報として、優先度と、実行所要時間の指定を受け付け、図6−1に示したジョブ管理情報にエントリを追加し、受け付けた情報を追加したエントリに設定する。
そして、受付部125aは、受け付けたジョブが高優先度のジョブである場合、優先実行部125bに指示して、そのジョブを優先的に実行させる。なお、受け付けたジョブが高優先度のジョブであるか否かについては、例えば、指定された優先度が所定値以上の場合に高優先度のジョブであると判定してもよいし、指定された優先度が実行中のジョブのいずれか1つよりも高いときに高優先度のジョブであると判定してもよい。
優先実行部125bは、高優先度のジョブをノードに優先的に実行させる処理部である。優先実行部125bは、高優先度のジョブを実行するために必要な数の空きノードがあるか否かをジョブ管理情報を参照して確認し、空きノードが十分にあれば、高優先度のジョブに空きノードを割り当て、その状態をジョブ管理情報とジョブ割当情報に反映させる。
一方、空きノードが不足している場合は、実行停止状態とするジョブを実行停止ジョブ選択部125cに選択させ、選択されたジョブを実行停止状態にした後、それらのジョブに割り当てられていた計算ノードを、高優先度のジョブに割り当て、その状態をジョブ管理情報とジョブ割当情報に反映させる。そして、ジョブ管理情報を参照し、高優先度のジョブに計算ノードを割り当てた後にも空きノードがあれば、空きノード活用ジョブを空きノード活用ジョブ選択部125dに選択させ、選択されたジョブに空きノードを割り当て、その状態をジョブ管理情報とジョブ割当情報に反映させる。
実行停止ジョブ選択部125cは、高優先度のジョブを優先実行させるために実行停止状態とするジョブを選択する処理部である。実行停止ジョブ選択部125cは、単一のジョブもしくはジョブの組合せを実行停止状態とする対象として選択し、ジョブが複数の計算ノード上で並列的に実行されている場合であっても、一部の計算ノード上で実行されている処理のみを実行停止状態にする対象として選択はしない。
実行停止ジョブ選択部125cは、ジョブ管理情報を参照し、ステータスが「実行中」となっているジョブの中から、優先実行される高優先度のジョブよりも優先度が低く、かつ、高優先度のジョブを優先実行させるために不足している計算ノード数以上の数の計算ノードが割り当てられている単一のジョブもしくはジョブの組合せを実行停止状態とする対象として選択する。
なお、該当する候補が複数あるときは、前述のように、割り当てられている計算ノード数が最も少ない候補を、最も優先度が低い候補の中から選択してもよいし、空きノード活用ジョブとの組合せを全て確認して、計算ノードが遊休状態となる時間の合計が最も短くなる候補を選択してもよい。
空きノード活用ジョブ選択部125dは、空きノード活用ジョブを選択する処理部である。空きノード活用ジョブ選択部125dは、ジョブ管理情報を参照し、ステータスが「実行待ち」となっているジョブの中から、実行に必要な計算ノード数が空きノード数以下であり、かつ、実行所要時間が優先実行される高優先度のジョブの実行所要時間以下である単一のジョブもしくはジョブの組合せの中から、計算ノードが遊休状態となる時間の合計が最も小さくなるジョブを空きノード活用ジョブとして選択する。
実行制御部125eは、高優先度のジョブの優先実行以外の、ジョブの実行に関する各種制御を行う制御部である。例えば、実行制御部125eは、定期的にジョブ割当情報を参照し、クラスタ2に空きノードの存在を認識すると、優先度を参照しながらステータスが「実行待ち」のジョブに空きノードを割り当て、その状態を図6−1に示したジョブ管理情報と図7に示したジョブ割当情報に反映させる。
また、実行制御部125eは、定期的にジョブ管理情報を参照し、ステータスが「実行待ち」のジョブの実行待ち時間、すなわち、現在日時と投入日時との差がチェックポイントの値よりも大きい場合に、優先度調整部125fに指示してそのジョブの優先度を高く再設定させ、そのジョブが早期に実行されるように調整する。また、実行制御部125eは、ステータスが「実行中」のジョブの実行時間が実行所要時間を超過しており、その差(以下、この差を「実行超過時間」という)がチェックポイントの値よりも大きい場合に、優先度調整部125fに指示してそのジョブの優先度を低く再設定させ、そのジョブが実行停止状態になり易いように調整する。
また、実行制御部125eは、定期的にジョブの実行状況を確認し、ジョブ管理情報における実行時間の値を更新する。そして、実行が完了したジョブがあれば、ジョブ管理情報とジョブ割当情報からそのジョブに関する情報を削除する。そのとき、ジョブ管理情報の該当エントリの復帰対象ジョブの項目にジョブの情報が設定されていれば、実行制御部125eは、その情報を実行停止ジョブ実行再開部125gに引き渡して実行停止状態となっている処理を復帰させる。
優先度調整部125fは、ジョブの実行が平等に行われるようにジョブの優先度を調整する処理部である。前述のように、ジョブの優先度の調整は、実行待ちとなっているジョブの実行待ち時間が所定値以上になった場合と、実行中のジョブの実行超過時間が所定値以上になった場合に行われる。便宜上、実行待ち時間が360分の倍数を超過した場合と、実行超過時間が60分の倍数を超過した場合に優先度の調整が行われると仮定して、優先度の調整の仕組みについて説明する。
新たなジョブが投入されると、そのジョブに関する情報がジョブ管理情報に登録され、ジョブ管理情報のチェックポイントには「360」が設定される。そして、実行制御部125eが定期的にジョブ管理情報を参照し、ステータスが「実行待ち」で実行待ち時間がチェックポイントの値を超過したジョブがあれば、そのジョブの優先度を再設定するように優先度調整部125fに指示する。指示を受けた優先度調整部125fは、指示されたジョブの優先度に1を加算するとともに、チェックポイントの値に360を加算して、実行待ち時間がさらに長くなった場合に再度そのジョブの優先度が調整されるようにする。このように、実行待ち時間が長くなったジョブの優先度を高く再設定していけば、優先度の低いジョブがいつまでたっても実行されないという事態の発生を防止できる。
また、ジョブが実行状態になると、ジョブ管理情報におけるそのジョブのステータスが「実行中」に更新され、チェックポイントには「60」が設定される。そして、実行制御部125eが定期的にジョブ管理情報を参照し、ステータスが「実行中」で実行超過時間がチェックポイントの値を超過したジョブがあれば、そのジョブの優先度を再設定するように優先度調整部125fに指示する。指示を受けた優先度調整部125fは、指示されたジョブの優先度から1を減算するとともに、チェックポイントの値に60を加算して、実行超過時間がさらに長くなった場合に再度そのジョブの優先度が調整されるようにする。このように、実行超過時間が長くなったジョブの優先度を低く再設定していけば、予定通りに完了せずスケジュールを乱しているジョブが実行停止状態になり易いようにし、予定通りに実行されている他のジョブが実行停止状態となり実行完了が遅れる可能性を低くできる。
実行停止ジョブ実行再開部125gは、ジョブの実行が完了した場合に、そのジョブを実行させるために実行停止状態となった処理を復帰させる処理部である。例えば、図2に示した例では、ジョブXとジョブGを実行させるために、ジョブBが実行停止状態となり、優先度が「5」に設定される。そして、図6−2に示すように、ジョブ管理情報のジョブXとジョブGに対応する情報の復帰対象ジョブの項目には、ジョブBが実行停止状態となり、その時点の優先度が「6」であった旨が記録される。
この場合、ジョブGの実行が完了した時点と、ジョブXの実行が完了した時点で、実行停止ジョブ実行再開部125gは、実行制御部125eからの指示を受けて、実行が完了したジョブが使用していた計算ノードをジョブBの処理に割り当てる。そして、ジョブBの全ての処理が計算ノードを割り当てられた時点で、実行停止ジョブ実行再開部125gは、ジョブ管理情報におけるジョブBのステータスを「実行中」に更新し、優先度を「5」から「6」に戻す。
シミュレート部125hは、ジョブの実行状況をシミュレートし、その結果を表示部123等に出力する処理部である。シミュレート部125hは、ジョブの実行状況を正確にシミュレートするため、必要に応じて、優先実行部125b、実行停止ジョブ選択部125c、空きノード活用ジョブ選択部125d、優先度調整部125f、実行停止ジョブ実行再開部125g等の処理ロジックを呼び出して利用する。
図8は、シミュレート部125hの出力画面の一例を示す図である。同図に示すように、この出力画面では、30分毎に、実行待ちジョブと、実行中ジョブと、実行停止ジョブとがどのように変化するかがグラフィカルに表現されている。この出力画面を参照するれば、例えば、1.5時間後から3時間後までの間に2つの計算ノードが遊休状態となるため、この間に必要とする計算ノード数が2つ以下で実行所要時間が90分以下のジョブを実行させる余裕があると、管理者等が把握できる。
また、この出力画面では、仮想的に、任意の時点で新たなジョブを投入したり、任意のジョブの優先度を変更したりする操作を利用者が実行でき、シミュレート部125hは、その操作の結果に従ってシミュレーションを再実行し、結果を表示し直す。
次に、図5に示したジョブ管理装置12の処理手順について説明する。図9は、ジョブ管理装置12に新たなジョブが投入されたときの受付処理手順を示すフローチャートである。同図に示すように、受付部125aは、新規ジョブを受け付けると(ステップS101)、図6−1に示したジョブ管理情報にエントリを追加してそのジョブに関する情報を設定する(ステップS102)。そして、受付部125aは、そのジョブが高優先度でなければ(ステップS103否定)、通常の実行待ちジョブとして実行待ちジョブ記憶領域121aに格納する(ステップS104)。
一方、新規ジョブが高優先度であった場合は(ステップS103肯定)、受付部125aは、優先実行部125bに対してそのジョブの優先実行を指示する。指示を受けた優先実行部125bは、新規ジョブが必要とする計算ノード数NRと、実行所要時間T1とをジョブ管理情報から取得し(ステップS105)、ジョブ割当情報から現在の空きノード数NF1を取得する(ステップS106)。
そして、NF1がNRよりも小さい場合、すなわち、空きノード数が、新規ジョブが必要とする数よりも少ない場合は(ステップS107肯定)、優先実行部125bは、実行停止ジョブ選択部125cに後述する実行停止ジョブ選択処理を実行させ(ステップS108)、実行停止状態とするジョブが選択された場合は(ステップS109肯定)、選択されたジョブを実行停止状態とする(ステップS110)。なお、実行停止ジョブ選択部125cによって実行停止状態とするジョブが選択されなかった場合は(ステップS109否定)、優先実行部125bは、新規ジョブを通常の実行待ちジョブとして実行待ちジョブ記憶領域121aに格納し、処理を終了する(ステップS104)。
選択されたジョブを実行停止状態とした後、優先実行部125bは、新規ジョブに計算ノードを割り当てて実行を開始させ、その状態をジョブ管理情報とジョブ割当情報に反映させる(ステップS111)。そして、ジョブ割当情報から現在の空きノード数NF2を取得し(ステップS112)、NF2が0であれば、すなわち、空きノードがなければ(ステップS113否定)、処理を終了する。
NF2が0よりも大きい場合、すなわち、空きノードがある場合は(ステップS113肯定)、優先実行部125bは、空きノード活用ジョブ選択部125dに後述する空きノード活用ジョブ選択処理を実行させ(ステップS114)、空きノード活用ジョブが選択された場合は(ステップS115肯定)、選択されたジョブに計算ノードを割り当てて実行を開始させるとともに、その状態をジョブ管理情報とジョブ割当情報に反映させる(ステップS116)。なお、空きノード活用ジョブ選択部125dによって空きノード活用ジョブが選択されなかった場合は(ステップS115否定)、そのまま処理を終了する。
また、ステップS107においてNF1がNR以上であった場合、すなわち、空きノード数が、新規ジョブが必要とする数以上であった場合は(ステップS107否定)、優先実行部125bは、いずれのジョブも実行停止状態にせずに、ステップS111以降の処理を実行する。
図10は、実行停止ジョブ選択処理の処理手順を示すフローチャートである。同図に示すように、実行停止ジョブ選択部125cは、NRとNF1の差を算出し、新規ジョブを実行するために不足している計算ノード数を求める(ステップS201)。そして、ジョブ管理情報を参照して、ステータスが「実行中」であるジョブの中から優先度が新規ジョブの優先度よりも低いジョブを選択し(ステップS202)、選択したジョブの中から、割り当てられている計算ノードの数が、ステップS201で求めた不足している計算ノード数以上のジョブを選択する(ステップS203)。
そして、ジョブが選択され、かつ、選択された候補が複数の場合は(ステップS204肯定、ステップS205肯定)、実行停止ジョブ選択部125cは、選択されたジョブの中から最も優先度が低いジョブを選択し、その中からノード数が最も少ないジョブを1つ選択する(ステップS206)。そして、実行停止ジョブ選択部125cは、選択されたジョブを実行停止状態にする対象として決定し(ステップS207)、選択されたジョブの優先度を実行待ち状態の他のジョブの優先度よりも低く設定し直す(ステップS208)。
一方、ジョブが選択され、かつ、選択された候補が1つの場合は(ステップS204肯定、ステップS205否定)、実行停止ジョブ選択部125cは、選択されたジョブを実行停止状態にする対象として決定し(ステップS207)、選択されたジョブの優先度を実行待ち状態の他のジョブの優先度よりも低く設定し直す(ステップS208)。また、実行停止ジョブ選択部125cは、ステップS203においてジョブが選択されなかった場合は(ステップS204否定)、実行停止状態にする対象を決定せずに処理を終了する。
なお、上記の処理手順は、単一のジョブのみを実行停止状態にする対象として選択する例を示したが、ステップS203において、選択されたジョブの全ての組合せを作成し、それらの組合せから割り当てられている計算ノード数の合計がNR以上の組合せを選択するようにすれば、複数のジョブの組合せを実行停止状態にする対象として選択するように処理手順を変更できる。
また、上記の処理手順は、実行停止状態となる処理が少なくなるように、実行停止状態にする対象を選択する例を示したが、ステップS206において、下記のように処理を行えば、計算ノードが遊休状態となる時間の合計が最も小さくなるように、実行停止状態にする対象を選択できる。すなわち、選択されているジョブと、実行に必要な計算ノード数が、そのジョブが実行停止状態にする対象として選択された場合にできる空きノード数以下である実行待ちジョブとの組合せを全て作成し、計算ノードが遊休状態となる時間の合計が最も小さい組合せに対応する実行中のジョブを実行停止状態にする対象として選択すればよい。なお、ここでいうジョブは、ジョブの組合せであってもよい。
図11は、空きノード活用ジョブ選択処理の処理手順を示すフローチャートである。同図に示すように、空きノード活用ジョブ選択部125dは、ジョブ管理情報を参照して、ステータスが「実行待ち」であるジョブの中からノード数がNF2以下のジョブを選択し(ステップS301)、選択したジョブの中から、実行所要時間がT1以下のジョブを選択する(ステップS302)。
そして、ジョブが選択され、かつ、選択された候補が複数の場合は(ステップS303肯定、ステップS304肯定)、空きノード活用ジョブ選択部125dは、選択されたジョブの中から、そのジョブを空きノード活用ジョブとした場合に計算ノードが遊休状態となる時間の合計が最も少ないジョブを1つ選択する(ステップS305)。そして、空きノード活用ジョブ選択部125dは、選択されたジョブを空きノード活用ジョブとして決定し(ステップS306)、選択されたジョブの優先度を他の実行中のジョブの優先度よりも高く設定し直す(ステップS307)。
一方、ジョブが選択され、かつ、選択された候補が1つの場合は(ステップS303肯定、ステップS304否定)、空きノード活用ジョブ選択部125dは、選択されたジョブを空きノード活用ジョブとして決定し(ステップS306)、選択されたジョブの優先度を他の実行中のジョブの優先度よりも高く設定し直す(ステップS307)。また、ステップS302においてジョブが選択されなかった場合は(ステップS303否定)、空きノード活用ジョブを決定せずに処理を終了する。
なお、上記の処理手順は、単一のジョブのみを空きノード活用ジョブとして選択する例を示したが、ステップS305において、選択されたジョブの全ての組合せを作成し、全ての組合せの中から、それらの組合せを空きノード活用ジョブとした場合に計算ノードが遊休状態となる時間の合計が最も少ない組合せを1つ選択するようにすれば、複数のジョブの組合せを空きノード活用ジョブとして選択するように処理手順を変更できる。
図12は、実行制御部125eのジョブ管理処理手順を示すフローチャートである。同図に示すように、実行制御部125eは、ジョブ管理装置12が動作を開始した後、後述する実行待ちジョブ監視処理を実行し(ステップS401)、後述する実行中ジョブ監視処理を実行し(ステップS402)、一定時間待った後(ステップS403)、再び実行待ちジョブ監視処理と実行中ジョブ監視処理を実行するという処理手順を繰り返し実行する。
図13は、実行待ちジョブ監視処理の処理手順を示すフローチャートである。同図に示すように、実行制御部125eは、ジョブ管理情報からステータスが「実行待ち」のジョブの情報を取得し、それを優先度順でソートする(ステップS501)。そして、ソートしたジョブの中から未選択で優先度が最も高いジョブを選択し(ステップS502)、選択できた場合は(ステップS503肯定)、選択されたジョブが必要とする計算ノード数NRを取得し(ステップS504)、さらにジョブ割当情報から現在の空きノード数NFを取得する(ステップS505)。
そして、実行制御部125eは、NFがNR以上であれば、すなわち、選択されたジョブを実行するために十分な数の空きノードがあれば(ステップS506肯定)、選択されたジョブに計算ノードを割り当てて実行を開始させ、その状態をジョブ管理情報とジョブ割当情報に反映させた後(ステップS507)、ステップS502に戻って次のジョブの選択を試みる。
一方、NFがNRよりも小さければ、すなわち、選択されたジョブを実行するために十分な数の空きノードがなければ(ステップS506否定)、実行制御部125eは、選択されたジョブの実行待ち時間を算出する(ステップS508)。そして、実行待ち時間がチェックポイントの値よりも大きければ(ステップS509肯定)、実行制御部125eは、優先度調整部125fに優先度の調整を行わせる。優先度調整部125fは、ジョブの優先度を1上げて(ステップS510)、チェックポイントの値を更新する(ステップS511)。そして、優先度調整部125fの処理が終わった後、実行制御部125eは、ステップS502に戻って次のジョブの選択を試みる。
そして、全てのジョブを選択し、ステップS502において選択できるジョブがなくなった場合に(ステップS503否定)、処理を終了する。
図14は、実行中ジョブ監視処理の処理手順を示すフローチャートである。同図に示すように、実行制御部125eは、ジョブ管理情報を参照して、ステータスが「実行中」で、未選択のジョブを選択し(ステップS601)、選択できた場合は(ステップS602肯定)、そのジョブの実行状態を確認する。
そして、そのジョブの実行が完了していた場合は(ステップS603肯定)、実行制御部125eは、復帰が必要なジョブがあれば(ステップS604肯定)、実行停止ジョブ実行再開部125gにジョブの復帰を行わせ(ステップS605)、復帰が必要なジョブの有無に関わらず、ジョブ管理情報における該当ジョブのエントリを削除し、ジョブ割当情報における該当ジョブの情報を削除した後(ステップS606)、ステップS601に戻って次のジョブの選択を試みる。
一方、ステップS601で選択したジョブの実行が完了していなければ(ステップS603否定)、実行制御部125eは、ジョブ管理情報における該当ジョブの実行時間を更新する(ステップS607)。そして、実行制御部125eは、選択されたジョブの実行超過時間を算出し、実行超過時間がチェックポイントの値よりも大きければ(ステップS608肯定)、優先度調整部125fに優先度の調整を行わせる。優先度調整部125fは、ジョブの優先度を1下げて(ステップS609)、チェックポイントの値を更新する(ステップS610)。そして、優先度調整部125fの処理が終わった後、実行制御部125eは、ステップS601に戻って次のジョブの選択を試みる。
そして、全てのジョブを選択し、ステップS601において選択できるジョブがなくなった場合に(ステップS602否定)、処理を終了する。
なお、図5に示した本実施例に係るジョブ管理装置12の構成は、本発明の要旨を逸脱しない範囲で種々に変更できる。例えば、ジョブ管理装置12の制御部125の機能をソフトウェアとして実装し、これをコンピュータで実行して、ジョブ管理装置12と同等の機能を実現できる。以下に、制御部125の機能をソフトウェアとして実装したジョブ管理プログラム1071を実行するコンピュータの一例を示す。
図15は、ジョブ管理プログラム1071を実行するコンピュータ1000を示す機能ブロック図である。このコンピュータ1000は、各種演算処理を実行するCPU(Central Processing Unit)1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置1050と、各種情報を一時記憶するRAM(Random Access Memory)1060と、ハードディスク装置1070とをバス1080で接続して構成される。
そして、ハードディスク装置1070には、図5に示した制御部125と同様の機能を有するジョブ管理プログラム1071が記憶され、図5に示した記憶部121に相当するジョブ管理用領域1072が設けられる。なお、ジョブ管理用領域1072を、適宜分散させ、ネットワークを介して接続された他のコンピュータに設けてもよい。
そして、CPU1010がジョブ管理プログラム1071をハードディスク装置1070から読み出してRAM1060に展開すると、ジョブ管理プログラム1071は、ジョブ管理プロセス1061として機能するようになる。そして、ジョブ管理プロセス1061は、ジョブ管理用領域1072から読み出した情報等を適宜RAM1060上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
なお、上記のジョブ管理プログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。
上述してきたように、本実施例では、高優先度の新たなジョブが受け付けられた場合に、そのジョブを実行するために不足している計算ノード数以上の計算ノードを使用して実行されているジョブを実行停止状態とし、実行停止状態となったジョブが使用していた計算ノードと空きノードを使用して新たなジョブを実行するようにしたので、実行中のジョブの処理の一部が実行停止状態となって、そのジョブの他の処理が計算ノードを割り当てられたまま実行停止状態と同様の状態になる事態を防止でき、クラスタに含まれる計算ノードを効率よく活用できる。
また、本実施例では、新たなジョブを実行させた後にできた空きノードを活用して、新たなジョブよりも早く実行が終了するジョブを実行するようにしたので、新たなジョブの実行が完了した後に実行停止状態のジョブを復帰させる時期を遅らせずに、クラスタに含まれる計算ノードを効率よく活用できる。
(付記1)コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上のジョブを第2のジョブとして選択する実行停止ジョブ選択ステップと、
前記第2のジョブの全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行ステップと、
前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開ステップと
を含むことを特徴とするジョブ管理方法。
(付記2)前記優先実行ステップにおいて前記第1のジョブの実行が開始された後に前記コンピュータクラスタに前記空き計算ノードが存在する場合に、実行に必要な前記計算ノード数が前記空き計算ノード数以下で、実行所要時間が前記第1のジョブの実行所要時間以下で、かつ前記コンピュータクラスタにおいて実行されていないジョブを第3のジョブとして選択する空き計算ノード活用ジョブ選択ステップと、
前記空き計算ノードにおいて前記第3のジョブを実行させる空きノード活用ジョブ実行ステップと
をさらに含むことを特徴とする付記1に記載のジョブ管理方法。
(付記3)前記実行停止ジョブ選択ステップは、前記第2のジョブの選択肢が複数存在する場合に、該選択肢の中で最も優先度が低い前記ジョブ、あるいは実行に必要な前記計算ノード数が最も少ない前記ジョブを前記第2のジョブとして選択することを特徴とする付記1または2に記載のジョブ管理方法。
(付記4)前記実行停止ジョブ選択ステップは、前記第1のジョブよりも優先度が低く、かつ、実行に必要な計算ノード数が、前記第1のジョブの実行のために不足している計算ノード数以上であるジョブが複数存在する場合に、それらのジョブの中から、前記第2のジョブの実行を再開させるまでの間に前記クラスタに含まれる計算ノードが空きノードとなる時間の合計が最も短くなるジョブを前記第2のジョブとして選択することを特徴とする付記1または2に記載のジョブ管理方法。
(付記5)前記実行停止ジョブ選択ステップは、選択した前記第2のジョブの優先度を下げることを特徴とする付記1または2に記載のジョブ管理方法。
(付記6)前記空きノード活用ジョブ選択ステップは、選択した前記第3のジョブの優先度を上げることを特徴とする付記2に記載のジョブ管理方法。
(付記7)実行時間が指定された実行所要時間を所定時間以上超過したジョブの優先度を下げる優先度調整ステップをさらに含むことを特徴とする付記1または2に記載のジョブ管理方法。
(付記8)前記受付ステップにおいて受け付けられた後、前記クラスタにおいて実行されるのを待つ時間が所定時間を超過したジョブの優先度を上げる優先度調整ステップをさらに含むことを特徴とする付記1または2に記載のジョブ管理方法。
(付記9)コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上のジョブを第2のジョブとして選択する実行停止ジョブ選択手段と、
前記第2のジョブの全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行行手段と、
前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開手段と
を備えることを特徴とするジョブ管理装置。
(付記10)コンピュータに、
コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上のジョブを第2のジョブとして選択する実行停止ジョブ選択手順と、
前記第2のジョブの全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行手順と、
前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開手順と
を実行させることを特徴とするジョブ管理プログラム。
以上のように、本発明に係るジョブ管理方法、ジョブ管理装置およびジョブ管理プログラムは、複数の計算ノードから構成されたクラスタにおいてジョブを効率的に稼動させるために有用であり、特に、複数の計算ノード間で情報をやりとりしながら処理を進めていくタイプのジョブを実行する場合にもクラスタに含まれる計算ノードを効率よく活用するのが必要な場合に適している。
本実施例に係るジョブ管理処理が実行されるクラスタシステムの一例を示す図である。 本実施例に係るジョブ管理処理の概要を説明するための説明図である。 複数のジョブの組合せを実行停止状態にする処理の一例を示す図である。 計算ノードが遊休状態となる時間が最小になるように実行停止状態にする対象を選択する処理の一例を示す図である。 本実施例に係るジョブ管理装置の構成を示すブロック図である。 ジョブ管理情報の一例を示す図である。 高優先度のジョブが投入された後のジョブ管理情報の一例を示す図である。 ジョブ割当情報の一例を示す図である。 シミュレート部の出力画面の一例を示す図である。 ジョブ管理装置に新たなジョブが投入されたときの受付処理手順を示すフローチャートである。 実行停止ジョブ選択処理の処理手順を示すフローチャートである。 空きノード活用ジョブ選択処理の処理手順を示すフローチャートである。 実行制御部のジョブ管理処理手順を示すフローチャートである。 実行待ちジョブ監視処理の処理手順を示すフローチャートである。 実行中ジョブ監視処理の処理手順を示すフローチャートである。 ジョブ管理プログラムを実行するコンピュータを示す機能ブロック図である。
符号の説明
1 クラスタシステム
10、11、12 ジョブ管理装置
11a 実行待ちジョブ記憶領域
11b 実行停止ジョブ記憶領域
12a 実行待ちジョブ記憶領域
12b 実行停止ジョブ記憶領域
121 記憶部
121a 実行待ちジョブ記憶領域
121b 実行停止ジョブ記憶領域
121c ジョブ管理情報記憶領域
121d ジョブ割当情報記憶領域
122 入力部
123 表示部
124 ネットワークインターフェース部
125 制御部
125a 受付部
125b 優先実行部
125c 実行停止ジョブ選択部
125d 空きノード活用ジョブ選択部
125e 実行制御部
125f 優先度調整部
125g 実行停止ジョブ実行再開部
125h シミュレート部
2 クラスタ
20a〜20d 計算ノード
30a〜30c 端末装置
1000 コンピュータ
1010 CPU
1020 入力装置
1030 モニタ
1040 媒体読取り装置
1050 ネットワークインターフェース装置
1060 RAM
1061 ジョブ管理プロセス
1070 ハードディスク装置
1071 ジョブ管理プログラム
1072 ジョブ管理用領域
1080 バス

Claims (5)

  1. コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上の計算ノードを使用しているジョブを第2のジョブとして選択する実行停止ジョブ選択ステップと、
    前記第2のジョブによって使用されている計算ノードで実行中の全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行ステップと、
    前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開ステップと
    を含むことを特徴とするジョブ管理方法。
  2. 前記優先実行ステップにおいて前記第1のジョブの実行が開始された後に前記コンピュータクラスタに前記空き計算ノードが存在する場合に、実行に必要な前記計算ノード数が前記空き計算ノード数以下で、実行所要時間が前記第1のジョブの実行所要時間以下で、かつ前記コンピュータクラスタにおいて実行されていないジョブを第3のジョブとして選択する空き計算ノード活用ジョブ選択ステップと、
    前記空き計算ノードにおいて前記第3のジョブを実行させる空きノード活用ジョブ実行ステップと
    をさらに含むことを特徴とする請求項1に記載のジョブ管理方法。
  3. 前記実行停止ジョブ選択ステップは、前記第2のジョブの選択肢が複数存在する場合に、該選択肢の中で最も優先度が低い前記ジョブ、あるいは実行に必要な前記計算ノード数が最も少ない前記ジョブを前記第2のジョブとして選択することを特徴とする請求項1または2に記載のジョブ管理方法。
  4. コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上の計算ノードを使用しているジョブを第2のジョブとして選択する実行停止ジョブ選択手段と、
    前記第2のジョブによって使用されている計算ノードで実行中の全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行行手段と、
    前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開手段と
    を備えることを特徴とするジョブ管理装置。
  5. コンピュータに、
    コンピュータクラスタの空き計算ノードの数が、第1のジョブが必要とする該計算ノード数よりも少ない場合に、実行中で、該第1のジョブよりも優先度が低く、かつ実行に必要な該計算ノード数が該第1のジョブの実行のために不足している該計算ノード数以上の計算ノードを使用しているジョブを第2のジョブとして選択する実行停止ジョブ選択手順と、
    前記第2のジョブによって使用されている計算ノードで実行中の全ての処理を実行停止状態とし、前記第2のジョブによって使用されていた前記計算ノードと前記空き計算ノードにおいて前記第1のジョブを実行させる優先実行手順と、
    前記第1のジョブの実行が完了した後に、前記第2のジョブの実行を再開させる実行再開手順と
    を実行させることを特徴とするジョブ管理プログラム。
JP2007245741A 2007-09-21 2007-09-21 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム Expired - Fee Related JP4935595B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007245741A JP4935595B2 (ja) 2007-09-21 2007-09-21 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US12/209,531 US20090083746A1 (en) 2007-09-21 2008-09-12 Method for job management of computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007245741A JP4935595B2 (ja) 2007-09-21 2007-09-21 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム

Publications (2)

Publication Number Publication Date
JP2009075956A JP2009075956A (ja) 2009-04-09
JP4935595B2 true JP4935595B2 (ja) 2012-05-23

Family

ID=40473110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007245741A Expired - Fee Related JP4935595B2 (ja) 2007-09-21 2007-09-21 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム

Country Status (2)

Country Link
US (1) US20090083746A1 (ja)
JP (1) JP4935595B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158276A1 (en) * 2007-12-12 2009-06-18 Eric Lawrence Barsness Dynamic distribution of nodes on a multi-node computer system
US8458712B2 (en) * 2008-04-30 2013-06-04 International Business Machines Corporation System and method for multi-level preemption scheduling in high performance processing
EP2437170A4 (en) * 2009-05-25 2013-03-13 Panasonic Corp MULTIPROCESSOR SYSTEM, MULTIPROCESSOR CONTROL METHOD AND INTEGRATED MULTIPROCESSOR CIRCUIT
JP2011065645A (ja) * 2009-09-18 2011-03-31 Square Enix Co Ltd マルチコアプロセッサシステム
JP5556380B2 (ja) * 2010-05-28 2014-07-23 富士通株式会社 管理装置,管理方法,および管理プログラム
US8762998B2 (en) * 2011-06-14 2014-06-24 International Business Machines Corporation Computing job management based on priority and quota
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US20120324454A1 (en) * 2012-05-04 2012-12-20 Concurix Corporation Control Flow Graph Driven Operating System
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
WO2014054079A1 (en) * 2012-10-05 2014-04-10 Hitachi, Ltd. Job management system and job control method
KR101446723B1 (ko) 2012-11-30 2014-10-06 한국과학기술정보연구원 작업 실행 관리 방법, 작업 실행 관리 장치, 및 작업 실행을 관리하는 프로그램을 저장하는 저장매체
JP6157181B2 (ja) * 2013-04-02 2017-07-05 キヤノン株式会社 サーバーシステム、その制御方法、およびそのプログラム
JP6191361B2 (ja) * 2013-09-25 2017-09-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び制御プログラム
US9213576B2 (en) * 2014-01-31 2015-12-15 Google Inc. Efficient resource utilization in data centers
JP2015148909A (ja) 2014-02-05 2015-08-20 富士通株式会社 並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラム
US9575536B2 (en) 2014-08-22 2017-02-21 Intel Corporation Methods and apparatus to estimate power performance of a job that runs on multiple nodes of a distributed computer system
JP6446989B2 (ja) 2014-10-16 2019-01-09 富士通株式会社 計算機システム,処理方法及びジョブ処理プログラム
EP3018581B1 (en) * 2014-11-06 2017-03-08 Fujitsu Limited Data staging management system
JP6161130B2 (ja) * 2015-03-13 2017-07-12 国立大学法人東北大学 津波浸水予測システム、制御装置、津波浸水予測の提供方法及びプログラム
US9658893B2 (en) * 2015-05-06 2017-05-23 Runtime Design Automation Multilayered resource scheduling
JP6477266B2 (ja) * 2015-06-03 2019-03-06 富士通株式会社 ダンプ管理装置、ダンプ管理プログラム及びダンプ管理方法
WO2017046939A1 (ja) * 2015-09-18 2017-03-23 三菱電機株式会社 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
CN109428912B (zh) * 2017-08-24 2020-07-10 阿里巴巴集团控股有限公司 一种分布式系统资源分配方法、装置及系统
JP2020024636A (ja) * 2018-08-08 2020-02-13 株式会社Preferred Networks スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム
JP7259380B2 (ja) * 2019-02-12 2023-04-18 日本電気株式会社 情報処理実行制御装置、情報処理実行制御システム、情報処理実行制御方法、及び、情報処理実行制御プログラム
JP2021077180A (ja) * 2019-11-12 2021-05-20 富士通株式会社 ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法
JPWO2022024252A1 (ja) * 2020-07-29 2022-02-03
WO2023188257A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
JP3215264B2 (ja) * 1994-06-29 2001-10-02 科学技術庁航空宇宙技術研究所長 スケジュール制御装置とその方法
US5826082A (en) * 1996-07-01 1998-10-20 Sun Microsystems, Inc. Method for reserving resources
JP2001022601A (ja) * 1999-07-12 2001-01-26 Hitachi Ltd ジョブ実行制御方法及び並列計算機システム
US7058947B1 (en) * 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US7058949B1 (en) * 2000-11-08 2006-06-06 Unisys Corporation Operating system scheduler/dispatcher with randomized resource allocation and user manipulable weightings
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US6883980B2 (en) * 2002-03-29 2005-04-26 Hewlett-Packard Development Company, L.P. System and method for saving power using priority printing
JP3885748B2 (ja) * 2003-03-13 2007-02-28 日本電気株式会社 グループ単位ギャングスケジューリング方式
CN100382073C (zh) * 2003-03-27 2008-04-16 佳能株式会社 图像形成系统、图像形成系统的控制方法
US7380247B2 (en) * 2003-07-24 2008-05-27 International Business Machines Corporation System for delaying priority boost in a priority offset amount only after detecting of preemption event during access to critical section
US7743378B1 (en) * 2005-05-13 2010-06-22 Oracle America, Inc. Method and apparatus for multi-dimensional priority determination for job scheduling
US7920282B2 (en) * 2006-02-23 2011-04-05 International Business Machines Corporation Job preempt set generation for resource management
US7844970B2 (en) * 2006-08-22 2010-11-30 International Business Machines Corporation Method and apparatus to control priority preemption of tasks

Also Published As

Publication number Publication date
JP2009075956A (ja) 2009-04-09
US20090083746A1 (en) 2009-03-26

Similar Documents

Publication Publication Date Title
JP4935595B2 (ja) ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US11263084B2 (en) Saving program execution state
US9959313B2 (en) Database management system and method capable of dynamically issuing inputs/outputs and executing operations in parallel
US9280390B2 (en) Dynamic scaling of a cluster of computing nodes
US7779413B2 (en) Method of assigning available resources for internal and external users at start time of scheduled time period based on program reservations information
US8458712B2 (en) System and method for multi-level preemption scheduling in high performance processing
CN101727357B (zh) 用于分配计算中心中资源的方法和装置
CN113535367B (zh) 任务调度方法及相关装置
US20130339956A1 (en) Computer system and optimal arrangement method of virtual machine in computer system
US8539495B2 (en) Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method
US20140137122A1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
TWI554945B (zh) 例行工作的分配方法及應用其之多核心電腦
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP5614318B2 (ja) スケジューリングプログラム,方法および装置
JP6372262B2 (ja) 印刷装置、およびプログラム
CN110175073B (zh) 数据交换作业的调度方法、发送方法、装置及相关设备
US20160139959A1 (en) Information processing system, method and medium
JP4733458B2 (ja) 検索システム及び検索方法
JP2015148909A (ja) 並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラム
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP4712283B2 (ja) データ管理システム、バッチ制御システム、及びバッチ制御プログラム
WO2018198745A1 (ja) 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体
CN112631743B (zh) 任务调度方法、装置及存储介质
JP5674850B2 (ja) データベース管理システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111221

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

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

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

Free format text: PAYMENT UNTIL: 20150302

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