JP5429382B2 - ジョブ管理装置及びジョブ管理方法 - Google Patents
ジョブ管理装置及びジョブ管理方法 Download PDFInfo
- Publication number
- JP5429382B2 JP5429382B2 JP2012528532A JP2012528532A JP5429382B2 JP 5429382 B2 JP5429382 B2 JP 5429382B2 JP 2012528532 A JP2012528532 A JP 2012528532A JP 2012528532 A JP2012528532 A JP 2012528532A JP 5429382 B2 JP5429382 B2 JP 5429382B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- search
- node
- information
- mask pattern
- 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
Links
- 238000007726 management method Methods 0.000 title claims description 107
- 238000004364 calculation method Methods 0.000 claims description 157
- 238000000034 method Methods 0.000 claims description 42
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004215 lattice model Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ジョブ管理装置及びジョブ管理方法に関する。
並列処理を実行するコンピュータシステムである並列コンピュータシステムにおいて、計算ノード群である複数のコンピュータの間は、ネットワークにより接続される。計算ノードのネットワークによる接続の形態としては、完全結合、Fat−Tree結合、メッシュ結合、トーラス結合等が知られている。これらの中で、メッシュ結合及びトーラス結合は、近傍の計算ノードを相互に接続するので、数千個以上の計算ノードを低コストで接続することができる。このため、数千個以上の計算ノードを含む並列コンピュータシステムにおいては、2次元トーラス結合や3次元メッシュ結合が使用されることが多い。
なお、格子型コンピュータシステムにおいて、親ノードのスーパースケジューラが、格子型コンピュータシステムにおける複数のノードとノード間接続装置の接続形態にしたがって論理ノードからなる格子モデルを作成する機能と、格子型コンピュータシステムに与えられる複数タスクからなるサービス要求を分析する機能と、サービス要求の分析結果にしたがって、サービス要求毎に必要となるノード数を格子モデル内に確保するための基点となる子ノードの数を決定する機能と、決定された数の子ノードを格子モデル内に分散して配置する機能と、を有することが、提案されている。
また、例えば、メモリ中に引き継ぎ情報ファイルを管理する空きレコード管理エリアを設けてディスクの有効利用を図り、管理エリアをファイルの各レコードが使用中であれば“1”、未使用であれば“0”というように対応する1ビットで使用状況を表現することが、提案されている。
並列コンピュータシステムにおいて、計算ノード群である複数のコンピュータにおけるジョブの実行時間は、概略、計算ノードにおける実際の計算時間と、計算ノードの間における通信時間とに大別される。従って、計算ノードの間における通信時間の増加は、ジョブの実行時間を増加させる原因となる。
そこで、メッシュ結合又はトーラス結合された並列コンピュータシステムにおいて、隣接するノードの間における通信路が広帯域とされ、かつ、複数の単位ジョブを連続した長方形状又は直方体形状の計算ノード群に割り当てる。単位ジョブは、ユーザが投入した1個のジョブを分割したものである。複数の単位ジョブを連続した長方形状又は直方体形状の計算ノード群に割り当てることにより、ジョブの実行時間の増加を回避することができる。
複数の単位ジョブを連続した長方形状又は直方体形状の計算ノード群へ割り当てる割り当て処理は、ジョブ管理装置により実行される。ジョブ管理装置は、空きノードを検索して、単位ジョブに空きノードを割り当てる。空きノードは、新たに単位ジョブを割り当てることが可能な計算ノードである。空きノードを検索する時間が長いと、ユーザからは、ジョブの実行待ち時間が長く見える。また、空きノードを検索する時間が長いと、並列コンピュータシステムの稼働率が低下する。
本発明は、並列処理を実行するコンピュータシステムにおいて、空きノードを効率良く検索することができるジョブ管理装置を提供することを目的とする。
開示されるジョブ管理装置は、n(nは2以上の整数)次元メッシュ結合又はn次元トーラス結合されたコンピュータネットワークにおける計算ノードであって、ジョブの割り当てが可能な空きノードを検索する。ジョブ管理装置は、1次元検索用情報生成部と、検索情報生成部と、空きノード検索部とを含む。1次元検索用情報生成部は、n次元の中の1つの次元についての検索用情報であって、複数のビットを含み、n次元の中の1つの次元に属する複数の計算ノードの各々について、ジョブの割り当てが可能か否かを1ビットの情報で示す1次元検索用情報を生成する。検索情報生成部は、複数のビットに対応するビット数の検索用マスクパターンであって、n次元の中の1つの次元についてジョブが要求するサイズに対応する連続ビットを予め定められた値に設定された検索用マスクパターンを生成する。空きノード検索部は、n次元の中の1つの次元について、1次元検索用情報と検索用マスクパターンとを用いて予め定められた論理演算を実行することにより、空きノードを検索する。
開示されるジョブ管理装置によれば、並列処理を実行するコンピュータシステムにおいて、複数の単位ジョブを連続した長方形状又は直方体形状を割り当てる計算ノードである空きノードを、効率良く検索することができる。
本発明者は、並列コンピュータシステムにおける、空きノードの検索処理について検討した。
ユーザが投入したジョブは、ジョブ管理装置によって受け付けられ、複数の単位ジョブに分割される。複数の単位ジョブは、ジョブ管理装置によって実行する計算ノードに割り当てられ、割り当てられた計算ノードによって実行される。ジョブ管理装置は、ジョブを計算ノードに割り当てるため、空きノードを検索する。
例えば、図15に示すように、計算ノード群530が、3次元メッシュネットワークにより接続されているとする。この場合、ジョブ管理装置は、図16に示すように、空きノード531の検索処理を実行する。
ジョブ管理装置は、ジョブ割り当て情報リストのループを開始する(ステップS501)。具体的には、ジョブ管理装置は、予め定められた順に従って、1つのジョブ割り当て情報リストを選択する。
この後、ジョブ管理装置は、選択されたジョブ割り当て情報リストに定義されたジョブ、換言すれば、計算ジョブを割り当てるための6重ループ処理を開始する。
最初に、ジョブ管理装置は、計算ノード群530におけるz方向のループ、換言すれば、システムのz方向のループを開始する(ステップS502)。具体的には、ジョブ管理装置は、予め定められた順に従って、計算ノード群530におけるz方向の座標を選択する。計算ノード群530におけるz方向のループのループ範囲は、「1」から、「システムサイズ−ジョブサイズ+1」までである。
次に、ジョブ管理装置は、計算ノード群530におけるy方向のループ、換言すれば、システムのy方向のループを開始する(ステップS503)。具体的には、ジョブ管理装置は、予め定められた順に従って、計算ノード群530におけるy方向の座標を選択する。計算ノード群530におけるy方向のループのループ範囲は、「1」から、「システムサイズ−ジョブサイズ+1」までである。
次に、ジョブ管理装置は、計算ノード群530におけるx方向のループ、換言すれば、システムのx方向のループを開始する(ステップS504)。具体的には、ジョブ管理装置は、予め定められた順に従って、計算ノード群530におけるx方向の座標を選択する。計算ノード群530におけるx方向のループのループ範囲は、「1」から、「システムサイズ−ジョブサイズ+1」までである。
ステップS502〜S504により、計算ノード群530におけるジョブ割り当ての開始点、換言すれば、開始ノード531が選択される。
次に、ジョブ管理装置は、ステップS501において選択したジョブ割り当て情報リストにおけるジョブサイズのz方向のループを開始する(ステップS505)。具体的には、ジョブ管理装置は、予め定められた順に従って、ジョブ割り当て情報リストにおけるジョブサイズのz方向における位置を選択する。ジョブサイズのz方向のループのループ範囲は、「1」から、「ジョブサイズ」までである。
次に、ジョブ管理装置は、ジョブ割り当て情報リストにおけるジョブサイズのy方向のループを開始する(ステップS506)。具体的には、ジョブ管理装置は、予め定められた順に従って、ジョブ割り当て情報リストにおけるジョブサイズのy方向における位置を選択する。ジョブサイズのy方向のループのループ範囲は、「1」から、「(ジョブサイズ)」までである。
次に、ジョブ管理装置は、ジョブ割り当て情報リストにおけるジョブサイズのx方向のループを開始する(ステップS507)。具体的には、ジョブ管理装置は、予め定められた順に従って、ジョブ割り当て情報リストにおけるジョブサイズのx方向における位置を選択する。ジョブサイズのx方向のループのループ範囲は、「1」から、「(ジョブサイズ)」までである。
ステップS505〜S507により、前述の開始点を基準として、ジョブ割り当て情報リストにおけるある位置に対応する計算ノード531が選択される。
次に、ジョブ管理装置は、選択した計算ノード531が空きノードであるか否かを判断する(ステップS508)。選択した計算ノード531が空きノードでない場合、換言すれば、選択した計算ノード531が割り当て済みノードである場合、ジョブ管理装置は、ステップS509〜S512を省略して、ステップS513を実行する。
選択した計算ノード531が空きノードである場合、ジョブ管理装置は、ジョブ割り当て情報リストにおけるジョブサイズのx方向のループを終了する(ステップS509)。具体的には、ジョブ管理装置は、ジョブサイズのx方向についての前述のループ範囲の実行が終了しない場合にはステップS507を繰り返し、ジョブサイズのx方向についての前述のループ範囲の実行が終了した場合にはステップS510を実行する。
次に、ジョブ管理装置は、ジョブ割り当て情報リストにおけるジョブサイズのy方向のループを終了する(ステップS510)。具体的には、ジョブ管理装置は、ジョブサイズのy方向についての前述のループ範囲の実行が終了しない場合にはステップS506を繰り返し、ジョブサイズのy方向についての前述のループ範囲の実行が終了した場合にはステップS511を実行する。
次に、ジョブ管理装置は、ジョブ割り当て情報リストにおけるジョブサイズのz方向のループを終了する(ステップS511)。具体的には、ジョブ管理装置は、ジョブサイズのz方向についての前述のループ範囲の実行が終了しない場合にはステップS505を繰り返し、ジョブサイズのz方向についての前述のループ範囲の実行が終了した場合にはステップS512を実行する。
次に、ジョブ管理装置は、以上の処理の結果、ジョブが計算ノード群530に割り当て可能であるか否かを判断する(ステップS512)。ジョブが計算ノード群530に割り当て可能である場合、ジョブ管理装置は、ステップS516を実行する。ジョブが計算ノード群530に割り当て可能でない場合、ジョブ管理装置は、ステップS513を実行する。
次に、ジョブ管理装置は、計算ノード群530におけるx方向のループを終了する(ステップS513)。具体的には、ジョブ管理装置は、計算ノード群530におけるx方向についての前述のループ範囲の実行が終了しない場合にはステップS504を繰り返す。計算ノード群530におけるx方向についての前述のループ範囲の実行が終了した場合には、ジョブ管理装置は、ステップS514を実行する。
次に、ジョブ管理装置は、計算ノード群530におけるy方向のループを終了する(ステップS514)。具体的には、ジョブ管理装置は、計算ノード群530におけるy方向についての前述のループ範囲の実行が終了しない場合にはステップS503を繰り返す。計算ノード群530におけるy方向についての前述のループ範囲の実行が終了した場合には、ジョブ管理装置は、ステップS515を実行する。
次に、ジョブ管理装置は、計算ノード群530におけるz方向のループを終了する(ステップS515)。具体的には、ジョブ管理装置は、計算ノード群530におけるz方向についての前述のループ範囲の実行が終了しない場合にはステップS502を繰り返す。計算ノード群530におけるz方向の前述のループ範囲の実行が終了した場合には、ジョブ管理装置は、ステップS516を実行する。
次に、ジョブ管理装置は、ジョブ割り当て情報リストのループを終了する(ステップS516)。具体的には、ジョブ管理装置は、現在のジョブ割り当て情報リストが最後か否かを調べ、最後でない場合にはステップS501を繰り返し、最後である場合には処理を終了する。
以上によれば、ジョブの開始点を定めるためには、計算ノード群530におけるz方向のループ、y方向のループ、x方向のループの3重のループの実行が必要になる。従って、合計で6重のループの実行が必要になる。また、ジョブを連続した直方体形状に割り当てるためには、ジョブ割り当て情報リストにおけるジョブサイズのz方向のループ、y方向のループ、x方向のループの3重のループの実行が必要になる。従って、6重のループの実行により、計算ノード群530へジョブが割り当てられる。
このため、計算ノード群530の規模が大きくなると、空きノード検索の6重ループの処理時間が大きくなる。これは、投入されたジョブの実行待ち時間が長くなる原因となり、また、計算ノード群530の稼動率が悪化する原因となる。
開示のジョブ管理装置及びジョブ管理方法は、並列処理を実行するコンピュータシステムにおいて、複数の単位ジョブを連続した長方形状又は直方体形状を割り当てる計算ノードである空きノードを、効率良く検索する。
(第1の実施態様)
図1及び図2は、ジョブ管理装置の構成を示す図である。図3は、ジョブ管理処理の説明図である。
図1及び図2は、ジョブ管理装置の構成を示す図である。図3は、ジョブ管理処理の説明図である。
並列コンピュータシステムは、図1に示すように、ジョブ管理装置1、利用者端末2、計算ノード群3を含む。ジョブ管理装置1は、利用者端末2と第1のネットワーク4を介して接続され、計算ノード群3と第2のネットワーク5を介して接続される。第1のネットワーク4と第2のネットワーク5とは、同一のネットワークであっても良い。
計算ノード群3は、図2(A)のように接続された複数の計算ノード31を含む。図2(A)に示す計算ノード群3は、3次元メッシュ結合されたコンピュータネットワーク、換言すれば、3次元メッシュネットワークである。従って、図1の例において、計算ノード群3は、3次元メッシュネットワークである。3次元メッシュネットワークは、隣接する計算ノード31のみが接続される結合である。
なお、計算ノード群3は、図2(B)に示すように、2次元トーラス結合されたコンピュータネットワーク、換言すれば、2次元トーラスネットワークであっても良い。2次元トーラスネットワークも、隣接する計算ノード31のみが接続される結合である。なお、両端の計算ノード31は、隣接すると考えてよい。また、計算ノード群3は、n次元のコンピュータネットワークであって良い。ここで、nは2以上の整数である。
ジョブ管理装置1は、空きノード31を検索して、検索結果に基づいて計算ノード31にジョブを割り当てる。計算ノード群3におけるジョブの割り当てが可能な計算ノード31を、空きノード31ということとする。このために、ジョブ管理装置1は、ジョブ受付処理部11、ジョブ実行制御部12、記憶部13、ジョブ割り当て処理部14、計算ノード情報記憶部15を含む。ジョブ受付処理部11は割り当て情報生成部111を含む。記憶部13は、X軸検索用情報記憶部131、ジョブ割り当て情報記憶部132、検索情報記憶部133を含む。ジョブ割り当て処理部14は、空きノード検索部141、計算ノード管理部142を含む。計算ノード情報記憶部15は3次元システム情報記憶部151を含む。
記憶部13は、ジョブ受付処理部11、ジョブ実行制御部12、ジョブ割り当て処理部14が使用するメモリである。計算ノード情報記憶部15は計算ノード管理部142が使用するメモリである。ジョブ受付処理部11、ジョブ実行制御部12、ジョブ割り当て処理部14は、処理プログラムにより実現される。
計算ノード管理部142は、計算ノード群3について、3次元システム情報151’を生成する。例えば、計算ノード管理部142は、構造情報と空き情報とに基づいて、図3(A)に示す3次元システム情報151’を生成する。構造情報と空き情報は、計算ノード管理部142に入力され情報記憶部15に保持される。生成された3次元システム情報151’は、計算ノード情報記憶部15の3次元システム情報記憶部151に格納される。3次元システム情報151’については後述する。
構造情報は、計算ノード群3における各々の計算ノード31の位置を示す。空き情報は、各々の計算ノード31が「空き」であるか「使用中」であるかを示す。計算ノード群3における位置は、計算ノード群3のx方向の位置を示すx座標、y方向の位置を示すy座標、z方向の位置を示すz座標により表される。3次元システム情報において、空きノードは論理「1」で表され、使用中ノードは論理「0」で表される。
ジョブ受付処理部11は、利用者端末2から送信されたジョブ投入コマンドを受信して実行する。換言すれば、ジョブ受付処理部11は、受信したジョブ投入コマンドを受け付けて、ジョブ割り当て処理部14に送る。
また、ジョブ受付処理部11の割り当て情報生成部111は、ジョブ投入コマンドに基づいて、図3(C)に示すジョブ割り当て情報132’を生成して、ジョブ割り当て処理部14に送信する。この時点でのジョブ割り当て情報132’は、後述するように、初期値を格納するのみである。ジョブ割り当て処理部14は、受信したジョブ割り当て情報132’を、記憶部13のジョブ割り当て情報記憶部132に格納する。ジョブ割り当て情報132’については後述する。
ジョブ割り当て処理部14の空きノード検索部141は、計算ノード群3にジョブを割り当てる。具体的には、空きノード検索部141は、3次元システム情報151’に基づいて、図3(B)に示すx軸検索用情報131’を生成する。生成されたx軸検索用情報131’は、記憶部13のx軸検索用情報記憶部131に格納される。x軸検索用情報131’については後述する。
空きノード検索部141は、ジョブ割り当て情報132’に基づいて、図3(D)に示す検索情報133’を生成する。生成された検索情報133’は、記憶部13の検索情報記憶部133に格納される。ジョブ割り当て情報132’については後述する。
検索情報133’は、後述するように、検索用マスクパターンを含む。検索用マスクパターンは、空きノード31の検索に用いられる。
空きノード検索部141は、x軸検索用情報131’と検索情報133’とを用いて、計算ノード群3における空きノード31を検索する。この時、実際には、空きノード検索部141は、主として、x軸検索用情報131’と検索用マスクパターンとを用いた論理演算を実行することにより、空きノード31を検索する。空きノード検索部141は、空きノード31の検索結果に基づいて、ジョブを空きノード31に割り当てる。換言すれば、空きノード検索部141は、ジョブ割り当て情報132’を完成させて、ジョブ実行制御部12に送信する。
ジョブ実行制御部12は、受信したジョブ割り当て情報132’に基づいて、ジョブの実行を制御する。換言すれば、ジョブ実行制御部12は、ジョブを割り当てられた計算ノード31にジョブを実行させる。
以下、並列コンピュータシステムにおけるジョブ割り当て処理について、図4〜図9を参照して具体的に説明する。
図4は、3次元システム情報の一例を示す。
計算ノード管理部142は、図4に示すように、計算ノード群3の計算ノード31の各々について、3次元システム情報151’を生成する。3次元システム情報151’は、実際には、3次元の配列により計算ノード群3の構造を表したものである。
図3(A)の3次元システム情報151’において、[systemX]は計算ノード群3のx方向の範囲となる値を取り、[systemY]は計算ノード群3のy方向の範囲となる値を取り、[systemZ]は計算ノード群3のz方向の範囲となる値を取る。このために、計算ノード管理部142は、構造情報に基づいて、複数の計算ノード31のx座標の中の最小値〜最大値を[systemX]とし、複数の計算ノード31のy座標の中の最小値〜最大値を[systemY]とし、複数の計算ノード31のz座標の中の最小値〜最大値を[systemZ]とする。これにより、図4に示すように、計算ノード群3を直方体の形状として表すことができる。
例えば、図4において、x座標は0〜7であり、y座標は0〜7であり、z座標は0〜7である。従って、[systemX]の最大値が8、[systemY]の最大値が8、[systemZ]の最大値が8である。この場合、計算ノード群3の構成は、8×8×8となる。[systemX]、[systemY]、[systemZ]の範囲は、相互に異なっていても良い。
また、3次元システム情報151’は、計算ノード群3に含まれる各々の計算ノード31についての空きノード情報を含む。空きノード情報は、当該計算ノード31が空きノードであることを示す論理「1」、又は、当該計算ノード31が使用中ノードであることを示す論理「0」のいずれか一方である。
図5は、x軸検索用情報の一例を示す。
空きノード検索部141は、図5に示すように、3次元システム情報151’に基づいて、x軸検索用情報131’を生成する。x軸検索用情報131’は、3次元の中の1つの次元についての検索用情報である。換言すれば、x軸検索用情報131’は1次元検索用情報である。1次元検索用情報は、複数のビットを含む。x軸検索用情報131’は、3次元の中の1つの次元であるx軸に属する複数の計算ノードの各々について、ジョブの割り当てが可能か否かを1ビットの情報で示す。換言すれば、x軸検索用情報131’は、3次元システム情報151’における配列xの複数の要素の各々を1ビットで表現し、かつ、配列xの複数の要素を1つの変数で格納するものである。
なお、x軸検索用情報131’に代えて、y軸検索用情報又はz軸検索用情報を生成するようにしても良い。
図3(B)のx軸検索用情報131’において、xは、計算ノード群3のx方向の全ての値である。一方、[systemY]は計算ノード群3のy方向の範囲となる値を取り、[systemZ]は計算ノード群3のz方向の範囲となる値を取る。従って、x軸検索用情報131’は、複数のx軸検索用情報131A、131B、・・・を含む。換言すれば、x軸検索用情報131’は、x座標が異なりかつ共通の座標(y,z)を有する計算ノード31毎に生成される。また、x軸検索用情報131’の数は、[systemY]×[systemZ]である。
例えば、x軸検索用情報131Aは、共通の座標(y,z)=(0,0)を有する計算ノード31についての情報である。x軸検索用情報131Aは、図5に示すように、座標(x,y,z)=(0,0,0)から座標(x,y,z)=(7,0,0)までの複数の計算ノード31についての、空きノード情報を含む。例えば、座標(0,0,0)の計算ノード31が空きノードである場合、x軸検索用情報131Aのbit7は「1」とされる。bit6〜bit0も、空きノード情報に従って定まる。x軸検索用情報131Aのビットの数は、[systemX]、換言すれば、計算ノード群3のx方向の範囲に一致し、図5においては8ビットである。
x軸検索用情報131’を用いることにより、計算ノード群3は、図5に示す計算ノード群3’として表される。計算ノード群3’は、個々の要素が8ビットのデータ列である、y方向及びz方向の2次元の配列により、3次元の計算ノード群3を置換したものである。
図6は、検索用マスクパターンの一例を示す。
空きノード検索部141は、図6に示すように、検索用マスクパターン134を生成する。検索用マスクパターン134は、x軸検索用情報131Aにおける複数のビットに対応するビット数を含む。換言すれば、検索用マスクパターン134のビットの数は、x軸検索用情報131Aのビットの数と同一とされる。検索用マスクパターン134は、3次元の中の1つの次元についてジョブが要求するサイズに対応する連続ビットを予め定められた値に設定されたものである。換言すれば、検索用マスクパターン134は、x軸検索用情報131Aと同一の座標軸について生成される。従って、図6の検索用マスクパターン134は、x軸の検索用である。
なお、x軸検索用情報131’に代えてy軸検索用情報又はz軸検索用情報が生成された場合には、検索用マスクパターン134に代えてy軸の検索用のマスクパターン又はz軸の検索用のマスクパターンが生成される。
前述したように、検索用マスクパターン134は検索情報133’に含まれ、検索情報133’はジョブ割り当て情報132’に基づいて生成される。そこで、まず、図3(C)に示すジョブ割り当て情報132’について説明する。
図3(C)のジョブ割り当て情報132’において、ジョブの開始座標(x)は図3(A)の[systemX]の最小値であり、ジョブの開始座標(y)は図3(A)の[systemY]の最小値であり、ジョブの開始座標(z)は図3(A)の[systemZ]の最小値である。なお、[systemX]の最小値、[systemY]の最小値、[systemZ]の最小値は、いずれも「0」とされる。換言すれば、ジョブの割り当ては、(0,0,0)の座標を有する計算ノード31から順に判断される。
また、図3(C)のジョブ割り当て情報132’において、ジョブの形状(x)はジョブのx方向のサイズであり、ジョブの形状(y)はジョブのy方向のサイズであり、ジョブの形状(z)はジョブのz方向のサイズである。ジョブの形状(x)、ジョブの形状(y)及びジョブの形状(z)は、利用者端末2から入力されたジョブ投入コマンドにおいて指示される。
ジョブの全体の要求形状6は、ジョブの形状(x)、ジョブの形状(y)及びジョブの形状(z)に基づいて定まる。例えば、ジョブの形状(x)が「4」であり、ジョブの形状(y)が「4」であり、ジョブの形状(z)が「4」である場合、ジョブの全体の要求形状6は、図6に示すように定まる。この時、ジョブの全体の要求形状6を「ジョブの形状(x)×ジョブの形状(y)×ジョブの形状(z)」と表すとすると、この場合のジョブの全体の要求形状6は、「4×4×4」である。換言すれば、ジョブの全体の要求形状6は、「4×4×4」のジョブの要求の要素61を含む。各々のジョブの要求の要素61は、各々の計算ノード31に対応し、かつ、割り当てられる。
また、図3(C)のジョブ割り当て情報132’において、割り当て可能フラグは、当該ジョブが計算ノード群3に割り当て可能である場合には「1」とされ、割り当て不可能である場合には「0」とされる。この時点では、割り当て可能フラグは、割り当て可能か否かが不明であるので、「0」とされる。
ここで、ジョブが要求する計算ノード31の数、換言すれば、ジョブを分割した単位ジョブの数が、例えば「64」であるとする。この場合、「64」を満足するジョブの全体の形状6の組合せは、複数存在し得る。具体的には、ジョブの全体の要求形状6は、「4×4×4」、「2×8×4」、「2×2×16」のいずれであっても良い。
そこで、割り当て情報生成部111は、実際には、ジョブ割り当て情報132’として、複数のジョブ割り当て情報リストを生成する。生成されるジョブ割り当て情報リストの数は、ジョブの全体の形状6の組合せの数である。
複数のジョブ割り当て情報リストにおいては、ジョブの形状(x)、ジョブの形状(y)及びジョブの形状(z)のみが相互に異なる。例えば、第1のジョブ割り当て情報リストにおいては、ジョブの形状(x)が「4」、ジョブの形状(y)が「4」、ジョブの形状(z)が「4」とされ、第2のジョブ割り当て情報リストにおいては、ジョブの形状(x)が「2」、ジョブの形状(y)が「8」、ジョブの形状(z)が「4」とされ、第3のジョブ割り当て情報リストにおいては、ジョブの形状(x)が「2」、ジョブの形状(y)が「2」、ジョブの形状(z)が「16」とされる。複数のジョブ割り当て情報リストの各々について、検索情報133’が生成され、ジョブの割り当てが可能か否かが検索される。
次に、図3(D)の検索情報133’において、ジョブの開始座標(x)はジョブ割り当て情報132’におけるジョブの開始座標(x)から得られ、ジョブの開始座標(y)はジョブ割り当て情報132’におけるジョブの開始座標(y)から得られ、ジョブの開始座標(z)はジョブ割り当て情報132’におけるジョブの開始座標(z)から得られる。ジョブの開始座標(y)は並列コンピュータシステムにおけるy方向のループの初期値として用いられ、ジョブの開始座標(z)は並列コンピュータシステムにおけるz方向のループの初期値として用いられる。
また、図3(D)の検索情報133’において、ジョブの形状(x)はジョブ割り当て情報132’におけるジョブの形状(x)から得られ、ジョブの形状(y)はジョブ割り当て情報132’におけるジョブの形状(y)から得られ、ジョブの形状(z)はジョブ割り当て情報132’におけるジョブの形状(z)から得られる。ジョブの形状(x)、ジョブの形状(y)及びジョブの形状(z)は、固定である。
また、図3(D)の検索情報133’において、検索用マスクパターンは、図6に示す検索用マスクパターン134として得られる。前述したように、検索用マスクパターン134のビットの数は、x軸検索用情報131Aのビットの数と同一とされる。従って、図4及び図5の計算ノード群3を検索するための検索用マスクパターン134のビットの数は「8」である。
一方、ジョブの全体の要求形状6において、例えば、図6に示すように、ジョブの形状(x)が「4」であり、ジョブの形状(y)が「4」であり、ジョブの形状(z)が「4」であるとする。従って、前述したように、検索用マスクパターン134は、x軸について、ジョブが要求するサイズ「4」に対応する連続ビットbit7〜bit4を、予め定められた値「0」に設定することにより得られる。この時、検索用マスクパターン134において、先頭のビットbit7から連続する4ビットが「0」とされる。これにより、x軸の方向において、連続した空きノード31を検出することができる。また、この時、ジョブが割り当て要求するサイズ以外のサイズ、換言すれば、ジョブの割り当ての範囲外の計算ノード31に対応するビットであるbit3〜bit0を「1」とする。ジョブの割り当ての範囲外の計算ノード31は、ジョブの割り当て処理において無視される範囲である。なお、x軸についてジョブが要求するサイズ「4」が、ジョブの全体の要求形状6における、ジョブの部分形状62に対応する。
図7は、空きノードの検索の一例を示す。
空きノード検索部141は、x軸について、x軸検索用情報131’と検索用マスクパターン134とを用いて予め定められた論理演算を実行することにより、空きノード31を検索する。このために、前述したように、x軸検索用情報131’において、使用中ノードを「0」で表し、空きノードを「1」で表す。また、検索用マスクパターン134において、割り当て要求する計算ノードを「0」で表し、割り当て範囲外のノードを「1」で表す。
従って、図7に示すように、使用中である計算ノード31について割り当て要求を無視して良い場合、換言すれば、ビットの値が「0」である計算ノード31について検索用マスクパターン134のビットの値が「1」である場合には、どのように判定しても良いので、割り当てが可能であると判定することとする。
ここで、割り当てが可能である場合を「1」で表し、割り当てが不可能である場合を「0」で表すこととする。このように表す場合、使用中を示す「0」と無視を示す「1」との論理和(OR演算)により求められる演算結果「1」を用いて、割り当てが可能であると判定することができる。
なお、割り当てが可能であるかの演算は、論理和に限られない。従って、図7に示す判定の論理の設定に応じて、種々の論理演算を用いることができる。
また、使用中である計算ノード31について割り当て要求がある場合、換言すれば、ビットの値が「0」である計算ノード31について検索用マスクパターン134のビットの値が「0」である場合には、割り当てが不可能であると判定する。これは、本来の割り当てが不可能な場合である。この場合、使用中を示す「0」と割り当て要求を示す「0」との論理和により求められる演算結果「0」を用いて、割り当てが不可能であると判定することができる。
また、空きである計算ノード31について割り当て要求を無視して良い場合、換言すれば、ビットの値が「1」である計算ノード31について検索用マスクパターン134のビットの値が「1」である場合には、どのように判定しても良いので、割り当てが可能であると判定することとする。この場合、空きを示す「1」と無視を示す「1」との論理和により求められる演算結果「1」を用いて、割り当てが可能であると判定することができる。
また、空きである計算ノード31について割り当て要求がある場合、換言すれば、ビットの値が「1」である計算ノード31について検索用マスクパターン134のビットの値が「0」である場合には、割り当てが可能であると判定する。これは、本来の割り当てが可能な場合である。この場合、空きを示す「1」と割り当て要求を示す「0」との論理和により求められる演算結果「1」を用いて、割り当てが可能であると判定することができる。
図8及び図9は、ジョブの割り当てについての判定の一例を示す。なお、図8及び図9に示す例は、検索用マスクパターン134におけるシフト処理の説明の便宜のために、図4〜図6に示す例とは異なる。
空きノード検索部141は、以上に述べた論理和の演算結果が「0」である場合、検索用マスクパターン134におけるシフト処理を実行する。ここで、論理和の演算結果が「0」である場合とは、x軸検索用情報131’と検索用マスクパターン134との論理和が、x軸について、ジョブの割り当てが不可能であることを示す場合である。検索用マスクパターン134におけるシフト処理とは、例えば、ジョブが要求するサイズ「4」に対応する連続ビットbit7〜bit4を、予め定められた方向に1ビットだけシフトすることである。予め定められた方向とは、x軸方向の座標値が増す方向、換言すれば、bit0に向かう方向である。
例えば、x軸検索用情報131Cにおいて、図8(A)に示すように、bit7〜bit5が「0」であり、bit4〜bit2が「1」であり、bit1〜bit0が「0」であるとする。この状態は、bit7〜bit5に対応する計算ノード31が使用中であり、bit4〜bit2に対応する計算ノード31が空きであり、bit1〜bit0に対応する計算ノード31が使用中である状態である。
また、例えば、検索用マスクパターン134Bにおいて、図8(B)に示すように、bit7〜bit5が「0」であり、bit4〜bit0が「1」であるとする。この状態は、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31が割り当てに無関係であり無視して良い状態である。
空きノード検索部141は、図8(A)のx軸検索用情報131Cと、図8(B)の検索用マスクパターン134Bとの論理和を求める。この論理和の演算結果は、図8(C)に示すように、bit7〜bit5が「0」となり、bit4〜bit0が「1」となる。従って、bit7〜bit5が割り当て不可能であり、bit4〜bit0が割り当て可能であることが求められる。
ここで、前述したように、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31は割り当てに無関係である。従って、割り当て要求の対象であるbit7〜bit5に対応する計算ノード31について、ジョブを割り当てることができない。
そこで、空きノード検索部141は、図8(B)の検索用マスクパターン134Bにおける、ジョブが要求するサイズ「3」に対応する連続ビットbit7〜bit5を、bit0の方向に1ビットだけシフトする。これにより、図8(D)の検索用マスクパターン134Cが得られる。
検索用マスクパターン134Bにおけるシフト処理の後、空きノード検索部141は、x軸検索用情報131’とシフトされた検索用マスクパターン134Cとを用いて論理和を求めることにより、再度、空きノードを検索する。
図8(A)のx軸検索用情報131Cと、図8(D)の検索用マスクパターン134Cとの論理和の演算結果は、図8(E)に示すように、bit7が「1」となり、bit6〜bit5が「0」となり、bit4〜bit0が「1」となる。従って、bit7が割り当て可能であり、bit6〜bit5が割り当て不可能であり、bit4〜bit0が割り当て可能であることが求められる。
ここで、前述したように、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31は割り当てに無関係である。従って、割り当て要求の対象であるbit7〜bit5に対応する計算ノード31について、ジョブを割り当てることができない。
そこで、空きノード検索部141は、図8(D)の検索用マスクパターン134Cにおける、ジョブが要求するサイズ「3」に対応する連続ビットbit6〜bit4を、bit0の方向に1ビットだけシフトする。これにより、図9(A)の検索用マスクパターン134Dが得られる。
検索用マスクパターン134Cにおけるシフト処理の後、空きノード検索部141は、x軸検索用情報131’とシフトされた検索用マスクパターン134Dとを用いて論理和を求めることにより、再度、空きノードを検索する。
図8(A)のx軸検索用情報131Cと、図9(A)の検索用マスクパターン134Dとの論理和の演算結果は、図9(B)に示すように、bit7〜bit6が「1」となり、bit5が「0」となり、bit4〜bit0が「1」となる。従って、bit7〜bit6が割り当て可能であり、bit5が割り当て不可能であり、bit4〜bit0が割り当て可能であることが求められる。
ここで、前述したように、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31は割り当てに無関係である。従って、割り当て要求の対象であるbit7〜bit5に対応する計算ノード31について、ジョブを割り当てることができない。
そこで、空きノード検索部141は、図9(A)の検索用マスクパターン134Dにおける、ジョブが要求するサイズ「3」に対応する連続ビットbit5〜bit3を、bit0の方向に1ビットだけシフトする。これにより、図9(C)の検索用マスクパターン134Eが得られる。
検索用マスクパターン134Dにおけるシフト処理の後、空きノード検索部141は、x軸検索用情報131’とシフトされた検索用マスクパターン134Eとを用いて論理和を求めることにより、再度、空きノードを検索する。
図8(A)のx軸検索用情報131Cと、図9(C)の検索用マスクパターン134Eとの論理和の演算結果は、図9(D)に示すように、bit7〜bit0が「1」となる。従って、bit7〜bit0が割り当て可能であることが求められる。
ここで、前述したように、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31は割り当てに無関係である。従って、割り当て要求の対象であるbit7〜bit5に対応する計算ノード31について、ジョブを割り当てることができる。
以上は、x軸についての検索情報である。空きノード検索部141は、x軸以外の残りのy軸及びz軸について、空きノード31か否かの判定処理を、開始点から予め定められた順に繰り返すことにより、空きノード31を検索する。
これにより、ジョブの開始点を定めるための処理を、並列コンピュータシステムにおけるz方向のループとy方向のループのみとして、x方向のループを省略することができる。また、ジョブを連続した直方体形状に割り当てるための処理を、ジョブサイズのz方向のループとy方向のループのみとして、x方向のループを省略することができる。従って、6重のループではなく、4重のループの実行により、並列コンピュータシステムへジョブが割り当てられる。従って、投入されたジョブの実行待ち時間を短縮することができ、また、並列コンピュータシステムの稼動率を向上することができる。
図10は、ジョブ管理処理フローである。
空きノード検索部141は、初期化処理を実行して、3次元システム情報151’に基づいて、x軸検索用情報131’を生成する(ステップS10)。
次に、空きノード検索部141は、ジョブ割り当て情報リストのループを開始する(ステップS11)。ジョブ割り当て情報リストのループは、ジョブ割り当て情報132’に含まれる複数のジョブ割り当てリストの数分のループ制御を行う処理である。具体的には、空きノード検索部141は、予め定められた順に従って、ジョブ割り当て情報132’の中から1つのジョブ割り当て情報リストを選択する。この時点では、ジョブ割り当て情報132’であるジョブ割り当て情報リストにおいて、割り当て可能フラグは、不可能(false)が設定されている。
この後、空きノード検索部141は、選択されたジョブ割り当て情報リストに定義されたジョブ、換言すれば、計算ジョブを割り当てるための4重ループ処理を開始する。
最初に、空きノード検索部141は、計算ノード群3、換言すれば、並列コンピュータシステムにおけるz方向のループを開始する(ステップS12)。具体的には、空きノード検索部141は、予め定められた順に従って、計算ノード群3におけるz方向の座標を選択する。なお、計算ノード群3におけるz方向のループを「システムのzループ」と言うこととする。システムのzループは、検索の開始点をz方向に制御するループである。システムのzループのループ範囲は、「1」から、「システムサイズ−ジョブサイズ+1」までである。
次に、空きノード検索部141は、計算ノード群3、換言すれば、並列コンピュータシステムにおけるy方向のループを開始する(ステップS13)。具体的には、空きノード検索部141は、予め定められた順に従って、計算ノード群3におけるy方向の座標を選択する。これにより、1個のx軸検索用情報131’が選択される。なお、計算ノード群3におけるy方向のループを「システムのyループ」と言うこととする。システムのyループは、検索の開始点をy方向に制御するループである。システムのyループのループ範囲は、「1」から、「システムサイズ−ジョブサイズ+1」までである。
ステップS12〜S13により、計算ノード群3におけるジョブ割り当ての開始点、換言すれば、開始点についてのx軸検索用情報131’が選択される。
次に、空きノード検索部141は、選択されたx軸検索用情報131’において、空きノード31の数が、ジョブが要求する計算ノード31の数未満であるか否かを判断する(ステップS14)。具体的には、空きノード検索部141は、x軸検索用情報131’における「1」の数をカウントし、カウント値とx方向のジョブサイズとを比較する。空きノード31の数がジョブサイズ未満の場合、空きノード31の検索処理が無駄になることを回避して、処理時間を短縮することができる。
空きノード31の数がジョブが要求する計算ノード31の数未満である場合(ステップS14 Yes)、空きノード検索部141は、ステップS115を実行する。
空きノード31の数がジョブが要求する計算ノード31の数未満でない場合(ステップS14 No)、空きノード検索部141は、検索情報133’を初期化する(ステップS15)。
具体的には、空きノード検索部141は、検索情報133’において、ジョブの開始座標(x)、ジョブの開始座標(y)及びジョブの開始座標(z)に「0」を設定する。また、空きノード検索部141は、検索情報133’において、ジョブの形状(x)にジョブ割り当て情報132’におけるジョブの形状(x)を設定し、ジョブの形状(y)にジョブ割り当て情報132’におけるジョブの形状(y)を設定し、ジョブの形状(z)にジョブ割り当て情報132’におけるジョブの形状(z)を設定する。更に、空きノード検索部141は、検索情報133’において、検索用マスクパターン134を生成する。検索用マスクパターン134は、最左端のbit7から順にジョブの形状(x)の数の分の「0」を設定し、残りのbitに「1」を設定する。これにより、例えば図6に示す検索用マスクパターン134が得られる。更に、空きノード検索部141は、検索情報133’において、シフト総数に「0」を設定し、シフト数に「0」を設定する。
次に、空きノード検索部141は、検索用マスクパターン134において、ジョブの形状(x)の数の分の「0」を、検索情報133’におけるシフト数だけ、bit0の方向へシフトする、換言すれば、右シフトする(ステップS16)。シフト数が「0」である場合には、シフト処理は実行されない。従って、シフト数が初期値である場合、シフト処理は実行されない。空きノード検索部141は、検索情報133’において、シフト総数にシフト数を加算する。
なお、計算ノード群3が図2(B)に示すトーラス結合されたコンピュータネットワークである場合において、シフト総数とx方向のジョブサイズとの合計がx軸検索用情報131’又は検索用マスクパターン134のサイズ以上になった場合、図13を参照して後述するように処理される。
次に、空きノード検索部141は、x軸検索用情報131’と検索用マスクパターン134とを用いた論理和演算を実行することにより、ジョブが割り当て可能か否かを判断する(ステップS17)。
ジョブの割り当てが可能でない場合(ステップS17 No)、空きノード検索部141は、シフト数に+1を加算した後に、ジョブの形状(x)の数の分の「0」についての次回のシフトが、右シフトの上限か否かを判断する(ステップS18)。次回のシフトが右シフトの上限である場合(ステップS18 Yes)、空きノード検索部141は、ステップS115を実行する。次回のシフトが右シフトの上限でない場合(ステップS18 No)、空きノード検索部141は、ステップS16を実行する。
ここで、右シフトの上限とは、計算ノード群3が図2(A)のメッシュ結合である場合、シフト総数とx方向のジョブサイズとの合計がx軸検索用情報131’又は検索用マスクパターン134のサイズ以上となった場合である。換言すれば、シフト総数とx方向のジョブサイズとの合計がx軸検索用情報131’又は検索用マスクパターン134のサイズ未満の場合は、右シフトの上限ではない。
例えば、図6の検索用マスクパターン134において、x方向のジョブサイズが「4」であり、検索用マスクパターン134のサイズが「8」である。従って、シフト総数が「3」以下であれば右シフトの上限とならず、シフト総数が「4」以上であれば右シフトの上限となる。
また、計算ノード群3が図2(B)のトーラス結合である場合において、シフト総数がx軸検索用情報131’又は検索用マスクパターン134のサイズ未満の場合には、右シフトの上限ではないので、ステップS16が実行される。シフト総数がx軸検索用情報131’又は検索用マスクパターン134のサイズ以上の場合には、右シフトの上限であり、ステップS115が実行される。
ステップS17において、ジョブの割り当てが可能である場合(ステップS17 Yes)、空きノード検索部141は、ステップS11において選択したジョブ割り当て情報リストにおけるジョブサイズのz方向のループを開始する(ステップS19)。具体的には、空きノード検索部141は、予め定められた順に従って、ジョブ割り当て情報リストにおけるジョブサイズのz方向における位置を選択する。なお、ジョブ割り当て情報リストにおけるz方向のループを「ジョブサイズのzループ」と言うこととする。ジョブサイズのzループは、検索マスクパターン134による空きノードの検索をz方向に制御するループである。ジョブサイズのzループのループ範囲は、「1」から、「ジョブサイズ」までである。
次に、空きノード検索部141は、ジョブ割り当て情報リストにおけるジョブサイズのy方向のループを開始する(ステップS110)。具体的には、空きノード検索部141は、予め定められた順に従って、ジョブ割り当て情報リストにおけるジョブサイズのy方向における位置を選択する。なお、ジョブ割り当て情報リストにおけるy方向のループを「ジョブサイズのyループ」と言うこととする。ジョブサイズのyループは、検索マスクパターン134による空きノードの検索をy方向に制御するループである。ジョブサイズのyループのループ範囲は、「1」から、「ジョブサイズ」までである。ステップS19〜S110により、前述の開始点を基準として、ジョブ割り当て情報リストにおけるある位置に対応するx軸検索用情報131’が選択される。
次に、空きノード検索部141は、x軸検索用情報131’と検索用マスクパターン134とを用いた論理和演算を実行することにより、ジョブが割り当て可能か否かを判断する(ステップS111)。
ジョブの割り当てが可能でない場合(ステップS111 No)、空きノード検索部141は、シフト数に+1を加算した後に、ジョブの形状(x)の数の分の「0」についての次回のシフトが、右シフトの上限か否かを判断する(ステップS118)。次回のシフトが右シフトの上限である場合(ステップS118 Yes)、空きノード検索部141は、ステップS115を実行する。次回のシフトが右シフトの上限でない場合(ステップS118 No)、空きノード検索部141は、ステップS16を実行する。右シフトの上限については前述した通りである。
ステップS111において、ジョブの割り当てが可能である場合(ステップS111 Yes)、次に、空きノード検索部141は、ジョブ割り当て情報リストにおけるジョブサイズのy方向のループを終了する(ステップS112)。具体的には、空きノード検索部141は、ジョブサイズのy方向についての前述のループ範囲の実行が終了しない場合にはステップS110を繰り返し、ジョブサイズのy方向についての前述のループ範囲の実行が終了した場合にはステップS113を実行する。
次に、空きノード検索部141は、ジョブ割り当て情報リストにおけるジョブサイズのz方向のループを終了する(ステップS113)。具体的には、空きノード検索部141は、ジョブサイズのz方向についての前述のループ範囲の実行が終了しない場合にはステップS19を繰り返し、ジョブサイズのz方向についての前述のループ範囲の実行が終了した場合にはステップS114を実行する。
次に、空きノード検索部141は、図6のジョブの要求形状6の全体が割り当て可能か否かを判断する(ステップS114)。図6のジョブの要求形状6の全体の割り当てが可能である場合、空きノード検索部141は、ステップS117を実行する。
図6のジョブの要求形状6の全体の割り当てが可能でない場合、空きノード検索部141は、計算ノード群3におけるy方向のループを終了する(ステップS115)。具体的には、空きノード検索部141は、計算ノード群3におけるy方向についての前述のループ範囲の実行が終了しない場合にはステップS13を繰り返す。計算ノード群3におけるy方向についての前述のループ範囲の実行が終了した場合には、空きノード検索部141は、ステップS116を実行する。
次に、空きノード検索部141は、計算ノード群3におけるz方向のループを終了する(ステップS116)。具体的には、空きノード検索部141は、計算ノード群3におけるz方向についての前述のループ範囲の実行が終了しない場合にはステップS12を繰り返す。計算ノード群3におけるz方向の前述のループ範囲の実行が終了した場合には、空きノード検索部141は、ステップS117を実行する。
次に、空きノード検索部141は、ジョブ割り当て情報リストのループを終了する(ステップS117)。具体的には、空きノード検索部141は、現在のジョブ割り当て情報リストが最後か否かを調べ、最後でない場合にはステップS11を繰り返し、最後である場合には処理を終了する。この時、空きノード検索部141は、ジョブ割り当て情報132’のジョブ割り当て情報の形状(x)に検索情報133’のジョブの形状(x)を設定し、ジョブ割り当て情報132’のジョブ割り当て情報の形状(y)に検索情報133’のジョブの形状(y)を設定し、ジョブ割り当て情報132’のジョブ割り当て情報の形状(z)に検索情報133’のジョブの形状(z)を設定する。また、空きノード検索部141は、ジョブ割り当て情報132’の割り当て可能フラグに「可能(true)」を設定する。
図11は、ループ数の削減効果の一例を示す。
図11において、計算ノード群3におけるz方向のサイズが「systemZ」であり、y方向のサイズが「systemY」であり、x方向のサイズが「systemX」であるものとする。また、z方向のジョブサイズが「jobZ」であり、y方向のジョブサイズが「jobY」であり、x方向のジョブサイズが「jobX」であるものとする。
この場合、図16に示す処理によれば、計算ノード群3におけるz方向のループの回数は「systemZ−jobZ+1」となり、y方向のループの回数は「systemY−jobY+1」となり、x方向のループの回数は「systemX−jobX+1」となる。また、ジョブサイズのz方向のループの回数は「jobZ」となり、ジョブサイズのy方向のループの回数は「jobY」となり、ジョブサイズのx方向のループの回数は「jobX」となる。
これに対して、図10に示す処理によれば、計算ノード群3におけるz方向のループの回数は「systemZ−jobZ+1」となり、y方向のループの回数は「systemY−jobY+1」となるが、x方向のループの回数は「1」となる。また、ジョブサイズのz方向のループの回数は「jobZ」となり、ジョブサイズのy方向のループの回数は「jobY」となるが、ジョブサイズのx方向のループの回数は「1」となる。
ここで、図2(A)の3次元メッシュ結合が立方体であり、図6のジョブサイズも立方体であるとする。この場合、「systemZ=systemY=systemX」が成立するので、これらの値を「system」と表すこととする。また、「jobZ=jobY=jobX」が成立するので、これらの値を「job」と表すこととする。これにより、下記の式に示すように、ループ回数を削減することができる。
(第2の実施態様)
第1の実施態様においては、検索用マスクパターン134のシフト処理が1ビットずつ実行される。ここで、図8及び図9に着目すると、ジョブが要求している計算ノード31の数に足りない計算ノード31の数は、空きノード31を検出するまでのシフトのビット数に一致する。換言すれば、演算結果が「0」のビットの数は、空きノード31を検出するために必要な最小のシフト量に一致する。
第1の実施態様においては、検索用マスクパターン134のシフト処理が1ビットずつ実行される。ここで、図8及び図9に着目すると、ジョブが要求している計算ノード31の数に足りない計算ノード31の数は、空きノード31を検出するまでのシフトのビット数に一致する。換言すれば、演算結果が「0」のビットの数は、空きノード31を検出するために必要な最小のシフト量に一致する。
そこで、この例では、空きノード検索部141は、x軸について、x軸検索用情報131’と検索用マスクパターン134とを用いた論理和演算に基づいて、演算結果が「0」のビットの数を算出する。演算結果が「0」のビットの数は、ジョブの割り当てが不可能であることを示すビットの数である。更に、空きノード検索部141は、検索用マスクパターン134における値「0」に設定された連続ビットを、bit0の方向に、演算結果が「0」のビットの数の分だけシフトする。
この結果、シフトされた検索用マスクパターン134が得られる。この後、空きノード検索部141は、x軸検索用情報131’とシフトされた検索用マスクパターン134とを用いた論理和演算を実行することにより、再度、空きノード31を検索する。これにより、演算結果が「0」のビットについてのシフト処理を1回で実行する、換言すれば、スキップして、更に、演算処理の回数を削減することができる。
図12及び図13は、ジョブの割り当てについての判定の他の一例を示す。
例えば、x軸検索用情報131Dにおいて、図12(A)に示すように、bit7〜bit5が「0」であり、bit4〜bit2が「1」であり、bit1〜bit0が「0」であるとする。この状態は、bit7〜bit5に対応する計算ノード31が使用中であり、bit4〜bit2に対応する計算ノード31が空きであり、bit1〜bit0に対応する計算ノード31が使用中である状態である。
また、例えば、検索用マスクパターン134Fにおいて、図12(B)に示すように、bit7〜bit5が「0」であり、bit4〜bit0が「1」であるとする。この状態は、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31が割り当てに無関係であり無視して良い状態である。
空きノード検索部141は、図12(A)のx軸検索用情報131Dと、図12(B)の検索用マスクパターン134Fとの論理和を求める。この論理和の演算結果は、図12(C)に示すように、bit7〜bit5が「0」となり、bit4〜bit0が「1」となる。従って、bit7〜bit5が割り当て不可能であり、bit4〜bit0が割り当て可能であることが求められる。
ここで、前述したように、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31は割り当てに無関係である。従って、割り当て要求の対象であるbit7〜bit5に対応する計算ノード31について、ジョブを割り当てることができない。
そこで、空きノード検索部141は、図12(A)のx軸検索用情報131Dと、図12(B)の検索用マスクパターン134Fとの論理和の演算結果における「0」のビットの数を算出する。演算結果が「0」のビットの数は、図12(C)に示すように、「3」である。演算結果が「0」のビットの数は、「シフト総数」である。算出されたシフト総数は、図3(D)の検索情報133’におけるシフト総数に設定される。
シフト総数は、以下のようにして算出される。例えば、x軸検索用情報131Dと検索用マスクパターン134Fとの論理和の演算結果において、最左端のbit7の方向に向かって「0」が始めて出現する位置は、「bit5」である。換言すれば、「bit5」は「0」の出現位置の最右端である。この場合において、シフト総数は、「計算ノード群3のサイズ−「0」の出現位置の最右端」により求めることができる。従って、シフト総数は、8−5=3により、「3」となる。
この算出の結果に基づいて、空きノード検索部141は、図12(B)の検索用マスクパターン134Fにおける、ジョブが要求するサイズ「3」に対応する連続ビットbit7〜bit5を、bit0の方向に、1ビットではなく、3ビットだけシフトする。これにより、図12(D)の検索用マスクパターン134Gが得られる。
検索用マスクパターン134Fにおける3ビットのシフト処理の後、空きノード検索部141は、x軸検索用情報131’とシフトされた検索用マスクパターン134Gとを用いて論理和を求めることにより、再度、空きノード31を検索する。
図12(A)のx軸検索用情報131Dと、図12(D)の検索用マスクパターン134Gとの論理和の演算結果は、図12(E)に示すように、bit7〜bit0が「1」となる。従って、bit7〜bit0が割り当て可能であることが求められる。
ここで、前述したように、bit7〜bit5に対応する計算ノード31が割り当て要求の対象であり、bit4〜bit0に対応する計算ノード31は割り当てに無関係である。従って、割り当て要求の対象であるbit7〜bit5に対応する計算ノード31について、ジョブを割り当てることができる。
これにより、ジョブを連続した直方体形状に割り当てるための処理において、検索用マスクパターン134におけるシフト処理の回数及び論理和演算の回数をより少なくすることができる。従って、投入されたジョブの実行待ち時間を短縮することができ、また、計算ノード群3の稼動率を向上することができる。
なお、計算ノード群3が、図2(B)に示すトーラス結合されたコンピュータネットワークである場合がある。この場合において、図13(A)に示すように、検索用マスクパターン134Hにおいて、bit7〜bit3が「1」であり、bit2〜bit0が「0」であり、かつ、演算結果が「0」のビットの数が「3」である場合がある。換言すれば、シフト総数とジョブが要求するx軸方向のジョブサイズとの合計が、計算ノード3におけるx軸方向のサイズ以上になる場合がある。
この場合、ジョブが要求するサイズ「3」に対応する連続ビットbit2〜bit0を、bit0の方向に、3ビットだけシフトする。この時、空きノード検索部141は、図13(B)に示すように、bit0に隣接してbit7が存在するので、bit0の「0」をbit7に移動する。これにより、演算結果が「0」のビットをシフトさせることができる。
なお、他の実施態様においても、計算ノード群3が、図2(B)に示すトーラス結合されたコンピュータネットワークである場合には、図13に示すようにして、演算結果が「0」のビットがシフトされる。
図14は、他のジョブ管理処理フローである。
空きノード検索部141は、図14に示すように、基本的には、図10に示す処理と同様の処理を実行するが、図10に示す処理に加えてステップS28及びステップS219を実行する。
以下、図14に示す処理における、図10に示す処理との相違点について説明する。
空きノード検索部141は、図10のステップS10〜S17と同様に、ステップS20〜S27を実行する。
この後、空きノード検索部141は、ステップS27において、ジョブの割り当てが可能でない場合(ステップS27 No)、ジョブの割り当てが不可能な位置に基づいてシフト数を算出する(ステップS28)。具体的には、空きノード検索部141は、演算結果が「0」のビットの数を算出する。
この後、空きノード検索部141は、演算結果が「0」のビットの数と、x軸検索用情報131’又は検索用マスクパターン134のビットの数とに基づいて、演算結果が「0」のビットの数の分のシフトが、右シフトの上限か否かを判断する(ステップS29)。換言すれば、ジョブが要求するサイズ「3」に対応する連続ビットが、演算結果が「0」のビットの数だけシフトすることができるか否かが判断される。
演算結果が「0」のビットの数の分のシフトが右シフトの上限でない場合(ステップS29 No)、空きノード検索部141は、ステップS26を実行する。これにより、ジョブが要求するサイズ「3」に対応する連続ビットが、演算結果が「0」のビットの数だけシフトされる。
演算結果が「0」のビットの数の分のシフトが右シフトの上限である場合(ステップS29 Yes)、空きノード検索部141は、ステップS216を実行する。
一方、ステップS27において、ジョブの割り当てが可能である場合(ステップS27 Yes)、空きノード検索部141は、ステップS210〜S212を実行する。
この後、空きノード検索部141は、ステップS212において、ジョブの割り当てが可能でない場合(ステップS212 No)、ジョブの割り当てが不可能な位置に基づいてシフト数を算出する(ステップS219)。具体的には、空きノード検索部141は、演算結果が「0」のビットの数を算出する。
この後、空きノード検索部141は、演算結果が「0」のビットの数と、x軸検索用情報131’又は検索用マスクパターン134のビットの数とに基づいて、演算結果が「0」のビットの数の分のシフトが、右シフトの上限か否かを判断する(ステップS220)。換言すれば、ジョブが要求するサイズ「3」に対応する連続ビットが、演算結果が「0」のビットの数だけシフトすることができるか否かが判断される。
演算結果が「0」のビットの数の分のシフトが右シフトの上限でない場合(ステップS220 No)、空きノード検索部141は、ステップS26を実行する。これにより、ジョブが要求するサイズ「3」に対応する連続ビットが、演算結果が「0」のビットの数だけシフトされる。
演算結果が「0」のビットの数の分のシフトが右シフトの上限である場合(ステップS220 Yes)、空きノード検索部141は、ステップS216を実行する。
(第3の実施態様)
第1〜第2の実施態様においては、x軸検索用情報131’が生成され、x軸に関する2重のループが削減される。これに対して、例えば、計算ノード群3のサイズが小さい場合には、検索用マスクパターン134のシフト処理回数が少なくなる。この場合には、x軸検索用情報131’の生成処理、x軸検索用情報131’と検索用マスクパターン134との論理和演算処理、検索用マスクパターン134のシフト処理のオーバーヘッドが大きくなる可能性がある。
第1〜第2の実施態様においては、x軸検索用情報131’が生成され、x軸に関する2重のループが削減される。これに対して、例えば、計算ノード群3のサイズが小さい場合には、検索用マスクパターン134のシフト処理回数が少なくなる。この場合には、x軸検索用情報131’の生成処理、x軸検索用情報131’と検索用マスクパターン134との論理和演算処理、検索用マスクパターン134のシフト処理のオーバーヘッドが大きくなる可能性がある。
そこで、この例では、空きノード検索部141は、計算ノード群3のx軸のサイズ、換言すれば、[systemX]の最大値が予め定められた第1の値以上である場合には、前述したように、論理演算の結果に基づいて検索用マスクパターン134における連続ビットのシフト処理を行う。計算ノード群3のx軸のサイズは、[systemX]の最大値である。第1の値は経験的に予め定められる。y軸検索用情報又はz軸検索用情報が生成される場合には、y軸のサイズ又はz軸のサイズが予め定められた値以上である場合には、論理演算の結果に基づいて検索用マスクパターン134における連続ビットのシフト処理を行う。
一方、空きノード検索部141は、計算ノード群3のx軸のサイズが予め定められた第1の値より小さい場合には、x軸についても、空きノード31か否かの判定処理を開始点から予め定められた順に繰り返すことにより、空きノード31を検索する。換言すれば、空きノード検索部141は、計算ノード群3のx軸のサイズが予め定められた第1の値より小さい場合には、計算ノード群3におけるx方向のループを実行する。これにより、検索用マスクパターン134のシフト処理のオーバーヘッドが大きくなることを回避することができる。
なお、空きノード検索部141が、ジョブが要求するx軸方向のサイズが予め定められた第2の値以上である場合に、論理演算の結果に基づいて検索用マスクパターン134における連続ビットのシフトを行うようにしても良い。ジョブが要求するx軸方向のサイズは、[jobX]の最大値である。第2の値は経験的に予め定められる。また、y軸検索用情報又はz軸検索用情報が生成される場合には、ジョブが要求するy軸のサイズ又はジョブが要求するz軸のサイズが予め定められた値以上である場合には、論理演算の結果に基づいて検索用マスクパターン134における連続ビットのシフト処理を行うようにしても良い。
また、空きノード検索部141が、計算ノード群3のx軸のサイズとジョブが要求するサイズとの差分が予め定められた第3の値以上である場合に、論理演算の結果に基づいて検索用マスクパターン134における連続ビットのシフトを行うようにしても良い。第3の値は経験的に予め定められる。また、y軸検索用情報又はz軸検索用情報が生成される場合には、y軸方向における前記差分又はz軸方向における前記差分が予め定められた値以上である場合には、論理演算の結果に基づいて検索用マスクパターン134における連続ビットのシフト処理を行うようにしても良い。
(第4の実施態様)
第1〜第3の実施態様においては、3次元の中の1つの次元としてx軸が選択され、x軸検索用情報131’が生成され、x軸に関する2重のループが削減される。これに対して、計算ノード群3の形状が直方体である場合には、削減されるループをできるだけサイズの大きな軸方向に適用すると、ループの削減による処理時間の短縮の効果が大きい。また、ジョブの要求形状が直方体である場合にも、削減されるループをできるだけサイズの大きな軸方向に適用すると、ループの削減による処理時間の短縮の効果が大きい。
第1〜第3の実施態様においては、3次元の中の1つの次元としてx軸が選択され、x軸検索用情報131’が生成され、x軸に関する2重のループが削減される。これに対して、計算ノード群3の形状が直方体である場合には、削減されるループをできるだけサイズの大きな軸方向に適用すると、ループの削減による処理時間の短縮の効果が大きい。また、ジョブの要求形状が直方体である場合にも、削減されるループをできるだけサイズの大きな軸方向に適用すると、ループの削減による処理時間の短縮の効果が大きい。
そこで、この例では、計算ノード管理部142が、図2(A)の計算ノード群3における最も長辺である次元を、n次元の中の1つの次元として選択し、当該選択された軸の検索用情報を生成する。ここで、最も長辺とは、[systemX]の最大値、[systemY]の最大値、及び、[systemZ]の最大値の中で、最も大きい値を持つ座標軸である。換言すれば、計算ノード管理部142は、図2(A)において、座標軸はそのままにして、計算ノード群3における最も長辺である次元がx軸となるように、計算ノード群3を回転する。
この状態で、空きノード検索部142は、計算ノード群3にジョブを割り当てる。この後、計算ノード管理部142が、図2(A)において、座標軸はそのままにして、計算ノード群3における最も長辺である次元がx軸から元の座標軸となるように、計算ノード群3を逆方向に回転する。この後、ジョブ実行制御部12が、本来の座標軸に戻された計算ノード群3にジョブを割り当てて実行させる。これにより、ジョブの割り当て処理の時間を一層短縮することができる。
また、計算ノード管理部142が、図6のジョブの要求形状6における最も長辺である次元を、n次元の中の1つの次元として選択し、当該選択された軸の検索用情報を生成するようにしても良い。ここで、最も長辺とは、[jobX]の最大値、[jobY]の最大値、及び、[jobZ]の最大値の中で、最も大きい値を持つ座標軸である。換言すれば、計算ノード管理部142は、図2(A)において、座標軸はそのままにして、図6のジョブの要求形状6における最も長辺である次元がx軸となるように、計算ノード群3を回転する。
この状態で、空きノード検索部142は、計算ノード群3にジョブを割り当てる。この後、計算ノード管理部142が、図2(A)において、座標軸はそのままにして、図6のジョブの要求形状6における最も長辺である次元がx軸からもとの座標軸となるように、計算ノード群3を逆方向に回転する。この後、ジョブ実行制御部12が、本来の座標軸に戻された計算ノード群3にジョブを割り当てて実行させる。これにより、ジョブの割り当て処理の時間を一層短縮することができる。
1 ジョブ管理装置
2 利用者端末
3 計算ノード群
31 計算ノード
11 ジョブ受付処理部
12 ジョブ実行制御部
13 記憶部
14 ジョブ割り当て処理部
15 計算ノード情報記憶部
111 割り当て情報生成部
131 X軸検索用情報記憶部
132 ジョブ割り当て情報記憶部
133 検索情報記憶部
141 空きノード検索部
142 計算ノード管理部
151 3次元システム情報記憶部
2 利用者端末
3 計算ノード群
31 計算ノード
11 ジョブ受付処理部
12 ジョブ実行制御部
13 記憶部
14 ジョブ割り当て処理部
15 計算ノード情報記憶部
111 割り当て情報生成部
131 X軸検索用情報記憶部
132 ジョブ割り当て情報記憶部
133 検索情報記憶部
141 空きノード検索部
142 計算ノード管理部
151 3次元システム情報記憶部
Claims (8)
- n(nは2以上の整数)次元メッシュ結合又はn次元トーラス結合されたコンピュータネットワークにおける計算ノードであって、ジョブの割り当てが可能な空きノードを検索するジョブ管理装置であって、
前記n次元の中の1つの次元についての検索用情報であって、複数のビットを含み、前記n次元の中の1つの次元に属する複数の計算ノードの各々について、前記ジョブの割り当てが可能か否かを1ビットの情報で示す1次元検索用情報を生成する1次元検索用情報生成部と、
前記複数のビットに対応するビット数の検索用マスクパターンであって、前記n次元の中の1つの次元について前記ジョブが要求するサイズに対応する連続ビットを予め定められた値に設定された検索用マスクパターンを生成する検索情報生成部と、
前記n次元の中の1つの次元について、前記1次元検索用情報と前記検索用マスクパターンとを用いて予め定められた論理演算を実行することにより、前記空きノードを検索する空きノード検索部とを含む
ことを特徴とするジョブ管理装置。 - 前記空きノード検索部が、前記n次元の中の前記1つの次元以外の残りの(n−1)次元について、前記空きノードか否かの判定処理を開始点から予め定められた順に繰り返すことにより、前記空きノードを検索する
ことを特徴とする請求項1に記載のジョブ管理装置。 - 前記空きノード検索部が、前記n次元の中の1つの次元についての前記論理演算の結果が前記n次元の中の1つの次元について前記ジョブの割り当てが不可能であることを示す場合、前記検索用マスクパターンにおける前記予め定められた値に設定された前記連続ビットを、予め定められた方向に1ビットだけシフトし、前記1次元検索用情報とシフトされた前記検索用マスクパターンとを用いて前記予め定められた論理演算を実行することにより、前記空きノードを検索する
ことを特徴とする請求項1に記載のジョブ管理装置。 - 前記空きノード検索部が、前記n次元の中の1つの次元についての前記論理演算に基づいて、前記ジョブの割り当てが不可能であることを示すビットの数を算出し、前記検索用マスクパターンにおける前記予め定められた値に設定された前記連続ビットを、前記予め定められた方向に前記ジョブの割り当てが不可能であることを示すビットの数の分だけシフトし、前記1次元検索用情報とシフトされた前記検索用マスクパターンとを用いて前記予め定められた論理演算を実行することにより、前記空きノードを検索する
ことを特徴とする請求項3に記載のジョブ管理装置。 - 前記空きノード検索部が、前記n次元メッシュ結合又はn次元トーラス結合されたコンピュータネットワークのサイズが予め定められた第1の値以上である場合、前記ジョブが要求するサイズが予め定められた第2の値以上である場合、又は、前記コンピュータネットワークのサイズと前記ジョブが要求するサイズとの差分が予め定められた第3の値以上である場合に、前記論理演算の結果に基づいて、前記検索用マスクパターンにおける前記連続ビットのシフトを行う
ことを特徴とする請求項3に記載のジョブ管理装置。 - 前記ジョブ管理装置が、更に、
前記n次元メッシュ結合又はn次元トーラス結合されたコンピュータネットワークにおける計算ノードの各々について、前記空きノードか否かを示すn次元システム情報を生成する計算ノード管理部を含み、
前記空きノード検索部が、前記n次元システム情報に基づいて、前記1次元検索用情報を生成する
ことを特徴とする請求項1に記載のジョブ管理装置。 - 前記ジョブ管理装置が、更に、
前記n次元メッシュ結合又はn次元トーラス結合されたコンピュータネットワークにおける最も長辺である次元を、前記n次元の中の1つの次元として選択する計算ノード管理部を含む
ことを特徴とする請求項1に記載のジョブ管理装置。 - n(nは2以上の整数)次元メッシュ結合又はn次元トーラス結合されたコンピュータネットワークにおける計算ノードであって、ジョブの割り当てが可能な空きノードを検索するジョブ管理方法であって、
1次元検索用情報生成部が、前記n次元の中の1つの次元についての検索用情報であって、複数のビットを含み、前記1つの次元に属する複数の計算ノードの各々について、前記ジョブの割り当てが可能か否かを1ビットの情報で示す1次元検索用情報を生成するステップと、
検索情報生成部が、前記複数のビットに対応するビット数の検索用マスクパターンであって、前記n次元の中の1つの次元について前記ジョブが要求するサイズに対応する連続ビットを予め定められた値に設定された検索用マスクパターンを生成するステップと、
空きノード検索部が、前記n次元の中の1つの次元について、前記1次元検索用情報と前記検索用マスクパターンとを用いて予め定められた論理演算を実行することにより、前記空きノードを検索するステップとを含む
ことを特徴とするジョブ管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/063534 WO2012020474A1 (ja) | 2010-08-10 | 2010-08-10 | ジョブ管理装置及びジョブ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012020474A1 JPWO2012020474A1 (ja) | 2013-10-28 |
JP5429382B2 true JP5429382B2 (ja) | 2014-02-26 |
Family
ID=45567454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012528532A Expired - Fee Related JP5429382B2 (ja) | 2010-08-10 | 2010-08-10 | ジョブ管理装置及びジョブ管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9201694B2 (ja) |
JP (1) | JP5429382B2 (ja) |
WO (1) | WO2012020474A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156267B (zh) | 2013-05-14 | 2017-10-10 | 华为技术有限公司 | 任务分配方法、任务分配装置及片上网络 |
JP6499388B2 (ja) * | 2013-08-14 | 2019-04-10 | 富士通株式会社 | 並列計算機システム、管理装置の制御プログラムおよび並列計算機システムの制御方法 |
JP6191332B2 (ja) * | 2013-08-22 | 2017-09-06 | 富士通株式会社 | 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム |
JP6191361B2 (ja) | 2013-09-25 | 2017-09-06 | 富士通株式会社 | 情報処理システム、情報処理システムの制御方法及び制御プログラム |
JP6221588B2 (ja) * | 2013-09-30 | 2017-11-01 | 富士通株式会社 | 情報処理システム、管理装置制御プログラム及び情報処理システムの制御方法 |
JP6191401B2 (ja) * | 2013-11-01 | 2017-09-06 | 富士通株式会社 | 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム |
JP6446989B2 (ja) * | 2014-10-16 | 2019-01-09 | 富士通株式会社 | 計算機システム,処理方法及びジョブ処理プログラム |
JP6413634B2 (ja) | 2014-10-30 | 2018-10-31 | 富士通株式会社 | ジョブ管理プログラム、ジョブ管理方法、およびジョブ管理装置 |
JP6413789B2 (ja) * | 2015-01-22 | 2018-10-31 | 富士通株式会社 | ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 |
JP6515708B2 (ja) | 2015-07-06 | 2019-05-22 | 富士通株式会社 | 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法 |
JP2018092328A (ja) * | 2016-12-01 | 2018-06-14 | 富士通株式会社 | ジョブ割り当てプログラム、並列処理装置およびジョブ割り当て方法 |
KR102610984B1 (ko) * | 2017-01-26 | 2023-12-08 | 한국전자통신연구원 | 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 운영 방법 |
US11263052B2 (en) * | 2019-07-29 | 2022-03-01 | International Business Machines Corporation | Determining optimal compute resources for distributed batch based optimization applications |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09198358A (ja) * | 1996-01-23 | 1997-07-31 | Hitachi Ltd | 問題領域分割・割り当て方式およびそれを用いた計算機ライブラリ |
JP2005310139A (ja) * | 2004-04-15 | 2005-11-04 | Raytheon Co | トポロジを意識したジョブ・スケジューリングとバックフィルとをhpc環境において行うシステム及び方法 |
JP2007206987A (ja) * | 2006-02-01 | 2007-08-16 | Nomura Research Institute Ltd | 格子型コンピュータシステム、タスク割り当てプログラム |
JP2008516346A (ja) * | 2004-10-12 | 2008-05-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 超並列型スーパーコンピュータでのアプリケーション・レイアウトの最適化 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5264840A (en) * | 1989-09-28 | 1993-11-23 | Sun Microsystems, Inc. | Method and apparatus for vector aligned dithering |
JPH0689262A (ja) | 1992-09-09 | 1994-03-29 | Nec Corp | 会話型処理における動的レコード制御方式 |
US5903888A (en) * | 1997-02-28 | 1999-05-11 | Oracle Corporation | Method and apparatus for using incompatible types of indexes to process a single query |
JP2007206986A (ja) | 2006-02-01 | 2007-08-16 | Nomura Research Institute Ltd | スケジューラプログラム、格子型コンピュータシステム、タスク割り当て装置 |
JP5402226B2 (ja) * | 2009-05-13 | 2014-01-29 | 富士通株式会社 | 管理装置、情報処理システム、情報処理システムの制御プログラムおよび情報処理システムの制御方法 |
-
2010
- 2010-08-10 WO PCT/JP2010/063534 patent/WO2012020474A1/ja active Application Filing
- 2010-08-10 JP JP2012528532A patent/JP5429382B2/ja not_active Expired - Fee Related
-
2013
- 2013-02-06 US US13/760,119 patent/US9201694B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09198358A (ja) * | 1996-01-23 | 1997-07-31 | Hitachi Ltd | 問題領域分割・割り当て方式およびそれを用いた計算機ライブラリ |
JP2005310139A (ja) * | 2004-04-15 | 2005-11-04 | Raytheon Co | トポロジを意識したジョブ・スケジューリングとバックフィルとをhpc環境において行うシステム及び方法 |
JP2008516346A (ja) * | 2004-10-12 | 2008-05-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 超並列型スーパーコンピュータでのアプリケーション・レイアウトの最適化 |
JP2007206987A (ja) * | 2006-02-01 | 2007-08-16 | Nomura Research Institute Ltd | 格子型コンピュータシステム、タスク割り当てプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2012020474A1 (ja) | 2012-02-16 |
JPWO2012020474A1 (ja) | 2013-10-28 |
US20130152089A1 (en) | 2013-06-13 |
US9201694B2 (en) | 2015-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5429382B2 (ja) | ジョブ管理装置及びジョブ管理方法 | |
JP6364880B2 (ja) | 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法 | |
JP6241300B2 (ja) | ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム | |
JP5245722B2 (ja) | スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム | |
JP5756271B2 (ja) | 並列計算の親和性駆動分散スケジューリングのための装置、方法、およびコンピュータ・プログラム(並列計算の親和性駆動分散スケジューリングのためのシステムおよび方法) | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
WO2011009652A2 (en) | A method and system for job scheduling in distributed data processing system with identification of optimal network topology | |
KR101332840B1 (ko) | 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법 | |
CN107851043B (zh) | 快捷外围部件互连网络中资源组的动态分配 | |
WO2015001850A1 (ja) | タスク割り当て判定装置、制御方法、及びプログラム | |
JP2007140710A (ja) | タスク割り当て方法およびタスク割り当て装置 | |
CN106529682A (zh) | 一种在大数据集群中处理深度学习任务的方法和装置 | |
Haghbayan et al. | MapPro: Proactive runtime mapping for dynamic workloads by quantifying ripple effect of applications on networks-on-chip | |
CN114500355B (zh) | 路由方法、片上网络、路由节点和路由装置 | |
JP2010267025A (ja) | ジョブスケジューリングプログラム、ジョブスケジューリング装置及びジョブスケジューリング方法 | |
TW202246977A (zh) | 一種任務調度方法、任務調度裝置、電腦設備、電腦可讀儲存媒介和電腦程式產品 | |
US9298500B2 (en) | Information processing system and control method of information processing system for managing jobs in a distributed multi-node environment | |
KR20160141675A (ko) | 고효율 부정확 컴퓨팅 스토리지 장치 | |
JP5577745B2 (ja) | クラスタシステム、プロセス配置方法、及びプログラム | |
EP3495960A1 (en) | Program, apparatus, and method for communicating data between parallel processor cores | |
CN114035930A (zh) | 用于任务调度的方法及装置、电子设备、可读存储介质 | |
Moreira et al. | Evolutionary acyclic graph partitioning | |
Yan et al. | QTMS: A quadratic time complexity topology-aware process mapping method for large-scale parallel applications on shared HPC system | |
KR101470695B1 (ko) | 그리드 컴퓨팅 스케쥴링을 위한 생물지리학적 최적화 방법 및 시스템 | |
JP6322968B2 (ja) | 情報処理装置、情報処理方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20131105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5429382 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |