JP6666555B2 - 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム - Google Patents

情報処理装置、ジョブ投入方法、およびジョブ投入プログラム Download PDF

Info

Publication number
JP6666555B2
JP6666555B2 JP2016103852A JP2016103852A JP6666555B2 JP 6666555 B2 JP6666555 B2 JP 6666555B2 JP 2016103852 A JP2016103852 A JP 2016103852A JP 2016103852 A JP2016103852 A JP 2016103852A JP 6666555 B2 JP6666555 B2 JP 6666555B2
Authority
JP
Japan
Prior art keywords
job
execution
time
parallelism
job execution
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.)
Active
Application number
JP2016103852A
Other languages
English (en)
Other versions
JP2017211788A (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 JP2016103852A priority Critical patent/JP6666555B2/ja
Priority to US15/470,986 priority patent/US9971630B2/en
Publication of JP2017211788A publication Critical patent/JP2017211788A/ja
Application granted granted Critical
Publication of JP6666555B2 publication Critical patent/JP6666555B2/ja
Active 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

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)

Description

本発明は、情報処理装置、ジョブ投入方法、およびジョブ投入プログラムに関する。
HPC(High Performance Computing)には、ジョブを実行する複数の計算ノードと、計算ノードへのジョブの実行指示を管理する管理ノードとが含まれる。ジョブの実行要求が入力されると、管理ノード内のスケジューラジョブの実行スケジュールが決定され、バッチ処理として実行される。
HPCにおけるジョブスケジューリングでは、ジョブがバッチ処理で実行される。そのため、ユーザが実行したいジョブが即座に実行されるとは限らない。例えばジョブの実行要求は、キューにキューイングされる。原則として、キューイングされた時刻の早いジョブから優先してジョブが実行されるが、各ジョブの並列度に応じて、ジョブの実行順が入れ替わることもある。ジョブの並列度とは、ジョブを並列実行する計算ノードの数である。例えば並列度が高いジョブは、ジョブの並列度に応じた数の計算ノードが利用可能となるまでジョブの実行が待たされ、その間、後にキューイングされた並列度の低いジョブが先に実行されることがある。
なおジョブのスケジューリングには、様々な技術が用いられている。例えば、予め登録されたスケジュールを変更してジョブシナリオを実行させる場合に、実用的な実行予定時間帯を求めるジョブスケジュール変更支援システムが考えられている。またジョブスケジュールが失敗する可能性を削減することを可能とし、ジョブスケジュールの最適化の度合いを把握させることが可能な表示を行うジョブスケジューリング方法もある。さらにパラメータ空間を探索するマルチジョブシステムにおいて探索時間を短縮する並列計算制御装置もある。
特開2010−231694号公報 特開2005−11023号公報 特開2013−140490号公報
HPCで実行するジョブには、様々な種類のジョブがある。その中に、本実行前のテスト実行のように何度も試行を繰り返し実行されるジョブがある。このようなジョブは、ターンアラウンドタイムをできるだけ早くすることが重要である。ターンアラウンドタイムは、実行要求を入力してから実行結果の出力が完了するまでの時間である。
ジョブのターンアラウンドタイムは、ジョブの並列度によって大きく変わる。例えば並列度が低いとジョブの実行に長い時間を要するが、ジョブの実行待ち時間は短い傾向にある。それに対して、並列度が高いとジョブの実行に要する時間は短くなるが、ジョブの実行待ち時間が長くなる傾向にある。ターンアラウンドタイムを最短にできる並列度がどの程度なのかは、ジョブを投入するキューにおける、ジョブの投入先の計算ノードのうちの、ジョブを実行していない空き計算ノードの数に依存する。例えば、実行待ちのジョブに対して、ジョブを実行する計算ノードの数に余裕があるキューであれば、並列度を高めることでターンアラウンドタイムを短くできる。実行待ちのジョブに対して、ジョブを実行する計算ノードの数に余裕のないキューの場合、並列度を低くして早期にジョブを実行開始できるようにした方が、ターンアラウンドタイムが短くなる可能性がある。
このように、ターンアラウンドタイムを短くするためにどの程度の並列度が適切なのかは、キューにおける実行待ちのジョブの状況や、計算ノードの資源量に依存する。しかし、キューにキューイングされているジョブの状況は、時々刻々変化する。そのため、ターンアラウンドタイムを短縮させるために、並列度をどの程度にして、どのキューにキューイングするのが適切なのかといったジョブの実行条件を、ユーザが適切に判断するのは困難である。
1つの側面では、本発明は、適切なジョブ実行条件を自動で設定できるようにすることを目的とする。
1つの案では、開始時刻算出手段、実行時間算出手段、終了時刻算出手段、および登録手段を有する情報処理装置が提供される。
開始時刻算出手段は、少なくとも1つのキューそれぞれに登録されたジョブ実行要求の実行スケジュールを示すスケジュール情報を取得し、少なくとも1つのキューのうちの1つを登録先キューとし、複数の並列度のうちの1つを指定並列度とするジョブ実行条件を複数生成し、スケジュール情報に基づいて、ジョブ実行条件それぞれについて、指定並列度での新規ジョブの実行を要求する新規ジョブ実行要求を登録先キューに登録した場合の、新規ジョブの実行開始時刻の予測値である予測開始時刻を算出する。実行時間算出手段は、新規ジョブを所定の並列度で実行したときの新規ジョブの実行時間に基づいて、複数の並列度それぞれに応じた新規ジョブの実行時間を算出する。終了時刻算出手段は、ジョブ実行条件それぞれについて、ジョブ実行条件の予測開始時刻と、ジョブ実行条件に示される指定並列度での新規ジョブの実行時間とに基づいて、ジョブ実行条件に示される指定並列度を指定した新規ジョブ実行要求を、ジョブ実行条件に示される登録先キューに登録した場合の、新規ジョブの実行終了時刻の予測値である予測終了時刻を算出する。登録手段は、ジョブ実行条件のうちの実行終了時刻が最先となる最先ジョブ実行条件に示される指定並列度で新規ジョブを実行させる新規ジョブ実行要求を、最先ジョブ実行条件に示される登録先キューに登録する。
1態様によれば、適切なジョブ実行条件を自動で設定できる。
第1の実施の形態に係るシステムの構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 端末装置のハードウェアの一構成例を示す図である。 並列度が低い場合のジョブのスケジューリング例を示す図である。 並列度が高い場合のジョブのスケジューリング例を示す図である。 複数のキューそれぞれが利用できる計算ノードの例を示す図である。 ジョブの再投入例を示す図である。 端末装置と管理ノードとの機能を示すブロック図である。 ジョブ投入要求入力画面の一例を示す図である。 ジョブ投入処理の手順の一例を示すフローチャートである。 空きノード数予測処理の手順の一例を示すフローチャートである。 スケジュール情報取得処理の一例を示す図である。 グラフの第1の例を示す図である。 グラフの第2の例を示す図である。 空き計算ノード数の予測例を示す図である。 重複して利用される計算ノードがある場合の例を示す図である。 重複して利用される計算ノードの利用状況の反映例を示す図である。 空き計算ノードで実行できる並列度と実行可能な時間帯との検出例を示す図である。 利用可能資源リストの一例を示す図である。 並列度と経過時間制限値との関係例を示す図である。 利用可能資源のソート例を示す図である。 ジョブスクリプト更新例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るシステムの構成例を示す図である。情報処理装置10は、計算ノード2a,2b,・・・,3a,3b,・・・に実行させるジョブを管理する管理ノード1に接続されている。情報処理装置10は、ユーザからの指示に応じて、管理ノード1にジョブを投入する。ジョブの投入とは、管理ノード1のキューを指定して、ジョブの実行要求を管理ノード1に送信する処理である。
管理ノード1は、ジョブの実行要求を登録するキューを複数有している。キュー#1に登録されたジョブの実行要求は、計算ノード2a,2b,・・・で実行される。キュー#2に登録されたジョブの実行要求は、計算ノード3a,3b,・・・で実行される。管理ノード1では、キューごとにジョブの実行開始時刻のスケジューリングを行う。
計算ノード2a,2b,・・・,3a,3b,・・・でジョブを実行させようとするユーザは、情報処理装置10に対して、実行するジョブと、そのジョブの所定の並列度での実行時間とを入力する。すると情報処理装置10は、ターンアラウンドタイム(実行要求を入力してから結果が出力されるまでの時間)が最短となるようなジョブ実行条件で、管理ノード1にジョブを投入する。ジョブ実行条件には、例えばジョブの並列度と、登録先のキューとが含まれる。このようなジョブの投入処理を実施するため、情報処理装置10は、開始時刻算出手段11、実行時間算出手段12、終了時刻算出手段13、および登録手段14を有する。
開始時刻算出手段11は、少なくとも1つのキューそれぞれに登録されたジョブ実行要求の実行スケジュールを示すスケジュール情報4a,4bを、管理ノード1から取得する。次に開始時刻算出手段11は、少なくとも1つのキューのうちの1つを登録先キューとし、複数の並列度のうちの1つを指定並列度とするジョブ実行条件を複数生成する。さらに開始時刻算出手段11は、スケジュール情報4a,4bに基づいて、ジョブ実行条件それぞれについて、予測開始時刻を算出する。予測開始時刻は、指定並列度での新規ジョブの実行を要求する新規ジョブ実行要求を登録先キューに登録した場合の、新規ジョブの実行開始時刻の予測値である。
例えば開始時刻算出手段11は、ジョブ実行条件に示される登録先キューに蓄積されたジョブ実行要求を実行する計算ノード群のうちの、ジョブを実行していない空き計算ノードの数の時間遷移を求める。開始時刻算出手段11は、時間遷移において、ジョブ実行条件に示される指定並列度に応じた数の空き計算ノードが存在する利用可能期間の最先の時刻を、ジョブ実行条件の予測開始時刻とする。
また、開始時刻算出手段11は、ジョブ実行条件に示される登録先キューにおける時間遷移において、利用可能期間の長さを示す利用可能時間を算出することもできる。
実行時間算出手段12は、新規ジョブを所定の並列度で実行したときの新規ジョブの実行時間に基づいて、複数の並列度それぞれに応じた新規ジョブの実行時間を算出する。例えば実行時間算出手段12は、ユーザが入力した所定の並列度で実行したときの新規ジョブの実行時間を基準として、並列度が上がるほど実行時間が短くなり、並列度が下がるほど実行時間が長くなるように、複数の並列度それぞれでの実行時間を算出する。
終了時刻算出手段13は、ジョブ実行条件それぞれについて、ジョブ実行条件の予測開始時刻と、ジョブ実行条件に示される指定並列度での新規ジョブの実行時間とに基づいて、予測終了時刻を算出する。予測終了時刻は、ジョブ実行条件に示される指定並列度を指定した新規ジョブ実行要求を、ジョブ実行条件に示される登録先キューに登録した場合の、新規ジョブの実行終了時刻の予測値である。終了時刻算出手段13は、例えば、予測終了時刻の早い順にジョブ実行条件をソートする。
なお終了時刻算出手段13は、ジョブ実行条件に応じて算出された利用可能時間が、ジョブ実行条件に示される指定並列度の実行時間未満の場合、ジョブ実行条件の予測終了時刻の算出を抑止する。予測終了時刻の算出が抑止されたジョブ実行条件は、登録手段14によるジョブ登録の際のジョブ実行条件としては利用されない。
登録手段14は、ジョブ実行条件のうちの実行終了時刻が最先となる最先ジョブ実行条件に示される指定並列度で新規ジョブを実行させる新規ジョブ実行要求を、最先ジョブ実行条件に示される登録先キューに登録する。なお新規ジョブ実行要求には、例えばジョブが計算ノードを占有する制限時間の指定が含まれる。この制限時間の値は、ジョブの並列度に応じて、実行時間算出手段12が算出した実行時間と同じ値となる。
また、登録手段14は、最先ジョブ実行条件に従って登録した新規ジョブ実行要求の実行スケジュールを、管理ノード1から取得する。次に登録手段14は、取得した実行スケジュールに示される新規ジョブの実行開始時刻を示す実行開始予定時刻に、最先ジョブ実行条件に示される指定並列度での新規ジョブの実行時間を加算した終了予定時刻を求める。そして登録手段14は、終了予定時刻と、最先ジョブ実行条件以外の他のジョブ実行条件の予測終了時刻とを比較する。終了予定時刻が、他のジョブ実行条件の予測終了時刻よりも遅い場合、登録手段14は、最先ジョブ実行条件に従って登録した新規ジョブ実行要求をキャンセルする。そして登録手段14は、他のジョブ実行条件に示される指定並列度で新規ジョブを実行させる新規ジョブ再実行要求を、他のジョブ実行条件に示される登録先キューに登録する。
このようなシステムによれば、管理ノード1におけるキューごとのジョブの実行スケジュールに基づいて、開始時刻算出手段11により、並列度と登録先キューとを示すジョブ実行条件ごとの予測開始時刻が算出される。またユーザから入力された所定の並列度でのジョブの実行時間に基づいて、実行時間算出手段12により、複数の並列度それぞれでのジョブの実行時間が算出される。次に、各ジョブ実行条件に対応する予測開始時刻と実行時間とに基づいて、終了時刻算出手段13により、ジョブ実行条件の予測終了時刻が算出される。この予測終了時刻は、ジョブのターンアラウンドタイムの予測値となる。そして、登録手段14により、予測終了時刻が最先のジョブ実行条件に従って、管理ノード1にジョブが投入される。図1の例では、並列度「4」を指定したジョブの実行要求が、キュー#1に対して登録されている。
管理ノード1では、ジョブの実行要求が登録されると、そのジョブの実行開始時刻をスケジューリングする。スケジューリングのアルゴリズムはキューごとに異なり、計算ノードの空き状況以外にも、様々な条件を考慮してスケジュールが行われる。そのため、ジョブの実行要求で指定されている並列度の数に応じた空き計算ノードが存在していても、そのジョブがすぐに実行されない場合もあり得る。そこで、管理ノード1は、スケジューリング後に、キューに登録されたジョブの実行要求の、スケジュール上での実行開始時刻を示す開始予定時刻を、情報処理装置10に送信する。すると情報処理装置10では、登録手段14により、ジョブの終了予定時刻が算出される。そして、終了予定時刻よりも早い予測終了時刻が得られたジョブ実行条件があるか否かが判断される。
図1の例では、終了時刻算出手段13のソート順で1番目のジョブ実行条件でジョブの実行要求を登録したときの終了予定時刻「12:45」よりも、2番目のジョブ実行条件の予測終了時刻「12:42」の方が早い。このように、他のジョブ実行条件の予測終了時刻の方が早い場合、先に登録したジョブの実行要求がキャンセルされる。例えば登録手段14は、管理ノード1に対して、ジョブの実行要求のキャンセルの指示を送信する。その指示に応じて、管理ノード1は、該当するジョブの実行要求をキューから削除する。そして、他のジョブ実行条件に従ったジョブの実行要求が、管理ノード1に投入される。例えば並列度「8」を指定したジョブの実行要求が、キュー#2に登録される。
このようにして、ユーザが、所定の並列度でのジョブの実行時間(例えば1並列度でのジョブの実行時間)の指定を含めて、実行するジョブを情報処理装置10に入力するだけで、ターンアラウンドタイムが最適となるジョブ実行条件が自動で決定される。そして決定されたジョブ実行条件に従ったジョブの実行要求が、管理ノード1に送信される。その結果、例えば、テスト実行のように、繰り返し実行するジョブを、効率的に実行することができる。
しかも、実際のスケジュール結果が、予測通りかどうかが確認され、終了予定時刻が予測より遅くなり、他のジョブ実行条件の方がターンアラウンドタイムを短くできる場合、ジョブの実行要求の再投入が行われる。これにより、管理ノード1におけるジョブのスケジューリングアルゴリズムの詳細が不明であっても、適切なジョブ実行条件でジョブを実行させることができる。
なお、開始時刻算出手段11、実行時間算出手段12、終了時刻算出手段13、および登録手段14は、例えば情報処理装置10が有するプロセッサにより実現することができる。また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。
図2は、第2の実施の形態のシステム構成例を示す図である。ネットワーク20を介して、複数の計算ノード31,32,・・・、管理ノード200、および端末装置100が接続されている。複数の計算ノード31,32,・・・は、ジョブを実行するコンピュータである。管理ノード200は、複数の計算ノード31,32,・・・に対してジョブの実行を指示するコンピュータである。端末装置100は、実行させるジョブを管理ノード200に投入するコンピュータである。
図3は、端末装置のハードウェアの一構成例を示す図である。端末装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、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に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記憶媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置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は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、計算ノード31,32,・・・や管理ノード200も、端末装置100と同様の構成のハードウェアで実現できる。さらに、第1の実施の形態に示した情報処理装置10も、図3に示した端末装置100と同様のハードウェアにより実現できる。
端末装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。端末装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、端末装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また端末装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、HPCにおけるバッチ処理のスケジューリングについて説明する。HPCでは、ユーザは端末装置100を用いて管理ノード200にジョブを投入する。管理ノード200は、計算ノードの空き状態を考慮して、ジョブを計算ノードに割り当てる。計算ノードの空き状態とは、その計算ノードがジョブを実行していない状態である。そして、管理ノード200は、割り当て先の計算ノードに、ジョブを実行させる。
ジョブを割り当てる計算ノードの台数は、ジョブ投入時に指定される並列度に基づいて決定される。ジョブの並列度が高いほど、そのジョブの実行時間が短くて済む。ただし、ジョブの並列度が高い場合、並列度に応じた数の計算ノードが空き状態となるまで、ジョブの実行が待たされる場合がある。以下、図4と図5を参照して、並列度に応じた、ジョブの割り当て状況の違いについて説明する。
図4は、並列度が低い場合のジョブのスケジューリング例を示す図である。図4の例では、ユーザは、端末装置100を用い、管理ノード200に対して並列度「4」のジョブを新たに投入している。このとき、空き計算ノードが4台あるため、新たに投入されたジョブが4台の計算ノードに割り当てられる。そして管理ノード200は、割り当て先の計算ノードに対して、新たに投入されたジョブの実行を指示する。
図5は、並列度が高い場合のジョブのスケジューリング例を示す図である。図5の例では、ユーザは、端末装置100を用い、管理ノード200に対して並列度「8」のジョブを新たに投入している。このとき、空き計算ノードが4台しかない。そのため、すぐにはジョブを計算ノードに割り当てることができず、ジョブは実行待ち状態としてキューに蓄積される。
このように、空き計算ノードが存在していても、並列度が高いジョブは、計算ノードの資源割り当てを後回しにされることがある。なお、計算ノードが24台空いている場合であっても、20並列のジョブなら、スケジューラにおいて計算ノードを割り当てられるとは限らない。例えば、重要度が高いジョブの緊急実行に備え、空き計算ノード数が少なくなると、重要度の低いジョブへの資源割り当てを抑止するようなスケジューラもあり得る。すなわち、ジョブへの計算ノードの割り当てが行われるか否かは、単純に空き計算ノード数のみで決まるわけではない。
また管理ノード200では、複数のキューを設けることができる。キューは、例えば利用できる計算ノードが異なる。また、キューごとに、ジョブに計算ノードを割り当てるアルゴリズムが異なる。
図6は、複数のキューそれぞれが利用できる計算ノードの例を示す図である。例えば、キュー#1は、24台の計算ノードを利用できる。キュー#2は、36台の計算ノードを利用できる。キュー#1で利用できる計算ノードのうち、12台はキュー#2でも利用できる。キュー#3は、すべての計算ノードを利用できる。
このように、複数のキューがある場合、キューごとに利用できる計算ノードが異なる。利用できる計算ノードの違いにより、ジョブをどのキューにキューイングするのかによって、そのジョブのターンアラウンドタイムも異なってくる。なお、どのキューにジョブを投入するのかは、管理ノード200へのジョブ投入時に、端末装置100から指定できる。すなわち、キューイング先のキューを適切に選択することで、ターンアラウンドタイムを短縮することができる。
なお、キューごとに、資源割り当てのアルゴリズムが異なることから、どのキューに投入すればターンアラウンドが最短となるのかを、正確に予測するのは困難である。そこで第2の実施の形態では、投入したジョブが、予想通り実行されるかどうかを確認し、予想よりも遅く実行が開始されるようにスケジューリングされた場合、投入したジョブをキャンセルし、並列度やキューを変更して、ジョブの再投入を行う。
図7は、ジョブの再投入例を示す図である。最初に、端末装置100から管理ノード200へ、キュー#1をキューイング先とする並列度「4」のジョブを投入したものとする。管理ノード200では、投入されたジョブをキュー#1にキューイングし、実行スケジュールを決定する。そして管理ノード200は、投入されたジョブの開始予定時刻と実行時間制限値とを含む情報を、投入結果として端末装置100に通知する。
端末装置100では、投入結果に基づいてジョブの終了予定時刻を求める。そして端末装置100は、ジョブの終了予定時刻がジョブ投入前に予想していた時刻より遅い場合、ジョブの並列度や投入先のキューなどのパラメータの変更を検討する。パラメータを変更した方がジョブの終了予定時刻が早くなる可能性があるなら、端末装置100は、先に投入したジョブをキャンセルし、並列度または投入先のキューを変更したジョブを再投入する。
このように端末装置100において適切なパラメータを設定してジョブを投入することで、ジョブのターンアラウンドタイムの短縮ができる。どのような値のパラメータが適切なのかは、空き計算ノード数などに応じて、端末装置100が決定する。
図8は、端末装置と管理ノードとの機能を示すブロック図である。端末装置100は、ジョブ投入要求受け付け部110と、ジョブ投入部120とを有する。ジョブ投入要求受け付け部110は、投入するジョブに関する情報の入力を受け付けるGUI(Graphical User Interface)である。ジョブ投入要求受け付け部110は、例えば最大並列数や1並列で実行した場合の経過時間制限値の入力を受け付ける。経過時間制限値は、そのジョブに許容される実行時間の最大値である。経過時間制限値は、第1の実施の形態に示した実行時間の一例である。
ジョブ投入部120は、ジョブ投入要求受け付け部110が受け付けたジョブ投入要求に基づいて、そのジョブのターンアラウンドタイムを最短にするパラメータを算出する。例えばジョブ投入部120は、管理ノード200からキューに登録されたジョブの実行スケジュールを示すスケジュール情報を取得する。次にジョブ投入部120は、スケジュール情報に基づいて、キューごとに、そのキューで利用できる計算ノードのジョブの実行状況と実行予定とを確認する。キューの状態に基づいて、ジョブ投入部120は、最も早くジョブを終了させることができる並列度、および投入先のキューを、パラメータ値として決定する。そして、ジョブ投入部120は、算出したパラメータ値を設定したジョブを、管理ノード200に投入する。またジョブ投入部120は、投入したジョブの実行スケジュールの結果が、予定した時刻よりも実行終了が遅れることが判明すると、そのジョブをキャンセルし、パラメータ値を変更してジョブを再投入する。
なお、ジョブ投入部120は、図1に示した情報処理装置10が有する開始時刻算出手段11、実行時間算出手段12、終了時刻算出手段13、および登録手段14を包含する機能の一例である。
管理ノード200は、ジョブマネージャ210を有する。ジョブマネージャ210は、計算ノードに実行させるジョブを管理する。ジョブマネージャ210は、ジョブ投入受け付け部211、スケジューラ212〜214、キュー215〜217、実行指示部218、およびスケジュール情報提供部219を有する。
ジョブ投入受け付け部211は、端末装置100からのジョブの投入を受け付ける。ジョブ投入受け付け部211は、ジョブ投入時に指定されたキューを管理するスケジューラに、投入されたジョブの実行を要求するジョブ実行要求を送信する。
スケジューラ212〜214は、受信したジョブ実行要求を、対応するキュー215〜217にキューイングする。スケジューラ212〜214は、ジョブ実行要求をキューイングする際、そのジョブに対して計算ノードを割り当て、ジョブの実行を開始する開始予定時刻を決定する。そしてスケジューラ212〜214は、ジョブ実行要求を、キュー215〜217にキューイングする。キューイングしたジョブ実行要求には、割り当てられた計算ノードの識別子と、開始予定時刻が付与される。
キュー215〜217は、実行待ちのジョブ実行要求を蓄積するキューである。
実行指示部218は、ジョブの開始予定時刻になると、そのジョブ実行要求をキュー215〜217から取り出し、そのジョブに割り当てられた計算ノードに対してそのジョブ実行要求を送信する。
スケジュール情報提供部219は、キュー215〜217に登録されているジョブ実行要求に関するスケジュール情報を、端末装置100に送信する。例えばスケジュール情報提供部219は、端末装置100のジョブ投入部120からスケジュール情報取得要求を受信すると、各キュー215〜217からスケジュール情報を収集し、そのスケジュール情報をジョブ投入部120に送信する。
なお、図8に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図8に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、ジョブ投入要求受け付け部110におけるGUIの表示画面について説明する。例えばジョブ投入要求受け付け部110は、最大並列度などの値を入力するためのジョブ投入要求入力画面をモニタ21に表示する。
図9は、ジョブ投入要求入力画面の一例を示す図である。ジョブ投入要求入力画面40には、最大並列度の入力部41、1並列時の経過時間制限値の入力部42、ジョブスクリプトの入力部43、および実行ボタン44が設けられている。
入力部41には、投入するジョブの最大並列度を示す数値が入力される。ユーザは、入力部41に数値を入力するか、右側に表示されたスライダーを操作して、入力部41内の数値を変更する。
入力部42には、ジョブを1並列で実行したとき(並列化されないとき)の、ジョブの経過時間制限値が入力される。ユーザは、入力部42に数値を入力するか、右側に表示されたスライダーを操作して、入力部42内の数値を変更する。
入力部43は、ジョブスクリプトの識別子(パスとファイル名)を入力するテキストボックスである。ジョブスクリプトは、投入するジョブにおける実行内容が記述されたスクリプト形式のプログラムである。ジョブスクリプトには、実行するジョブの並列度や、経過時間制限値などの情報が含まれる。ユーザは、入力部43に、投入するジョブに対応するジョブスクリプトの識別子を入力する。
実行ボタン44は、ジョブ投入要求入力画面40に入力された内容でのジョブ投入要求の入力を指示するボタンである。実行ボタン44が押下されると、ジョブ投入要求受け付け部110が、入力された最大並列度、経過時間制限値、およびジョブスクリプトの識別子を含むジョブ投入要求を、ジョブ投入部120に送信する。
このようにジョブ投入の際、ユーザは、GUI画面に簡単な入力を行うだけでよい。ジョブ投入要求を受信したジョブ投入部120は、ジョブ投入処理を実行する。
図10は、ジョブ投入処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS101]ジョブ投入部120は、キューの状態を確認する。例えばジョブ投入部120は、管理ノード200に対して、スケジュール情報取得要求を送信する。ジョブ投入部120は、スケジュール情報取得要求に応じて管理ノード200から送信されたスケジュール情報を取得する。
[ステップS102]ジョブ投入部120は、スケジュール情報に基づいて、空きノード数予測処理を行う。空きノード数予測処理により、キューごとに、空きノード数の時間推移を示すグラフが生成される。空きノード数予測処理の詳細は後述する(図11参照)。
[ステップS103]ジョブ投入部120は、ジョブの1並列の経過時間制限値に基づいて、経過時間制限値計算式を設定する。例えばジョブ投入部120は、1並列の経過時間制限値を基準として、並列度が上がるごとに経過時間制限値が低下するような、並列度と経過時間制限値との関係式を求め、経過時間制限値計算式とする。ジョブの並列度が決定された場合、経過時間制限値計算式によって経過時間制限値が求まる。
[ステップS104]ジョブ投入部120は、ステップS102による空きノード数の予測結果に基づいて、ジョブの予測終了時刻が最も早くなるように、投入先のキューと並列度を決定する。例えばジョブ投入部120は、空きノード数の予測処理の結果に基づいて、キューと並列度の組ごとに、投入するジョブを並列度に応じた、該当キューでの実行可能な最先の時刻を求め、予測開始時刻とする。またジョブ投入部120は、その並列度での経過時間制限値を、経過時間制限値計算式に基づいて求める。そしてジョブ投入部120は、予測開始時刻に経過時間制限値を加算した時刻を、キューと並列度の組における予測終了時刻とする。ジョブ投入部120は、想定されるすべてのキューと並列度の組について予測終了時刻を求め、予測終了時刻が最先のキューと並列度の組を、投入するジョブに適用するキューおよび並列度に決定する。
[ステップS105]ジョブ投入部120は、決定した並列度に応じてジョブスクリプトを更新する。例えばジョブ投入部120は、ジョブスクリプト中の並列度が設定された部分を、決定した並列度に書き換える。またジョブ投入部120は、ジョブスクリプト中の経過時間制限値が設定された部分を、経過時間制限値計算式に基づいて決定した経過時間制限値に書き換える。
[ステップS106]ジョブ投入部120は、ジョブを管理ノード200に投入する。例えばジョブ投入部120は、投入するジョブのジョブスクリプトに、投入先となるキューの識別子を付与した情報を、管理ノード200に送信する。
[ステップS107]ジョブ投入部120は、投入したジョブのスケジュール情報を取得する。例えばジョブ投入部120は、管理ノード200に対して、投入したジョブの投入先となっているキューを指定して、スケジュール情報取得要求を送信する。管理ノード200のスケジュール情報提供部219は、スケジュール情報取得要求で指定されたキューのスケジュール情報を、端末装置100に送信する。ジョブ投入部120は、管理ノード200から送信されたスケジュール情報を取得する。ジョブ投入部120は、取得したスケジュール情報に基づいて、投入したジョブの予測終了時刻を計算する。例えばスケジュール情報には、投入したジョブの予測開始時刻と経過時間制限値とが含まれている。そこでジョブ投入部120は、投入したジョブの予測開始時刻に経過時間制限値を加算した時刻を、予測終了時刻とする。
[ステップS108]ジョブ投入部120は、ステップS104で次点となったキューを並列度との組とした場合のジョブの予測終了時刻と、ステップS107で取得したスケジュール情報に基づく予測終了時刻とを比較する。そしてジョブ投入部120は、次点候補の方が早く終了するか否かを判断する。次点候補の方が早く終了するのであれば、処理をステップS109に進める。そうでなければ、ジョブ投入処理を終了する。なお、次点候補が存在しない場合にも、ジョブ投入処理が終了する。
[ステップS109]ジョブ投入部120は、投入したジョブをキャンセルする。例えばジョブ投入部120は、管理ノード200に、ステップS106で投入したジョブのキャンセル要求を送信する。またジョブ投入部120は、前回のステップS104で決定したキューと並列度との組に対応する予測終了時刻として、ステップS107で取得したスケジュール情報に基づいて算出した予測終了時刻を設定する。その後、ジョブ投入部120は、処理をステップS104に進める。
このような手順でジョブ投入処理が行われる。次に、空きノード数予測処理の詳細について説明する。
図11は、空きノード数予測処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS121]ジョブ投入部120は、ジョブマネージャ210が有するキューのうちの、未処理のキューを1つ選択する。
[ステップS122]ジョブ投入部120は、選択したキューのスケジュール情報に基づいて、対応するキューで利用できる計算ノードのうちの空き計算ノードの数の時間推移を示すグラフを作成する。
[ステップS123]ジョブ投入部120は、選択したキューと他のキューとの間に、利用できる計算ノードの重複があるか否かを判断する。例えば、ジョブ投入部120は、ジョブマネージャ210から、キュー215〜217それぞれについて、利用できる計算ノードの識別子を取得する。そしてジョブ投入部120は、キューごとの利用できる計算ノードを比較し、共通の計算ノードが含まれるかどうかにより、識別子が選択したキューと他のキューとの利用できる計算ノードの重複の有無を判断する。計算ノードの重複がある場合、処理がステップS124に進められる。計算ノードの重複がない場合、処理がステップS126に進められる。
[ステップS124]ジョブ投入部120は、選択したキューと他のキューとで重複して利用できる計算ノードのうち、他のキューで利用されているか、利用予定の計算ノードがあるか否かを判断する。該当する計算ノードがあれば、処理がステップS125に進められる。該当する計算ノードがなければ、処理がステップS126に進められる。
[ステップS125]ジョブ投入部120は、選択したキューのグラフに、そのキューで利用可能な計算ノードのうち他のキューで利用されている計算ノードおよび利用予定の計算ノードの数を反映させ、グラフを更新する。
[ステップS126]ジョブ投入部120は、すべてのキューを処理したか否かを判断する。すべてのキューの処理が完了した場合、空きノード数予測処理が終了する。未処理のキューがあれば、処理がステップS121に進められる。
以上、図10、図11に示した処理により、ジョブの予測終了時刻が最も早くなるようなキューおよび並列度を指定して、ジョブを投入することができる。以下、図10、図11に示した処理を、より詳細に説明する。
図12は、スケジュール情報取得処理の一例を示す図である。例えば端末装置100に、ユーザからジョブ投入要求が入力されると、そのジョブ投入要求がジョブ投入要求受け付け部110で取得される。そしてジョブ投入要求が、ジョブ投入部120に送信される。
ジョブ投入要求を受信したジョブ投入部120は、SSH(Secure SHell)と呼ばれる暗号・認証技術を用いて、管理ノード200に接続する。そして端末装置100のジョブ投入部120は、管理ノード200のジョブマネージャ210に、スケジュール情報の取得を示すコマンドを送信する。ジョブマネージャ210は、そのコマンドを実行し、ジョブの実行状況などの情報をキューごとに収集する。そしてジョブマネージャ210は、各キューのスケジュール情報51,52,・・・を端末装置100に送信する。
スケジュール情報51,52,・・・には、対応するキューの識別子(QUEUE#)と、利用できる計算ノード数(NODES)が含まれる。さらにスケジュール情報51,52,・・・には、ジョブごとに、ジョブID(JOB_ID)、ジョブ名(JOB_NAME)、ユーザ(USER)、計算ノード数(NODES)、状態(STATE)、キューイング時刻(QUEUED_TIME)、開始時刻(START_TIME)、および経過時間制限値(ELPS_LIMIT)が含まれる。ジョブIDは、ジョブの識別子である。ジョブ名は、ジョブの名称である。ユーザは、ジョブを投入した端末装置100を使用しているユーザの名称である。計算ノード数は、ジョブの実行する計算ノード数(並列度)である。状態は、ジョブの状態である。状態には、実行中(RUN)とキューイング中(QUE)とがある。キューイング時刻は、ジョブがキューイングされた日時である。開始時刻は、ジョブの実行開始時刻または開始予定時刻である。実行開始時刻は、既に実行が開始されているジョブの実行を開始した時刻である。開始予定時刻は、実行待ちのジョブの実行を開始する予定の時刻である。経過時間制限値は、ジョブの実行に要する最大時間である。
なおスケジュール情報51,52,・・・に、キューで使用できる各計算ノードの識別子を含めてもよい。また、スケジュール情報51,52,・・・に、各ジョブに割り当てられた計算ノードの識別子を含めてもよい。これらの情報をスケジュール情報51,52,・・・に含めることで、これらの情報に基づいて、図11のステップS123,S124における重複する計算ノードの有無などの判断を行うことができる。
ジョブ投入部120は、スケジュール情報51,52,・・・に基づいて、空き計算ノードの数の時間推移を示すグラフを作成する。例えばジョブ投入部120は、キューで使用できるノード数から、時刻ごとの利用されている計算ノード数を減算して、空き計算ノード数の時間遷移を求める。
図13は、グラフの第1の例を示す図である。図13の例では、「キュー#1」のスケジュール情報61内に4つのジョブの情報が含まれている。各ジョブの実行時間帯は、実行開始時刻または開始予定時刻から、経過時間制限値に示される時間経過後までの時間帯である。そこで、ジョブ投入部120は、縦軸にノード数、横軸に経過時間を採ったグラフ71を生成する。グラフ71には、各ジョブに対応する矩形が示されている。ジョブを示す矩形の横方向の幅は、そのジョブの実行時間を示す。矩形の縦方向の幅は、ジョブで利用するノード数を示す。矩形の左辺は、ジョブの実行開始時刻または開始予定時刻に合わせられている。
図14は、グラフの第2の例を示す図である。図14の例では、「キュー#2」のスケジュール情報62内に3つのジョブの情報が含まれている。そこで、各ジョブに対応する3つの矩形を含むグラフ72が生成されている。
図13、図14に示したグラフ71,72に基づいて、空き計算ノード数の時間遷移が予測できる。
図15は、空き計算ノード数の予測例を示す図である。ジョブ投入部120は、生成したグラフ73の矩形を細分化して、上方向に寄せ、空き計算ノードを示す領域を纏めたグラフ74を生成する。このグラフ74により、経過時間に応じた空き計算ノード数が明確となる。計算上は、経過時間ごとに、各ジョブで利用している計算ノード数を合計し、キューが利用できる計算ノード数から減算することで、空き計算ノード数の時間遷移が得られる。
なお図13〜図15は、他のキューとの間で利用できる計算ノードが重複しない場合の例である。実際には、図6に示したように一部の計算ノードが複数のキューから重複して利用されることがある。そこで、重複して利用される計算ノードを考慮して、キューごとの空き計算ノード数が計算される。
図16は、重複して利用される計算ノードがある場合の例を示す図である。図16に示すように、異なるキューにおいて、利用できる計算ノードが重複する場合がある。この場合、ジョブ投入部120は、重複する計算ノードを利用する他のキューのジョブでの、重複する計算ノードの利用状況を確認する。なお、図16の例では、各キューにおいて、他のキューと重複して利用されない計算ノードを優先的にジョブに割り当て、そのような計算ノードに空き状態のものがないときに、重複して利用される計算ノードをジョブに割り当てている。
図16の例において、キュー#1の空き計算ノード数を予測する場合、ジョブ投入部120は、キュー#2のグラフ76から、重複して利用される計算ノードを利用するジョブを検出する。そしてジョブ投入部120は、検出したジョブで利用される計算ノードの分を、キュー#1のジョブでの計算ノードの利用と同等に扱い、キュー#1のグラフ75を更新する。
図17は、重複して利用される計算ノードの利用状況の反映例を示す図である。図17に示すように、キュー#1に対応するグラフ75には、重複して利用される計算ノードのジョブへの割り当て状況が反映される。
以上のようにして、キューごとのグラフが得られる。グラフ化によって経過時間ごとの空き計算ノード数が把握できたら、ジョブ投入部120は、空き計算ノードで実行できるジョブの並列度と、その並列度でジョブを実行できる時間帯とを求める。
図18は、空き計算ノードで実行できる並列度と実行可能な時間帯との検出例を示す図である。ジョブ投入部120は、空き計算ノードの領域内に収まる矩形81,82を生成する。ジョブ投入部120は、投入するジョブが、矩形81,82に示される並列数と時間帯内で実行できる場合、その矩形を利用可能資源とする。
ジョブ投入部120は、キューごとに、利用可能資源をリストアップし、利用可能資源リストを生成する。
図19は、利用可能資源リストの一例を示す図である。キューごとに生成された利用可能資源リスト91,92,・・・には、グラフ内に設けた矩形ごとの利用可能資源情報が設定されている。利用可能資源情報には、並列度、利用可能時間、および予測開始時刻が含まれる。並列度は、利用可能資源の並列度である。利用可能資源の並列度は、グラフ中では、矩形のノード数方向の幅で表されている。利用可能時間は、利用可能資源の利用可能時間である。利用可能資源の利用可能時間は、グラフ中では、矩形の経過時間方向の幅で表されている。予測開始時刻は、利用可能資源の利用開始可能時刻である。利用可能資源の予測開始時刻は、グラフ中では、矩形の左端に対応する経過時間を現在時刻に加算した時刻である。
キューごとの利用可能資源リスト91,92,・・・を生成後、ジョブ投入部120は、経過時間制限値計算式を生成する。ジョブの実行時間は、並列度が高くなるほど短くなる。そこでジョブ投入部120は、ユーザから入力された1並列時の経過時間制限値に基づいて、並列度が高くなるほど経過時間制限値が低くなるような、並列度と経過時間制限値との関係式を求める。
図20は、並列度と経過時間制限値との関係例を示す図である。図20の例では、並列度が16ノードになったときに、ジョブの処理速度が1並列の場合の2倍となるものとしている。ジョブ投入部120は、横軸に並列度を採り、縦軸に経過時間制限値を採ったグラフを生成する。次にジョブ投入部120は、ユーザが入力した1並列時の経過時間制限値を示す点P1を、グラフ上に設定する。図20の例では、1並列時の経過時間制限値は、1800秒である。次にジョブ投入部120は、16並列時の経過時間制限値が1800の半分「900」となる位置を示す点P2を、グラフ上に設定する。次にジョブ投入部120は、点P1と点P2とを通る直線L1を生成する。そしてジョブ投入部120は、直線L1上に、並列度「1」の位置を左端、最大並列度の位置を右端とする線分L2を生成する。この線分L2を表す式が、経過時間制限値計算式となる。
このように、1並列の場合の経過時間制限値はユーザからの入力が利用され、並列化された場合の経過時間制限値の低減度合いは、予めジョブ投入部120に設定しておく。なお、ジョブを並列実行した場合、例えば8並列だから実行時間が8分の1になるといったことはない。そこで、経過時間制限値内にジョブが確実に実行完了できるように、並列化に伴う経過時間制限値の低減度合いは、余裕をもって設定する。例えば図20の例では、16並列の場合に実行時間が2分の1になると仮定しているが、この低減度合いは適宜調整可能である。
線分L2で表される経過時間制限値計算式に基づいて、並列度に応じたジョブの経過時間制限値が計算できる。ジョブ投入部120は、並列度「1」から最大並列度までの並列度ごとに、ジョブの経過時間制限値を算出し、経過時間制限値リスト90に設定する。
ジョブ投入部120は、経過時間制限値リスト90を用いて、キューごとの利用可能資源それぞれについて、空き計算ノードを最大限利用した並列度でジョブを実行した場合のジョブの予測終了時刻を計算する。そしてジョブ投入部120は、各利用可能資源を、予測終了時刻が早い順にソートする。
図21は、利用可能資源のソート例を示す図である。例えばジョブ投入部120は、利用可能資源リスト91,92,・・・それぞれから、利用可能資源情報を1つずつ選択する。ジョブ投入部120は、経過時間制限値リスト90を参照し、選択した利用可能資源情報に示される並列度に応じた経過時間制限値を取得する。ジョブ投入部120は、取得した経過時間制限値が、選択した利用可能資源情報の利用可能時間を超えている場合、選択した利用可能資源情報に示される利用可能資源では、投入するジョブを実行できないと判断し、その利用可能資源情報を出力対象から除外する。ジョブ投入部120は、取得した経過時間制限値が、選択した利用可能資源情報の利用可能時間以下の場合、その利用可能資源情報の予測開始時刻に経過時間制限値を加算し、その利用可能資源情報の予測終了時刻とする。
ジョブ投入部120は、すべての利用可能資源情報に対する処理が完了すると、予測終了時刻が計算された利用可能資源情報を、予測終了時刻が早い順にソートする。ジョブ投入部120は、ソート結果を、終了時刻情報301として出力する。終了時刻情報301には、利用可能資源情報それぞれを示すエントリが登録されている。各エントリには、ソートによる順位、キューの識別子、並列度、および予測終了時刻が設定されている。
ジョブ投入部120は、終了時刻情報301内の最上位にエントリされている利用可能資源情報に示されるキューと並列度との組を、投入するジョブのパラメータとして決定する。
投入するジョブのパラメータが決定すると、ジョブ投入部120は、並列度の値をジョブスクリプトに反映する。すなわち、ジョブは、シェルスクリプトを用いてアプリケーションの実行を指示する。ジョブ実行用のシェルスクリプトがジョブスクリプトである。ジョブスクリプトには、並列度に応じた処理が含まれている。そのため、ジョブ投入部120は、決定された並列度に応じて、自動でジョブスクリプト内の記述を変更する。
図22は、ジョブスクリプト更新例を示す図である。ジョブスクリプト302には、並列度や経過時間制限値に応じた値が含まれる。そこでジョブ投入部120は、ジョブスクリプト302内の並列度に応じた値を、投入するジョブのパラメータとして決定された並列度を示す値に変更する。またジョブ投入部120は、ジョブスクリプト302内の経過時間制限値に応じた値を、決定した並列度に応じた経過時間制限値に変更する。並列度に応じた経過時間制限値は、経過時間制限値リスト90から取得できる。
なお、ジョブスクリプト302中の修正箇所の特定方法は、ジョブ投入部120に予め設定しておく。図22の例では、ジョブスクリプト302内の「-rsc-list」や「mpirun」などの特有の文字列を検出することで、修正箇所を識別可能である。
ジョブスクリプト302の更新後、ジョブ投入部120は、キューイング先のキューを指定して、ジョブを管理ノード200に投入する。管理ノード200では、投入されたジョブの実行要求を、指定されたキューのスケジューラに渡す。するとスケジューラが投入されたジョブの実行のスケジューリングを行い、対応するキューに、そのジョブの実行要求をキューイングする。
ジョブをキューイングすると、ジョブマネージャ210は、キューイングしたジョブの開始予定時刻と経過時間制限値とを、端末装置100に送信する。端末装置100では、ジョブ投入部120が、投入したジョブの開始予定時刻に経過時間制限値を加算して得た時刻(終了予定時刻)と、終了時刻情報301に示される次点候補となった利用可能資源の予測終了時刻とを比較する投入したジョブの終了予定時刻の方が早いようであれば、ジョブ投入処理はここで終了する。
もし、投入したジョブの終了予定時刻よりも、次点候補の予測終了時刻の方が早ければ、ジョブ投入部120は、投入したジョブをいったんキャンセルする。そして、ジョブ投入部120は、次点候補である利用可能資源に示されるキューと並列度との組をパラメータとして、ジョブを再投入する。このときジョブ投入部120は、終了時刻情報301における、キャンセルしたジョブのパラメータに対応する利用可能資源の予測終了時刻は、終了予定時刻に更新して、終了時刻情報301内のエントリを、予測終了時刻が早い順にソートする。
このような次点候補との比較は、終了予定時刻よりも早い予測終了時刻が得られる次点候補がなくなるまで繰り返される。このようにして、スケジューラの正確なアルゴリズムが不明であっても、最適なパラメータを指定したジョブの実行要求を、確実に投入することができる。
〔その他の実施の形態〕
上記の実施の形態では、管理ノードとは別の情報処理装置10または端末装置100において、ジョブの並列度と投入先のキューを決定しているが、このような決定処理を管理ノードが実行するようにすることもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 管理ノード
2a,2b,・・・,3a,3b,・・・ 計算ノード
4a,4b スケジュール情報
10 情報処理装置
11 開始時刻算出手段
12 実行時間算出手段
13 終了時刻算出手段
14 登録手段

Claims (5)

  1. 少なくとも1つのキューそれぞれについての、キューで使用可能な計算ノード数、登録されたジョブ実行要求の実行期間、及び該ジョブ実行要求で使用する計算ノード数を示すスケジュール情報を取得し、前記少なくとも1つのキューのうちの1つである登録先キューと複数の並列度のうちの1つである指定並列度とが指定されたジョブ実行条件を複数生成し、前記スケジュール情報に基づいて、前記ジョブ実行条件それぞれについて、前記指定並列度での新規ジョブの実行を要求する新規ジョブ実行要求を前記登録先キューに登録した場合に、前記登録先キューで前記使用可能な計算ノード数から登録されたジョブ実行要求で使用する計算ノード数を減算した空き計算ノード数の時間遷移を求め、前記ジョブ実行条件に示される前記指定並列度以上の前記空き計算ノード数が存在する利用可能期間の最先の時刻である予測開始時刻を算出する開始時刻算出手段と、
    前記新規ジョブを所定の並列度で実行したときの前記新規ジョブの実行時間に基づいて、前記複数の並列度それぞれに応じた前記新規ジョブの実行時間を算出する実行時間算出手段と、
    前記ジョブ実行条件それぞれについて、前記ジョブ実行条件の前記予測開始時刻と、前記ジョブ実行条件に示される前記指定並列度での前記新規ジョブの実行時間とに基づいて、前記ジョブ実行条件に示される前記指定並列度を指定した前記新規ジョブ実行要求を、前記ジョブ実行条件に示される前記登録先キューに登録した場合の、前記新規ジョブの実行終了時刻の予測値である予測終了時刻を算出する終了時刻算出手段と、
    前記ジョブ実行条件のうちの前記予測終了時刻が最先となる最先ジョブ実行条件に示される前記指定並列度で前記新規ジョブを実行させる前記新規ジョブ実行要求を、前記最先ジョブ実行条件に示される前記登録先キューに登録する登録手段と、
    を有する情報処理装置。
  2. 前記登録手段は、前記最先ジョブ実行条件に従って登録した前記新規ジョブ実行要求の実行スケジュールを取得し、該実行スケジュールに示される前記新規ジョブの実行開始時刻を示す実行開始予定時刻に、前記最先ジョブ実行条件に示される前記指定並列度での前記新規ジョブの実行時間を加算した終了予定時刻が、前記最先ジョブ実行条件以外の他のジョブ実行条件の前記予測終了時刻よりも遅い場合、前記最先ジョブ実行条件に従って登録した前記新規ジョブ実行要求をキャンセルし、前記他のジョブ実行条件に示される前記指定並列度で前記新規ジョブを実行させる新規ジョブ再実行要求を、前記他のジョブ実行条件に示される前記登録先キューに登録する、
    請求項1記載の情報処理装置。
  3. 前記開始時刻算出手段は、前記ジョブ実行条件に示される前記登録先キューにおける前記時間遷移において、前記利用可能期間の長さを示す利用可能時間を求め、
    前記終了時刻算出手段は、前記ジョブ実行条件の前記利用可能時間が、前記ジョブ実行条件に示される前記指定並列度の実行時間未満の場合、前記ジョブ実行条件の前記予測終了時刻の算出を抑止する、
    請求項1または2に記載の情報処理装置。
  4. コンピュータが、
    少なくとも1つのキューそれぞれについての、キューで使用可能な計算ノード数、登録されたジョブ実行要求の実行期間、及び該ジョブ実行要求で使用する計算ノード数を示すスケジュール情報を取得し、
    前記少なくとも1つのキューのうちの1つである登録先キューと複数の並列度のうちの1つである指定並列度とが指定されたジョブ実行条件を複数生成し、
    前記スケジュール情報に基づいて、前記ジョブ実行条件それぞれについて、前記指定並列度での新規ジョブの実行を要求する新規ジョブ実行要求を前記登録先キューに登録した場合に、前記登録先キューで前記使用可能な計算ノード数から登録されたジョブ実行要求で使用する計算ノード数を減算した空き計算ノード数の時間遷移を求め、前記ジョブ実行条件に示される前記指定並列度以上の前記空き計算ノード数が存在する利用可能期間の最先の時刻である予測開始時刻を算出し、
    前記新規ジョブを所定の並列度で実行したときの前記新規ジョブの実行時間に基づいて、前記複数の並列度それぞれに応じた前記新規ジョブの実行時間を算出し、
    前記ジョブ実行条件それぞれについて、前記ジョブ実行条件の前記予測開始時刻と、前記ジョブ実行条件に示される前記指定並列度での前記新規ジョブの実行時間とに基づいて、前記ジョブ実行条件に示される前記指定並列度を指定した前記新規ジョブ実行要求を、前記ジョブ実行条件に示される前記登録先キューに登録した場合の、前記新規ジョブの実行終了時刻の予測値である予測終了時刻を算出し、
    前記ジョブ実行条件のうちの前記予測終了時刻が最先となる最先ジョブ実行条件に示される前記指定並列度で前記新規ジョブを実行させる前記新規ジョブ実行要求を、前記最先ジョブ実行条件に示される前記登録先キューに登録する、
    ジョブ投入方法。
  5. コンピュータに、
    少なくとも1つのキューそれぞれについての、キューで使用可能な計算ノード数、登録されたジョブ実行要求の実行期間、及び該ジョブ実行要求で使用する計算ノード数を示すスケジュール情報を取得し、
    前記少なくとも1つのキューのうちの1つである登録先キューと複数の並列度のうちの1つである指定並列度とが指定されたジョブ実行条件を複数生成し、
    前記スケジュール情報に基づいて、前記ジョブ実行条件それぞれについて、前記指定並列度での新規ジョブの実行を要求する新規ジョブ実行要求を前記登録先キューに登録した場合に、前記登録先キューで前記使用可能な計算ノード数から登録されたジョブ実行要求で使用する計算ノード数を減算した空き計算ノード数の時間遷移を求め、前記ジョブ実行条件に示される前記指定並列度以上の前記空き計算ノード数が存在する利用可能期間の最先の時刻である予測開始時刻を算出し、
    前記新規ジョブを所定の並列度で実行したときの前記新規ジョブの実行時間に基づいて、前記複数の並列度それぞれに応じた前記新規ジョブの実行時間を算出し、
    前記ジョブ実行条件それぞれについて、前記ジョブ実行条件の前記予測開始時刻と、前記ジョブ実行条件に示される前記指定並列度での前記新規ジョブの実行時間とに基づいて、前記ジョブ実行条件に示される前記指定並列度を指定した前記新規ジョブ実行要求を、前記ジョブ実行条件に示される前記登録先キューに登録した場合の、前記新規ジョブの実行終了時刻の予測値である予測終了時刻を算出し、
    前記ジョブ実行条件のうちの前記予測終了時刻が最先となる最先ジョブ実行条件に示される前記指定並列度で前記新規ジョブを実行させる前記新規ジョブ実行要求を、前記最先ジョブ実行条件に示される前記登録先キューに登録する、
    処理を実行させるジョブ投入プログラム。
JP2016103852A 2016-05-25 2016-05-25 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム Active JP6666555B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016103852A JP6666555B2 (ja) 2016-05-25 2016-05-25 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
US15/470,986 US9971630B2 (en) 2016-05-25 2017-03-28 Information processing apparatus and job submission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016103852A JP6666555B2 (ja) 2016-05-25 2016-05-25 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム

Publications (2)

Publication Number Publication Date
JP2017211788A JP2017211788A (ja) 2017-11-30
JP6666555B2 true JP6666555B2 (ja) 2020-03-18

Family

ID=60417928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016103852A Active JP6666555B2 (ja) 2016-05-25 2016-05-25 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム

Country Status (2)

Country Link
US (1) US9971630B2 (ja)
JP (1) JP6666555B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3705608B8 (en) 2017-11-01 2024-07-03 Nippon Steel Corporation ELECTROLYTIC Sn-PLATED STEEL SHEET
US11176129B2 (en) * 2018-09-30 2021-11-16 Microsoft Technology Licensing, Llc Methods for automatic selection of degrees of parallelism for efficient execution of queries in a database system
US10666510B2 (en) * 2018-10-30 2020-05-26 Bank Of America Corporation Conserving computing resources during network parallel processing
CN113542316B (zh) 2020-04-13 2022-11-25 展讯半导体(南京)有限公司 算力共享方法及相关设备
CN113760493B (zh) * 2020-11-05 2024-05-17 北京沃东天骏信息技术有限公司 一种作业调度方法和装置
US20220365931A1 (en) * 2021-05-14 2022-11-17 International Business Machines Corporation Dynamic degree of query parallelism optimization

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3936924B2 (ja) 2003-06-18 2007-06-27 株式会社日立製作所 ジョブスケジューリング方法及びシステム
JP4977729B2 (ja) * 2009-03-30 2012-07-18 みずほ情報総研株式会社 ジョブスケジュール変更支援システム、方法及びプログラム
JP5614318B2 (ja) * 2011-02-15 2014-10-29 富士通株式会社 スケジューリングプログラム,方法および装置
JP5737057B2 (ja) * 2011-08-19 2015-06-17 富士通株式会社 プログラム、ジョブスケジューリング方法、および情報処理装置
JP2013140490A (ja) 2012-01-04 2013-07-18 Fujitsu Ltd 並列計算制御装置及び並列計算制御方法
JP6387626B2 (ja) * 2014-03-04 2018-09-12 日本電気株式会社 情報処理システム、情報処理方法、および、スケジューリングプログラム

Also Published As

Publication number Publication date
US9971630B2 (en) 2018-05-15
US20170344395A1 (en) 2017-11-30
JP2017211788A (ja) 2017-11-30

Similar Documents

Publication Publication Date Title
JP6666555B2 (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
US11593149B2 (en) Unified resource management for containers and virtual machines
US9852035B2 (en) High availability dynamic restart priority calculator
JP5476485B2 (ja) サービスの予約管理方法、仮想計算機システム及び記憶媒体
US9483319B2 (en) Job scheduling apparatus and method therefor
US10423902B2 (en) Parallel processing apparatus and method of estimating power consumption of jobs
CN106874084B (zh) 一种分布式工作流调度的方法、装置及计算机设备
US20070039003A1 (en) Job management apparatus, job management method, and job management program
US10853128B2 (en) Virtual machine management device and virtual machine management method
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
US11074103B2 (en) Scheduling method and scheduling device
JP2017151656A (ja) 並列処理装置、電力係数算出プログラムおよび電力係数算出方法
JP2019061359A (ja) プログラム及び情報処理装置
JP2017068480A (ja) ジョブ管理方法、ジョブ管理装置及びプログラム
US11797353B2 (en) Method and system for performing workloads in a data cluster
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
US9864964B2 (en) Job monitoring support method and information processing apparatus
US10394615B2 (en) Information processing apparatus and job management method
US20130055281A1 (en) Information processing apparatus and scheduling method
US9298517B2 (en) Exclusive control request allocation method and system
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP2017107486A (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
CN112183982A (zh) 一种工作流程创建方法、装置、计算机设备及存储介质
US10331489B2 (en) Apparatus and method for executing maintenance processing on computers coupled via a multidimensional mesh or torus connection in a network
JP2016184310A (ja) 情報処理システム、制御装置および情報処理システムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200110

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200110

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200203

R150 Certificate of patent or registration of utility model

Ref document number: 6666555

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150