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

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

Info

Publication number
JP6241300B2
JP6241300B2 JP2014019227A JP2014019227A JP6241300B2 JP 6241300 B2 JP6241300 B2 JP 6241300B2 JP 2014019227 A JP2014019227 A JP 2014019227A JP 2014019227 A JP2014019227 A JP 2014019227A JP 6241300 B2 JP6241300 B2 JP 6241300B2
Authority
JP
Japan
Prior art keywords
resource
job
amount
group
free
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
JP2014019227A
Other languages
English (en)
Other versions
JP2015146154A (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 JP2014019227A priority Critical patent/JP6241300B2/ja
Priority to US14/592,955 priority patent/US9483319B2/en
Publication of JP2015146154A publication Critical patent/JP2015146154A/ja
Application granted granted Critical
Publication of JP6241300B2 publication Critical patent/JP6241300B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラムに関する。
計算センタなどのHPC(High Performance Computing)では、計算資源を公平でかつ効率的に利用できるように、計算ノードが有する計算資源にジョブが割り付けられる。ジョブは、割り付け先の計算ノードで実行される。ジョブの実行が終了すると、計算ノードへのジョブの割り付けが解除される。
HPCの計算資源を提供する装置は、PC(Personal Computer)クラスタ、SMP(Symmetric Multiple Processor )マシン、専用ハードウェアのスーパーコンピュータなど様々である。計算資源は、リソースとも呼ばれる。リソースには、様々な種類のものがある。例えばプロセッサやメモリは、リソースの一種である。リソースとしてのプロセッサには、CPU(Central Processing Unit)に限らず、GPGPU(General-Purpose computing on Graphics Processing Units)、メニーコアプロセッサなどの様々な演算資源が含まれる。マルチコアプロセッサの場合、プロセッサ・コア(以下、単にコアと呼ぶ)それぞれを個別のリソースとして取り扱うことができる。
実行するジョブの処理内容には、構造解析、流体解析など様々な種類がある。またジョブには、1つのコアで実行する逐次ジョブや、複数のコアで並列に実行する並列ジョブがある。並列ジョブの場合、1台の計算ノード内の複数のコアで並列に処理しても、複数の計算ノードで並列に処理してもよい。そのためジョブの割り付け先となる計算ノードは、そのジョブを実行するときに使用するコア数に応じた空きのコアを有していることが条件となる。さらにジョブは、処理内容に応じて使用するメモリ量が異なる。そのためジョブの割り付け先となる計算ノードは、そのジョブで使用するメモリ量に応じた空きのメモリ資源を有していることが条件となる。
ジョブをリソースに割り付けることを、ジョブスケジューリングと呼ぶ。ジョブごとに割り付け先に要求される空きのリソース量が異なるため、ジョブスケジューリングでは、ジョブを割り付け可能かどうかが、計算ノードごとに判断される。なお計算ノードのリソースへのジョブの割り付けは、ジョブへのリソースの割り当てと呼ぶこともある。ジョブへのリソースの割り当てに関する技術としては、例えば、ジョブクラス定義表に各ジョブクラスのジョブが同時使用できるプロセッサ個数(最大値)やこれに対応したプロセッサグループなどをあらかじめ記載しておく技術がある。この技術では、ジョブクラス定義表を参照することで、実行要求ジョブに対応のプロセッサ個数やプロセッサグループを求めて、プロセッサを割り当てる。
特開平07−200496号公報
しかし、現在のジョブスケジューリング技術ではシステムの大規模化に十分に対応できておらず、システムの規模の拡大に伴いジョブスケジューリングの処理時間が増大している。すなわち、システムが大規模化し計算ノード数が増加すると、各計算ノードに対してジョブを割り付け可能か否かの判断回数が増加する。その結果、ジョブスケジューリングの処理時間が長期化する。
ジョブスケジューリングの処理時間の長期化は、システム全体の処理効率の低下の要因となる。例えばジョブスケジューリングの処理時間が長期化すれば、その分、計算ノードへのジョブの実行指示も遅れることとなる。しかもスケジュールの更新処理の実行中は、ジョブ操作やコマンド受付などの処理が実行できない。そのためジョブ操作などのさまざまな処理が遅延する。
1つの側面では、本発明は、ジョブスケジューリングの処理効率を向上させることを目的とする。
1つの案では、最大資源空き量判定部、除外部、および探索部を有する。複数の計算ノードが複数のグループに分けられており、最大資源空き量判定部は、複数のグループそれぞれについて、グループに属する計算ノードのうち、資源の空き量が最も多い計算ノードの該資源の空き量を、該グループの最大資源空き量と判定する。除外部は、ジョブの資源消費量と、複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が資源消費量に満たないグループを、探索対象から除外する。探索部は、探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量が資源消費量以上の計算ノードを探索する。
1態様によれば、ジョブスケジューリングの処理効率が向上する。
第1の実施の形態に係るジョブスケジューリング装置の機能の一例を示すブロック図である。 第2の実施の形態のシステムの一構成例を示す図である。 第2の実施の形態に用いる管理ノードのハードウェアの一構成例を示す図である。 管理ノードの機能を示すブロック図である。 リソース情報の一例を示す図である。 最大空き値ペア情報の一例を示す図である。 グループの最大空き値ペアの例を示す図である。 最大空き値ペアテーブルの一例を示す図である。 計算ノードのグルーピングの一例を示す図である。 探索対象とするグループの判断例を示す図である。 探索対象とするグループ内の計算ノードの調査例を示す図である。 すべての計算ノードを調査する場合のスケジューリングコストを示す図である。 探索対象のグループのフィルタリングを行う場合のスケジューリングコストを示す図である。 p値の算出例を示す図である。 最適なm値の算出例を示す図である。 ジョブスケジューリングの手順の一例を示すフローチャートである。 第1のジョブスケジューリング処理の手順の一例を示すフローチャートである。 第2のジョブスケジューリング処理の手順の一例を示すフローチャートである。 m値更新処理の手順の一例を示すフローチャートである。 第1のジョブについてのシミュレーション結果を示す図である。 第2のジョブについてのシミュレーション結果を示す図である。 第3のジョブについてのシミュレーション結果を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るジョブスケジューリング装置の機能の一例を示すブロック図である。ジョブスケジューリング装置10は、ネットワーク1を介して複数の計算ノード2a,2b,2c,・・・,2m,2nに接続されている。ジョブスケジューリング装置10は、複数の計算ノード2a,2b,2c,・・・,2m,2nにジョブを実行させる際のスケジューリングを行う。
ジョブスケジューリング装置10は、ジョブのスケジューリングのために、記憶部11、グルーピング部12、最大資源空き量判定部13、除外部14、探索部15、ジョブ操作部16、および更新部17を有する。
記憶部11は、複数の計算ノードそれぞれの資源の空き量を記憶する。例えば記憶部11には、各計算ノードの空きコア数と空きメモリ量とが格納されている。また記憶部11には、例えば各計算ノードが属するグループの識別子、そのグループの最大空きコア数、そのグループの最大空きメモリ量を記憶することもできる。
グルーピング部12は、複数のグループそれぞれの最大資源空き量の頻度分布に基づいて、最も処理を効率化できる、1グループ当たりの計算ノード数を算出する。そしてグルーピング部12は、算出された計算ノード数ごとのグループに、複数の計算ノードを改めてグルーピングする。グルーピング部12は、グルーピングをした場合、各計算ノードに対応付けて、その計算ノードが属するグループの識別子を、例えば記憶部11に格納する。
なおグルーピングの際の1グループ当たりの計算ノード数は、グルーピングをすることによる処理の効率化を勘案して定めることができる。例えばグルーピング部12は、1グループ当たりの計算ノード数の候補値を複数生成し、生成された候補値それぞれについて、候補値を1グループ当たりの計算ノード数としたときの処理の効率化の度合いを計算する。そしてグルーピング部12は、最も処理を効率化できる候補値を、1グループ当たりの計算ノード数とする。これにより、ジョブスケジューリング処理の効率化を促進できる。
またグルーピング部12は、値の小さい候補値から順に処理の効率化の度合いを算出し、候補値の上昇に伴い処理の効率化の度合いが低下する傾向になると、効率化の度合いの算出を抑止することもできる。この場合、グルーピング部12は、効率化の度合いを既に算出した候補値のなかで、最も処理を効率化できる候補値を、1グループ当たりの計算ノード数に決定する。これにより、効率化の度合いの算出の回数を削減することができ、処理が効率的となる。
最大資源空き量判定部13は、複数のグループそれぞれについて、グループに属する計算ノードのうち、資源の空き量が最も多い計算ノードの該資源の空き量を、該グループの最大資源空き量と判定する。なお各計算ノードの資源の空き量が資源の種別ごとに管理されている場合、最大資源空き量判定部13は、資源の種別ごとに最大資源空き量を判定する。最大資源空き量判定部13は、グループの最大資源空き量を、例えば記憶部11に格納する。
除外部14は、ジョブ3の資源消費量と、複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が資源消費量に満たないグループを、探索対象から除外する。なお各計算ノードの資源の空き量が資源の種別ごとに管理されている場合、除外部14は、ジョブ3の資源の種別ごとの資源消費量と、複数のグループそれぞれの資源の種別ごとの最大資源空き量とを比較する。この場合、除外部14は、少なくとも1つの種別の資源において、最大資源空き量が資源消費量に満たないグループを、探索対象から除外する。
探索部15は、探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量がジョブ3の資源消費量以上の計算ノード2mを探索する。
ジョブ操作部16は、資源の空き量がジョブ3の資源消費量以上の計算ノード2mに対して、ジョブ3の実行を指示する。またジョブ操作部16は、ジョブ3の実行を指示した計算ノード2mによるジョブ3の実行終了を検知する。例えばジョブ操作部16は、計算ノード2mからのジョブ実行終了の通知を受けて、ジョブ3の実行終了を認識する。
更新部17は、計算ノード2mへのジョブ3の実行指示または計算ノード2mによるジョブ3の実行終了に伴い、記憶部11に記憶された計算ノード2mの資源の空き量を更新する。例えば更新部17は、計算ノード2mへのジョブ3の実行指示が出されたときは、記憶部11内の計算ノード2mの空き資源量から、ジョブ3の資源消費量だけ減算する。また更新部17は、計算ノード2mによるジョブ3の実行が終了したときは、記憶部11内の計算ノード2mの空き資源量に、ジョブ3の資源消費量だけ加算する。
このようなジョブスケジューリング装置10によれば、グルーピング部12により、複数の計算ノードがグルーピングされる。そして最大資源空き量判定部13により、各グループの最大資源空き量が判定される。図1の例では、記憶部11に、各計算ノードについて、コア数とメモリ量との2つの種別の資源の空き量が管理されている。そこで最大資源空き量判定部13は、グループ内の空きコア数が最も大きい計算ノードの空きコア数を、そのグループの最大空きコア数とする。また最大資源空き量判定部13は、グループ内の空きメモリ量が最も大きい計算ノードの空きメモリ量を、そのグループの最大空きメモリ量とする。
その後、例えばジョブ3の実行依頼を受け付けると、除外部14は、ジョブ3の資源消費量と、複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が資源消費量に満たないグループを、探索対象から除外する。なお複数の種別の資源について管理されている場合、少なくとも1つの種別の資源において、最大資源空き量が資源消費量に満たないグループは、探索対象から除外される。例えば図1の例では、ジョブ3の使用コア数(消費するコア数)は5であり、使用メモリ量(消費するメモリ量)は4GBである。グループ番号「0」のグループは、最大空きコア数が4であり、ジョブ3の使用コア数に満たない。そのためグループ番号「0」のグループは、探索対象から除外される。グループ番号「1」のグループは、最大空きメモリ量が3GBであり、ジョブ3の使用メモリ量に満たない。そのためグループ番号「1」のグループは、探索対象から除外される。グループ番号「2」のグループは、最大空きコア数が6であり、最大空きメモリ量が4GBである。するとグループ番号「2」のグループは、最大空きコア数がジョブ3の使用コア数以上であり、かつ最大空きメモリ量がジョブ3の使用メモリ量以上である。そのためグループ番号「2」のグループは、探索対象となる。
探索対象から除外されるグループのグループ番号は、探索部15に通知される。すると探索部15は、探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量がジョブ3の資源消費量以上の計算ノード2mを探索する。図1の例では、探索対象から除外されていないグループ番号「2」のグループには、ノード番号「6」〜「8」の3台の計算ノードが属している。そこで探索部15は、3台の計算ノードそれぞれについて、資源の空き量がジョブ3の資源消費量以上かどうかを判断する。図1の例では、計算ノード番号「6」の計算ノードの空きコア数は3であり、空きメモリ量は2GBである。すると計算ノード番号「6」の計算ノードは、ジョブ3の使用コア数と使用メモリ量との両方を満たさない量の空き資源しか有していない。計算ノード番号「7」の計算ノードの空きコア数は6であり、空きメモリ量は4GBである。すると計算ノード番号「7」の計算ノードは、ジョブ3の資源消費量以上の空き資源量を有している。計算ノード番号「8」の計算ノードの空きコア数は5であり、空きメモリ量は3GBである。すると計算ノード番号「8」の計算ノードは、ジョブ3の使用コア数に満たない量の空きコア数しか有していない。その結果、計算ノード番号「7」の計算ノード2mが検出される。
計算ノード2mが検出されると、ジョブ操作部16によって、ジョブ3の実行指示が計算ノード2mに送信される。すると、更新部17によって、計算ノード2mの空きコア数と空きメモリ量の値が更新される。計算ノード2mによるジョブ3の実行が終了すると、実行終了がジョブ操作部16で検知される。すると更新部17によって、計算ノード2mの空きコア数と空きメモリ量の値が更新される。
このように、計算ノードを複数のグループにグルーピングし、実行するジョブ3の資源消費量に満たない最大空き資源量しか有していないグループについては、ジョブを割り付け可能な計算ノードの探索対象から除外される。これにより、ジョブスケジューリングの処理効率が向上する。例えばグループ単位での探索対象からの除外処理を行わずに、計算ノードすべてを探索対象として、ジョブ3を実行可能な計算ノードの探索を行った場合、図1の例であれば、空き資源量とジョブの資源消費量との比較を、最大で9回繰り返すこととなる。他方、グループ単位での探索対象からの除外処理を行った場合、グループの最大空き資源量とジョブの資源消費量との比較を3回行い、探索対象のグループ(グループ番号「2」)内の各計算ノードの空き資源量とジョブの資源消費量との比較を3回行えばよい。すると資源量の比較が6回で済み、処理が効率化されている。
しかも、近年のシステムの大規模化に伴い、計算ノード数が増加している。例えば数千ノード、数万ノードを有するシステムも実用化されている。従来であれば、計算ノードの増加に伴いスケジューリングの処理量も増加し、計算ノードを増加させたにもかかわらずシステムの処理速度が十分に高速化されない事態が生じる。第1の実施の形態に示すように、実行するジョブの資源消費量に満たない最大空き資源量のグループについて探索対象から除外することで、計算ノード数の増加に伴うジョブスケジューリングの処理量の増加を抑止することができる。その結果、システムの大規模化に見合った分の処理の高速化が可能となる。
なお除外部14は、複数のグループそれぞれの最大資源空き量の頻度分布に基づいて、最大資源空き量がジョブの資源消費量以上のグループの割合が所定値以上になるかどうかを判断することもできる。最大資源空き量がジョブ3の資源消費量以上のグループの割合が所定値以上になると判断した場合、例えば除外部14は、ジョブ3の資源消費量と複数のグループそれぞれの最大資源空き量との比較を抑止する。また、探索部15は、最大資源空き量が資源消費量以上のグループの割合が所定値以上になる場合、複数の計算ノードすべての中から、資源の空き量が資源消費量以上の計算ノードを探索する。これにより、グループごとの探索対象からの除外判断をして一部のグループ内の計算ノードを探索対象から除外する探索手法と、すべての計算ノードを探索対象とする探索手法とのうち、負荷状況に応じて処理効率がよい探索手法を採用することができる。その結果、システム全体の負荷状況に応じて、適切な探索手法による効率的なジョブスケジューリングを行うことができる。
なお、図1に示したグルーピング部12、最大資源空き量判定部13、除外部14、探索部15、ジョブ操作部16、および更新部17は、例えばジョブスケジューリング装置10が有するプロセッサにより実現することができる。また、記憶部11は、例えばジョブスケジューリング装置10が有するメモリにより実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。
図2は、第2の実施の形態のシステムの一構成例を示す図である。管理ノード100には、複数の計算ノード31,32,33,・・・が接続されている。管理ノード100は、計算ノード31,32,33,・・・を管理するコンピュータである。計算ノード31,32,33,・・・は、ジョブを実行するコンピュータである。計算ノード31,32,33,・・・は、並列ジョブの場合、複数の計算ノードが互いに連携してジョブを実行する。
また管理ノード100には、端末装置20が接続されている。端末装置20は、実行するジョブの内容を指示するユーザが使用するコンピュータである。ジョブの実行内容を指示する場合、ユーザは、例えば端末装置20に対して、実行するジョブの内容を入力する。ジョブの内容としては、例えばジョブの実行に用いるプログラムやデータ、逐次ジョブか並列ジョブかのジョブ種の指定、並列ジョブであれば並列度(使用するコア数)、使用するメモリ容量、ジョブの実行に要する最大の時間(最大実行時間)などが含まれる。ジョブの実行に使用するコア数は、そのジョブのコア消費量と言い換えることもできる。またジョブの実行に使用するメモリ容量は、そのジョブのメモリ消費量と言い換えることもできる。そしてユーザの指示に応じて、端末装置20から管理ノード100へ、ジョブの実行内容が送信される。
管理ノード100は、端末装置20からのジョブの実行依頼を受け付ける。そして、管理ノード100は、計算ノード31,32,33,・・・にジョブの実行要求を送信し、計算ノード31,32,33,・・・からジョブの処理結果を受け取る。
図3は、第2の実施の形態に用いる管理ノードのハードウェアの一構成例を示す図である。管理ノード100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチコアプロセッサであってもよい。プロセッサ101は、例えばCPU、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、管理ノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理ノード100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、管理ノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108aは、端末装置20に接続されている。ネットワークインタフェース108aは、端末装置20との間でデータの送受信を行う。
ネットワークインタフェース108bは、ネットワークを介して、計算ノード31,32,33,・・・に接続されている。通信インタフェース108bは、計算ノード31,32,33,・・・との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお計算ノード31,32,33,・・・も管理ノードと同様のハードウェアで実現できる。また、第1の実施の形態に示したジョブスケジューリング装置10も、図3に示した管理ノード100と同様のハードウェアにより実現することができる。
管理ノード100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理ノード100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理ノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、管理ノード100が有する機能について詳細に説明する。
図4は、管理ノードの機能を示すブロック図である。管理ノード100は、リソース情報記憶部110,最大空き値記憶部120、ジョブ記憶部130、ジョブ操作部140、リソース管理部150、ジョブスケジューリング部160、およびジョブ管理部170を有する。
リソース情報記憶部110は、計算リソースに関するリソース情報111を記憶する。例えばリソース情報111には、計算ノード31,32,33,・・・ごとのコア数、メモリ容量が含まれる。またリソース情報111には、運用状況に応じた空きコア数や空きメモリ量も含まれる。さらにリソース情報111には、各計算ノード31,32,33,・・・が属するグループに関する情報も含まれる。
最大空き値記憶部120は、計算リソースの空き状況に関する情報を記憶する。例えば最大空き値記憶部120には、最大空き値ペア情報121と最大空き値ペアテーブル122とが格納される。最大空き値ペア情報121は、グループごとに設けられている。最大空き値ペア情報121には、リソースの種別ごとに、グループ内の計算ノードのうち該当リソースの空きが最も多い計算ノードと、その計算ノードにおける該当リソースの空き量を示す値(最大値)とが含まれる。最大空き値ペアテーブル122は、最大空きコア数と最大空きメモリ量との組(最大空き値ペア)ごとに、該当するグループの数を管理するデータテーブルである。
ジョブ記憶部130は、実行するジョブに関する情報を記憶する。ジョブ記憶部130には、例えばジョブキュー131とジョブ情報132とが格納される。ジョブキュー131は、実行依頼を受け付けたジョブを依頼順に並べたキュー(待ち行列)である。ジョブ情報132は、実行するジョブの処理内容を示す情報である。なおジョブ情報132には、ジョブの実行時に使用するコア数やメモリ容量が含まれる。
ジョブ操作部140は、実行を依頼されたジョブの実行指示を計算ノードに送信する。例えばジョブ操作部140は、端末装置20からのジョブの実行依頼を受け付け、その実行依頼をジョブ管理部170に転送する。またジョブ操作部140は、ジョブスケジューリング部160が決定したジョブの実行スケジュールに従ってジョブ管理部170から実行するジョブのジョブ情報を取得し、そのジョブの実行指示を計算ノードに送信する。
リソース管理部150は、リソースの空き状況を管理する。例えばリソース管理部150は、ジョブスケジューリング部160からの依頼に応じて、各計算ノードのリソースの空き状態をリソース情報111から取得する。そしてリソース管理部150は、各計算ノードのリソースの空き状態をジョブスケジューリング部160に応答する。
ジョブスケジューリング部160は、ジョブのスケジューリングを行う。例えばジョブスケジューリング部160は、ジョブ操作部140から、ジョブの計算ノードへの実行指示、または計算ノードによるジョブの実行終了のイベントを発生の通知を受けとると、ジョブスケジューリングを行う。ジョブスケジューリングの際には、ジョブスケジューリング部160は、最大空き値記憶部120を参照して、ジョブの実行時に用いる分の空きリソースを有している計算ノードを探索し、該当する計算ノードのリソースへ、実行しようとするジョブを割り付ける。このときジョブスケジューリング部160は、計算ノードをグループ化し、最大空き値ペア情報121に基づいて、グループごとに、ジョブを割り付け可能な計算ノードを含む可能性があるかどうかを判断する。そしてジョブスケジューリング部160は、ジョブを割り付け可能な計算ノードを含んでいる可能性があると判断したグループのみを、割り付け先のリソースの探索対象とする。
探索対象とするグループを決定すると、ジョブスケジューリング部160は、探索対象のグループ内の計算ノードのリソースの空き状況を、リソース管理部150から取得し、ジョブが使用するリソース量相当の空きリソースを有する計算ノードを探索する。そしてジョブスケジューリング部160は、ジョブが使用するリソース量相当の空きリソースを有する計算ノードのリソースに、ジョブを割り付ける。計算ノードのリソースへのジョブの割り付けが確定すると、ジョブスケジューリング部160は、ジョブの割り付け先のリソースの情報を、ジョブ操作部140に通知する。
またジョブスケジューリング部160は、1グループ当たりの最適な計算ノード数を、定期的に計算する。例えばジョブスケジューリング部160は、ジョブスケジューリングに要する時間が最小となるような、1グループ当たりの計算ノード数を計算により求め、その計算ノード数を1グループ当たりの最適な計算ノード数とする。ジョブスケジューリング部160は、1グループ当たりの最適な計算ノード数を計算した後、計算ノードの再グルーピングを行う。
ジョブ管理部170は、ジョブキュー131とジョブ情報132とを管理する。例えばジョブ管理部170は、実行依頼されたジョブをジョブキュー131にキューイングする。このときジョブ管理部170は、実行依頼されたジョブのジョブ情報132を、ジョブ記憶部130に格納する。またジョブ管理部170は、ジョブスケジューリング部160がジョブスケジューリングを行う際には、ジョブキュー131に登録されたジョブのジョブ情報を、ジョブスケジューリング部160に通知する。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、リソース情報111について具体的に説明する。
図5は、リソース情報の一例を示す図である。リソース情報111では、ノード番号に対応付けて、グループ番号、コア数、空きコア数、メモリ容量、および空きメモリ量が登録されている。ノード番号は、計算ノードそれぞれの識別番号である。グループ番号は、計算ノードが属するグループの識別番号である。コア数は、計算ノードが有するコアの数である。空きコア数は、計算ノードのコアのうち、ジョブが割り付けられていないコアの数である。メモリ容量は、計算ノードに実装されたメインメモリの記憶容量である。空きメモリ量は、計算ノードのメインメモリの空き容量である。空きメモリ量は、計算ノードが有するメインメモリの記憶容量に対する、空き領域の割合(パーセンテージ)で示される。
次に、最大空き値ペア情報121について具体的に説明する。
図6は、最大空き値ペア情報の一例を示す図である。最大空き値ペア情報121では、グループ番号に対応付けて、最大空きコア数と最大空きメモリ量との組(最大空き値ペア)が登録されている。最大空きコア数は、対応するグループに属する計算ノードのうち、最も空きコア数が多い計算ノードの空きコア数である。最大空きメモリ量は、対応するグループに属する計算ノードのうち、最も空きメモリ量が多い計算ノードの空きメモリ量である。
図7は、グループの最大空き値ペアの例を示す図である。図7では、1つのグループ40に2台の計算ノード30−1,30−2が属している。計算ノード30−1の空きコア数は6、空きメモリ量は10%である。また計算ノード30−2の空きコア数は2、空きメモリ量は70%である。この場合、グループ40内の計算ノード30−1,30−2のうち、空きコア数が最も大きいのは、計算ノード30−1である。従ってグループ40の最大空きコア数は、6となる。またグループ40内の計算ノード30−1,30−2のうち、空きメモリ量が最も大きいのは、計算ノード30−2である。従ってグループ40の最大空きメモリ量は、70%となる。このように、最大空きコア数の値と、最大空きメモリ量の値とは、別々の計算ノードから抽出した値となる場合もある。
次に最大空き値ペアテーブル122について具体的に説明する。
図8は、最大空き値ペアテーブルの一例を示す図である。最大空き値ペアテーブル122は、資源の種別ごとに、値の範囲ごとの出現頻度を示す2次元の頻度分布表である。
最大空き値ペアテーブル122の各行には、最大空きコア数が設定されている。また最大空き値ペアテーブル122の各列には、最大空きメモリ量の範囲が設定される。図8では、最大空きメモリ量を10%刻みで分類している。最大空き値ペアテーブル122の各列には、対応する最大メモリ空き領域の範囲の最大値が示されている。例えば最大空きメモリ量「10%」で示された列には、最大空きメモリ量が10%以下のグループが含まれる。また最大空きメモリ量「20%」で示された列には、最大空きメモリ量が10%より大きく20%以下のグループが含まれる。
行と列の交わった位置に、その行に設定された最大空きコア数と、その列に設定された範囲内の最大空きメモリ量との最大空き値ペアを有するグループの数が設定される。最大空き値ペアテーブル122内の値は、ジョブの実行開始、またはジョブの実行終了のイベントが発生するたびに更新される。
以上のようなシステムにより、ジョブスケジューリングが行われる。第2の実施の形態では、ジョブスケジューリングに先立って、計算ノードのグルーピングが行われる。
図9は、計算ノードのグルーピングの一例を示す図である。システム内の計算ノードは、それぞれ複数のグループ41,42,43,・・・のいずれかに振り分けられる。例えば計算ノード31は、グループ41に属する。なお計算ノード31は、複数のコア31aとメモリ31bとを有している。他の計算ノードも同様に、複数のコアとメモリとを有している。
また第2の実施の形態では、各計算ノードの空きコア数と空きメモリ量とを勘案して、ジョブの割り付け先の計算ノードが決定される。その際、グループごとに、最大空き値ペアに基づいてジョブを割り付け可能な計算ノードが存在する可能性が判定され、可能性があるグループ内の計算ノードのみが、割り付け先の計算ノードの探索対象となる。
図10は、探索対象とするグループの判断例を示す図である。図10の例は、メモリの50%および4コアを使用するジョブ51の割り付け先を探索する場合を示している。
グループ41は、最大空きメモリ量が70%であり、最大空きコア数が6である。そうするとグループ41内にジョブ51を実行可能な計算ノードが存在する可能性がある。そこでグループ41は、割り付け先の計算ノードの探索対象となる。
グループ42は、最大空きメモリ量が10%であり、最大空きコア数が2である。そうするとグループ42内には、空きメモリ量が50%以上の計算ノードはなく、さらに空きコア数が4コア以上の計算ノードもない。そのためグループ42内には、ジョブ51を実行可能な計算ノードが存在する可能性はない。その結果、グループ42は、割り付け先の計算ノードの探索対象から除外される。
グループ43は、最大空きメモリ量が50%であり、最大空きコア数が3である。そうするとグループ43内には、空きメモリ量が50%以上の計算ノードは存在するが、空きコア数が4コア以上の計算ノードは存在しない。そのためグループ43内には、ジョブ51を実行可能な計算ノードが存在する可能性はない。その結果、グループ43は、割り付け先の計算ノードの探索対象から除外される。
このように、複数のグループのうち、ジョブ51を実行できる計算ノードが存在する可能性のないグループがフィルタリングされる。フィルタリングされたグループは、ジョブ51の割り付け先の計算ノードの探索対象とはされない。その結果、ジョブ51を実行できるかどうかの判断対象となる計算ノード数が削減される。
図11は、探索対象とするグループ内の計算ノードの調査例を示す図である。図11の例では、グループ41内の計算ノード31,32,・・・から順に、ジョブ51を割付可能か調査される。割付可能かどうかの調査では、計算ノードの空きコア数、空きメモリ量の両方が、ジョブ51の実行時に利用する量を満たすかどうかが調査される。図11では、各計算ノード31,32,・・・34,・・・の資源のうち、使用中の資源を黒く塗りつぶし、空き資源を白抜きで示している。ハッチングをかけた資源は、ジョブ51を割り付けた資源である。
グループ41内の先頭の計算ノード31は、空きコア数が3,空きメモリ量が50%である。すると4コアを使用するジョブを計算ノード31で実行することはできない。次の計算ノード32は、空きコア数が6、空きメモリ量が70%である。すると計算ノード32は、ジョブ51を実行時に利用するリソースの条件を満たしている。そこで、計算ノード32のリソースにジョブ51が割り付けられる。
ジョブ51のリソースへの割り付けが確定すると、リソース探索は終了する。従って、リソース探索の対象としてグループ44内の計算ノード34があっても、計算ノード32のリソースにジョブ51を割り付けた後は、計算ノード34に対するリソースの調査は行われない。
なお、ジョブ51を実行できる計算ノードが存在する可能性のないグループのフィルタリングを行うよりも、すべての計算ノードを探索対象とした方が効率的な場合もある。そこで第2の実施の形態では、探索対象とするグループのフィルタリングを行うのが効率的な場合に限定して、そのようなフィルタリングを行う。以下図12、図13を参照して、スケジューリング手法ごとのスケジューリングコストについて説明する。
図12は、すべての計算ノードを調査する場合のスケジューリングコストを示す図である。例えばシステム内にN台(Nは1以上の整数)の計算ノードがあるものとする。また、1台当たりの調査コストをCc(Ccは正の実数)とする。調査コストは、その計算ノードがジョブを実行するのに十分な空きリソースを有しているかどうかの判断に要する時間である。このときすべて最悪の場合を想定し、すべての計算ノードに対して調査を行うものとする。スケジューリングコストをCs1(Cs1は正の実数)とすると、スケジューリングコストは以下の式で表される。
Cs1=Cc×N ・・・(1)
図13は、探索対象のグループのフィルタリングを行う場合のスケジューリングコストを示す図である。ここで、グループ分割時の1グループ当たりのノード数をm(mは2以上の整数)とする。
あるジョブをスケジューリングするとき、個々のグループが割り付け先の調査の対象となる確率をp(pは0以上1以下の実数)とする。ジョブを割り付け可能なリソースを有する計算ノードがグループ内に存在する可能性の判断に要する、グループごとの調査コストは、個々の計算ノードに対する調査コストCcと同等である。ここでシステム全体のグループ数は、「N/m」と表される。そこで、グループがジョブを割り付け可能な計算ノードを有する可能性の判断は、「N/m」回行われる。
また割り付ける資源の探索対象となるグループ数は、「p×(N/m)」である。すなわち、グループ内の計算ノードの探索処理は、「p×(N/m)」回発生する。各グループにはm台の計算ノードが属している。そのため、グループ内の計算ノードの探索処理では、計算ノードがジョブを実行するのに十分なリソースを有しているかどうかの調査が、1グループ当たりm回行われる。
そうすると、スケジューリングコストCs2(Cs2は正の実数)は以下の式で表される。
Cs2=Cc×(N/m+p×(N/m)×m)=Cc×N×(1/m+p)
・・・(2)
式(1)で得られるCs1と式(2)で得られるCs2とを比較し、Cs1の方が小さい場合、すべての計算ノードを調査した方が効率的である。他方、Cs2の方が小さい場合、探索対象のグループのフィルタリングを行い、探索対象と判断されたグループ内の計算ノードのみを調査した方が効率的である。なおCs2の方が小さい場合とは、「Cc×N×(1/m+p)<Cc×N」が満たされる場合である。この比較式を簡略化すると「1/m+p<1」となる。従って「1/m+p<1」が満たされる場合には、Cs1よりCs2の方が小さく、探索対象のグループのフィルタリングを行い、探索対象と判断されたグループ内の計算ノードのみを調査した方が効率的である。
なおp値は、ジョブスケジューリングを行う際に、計算される。p値は、最大空き値ペアテーブル122に基づいて算出できる。
図14は、p値の算出例を示す図である。例えばジョブ51の実行には、4コアを使用すると共に、50%メモリを消費する。すると、最大空きコア数が4コア以上であり、最大空きメモリ量が50%以上の最大空き値ペアを有するグループであれば、ジョブ51を割り付け可能な計算ノードを有している可能性がある。このようなグループの数は、最大空き値ペアテーブル122から容易に導き出すことができる。図14の例は、破線52で囲った内側の数字を合計すれば、該当するグループ数となる。そして、ジョブ51を割り付け可能な計算ノードを有している可能性があるグループ数を、全グループ数で除算した値がp値となる。
m値は、所定周期で更新される。例えば1時間周期で最適なm値が算出される。算出された最適なm値が、以後のジョブスケジューリングにおけるm値として適用される。m値が更新されると、1グループ当たりの計算ノード数が変わるため、計算ノードの再グルーピングが行われる。
図15は、最適なm値の算出例を示す図である。最適なm値は、1/m+p(m)が最小になるようなm値である。p(m)は、2〜N/2の範囲内のm値を変数として、p値を求める関数である。なおp値は、ジョブが使用するコア数とメモリ容量とに依存する。そこで最適なm値を求める際には、仮のジョブが想定され、そのジョブが使用するコア数とメモリ容量とに基づいて、p(m)が求められる。例えば、ジョブキュー131内に待機中のジョブの使用するコア数の最大値と、使用するメモリ容量の最大値とが、それぞれp(m)を求める際の使用コア数と使用メモリ容量とされる。
ジョブが使用するコア数とメモリ容量を固定すると、p(m)はm値の増加関数となる。すると、「1/m+p(m)」は図15に示すグラフのように表せる。「1/m+p(m)」を示す曲線において最小の値を得るm値が、最適のm値となる。
このように定期的に最適のm値を求め、計算ノードの再グルーピングを行うことで、ジョブの依頼状況が変化しても、そのときどきに応じた適切の手法およびm値で、ジョブスケジューリングを行うことができる。
以下に、ジョブスケジューリングの処理手順について詳細に説明する。
図16は、ジョブスケジューリングの手順の一例を示すフローチャートである。
[ステップS101]ジョブスケジューリング部160は、前回のm値更新から、m値の更新周期だけ経過したか否かを判断する。m値更新周期が経過した場合、処理がステップS102に進められる。m値更新周期が経過していなければ、処理がステップS103に進められる。
[ステップS102]ジョブスケジューリング部160は、m値更新処理を行う。なお、この処理の詳細は後述する(図19参照)。m値更新処理が終了すると、処理がステップS101に進められる。
[ステップS103]ジョブスケジューリング部160は、ジョブ投入またはジョブ終了があったか否かを判断する。例えばジョブ操作部140は、端末装置20からジョブが投入されると、ジョブが投入されたことをジョブスケジューリング部160に通知する。またジョブ操作部140は、計算ノードからジョブの実行終了の通知を受け取ると、ジョブが終了したことを、ジョブスケジューリング部160に通知する。ジョブスケジューリング部160は、このようなジョブ操作部140からの通知により、ジョブ投入またはジョブ終了を認識できる。ジョブ投入またはジョブ終了があった場合、処理がステップS104に進められる。ジョブ投入またはジョブ終了がなければ、処理がステップS101に進められる。
[ステップS104]ジョブスケジューリング部160は、ジョブ投入またはジョブ終了があると、最大空き値ペア情報121と最大空き値ペアテーブル122とを更新する。例えばジョブが終了した場合、ジョブ管理部170によって、リソース情報111における、そのジョブが割り付けられていたリソースを有する計算ノードの空きコア数と空きメモリ量が更新される。ジョブスケジューリング部160は、リソース情報111を参照し、最大空き値ペア情報121における、空きコア数と空きメモリ量が更新された計算ノードが属するグループの最大空きコア数と最大空きメモリ量を更新する。さらにジョブスケジューリング部160は、最大空き値ペア情報121の変更内容に基づいて、最大空き値ペアテーブル122を更新する。例えばジョブスケジューリング部160は、変更対象のグループにおける変更前の最大空き値ペアに対応する最大空き値ペアテーブル122内の値から、1だけ減算する。またジョブスケジューリング部160は、変更対象のグループにおける変更後の最大空き値ペアに対応する最大空き値ペアテーブル122内の値に、1だけ加算する。
[ステップS105]ジョブスケジューリング部160は、ジョブキュー131に、スケジューリングを行っていないジョブが登録されているか否かを判断する。該当するジョブがあれば、処理がステップS106に進められる。該当するジョブがなければ、処理がステップS101に進められる。
[ステップS106]ジョブスケジューリング部160は、ジョブキュー131に、スケジューリングを行っていないジョブがある場合、そのジョブが使用するコア数およびメモリ容量に応じたp値を算出する。
[ステップS107]ジョブスケジューリング部160は、比較式「1/m+p<1」が満たされるかどうかを判断する。この比較式は、p値が、所定値「1−1/m」より小さいかどうかを判定する式である。比較式が満たされる場合、処理がステップS109に進められる。比較式が満たされない場合、処理がステップS108に進められる。
[ステップS108]ジョブスケジューリング部160は、比較式「1/m+p<1」が満たされない場合(p値が所定値以上の場合)、すべての計算ノードについて調査する、第1のジョブスケジューリング処理を実行する。この処理の詳細は後述する(図17参照)。その後、処理がステップS110に進められる。
[ステップS109]ジョブスケジューリング部160は、比較式「1/m+p<1」が満たされる場合(p値が所定値未満の場合)、探索対象のグループのフィルタリングを行う、第2のジョブスケジューリング処理を実行する。この処理の詳細は後述する(図18参照)。
[ステップS110]ジョブスケジューリング部160は、ステップS108,S109における割り付け結果に基づいて、最大空き値ペア情報121と最大空き値ペアテーブル122とを更新する。更新の手順は、ステップS104と同様である。その後、処理がステップS105に進められる。
次に、第1のジョブスケジューリング処理の手順について説明する。
図17は、第1のジョブスケジューリング処理の手順の一例を示すフローチャートである。
[ステップS121]ジョブスケジューリング部160は、変数iに初期値0を設定する。そしてジョブスケジューリング部160は、ステップS122の処理を、所定の終了条件が満たされるまで繰り返す(LoopA)。
[ステップS122]ジョブスケジューリング部160は、iの値が更新されるごとに、i番目の計算ノードのリソースにジョブの割り付けが可能かどうかを判断する。例えばジョブスケジューリング部160は、ノード番号がiの計算ノードの空きコア数と空きメモリ量とを、リソース情報111から取得する。次にジョブスケジューリング部160は、取得した情報と、スケジューリング対象のジョブが使用するリソース量とを比較する。そしてジョブスケジューリング部160は、i番目の計算ノードに、そのジョブが使用する分の空きリソースがあれば、i番目の計算ノードのリソースに割り付け可能であると判断する。割り付け可能であれば、LoopAを抜けて、処理がステップS124に進められる。割り付け可能でなければ、処理がステップS123に進められる。
[ステップS123]ジョブスケジューリング部160は、iの値をカウントアップする。そしてジョブスケジューリング部160は、カウントアップ後のiの値について、「iがN未満である(i<N)」という条件が満たされていれば、ステップS122の処理を繰り返す。「iがN未満である」という条件が満たされない場合、LoopAを抜けて、第1のジョブスケジューリング処理を終了する。
[ステップS124]ジョブスケジューリング部160は、スケジューリング対象のジョブを、i番目の計算ノードのリソースに割り付ける。その後、第1のジョブスケジューリング処理が終了する。
次に、第2のジョブスケジューリング処理の手順について説明する。
図18は、第2のジョブスケジューリング処理の手順の一例を示すフローチャートである。
[ステップS131]ジョブスケジューリング部160は、変数Jに初期値0を設定する。そしてジョブスケジューリング部160は、ステップS132〜S135の処理を、所定の終了条件が満たされるまで繰り返す(LoopB)。
[ステップS132]ジョブスケジューリング部160は、J番目のグループ内の計算ノードを探索対象とするか否かを判断する。例えばジョブスケジューリング部160は、グループ番号がJのグループの最大空き値ペアを、最大空き値ペア情報121から取得する。次にジョブスケジューリング部160は、取得した情報と、スケジューリング対象のジョブが使用するリソース量とを比較する。そしてジョブスケジューリング部160は、J番目のグループの最大コア数が、ジョブが使用するコア数以上であり、J番目のグループの最大空きメモリ量が、ジョブが使用するメモリ容量以上であれば、J番目のグループ内の計算ノードを探索対象と判断する。他方、ジョブスケジューリング部160は、J番目のグループの最大コア数が、ジョブが使用するコア数未満であれば、J番目のグループ内の計算ノードを探索対象外と判断する。ジョブスケジューリング部160は、J番目のグループの最大空きメモリ量が、ジョブが使用するメモリ容量未満の場合も、J番目のグループ内の計算ノードを探索対象外と判断する。J番目のグループ内の計算ノードが探索対象であれば、処理がステップS133に進められる。J番目のグループ内の計算ノードが探索対象外であれば、処理がステップS136に進められる。
[ステップS133]ジョブスケジューリング部160は、探索対象と判断したグループ内の計算ノードに、グループ内での識別番号を付与する。さらにジョブスケジューリング部160は、変数Iに初期値0を設定する。そしてジョブスケジューリング部160は、ステップS134の処理を、所定の終了条件が満たされるまで繰り返す(LoopC)。
[ステップS134]ジョブスケジューリング部160は、Iの値が更新されるごとに、J番目のグループ内のI番目の計算ノードのリソースにジョブの割り付けが可能かどうかを判断する。例えばジョブスケジューリング部160は、I番目の計算ノードの空きコア数と空きメモリ量とを、リソース情報111から取得する。次にジョブスケジューリング部160は、取得した情報と、スケジューリング対象のジョブが使用するリソース量とを比較する。そしてジョブスケジューリング部160は、I番目の計算ノードに、そのジョブが使用する分の空きリソースがあれば、I番目の計算ノードのリソースに割り付け可能であると判断する。割り付け可能であれば、LoopB,LoopCを抜けて、処理がステップS137に進められる。割り付け可能でなければ、処理がステップS135に進められる。
[ステップS135]ジョブスケジューリング部160は、Iの値をカウントアップする。そしてジョブスケジューリング部160は、カウントアップ後のIの値について、「Iがm未満である(I<m)」という条件が満たされていれば、ステップS134の処理を繰り返す。「Iがm未満である」という条件が満たされない場合、LoopCを抜けて、処理がステップS136に進められる。
[ステップS136]ジョブスケジューリング部160は、Jの値をカウントアップする。そしてジョブスケジューリング部160は、カウントアップ後のJの値について、「JがN/m未満である(J<N/m)」という条件が満たされていれば、ステップS132〜S135の処理を繰り返す。「がN/m未満である」という条件が満たされない場合、LoopBを抜けて、第2のスケジューリング処理が終了する。
次に、m値更新処理の手順について説明する。
図19は、m値更新処理の手順の一例を示すフローチャートである。
[ステップS141]ジョブスケジューリング部160は、p(m)を求める際の使用コア数と使用メモリ容量とを決定する。例えばジョブスケジューリング部160は、ジョブキュー131内で待機中のジョブにおける使用コア数とメモリ容量を統計的に処理する。統計的処理によって、ジョブスケジューリング部160は、待機中のジョブにおいて最も多い使用コア数と、待機中のジョブにおいて最も多い使用メモリ容量とを求める。そしてジョブスケジューリング部160は、最も多いパターンの使用コア数とメモリ容量との組み合わせを、(m)を算出する際のコア数とメモリ容量とに決定する。
[ステップS142]ジョブスケジューリング部160は、m値の候補を示す変数mに初期値2を設定する。そしてジョブスケジューリング部160は、ステップS142〜S147の処理を、所定の終了条件が満たされるまで繰り返す(LoopD)。
[ステップS143]ジョブスケジューリング部160は、現在のm値の時の最大空き値ペアテーブルを作成する。例えばジョブスケジューリング部160は、1グループ当たりの計算ノード数をmとして、計算ノードをグルーピングする。次にジョブスケジューリング部160は、各グループの最大空き値ペアを求める。そしてジョブスケジューリング部160は、空きコア数と空きメモリ容量との組み合わせごとに、該当する最大空き値ペアを有するグループ数をカウントし、最大空き値ペアテーブルに設定する。
[ステップS144]ジョブスケジューリング部160は、作成した最大空き値ペアテーブルに基づいて、p値(p(m))を取得する。例えばジョブスケジューリング部160は、作成した最大空き値ペアテーブルを参照し、ステップS141で決定した使用コア数以上の最大空きコア数であり、ステップS141で決定した使用メモリ容量以上の最大空きメモリ容量であるグループ数を計数する。そしてジョブスケジューリング部160は、計数した結果をグループ数(N/m)で除算し、p値とする。
[ステップS145]ジョブスケジューリング部160は、現在のm値およびp値により「1/m+p」の値を求める。そしてジョブスケジューリング部160は、新たに求めた「1/m+p」の値が、以前に求めた「1/m+p」のうちの最小値より小さいかどうかを判断する。新たに求めた「1/m+p」の値が、最小値より小さければ、処理がステップS147に進められる。新たに求めた「1/m+p」の値が、最小値以上であれば、処理がステップS146に進められる。
[ステップS146]ジョブスケジューリング部160は、新たに求めた「1/m+p」の値が、所定の閾値より大きいか否かを判断する。閾値は、例えば「1/m+p」の最小値の2倍とする。閾値より大きければ、処理がステップS149に進められる。閾値以下であれば、処理がステップS148に進められる。
図15に示すように、「1/m+p」の値は、最初はm値の増加に伴って減少するが、最小値を過ぎると、m値の増加に伴ってほぼ単調に増加する。そのため「1/m+p」の値が最小値の2倍を超えた場合、以後も単調増加するものと考えられる。よって、閾値以上の値になったら処理を打ち切ることで無駄な処理を省き、処理効率を向上させることができる。
[ステップS147]ジョブスケジューリング部160は、「1/m+p」の最小値を、新たに求めた「1/m+p」の値に更新する。またジョブスケジューリング部160は、現在のm値を、「1/m+p」の最小値を得たときのm値として記憶する。
[ステップS148]ジョブスケジューリング部160は、mの値をカウントアップする。そしてジョブスケジューリング部160は、カウントアップ後のmの値について、「mがN/2未満である(m<N/2)」という条件が満たされていれば、ステップS143〜S147の処理を繰り返す。「mがN/2未満である」という条件が満たされない場合、LoopDを抜けて、処理がステップS149に進められる。
[ステップS149]ジョブスケジューリング部160は、「1/m+p」の最小値を得たときのm値を、以後のジョブスケジューリングに適用するm値に設定する。
[ステップS150]ジョブスケジューリング部160は、1グループ当たりの計算ノード数をm台として、計算ノードのグルーピングを行う。ジョブスケジューリング部160は、リソース情報内の各計算ノードのノード番号に対応付けて、その計算ノードが属するグループのグループ番号を設定する。そしてジョブスケジューリング部160は、新たに生成されたグループに従って、最大空き値ペア情報121と最大空き値ペアテーブル122とを再作成する。その後、m値更新処理が終了する。
以上のようにして、効率的なジョブスケジューリングが可能となる。その結果、スケジューリングコストを減少させ,ジョブスケジューラの性能低下を防ぐことが可能となる。
例えば1つのジョブのスケジューリング処理当たり、1/(p+1/m)倍の高速に処理することができる。1/(p+1/m)の値は、システムの負荷が高いときにより大きな値となる。例えば、PCクラスタでは,全体で95%以上の使用率となることが多い。そのとき、p値はかなり小さい値が期待される。p値が小さい場合、高速化率「1/(p+1/m)」が大きくなり、スケジューリング処理が数倍高速化することが期待される。
以下、図20〜図22を参照して、ジョブスケジューリングのシミュレーション結果を説明する。以下の例では、1000ノードのPCクラスタにおいて、95%のリソースが使用されている状態における、ジョブの割り付け処理1回当たりのコストを、シミュレーションによって求めたものである。このシミュレーションでは、計算ノードの1ノードあたりコア数は8としている。
コアの95%が使用中であるとすると、空きコアは5%である。1000ノードの5%空きコアは、50ノード×8コア=400コアとなる。そこでシミュレートでは、1台当たりの空きコア数のパターンを1,2,3,4,5,6,7,8として、400コア分をランダムに1000ノードに振り分けている。
たメモリ量の95%が使用中であるとすると、空きメモリ量は5%である。1000ノードの5%空きメモリ量は、50ノード×100%=5000%となる(1台当たりのメモリ容量を100%としている)。空きメモリパターン:10%〜100%として5000%分をランダムに1000ノードに振り分けている。
このような条件で、以下の3つのジョブのパターンについての、ジョブスケジューリングコストについてシミュレートした。
・第1のジョブ:(使用メモリ容量:10%,使用コア数:1)
・第2のジョブ:(使用メモリ容量:50%,使用コア数:4)
・第3のジョブ:(使用メモリ容量:70%,使用コア数:6)
図20〜図22の上段には、第1〜第3のジョブをスケジューリングする際のm値の増加に伴う「p(m)+1/m」と「p(m)」との値の遷移を、折れ線グラフで示している。図20〜図22の中段には、m値の増加に伴う高速化率の遷移を、折れ線グラフで示している。高速化率は、「1/(p(m)+1/m)」である。図20〜図22の下段に示したグラフは、m値の増加に伴う高速化率の遷移を示す折れ線グラフにおける、高速化率が最大となる範囲を拡大したものである。
図20は、第1のジョブについてのシミュレーション結果を示す図である。図20に示したシミュレーション結果によれば、第1のジョブは、m値が6のときに高速化率が最大値「2.89倍」となる。
図21は、第2のジョブについてのシミュレーション結果を示す図である。図21に示したシミュレーション結果によれば、第2のジョブは、m値が10のときに高速化率が最大値「3.8倍」となる。
図22は、第3のジョブについてのシミュレーション結果を示す図である。図22に示したシミュレーション結果によれば、第3のジョブは、m値が9のときに高速化率が最大値「4.23倍」となる。
このようにシステムの処理負荷が高い場合、第2のジョブスケジューリング処理を適用することで、ジョブを割り付けることができるリソースを明らかに含んでいないグループが、探索の対象から除外(フィルタリング)される。その結果、ジョブスケジューリングの処理効率が向上する。
またシステムの負荷が少ない場合、ジョブを割り付け可能な計算ノードが容易に見つかる。このような場合には、第1のジョブスケジューリング処理を適用することで、グループごとの探索対象とするかどうかの判定などの処理を不要とし、効率的な処理を行うことができる。
さらに、定期的に全m値に対する空き最大値ペアテーブルを作成して、「1/m+p(m)」が最小になるm値を求めることで、最適なm値を得ることができる。m値の最適化を行うことで、システムの負荷状況などのジョブの実行環境に変化があっても、その実行環境に適したm値により、効率的なジョブスケジューリングを行うことができる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 ネットワーク
2a,2b,2c,・・・,2m,2n 計算ノード
3 ジョブ
10 ジョブスケジューリング装置
11 記憶部
12 グルーピング部
13 最大資源空き量判定部
14 除外部
15 探索部
16 ジョブ操作部
17 更新部

Claims (8)

  1. 複数の計算ノードが複数のグループに分けられており、前記複数のグループそれぞれについて、グループに属する計算ノードのうち、資源の空き量が最も多い計算ノードの該資源の空き量を、該グループの最大資源空き量と判定する最大資源空き量判定部と、
    前記複数のグループそれぞれの最大資源空き量の頻度分布に基づいて、最大資源空き量がジョブの資源消費量以上のグループの割合を計算し、前記割合が所定値未満の場合、前記資源消費量と、前記複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が前記資源消費量に満たないグループを、探索対象から除外し、前記割合が前記所定値以上の場合、前記資源消費量と前記複数のグループそれぞれの最大資源空き量との比較を抑止する除外部と、
    前記割合が前記所定値未満の場合、探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量が前記資源消費量以上の計算ノードを探索し、前記割合が前記所定値以上の場合、前記複数の計算ノードすべての中から、資源の空き量が前記資源消費量以上の計算ノードを探索する探索部と、
    を有するジョブスケジューリング装置。
  2. 前記最大資源空き量判定部は、資源の種別ごとに最大資源空き量を判定し、
    前記除外部は、前記ジョブの資源の種別ごとの前記資源消費量と、前記複数のグループそれぞれの資源の種別ごとの最大資源空き量とを比較し、少なくとも1つの種別の資源において、最大資源空き量が前記資源消費量に満たないグループを、探索対象から除外する、
    ことを特徴とする請求項1記載のジョブスケジューリング装置。
  3. 複数の計算ノードが複数のグループに分けられており、前記複数のグループそれぞれについて、グループに属する計算ノードのうち、資源の空き量が最も多い計算ノードの該資源の空き量を、該グループの最大資源空き量と判定する最大資源空き量判定部と、
    ジョブの資源消費量と、前記複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が前記資源消費量に満たないグループを、探索対象から除外する除外部と、
    探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量が前記資源消費量以上の計算ノードを探索する探索部と、
    前記複数のグループそれぞれの最大資源空き量の頻度分布に基づいて、最も処理を効率化できる、1グループ当たりの計算ノード数を算出し、算出された計算ノード数ごとのグループに、改めてグルーピングするグルーピング部と、
    を有するジョブスケジューリング装置。
  4. 前記グルーピング部は、1グループ当たりの計算ノード数の候補値を複数生成し、生成された候補値それぞれについて、該候補値を1グループ当たりの計算ノード数としたときの処理の効率化の度合いを計算し、最も処理を効率化できる候補値を、1グループ当たりの計算ノード数とする、
    ことを特徴とする請求項記載のジョブスケジューリング装置。
  5. 前記グルーピング部は、値の小さい候補値から順に処理の効率化の度合いを算出し、候補値の上昇に伴い処理の効率化の度合いが低下する傾向になると、効率化の度合いの算出を抑止し、効率化の度合いを既に算出した候補値のなかで、最も処理を効率化できる候補値を、1グループ当たりの計算ノード数とする、
    ことを特徴とする請求項記載のジョブスケジューリング装置。
  6. 前記複数の計算ノードそれぞれの資源の空き量を記憶する記憶部と、
    資源の空き量が前記資源消費量以上の計算ノードに対して、前記ジョブの実行を指示すると共に、該計算ノードによる前記ジョブの実行終了を検知するジョブ操作部と、
    該計算ノードへの前記ジョブの実行指示または該計算ノードによる前記ジョブの実行終了に伴い、前記記憶部に記憶された該計算ノードの資源の空き量を更新する更新部と、
    をさらに有することを特徴とする請求項1乃至のいずれかに記載のジョブスケジューリング装置。
  7. コンピュータが、
    複数の計算ノードを複数のグループに分け、
    前記複数のグループそれぞれについて、グループに属する計算ノードのうち、資源の空き量が最も多い計算ノードの該資源の空き量を、該グループの最大資源空き量と判定し、
    前記複数のグループそれぞれの最大資源空き量の頻度分布に基づいて、最大資源空き量がジョブの資源消費量以上のグループの割合を計算し、
    前記割合が所定値未満の場合、前記資源消費量と、前記複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が前記資源消費量に満たないグループを、探索対象から除外し、前記割合が前記所定値以上の場合、前記資源消費量と前記複数のグループそれぞれの最大資源空き量との比較を抑止し、
    前記割合が前記所定値未満の場合、探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量が前記資源消費量以上の計算ノードを探索し、前記割合が前記所定値以上の場合、前記複数の計算ノードすべての中から、資源の空き量が前記資源消費量以上の計算ノードを探索する、
    ジョブスケジューリング方法。
  8. コンピュータに、
    複数の計算ノードを複数のグループに分け、
    前記複数のグループそれぞれについて、グループに属する計算ノードのうち、資源の空き量が最も多い計算ノードの該資源の空き量を、該グループの最大資源空き量と判定し、
    前記複数のグループそれぞれの最大資源空き量の頻度分布に基づいて、最大資源空き量がジョブの資源消費量以上のグループの割合を計算し、
    前記割合が所定値未満の場合、前記資源消費量と、前記複数のグループそれぞれの最大資源空き量とを比較し、最大資源空き量が前記資源消費量に満たないグループを、探索対象から除外し、前記割合が前記所定値以上の場合、前記資源消費量と前記複数のグループそれぞれの最大資源空き量との比較を抑止し、
    前記割合が前記所定値未満の場合、探索対象から除外されていないグループに属する計算ノードの中から、資源の空き量が前記資源消費量以上の計算ノードを探索し、前記割合が前記所定値以上の場合、前記複数の計算ノードすべての中から、資源の空き量が前記資源消費量以上の計算ノードを探索する、
    処理を実行させるジョブスケジューリングプログラム。

JP2014019227A 2014-02-04 2014-02-04 ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム Expired - Fee Related JP6241300B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014019227A JP6241300B2 (ja) 2014-02-04 2014-02-04 ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
US14/592,955 US9483319B2 (en) 2014-02-04 2015-01-09 Job scheduling apparatus and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014019227A JP6241300B2 (ja) 2014-02-04 2014-02-04 ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム

Publications (2)

Publication Number Publication Date
JP2015146154A JP2015146154A (ja) 2015-08-13
JP6241300B2 true JP6241300B2 (ja) 2017-12-06

Family

ID=53754898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014019227A Expired - Fee Related JP6241300B2 (ja) 2014-02-04 2014-02-04 ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム

Country Status (2)

Country Link
US (1) US9483319B2 (ja)
JP (1) JP6241300B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296396B2 (en) * 2015-05-11 2019-05-21 Bluedata Software, Inc. Allocation of job processes to host computing systems based on accommodation data
US10509683B2 (en) * 2015-09-25 2019-12-17 Microsoft Technology Licensing, Llc Modeling resource usage for a job
US11029998B2 (en) * 2016-06-03 2021-06-08 International Business Machines Corporation Grouping of tasks for distribution among processing entities
US10691502B2 (en) 2016-06-03 2020-06-23 International Business Machines Corporation Task queuing and dispatching mechanisms in a computational device
US10185593B2 (en) 2016-06-03 2019-01-22 International Business Machines Corporation Balancing categorized task queues in a plurality of processing entities of a computational device
CN106200612B (zh) * 2016-07-07 2019-01-22 百度在线网络技术(北京)有限公司 用于测试车辆的方法和系统
EP3523719A1 (en) * 2016-10-05 2019-08-14 Telefonaktiebolaget LM Ericsson (PUBL) Controlling resource allocation in a data center
JP6796994B2 (ja) * 2016-10-25 2020-12-09 株式会社日立製作所 情報処理システム
KR20180057036A (ko) * 2016-11-21 2018-05-30 삼성전자주식회사 효율적인 리소스 관리를 위한 전자 장치 및 이의 방법
US10592280B2 (en) * 2016-11-23 2020-03-17 Amazon Technologies, Inc. Resource allocation and scheduling for batch jobs
JP6855960B2 (ja) * 2017-06-29 2021-04-07 富士通株式会社 並列処理装置、および並列処理装置の保守方法
US11150944B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Balancing mechanisms in ordered lists of dispatch queues in a computational device
US10949254B2 (en) 2018-09-28 2021-03-16 Atlassian Pty Ltd. Systems and methods for scheduling tasks
CN109947565B (zh) * 2019-03-08 2021-10-15 北京百度网讯科技有限公司 用于分配计算任务的方法和装置
CN114391137A (zh) * 2019-06-12 2022-04-22 纽约大学阿布扎比公司 用于多核处理系统中的域分解感知处理器分配的系统、方法和计算机可存取介质
CN112148497A (zh) * 2020-10-12 2020-12-29 江苏云柜网络技术有限公司 一种磁盘资源管理方法、装置及电子设备
JP2022088762A (ja) * 2020-12-03 2022-06-15 富士通株式会社 情報処理装置およびジョブスケジューリング方法
JP2023032163A (ja) * 2021-08-26 2023-03-09 富士通株式会社 情報処理装置およびジョブスケジューリング方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3541212B2 (ja) 1993-12-28 2004-07-07 富士通株式会社 プロセッサ割当て装置
US5671361A (en) * 1995-09-28 1997-09-23 University Of Central Florida Priority rule search technique for resource constrained project scheduling
JPH09305479A (ja) * 1996-05-13 1997-11-28 Nec Corp 記憶装置の動的記憶領域管理装置
US6621505B1 (en) * 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US7171375B2 (en) * 2000-04-17 2007-01-30 4Sight Technologies, Inc. Method and system for enterprise wide production scheduling
US7051328B2 (en) * 2001-01-26 2006-05-23 Xerox Corporation Production server architecture and methods for automated control of production document management
US6691109B2 (en) * 2001-03-22 2004-02-10 Turbo Worx, Inc. Method and apparatus for high-performance sequence comparison
CA2455494A1 (en) * 2001-09-13 2003-03-20 British Telecommunications Public Limited Company Resource management method and apparatus
JP2005031771A (ja) * 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
US9015324B2 (en) * 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
JP5051135B2 (ja) * 2006-11-06 2012-10-17 日本電気株式会社 資源情報収集装置、資源情報収集方法、プログラム、および、収集スケジュール生成装置
US7756888B2 (en) * 2007-07-03 2010-07-13 Oracle America, Inc. Method and apparatus for providing heterogeneous resources for client systems
US8578381B2 (en) * 2007-10-26 2013-11-05 Oracle America, Inc. Apparatus, system and method for rapid resource scheduling in a compute farm
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
US8935702B2 (en) * 2009-09-04 2015-01-13 International Business Machines Corporation Resource optimization for parallel data integration
CN102346690B (zh) * 2010-07-30 2014-12-24 国际商业机器公司 资源分配方法和装置
JP5737057B2 (ja) * 2011-08-19 2015-06-17 富士通株式会社 プログラム、ジョブスケジューリング方法、および情報処理装置
CN103092683B (zh) * 2011-11-07 2017-12-26 Sap欧洲公司 用于数据分析的基于启发式的调度

Also Published As

Publication number Publication date
JP2015146154A (ja) 2015-08-13
US20150220370A1 (en) 2015-08-06
US9483319B2 (en) 2016-11-01

Similar Documents

Publication Publication Date Title
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
EP3129880B1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US9092266B2 (en) Scalable scheduling for distributed data processing
JP6191691B2 (ja) 異常検出装置、制御方法、及びプログラム
KR20150084098A (ko) 스트림 데이터 분산 처리 시스템 및 그 방법
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
CN111177984B (zh) 电子设计自动化中异构计算单元的资源利用
JP2016042284A (ja) 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム
CN104331331A (zh) 任务数目和性能感知的可重构多核处理器的资源分配方法
JP6237170B2 (ja) 割当判定装置、制御方法、及びプログラム
US10754547B2 (en) Apparatus for managing disaggregated memory and method thereof
US10203988B2 (en) Adaptive parallelism of task execution on machines with accelerators
CN111930516B (zh) 一种负载均衡方法及相关装置
CN112527509A (zh) 一种资源分配方法、装置、电子设备及存储介质
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
CN106104527B (zh) 流式查询资源控制
CN115658311A (zh) 一种资源的调度方法、装置、设备和介质
US10394615B2 (en) Information processing apparatus and job management method
JP6969268B2 (ja) 計算機およびcpuコア割当方法
KR102638531B1 (ko) 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법
US20220179687A1 (en) Information processing apparatus and job scheduling method
Yang et al. New YARN Non-Exclusive Resource Management Scheme through Opportunistic Idle Resource Assignment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170911

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171023

R150 Certificate of patent or registration of utility model

Ref document number: 6241300

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees