JP6221588B2 - 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法 - Google Patents

情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法 Download PDF

Info

Publication number
JP6221588B2
JP6221588B2 JP2013205535A JP2013205535A JP6221588B2 JP 6221588 B2 JP6221588 B2 JP 6221588B2 JP 2013205535 A JP2013205535 A JP 2013205535A JP 2013205535 A JP2013205535 A JP 2013205535A JP 6221588 B2 JP6221588 B2 JP 6221588B2
Authority
JP
Japan
Prior art keywords
job
shape
information processing
arrangement
calculation
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
JP2013205535A
Other languages
English (en)
Other versions
JP2015069577A (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 JP2013205535A priority Critical patent/JP6221588B2/ja
Priority to EP14179916.3A priority patent/EP2854029A3/en
Priority to US14/457,172 priority patent/US9298500B2/en
Publication of JP2015069577A publication Critical patent/JP2015069577A/ja
Application granted granted Critical
Publication of JP6221588B2 publication Critical patent/JP6221588B2/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
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法に関する。
情報処理システムである並列計算機システム、その中でも特にHigh Performance Computing(HPC)システムでは、高性能化のためにノード数が10万ノードを超えるシステムが開発されている。ここで、ノードとは、情報処理を実行する処理部の単位であり、例えば、演算処理部であるCentral Processing Unit(CPU)などである。
ノード数が膨大になると、ノード間通信のインターコネクトとして一般的なクロスバスイッチを経由して通信する間接網ネットワークでは、スイッチの物量が膨大となるため、現実的ではない。そこで、ノード数が膨大になる場合には、インターコネクトとして、隣接するノード間を直接繋ぐ直接網ネットワークを使用することが多い。直接網ネットワークでは、隣接していないノード間の通信は、通信を行う両ノードの間に配置される各ノード上のインターコネクトルータを経由して通信が行われる。直接網ネットワークのネットワークトポロジ、すなわちネットワークの構造には、メッシュ型やトーラス型が用いられることが多い。
直接網ネットワークを用いた並列計算機システムでは、ある並列ジョブ(以下では、単に「ジョブ」という。)を実行するノードの間に、別のジョブを実行するノードが存在すると、両ジョブのノード間通信が影響し合い通信性能の低下を招く。すなわち、このような状態は、最終的には両ジョブの実行時間の長期化を招く。そこで、ジョブ実行性能を向上させるために、1つのジョブは、隣接したノード群に配置される。また、並列アプリケーションは、隣接するノード間への通信がその他のノードへの通信より頻度が高い計算が多く存在するように設計される。
このような並列アプリケーションを直接網ネットワークの並列計算機システムで実行するには、ネットワークトポロジとアプリケーションの通信構造とを一致させた方が、通信効率がよく、ジョブの実行性能も高くなる。例えば、2次元メッシュネットワークの並列計算機システムで、2次元配列の隣接通信の多い並列アプリケーションを実行させるには、2次元に並んだノード群で実行させた方が、1次元に並んだノード群で実行させるよりも性能がよくなる。このため、メッシュやトーラストポロジ構造を有する直接網ネットワークで構成された並列計算機システム(以下では、単に並列計算機システムという。)においては、一般に利用者は、ジョブに適したノードの配置形状を指定した上でジョブを投入する。並列計算機システムにおいて、どのノードでジョブを実行させるかのジョブ配置を管理するジョブスケジューラは、単にノード数に応じてジョブ配置を決定するのではなく、ジョブ形状を考慮したジョブ配置計算を行う。
なお、以下では、ジョブに適したノードの配置形状を「ジョブ形状」と呼ぶ。さらに、サイズが異なるジョブ形状は、異なるジョブ形状として扱う。例えば、ジョブ形状が正方形であっても、3×3と5×5とは別のジョブ形状とする。また、ネットワークの各次元方向の通信性能が同じ場合、ジョブ形状を回転させても同じ実行性能が得られる。このことから、回転させると同じジョブ形状となるものは、同じジョブ形状として扱う。例えば、2×3と3×2のジョブ形状は、同一のジョブ形状とする。
ここで、従来の並列計算機システムにおけるジョブ配置方法としては、あるジョブを配置する際に、将来投入される後続ジョブがなるべく多く配置できるように考慮して配置を決定する方法がある。例えば、ジョブの配置後に隣接する未使用ノード群のノード数が最大になるように配置を決定するジョブ配置方法がある。この場合、例えば、未使用ノード群のノード数が最大になる配置が複数有る場合は、下方向の隣接する未使用ノード数を優先し、次に右方向の隣接する未使用ノード数が多くなる順で配置を決定する。
そして、並列計算機システムに対して多数の様々なジョブ形状のジョブが投入されると、その配置の組合せ状況によって、フラグメンテーションと呼ばれる小規模の未使用ノード群が生じる場合がある。
なお、プログラムの占有時間と実行頻度、コンピュータの稼働率を基にプログラムあたりの利用率を算出して、大きいプログラムから順に複数のコンピュータに割り当てる従来技術がある。
特開2011−243112号公報
単に未使用ノード数が多くなるようにジョブを配置していくと、その後にジョブを配置する場合に、未使用ノードの総数は当該ジョブが要求するノード数に足りていても、ジョブ形状の違いによって配置できない状況が発生することがある。このような場合、配置できないジョブは実行待ち状態となり、ジョブが割り当てられずに残ったノードは未使用のままとなる。これをフラグメンテーションと呼ぶ。
実際のシステムでは、実行待ちキューにジョブが溜まっており、たとえ実行待ちキューの先頭ジョブが上記のような状態のため実行できなくても、実行待ちキューにある後続のジョブ(後から投入されたジョブ)であれば実行できる可能性がある。一般にバックフィルと呼ばれるこの手法を使用してジョブを実行するか否かは、システム管理ポリシーに依存し、当該並列計算機システム毎に異なる。また、たとえ後続のジョブの先行実行を許すポリシーであったとしても、未使用ノード構成と実行可能ジョブのジョブ形状の不一致からさらに小規模のフラグメンテーションが発生し、未使用ノードが発生することは避けられない。このように、フラグメンテーションによりノードの使用効率が低下する。
開示の技術は、上記に鑑みてなされたものであって、ノードの使用効率を向上させた情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法を提供することを目的とする。
本願の開示する情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法は、1つの態様において、情報処理システムは、複数の情報処理装置及び前記情報処理装置が処理するジョブの前記情報処理装置への割り当てを管理する管理装置を有する。前記管理装置は、所定期間に投入されたジョブに関する情報を取得する情報取得部と、前記ジョブに関する情報を基にジョブの形状毎の当該ジョブ形状の出現頻度や占有時間による影響度を求める算出部と、前記影響度が高い順に所定数のジョブの形状を計算対象形状として決定する形状決定部と、前記計算対象形状及び前記影響度を基に、前記情報処理装置それぞれへのジョブを割り当て方であるジョブの事前配置を決定する事前配置計算部と、投入されたジョブが前記計算対象形状のいずれかに一致する場合、前記事前配置にしたがい投入されたジョブを前記情報処理装置へ割り当てるジョブ配置部とを備える。
本願の開示する情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法の1つの態様によれば、ノードの使用効率を向上させることができるという効果を奏する。
図1は、情報処理システムの全体構成を示す構成図である。 図2は、実施例1に係るジョブ管理ノードの詳細を表すブロック図である。 図3は、ジョブ情報テーブルの一例の図である。 図4は、形状ランキングテーブルの一例の図である。 図5は、事前配置テーブルの一例の図である。 図6は、従来の方法によるジョブの配置の一例を説明するための図である。 図7は、実施例1に係る情報処理システムによるジョブの配置の一例を説明するための図である。 図8は、ジョブ管理ノードによる事前配置計算処理のフローチャートである。 図9は、実施例1に係るジョブマネージャによるジョブ起動処理全体のフローチャートである。 図10は、配置決定部によるジョブの配置処理のフローチャートである。 図11は、実施例2に係るジョブ管理ノードによる事前ジョブ配置計算の処理のフローチャートである。 図12は、ジョブ管理ノードのハードウェア構成図である。 図13は、計算ノードのハードウェア構成図である。
以下に、本願の開示する情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法が限定されるものではない。
図1は、情報処理システムの全体構成を示す構成図である。本実施例に係る情報処理システム1は、例えば、並列計算機システムである。情報処理システム1は、ジョブ管理ノード10、ログインノード11、システム管理ノード12、ファイルサーバ13及び複数の計算ノード20を有する。例えば、本実施例では、計算ノード20は図1に示すように二次元メッシュネットワークの構造を有するように配置される。
ここで、本実施例では、計算ノード20は、二次元メッシュネットワーク構造を有するが、それ以外のネットワーク構造を有してもよい。また、図1では、8×8の二次元メッシュネットワークを構成する計算ノード20を記載したが、台数はこれに限らず、また、全体形状も正方形に限らない。以下では、複数の計算ノード20をまとめて表す場合、「計算ノード群」という。
ログインノード11は、情報処理システム1の利用者からジョブの実行条件を記述したジョブドキュメントの入力を受ける。そして、ログインノード11は、取得したジョブドキュメントをジョブ管理ノード10へ送信する。ジョブドキュメントには、利用者が実行を指示するアプリケーションのファイルパス及び実行に必要な計算ノード20の数などが記載される。
システム管理ノード12は、システムの起動及び停止管理、並びに、エラーログの取得などの計算ノード20の運用における統括管理を行う。
ファイルサーバ13は、共有ファイルシステムであり、ジョブ管理ノード10、ログインノード11、システム管理ノード12、計算ノード20、さらには、本システム外の計算機システムとファイル共有ができる。例えば、計算ノード20は、計算を行うにあたり、ファイルサーバ13に格納されたデータを利用して処理を行う。
管理装置であるジョブ管理ノード10は、ジョブ管理ソフトウェアであるジョブマネージャが動作する。
利用者がアプリケーションをジョブとして実行させることを「ジョブの投入」と呼ぶ。ジョブの投入は一般にログインノード11から行う。利用者はログインノードにログインし、アプリケーションのファイルパス、入出力データファイルのファイルパス、実行に必要な計算ノードの数、実行に必要な関連ソフトウェアの情報などを記載したジョブドキュメントファイルを用意し、ジョブ管理ノード10で動作しているジョブマネージャに、当該ジョブドキュメントファイルを指定して、ジョブ実行を依頼する。ジョブマネージャは、ジョブドキュメントをログインノード11から受信し、ジョブの実行の依頼を受ける。ジョブマネージャが、利用者から入力されたジョブドキュメントの受信によりジョブの実行の依頼を受けることを、「ジョブの投入」と呼ぶ場合が有る。ジョブマネージャは、ジョブが投入されると、ジョブドキュメントを解釈して、ジョブに使用する計算ノード20の数などのジョブの実行条件を取得する。そして、ジョブマネージャは、ジョブを割り当てる計算ノード20の決定を含むジョブスケジューリングを行う。ジョブの割り当てについては後で詳細に説明する。なお、システムによっては、ログインノード11、ジョブ管理ノード10、システム管理ノード12を1台のノードに統合することもある。
ここで、計算ノード20には、ジョブマネージャの指示を受けて処理を実行するプロセスであるジョブ管理デーモンが常時起動している。ジョブマネージャは、使用する計算ノード群の要件が確保されジョブの実行条件が整うと、上記のジョブスケジューリングで決定した使用する計算ノード群のジョブ管理デーモンにジョブドキュメントファイルで指示されたアプリケーションの実行を指示する。
計算ノード20にて、アプリケーションの実行が終了すると、ジョブ管理デーモンはシステム管理ノード12上のジョブマネージャに終了を通知する。ジョブマネージャは、当該ジョブのアプリケーションの実行を依頼したすべての計算ノード20から終了状態の通知を受けると、計算結果の転送などの後始末を行い、情報処理システム1は、ジョブ実行を終了する。
次に、図2を参照して、ジョブ管理ノード10によるジョブ管理について詳細に説明する。図2は、実施例1に係るジョブ管理ノードの詳細を表すブロック図である。
ジョブ管理ノード10は、図2に示すように、情報取得部101、重み計算部102、対象形状決定部103、事前配置計算部104、配置決定部105、ジョブ実行管理部106及び記憶部107を有する。
記憶部107は、ジョブ情報テーブル201、形状ランキングテーブル202及び事前配置テーブル203を保持している。ジョブ情報テーブル201、形状ランキングテーブル202及び事前配置テーブル203については、後で詳細に説明する。
情報取得部101は、後述するジョブマネージャ106が計算ノード20に対して割り当てたジョブの形状(以下では、「ジョブ形状」という。)や各ジョブの実行時間を、ジョブマネージャ106から取得する。そして、情報取得部101は、ジョブ形状毎に所定期間の出現回数を加算して記憶してジョブ形状毎の出現回数の総計を算出する。このジョブ形状毎の出現回数の総計が、「投入回数」の一例にあたる。情報取得部101は、記憶部107に格納されているジョブ情報テーブル201にジョブ形状毎の出現回数の総計を登録する。
また、情報取得部101は、ジョブ形状毎に所定期間のジョブの実行時間を加算して記憶し実行時間の総計を算出する。その後、情報取得部101は、記憶部107に格納されているジョブ情報テーブル201にジョブ形状毎の実行時間の総計を登録する(実行時間小計)。ここで、所定期間とは、例えば、後で説明する重み計算部102による重み計算が行われた時点から1週間後を起点としてその前1月の間の期間である。
図3は、ジョブ情報テーブルの一例の図である。情報取得部101は、例えば、長辺及び短辺の長さをジョブ情報テーブル201に登録することでジョブ形状を特定する。ここでは2次元ネットワークの場合のジョブ情報テーブル201を記載したが、3次元以上のネットワークの場合も同様に、各辺のサイズの大きさ順に記載することでジョブ形状を表すことができる。
また、図3は、ジョブ形状の出現順にジョブ情報テーブル201を作成する場合の例であり、この場合、ジョブの投入状況によりジョブ情報テーブル201のサイズは不定である。ただし、各辺のサイズの全ての組合せによりジョブ形状を全て網羅したジョブ情報テーブル201を用いることも可能であり、その場合、ジョブ情報テーブル201のサイズは固定である。
また、本実施例では、各ジョブ形状の情報がそろった時点から直ちに各ジョブ形状の重みを、情報取得部101が計算しジョブ情報テーブル201に登録しているが、重みの計算のタイミングはこれに限らない。例えば、後述する重み計算部102が、形状ランキングテーブル202の作成時に重みを算出してもよい。その場合、ジョブ情報テーブル201には、重みの欄は設けなくてもよい。
重み計算部102は、一定期間毎にジョブ情報テーブル201におけるジョブ形状毎の出現回数及び実行時間小計を取得する。例えば、重み計算部102は、1週間毎にジョブ形状毎の出現回数及び実行時間小計を取得する。
そして、重み計算部102は、所定期間の間の各ジョブ形状に対応する出現回数を合計して、投入された全ジョブ数を算出する。また、重み計算部102は、所定期間の間の各ジョブ形状に対応する実行時間小計を合計して、全ジョブの実行時間の総和を算出する。
次に、重み計算部102は、各ジョブの実行時間小計を全ジョブの実行時間の総和で除算して、各ジョブ形状を有するジョブの実行時間が全ジョブの実行時間の総和の中で占める割合を求める。以下では、あるジョブ形状を有するジョブの実行時間の全ジョブの実行時間の総和の中で占める割合を、そのジョブ形状の「実行時間の占有率」という場合がある。
また、重み計算部102は、各ジョブ形状の出現回数を全ジョブ数で除算して、全ジョブ数に対する各ジョブ形状の出現の割合を求める。以下では、全ジョブ数に対するあるジョブ形状の出現の割合を、そのジョブ形状の「ジョブ数の割合」という場合がある。
その後、重み計算部102は、各ジョブ形状について、ジョブ数の割合にチューニング用係数を乗算した値と、実行時間の占有率とを乗算した値を、各ジョブ形状の重みとして求める。この重みが、「影響度」の一例である。
例えば、あるジョブの実行時間の占有率の値が高い程、そのジョブは実行される可能性が高いといえる。ただし、実行時間の占有率が高い場合でも、ジョブ数の割合が低い、すなわち出現頻度が低ければ、そのジョブについての配置情報を決定しておく意義が低い、すなわち影響度が低いと考えられる。そのため、重み計算部102は、実行時間の占有率にジョブ数の割合を乗算して重みを求めている。
例えば、ジョブ形状Sについて、tをジョブ形状Sの実行時間小計とし、tallを全ジョブの実行時間の総和とし、jをジョブ形状Sの出現回数とし、jallを全ジョブ数とし、αをチューニング用係数とする。この場合、重み計算部102は、w=(t/tall)×α(j/jall)によりジョブ形状Sの重みwを求める。ここで、t/tallは、ジョブ形状Sの実行時間の占有率である。また、j/jallは、ジョブ形状Sのジョブ数の割合である。
ここで、チューニング用係数αは、情報処理システム1に対するジョブの投入傾向によりチューニングを行うための係数であり、全ジョブ形状で共通の値を有する。例えば、チューニング用係数αは、情報処理システム1の利用者が実際に情報処理システム1にジョブを投入し実行させた結果を基に統計的に算出する。チューニング用係数αは、季節性や時間に依存してジョブの投入傾向が異なる場合に、そのジョブの投入傾向の変化に合わせて求められることが好ましい。また、季節性や時間的な依存がジョブの投入傾向に少なく、ジョブの投入傾向が平均化されるような場合には、チューニング用係数αは、一定量のジョブの実行結果を用いて自動的に求めることもできる。
なお、ここで説明したジョブ形状の重みの算出は一例であり、他の様々なジョブ情報を基に重みを求めることもできる。例えば、毎日定時に投入する可能性の高いジョブなどの優先度の高いジョブのジョブ形状を他のジョブ形状より重みを高くするように、優先度に応じた値を乗算して重みの高いジョブ形状としてもよい。
重み計算部102は、算出した各ジョブ形状の重みを各ジョブ形状に対応させてジョブ情報テーブル201に登録する。この重み計算部102が、「計算部」の一例にあたる。
対象形状決定部103は、ジョブ形状及び対応する重みの情報をジョブ情報テーブル201から取得する。そして、対象形状決定部103は、重みの降順にソートしてジョブ形状を並び替え、図4に示す形状ランキングテーブル202を作成する。
図4は、形状ランキングテーブルの一例の図である。形状ランキングテーブル202には、図4に示すように、重みが降順にソートされた状態で並んで登録されている。すなわち、図4の形状ランキングテーブル202では、上に行くにしたがい重みが大きくなり、下に行くにしたがい重みが小さくなる。そして、形状ランキングテーブル202には、降順に並べた重みに対応するジョブ形状が登録されている。具体的には、形状ランキングテーブル202では、長辺及び短辺の長さによりジョブ形状が表されている。以下では、重みの大きい順にジョブ形状の形状ランキングテーブル202における順位を用いて表す。例えば、図4にしめす最も重みの大きいジョブ形状221を第1位のジョブ形状とする。また、次に重みの大きいジョブ形状222を第2位のジョブ形状とする。続いて、ジョブ形状223を第3位のジョブ形状とし、ジョブ形状224を第4位のジョブ形状とする。
ここでは2次元ネットワークの場合の形状ランキングテーブル202を記載したが、3次元以上のネットワークの場合も同様に、各辺のサイズの大きさ順に記載することでジョブ形状を表すことができる。
次に、対象形状決定部103は、形状ランキングテーブル202の重みの大きい順にいくつのジョブ形状を事前ジョブ配置計算の対象とするかを決定する。ここで、対象形状決定部103によるジョブへ位置計算の対象とするジョブ形状の数の算出について詳細に説明する。
例えば、対象形状決定部103は、第1位のジョブ形状と第2位のジョブ形状の重みの比を計算する。続いて、対象形状決定部103は、第1位のジョブ形状が使用するノード数(以下、「使用ノード数」という。)に求めた比を乗算する。さらに、対象形状決定部103は、乗算結果に第2位のジョブ形状の使用ノード数を加算したものを第2位までの全使用ノード数とする。次に、対象形状決定部103は、第2位のジョブ形状と第3位のジョブ形状の重みの比を計算する。続いて、対象形状決定部103は、第2位までの全使用ノード数に求めた比を乗算する。さらに、対象形状決定部103は、乗算結果に第3位のジョブ形状の使用ノード数を加算したものを第3位までの全使用ノード数とする。対象形状決定部103は、以上の計算を繰り返す。そして、対象形状決定部103は、有る順位までの全使用ノード数が情報処理システム1の全体の計算ノード20の数、又は、予め設定した値を超えない順位まで実行し、その順位までのジョブ形状をジョブは事前ジョブ配置計算の対象とする。
以上のジョブへ位置計算の対象とするジョブ形状の数を求める計算式は、N=(Ni−1+n)[w/wi+1+0.5]と表される。ここで、wはジョブ形状の重みを降順でソートした重みの列であり、iは自然数である。また、nは、第i位のジョブ形状の使用ノード数である。また、Nは、第i位までの全使用ノード数である。さらに、[w/wi+1+0.5]の括弧は、ガウス記号であり、以下の最大の整数を表す。すなわち、[w/wi+1+0.5]は、w/wi+1を四捨五入した値となる。
対象形状決定部103は、上記式で表される計算をNall≧NかつNall≦Nk+1が成り立つ第k位まで繰り返す。そして、対象形状決定部103は、第k位のジョブ形状までのジョブ形状を事前ジョブ配置計算の対象とする。
対象形状決定部103は、事前ジョブ配置計算の対象とするジョブ形状の順位のうち最も低い順位を事前配置計算部104へ通知する。ここで、対象形状決定部103は、順位の代わりに、事前ジョブ配置計算の対象とするジョブ形状の重みのうち最も小さい重みの情報を事前配置計算部104へ通知してもよい。この対象形状決定部103が、「決定部」の一例にあたる。
事前配置計算部104は、定期的に事前ジョブ配置計算の対象とするジョブ形状の最低の順位を対象形状決定部103から受信する。例えば、事前配置計算部104は、重み計算部102による重みの計算タイミングに合わせて動作する。次に、事前配置計算部104は、受信した順位以上の順位の各ジョブ形状の重みを形状ランキングテーブル202から取得する。
次に、事前配置計算部104は、取得したジョブ形状が現在使用中の事前ジョブ配置で用いているジョブ形状と異なるか否かを判定する。さらに、事前配置計算部104は、取得したジョブ形状が現在使用中の事前ジョブ配置で用いているジョブ形状と同じ場合、取得したジョブ形状と使用中のジョブ形状との重みの差が予め設定された閾値以上か否かを判定する。ジョブ形状が同じ場合又はジョブ形状が異なっても重みの差が閾値以下の場合、事前配置計算部104は、現在使用中の事前ジョブ配置の使用を継続する。これにより、事前配置計算部104は、事前ジョブ配置を計算した場合の計算結果と現在使用している事前ジョブ配置とがほとんど変わらず事前ジョブ配置の計算の効果が低い場合に、事前ジョブ配置の計算を回避して、処理負荷を軽減することができる。
これに対して、ジョブ形状が異なる場合又は重みの差が閾値以上の場合、事前配置計算部104は、事前ジョブ配置計算を実行し、対象としたジョブ形状を有するジョブの配置を予め決定しておく事前ジョブ配置位置を決定する。ここで、事前配置計算部104は、事前ジョブ配置位置の計算方法として、箱詰め問題の解法などを用いる。なお、この計算では、事前配置計算部104は、計算ノード20のうち未使用のノードが最小となる配置を採用する。
そして、事前配置計算部104は、各ジョブ形状を有するジョブの事前ジョブ配置位置を示す情報が登録された事前配置テーブル203を作成する。事前配置テーブル203は、例えば、図5で表される。図5は、事前配置テーブルの一例の図である。
例えば、事前配置計算部104は、事前ジョブ配置計算の対象としたジョブ形状を特定するための長辺及び短辺の情報を登録する。ここでは2次元ネットワークの場合の事前配置テーブル203を記載したが、3次元以上のネットワークの場合も同様に、各辺のサイズの大きさ順に記載することでジョブ形状を表すことができる。
さらに、事前配置計算部104は、各ジョブ形状に対応させて、配置座標を登録する。本実施例では、事前配置計算部104は、各ジョブ形状の左上の角のX座標及びY座標を示し、さらに長辺の軸を示すことで、各ジョブ形状を有するジョブの配置座標を表す。この時のX座標及びY座標は、例えば、図1に示す二次元ネットワークとして配列された計算ノード20の左上端の計算ノード20を原点としている。ここで、本実施例では、左上の角の座標と長手方向の方向を用いてジョブの配置を示したが、これに限らず、例えば、左上及び右下の角の座標を示すことでジョブの配置を示しても良い。
ジョブマネージャ106は、利用者により投入されたジョブの情報をログインノード11から受信する。そして、ジョブマネージャ106は、ジョブキューに受信したジョブを蓄積していく。ジョブキューは、実行を待つジョブが順番に蓄積される列であり、ジョブ実行待ちキューとも呼ばれる。
ジョブマネージャ106は、ジョブキューに未実行のジョブがあるか否かを判定する。未実行のジョブがある場合、ジョブキューの先頭のジョブの情報を配置対象のジョブとする。そして、ジョブマネージャ106は、当該ジョブの配置を配置決定部105に依頼する。
配置決定部105は、ジョブマネージャ106から依頼されたジョブのジョブ形状が事前ジョブ配置計算の対象となったジョブ形状と一致するか否かを判定する。
そこで、先ず特定したジョブ形状が事前ジョブ配置計算の対象となったジョブ形状と一致する場合について説明する。ジョブ形状が一致する場合、配置決定部105は、事前配置テーブル203を参照し、当該ジョブ形状を有するジョブの事前ジョブ配置位置を特定する。そして、配置決定部105は、当該ジョブ形状を有するジョブの事前ジョブ配置位置で既に別のジョブが実行されているか否かを判定する。このとき、配置対象のジョブのジョブ形状が事前ジョブ配置計算において複数存在する場合、配置決定部105は、各事前ジョブ配置位置について既に別のジョブが実行されているか否かの判定を行う。
配置対象のジョブのジョブ形状に対応するジョブが実行されていない事前ジョブ配置位置がある場合、配置決定部105は、その事前ジョブ配置位置への配置対象のジョブの配置をジョブ実行管理部106へ通知する。配置決定部105は、ジョブ実行管理部106へ通知した配置対象のジョブの配置位置でジョブが実行中であるとの情報を保持する。
これに対して、配置対象のジョブのジョブ形状を有する事前ジョブ配置位置全てでジョブが実行されている場合、配置決定部105は、配置対象のジョブのジョブ形状が事前ジョブ配置計算の対象となったジョブ形状と一致しない場合と同様の処理により配置を決定する。
そこで次に、特定したジョブ形状が事前ジョブ配置計算の対象となったジョブ形状と一致しない場合について説明する。この場合、配置決定部105は、例えば、バックフィルと呼ばれるジョブの配置及び実行を行う。以下に詳細を説明する。
配置決定部105は、事前ジョブ配置でジョブの配置が行われていない領域を特定する。そして、配置決定部105は、特定した領域でジョブが実行されていない領域があるか否かを判定する。
ジョブが実行されていない領域がある場合、配置決定部105は、その領域に配置対象のジョブが内包可能か否か、すなわち配置できるか否かを判定する。配置できる場合、配置決定部105は、配置後の未使用ノードが最大になるなどの配置条件を満たすように配置対象のジョブの配置を決定し、ジョブマネージャ106へ通知する。配置決定部105は、ジョブマネージャ106へ通知した配置対象のジョブの配置位置でジョブが実行中であるとの情報を保持する。
これに対して、事前ジョブ配置でジョブの配置が行われていない領域に配置対象のジョブが配置できない場合、配置決定部105は、以下の処理を行う。配置決定部105は、事前ジョブ配置で1つのジョブが配置された領域で、且つ、別のジョブを実行していない領域のうち、配置対象のジョブを内包可能な領域の有無を判定する。そのような領域が有る場合、配置決定部105は、その領域に含まれる計算ノード20の数と配置対象のジョブが使用する計算ノード20の数との差が最小になる領域を特定する。そして、配置決定部105は、配置後の未使用ノードが最大になるなどの配置条件を満たすように特定した領域における配置対象のジョブの配置を決定し、ジョブマネージャ106へ通知する。配置決定部105は、ジョブマネージャ106へ通知した配置対象のジョブの配置位置でジョブが実行中であるとの情報を保持する。
これに対して、そのような領域がない場合、配置決定部105は、事前ジョブ配置で1つのジョブが配置された領域、且つ別のジョブを実行していない隣接した領域を連結した連結領域を生成する。そして、配置決定部105は、連結領域で、配置対象のジョブを内包可能な領域の有無を判定する。そのような連結領域が存在する場合、配置決定部105は、その連結領域に含まれる計算ノード20の数と配置対象のジョブが使用する計算ノード20の数との差が最小になる連結領域を特定する。そして、配置決定部105は、配置後の未使用ノードが最大になるなどの配置条件を満たすように特定した連結領域における配置対象のジョブの配置を決定し、ジョブマネージャ106へ通知する。配置決定部105は、ジョブマネージャ106へ通知した配置対象のジョブの配置位置でジョブが実行中であるとの情報を保持する。
ここで、連結領域の生成の一例について説明する。例えば、配置決定部105は、他のジョブが実行されていない事前ジョブ配置で1つのジョブが配置された領域のうち、連結可能な隣接する領域を特定する。そして、配置決定部105は、特定した領域を連結して配置対象のジョブを内包可能な領域とした場合に、事前ジョブ配置で1つのジョブが配置された領域の連結数が少ない組合せの連結方法を選択する。その上で、配置決定部105は、連結数が同じ組合せの場合、配置対象のジョブを配置した場合に、その連結領域の余りがより少なくなる組合せを選択する。
一方、配置対象のジョブが以上の配置条件のいずれも満足しない場合、配置決定部105は、配置対象のジョブの配置が困難と判定する。そして、ジョブマネージャ106に配置不可の情報を通知する。
そして、配置不可の情報を受信したジョブマネージャ106は、スケジューリングポリシーにしたがい後続や低優先度のジョブを先行して実行させるか否かを決める。他ジョブを先行実行させないスケジューリングポリシーの場合、実行中の別ジョブが終了するまで待ち、別ジョブが終了した時点で、再び配置決定部105にジョブキューの先頭ジョブの配置を依頼し、配置されるまでこの作業を繰り返す。
また、配置決定部105は、実行が完了したジョブの情報をジョブマネージャ106から取得する。そして、配置決定部105は、実行が完了したジョブを配置した位置が、ジョブが未実行の状態に遷移したと判定する。
これに対して、他の実行待ちジョブを先行して実行させるスケジューリングポリシーの場合、そのスケジューリングポリシーに従って、ジョブマネージャ106はバックフィルなどの従来方式により先行実行するジョブの候補を決定し、配置決定部105に当該候補ジョブの配置を依頼する。当該候補ジョブも配置できなかった場合、スケジューリングポリシーにしたがって、別の候補の配置を試みたり、現在実行中の別ジョブの終了まで待機したりする。この配置決定部105が、「ジョブ配置部」の一例にあたる。
ジョブマネージャ106は、配置するジョブ及び当該ジョブの配置位置の情報を配置決定部105から受信する。そして、ジョブマネージャ106は、指定された配置位置に対応する計算ノード20にジョブを割り当て、ジョブを実行させる。この時、ジョブマネージャ106は、実行させたジョブを情報取得部101へ通知する。
その後、ジョブマネージャ106は、実行させたジョブの完了の通知を計算ノード20から受信する。ジョブマネージャ106は、完了したジョブの情報を配置決定部105へ通知する。さらに、ジョブマネージャ106は、ジョブの割り当てから完了までの時間を計算してジョブの実行時間を算出する。その後、ジョブマネージャ106は、算出したジョブの実行時間をジョブの識別情報と共に情報取得部101へ通知する。
以上に説明した、情報取得部101、重み計算部102、対象形状決定部103、事前配置計算部104及び配置決定部105は、ジョブ管理ノード10の演算処理部が実行するジョブマネージャのジョブ配置機能として実現されることができる。
次に、図6及び図7を参照して、本実施例に係る情報処理システムによるジョブの配置の一例について説明する。図6は、従来の方法によるジョブの配置の一例を説明するための図である。図7は、実施例1に係る情報処理システムによるジョブの配置の一例を説明するための図である。
先ず、図6を参照して、従来の方法を用いてジョブを配置した場合について説明する。ここでは、8×8の計算ノード群400に対して、ジョブ形状301〜307のジョブが番号順に投入された場合で説明する。ここでは、従来の方法として、1つの連結する未使用領域の大きさがなるべく大きくなるようにジョブを配置し、且つ、下方向の隣接する未使用の計算ノード20の数がなるべく多くなるようにジョブを配置する方法を用いる。
先ず、ジョブ形状301のジョブは、計算ノード群400の左上の領域311に配置される。次に、ジョブ形状302のジョブは、下方向の計算ノード20の使用を避けて計算ノード群400上の領域312に配置される。次に、ジョブ形状303のジョブは、90度回転させて領域312の右に配置する。次に、ジョブ形状304のジョブは、上記配置ルールにしたがって領域311の下の314に配置される。
この後、長辺、短辺とも5であるジョブ形状305のジョブが投入される。しかし、計算ノード群400上には非矩形の未使用領域401しかない。ここには長辺、短辺とも5の形状のジョブを配置することができない。したがって、ジョブ形状305のジョブは待機することになり、処理が遅延してしまう。さらに、後続のジョブの先行実行を許さないスケジューリングポリシーの場合、ジョブ306〜307はジョブ形状要件を満たす未使用ノードはあるのに当該スケジューリングポリシーにより配置ならびに実行できず、ジョブ305の実行が開始されるまで処理が遅延する。
次に、図7を参照して本実施例に係る情報処理システム1によるジョブの配置の一例を説明する。この場合も、図6と同様に、8×8の計算ノード群400に対して、ジョブ形状301〜307のジョブが番号順に投入された場合で説明する。
この場合、ジョブ形状301〜307の重みの順位が上位であり、事前配置計算部104は、事前ジョブ配置計算によって、ジョブ形状301〜307のジョブの事前ジョブ配置位置を決定するものとする。具体的には、事前配置計算部104は、ジョブ形状301〜307のジョブを、それぞれ計算ノード群400上の領域321〜327に配置するように事前ジョブ配置位置を決定する。
先ず、配置決定部105は、事前ジョブ配置にしたがいジョブ形状301のジョブを計算ノード群400の左上の領域321に配置する。次に、配置決定部105は、事前ジョブ配置にしたがいジョブ形状302のジョブを計算ノード群400上の領域322に配置する。次に、配置決定部105は、事前ジョブ配置にしたがいジョブ形状303のジョブを領域323に配置する。次に、配置決定部105は、事前ジョブ配置にしたがいジョブ形状304のジョブを計算ノード群400上の領域324に配置する。次に、配置決定部105は、事前ジョブ配置にしたがいジョブ形状305のジョブを計算ノード群400上の領域325に配置する。次に、配置決定部105は、事前ジョブ配置にしたがいジョブ形状306のジョブを計算ノード群400上の領域326に配置する。次に、配置決定部105は、事前ジョブ配置にしたがいジョブ形状307のジョブを計算ノード群400上の領域327に配置する。
このように、本実施例に係る情報処理システムでは、従来のジョブの配置方法ではフラグメントが発生しジョブが待機する状態となる場合でも、予め決めておいた配置にしたがいジョブを配置することで、ジョブを無駄なく計算ノードに配置することができる。
次に、図8を参照して、本実施例に係るジョブ管理ノード10による事前ジョブ配置処理について説明する。図8は、ジョブ管理ノードによる事前配置計算処理のフローチャートである。
情報取得部101は、ジョブ形状及びジョブの実行時間を含むジョブ情報をジョブ実行管理部106から取得する(ステップS101)。そして、情報取得部101は、取得したジョブ情報でジョブ情報テーブル201を更新する。
重み計算部102は、各ジョブ形状の出現回数及び実行時間をジョブ情報テーブル201から取得する。そして、重み計算部102は、各ジョブ形状の重みを計算する(ステップS102)。その後、重み計算部102は、各ジョブ形状の重みをジョブ情報テーブル201へ登録する。
対象形状決定部103は、重みの降順にジョブ形状をソートする(ステップS103)。そして、対象形状決定部103は、ソート結果を形状ランキングテーブル202に登録する。
対象形状決定部103は、事前ジョブ配置計算の対象とするジョブ形状の最低順位を特定する。そして、対象形状決定部103は、特定した最低順位以上の順位のジョブ形状を事前ジョブ配置計算の対象とするジョブ形状として選択する(ステップS104)。対象形状決定部103は、選択したジョブ形状を事前配置計算部104へ通知する。
事前配置計算部104は、事前ジョブ配置計算の対象とするジョブ形状のジョブを、重みの比率にしたがい同時に実行する場合の配置を算出することで事前ジョブ配置計算を実行する(ステップS105)。
事前配置計算部104は、事前ジョブ配置計算によって求めた事前ジョブ配置位置を事前配置テーブル203に格納する。これにより、事前配置計算部104は、事前ジョブ配置計算結果を記憶部107に記憶させる(ステップS106)。
次に、図9及び10を参照して、本実施例に係るジョブ管理ノード10によるジョブの配置処理について説明する。図9は、実施例1に係るジョブマネージャによるジョブの起動処理全体のフローチャートである。図10は、配置決定部によるジョブの配置処理のフローチャートである。
ジョブマネージャ106は、未使用の計算ノード20があるか否かを判定する(ステップS201)。未使用の計算ノード20が無い場合(ステップS201;否定)、ジョブマネージャ106は、未使用の計算ノードが発生するまで待機する。
これに対して、未使用の計算ノード20がある場合(ステップS201;肯定)、ジョブマネージャ106は、ジョブキューにジョブがあるか否かを判定する(ステップS202)。ジョブキューにジョブが無ければ(ステップS202:否定)、ジョブマネージャ106は、ジョブの起動処理を終了する。
これに対して、ジョブキューにジョブが存在する場合(ステップS202:肯定)、ジョブマネージャ106は、ポインタをジョブキューの先頭にセットする(ステップS203)。
次に、ジョブマネージャ106は、ポインタが示すジョブである配置対象のジョブの実行時の配置計算を配置決定部105に依頼する(ステップS204)。
そして、配置決定部105は、配置できたらその配置情報を、配置できなかったら配置不可であったことをジョブマネージャ106に報告する。ジョブマネージャ106は、配置決定部105からの報告を受けて、配置対象ジョブの配置が可能か否かを判定する(ステップS205)。配置が可能な場合(ステップS205:肯定)、ジョブマネージャ106は、配置決定部105が戻した配置情報にしたがい配置対象のジョブを計算ノード20のジョブ管理マネージャにアプリケーションの実行を依頼する(ステップS206)。その後、ジョブ管理マネージャ106は、ステップS201へ戻る。
これに対して、配置が困難な場合(ステップS205:否定)、ジョブマネージャ106は、スケジューリングポリシーに従い、ジョブキュー上の別のジョブが起動できるか否かを判定する(ステップS207)。別のジョブが起動不可の場合(ステップS207:否定)、ジョブマネージャ106は、ステップS201へ戻る。
これに対して、別のジョブが起動できるポリシーの場合(ステップS207:肯定)、ジョブマネージャ106は、ポインタを起動候補のジョブにセットする(ステップS208)。その後、ジョブマネージャ106は、ステップS204へ戻る。
次に、図10を参照して、配置決定部105によるジョブの配置処理の詳細について説明する。図10は、配置決定部によるジョブの配置処理のフローチャートである。具体的には、図10に示すフローは、図9におけるステップS204における依頼をジョブマネージャ106から受けた場合の配置決定部105が実行する処理の一例である。
配置決定部105は、配置対象のジョブのジョブ形状が事前ジョブ配置されたジョブ形状であるか否を判定する(ステップS301)。事前ジョブ配置されたジョブ形状でない場合(ステップS301:否定)、配置決定部105は、ステップS304へ進む。
これに対して、事前ジョブ配置されたジョブ形状である場合(ステップS301:肯定)、配置決定部105は、配置対象のジョブと同じジョブ形状のジョブが配置された事前ジョブ配置位置で別ジョブが実行されているか否かを判定する(ステップS302)。別ジョブが実行されていない場合(ステップS302:否定)、配置決定部105は、別ジョブが実行されていない事前ジョブ配置位置に配置対象のジョブを配置することを決定する(ステップS303)。その後、配置決定部105は、ステップS308へ進む。
一方、別のジョブが実行中の場合(ステップS302:肯定)、配置決定部105は、事前ジョブ配置において未使用の計算ノード群に配置対象のジョブが内包可能か否かを判定する(ステップS304)。ただし、この事前ジョブ配置において未使用の計算ノード群は別ジョブが実行されていないものとする。内包可能の場合(ステップS304:肯定)、配置決定部105は、事前ジョブ配置において未使用の計算ノード群で且つ配置対象のジョブを内包可能な計算ノード群に、配置対象のジョブを配置することを決定する(ステップS307)。
これに対して、内包困難な場合(ステップS304:否定)、事前ジョブ配置に用いられた他のジョブ形状に配置対象のジョブが内包可能か否かを判定する(ステップS305)。ただし、事前ジョブ配置に用いられた他のジョブ形状の配置位置において別ジョブが実行されていないものとする。内包可能の場合(ステップS305:肯定)、配置決定部105は、事前ジョブ配置に用いられた他のジョブ形状で且つ配置対象のジョブを内包可能な配置位置に、配置対象のジョブを配置することを決定する(ステップS307)。
これに対して、内包困難な場合(ステップS305:否定)、事前ジョブ配置に用いられた隣接する他のジョブ形状を連結して生成した連結形状に配置対象のジョブが内包可能か否かを判定する(ステップS306)。ただし、連結形状の配置位置において別ジョブが実行されていないものとする。内包可能の場合(ステップS306:肯定)、配置決定部105は、連結形状で且つ配置対象のジョブを内包可能な配置位置に、配置対象のジョブを配置することを決定する(ステップS307)。
その後、配置決定部105は、配置完了情報として決定した配置位置をジョブマネージャ106に戻り値として通知する(ステップS308)。
一方、連結形状に配置対象のジョブが内包困難な場合(ステップS306:否定)、配置決定部105は、配置不可であったことを示す戻り値をジョブマネージャ106に戻り値として通知する(ステップS309)。
以上に説明したように、本実施例に係る管理装置であるジョブ管理ノードは、統計情報にしたがい出現頻度が高く且つ事前配置の意義が高いジョブ形状を決定し、その決定したジョブ形状の最適な配置位置を事前に決定しておく。ジョブが投入されたときに、事前にあらかじめ配置計算の対象としたジョブ形状と同じであれば、事前に計算した配置位置にジョブを配置することにより、未使用の計算ノードの数を抑えてジョブを配置することができ、計算ノードの使用効率を向上させることができる。また、事前に配置位置が決定されたジョブ形状については、配置計算が不要になる場合があり、ジョブ投入のスループットを向上させることができる。
次に実施例2に係るジョブ管理ノードについて説明する。本実施例に係るジョブ管理ノードは、投入されるジョブの傾向の変化を検出して事前ジョブ配置の再計算を行うことが実施例1と異なるものである。本実施例に係るジョブ管理ノード10も、図2のブロック図で表される。以下の説明では、実施例1と同様の機能を有する各部については説明を省略する。
重み計算部102は、前回の重み計算の対象としたジョブ数の一定の割合のジョブ数がジョブマネージャ106により実行されると、重み計算を行う。例えば、重み計算部102は、前回の重み計算の対象としたジョブ数の10%の数のジョブがジョブマネージャ106により実行された場合に重み計算を行う。
例えば、重み計算部102は、実行されたジョブの数を数えるための再計算契機カウンタを有する。重み計算部102は、ジョブマネージャ106からのジョブ実行の通知を受ける。続いて、重み計算部102は、再計算契機カウンタをインクリメントする。そして、重み計算部102は、再計算契機カウンタの値が前回の重み計算の対象としたジョブ数の10%に達したか否かを判定する。10%に達した場合、重み計算部102は、重み計算を実行する。これに対して、10%に達していない場合、重み計算部102は、ジョブマネージャ106からの次のジョブ実行の通知まで待機する。
対象形状決定部103は、重み計算部102より重み計算が実行されると、ジョブ形状のソート及び事前ジョブ配置に用いるジョブ形状の選択を行う。
ここで、本実施例では、実行されたジョブ数を基準として重みの計算及びジョブ形状の選択を実行した。これは、重み計算部102及び対象形状決定部103は、ある程度実行されたジョブ数が多くないと正確な投入されるジョブの傾向の変化を把握できないからである。つまり、本実施例では、重み計算部102及び対象形状決定部103は、投入されるジョブの傾向の変化をより正確に把握するために、実行されたジョブ数を基準として重みの計算及びジョブ形状の選択を実行する。ただし、基準とする情報は他の情報を用いてもよい。例えば、重み計算部102及び対象形状決定部103は、実施例1と同様に一定期間経過する毎に重みの計算及びジョブ形状の選択を実行してもよい。
事前配置計算部104は、事前ジョブ配置計算の対象とするジョブ形状、各ジョブ形状の順位及び各ジョブ形状の重みを定期的に形状ランキングテーブル202から取得する。事前配置計算部104は、取得した情報を少なくとも次の情報取得タイミングまで記憶しておく。
また、事前配置計算部104は、ジョブ形状の種類の差により再計算を実行するか否かを判定するための種類閾値を記憶する。また、事前配置計算部104は、各ジョブ形状の重み差により再計算を実行するか否かを判定するための重み閾値を記憶する。
事前配置計算部104は、前回取得した情報と今回取得した情報とを比較する。そして、順位が上位のジョブ形状において前回と今回で異なるジョブ形状の数が形状相違閾値以上の場合、事前配置計算部104は、ジョブ傾向の変化を検出する。
また、異なるジョブ形状の数が形状相違閾値より小さい場合、事前配置計算部104は、各ジョブ形状の重みの差が重み閾値以上の場合、事前配置計算部104は、ジョブ傾向の変化を検出する。
事前配置計算部104は、ジョブ傾向の変化を検出した場合、事前ジョブ配置計算を再実行する。事前配置計算部104は、実施例1と同様に箱詰め問題の解法などを用いて事前ジョブ配置計算の再実行を行う。
次に、図11を参照して、本実施例に係るジョブ管理ノード10による事前ジョブ配置計算の処理について説明する。図11は、実施例2に係るジョブ管理ノードによる事前ジョブ配置計算の処理のフローチャートである。
重み計算部102は、ジョブマネージャ106からのジョブ実行の通知を受けて、再計算契機カウンタをインクリメントする(ステップS401)。
そして、重み計算部102は、再計算契機カウンタが規定のジョブ数に達したか否かを判定する(ステップS402)。規定のジョブ数に達していない場合(ステップS402:否定)、ジョブ管理ノード10は、事前ジョブ配置計算の処理を終了する。
これに対して、規定のジョブ数に達した場合(ステップS402:肯定)、重み計算部102は、再計算契機カウンタをリセットする(ステップS403)。
そして、重み計算部102は、ジョブ情報テーブル201から各ジョブ形状の出現回数及び実行時間の合計を含むジョブ情報を取得する(ステップS404)。
次に、重み計算部102は、各ジョブ形状の重みを計算する(ステップS405)。その後、重み計算部102は、各ジョブ形状の重みをジョブ情報テーブル201へ登録する。
対象形状決定部103は、重み計算部102による重みの計算の実施を受けて、各ジョブ形状の重みをジョブ情報テーブル201から取得する。そして、対象形状決定部103は、重みの降順にジョブ形状をソートする(ステップS406)。そして、対象形状決定部103は、ソート結果を形状ランキングテーブル202に登録する。
対象形状決定部103は、事前ジョブ配置計算の対象とするジョブ形状の最低順位を特定する。そして、対象形状決定部103は、特定した最低順位以上の順位のジョブ形状を今回の事前ジョブ配置計算の対象とするジョブ形状として選択する(ステップS407)。さらに、対象形状決定部103は、今回選択したジョブ形状及び各ジョブ形状の重みを記憶しておく。
次に、対象形状決定部103は、記憶している前回選択したジョブ形状の種類と今回選択したジョブ形状の種類とを比較する。そして、対象形状決定部103は、異なる種類のジョブ形状の数が形状相違閾値を超えているか否かにより、選択したジョブ形状が前回と異なるか否かを判定する(ステップS408)。選択したジョブ形状が前回と異なる場合(ステップS408:肯定)、対象形状決定部103は、投入されるジョブの傾向の変化を検出し、ステップS410へ進む。
これに対して、選択したジョブ形状が前回と異ならない場合(ステップS408:否定)、対象形状決定部103は、記憶している前回選択した各ジョブ形状の重みと今回選択した各ジョブ形状の重みとを比較する。そして、対象形状決定部103は、重みの差が重み閾値を超えるジョブ形状であるか否かにより、重みが前回と異なるか否かを判定する(ステップS409)。選択したジョブ形状が前回と同じである場合(ステップS409:否定)、対象形状決定部103は、事前ジョブ配置計算の処理を終了する。
これに対して、選択したジョブ形状が前回と異なる場合(ステップS409:肯定)、対象形状決定部103は、投入されるジョブの傾向の変化を検出したと判定し、ステップS410へ進む。
事前配置計算部104は、事前ジョブ配置計算の対象とするジョブ形状のジョブを、重みの比率にしたがい同時に実行する場合の配置を算出することで事前ジョブ配置計算を実行する(ステップS410)。
事前配置計算部104は、事前ジョブ配置計算によって求めた事前ジョブ配置位置を事前配置テーブル203に格納する。これにより、事前配置計算部104は、事前ジョブ配置計算結果を記憶部107に記憶させる(ステップS411)。
以上に説明したように本実施例に係る管理装置であるジョブ管理ノードは、投入されるジョブの傾向が変化したことを受けて、事前ジョブ配置を再計算する。例えば、定期的に再計算を行う場合、ジョブ傾向の変化が少ないシステムでは事前ジョブ配置の計算を繰り返すことは計算の無駄になるおそれがある。また、変化の激しいシステムでは、再計算の間の変化が大きく資源利用効率の低下が改善されないおそれがある。これに対して、本実施例に係るジョブ管理ノードは、投入されるジョブの傾向に応じて事前ジョブ配置を行うことにより、計算による処理負荷の軽減及び資源利用効率の向上を実現することができる。
(ハードウェア構成)
次に、図12を参照して、各実施例に係るジョブ管理ノード10のハードウェア構成について説明する。図12は、ジョブ管理ノードのハードウェア構成図である。
ジョブ管理ノード10は、CPU901、メモリ902、Input/Output(I/O)バスアダプタ903、ネットワークアダプタ904及び905、ディスクアダプタ906、並びに、ディスク907を有する。
メモリ902及びI/Oバスアダプタ903は、システムバス908によりCPU901に接続される。
I/Oバスアダプタ903は、I/Oバス909を介して、ネットワークアダプタ904及び905、並びに、ディスクアダプタ906と接続する。
ネットワークアダプタ904は、情報処理システム1の外部のネットワークへ接続する。また、ネットワークアダプタ905は、情報処理システム1の内部のネットワークへ接続する。すなわち、ジョブ管理ノード10は、ネットワークアダプタ905を介して計算ノード20と通信を行う。CPU901は、I/Oバスアダプタ903を介してネットワークアダプタ904及び905に接続するネットワークに対してデータの送受信を行う。
ディスクアダプタ906には、ディスク907が接続される。ディスク907は、ハードディスク等の記憶装置であり、図2に例示した記憶部107の機能を実現する。CPU901は、I/Oバスアダプタ903及びディスクアダプタ906を経由してディスク907に対するデータの読み書きを行う。また、ディスク907には、図2に例示した情報取得部101、重み計算部102、対象形状決定部103、事前配置計算部104、配置決定部105及びジョブ実行管理部106が実行する処理を実現するための各種プログラムを記憶する。
CPU901及びメモリ902は、例えば、図2に例示した情報取得部101、重み計算部102、対象形状決定部103、事前配置計算部104、配置決定部105及びジョブ実行管理部106などの機能を実現する。例えば、CPU901は、ディスク907が記憶する各種プログラムを読み出し、メモリ902上に展開して上述した機能を実現するプロセスを生成する。そして、CPU901は、メモリ902上に生成したプロセスを実行させることで各部の機能を実現する。
次に、図13を参照して、各実施例に係る計算ノード20のハードウェア構成について説明する。図13は、計算ノードのハードウェア構成図である。
計算ノード20は、CPU911、メモリ912、インタコネクトアダプタ913、インターコネクトルーラ918、I/Oバスアダプタ914、ネットワークアダプタ915、ディスクアダプタ916及びディスク917を有する。ただし、図13は、計算ノード20のハードウェア構成の一例であり、例えば、点線で表される領域920の内部の各部を有さない計算ノード20も存在する。
メモリ912、インタコネクトアダプタ913及びI/Oバスアダプタ914は、システムバス918によりCPU911に接続する。
I/Oバスアダプタ914は、I/Oバス919を介して、ネットワークアダプタ915及びディスクアダプタ916と接続する。
インターコネクトルータ918は、隣接する計算ノード20間のインターコネクトルータ918へ接続する。CPU911は、I/Oバスアダプタ914及びインタコネクトアダプタ913、インターコネクトルータ918を介して他の計算ノード20と通信を行う。
また、ネットワークアダプタ915は、情報処理システム1の内部のネットワークへ接続する。CPU911は、ネットワークアダプタ915に接続するネットワークに対してデータの送受信を行う。
ディスクアダプタ916には、ディスク917が接続する。ディスク917は、ハードディスク等の記憶装置である。CPU911は、I/Oバスアダプタ914及びディスクアダプタ916を経由してディスク917に対するデータの読み書きを行う。
CPU911及びメモリ912は、例えば、ジョブの実行などの機能を実現する。
1 情報処理システム
10 ジョブ管理ノード
11 ログインノード
12 システム管理ノード
13 ファイルサーバ
20 計算ノード
101 情報取得部
102 重み計算部
103 対象形状決定部
104 事前配置計算部
105 配置決定部
106 ジョブマネージャ
107 記憶部
201 ジョブ情報テーブル
202 形状ランキングテーブル
203 事前配置テーブル

Claims (10)

  1. 複数の情報処理装置及び前記情報処理装置が処理するジョブの前記情報処理装置への割り当てを管理する管理装置を有する情報処理システムであって、
    前記管理装置は、
    所定期間に投入されたジョブに関する情報を取得する情報取得部と、
    前記ジョブに関する情報を基に、各ジョブを実行させる情報処理装置の予め決められた配置状態を表すジョブの形状毎の、当該ジョブの形状の出現頻度や占有時間に応じて変化し且つそれぞれのジョブがジョブ全体の実行性能をどの程度向上又は低下させるかを表す影響度を求める算出部と、
    前記影響度が高い順に所定数のジョブの形状を計算対象形状として決定する形状決定部と、
    前記計算対象形状及び前記影響度を基に、前記情報処理装置それぞれへのジョブを割り当て方であるジョブの事前配置を決定する事前配置計算部と、
    投入されたジョブが前記計算対象形状のいずれかに一致する場合、前記事前配置にしたがい投入されたジョブを前記情報処理装置へ割り当てるジョブ配置部と
    を備えたことを特徴とする情報処理システム。
  2. 前記情報取得部は、ジョブに関する情報として所定期間におけるジョブの形状毎の実行時間及び投入回数を取得し、
    前記算出部は、前記所定期間におけるジョブの形状毎の実行時間及び投入回数を基にジョブの形状毎の影響度を求める
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記算出部は、ジョブの実行時間が長いほど当該ジョブの影響度を高くし、ジョブの投入回数が多いほど当該ジョブの影響度を高くすることを特徴とする請求項2に記載の情報処理システム。
  4. 前記事前配置計算部は、前記影響度を基に各前記計算対象形状を有するジョブのそれぞれについて同時に配置する個数を求め、求めた前記個数にしたがい各前記計算対象形状を有するジョブの配置を決定することを特徴とする請求項1〜3のいずれか1項に記載の情報処理システム。
  5. 前記ジョブ配置部は、投入されたジョブが前記計算対象形状以外の形状を有する対象外ジョブの場合、又は、投入されたジョブの形状が前記計算対象形状であり且つ前記事前配置における前記投入されたジョブの形状と一致する前記計算対象形状の配置位置に対応する前記情報処理装置に他のジョブが割り当てられている場合、前記計算対象形状のジョブが配置される以外の領域で、且つ前記投入されたジョブを内包可能な領域に投入されたジョブを配置する請求項1〜4のいずれか1項に記載の情報処理システム。
  6. 前記ジョブ配置部は、投入されたジョブが前記計算対象形状以外の形状を有する対象外ジョブの場合、又は、投入されたジョブの形状が前記計算対象形状であり且つ前記事前配置における前記投入されたジョブの形状と一致する前記計算対象形状の配置位置に対応する前記情報処理装置に他のジョブが割り当てられている場合、1つの前記計算対象形状のジョブが配置された領域であり且つ前記投入されたジョブを内包可能な配置済未使用領域に対応する前記情報処理装置に他のジョブが未割り当てである場合、前記投入されたジョブを前記配置済未使用領域に対応する前記情報処理装置へ割り当てることを特徴とする請求項1〜4のいずれか1項に記載の情報処理システム。
  7. 前記ジョブ配置部は、前記配置済未使用領域には、前記投入されたジョブを内包できない場合、前記配置済未使用領域を複数連結して、前記投入されたジョブを内包できる連結領域を作成し、前記連結領域に対応する前記情報処理装置に前記投入されたジョブを割り当てることを特徴とする請求項に記載の情報処理システム。
  8. 前記事前配置計算部は、所定間隔で前記計算対象形状及び前記影響度を取得し、前回決定したジョブの配置と比較して、所定期間に投入されたジョブにおける出現頻度の高いジョブが変化した場合に、前記事前配置を再度計算することを特徴とする請求項1〜5のいずれか1項に記載の情報処理システム。
  9. 所定期間に投入されたジョブに関する情報を取得し、
    前記ジョブに関する情報を基に、各ジョブを実行させる情報処理装置の予め決められた配置状態を表すジョブの形状毎の、当該ジョブの形状の出現頻度や占有時間に応じて変化し且つそれぞれのジョブがジョブ全体の実行性能をどの程度向上又は低下させるかを表す影響度を求め、
    前記影響度が高い順に所定数のジョブの形状を計算対象形状として特定し、
    前記計算対象形状及び前記影響度を基に、複数の情報処理装置のそれぞれへのジョブを割り当て方であるジョブの事前配置を決定し、
    投入されたジョブが前記計算対象形状に含まれる場合、前記事前配置にしたがい投入されたジョブを前記情報処理装置へ割り当てる
    処理をコンピュータに実行させることを特徴とする管理装置制御プログラム。
  10. 複数の情報処理装置及び前記情報処理装置が処理するジョブの前記情報処理装置への割り当てを管理する管理装置を有する情報処理システムの制御方法であって、
    前記管理装置に
    所定期間に投入されたジョブに関する情報を取得させ、
    前記ジョブに関する情報を基に、各ジョブを実行させる情報処理装置の予め決められた配置状態を表すジョブの形状毎の、当該ジョブの形状の出現頻度や占有時間に応じて変化し且つそれぞれのジョブがジョブ全体の実行性能をどの程度向上又は低下させるかを表す影響度を求めさせ、
    前記影響度が高い順に所定数のジョブの形状を計算対象形状として特定させ、
    前記計算対象形状及び前記影響度を基に、複数の情報処理装置のそれぞれへのジョブを割り当て方であるジョブの事前配置を決定させ、
    投入されたジョブが前記計算対象形状に含まれる場合、前記事前配置にしたがい投入されたジョブを前記情報処理装置へ割り当てさせる
    ことを特徴とする情報処理システムの制御方法。
JP2013205535A 2013-09-30 2013-09-30 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法 Expired - Fee Related JP6221588B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013205535A JP6221588B2 (ja) 2013-09-30 2013-09-30 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法
EP14179916.3A EP2854029A3 (en) 2013-09-30 2014-08-05 Information processing system, management device control program, and control method of information processing system
US14/457,172 US9298500B2 (en) 2013-09-30 2014-08-12 Information processing system and control method of information processing system for managing jobs in a distributed multi-node environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013205535A JP6221588B2 (ja) 2013-09-30 2013-09-30 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2015069577A JP2015069577A (ja) 2015-04-13
JP6221588B2 true JP6221588B2 (ja) 2017-11-01

Family

ID=51300555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013205535A Expired - Fee Related JP6221588B2 (ja) 2013-09-30 2013-09-30 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法

Country Status (3)

Country Link
US (1) US9298500B2 (ja)
EP (1) EP2854029A3 (ja)
JP (1) JP6221588B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160034191A1 (en) * 2014-08-01 2016-02-04 Kabushiki Kaisha Toshiba Grid oriented distributed parallel computing platform
US20170235608A1 (en) * 2016-02-16 2017-08-17 Linkedin Corporation Automatic response to inefficient jobs in data processing clusters
US11226841B2 (en) * 2016-03-22 2022-01-18 Mitsubishi Electric Corporation Information processing system, information processing device, and information processing method
JP6683046B2 (ja) * 2016-07-13 2020-04-15 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US10078520B1 (en) * 2017-03-16 2018-09-18 Flexera Software Llc Calculating wait time for batch scheduler jobs
JP6885193B2 (ja) 2017-05-12 2021-06-09 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US11200330B2 (en) 2018-08-01 2021-12-14 Red Hat, Inc. Secure storage access through rate limitation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06243113A (ja) * 1993-02-19 1994-09-02 Fujitsu Ltd 並列計算機における計算モデルのマッピング法
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
JP3927181B2 (ja) 2004-01-22 2007-06-06 日本電信電話株式会社 グリッドシステムにおけるジョブ割付方法及びグリッド仲介装置
US7971204B2 (en) * 2004-03-13 2011-06-28 Adaptive Computing Enterprises, Inc. System and method of co-allocating a reservation spanning different compute resources types
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US7712100B2 (en) * 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060112388A1 (en) * 2004-11-22 2006-05-25 Masaaki Taniguchi Method for dynamic scheduling in a distributed environment
US8020161B2 (en) * 2006-09-12 2011-09-13 Oracle America, Inc. Method and system for the dynamic scheduling of a stream of computing jobs based on priority and trigger threshold
ITTO20070258A1 (it) * 2007-04-13 2007-07-13 St Microelectronics Srl "procedimento e sistema di schedulazione, griglia computazionale e prodotto informatico relativi"
US10339227B1 (en) * 2007-06-08 2019-07-02 Google Llc Data center design
US8205208B2 (en) * 2007-07-24 2012-06-19 Internaitonal Business Machines Corporation Scheduling grid jobs using dynamic grid scheduling policy
US8516494B2 (en) * 2008-06-16 2013-08-20 International Business Machines Corporation Executing an application on a parallel computer
US8875142B2 (en) * 2009-02-11 2014-10-28 Hewlett-Packard Development Company, L.P. Job scheduling on a multiprocessing system based on reliability and performance rankings of processors and weighted effect of detected errors
JP5402226B2 (ja) * 2009-05-13 2014-01-29 富士通株式会社 管理装置、情報処理システム、情報処理システムの制御プログラムおよび情報処理システムの制御方法
US8332862B2 (en) * 2009-09-16 2012-12-11 Microsoft Corporation Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
JP2011243112A (ja) 2010-05-20 2011-12-01 Hitachi Ltd システム管理方法、及び管理装置
US8776076B2 (en) * 2010-07-20 2014-07-08 Nec Laboratories America, Inc. Highly scalable cost based SLA-aware scheduling for cloud services
US8438570B2 (en) * 2010-07-31 2013-05-07 International Business Machines Corporation Resource allocator with knowledge-based optimization
JP5429382B2 (ja) * 2010-08-10 2014-02-26 富士通株式会社 ジョブ管理装置及びジョブ管理方法
US20120079501A1 (en) * 2010-09-27 2012-03-29 Mark Henrik Sandstrom Application Load Adaptive Processing Resource Allocation
US8640137B1 (en) * 2010-08-30 2014-01-28 Adobe Systems Incorporated Methods and apparatus for resource management in cluster computing
JP5414730B2 (ja) 2011-04-05 2014-02-12 株式会社東芝 配置計画生成装置及びプログラム
US8689220B2 (en) * 2011-11-30 2014-04-01 International Business Machines Corporation Job scheduling to balance energy consumption and schedule performance

Also Published As

Publication number Publication date
EP2854029A3 (en) 2016-04-27
US9298500B2 (en) 2016-03-29
EP2854029A2 (en) 2015-04-01
US20150095916A1 (en) 2015-04-02
JP2015069577A (ja) 2015-04-13

Similar Documents

Publication Publication Date Title
JP6221588B2 (ja) 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法
US9875135B2 (en) Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment
Fan et al. Scheduling beyond CPUs for HPC
CN107111517B (zh) 针对归约器任务的虚拟机优化分配和/或生成
US20110154353A1 (en) Demand-Driven Workload Scheduling Optimization on Shared Computing Resources
Tang et al. Reducing fragmentation on torus-connected supercomputers
Pollard et al. Evaluation of an interference-free node allocation policy on fat-tree clusters
CN111104211A (zh) 基于任务依赖的计算卸载方法、系统、设备及介质
WO2018126771A1 (zh) 一种存储控制器及io请求处理方法
KR101695013B1 (ko) 적응형 자원 할당 및 관리 방법
JPH08161275A (ja) 並列プロセッサ装置
KR101770191B1 (ko) 자원 할당 방법 및 그 장치
CN111343288B (zh) 作业调度方法、系统及计算设备
Deng et al. A data and task co-scheduling algorithm for scientific cloud workflows
Ababneh et al. A new window-based job scheduling scheme for 2D mesh multicomputers
CN114500355A (zh) 路由方法、片上网络、路由节点和路由装置
Stavrinides et al. Scheduling single-task jobs along with bag-of-task-chains in distributed systems
Syed HAMM: A hybrid algorithm of Min-Min and Max-Min task scheduling algorithms in cloud computing
CN103997515A (zh) 一种分布式云中计算中心选择方法及其应用
JP5577745B2 (ja) クラスタシステム、プロセス配置方法、及びプログラム
Mishra et al. Communication-aware job scheduling using slurm
CN110073321B (zh) 一种存储控制器及io请求处理方法
Ru et al. Providing fairer resource allocation for multi-tenant cloud-based systems
JP2019046041A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
Dimitriadou et al. Multi-site allocation policies on a grid and local level

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170918

R150 Certificate of patent or registration of utility model

Ref document number: 6221588

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees