JP6364880B2 - 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法 - Google Patents

並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法 Download PDF

Info

Publication number
JP6364880B2
JP6364880B2 JP2014072704A JP2014072704A JP6364880B2 JP 6364880 B2 JP6364880 B2 JP 6364880B2 JP 2014072704 A JP2014072704 A JP 2014072704A JP 2014072704 A JP2014072704 A JP 2014072704A JP 6364880 B2 JP6364880 B2 JP 6364880B2
Authority
JP
Japan
Prior art keywords
job
resource
time
free
map
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
JP2014072704A
Other languages
English (en)
Other versions
JP2015194923A (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 JP2014072704A priority Critical patent/JP6364880B2/ja
Priority to US14/666,353 priority patent/US9588818B2/en
Publication of JP2015194923A publication Critical patent/JP2015194923A/ja
Application granted granted Critical
Publication of JP6364880B2 publication Critical patent/JP6364880B2/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/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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法に関する。
ジョブスケジューラが複数のジョブを予め計算資源に割り当てるスケジューリングを行い、計算資源に割り当てられたジョブが順次実行される並列計算機システムがある。図1は、ジョブスケジューラによる一般的なジョブ割り当ての流れを示す図であり、図2は、「ジョブ選択」処理及び「計算資源選択」処理の流れを示すフローチャートである。
ジョブ割り当ては、以下のようにして行われる。図1に示すように、ジョブスケジューラは、「ジョブ受け付け」処理において、各ユーザから投入されたジョブを受け付ける。ジョブスケジューラは、一定間隔で投入されたジョブをまとめ、ジョブ選択処理を実行する。
ジョブ選択処理では、最初に、ジョブスケジューラは、ジョブ選択処理の対象の複数のジョブ(実行待ちジョブ)の全てを所定の優先度(フェアウェア制御、グループ優先度制御など)に従って並べ換え(ソート)する(図2の1)。次に、ジョブスケジューラは、ソートされたジョブ列から先頭のジョブを取り出し、変数“JOB”に設定する(図2の2)。次に、ジョブスケジューラは、計算資源選択処理のサブルーチンを呼び出し、変数“JOB”に設定されたジョブに対する計算資源を割り当てる(図2の3)。
計算資源選択処理では、ジョブの要求量(ジョブの実行に要する計算ノード数,計算ノードの形状,ジョブの実行所要時間(経過時間制限値)等)に従って、空き状態の計算資源(空き資源)を探索し、ジョブを計算資源に割り当てる。計算資源選択処理は、ジョブ列をなす全てのジョブに対して実行される(図2の4のループ参照)。計算資源が割り当てられた各ジョブは、現在時刻が開始予定時刻になると、割り当てられた計算資源を用いて実行される(図1、「ジョブ実行」)。
各ジョブに対する計算資源の割り当て状況は、図1に示すようなスケジューリングマップMで表現することができる。スケジューリングマップMは、例えば、縦軸に計算資源の軸、横軸に時間軸をとり、計算資源と時間との格子をなす横方向の線分は単位時間を示し、縦方向の線分は計算資源の単位を示す。計算資源の単位は「計算ノード」と呼ばれる。計算ノードは、単一のプロセッサ(例えばCPU)又は複数のプロセッサ(プロセッサ群)で形成される。
上述したジョブ選択処理及び計算資源選択処理によって、実行待ちの各ジョブは、優先度が高い順で順次実行開始されるように1つずつ計算資源に割り当てられていく。但し、バックフィルスケジューリングの対象となるジョブ(バックフィルジョブ)は、当該ジョブより高い優先度を有するジョブの実行開始を妨げない範囲で、優先度が高いジョブを追い越して計算資源に割り当てられる。
特開平7−141305号公報 特開2008−107875号公報 特開2006−146864号公報
しかしながら、上述した従来技術では、以下の問題があった。すなわち、ジョブの割当に伴って、或る時間帯に亘って或る計算ノード又は計算ノード群に対してジョブが割り当てられていない空き状態の計算資源(空き資源)の隙間が生じることがある。このような隙間に未割り当てのジョブを割り当てることができれば、当該時間帯における計算資源(計算ノード)の稼働率が向上する。
ところが、未割り当てのジョブは、優先度に従って1つずつ計算資源に割り当てられる。このため、或る時点において未割り当てのジョブの中に上記隙間に割り当て可能なジョブがあっても、当該ジョブの優先度が低いと、当該ジョブの割り当てを行う順番となるまでに時間がかかる。この結果、当該ジョブの割り当てが行われる時点では、現在時刻の経過(変化)によって当該隙間の時間長が当該ジョブの実行所要時間より短くなり、当該ジョブを割り当てることができなくなる。この場合、当該隙間は無駄な空き資源となっていた。
本開示課題は、現在時刻の経過によって隙間の空き資源が無駄になるのを回避可能とすることを課題とする。
本開示は、複数の計算ノードと、
前記複数の計算ノードにジョブを割り当てるジョブ管理装置とを備え、
前記ジョブ管理装置は、ジョブ割り当ての結果生じた空き資源であって、現在時刻と割り当て済みの或るジョブの開始予定時刻との間に亘って前記複数の計算ノードの一部が空き状態の空き資源を探索する処理と、前記空き資源が発見されたときに未割り当てのジョブの中から前記空き資源に割り当て可能なジョブを検索する処理と、検索されたジョブを前記空き資源に割り当てる処理と、を実行する制御装置を含む
並列計算機システムである。
本開示によれば、現在時刻の経過によって隙間の空き資源が無駄になるのを回避可能とすることができる。
図1は、ジョブスケジューラによる一般的なジョブ割り当ての流れを示す図である。 図2は、「ジョブ選択」処理及び「計算資源選択」処理の流れを示すフローチャートである。 計算ノード群で形成された二次元トーラスネットワークの一例を示すとともに、実施形態における並列計算機システムの全体構成例を示す。 計算ノード群で形成された三次元トーラスネットワークの一例を示すとともに、実施形態における並列計算機システムの全体構成例を示す。 図3、図4に示したジョブ管理装置のハードウェア構成例を示す。 図6は、実施形態の計算資源選択処理にて使用される資源マップの説明図である。 図7は、参考例の説明図であり、図6に示した状態の資源マップを用いて経過時間40分のジョブ“jobA”を割り当てる場合の空き資源探索処理の概要を示す。 図8は、参考例における空き資源探索処理のフローチャートである。 図9は、上記した問題の具体例を示す説明図である。 図10は、実施形態に係る閉じ空間優先制御処理の説明図である。 図11は、図10を用いて説明した閉じ空間探索処理の例を示すフローチャートである。 図12は、実施形態2に係る空き資源率管理による資源探索方法の説明図である。 図13は、空き資源率を考慮した閉じ空間探索処理の例を示すフローチャートである。 図14は、図13に示す処理を行った場合の作用説明図である。
以下、図面を参照して本発明の実施形態について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
〔実施形態1〕
最初に、ジョブスケジューラによるジョブの割り当て処理の対象となる「計算資源」(以下、単に「資源」と表記することもある)について説明する。或るジョブが実行を開始するのに先立って、当該ジョブを実行するためのプロセッサ(一般的には複数のプロセッサ(プロセッサ群))がジョブに割り当てられる。このようなプロセッサ又はプロセッサ群が「資源」に該当する。プロセッサ又はプロセッサ群によって形成される計算資源の管理単位は、「計算ノード」と呼ばれる。
ジョブの割り当て処理において、ジョブスケジューラは、ジョブを実行する計算ノードだけでなく、「ジョブが計算ノードを使用可能な時間帯(計算ノードがジョブの実行に使用される時間帯)」も割り当てる。このため、「計算ノード」と「計算ノードを使用可能な時間帯」の組み合わせが割り当て対象の「資源」となる。
なお、ジョブへの計算ノードの割り当てのことは、スケジューリングマップを用いた説明の都合上、「空間軸での計算資源割当て」と呼ばれることがある。また、計算ノードをジョブ実行のために使用する時間帯の割り当てのことは、「時間軸での計算資源割当て」と呼ばれることがある。「計算資源割り当て」を単に「資源割り当て」と呼ぶ場合もある
本実施形態では、ジョブが割り当てられる計算ノードの集合の空間的配置(厳密にはネットワーク接続関係)が二次元又は三次元のメッシュ、或いは二次元又は三次元のトーラスである場合を仮定する。図3は、4×4の計算ノードNで形成された二次元トーラスネットワーク(ネットワーク1)を例示し、図4は、2×2×2の計算ノードNで形成された三次元トーラスネットワーク(ネットワーク2)を例示する。但し、図3及び図4に示した計算ノードNの数は例示であり、所定数の計算ノードNを有するネットワークが適用される。
これらの計算ノードの空間的配置では、計算ノードの集合が長方形又は直方体の形状に配置されているということができる。もっとも、計算ノードの空間的配置には立ち入らない説明においては、説明を簡単にするため、図1に示したスケジューリングマップに示すように、計算ノードの集合を一次元の線分で表す場合もある。
なお、計算ノードの空間的配置を二次元又は三次元のメッシュ、或いは二次元又は三次元のトーラスに限定するという条件は、ネットワーク全体がメッシュあるいはトーラス接続のシステムにおいて、しばしば採用されている。或るジョブ用の計算ノード間の通信が他のジョブ用の通信による干渉を受けることを回避するためである。
上記したように、図1のスケジューリングマップMは、計算ノードを一次元で表した例である。これに対し、二次元又は三次元メッシュネットワーク、或いは二次元又は三次元トーラスネットワークで計算ノードが接続された並列計算機システムでは、次のような方法で、ジョブが要求する数の計算ノードが当該ジョブに割り当てられる。すなわち、二次元ネットワークの場合には、連続する計算ノードの長方形、三次元ネットワークの場合には、連続する計算ノードの直方体がジョブに割り当てられる。このような割り当て方法は、次の理由による。
(1)ジョブ内のプロセス間通信が他のジョブの外乱にならないこと。
(2)計算ノードの異常(計算ノードダウン等)が発生した場合に、多数のジョブに影響しないこと(異常が発生した計算ノードを使用しているジョブだけが中断されること)。
但し、計算ノードのネットワークトポロジが二次元又は三次元メッシュ、或いは二次元又は三次元トーラスであることは必須の要件ではなく、これら以外のネットワークトポロジが適用され得る。
<並列計算機システムの構成>
本実施形態に係る並列計算機システムは、図3,図4に示したネットワーク1又はネットワーク2と、ネットワーク1又はネットワーク2に接続されてネットワーク1又はネットワーク2(複数の計算ノード)にジョブを割り当てるジョブ管理装置10とを含む。なお、図3及び図4のそれぞれにおけるネットワークとジョブ管理装置10との接続関係は模式的に示されたものである。
図5は、ジョブ管理装置のハードウェア構成例を示す。ジョブ管理装置10は、プロセッサ及びメモリを含むコンピュータである。ジョブ管理装置10として、専用のコンピュータ,或いは、パーソナルコンピュータ(PC)やワークステーション(WS)のような汎用のコンピュータを適用することができる。
図5において、ジョブ管理装置10は、バスBを介して接続されたCentral Processing
Unit(CPU)11と、メモリ12と、ネットワーク1やネットワーク2との通信イン
タフェース(通信IF)13とを含む。CPU11は、プロセッサ(制御装置)の一例である。
メモリ12は、不揮発性記憶媒体と、揮発性記憶媒体とを含む。不揮発性記憶媒体は、例えば、Read Only Memory(ROM),ハードディスク,Solid State Drive(SSD)
,EEPROM,フラッシュメモリなどであり、CPU11によって実行されるプログラムや、プログラムの実行に際して使用されるデータを記憶する。揮発性記憶媒体は、例えばRandom Access Memory(RAM)であり、CPU11の作業領域として使用される。メモリ12は、「記憶装置」、「記憶媒体」の一例である。
通信IF13は、通信に係る信号変換、プロトコル変換を司る装置である。CPU11は、メモリ12に記憶されたプログラムをロードして実行することによって、ジョブスケジューラとして動作し、ネットワーク1やネットワーク2を形成する複数の計算ノードNに対するジョブ割り当てを行う。
ジョブ管理装置10のCPU11は、プログラムの実行によってジョブスケジューラとして動作する。これによって、CPU11は、ジョブスケジューラとして、図1に示したような、「ジョブ受け付け」,「ジョブ選択」,「計算資源選択」,「ジョブ実行」の各処理を行うことができる。
<資源マップ>
ジョブ管理装置10で実行される空き資源探索処理では、時間軸を考慮した空き資源探索のために、「資源マップ」を使用する。図6は、スケジューリングマップ上に表された資源マップの例を示す。資源マップは、計算資源に割り当てられたジョブの実行の開始予定時刻及び終了予定時刻について生成される資源使用状況のスナップショットである。資源マップは、「マップ構造体」とも呼ばれる。資源マップの情報は、例えばジョブの割り当て時において、ジョブの開始予定時刻及び終了予定時刻について作成され、メモリ12に記憶される。
図6に示す例では、ジョブ“job1”の前後(開始予定時刻及び終了予定時刻)における資源マップ(1)及び(3)が作成され、ジョブ“job2”の前後に資源マップ(2)及び()が作成され、ジョブ“job3”の前後に資源マップ(3)及び(4)が作成されている。さらに、現在時刻の資源マップ(nowマップ)が作成されている。
なお、計算ノード間を接続するネットワークが三次元トーラスネットワーク(ネットワーク2)である並列計算機システムの場合では、各資源マップは、図6中の[3次元イメ
ージ]で示すように、全体として直方体に形成された複数の計算ノードのスナップショッ
トとなる。図6の例では、直方体は、幅,奥行き,及び高さ方向に並べられた4×3×3の計算ノードNの集合である。
図6に示す3次元イメージは、資源マップ(3)を示し、3段に積まれた計算ノード群のうちの下から1段目及び2段目の計算ノード群がジョブ“job3”に割り当てられた割り当て済ノードであり、最上段の計算ノード群が空き状態(未割り当て状態)の計算ノード(空きノード:空き資源)であることを示している。
<参考例>
次に、資源マップを用いた空き資源探索処理の参考例について説明する。図7は、図6に示した状態の資源マップを経過時間40分のジョブ“jobA”を割り当てる場合の空き資源探索処理の参考例の概要を示す。
“jobA”の経過時間は40分であり、計算ノードの直方体のうちの1段分の計算ノード群を資源として要求する。このため、ジョブスケジューラは、最初に現在時刻から40分後の時刻までに含まれるnowマップ,資源マップ(2)及び資源マップ(3)の論理和(
OR)を計算してマージマップA1を作成する。論理和の計算には、各資源マップ(now
マップを含む)をビット値に換算したビット換算値を用いる。ビット換算値において、例えば、割り当て済みの領域はオフ“0”で示され、未割り当て(空き状態)の領域はオン“1”で示される。以下の説明で言及する論理演算においては、このようなビット換算値が用いられているものとする。
もし、マージマップA1に空き状態の計算ノード群を示す資源があれば、当該資源は、現在時刻から40分間連続して空き状態である計算ノード群(空きノード群)を示す。但し、図7の例では、マージマップA1には“jobA”に割り当て可能な空きノード群が存在しない。
このため、ジョブスケジューラは、次に、資源マップ(2)の時刻(“job2”の開始予定時刻)から40分後の時刻の間に含まれる資源マップ(2)及び資源マップ(3)の論理和を計算してマージマップA2を作成する。但し、図7では、マージマップA2の作成に係る図示は省略されている。続いて、ジョブスケジューラは、マージマップA2に“jobA”を割り当て可能な空きノード群があるか否かを調べる。しかし、マージマップA2にも空きノード群が存在しない。
次に、ジョブスケジューラは、資源マップ(3)の時刻(“job3”の開始予定時刻)から40分後の時刻の間に含まれる資源マップ(3)と資源マップ(4)との論理和演算によってマージマップ(マージマップB)を作成する。続いて、ジョブスケジューラは、マージマップBに“jobA”を割り当て可能な空きノード群があるかを調べる。マージマップBには“jobA”を割り当て可能な空きノード群が存在する。このため、空きノード群の探索が終了し、“jobA”が発見された空きノード群に割り当てられる。
図8は、空き資源探索処理の参考例のフローチャートである。図8に示す処理は、図2に示した資源選択処理に適用可能なサブルーチンの一例である。図8において、最初の01では、変数“ELAPSE(経過時間)”に対し、選択されたジョブ“JOB”(サブルーチン
の引数)の経過時間が設定される。また、変数“MMAP(マージマップ)”が初期化される。さらに、変数“SMAP(最初の資源マップ)”としてnowマップが設定され、変数“NMAP
(次の資源マップ)”の値に“SMAP.next(SMAPの次の資源マップ)”が設定される。
01の処理を図7の例に則して説明すると、“ELAPSE”の値として“JOB”である“jobA”の経過時間“40分”が設定される。また、“SMAP”としてnowマップが設定され、“NMAP”として資源マップ(2)が設定される。
02では、MMAP(マージマップの初期値)とSMAP(nowマップ)との論理和が計算され
、SMAPの値がMMAPとして保持される。“SMAP”に“SMAP.next(SMAPの次の資源マップ)
”が設定される。図7の例に従うと、SMAPとしてnowマップの次の資源マップ(2)が設
定される。
次の03では、変数“SMAP.time(SMAPの時刻)”の値がnow(現在時刻)に“ELAPSE”の値を加えた時刻より小さいか否かが判定される。図7の例に従うと、現在時刻から“jobA”の経過時間“40分”が経過した時刻内に、資源マップ(2)の時刻が含まれているか否かが判定される。
03において、“SMAP.time”が“(now+ELAPSE)”の値より小さい場合(03,YES
)には、処理が02に戻され、そうでなければ(03,NO)、処理が04に進む。図7の例に従うと、資源マップ(2)の時刻は、現在時刻から40分経過した時刻より前であるので、処理が02に戻る。
再度の02の処理において、MMAPとSMAPとの論理和演算によって、nowマップと資源マ
ップ(2)との論理和が算出される。また、SMAPとして次の資源マップ(3)が設定される。
その後、03における処理において、資源マップ(3)の時刻が現在時刻から40分経過前であるので、再び処理が02に戻り、MMAP(マージマップA1)とSMAP(資源マップ(3))との論理和演算によって、マージマップA2が求められる。また、資源マップ(3)の次の資源マップ(4)がSMAPに設定される。
次の03の処理において、資源マップ(4)の時刻は、現在時刻から40分経過した時刻の後であるので(03,NO)、処理が04に進む。04では、“JOB”,すなわち“jobA”がMMAP(マージマップ)の空き資源に収まるか否かが判定される。
このとき、空き資源があれば(04,YES)、図8の処理が終了(リターン)し、当該空き資源に“jobA”が割り当てられる。これに対し、空き資源が無ければ(04,NO)処理が05に進む。図7に示す例に則して説明すると、マージマップA3に“jobA”を割り当て可能な空き資源は存在しないので、処理が05に進む。
05では、MMAPが初期化される。また、SMAPにNMAPの値が設定され、NMAPにSMAP.next
の値が設定される。図7の例に従うと、SMAPとして資源マップ(2)が設定され、NMAPとして資源マップ(3)が設定される。
05の処理が終了すると、02に処理が戻り、MMAPの初期値とSMAPとの論理和演算によって、資源マップ(2)の値が保持される。また、SMAPとして資源マップ(3)が設定される。次の03では、資源マップ(3)の時刻に基づき、“YES”の判定がなされ、処理が02に戻る。
再度の02において、MMAPとして、資源マップ(2)と資源マップ(3)との論理和が算出される。また、SMAPとして資源マップ(4)が設定される。次の03では、資源マップ(4)の時刻が現在時刻から40分以後であるので、“NO”の判定がなされ、04に進む。04にて、マージマップには“jobA”を割り当て可能な空き資源は存在しないと判定され、05に処理が進む。05では、MMAPが初期化され、SMAPとして資源マップ(3)が設定され、NMAPとして資源マップ(4)が設定される。
その後、処理が02に戻り、02及び03のループ処理が実行される。これによって、MMAPとして資源マップ(3)と資源マップ(4)との論理和(マージマップB)が求められた状態で、04に処理が進む。03にて、資源マップ(5)の時刻が03の条件を満たさないからである。そして、04にて、MMAP(マージマップB)に“jobA”を割り当て可能な空き資源が発見される(04,YES)。このため、図8の処理が終了し、空き資源に“jobA”が割り当てられる。
<閉じ空間>
次に、本実施形態における資源探索処理にて探索対象となる「閉じ空間」について説明する。一部の計算ノード(計算ノード群)が、「或る時刻まで未割当て」かつ「その時刻以降は割り当て(予約)済み」となる場合がある。この時点で未割り当てのジョブに必要な計算ノードの数、空間的配置の両方の条件を満たす計算ノードの集合について、未割り当てのジョブの予定実行時間以上の長さを持つ空き時間がなければ、当該計算ノードの集合に対してジョブを割り当てることができない。
「或る時刻まで未割当て」かつ「その時刻以降は割り当て(予約)済み」となる計算ノードの集合と、当該計算ノードの集合が割り当て済となる前の時間帯の対からなる「計算資源」を、本明細書では「閉じ空間」と呼ぶ。図6に示す例では、スケジューリングマップの左隅にある空き領域が閉じ空間に該当する。計算ノードの集合の空間的配置が二次元の長方形あるいは三次元の直方体である場合には、各々の(時間軸を含む)「閉じ空間」の全体は、三次元あるいは四次元の資源となる。
閉じ空間をなす計算ノードの集合(「閉じ空間」の空間軸)は、割り当て済みとなる時刻以前には、「使用可能期限付きの資源」と考えることができる。すなわち、閉じ空間は、空間軸の割り当て条件と時間軸の割り当て条件とを満たすことができるジョブに対して割り当て可能な資源である。ここに、空間軸の割り当て条件は、計算ノード数と計算ノードの集合の配置形状についての条件であり、時間軸の割当て条件は、既に割り当て済みである時刻が到来する迄の時間がジョブに必要な時間より長いという条件である。
<本実施形態で解決する問題>
図2に示した計算資源選択処理において、図7及び図8で説明したような空き資源探索処理(参考例)を適用して閉じ空間を探索しようとすると、以下の問題が生じていた。すなわち、参考例の空き資源探索処理は、nowマップを含む資源マップ間の論理和の計算及
び空きノードの調査を繰り返す時間のかかる処理である。
このため、並列計算機システムの規模が大きくなると、実行(割り当て)待ちのジョブ全体から見た空き資源探索処理にかかる時間が大きくなる。これによって、以下に説明するように、「空き資源の探索処理時間」のために空き時間帯が実質的に短くなり、ジョブを割当てられない計算資源が生ずる場合がある。
これまでに説明したように、計算資源選択処理では、優先度が高い順でソートされた複数のジョブの一つ一つに対して空き資源探索(割り当て可能なノードの集合および利用可能な時間帯)及び割り当てが行われる。換言すれば、ジョブ選択処理においてソートされたジョブ列において優先度が低いジョブ程空き資源探索処理の開始が後回しにされる。この結果、或るジョブを割り当て可能な「閉じ空間」に対して当該或るジョブを割り当てる時期を逃す場合があり得る。
図9は、上記した問題の具体例を示す説明図である。図9に示す例は、現在時刻において、2つの計算ノードを55分使用可能な空き資源C(スケジューリングマップの左上を参照)が存在している。そして、“job6”から“job99999”までの約10万の未割り当ての実行待ちジョブに対する計算資源選択処理が実行されていると仮定する。なお、資源量は、計算ノード数及び時間帯を用いて“xノードxx分”のように表記されることもある。上記空き資源の資源量は、“2ノード55分”である。
未割り当ての複数のジョブには、99999番目に空き資源探索処理が開始されるジョブ“job99999”が含まれている。ジョブ“job99999”の要求資源量は、2ノード50分である。このため、現在時刻から5分以内にジョブ“job99999”の空き資源探索処理及び割り当てが実行されれば、当該空き資源Cを活用することができる。
しかしながら、計算ノード数が多くなると1ジョブ当りの空き資源探索に要する時間が長くなる。また、ジョブ“job99999”のように優先度が低いジョブに対しては、当該ジョブの空き資源探索開始(割り当て)までに長い時間がかかる。例えば、ジョブ“job99999”の空き資源探索が開始されるまでに20分が経過したと仮定する。
この場合、現在時刻は破線の位置まで移動する。このような現在時刻では、空き資源Cの資源量は時間長の短縮によって2ノード35分となっている。このため、ジョブ“job99999”を空き資源Cに割り当てることができない。この結果、“job6”の割り当て時点では存在していた2ノード55分の資源が無駄となり、資源の稼働率が低くなる。
以下、上記問題を解決し得るジョブ割り当て方法を実行する並列計算機システムの制御方法について説明する。
<閉じ空間優先制御処理(閉じ空間探索)>
図10は、実施形態に係る閉じ空間優先制御処理の説明図である。図10の例では、スケジューリングマップ上において、各ジョブ“job1”〜ジョブ“job5”のそれぞれに対する割り当てが既に済んでいる。これによって、スケジューリングマップの左上隅に閉じ空間Aが存在している。
現在時刻から見た閉じ空間Aの資源量は“2ノード55分”である。本実施形態では、閉じ空間Aのような現在時刻と或るジョブ(図10では“job3”)の開始予定時刻の間に亘って計算ノードの一部が空き状態である空き資源を、探索対象の閉じ空間とする。以下の説明では、空き状態である複数の計算ノードの一部を“空きノード”と称することもある。
ジョブスケジューラ(ジョブスケジューラとして動作するCPU11)は、次のようにして閉じ空間Aを検出する。
(手順1)
最初に、ジョブスケジューラは、現在時刻nowから資源マップ(2)の時刻(“job2”
の終了予定時刻)までにおける閉じ空間の有無の判定を行う。すなわち、ジョブスケジューラは、nowマップのビット換算値と資源マップ(2)のビット換算値との論理和(ビッ
ト論理和)を算出し、マージマップ(2)´とする。
次に、ジョブスケジューラは、nowマップと資源マップ(2)´との排他的論理和(X
OR)を算出する。排他的論理和においてビット“オン”の位置は、空きノードによって形成される閉じ空間を示す。但し、nowマップとマージマップ(2)´との排他的論理和
(XOR)は、全ビット“オフ”となるので、閉じ空間Aは検出されない。
(手順2)
次に、ジョブスケジューラは、現在時刻nowから資源マップ(3)の時刻(“job1”の
終了予定時刻且つ“job3”の開始予定時刻)までにおける閉じ空間Aの有無の判定を行う。すなわち、ジョブスケジューラは、マージマップ(2)´と資源マップ(3)のビット換算値との論理和を算出し、マージマップ(3)´とする。
(手順3)
次に、ジョブスケジューラは、nowマップとマージマップ(3)´との排他的論理和(
XOR)を算出する。排他的論理和において、ビット“オン”の位置が検出される。当該位置は、閉じ空間Aを示す。すなわち、ビット“オン”の位置は空きノードを示し、現在時刻nowと資源マップ(3)の時刻との間の時間帯が当該空きノードを使用可能な時間帯
を示す。
その後、ジョブスケジューラは、現在時刻nowから資源マップ(4)の時刻(“job3”
の終了予定時刻)までにおける閉じ空間の有無の判定を試行する。但し、資源マップ(3)に空き領域がないので、閉じ空間の探索が終了する。
(手順4)
閉じ空間Aが発見されると、ジョブスケジューラは、未割り当てのジョブから閉じ空間Aに入るジョブを検索する。図10の例では、未割り当てのジョブとしてジョブ“job6”〜“job99999”がある。具体的には、未割り当てのジョブのリスト(図示せず)がメモリ12に記憶されており、各ジョブ“job6”〜“job99999”は、優先度順でソートされている。また、リストには、各ジョブ“job6”〜“job99999”の実行に要するノード数(要求ノード数)と、経過時間(実行所要時間)とが保持されている。
ジョブスケジューラは、閉じ空間Aのノード数及び時間長と、リスト中の各ジョブ“job6”〜“job99999”の要求ノード数及び経過時間との比較を、優先度が高い順(ソート順)で実行する。ジョブスケジューラは、要求ノード数が閉じ空間Aのノード数に収まり、且つ経過時間が閉じ空間Aの時間長に収まるジョブを発見すると、検索を終了して当該ジョブを閉じ空間Aに割り当てる。例えば、閉じ空間Aに収まるジョブ“job99999”が発見され、閉じ空間Aに割り当てられる。
図11は、図10を用いて説明した閉じ空間探索処理の例を示すフローチャートである。当該処理は、CPU11によって実行される。図11に示す処理の開始時点では、図10に示したように、“job1”〜“job5”の割り当てが既に済んでおり、nowマップ及び資
源マップ(1)〜(6)の情報をCPU11が作成してメモリ12に記憶しているものとする。そして、図11に示す処理は、ジョブ“job6”の割り当て処理の時点で開始されたと仮定する。
図11において、最初の101では、以下の処理がなされる。すなわち、CPU11は、変数“MTIME”に対し、所定の時間が設定される。MTIMEは、閉じ空間の探索を行う時間範囲を示す。図11の例では、MTIMEとして8時間が設定されているが、MTIMEの値は適宜設定可能である。MTIMEの値は、ジョブ管理装置10にオペレータが図示しないコンソー
ル(入力装置及び出力装置)を用いて入力した値を適用することができる。MTIMEの長さ
を調整することで、閉じ空間優先制御処理の実行時間を調整することができる。
CPU11は、設定されたMTIMEの値に従って、MMAP(マージマップ)の初期化を行う
。図11の例では、MTIME=8時間の設定に従って、10分間隔で480分(8×6=4
8)の配列を初期化する。また、CPU11は、変数MMの値(カウンタ値)を“1”に設定する。さらに、CPU11は、MMAP[MM-1]として、nowマップを設定し、NMAPとして、
“nowマップ.next”を設定する。101の処理を図10の例に則して説明すると、MMAP[MM-1]として、nowマップが設定され、NMAPとして、資源マップ(2)が設定される。なお
、“MMAP[MM]”は、マージマップ用のマップ構造体配列を示す。
次の102では、CPU11は、MMAP[MM](MM=1のときのマージマップ)として、MMAP[MM-1]とNMAPとの論理和を算出する。図10の例に則して説明すると、nowマップと資源
マップ(2)との論理和(マージマップ(2)´)が算出される。
また、CPU11は、変数“XMAP”(閉じ空間用マップ構造体変数)として、nowマッ
プとMMAP[MM]との排他的論理和を算出する。すなわち、図10に示すnowマップとマージ
マップ(2)´との排他的論理和が算出される。さらに、CPU11は、XMAPのビットオン位置をTLIST(閉じ空間リスト)に設定する。
次の103では、CPU11は、MMAP[MM](マージマップ(2)´)に空きノードがあるか否かを判定する。このとき、空きノードが無ければ(103,NO)閉じ空間探索処理が終了する。これに対し、空きノードがあれば(103,YES)処理が104へ進む。
104へ処理が進むと、CPU11は、変数“NMAP.time(NMAPの時刻)”がnow(現在時刻)に“MTIME”の値を加えた時刻より小さいか否かが判定される。図10の例に則し
て説明すると、CPU11は、資源マップ(2)の時刻が現在時刻からMTIMEとして設定
した時間(8時間)内か否かを判定する。資源マップ(2)の時刻は8時間以内であるため、処理が105に進む。NMAP.timeが現在時刻より8時間を過ぎているときには、閉じ
空間探索処理が終了する。
105へ処理が進むと、CPU11は、変数MMの値をインクリメント(MM=2)する。さらに、CPU11は、NMAPの値をNMAP.next(資源マップ(3))に設定し、処理を10
2に戻す。再度の102の処理では、CPU11は、MMAP[MM=2]として、MMAP[MM=1](マージマップ(2)´)とNMAP(資源マップ(3))との論理和であるマージマップ(3)´を算出する。さらに、CPU11は、XMAPとして、nowマップとマージマップ(3)´
との排他的論理和を算出し、XMAPのビットオン位置をTLISTに設定する。
再度の103の処理において、CPU11は、MMAP[MM](マージマップ(3)´)に空きノードがないため、閉じ空間探索処理を終了する。CPU11は、TLISTに設定したビ
ットオン位置を、空きノードとして認識することができる。また、CPU11は、例えば
MMの値(カウンタ値)より、資源マップを特定することができ、当該資源マップの時刻と現在時刻との間の時間帯で空き状態の計算ノードが空き資源(閉じ空間)であると認識することができる。これによって、閉じ空間A(ノード数及び時間帯(時間長))を特定することができる。
なお、図11に示した処理に代えて、nowマップとnowマップの直後の資源マップとの論理和(マージマップ)を求めたときに、当該マージマップに空き資源があるか否かの判定(103)を行い、空き資源があるときに排他的論理和の演算(XMAPの算出)を行うようにしても良い。このようにすれば、nowマップとnowマップの直後の資源マップとの論理和(マージマップ)に空き資源がないときに、図11の処理を終了することができ、閉じ区間探索処理の短縮化を図ることができる。
上述した閉じ空間探索処理は、例えば、複数のジョブが資源に割り当てられた状態において所定のタイミングで開始することができる。例えば、上述したジョブ受け付け処理でまとめられたジョブの集合の全て(ジョブ列)に対するジョブ選択処理及び計算資源選択処理が終了した後に、これらの処理から切り離された形式で実行することができる。
或いは、計算資源選択処理において、適宜のタイミングで閉じ空間探索処理が割り込み(挿入)形式で実行されるようにしても良い、例えば、1つのジョブに対する割り当て(計算資源選択処理)の前後で、閉じ空間探索処理が実行されるようにすることができる。或いは、2以上の所定数のジョブの割り当てが終了する毎に閉じ空間探索処理が実行されるようにしても良い。或いは、ジョブ選択処理でのソートによりジョブ列が生成されてから周期的なタイミング(一定の時間間隔)で閉じ空間探索処理が実行されるようにしても良い。或いは、閉じ空間探索処理は、ジョブ管理装置10に入力される実行開始指示を受けて実行を開始することもできる。
<実施形態1の作用効果>
実施形態に係る閉じ空間優先制御処理では、閉じ空間探索処理によって閉じ空間Aが発見され、未割り当てのジョブの中から閉じ空間Aに収まるジョブが検索されると、当該ジョブは、当該ジョブより優先度の高い未割り当てのジョブがあっても優先的に割り当てられる。これによって、図9に示したような閉じ空間Aに係る資源が現在時刻の経過で無駄になるのを回避することができる。換言すれば、現在時刻の経過によって隙間の空き資源が無駄になるのを低減することができる。これによって、資源の稼働率向上を図ることができる。
閉じ空間優先制御処理は、閉じ空間探索処理によって発見された閉じ空間に割り当て可能なジョブを未割り当てのジョブ全てを対象として検索し、検出されたジョブを割り当てる処理である。従って、通常の空き資源探索処理、すなわち、優先度に従って1つのジョブを選択し、選択したジョブを割り当て可能な資源を探索する処理とは異なる。
閉じ空間探索処理は、nowマップ及び資源マップの累積的な論理和演算と、論理和演算
結果とnowマップとの排他的論理和演算とによってなされる。閉じ空間探索処理は、この
ような簡易な論理演算であり、現在時刻から或る割り当て済みジョブの実行開始時刻までの時間帯を対象としてなされる短時間の処理である。また、閉じ空間に収まるジョブの検索処理は、閉じ空間のノード数及び時間長と未割り当てのジョブの要求ノード数及び経過時間(実行所要時間)との比較でなされる。このため、短時間で全未割り当てジョブに対する比較を完了することができる。
このように、閉じ空間探索及びジョブ検索を用いたジョブ割り当ては、通常の空き資源探索処理でのジョブ割り当てよりも短時間で処理を終えることが可能である。このため、
或る現在時刻で生じた閉じ空間に対し、対応するジョブが割当てられるまでに経過する時間は少なくなる。従って、隙間の空き資源(閉じ空間)を稼働率向上のために有効に活用することができる。
また、上記した閉じ空間優先制御処理は、このため、通常の優先度順での割り当て処理(スケジューリング)と組み合わせることができる。この場合、閉じ空間優先制御処理は、優先度順でのジョブ割り当てによって形成された閉じ空間に対して行われる。このため、閉じ空間に割り当てられるジョブは、割り当て済みのジョブの実行開始を妨げない。
また、上記したように、閉じ空間優先制御処理は、現在時刻から或る割り当て済みのジョブの開始予定時刻までの時間帯を対象としてなされるので、短時間で終えることが可能である、このため、通常の優先度順でのジョブ割り当てに閉じ空間優先制御処理を組み合わせたときにおいて、優先度順での割り当て処理に与える影響は小さい。換言すれば、未割り当てジョブの全てに対するスケジューリングのトータル所要時間に対する影響を抑えることができる。
但し、閉じ空間を形成する複数の割り当て済みのジョブが優先度順で割り当てられたものであることは必須の条件ではなく、優先度以外の順序や割り当て方法で割り当てがなされたジョブの割り当て状況に対して閉じ空間優先制御処理は適用され得る。例えば、ジョブの投入順(受け付け順)でジョブを資源に割り当てるスケジューリングにおいても、本実施形態に係る閉じ空間優先制御処理は適用可能である。
また、閉じ空間に割り当て可能なジョブの検索は、優先度順で実行される。このため、閉じ空間優先制御処理を優先度に沿って実行することができる。もっとも、検索の順序は優先度順に限定されず、適宜のルールで実行可能である。
〔実施形態2〕
次に、実施形態2について説明する。実施形態2の構成は、実施形態1と共通する部分を含むので、主として相違点について説明し、共通点については説明を省略する。実施形態1で説明した閉じ空間探索処理は、閉じ空間探索処理の実行によって閉じ空間が発見された場合には、稼働率向上に貢献することができる。これに対し、発見できなかった場合には、単なるロスタイムとなり得る。
実施形態1で説明したように、閉じ空間探索処理は、様々な条件下で開始されるようにすることができる。但し、閉じ空間探索処理の頻度が徒に大きくなると、上記したロスタイムが無視できない程大きくなり、ジョブスケジューラのスケジューリング性能の劣化を招来する虞がある。このため、閉じ空間が存在する状況を予測し、閉じ空間が存在する可能性が高い場合に限って閉じ空間探索処理を実行することが考えられる。
図12は、実施形態2に係る空き資源率管理による閉じ空間探索方法の説明図である。図12に示すように、実施形態2では、ジョブ管理装置10で管理する(メモリ12に記憶される)資源マップの情報に空き資源率が含まれる。空き資源率は、資源マップにおける全計算ノード(全資源)に対する空きノード(空き資源)の占有率を示す。
実施形態2では、CPU11は、ジョブを割り当てる毎に、現在時刻以降の資源マップの空き資源率をチェックする。チェックの結果、現在時刻の空き資源率よりも所定量(例えば20[%])以上の減少が発生した場合に、実施形態1で説明した閉じ空間探索処理を開始することで、無駄な閉じ空間探索処理の実行を回避する。
図12に示す例では、現在時刻の資源マップ(nowマップ)の空き資源率が25%であ
る。そして、現在時刻より後の資源マップの空き資源率をチェックし、現在時刻の空き資源率から所定量(例えば20[%])以上空き資源率が低下したときに、閉じ空間探索が実行されるようにする。
図12において、資源マップ(2)の空き資源率は50%であり、nowマップの空き資
源率より25[%]増加している。このため、閉じ空間探索処理は開始されない。これに対し、資源マップ(3)の空き資源率は0%であり、nowマップの空き資源率との比較にお
いて25[%]減少している。このため、閉じ空間探索処理が開始される。
或る資源マップの空き資源率が現在時刻の空き資源率より低下することは、図12の“job3”のように、閉じ空間の最後尾(終了時刻)を形成するジョブが割り当てられている可能性が高い。すなわち、閉じ空間が存在する可能性が高い。そこで、実施形態2では、現在時刻の空き資源率からの低下量に閾値を設けて、閉じ空間が存在する可能性が高い状況下に限って閉じ空間探索処理が実行されるようにする。なお、低下量(現在時刻の空き資源率からの減少分)に対する閾値は適宜設定可能である。
図13は、空き資源率を考慮した閉じ空間探索処理の例を示すフローチャートである。図13に示す処理は、これまでに説明した「ジョブ選択処理」及び「計算資源選択処理」に該当し、「ジョブ選択処理」開始のタイミングで開始される。一例として、図13に示す処理の開始時点では、例えば、図12に示すように、“job1”〜“job5”の割り当てが既に済んでおり、nowマップ及び資源マップ(1)〜(6)の情報をCPU11が作成し
てメモリ12に記憶しているものとする。
図13に示す処理が開始されると、201において、CPU11は、変数“MTIME”と
して閉じ空間探索範囲時間(探索範囲)を設定する。閉じ空間探索範囲時間の長さは可変(適宜設定可能)であり、本実施形態では、一例として8時間が設定される。
次の202では、CPU11は、全ての実行待ちジョブ(未割り当てジョブ)を優先度が高い順でソートする。次の203では、CPU11は、変数“NMAP”の値を“nowマッ
プ.next(nowマップの次の資源マップ)”に設定する。図12に示す例に従えば、“now
マップ.next”として資源マップ(2)が設定される。
次の204では、CPU11は、変数“NMAP.time”の値が“(now+MTIME)”の値よ
り小さいか否かを判定する。すなわち、CPU11は、NMAPに該当する資源マップの時刻が現在時刻からMTIMEの時間(8時間)だけ経過した時刻より前か否かを判定する。20
4の条件が満たされる場合(204,YES)には、処理が205に進み、そうでない場合(204,NO)には処理が213に進む。
205では、CPU11は、“nowマップ.free(nowマップ(現在時刻)の空き資源率
)”から“NMAP.free(NMAPの空き資源率)”を減じた値“FREE”(nowマップの空き資源率からの減少分)を求める。次の206では、CPU11は、“FREE”の値が所定閾値(20[%])以上か否かを判定する。このとき、“FREE”の値が20以上であれば(206,YES)、処理が207に進み、そうでなければ(206,NO)、処理が211に進む。
207では、CPU11は、図11に示した閉じ空間探索処理のサブルーチンを呼び出して実行する。閉じ空間探索処理が終了すると、処理が208に進み、CPU11は、閉じ空間が発見されたか否かを判定する。閉じ空間が発見された場合には(208,YES)、処理が209に進み、発見されなかった場合(209,NO)には、処理が211に進む。
209では、CPU11は、閉じ空間へのジョブ割り当て処理を実行する。すなわち、実施形態1で説明したように、CPU11は、実行待ちのジョブから閉じ空間に収まるジョブを検索し、ジョブが見つかった場合には、ジョブの優先度より高い優先度を有する未割り当てのジョブがあっても当該ジョブを閉じ空間に割り当てる。その後、処理が210に進む。なお、209にて、閉じ空間に収まるジョブが発見されなかった場合も処理が210に進む。
210では、CPU11は、閉じ空間に割り当てられたジョブ数が0より大きい(1以上)か否かを判定する。このとき、ジョブ数が1以上の場合には(210,YES)には、処理が215へ進み、そうでない場合(210,NO)には、処理が211に進む。
211では、CPU11は、“NMAP.next” (現在のNMAPの次の資源マップ)に該当する資源マップがあるか否かを判定する。該当の資源マップがあれば(211,YES)、処理が212に進む。該当の資源マップがない場合(211,NO)には、これ以上の空き資源率の調査はできないことから、処理が213へ進む。
212では、CPU11は、NMAP(次の資源マップ)を“NMAP.next”に設定し、処理
を204に戻す。その後、204又は211にてNOの判定がなされるまで、204〜212のループが繰り返される。
213に処理が進んだ場合には、CPU11は、202でソートした実行待ちジョブの列の先頭に位置するジョブ取り出して引数“JOB”に設定する。次の214で、CPU
11は、資源選択のサブルーチンを読み出して“JOB”に対する資源選択処理を行う。資
源選択処理として、図8に示したサブルーチンが実行され、優先度に従ったジョブの割り当てが行われる。
CPU11は、214でジョブの割り当てを行うと、当該ジョブの開始予定時刻及び終了予定時刻に対する資源マップを生成し、メモリ12に記憶する。当該ジョブの開始予定時刻及び終了予定時刻のそれぞれが、先に割り当て済みのジョブの開始予定時刻や終了予定時刻と重複する場合には、既存の資源マップが更新される。新たなジョブ割り当てに伴い、空きノード状況(空き資源率)が変化するからである。
215では、CPU11は、未割り当ての残りのジョブがあるか否かを判定する。このとき、全てのジョブに対する割り当てが終了していれば(215,NO)、図13の処理が終了する。これに対し、残りのジョブがある場合には(215,YES)、CPU11は、処理を203へ戻す。
その後、再び204〜212のループ処理が実行され、204又は211でNOの判定がなされると、処理が213へ進み、優先度に従ってジョブが一つ割り当てられる(214)。このような処理が残りジョブが0になるまで繰り返され、残りジョブが0になると、図13の処理が終了する。なお、図13の処理において、現在時刻の経過に伴い、now
マップは適宜のタイミングで更新される。例えば、214の資源選択処理が開始されるに先立ち、nowマップが現在時刻に合わせて更新されるようにしても良い。
実施形態2に係る図13の処理によれば、閉じ空間の探索範囲(現在時刻から8時間)において、ジョブ割り当てによって形成された閉じ空間を探索し、未割り当てのジョブを割り当てる処理が行われる。閉じ空間探索処理は、空き資源率の低下量が閾値を超えた場合に限って実行される。このため、無駄な閉じ空間探索処理を回避することができ、通常の優先度に従ったジョブ割当処理に対する影響を小さくすることができる。
なお、上記した図13の説明では、ジョブ選択処理の開始時点で割り当て済みのジョブとして、実行中のものと実行待ちのものとが存在する前提で説明した。但し、実際のジョブ選択処理の開始時点では、実行中のジョブを除き、実行待ちのジョブは未割り当ての状態にされる。すなわち、割り当て済み且つ実行待ちのジョブに対する割り当て状態が一旦解除される。ジョブ選択処理におけるジョブのソートがこのような割り当てが解除されたジョブも含めて実行されることで、優先度に従ったジョブ割り当ての精度を高めることができる。
図14は、図13に示す処理を行った場合の作用説明図である。図14に示す“job1”及び“job2”は、ジョブ選択処理の開始時点で実行中のジョブと仮定する。図14では、“job3”が割り当てられた様子が示されているが、“job3”〜“job99999”の約10万個のジョブが実行待ち(未割り当て)ジョブであると仮定する。
上記仮定において、図13の処理が実行されると、202にて、“job3”〜“job99999”が優先度順でソートされる。次の204〜212のループにおいて、“job1”及び“job2”に係る資源マップに関して206の条件は満たされない。また、“job1”の終了予定時刻より後の資源マップが存在しないことから、処理が213に進み、214で“job3”に対する割り当てが行われ、“job3”に係る資源マップが作成される。“job3”の割り当ての結果、図14に示す状態となり、閉じ空間Aが生じる。
その後、204以降の処理が実行されると、206でYESの判定がなされ、閉じ空間探索処理(207)が実行される。この結果、閉じ空間Aが発見される。閉じ空間Aが発見されると、閉じ空間Aに収まるジョブが未割り当てのジョブから検索される。すなわち、閉じ空間Aに収まるジョブが優先度順で“job4”から“job99999”まで検索される。この結果、2ノード50分のジョブ“job99999”が発見され、閉じ空間Aに割り当てられる。
図14では、閉じ空間Aの検出及びジョブ“job99999”の割り当てまでが現在時刻から5分以内で済み、閉じ空間に対するジョブ“job99999”の割り当てが成功した様子が示されている。これによって、現在時刻から直近に存在する空き資源を有効に活用し、システムの稼働率を向上させることができる。
1,2・・・ネットワーク
10・・・ジョブ管理装置
11・・・CPU
12・・・メモリ

Claims (6)

  1. 複数の計算ノードと、
    前記複数の計算ノードにジョブを割り当てるジョブ管理装置とを備え、
    前記ジョブ管理装置は、ジョブ割り当ての結果生じた空き資源であって、現在時刻と割り当て済みの或るジョブの開始予定時刻との間に亘って前記複数の計算ノードの一部が空き状態の空き資源を探索する処理と、前記空き資源が発見されたときに未割り当てのジョブの中から前記空き資源に割り当て可能なジョブを検索する処理と、検索されたジョブを前記空き資源に割り当てる処理と、を実行する制御装置と、
    現在時刻における前記複数の計算ノードに対するジョブの割り当て状況を示す現在時刻の資源マップと、割り当て済の各ジョブの開始予定時刻及び終了予定時刻のそれぞれにおける前記複数の計算ノードに対するジョブの割り当て状況を示す資源マップとを記憶する記憶装置とを含み、
    前記制御装置は、前記現在時刻の資源マップと前記現在時刻の次の時刻に該当する前記開始予定時刻又は前記終了予定時刻の資源マップとの論理和演算と、前記論理和演算の結果と前記現在時刻の資源マップとの排他的論理和演算とを含む前記空き資源の探索処理を行う
    並列計算機システム。
  2. 前記制御装置は、前記空き資源を形成する計算ノードの数及び時間長と、未割り当てのジョブの要求ノード数及び実行所要時間との比較によって、前記空き資源に割り当て可能なジョブを検索する
    請求項1に記載の並列計算機システム。
  3. 前記制御装置は、ジョブの割り当てがジョブの有する優先度順で行われる場合に、前記空き資源に割り当て可能なジョブの検索を前記優先度順で行う
    請求項1又は2に記載の並列計算機システム。
  4. 前記制御装置は、現在時刻における空き資源率と、前記現在時刻の後にある割り当て済みの各ジョブの開始予定時刻及び終了予定時刻における空き資源率との比較を行い、当該開始予定時刻又は終了予定時刻の空き資源率が前記現在時刻における空き資源率から所定
    量以上低下しているときに、前記空き資源を探索する処理を開始する
    請求項1からの何れか1項に記載の並列計算機システム。
  5. 複数の計算ノードにジョブを割り当てるジョブ管理装置の制御プログラムであって、
    前記ジョブ管理装置として動作するコンピュータに、
    ジョブ割り当ての結果生じた空き資源であって、現在時刻と割り当て済みの或るジョブの開始予定時刻との間に亘って前記複数の計算ノードの一部が空き状態の空き資源を探索するステップと、
    前記空き資源が発見されたときに未割り当てのジョブの中から前記空き資源に割り当て可能なジョブを検索するステップと、
    検索されたジョブを前記空き資源に割り当てるステップと、
    を実行させ
    前記空き資源を探索するステップにおいて、現在時刻における前記複数の計算ノードに対するジョブの割り当て状況を示す現在時刻の資源マップと、割り当て済の各ジョブの開始予定時刻及び終了予定時刻のそれぞれにおける前記複数の計算ノードに対するジョブの割り当て状況を示す資源マップとを用いた、前記現在時刻の資源マップと前記現在時刻の次の時刻に該当する前記開始予定時刻又は前記終了予定時刻の資源マップとの論理和演算と、前記論理和演算の結果と前記現在時刻の資源マップとの排他的論理和演算とを含む前記空き資源の探索処理を前記コンピュータに実行させ
    ジョブ管理装置の制御プログラム。
  6. 複数の計算ノードと、当該複数の計算ノードにジョブを割り当てるジョブ管理装置とを含む並列計算機システムの制御方法であって、
    前記ジョブ管理装置が、
    ジョブ割り当ての結果生じた空き資源であって、現在時刻と割り当て済みの或るジョブの開始予定時刻との間に亘って前記複数の計算ノードの一部が空き状態の空き資源を探索し、
    前記空き資源が発見されたときに未割り当てのジョブの中から前記空き資源に割り当て可能なジョブを検索し、
    検索されたジョブを前記空き資源に割り当てる、
    ことを含み、
    前記空き資源の探索において、現在時刻における前記複数の計算ノードに対するジョブの割り当て状況を示す現在時刻の資源マップと、割り当て済の各ジョブの開始予定時刻及び終了予定時刻のそれぞれにおける前記複数の計算ノードに対するジョブの割り当て状況を示す資源マップとを用いた、前記現在時刻の資源マップと前記現在時刻の次の時刻に該当する前記開始予定時刻又は前記終了予定時刻の資源マップとの論理和演算と、前記論理和演算の結果と前記現在時刻の資源マップとの排他的論理和演算とを含む前記空き資源の探索処理を行う
    並列計算機システムの制御方法。
JP2014072704A 2014-03-31 2014-03-31 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法 Active JP6364880B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014072704A JP6364880B2 (ja) 2014-03-31 2014-03-31 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法
US14/666,353 US9588818B2 (en) 2014-03-31 2015-03-24 Parallel computer system and method for allocating jobs to calculation nodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014072704A JP6364880B2 (ja) 2014-03-31 2014-03-31 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法

Publications (2)

Publication Number Publication Date
JP2015194923A JP2015194923A (ja) 2015-11-05
JP6364880B2 true JP6364880B2 (ja) 2018-08-01

Family

ID=54190509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014072704A Active JP6364880B2 (ja) 2014-03-31 2014-03-31 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法

Country Status (2)

Country Link
US (1) US9588818B2 (ja)
JP (1) JP6364880B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10491705B2 (en) * 2015-09-08 2019-11-26 At&T Intellectual Property I, L.P. Visualization for network virtualization platform
JP6666553B2 (ja) 2016-05-10 2020-03-18 富士通株式会社 情報処理装置、ジョブ管理方法およびジョブ管理プログラム
CN108073453B (zh) * 2016-11-11 2022-05-10 阿里巴巴集团控股有限公司 分布式集群中cpu资源的调度方法以及装置
CN109324890B (zh) * 2017-07-31 2021-01-05 华为技术有限公司 资源管理方法、装置及计算机可读存储介质
CN109583859A (zh) * 2018-10-22 2019-04-05 中国平安人寿保险股份有限公司 多系统间批量交易任务处理方法及系统
JP7238616B2 (ja) * 2019-06-11 2023-03-14 富士通株式会社 並列処理装置、ジョブ管理プログラム、及びジョブ管理方法
US11989590B2 (en) * 2020-03-20 2024-05-21 Synapse Innovation Inc. Method and system for resource allocation
CN112035234B (zh) * 2020-09-02 2023-08-22 中国银行股份有限公司 分布式批量作业分配方法及装置
US11455191B2 (en) 2020-10-13 2022-09-27 International Business Machines Corporation Parallel task initialization on dynamic compute resources
US11604515B2 (en) 2020-11-27 2023-03-14 At&T Intellectual Property I, L.P. Network virtualization platforms enhanced with non-visual sensory interactivity
US11374824B2 (en) 2020-11-27 2022-06-28 At&T Intellectual Property I, L.P. Time-based visualization for network virtualization platform
CN117311957A (zh) * 2022-06-27 2023-12-29 华为技术有限公司 一种资源调度方法、装置及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141305A (ja) * 1993-11-16 1995-06-02 Hitachi Ltd 並列計算機の実行制御方法
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8261283B2 (en) * 2005-02-16 2012-09-04 Yissum Research Development Company Of Hebrew University Of Jerusalem System and method for backfilling with system-generated predictions rather than user runtime estimates
US8214836B1 (en) * 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
JP2008107875A (ja) * 2006-10-23 2008-05-08 Nec Corp ジョブ制御装置及びジョブ制御プログラム
US8565799B2 (en) * 2007-04-04 2013-10-22 Qualcomm Incorporated Methods and apparatus for flow data acquisition in a multi-frequency network
JP5605131B2 (ja) * 2010-09-28 2014-10-15 富士通株式会社 ジョブスケジューリングプログラム,方法,および装置
JP5614318B2 (ja) * 2011-02-15 2014-10-29 富士通株式会社 スケジューリングプログラム,方法および装置
JP5676297B2 (ja) * 2011-02-17 2015-02-25 日本電気株式会社 ジョブスケジューリングシステム、ジョブスケジューリング方法及びプログラム
JP5684629B2 (ja) * 2011-03-31 2015-03-18 日本電気株式会社 ジョブ管理システム及びジョブ管理方法
JP5737057B2 (ja) * 2011-08-19 2015-06-17 富士通株式会社 プログラム、ジョブスケジューリング方法、および情報処理装置
JP6010975B2 (ja) * 2012-03-30 2016-10-19 日本電気株式会社 ジョブ管理装置、ジョブ管理方法、及びプログラム
JP6186862B2 (ja) * 2013-05-07 2017-08-30 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
JP6349837B2 (ja) * 2014-03-25 2018-07-04 日本電気株式会社 スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
US9588818B2 (en) 2017-03-07
US20150277982A1 (en) 2015-10-01
JP2015194923A (ja) 2015-11-05

Similar Documents

Publication Publication Date Title
JP6364880B2 (ja) 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
KR101644800B1 (ko) 컴퓨팅 시스템 및 방법
JP5598229B2 (ja) ジョブ分散処理システム、情報処理装置及びプログラム
CN107851043B (zh) 快捷外围部件互连网络中资源组的动态分配
JP5429382B2 (ja) ジョブ管理装置及びジョブ管理方法
JP2017510899A (ja) リアルタイムストリーム計算システムにおいて計算資源の容量を増大させる方法および装置ならびに該容量を解放する方法および装置
US10048987B1 (en) Methods and apparatus for a resource sharing platform having resource quality estimation
JP6221588B2 (ja) 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法
KR101695013B1 (ko) 적응형 자원 할당 및 관리 방법
JP5676297B2 (ja) ジョブスケジューリングシステム、ジョブスケジューリング方法及びプログラム
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
KR102045125B1 (ko) 분산환경에서의 cda 프로토콜을 활용한 자원할당방법 및 이를 적용한 기록매체 및 분산처리장치
JP6666553B2 (ja) 情報処理装置、ジョブ管理方法およびジョブ管理プログラム
CN113254179A (zh) 基于高响应比的作业调度方法、系统、终端、存储介质
JP2016071886A5 (ja)
JP5577745B2 (ja) クラスタシステム、プロセス配置方法、及びプログラム
JP6303806B2 (ja) 並列計算機システム,プロセス制御プログラム,及び並列計算機システムの制御方法
JP6683046B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP6524733B2 (ja) 並列演算装置、並列演算システム、およびジョブ制御プログラム
JP2013073570A (ja) 画像処理システム、印刷システム、制御装置、画像処理方法およびプログラム
US20220179687A1 (en) Information processing apparatus and job scheduling method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180618

R150 Certificate of patent or registration of utility model

Ref document number: 6364880

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150