JP6191401B2 - 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム - Google Patents

並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム Download PDF

Info

Publication number
JP6191401B2
JP6191401B2 JP2013228772A JP2013228772A JP6191401B2 JP 6191401 B2 JP6191401 B2 JP 6191401B2 JP 2013228772 A JP2013228772 A JP 2013228772A JP 2013228772 A JP2013228772 A JP 2013228772A JP 6191401 B2 JP6191401 B2 JP 6191401B2
Authority
JP
Japan
Prior art keywords
job
calculation
unit
node
parallel computer
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
JP2013228772A
Other languages
English (en)
Other versions
JP2015088134A (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 JP2013228772A priority Critical patent/JP6191401B2/ja
Priority to EP14183345.9A priority patent/EP2869198A3/en
Priority to US14/477,135 priority patent/US20150127700A1/en
Publication of JP2015088134A publication Critical patent/JP2015088134A/ja
Application granted granted Critical
Publication of JP6191401B2 publication Critical patent/JP6191401B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラムに関する。
複数の計算ノードを有する並列計算機において、計算ノード間を接続するインタコネクトのトポロジの1つとして、格子状のメッシュネットワークがある。ここで、計算ノードは、CPU(Central Processing Unit)、メインメモリ、他の計算ノードとの通信部などを有する情報処理装置である。
メッシュネットワークでは、通信する計算ノードの組み合わせによってホップ数すなわち途中で経由する計算ノード間経路の数が異なる。以下では、1ホップで到達できる関係にある計算ノード対を「隣接」であると表現し、その間の経路を「隣接経路」と呼ぶこととする。
メッシュネットワークでは、ホップ数が大きいほど計算ノード間の通信時間が長くなる傾向がある。また、2つの異なる計算ノード対で同時に通信を行った場合、同じ隣接経路が使用されたために性能が低下するケースがある。
そのため、複数のユーザーが同時に並列計算機の一部を使用する場合は、ユーザー自身のジョブの通信だけでなく、他ユーザーのジョブの通信の影響を受ける場合がある。その影響を緩和するために、ジョブを極力隣接関係にあるノードに配置していくことが行われている(例えば、特許文献1及び特許文献2参照)。
計算機でシミュレーションを行うユーザーは、計算ジョブの形状として、現実世界の次元に対応した3次元以下の形状を想定することが多い。一方で、並列計算機システムは、ネットワークの直径(最遠計算ノード対間の距離)の短縮、バイセクションバンド幅の向上、耐故障性の向上を目的として、3次元を超えたより高次元のシステムが構築されている。
このため、高次元の格子型のネットワーク上で切り出した領域に対して、複数軸を組み合わせてユーザージョブ要求の低次元の格子型の論理軸を構成する従来技術がある(例えば、特許文献3参照)。この従来技術では、高次元格子状ネットワークが、「計算ユニット」と称される小直方体状の計算ノード群で構成されるユニットが大きな直方体状に接続されたネットワークとみなされ、小直方体の軸と大直方体の軸とを組み合わせて論理軸が構成される。
図10は、従来のジョブ割り当て方法を説明するための図である。図10において、大物理軸は3次元大直方体における物理軸x、y及びzを示し、小物理軸は3次元小直方体における物理軸u、v及びwを示す。また、小直方体90には、3(u=0〜2)×2(v=0〜1)×2(w=0〜1)=12個の計算ノード91が含まれ、小直方体90において、各小物理軸の方向に計算ノード91は、トーラスネットワークを介して円環状に接続されているものとする。また、大直方体には、4(x=0〜3)×3(y=0〜2)×3(z=0〜2)=36個の小直方体90が含まれる。
なお、図10では、3次元の大直方体及び小直方体を示すが、Nを正の整数として、大直方体及び小直方体はN次元の直方体であってよい。また、図10では、小直方体90に12個の計算ノード91が含まれ、大直方体に36個の小直方体90が含まれるが、小直方体91に任意の個数の計算ノード91を含ませ、大直方体に任意の個数の小直方体90を含ませることができる。
図10(a)は、小直方体単位でのジョブ割り当てを示す。図10(a)では、網掛けされた小直方体90にジョブが割り当てられる。図10(a)に示すように、この従来技術では、大直方体から小直方体単位で計算ノード91が切り出されてジョブが割り当てられる。
図10(b)は、論理軸の構成例を示す。図10(b)では、大物理軸xと小物理軸uとが組み合わされて1つの論理軸l0を構成しており、この論理軸l0の軸長は12である。ここで、軸長が12であるとは、この軸の方向の計算ノード数が12であることを示す。図10(b)に示すように、論理軸l0については、x方向の4つの計算ノード91及びu方向の3つの計算ノード91を合わせて4×3=12個の計算ノード91にジョブが割り当てられる。
同様に、大物理軸yと小物理軸vとが組み合わされて構成される論理軸l1、大物理軸zと小物理軸wとが組み合わされて構成される論理軸l2のそれぞれの方向にジョブで要求される数の計算ノード91が割り当てられる。これにより、3次元直方体形状のジョブに計算ノード91が割り当てられる。
この割当方法には、以下の性能面のメリットがある。
・他ジョブの通信影響を受けにくい
・論理空間での隣接ノードが物理空間でも隣接している
・ユーザーに見せる論理軸を円環状のトーラス構造にすることができる
(周期境界条件などで有利)
・故障した計算ノードを含んでいてもトーラス構造の論理軸を組むことができる
特開2007−206987号公報 特開2012−252591号公報 特開2012−198820号公報
並列計算機の評価指標として、実行時のアプリケーション性能のほかに、計算機全体の稼働率がある。稼働率が低い並列計算機では、ユーザーが投入したジョブが実行されるまでの時間が長くなる場合があり、計算結果が出る時刻が遅くなることがある。
例えば、図10に示した従来技術には、小直方体単位で割り当て対象領域が占有されるため、割り当て時に計算ノード数に端数が出る場合があり、計算機の稼働率が低下しやすいという問題がある。図11は、計算ノードに端数が出る場合を示す図である。図11に示すように、論理軸の軸長が10である場合には、小直方体単位でジョブが割り当てられると、×で示される2つの計算ノード91は未使用となり、稼働率が低下する。
一方、計算ノード間の接続関係を無視してジョブを割り当てれば、稼働率は向上するが、計算ノード間の通信時間が長くなり、アプリケーション性能が低下することが多くなる。アプリケーション性能を極力低下させずに、なおかつ稼働率を優先させる割り当て方法が必要となる。
本発明は、1つの側面では、小直方体単位でジョブ割り当てを行った場合に計算ノードに端数が出るときの稼働率の低下を抑えることを目的とする。
本願の開示する並列計算機システムは、1つの態様において、ユーザーのジョブを実行する複数の計算ノードと前記複数の計算ノードを制御する制御装置とを有する。前記複数の計算ノードは、複数の物理軸を含む物理空間における格子状又は円環状のネットワークを介して互いに接続されるとともにそれぞれジョブを実行する。前記制御装置は、ジョブを受け付ける受付部と、前記複数の計算ノードのうち、前記物理軸を組み合わせた仮想軸を、前記受付部が受け付けたジョブが要求する次元数分有する仮想空間で、受け付けた前記ジョブを割り当てる計算ノードを選択する選択部を備える。また、前記制御装置は、前記選択部が選択した計算ノードを用いて前記ジョブを実行するように、複数の前記計算ノードからなる前記並列計算機システムに指示する指示部を備える。
1実施態様によれば、稼働率の低下を抑えることができる。
図1は、実施例に係る並列計算機システムによるジョブの割り当て方法を説明するための図である。 図2は、実施例に係る並列計算機システムの構成を示す図である。 図3は、記憶部が計算ノードについて記憶する情報の一例を示す図である。 図4は、計算ユニットの構成の一例を示す図である。 図5は、並列計算機の構成の一例を示す図である。 図6は、実行ノード選択部の構成を示す図である。 図7は、仮想軸Zの分離を説明するための図である。 図8は、実施例に係る制御装置によるジョブ割り当てのフローを示すフローチャートである。 図9は、実施例に係る制御プログラムを実行するコンピュータのハードウェア構成を示す図である。 図10は、従来のジョブ割り当て方法を説明するための図である。 図11は、計算ノードに端数が出る場合を示す図である。
以下に、本願の開示する並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る並列計算機システムによるジョブ割り当て方法について説明する。図1は、実施例に係る並列計算機システムによるジョブの割り当て方法を説明するための図である。図1(a)は、仮想軸を説明するための図であり、図1(b)は、仮想空間内でのジョブ割り当てを示す図である。図1において、○は計算ノード51を示す。
実施例に係る並列計算機システムは、予めユーザーのジョブが要求するうちの最大の次元の仮想的な格子状ネットワークを構成し、その仮想的な格子状ネットワークからメッシュ構造の直方体領域を切り出してユーザージョブを割り当てる。仮想的な格子状ネットワークは、そのネットワーク上で隣接するノードは元の物理的なネットワークでも隣接しているように構成される。以下、ここでは、ユーザーのジョブが要求する最大の次元を3とし、並列計算機の次元は6とする。
図1(a)は、図10に示した大物理軸xと小物理軸uとを組み合わせて仮想軸Xを構成する場合を示す。図1(a)に示すように、仮想軸X上には、大物理軸x=0で小物理軸u=0、u=1及びu=2の3個の計算ノード「0」〜「2」が並べられ、次に、大物理軸x=1で小物理軸u=2、u=1及びu=0の3個の計算ノード「3」〜「5」が並べられる。そして、仮想軸X上には、次に、大物理軸x=2で小物理軸u=0、u=1及びu=2の3個の計算ノード「6」〜「8」が並べられ、次に、大物理軸x=3で小物理軸u=2、u=1及びu=0の3個の計算ノード「9」〜「11」が並べられる。
ここで、計算ノード「0」〜「2」、計算ノード「3」〜「5」、計算ノード「6」〜「8」、及び計算ノード「9」〜「11」は、小物理軸上で隣接している。また、計算ノード「2」と計算ノード「3」、計算ノード「5」と計算ノード「6」、及び計算ノード「8」と計算ノード「9」は、大物理軸上で隣接している。したがって、仮想軸Xで隣接する計算ノード「0」〜「11」は、物理軸上でも隣接する。
同様に、図10に示した大物理軸yと小物理軸vとを組み合わせて仮想軸Yが構成され、図10に示した大物理軸zと小物理軸wとを組み合わせて仮想軸Zが構成される。そして、実施例に係る並列計算機システムは、仮想軸X、Y及びZで構成される仮想空間内で、計算ノード単位でジョブが要求する1〜3次元の直方体を切り出してジョブを割り当てる。
図1(b)は、6×3×3の直方体52と3×3×4の直方体53が仮想空間から切り出された場合を示す。仮想空間内の直方体52で隣接する計算ノード「1」〜「6」は、物理空間内でも隣接し、仮想空間内の直方体53で隣接する計算ノード「7」〜「9」は、物理空間内でも隣接する。
このように、実施例に係る並列計算機システムは、物理軸を組み合わせて仮想軸を構成し、仮想軸で構成される仮想空間で計算ノード単位でジョブが要求する直方体形状を切り出してジョブを割り当てる。したがって、実施例に係る並列計算機システムは、小直方体単位でジョブ割り当てを行ったときのように計算ノード数に端数が出ることがなく、稼働率の低下を抑えることができる。
次に、実施例に係る並列計算機システムの構成について説明する。図2は、実施例に係る並列計算機システムの構成を示す図である。図2に示すように、並列計算機システム1は、入力装置2と、出力装置3と、制御装置4と、並列計算機5とを有する。
入力装置2は、ユーザーが並列計算機システム1にジョブを入力する場合などに用いる装置であり、キーボード及びマウスを有する。出力装置3は、並列計算機システム1の処理結果を表示する装置であり、液晶表示装置やプリンタである。
制御装置4は、並列計算機5を制御する装置である。制御装置4は、ユーザーからジョブの指定及びジョブを実行する計算ノード51の数の指定を受け付け、ジョブを割り当てる計算ノード51を選択する。そして、制御装置4は、選択した計算ノード51がジョブを実行するように並列計算機5に指示し、並列計算機5から計算結果を受け取って出力装置3に出力する。また、制御装置4は、計算ノード51の選択結果など制御装置4の処理結果を出力装置3に出力する。
制御装置4は、受付部41と、ノード情報管理部42と、記憶部43と、実行ノード選択部44と、出力部45と、実行指示部46とを有する。
受付部41は、入力装置2を用いてユーザーから入力されたジョブ実行要求を受け付ける。ジョブ実行要求には、ジョブを実行する計算ノード51の形状指定が含まれる。例えば、図1(b)に示した直方体52では、6×3×3、3×6×3などが指定される。
ノード情報管理部42は、記憶部43を用いて計算ノード51の情報を管理する。記憶部43は、計算ノード51の情報を記憶する。また、記憶部43は、実行ノード選択部44による選択結果を記憶する。
図3は、記憶部43が計算ノード51について記憶する情報の一例を示す図である。図3に示すように、記憶部43は、計算ノード毎に、番号と、x、y、z、u、v及びwと、使用状態と、稼動状態とを含む情報を記憶する。
番号は、計算ノード51を一意に識別する識別子である。x、y及びzは、計算ノード51が属する小直方体の座標を示す。すなわち、x、y及びzは、大物理軸で構成される3次元物理空間内の計算ノード51の座標を示す。u、v及びwは、計算ノード51が属する小直方体内での計算ノード51の座標を示す。すなわち、u、v及びwは、小物理軸で構成される3次元物理空間内の計算ノード51の座標を示す。
使用状態は、計算ノード51が「使用中」であるか「空き」であるかを示す。稼動状態は、計算ノード51が「異常」であるか「正常」であるかを示す。
実行ノード選択部44は、受付部41が受け付けたジョブ実行要求に基づいて、ジョブを実行する複数の計算ノード51を選択する。すなわち、実行ノード選択部44は、仮想空間からジョブが要求する1〜3次元直方体を切り出す。
そして、実行ノード選択部44は、選択した複数の計算ノード51の仮想空間座標を物理空間座標に変換し、選択した複数の計算ノード51の物理空間座標をジョブの識別子と対応付けて選択結果として記憶部43に格納する。なお、実行ノード選択部44の詳細については後述する。
出力部45は、ジョブの実行結果を実行指示部46から受け取って出力装置3に出力する。また、出力部45は、実行ノード選択部44が選択した複数の計算ノード51の物理空間座標をジョブと対応付けて出力装置3に出力する。
実行指示部46は、並列計算機5に対してジョブの実行を指示し、実行結果を出力部45を介して出力装置3に出力する。実行指示部46は、実行ノード選択部44が記憶部43に格納した選択結果の情報に基づいて並列計算機5にジョブの実行を指示する。
並列計算機5は、複数の計算ノード51がジョブを並列に実行する計算機である。並列計算機5では、複数の計算ユニット50が3次元格子状に接続される。複数の計算ユニット50が構成する物理空間は、図10に示した大物理軸が構成する3次元物理空間に対応する。なお、図2では、図面を簡略化するために計算ユニット50が2次元格子状に接続されている場合を示すが、実際には計算ユニット50は3次元格子状に接続される。
計算ユニット50は、複数の計算ノード51を、トーラスネットワークを介して3次元の円環状に接続した計算機である。複数の計算ノード51が構成する物理空間は、図10に示した小物理軸が構成する3次元物理空間に対応し、計算ユニット50は、図10に示した小直方体90に対応する。
図4は、計算ユニット50の構成の一例を示す図である。図4に示すように、計算ユニット50は、3×3×3=27個の計算ノード51が配置されて構成される。各小物理軸の方向に配置された3個の計算ノード51は相互に接続される。なお、ここでは、計算ユニット50は27個の計算ノード51を有するが、3つの任意の整数i、j及びkについて計算ユニット50はi×j×k個の計算ノード51を有することができる。
図5は、並列計算機5の構成の一例を示す図である。図5では、5×3×3=45個の計算ユニット50が3次元格子ネットワークで接続される。図5に示すように、各計算ユニット50においてu、v及びwの値が同じ計算ノード51が3次元格子状に接続される。
したがって、計算ユニット50内の計算ノード51の個数27の3次元格子状ネットワークで各計算ユニット50が接続される。なお、ここでは、並列計算機5は45個の計算ユニット50を有するが、3つの任意の整数i、j及びkについて並列計算機5はi×j×k個の計算ユニット51を有することができる。
次に、実行ノード選択部44の詳細について説明する。図6は、実行ノード選択部44の構成を示す図である。図6に示すように、実行ノード選択部44は、候補形状算出部441と、位置取得部442と、変換部443と、ノード特定部444と、逆変換部445とを有する。
候補形状算出部441は、ユーザーの指定したジョブ形状からジョブを割り当てる複数の計算ノード51が形成する3次元形状の候補を算出する。ユーザージョブの指定が3次元形状(X,Y,Z)でX、Y、Zが全て異なる場合には、(X,Y,Z)、及び(X,Y,Z)を回転した(X,Z,Y)、(Y,Z,X)、(Y,X,Z)、(Z,X,Y)及び(Z,Y,X)が候補形状である。ここで、(X,Y,Z)は、X×Y×Zの直方体を示す。
なお、X、Y、Zのうちいずれか2つの値が等しい場合には、値が等しい2つを入れ換えた形状は同一の形状となる。例えば、X=Yである場合には、(X,Y,Z)と(Y,X,Z)は同一の形状となる。
ユーザージョブの指定が2次元形状(X,Y)である場合には、(X,Y,1)及び(X,Y,1)を回転した形状が候補形状である。また、仮想軸Zを構成する大物理軸zから長さb、小物理軸wから長さa(aは小物理軸wの軸長)の領域を切り出し、X0*a>=X、Y0*b>=Yとなるような任意の整数X0、Y0、a及びbの組み合わせに対して(X0,Y0,a*b)も候補形状である。ここで、「*」は乗算を示す。また、(Y0,X0,a*b)も候補形状である。
また、仮想軸Zと同様に、仮想軸Xを元の物理軸に分解し、X0*a>=X、Y0*b>=Yとなるような任意の整数X0、Y0、a及びbの組み合わせに対して、(a*b,X0,Y0)、(a*b,Y0,X0)も形状候補である。ただし、aは小物理軸xの軸長である。また、仮想軸Zと同様に、仮想軸Yを元の物理軸に分解し、X0*a>=X、Y0*b>=Yとなるような任意の整数X0、Y0、a及びbの組み合わせに対して、(X0,a*b,Y0)、(Y0,a*b,X0)も形状候補である。ただし、aは小物理軸yの軸長である。
また、仮想軸Zを分離し、仮想軸X及び仮想軸Yに分離した軸を含めることによっても別の形状候補が得られる。図7は、仮想軸Zの分離を説明するための図である。図7は、ユーザーの指定したジョブ形状が5×5であり、小物理軸wの軸長a=2である場合を示す。
X0*2>=5からX0=3となり、例えばb=3とするとY0*b>=5から、Y0=2となる。すなわち、仮想軸Zを構成する大物理軸zから長さ3、小物理軸wから長さ2の領域を切り出した場合、(X0,Y0,a*b)=(3,2,6)が形状候補となる。
ここで、仮想軸Zを小物理軸wと大物理軸zとに分離し、小物理軸wを仮想軸Xに含ませてユーザーが指定した形状の論理軸Xに対応させ、大物理軸zを仮想軸Yに含ませてユーザーが指定した形状の論理軸Yに対応させる。そして、小物理軸wと仮想軸Xを合わせた軸から5個の計算ノード「2」〜「6」、大物理軸zと仮想軸Yを合わせた軸から5個の計算ノード「3」〜「7」を選択することによって、5×5の候補形状が得られる。
すなわち、大物理軸と小物理軸を組み合わせた仮想軸で構成される3次元空間だけでなく、2つの大物理軸と1つの小物理軸を組み合わせた仮想軸と1つの大物理軸と2つの小物理軸を組み合わせた仮想軸とで構成される2次元空間でも形状候補が得られる。
ユーザージョブの指定が1次元形状(X)である場合には、X0*Y0*Z0>=Xとなるような任意の整数X0、Y0、Z0の組み合わせに対して(X0,Y0,Z0)が候補形状である。
位置取得部442は、故障していない計算ノード51のうち他のジョブに割り当てられていない計算ノード51の位置をノード情報管理部42から取得する。
変換部443は、位置取得部442が取得した位置の6次元座標を仮想空間の3次元座標に変換する。変換部443は、例えば、以下の変換式を用いて座標を変換する。なお、以下の変換式では、6次元座標を(x0,y0,z0,u0,v0,w0)とし、3次元座標を(X0,Y0,Z0)としている。
x0が偶数である場合は、
X0=x0*(u軸の長さ)+u0
x0が奇数である場合は、
X0=x0*(u軸の長さ)+(u軸の長さ)−1−u0
y0が偶数である場合は、
Y0=y0*(v軸の長さ)+v0
y0が奇数である場合は、
Y0=y0*(v軸の長さ)+(v軸の長さ)−1−v0
z0が偶数である場合は、
Z0=z0*(w軸の長さ)+w0
z0が奇数である場合は、
Z0=z0*(w軸の長さ)+(w軸の長さ)−1−w0
例えば、図1(a)において、(x0,u0)=(0,2)である場合には、X0=0*3+2=2であり、(x0,u0)=(1,2)である場合には、X0=1*3+3−1−2=3である。また、図1(a)において、(x0,u0)=(2,0)である場合には、X0=2*3+0=6であり、(x0,u0)=(3,2)である場合には、X0=3*3+3−1−2=9である。
なお、ここでは、変換部443が6次元座標を仮想空間の3次元座標に変換したが、ノード情報管理部42が仮想空間の3次元座標で計算ノード51の位置を管理し、実行ノード選択部44に3次元座標を渡すこともできる。
ノード特定部444は、候補形状算出部441が算出した候補形状とマッチする位置を仮想空間内で探し、ジョブを割り当てる計算ノード51を特定する。ノード特定部444は、ジョブを割り当てる計算ノード51を特定するときに、候補形状とマッチする位置が複数ある場合には、最初に見つかった位置に基づいてジョブを割り当てる計算ノード51を特定する。
あるいは、ノード特定部444は、候補形状とマッチする位置を仮想空間内で探す場合に、できるだけ大きな空き空間が残るように探すこともできる。ここで、空き空間とは、使用状態が「空き」であり、稼動状態が「正常」である計算ノード51が形成する空間である。なお、ノード特定部444は、探索中に最初に見つかった位置に基づいてジョブを割り当てる計算ノード51を特定することもできる。
逆変換部445は、ノード特定部444により特定された各計算ノード51について、3次元仮想座標から、元の6次元物理座標に変換する。3次元仮想座標(X0,Y0,Z0)から6次元物理座標(x0,y0,z0,u0,v0,w0)に変換する計算式は、以下のとおりである。なお、以下で、整数p、qについて、「p/q」は、pをqで割った商を示し、「p%q」は、pをqで割った余りを示す。
x0=X0/(u軸の長さ)
X0を(u軸の長さ)*2で割った余りがu軸の長さより小である場合は、
u0=X0%(u軸の長さ)
その他の場合は、
u0=(u軸の長さ)−1−X0%(u軸の長さ)
y0=Y0/(v軸の長さ)
Y0を(v軸の長さ)*2で割った余りがv軸の長さより小である場合は、
v0=Y0%(v軸の長さ)
その他の場合は、
v0=(v軸の長さ)−1−Y0%(v軸の長さ)
z0=Z0/(w軸の長さ)
Z0を(w軸の長さ)*2で割った余りがw軸の長さより小である場合は、
w0=Z0%(w軸の長さ)
その他の場合は、
w0=(w軸の長さ)−1−Z0%(w軸の長さ)
次に、実施例に係る制御装置4によるジョブ割り当てのフローについて説明する。図8は、実施例に係る制御装置4によるジョブ割り当てのフローを示すフローチャートである。図8に示すように、制御装置4は、入力装置2からユーザージョブの各軸方向のサイズを受け取る(ステップS1)。
そして、制御装置4は、ユーザージョブを割り当て可能な3次元の仮想直方体形状すなわち候補形状を算出する(ステップS2)。そして、制御装置4は、ジョブ割り当て可能な計算ノード51の位置を取得し(ステップS3)、取得した位置を3次元の仮想空間にマップする(ステップS4)。
そして、制御装置4は、仮想空間内で候補形状を探し、ジョブを割り当てる計算ノード51を選択する(ステップS5)。そして、制御装置4は、ジョブの割り当てが成功したか否かを判定する(ステップS6)。
その結果、ジョブの割り当てが成功した場合には、制御装置4は、選択した計算ノード51の3次元仮想空間座標を6次元物理空間座標に変換し(ステップS7)、割り当て結果を出力装置3に出力するとともに記憶部43に書き込む(ステップS8)。一方、ジョブの割り当てが成功しなかった場合には、制御装置4は、ジョブの割り当て失敗を出力装置3に出力する(ステップS9)。
上述してきたように、実施例では、制御装置4は、並列計算機システム1の大物理軸と小物理軸を組み合わせて仮想軸を構成し、実行ノード選択部44は、3つの仮想軸が構成する3次元仮想空間で計算ノード単位でジョブを割り当てる。したがって、制御装置4は、計算ユニット50単位でジョブを割り当てる場合に発生する未使用計算ノード51をなくすことができ、並列計算機システム1の稼働率の低下を抑えることができる。
また、実施例では、大物理軸と小物理軸を組み合わせて仮想軸を構成する場合に、制御装置4は、仮想軸上で隣接する計算ノード51は物理軸上でも隣接するように仮想軸を構成する。したがって、並列計算機システム1は、計算ノード51間の通信時間が長くなることを防ぐことができる。
なお、大物理軸と小物理軸を組み合わせて仮想軸を構成する場合でも、ジョブを割り当てられた計算ノード51の一部が計算ユニット50に対応する場合がある。そのような場合、制御装置4は、計算ユニット50内では従来の割り当て方法を用いてジョブを割り当てることができる。
また、実施例では、制御装置4が全てのジョブについて計算ノード単位でジョブを割り当てる場合について説明した。しかしながら、ジョブを計算ノード単位で割り当てるか計算ユニット50単位で割り当てるかをユーザーに指定させ、制御装置4はユーザーの指定に基づいてジョブを割り当てることもできる。
ユーザーは、ジョブを計算ユニット50単位で割り当てることによって、
・ユーザーに見せる論理軸を円環状のトーラス構造にすることができる
・故障した計算ノードを含んでいてもトーラス構造の論理軸を組むことができる
という利点を得ることができる。
また、実施例では、位置取得部442が、故障していない計算ノード51のうち他のジョブに割り当てられていない計算ノード51の位置を取得し、変換部443が、位置置取得部442が取得した位置の6次元座標を仮想空間の3次元座標に変換する。したがって、制御装置4は、故障していない計算ノード51のうち他のジョブに割り当てられていない計算ノード51の位置を仮想空間において把握することができる。
また、実施例では、候補形状算出部441が、ユーザーの指定したジョブ形状からジョブを割り当てる複数の計算ノード51が形成する3次元形状の候補を候補形状としてユーザーの指定したジョブ形状と異なる場合も含めて算出する。そして、実行ノード選択部44は、候補形状算出部441により算出された候補形状に基づいて計算ノード51を選択する。したがって、制御装置4は、ジョブが割り当て可能な計算ノード51を、計算ノード51が形成する形状がジョブ形状と異なる場合も含めて、選択することができ、選択が成功する割合を高めることができる。
なお、実施例では、制御装置4について説明したが、制御装置4が有する構成をソフトウェアによって実現することで、同様の機能を有する制御プログラムを得ることができる。そこで、制御プログラムを実行するコンピュータについて説明する。
図9は、実施例に係る制御プログラムを実行するコンピュータのハードウェア構成を示す図である。図9に示すように、コンピュータ60は、メインメモリ61と、CPU62と、LAN(Local Area Network)インタフェース63と、HDD(Hard Disk Drive)64とを有する。また、コンピュータ60は、スーパーIO(Input Output)65と、DVI(Digital Visual Interface)66と、ODD(Optical Disk Drive)67とを有する。
メインメモリ61は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU62は、メインメモリ61からプログラムを読み出して実行する中央処理装置である。CPU62は、メモリコントローラを有するチップセットを含む。
LANインタフェース63は、コンピュータ60をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD64は、プログラムやデータを格納するディスク装置であり、スーパーIO65は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI66は、液晶表示装置を接続するインタフェースであり、ODD67は、DVDの読み書きを行う装置である。
LANインタフェース63は、PCIエクスプレスによりCPU62に接続され、HDD64及びODD67は、SATA(Serial Advanced Technology Attachment)によりCPU62に接続される。スーパーIO65は、LPC(Low Pin Count)によりCPU62に接続される。
そして、コンピュータ60において実行される制御プログラムは、DVDに記憶され、ODD67によってDVDから読み出されてコンピュータ60にインストールされる。あるいは、制御プログラムは、LANインタフェース63を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ60にインストールされる。そして、インストールされた制御プログラムは、HDD64に記憶され、メインメモリ61に読み出されてCPU62によって実行される。
また、実施例では、並列計算機5が大物理軸と小物理軸とを有する場合について説明したが、本発明はこれに限定されるものではなく、大小の区別なく複数の物理軸を有する場合にも同様に適用することができる。すなわち、並列計算機が計算ユニット50を有することなく、複数の計算ノード51をN次元メッシュネットワークで接続する場合にも、本発明を同様に適用することができる。
また、実施例では、1つの大物理軸と1つの小物理軸を組み合わせて1つの仮想軸を構成する場合について説明したが、本発明はこれに限定されるものではなく、3以上の物理軸を組み合わせて1つの仮想軸を構成する場合にも同様に適用することができる。
また、実施例では、並列計算機5が6次元の物理空間に計算ノード51を配置する場合について説明したが、本発明はこれに限定されるものではなく、並列計算機がより高次元又はより低次元の物理空間に計算ノードを配置する場合にも同様に適用することができる。また、実施例では、仮想空間の次元が3次元である場合について説明したが、本発明はこれに限定されるものではなく、仮想空間の次元がより高次元又はより低次元の場合にも同様に適用することができる。
また、実施例では、複数の計算ユニット50が3次元格子状に接続される場合について説明したが、本発明はこれに限定されるものではなく、複数の計算ユニット50が、3次元トーラスネットワークを介して3次元の円環状に接続される場合にも同様に適用することができる。また、実施例では、複数の計算ノード51が、3次元トーラスネットワークを介して3次元の円環状に接続される計算ユニット50について説明したが、本発明はこれに限定されるものではなく、複数の計算ノード51が3次元格子状に接続される計算ユニットについても同様に適用することができる。
1 並列計算機システム
2 入力装置
3 出力装置
4 制御装置
5 並列計算機
41 受付部
42 ノード情報管理部
43 記憶部
44 実行ノード選択部
45 出力部
46 実行指示部
50 計算ユニット
51,91 計算ノード
52,53 直方体
60 コンピュータ
61 メインメモリ
62 CPU
63 LANインタフェース
64 HDD
65 スーパーIO
66 DVI
67 ODD
90 小直方体
441 候補形状算出部
442 位置取得部
443 変換部
444 ノード特定部
445 逆変換部

Claims (9)

  1. 複数の物理軸を含む物理空間における格子状又は円環状のネットワークを介して互いに接続されるとともにそれぞれジョブを実行する複数の計算ノードと、前記複数の計算ノードを制御する制御装置とを有する並列計算機システムにおいて、
    前記制御装置は、
    ジョブを受け付ける受付部と、
    前記複数の計算ノードのうち、前記物理軸を組み合わせた仮想軸を、前記受付部が受け付けたジョブが要求する次元数分有する仮想空間で、受け付けた前記ジョブを割り当てる計算ノードを選択する選択部と、
    前記選択部が選択した計算ノードを用いて前記ジョブを実行するように、複数の前記計算ノードからなる前記並列計算機システムに指示する指示部と
    を有することを特徴とする並列計算機システム。
  2. 前記選択部は、前記仮想軸において隣接する計算ノードは組み合わせた物理軸のいずれかで隣接するような仮想軸を前記次元数分有する仮想空間で該ジョブを割り当てる計算ノードを選択することを特徴とする請求項1記載の並列計算機システム。
  3. 前記選択部は、
    前記ジョブを割り当て可能な各計算ノードの前記仮想空間における座標を特定する座標特定部と、
    前記座標特定部により特定された座標に基づいて前記ジョブを割り当てる計算ノードを特定するノード特定部と
    を有することを特徴とする請求項1又は2記載の並列計算機システム。
  4. 前記座標特定部は、
    前記ジョブを割り当て可能な各計算ノードの前記物理空間における座標を取得する取得部と、
    前記取得部により各計算ノードについて取得された座標を前記仮想空間における座標に変換する変換部と
    を有することを特徴とする請求項3記載の並列計算機システム。
  5. 前記座標特定部は、
    前記仮想空間における各計算ノードの座標を記憶する記憶部と、
    前記記憶部から前記ジョブを割り当て可能な各計算ノードの座標を取得する取得部と
    を有することを特徴とする請求項3記載の並列計算機システム。
  6. 前記受付部は、ジョブの形状を受け付け、
    前記制御装置は、前記受付部が受け付けた形状のジョブを実行可能な計算ノードが形成する3次元形状の候補を算出する候補算出部をさらに有し、
    前記選択部は、前記候補算出部により算出された候補に基づいて前記仮想空間で前記ジョブを割り当てる計算ノードを選択することを特徴とする請求項1〜5のいずれか1項に記載の並列計算機システム。
  7. 複数の物理軸を含む物理空間における格子状又は円環状のネットワークを介して互いに接続されるとともにそれぞれジョブを実行する複数の計算ノードを制御する制御装置において、
    ジョブを受け付ける受付部と、
    前記複数の計算ノードのうち、前記物理軸を組み合わせた仮想軸を、前記受付部が受け付けたジョブが要求する次元数分有する仮想空間で、受け付けた前記ジョブを割り当てる計算ノードを選択する選択部と、
    前記選択部が選択した計算ノードを用いて前記ジョブを実行するように、複数の前記計算ノードからなる並列計算機に指示する指示部
    を有することを特徴とする制御装置。
  8. 複数の物理軸を含む物理空間における格子状又は円環状のネットワークを介して互いに接続されるとともにそれぞれジョブを実行する複数の計算ノードと、前記複数の計算ノードを制御する制御装置とを有する並列計算機システムの制御方法において、
    前記制御装置が、
    ジョブを受け付け、
    前記複数の計算ノードのうち、前記物理軸を組み合わせた仮想軸を、前記受け付けたジョブが要求する次元数分有する仮想空間で、受け付けた前記ジョブを割り当てる計算ノードを選択し、
    選択された前記計算ノードを用いて前記ジョブを実行するように、複数の前記計算ノードからなる前記並列計算機システムに指示することを特徴とする並列計算機システムの制御方法。
  9. 複数の物理軸を含む物理空間における格子状又は円環状のネットワークを介して互いに接続されるとともにそれぞれジョブを実行する複数の計算ノードを制御する制御装置の制御プログラムにおいて、
    前記制御装置に、
    ジョブを受け付けさせ、
    前記複数の計算ノードのうち、前記物理軸を組み合わせた仮想軸を、前記受け付けたジョブが要求する次元数分有する仮想空間で、受け付けた前記ジョブを割り当てる計算ノードを選択させ、
    選択された前記計算ノードを用いて前記ジョブを実行するように複数の前記計算ノードからなる並列計算機システムに指示させることを特徴とする制御装置の制御プログラム。
JP2013228772A 2013-11-01 2013-11-01 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム Expired - Fee Related JP6191401B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013228772A JP6191401B2 (ja) 2013-11-01 2013-11-01 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム
EP14183345.9A EP2869198A3 (en) 2013-11-01 2014-09-03 Parallel computer system, control unit, and method of controlling parallel computer system
US14/477,135 US20150127700A1 (en) 2013-11-01 2014-09-04 Parallel computer system, control unit, and method of controlling parallel computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013228772A JP6191401B2 (ja) 2013-11-01 2013-11-01 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2015088134A JP2015088134A (ja) 2015-05-07
JP6191401B2 true JP6191401B2 (ja) 2017-09-06

Family

ID=51492835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013228772A Expired - Fee Related JP6191401B2 (ja) 2013-11-01 2013-11-01 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム

Country Status (3)

Country Link
US (1) US20150127700A1 (ja)
EP (1) EP2869198A3 (ja)
JP (1) JP6191401B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113708970A (zh) * 2021-08-29 2021-11-26 南京赤诚赛斯文化传播中心 一种网格状异构节点网络通信及空间坐标建模的系统和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2880880B2 (ja) * 1993-08-18 1999-04-12 株式会社東芝 データマッピング方法
JP5007050B2 (ja) * 2006-02-01 2012-08-22 株式会社野村総合研究所 格子型コンピュータシステム、タスク割り当てプログラム
JP2007206986A (ja) * 2006-02-01 2007-08-16 Nomura Research Institute Ltd スケジューラプログラム、格子型コンピュータシステム、タスク割り当て装置
US7716336B2 (en) * 2006-04-28 2010-05-11 International Business Machines Corporation Resource reservation for massively parallel processing systems
GB2487684B (en) * 2009-11-16 2016-09-14 Ibm Method for scheduling plurality of computing processes including all-to-all (a2a) communication across plurality of nodes (processors) constituting network, p
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
JP5035708B2 (ja) * 2010-04-21 2012-09-26 日本電気株式会社 並列計算機システム、ジョブサーバ、ジョブスケジューリング方法及びジョブスケジューリングプログラム
JP5444153B2 (ja) * 2010-07-29 2014-03-19 本田技研工業株式会社 クラッチ装置
WO2012020474A1 (ja) * 2010-08-10 2012-02-16 富士通株式会社 ジョブ管理装置及びジョブ管理方法
JP5750963B2 (ja) * 2011-03-22 2015-07-22 富士通株式会社 並列計算機システム、制御装置、並列計算機システムの制御方法および並列計算機システムの制御プログラム
JP2012252591A (ja) 2011-06-03 2012-12-20 Hitachi Ltd プロセス割当システム、プロセス割当方法、およびプロセス割当プログラム
US8769074B2 (en) * 2011-12-01 2014-07-01 International Business Machines Corporation Constructing a logical, regular axis topology from an irregular topology
US9485104B2 (en) * 2012-03-09 2016-11-01 Hitachi, Ltd. Information processing system
KR20140139032A (ko) * 2012-03-21 2014-12-04 라이트플리트 코포레이션 패킷플로우 상호연결 패브릭
US9275007B2 (en) * 2013-03-12 2016-03-01 International Business Machines Corporation Identifying logical planes formed of compute nodes of a subcommunicator in a parallel computer
JP2014211767A (ja) * 2013-04-18 2014-11-13 富士通株式会社 情報処理システム、制御装置及び情報処理システムの制御方法
US9390054B2 (en) * 2013-10-14 2016-07-12 International Business Machines Corporation Identifying a largest logical plane from a plurality of logical planes formed of compute nodes of a subcommunicator in a parallel computer

Also Published As

Publication number Publication date
JP2015088134A (ja) 2015-05-07
EP2869198A2 (en) 2015-05-06
EP2869198A3 (en) 2016-04-27
US20150127700A1 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
US11048416B2 (en) Method, apparatus and computer program product for managing storage system
US11150989B2 (en) Method, device and computer program product for managing a storage system
JP5429382B2 (ja) ジョブ管理装置及びジョブ管理方法
JP6364880B2 (ja) 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法
JP2009238114A (ja) ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム
JP6211631B2 (ja) ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定
US8756372B2 (en) Virtual storage mirror configuration in virtual host
US9996391B2 (en) Parallel computer system, method of controlling parallel computer system, and recording medium
CN109716321B (zh) N路散列连接
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
CN105302536A (zh) MapReduce应用的相关参数的配置方法和装置
US10761761B2 (en) Method and device for managing storage system
JP6617461B2 (ja) 制御装置、制御プログラム、及び制御方法
US10171574B2 (en) Computer system, processing method, and computer-readable recording medium having job processing program
JP6269530B2 (ja) 記憶システム、記憶方法、及び、プログラム
JP6191401B2 (ja) 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム
US10394615B2 (en) Information processing apparatus and job management method
JP5750963B2 (ja) 並列計算機システム、制御装置、並列計算機システムの制御方法および並列計算機システムの制御プログラム
US9329898B1 (en) Method and apparatus for job management
JP5577745B2 (ja) クラスタシステム、プロセス配置方法、及びプログラム
US20180157533A1 (en) Apparatus and method to allocate a job to plural nodes coupled to each other via a mesh or torus connection
CN109032762A (zh) 虚拟机回溯方法及相关设备
JP6428380B2 (ja) 並列計算システム、ジョブ管理装置、ジョブ管理プログラム、およびジョブ管理方法
JPWO2014112062A1 (ja) ストレージ装置及びデータ移行方法
US10331489B2 (en) Apparatus and method for executing maintenance processing on computers coupled via a multidimensional mesh or torus connection in a network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170704

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191401

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees