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

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

Info

Publication number
JP6191332B2
JP6191332B2 JP2013172716A JP2013172716A JP6191332B2 JP 6191332 B2 JP6191332 B2 JP 6191332B2 JP 2013172716 A JP2013172716 A JP 2013172716A JP 2013172716 A JP2013172716 A JP 2013172716A JP 6191332 B2 JP6191332 B2 JP 6191332B2
Authority
JP
Japan
Prior art keywords
information processing
search
continuous
parallel computer
unit
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
JP2013172716A
Other languages
English (en)
Other versions
JP2015041302A (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 JP2013172716A priority Critical patent/JP6191332B2/ja
Priority to US14/445,108 priority patent/US9146782B2/en
Publication of JP2015041302A publication Critical patent/JP2015041302A/ja
Application granted granted Critical
Publication of JP6191332B2 publication Critical patent/JP6191332B2/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

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)

Description

本発明は、並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラムに関する。
従来、二次元のメッシュ接続や三次元のキューブ接続やトーラス接続等、任意の次元空間内で隣接関係を有する計算ノード同士を接続し、隣接関係を有しない計算ノード同士の通信を経路中に位置する他の計算ノードに中継させる並列計算機システムが知られている。ここで、トーラス接続とは、複数の計算ノード同士を円環状に接続する接続形態をいう。
かかる並列計算機システムでは、配置が連続していない計算ノードに対して1つのジョブを割当てた場合は、ジョブが割当てられた計算ノード同士の通信を、他のジョブが割当てられた計算ノードが中継する場合がある。かかる場合、あるジョブが割当てられた計算ノード間の通信が、他のジョブが割当てられた計算ノードの外乱となる場合や、あるジョブを実行する計算ノードに異常が発生した際に、他のジョブが中断する場合がある。
このため、並列計算機システムは、新たなジョブの割当てを行う場合は、ジョブが割当てられていない空きノードが連続する領域を総当りで探索し、探索した領域からジョブの実行に最適な領域を選択する。そして、並列計算機システムは、選択した領域に対して、新たなジョブの割当てを行う。
しかし、連続する計算ノードの長方形や直方体で割当て・解放(ジョブ実行終了時)を繰り返していくと、段々とフラグメントが多く発生して大きなジョブ(要求計算ノード数が多いジョブ)が割当て難くなってくる。図23Aは、計算ノードが二次元に配置される並列計算機システムで、フラグメントが多く発生した場合を示す図である。図23Aでは、4つの3ノードジョブの配置がよくないため、フラグメントが多く、連続する空き計算ノードの最大の長方形の空間である最大空き空間は8ノードである。
このような状況を出来る限り少なくするために、並列計算機システムは、小さなジョブ(要求計算ノード数が少ないジョブ)を隅に集めて大きな空き空間が残るように計算ノードを選択している。図23Bは、小さなジョブを隅に集めて大きな空き空間が残るよう計算ノードを選択した場合を示す図である。図23Bでは、4つの3ノードジョブを隅に集めることにより、最大空き空間は18ノードとなり、フラグメントが多い図23Aの場合と比較して、最大空き空間を大きくすることができる。
なお、二次元トーラス接続の場合は、二次元トーラス接続に含まれる二次元メッシュ接続においてX方向及びY方向の両端の計算ノードが接続された接続形態であり、三次元トーラス接続の場合は、三次元トーラス接続に含まれる三次元メッシュ接続においてX方向、Y方向及びZ方向の両端の計算ノードが接続された接続形態である。言い換えると、トーラス接続とは、所定軸の方向に接続端を介して円環状に接続された接続形態である。従って、並列計算機システムは、トーラス接続に含まれるメッシュ接続の両端が接続された接続形態であるとして、当該トーラス接続に含まれるメッシュ接続における接続された両端である接続端を跨いだ探索を行う。ここで、X方向はX軸の方向であり、Y方向はY軸の方向であり、Z方向はZ軸の方向である。図23Cは、二次元トーラス接続のX軸跨ぎ最大空き空間の一例を示す図である。この例では、X軸を跨いで連続空き計算ノードを探索することにより、最大空き空間は15ノードとなる。
二次元トーラス接続ネットワークで接続された並列計算機システムにおいて、連続する空き計算ノードを探索する処理では、図24Aに示すデータ構造の探索データが用いられる。図24Aは、Xサイズが4であり、Yサイズが3である並列計算機システムを例として、各XY座標の計算ノードにおいて、最大XY座標へ向かう連続する空き計算ノード数の探索データを示している。ここで、「Xサイズが4である」とは、X方向に4計算ノードあることを示し、「Yサイズが3である」とは、Y方向に3計算ノードあることを示す。
各XY座標位置のデータには、当該座標からY=2座標に向けて連続したYサイズを1ずつ増やした場合の連続したXサイズの探索データが含まれている。すなわち、各XY座標位置のデータには、連続Yサイズeを固定した連続Xサイズd及び連続空きノード数fの探索データT[a][b].yx[c]=f(d,e)が含まれている。ここで、aは計算ノードのX座標であり、bは計算ノードのY座標であり、cは配列添字で0〜2の値をとる。また、連続Yサイズは、Y方向の連続した空き計算ノードのサイズであり、連続Xサイズは、X方向の連続した空き計算ノードのサイズである。また、f及びd以外は固定値であるため、初期設定され、f及びdは0に初期設定される。図24Aにおいて、探索されるf及びdは太字で示される。
例えば、原点T[0][0]のデータには、連続Yサイズ=1,2,3の場合の連続Xサイズ探索データが含まれる。最大XY座標である、T[3][2]のデータには、連続Yサイズ=1の場合の連続Xサイズ探索データが含まれる。なお、図24Aは、全計算ノードは空き状態にある場合の探索データを示している。また、図24Aにおいて斜線掛けした部分は、無効データを示す。例えば、Y=1の場合、連続Yサイズeは1又は2であり、3となることはないので配列添字は1と2となり、Y=2の場合、連続Yサイズeは1しかないので配列添字は1だけとなる。
図24Aに示した探索データを連続空き計算ノード数でソートした結果を図24Bに示す。図24Bに示すソート結果よりユーザジョブが要求する形状及び計算ノード数を満たす最小の連続空き計算ノードの長方形を選択することで大きな空き空間、すなわち、連続する空き計算ノードの長方形を残すことが可能になる。
ただし、図24Aに示した探索データのデータ構造には、X軸及びY軸跨ぎの探索データが含まれない。X軸跨ぎを処理する場合、右端と左端の計算ノードは繋がっているので、図25Aに示すように、各仮想原点より始めて、右端から左端へ回り込んだ探索が必要になる。同様に、Y軸跨ぎを処理する場合、上端と下端の計算ノードは繋がっているので、図25Bに示すように、各仮想原点より始めて、上端から下端へ回り込んだ探索が必要になる。
図26は、二次元連続空き計算ノードの長方形探索処理のフローを示すフローチャートである。図26に示すように、並列計算機システムにおいて長方形の探索を行う探索部は、計算ノードのY方向の座標位置を示す変数Yを0で初期化する(ステップS201)。そして、探索部は、Y方向の計算ノードの個数をYmaxとしてYがYmaxより小さいか否かを判定し(ステップS202)、YがYmaxより小さくない場合には、Y方向について全ての計算ノードを対象として探索した場合であるので、処理を終了する。
一方、YがYmaxより小さい場合には、探索部は、計算ノードのX方向の座標位置を示す変数Xを0で初期化する(ステップS203)。そして、探索部は、X方向の計算ノードの個数をXmaxとしてXがXmaxより小さいか否かを判定する(ステップS204)。その結果、XがXmaxより小さい場合には、探索部は、座標(X,Y)の計算ノードについて、連続Yサイズを固定してX方向に連続空き計算ノードの探索を行うY固定探索処理(X,Y)を行う(ステップS205)。そして、探索部は、Xを1増加し(ステップS206)、ステップS204に戻り、X方向の次の計算ノードを起点とする探索を行う。一方、XがXmaxより小さくない場合には、X方向について全ての計算ノードを対象として探索した場合であるので、Yを1増加し(ステップS207)、ステップS202に戻る。
図27は、Y固定探索処理(X,Y)のフローを示すフローチャートである。図27に示すように、探索部は、X方向の探索サイズであるXSizeをXmax−Xで初期化する。また、探索部は、X方向の繰り返し変数iをXで初期化し、Y方向の繰り返し変数cをYで初期化し、連続Xサイズdを0で初期化し、連続Yサイズeを1で初期化する(ステップS211)。
そして、探索部は、cがYmaxより小さいか否かを判定し(ステップS212)、cがYmaxより小さくない場合には、全ての連続Yサイズについて探索をした場合であるので、処理を終了する。
一方、cがYmaxより小さい場合には、探索部は、iがXmaxより小さいか否かを判定し(ステップS213)、iがXmaxより小さい場合には、iがXSizeより小さいか否かを判定する(ステップS214)。その結果、iがXSizeより小さい場合には、探索部は、座標(i,c)の計算ノードが空きか否かを示すT[i][c]が空きであるか否かを判定する(ステップS215)。その結果、空きである場合には、探索部は、dに1を加え、iに1を加えて(ステップS216)、X方向の次の計算ノードの空き状態をチェックするため、ステップS213に戻る。
一方、T[i][c]が空きでない場合、iがXSizeより小さくない場合、又は、iがXmaxより小さくない場合には、連続Xサイズの探索が終了した場合であるので、探索部は、dとeをかけてfを算出する。また、探索部は、探索データT[X][Y].yx[c]のf及びdに値を設定し、XSize、i及びdをそれぞれd、X及び0で初期化し、c及びeに1を加え(ステップS217)、ステップS212に戻って、次の連続Yサイズの探索を行う。
図28は、Y固定探索処理(0,0)の処理概要を説明するための図である。図28に示すように、探索部は、連続Yサイズが1である場合の連続Xサイズの探索のため、XSizeを初期化し(1)、iがXSizeより小さいか否かを判定し(2)、計算ノードが空きか否かを判定する(3)。そして、探索部は、iがXSizeより小さくなくなるか又は計算ノードが空きでなくなるまで、iがXSizeより小さいか否かの判定(4)、(6)、(8)と、計算ノードが空きか否かの判定(5)、(7)、(9)を繰り返す。
そして、探索部は、連続Yサイズが2である場合の連続Xサイズの探索のため、連続Yサイズが1である場合の連続XサイズでXSizeを初期化する(10)。連続Yサイズが1である場合の連続XサイズでXSizeを初期化するのは、連続Yサイズが1である場合の連続Xサイズより、連続Yサイズが2である場合の連続Xサイズが大きくなることはないためである。そして、探索部は、iがXSizeより小さくなくなるか又は計算ノードが空きでなくなるまで、iがXSizeより小さいかの判定(11)、(13)、(15)、(17)と、計算ノードが空きか否かの判定(12)、(14)、(16)、(18)を繰り返す。
そして、探索部は、連続Yサイズが3である場合の連続Xサイズの探索のため、連続Yサイズが2である場合の連続XサイズでXSizeを初期化する(19)。そして、探索部は、iがXSizeより小さくなくなるか又は計算ノードが空きでなくなるまで、iがXSizeより小さいかの判定(20)、(22)、(24)、(26)と、計算ノードが空きか否かの判定(21)、(23)、(25)、(27)を繰り返す。
なお、三次元トーラス接続構造のPCクラスタシステム上で、並列プログラムの実行時間短縮を図るためにプロセスを自動最適配置する従来技術がある(例えば、特許文献1参照。)。また、トーラス接続網で構成された並列計算機システムで1対多又は多対多の通信を効率よく行う従来技術がある(例えば、特許文献2参照。)。また、配置領域としての長方形領域内に複数個の形状の異なる長方形を、制約違反が起こらないように効率よく配置する従来技術がある(例えば、特許文献3参照。)。
特開2012−252591号公報 国際公開第2008/114440号 特開平6−161990号公報
しかしながら、従来の探索処理には、計算ノードの数が多くなると処理に時間がかかり、実用的な時間内に計算ノードの選択処理が完了しなくなるという問題がある。ここで、探索処理では、図26及び図27のフローチャートに示すように、ループ内の条件判定処理が処理全体の大部分を占める。したがって、条件判定の回数で処理時間の増減を判断することが可能となる。
図29及び図30は、計算ノード数増加による条件判定回数の増加を示す図である。図29は、計算ノード数増加による条件判定回数の増加を表で示し、図30は、計算ノード数増加による条件判定回数の増加をグラフで示す。図29及び図30は、Xサイズが24でYサイズが1〜18まで増加した場合の条件判定の回数を示す。
図29に示すように、Xトーラス接続を無効にした場合の条件判定回数であるXトーラス無効合計は、計算ノード数が24から432へ18倍になると999から163009と163倍になる。また、Xトーラス接続を有効にした場合の条件判定回数であるXトーラス有効合計は、計算ノード数が24から432へ18倍になり、X軸跨ぎが有効となると999から3912216と3916倍になる。なお、図30において、Y固定探索処理のグラフは、Xトーラス無効合計のグラフと重なっている。
本発明は、1つの側面では、連続空き計算ノードの探索処理時間を短くする並列計算機システムを提供することを目的とする。
本願の開示する並列計算機システムは、1つの態様において、所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムである。前記管理装置は、探索データ記憶部と、探索部と、割当部とを有する。前記探索データ記憶部は、前記所定軸の方向における接続端を跨いで前記所定数の2倍の数の情報処理装置を検索対象として、各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き装置数の探索データを、起点とした各情報処理装置ごとに記憶する。前記探索部は、記所定軸の方向に接続を跨ぐ場合を含めて前記連続空き装置数を探索し、探索した前記連続空き装置数を前記探索データ記憶部に探索データとして格納する。前記割当部は、前記探索部が探索した連続空き装置数に基づき、割当対象のジョブに複数の情報処理装置を割り当てる。
1実施態様によれば、連続空き計算ノードの探索処理時間を短くすることができる。
図1は、実施例1に係る並列計算機システムの構成を示す図である。 図2は、探索データ記憶部のデータ構造の一例を示す図である。 図3は、ソート結果記憶部のデータ構造の一例を示す図である。 図4は、探索部による探索処理のフローを示すフローチャートである。 図5は、Y固定探索処理(X,Y)のフローを示すフローチャートである。 図6は、実施例1に係る探索部による条件判定の回数を示す図である。 図7は、実施例1に係る探索部による条件判定の回数を示す図である。 図8は、実施例2に係る並列計算機システムの構成を示す図である。 図9は、並列計算機システムの各計算ノード状態のビット化を示す図である。 図10Aは、階層型データ記憶部の階層型データ構造を示す図である。 図10Bは、階層型データ記憶部の階層型データ構造を示す図である。 図10Cは、階層型データ記憶部の階層型データ構造を示す図である。 図10Dは、階層型データ記憶部の階層型データ構造を示す図である。 図11は、探索データ記憶部のデータ構造の一例を示す図である。 図12は、図11に示した探索データに対するソート結果を示す図である。 図13は、Z方向1ノード連続のY方向探索処理を説明するための図である。 図14は、Z方向2ノード連続のY方向探索処理を説明するための図である。 図15は、64ビット内の連続ONビット数探索処理用データ構造の一例を示す図である。 図16は、ビット数テーブルを示す図である。 図17は、探索部による探索処理のフローを示すフローチャートである。 図18は、Z1のY方向探索処理のフローを示すフローチャートである。 図19は、ZnのY方向探索処理のフローを示すフローチャートである。 図20は、X方向探索処理(X,Y,Z,XB)のフローを示すフローチャートである。 図21は、連続ONビット数探索処理(CB,X)のフローを示すフローチャートである。 図22は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成を示す図である。 図23Aは、フラグメントが多く発生した場合を示す図である。 図23Bは、大きな空き空間が残るよう計算ノードを選択した場合を示す図である。 図23Cは、二次元トーラス接続のX軸跨ぎ最大空き空間の一例を示す図である。 図24Aは、二次元連続空き計算ノードの長方形探索データの表現例を示す図である。 図24Bは、図24Aに示した探索データのソート結果を示す図である。 図25Aは、X軸跨ぎ処理における仮想原点の移動を示す図である。 図25Bは、Y軸跨ぎ処理における仮想原点の移動を示す図である。 図26は、二次元連続空き計算ノードの長方形探索処理のフローを示すフローチャートである。 図27は、Y固定探索処理(X,Y)のフローを示すフローチャートである。 図28は、Y固定探索処理(0,0)の処理概要を説明するための図である。 図29は、計算ノード数増加による条件判定回数の増加を示す図である。 図30は、計算ノード数増加による条件判定回数の増加を示す図である。
以下に、本願の開示する並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例1に係る並列計算機システムの構成について説明する。図1は、実施例1に係る並列計算機システムの構成を示す図である。図1に示すように、並列計算機システム1は、並列計算機10と、管理装置20とを有する。
並列計算機10は、X方向に4個の計算ノード11を有し、Y方向に3個の計算ノード11を有する。したがって、並列計算機10は、合計12個の計算ノード11を有する。各計算ノード11は、CPU、メモリ、通信部などを有する情報処理装置である。
各計算ノード11は上下左右に隣接する計算ノード11と直接接続される。また、並列計算機10は、X方向についてトーラス接続であり、左端の計算ノード11は右端の計算ノードと直接接続される。なお、ここでは説明の便宜上、12個の計算ノード11のみを示したが、並列計算機10は、任意の台数の計算ノード11を有することができる。
管理装置20は、並列計算機10を管理する装置であり、各計算ノード11へのジョブの割当などを行う。管理装置20は、ノード状態記憶部21と、探索データ記憶部22と、探索部23と、ソート部24と、ソート結果記憶部25と、受付部26と、割当部27とを有する。
ノード状態記憶部21は、各計算ノード11が空いているか使用中であるかを記憶する。ノード状態記憶部21は、各計算ノード11のXY座標と1ビットの情報を対応付けて記憶する。1ビットの情報は、「1」が空きを示し、「0」は使用中を示す。
探索データ記憶部22は、連続して空き状態にある計算ノード11である連続空きノードの探索データを記憶する。図2は、探索データ記憶部22のデータ構造の一例を示す図である。図2は、各XY座標の計算ノードにおいて、最大XY座標へ向かう連続空きノード数の探索データを示している。
各XY座標位置のデータには、当該座標からY=2座標に向けて連続したYサイズを1ずつ増やした場合の連続したXサイズの探索データが含まれている。すなわち、各XY座標位置のデータには、連続Yサイズeを固定した連続Xサイズd及び連続空きノード数fの探索データT[a][b].yx[c]=f(d,e)が含まれている。ここで、aは計算ノード11のX座標であり、bは計算ノード11のY座標であり、cは配列添字で0〜2の値をとる。また、d及びf以外は固定値であるため、初期設定され、f及びdは0に初期設定される。図2において、探索されるf及びdは太字で示される。
ただし、図24Aに示した探索データと異なり、探索データ記憶部22は、X軸の右端にX軸を跨いだ状態を仮想X軸として展開したデータ構造を有する。仮想X軸上のデータは実X軸上のデータの状態を写したものである。例えば、仮想X=4は、X=0の計算ノード状態のコピーとなる。したがって、探索データ記憶部22は、X方向の4個の計算ノード11に対してX軸跨ぎ用にX方向に2倍の8個分の探索データを記憶する。
なお、図2は、全計算ノードが空き状態にある場合の探索データを示している。また、図2において斜線掛けした部分は、無効データを示す。例えば、Y=1の場合、連続Yサイズeは1又は2であり、3となることはないので配列添字は1と2となり、Y=2の場合、連続Yサイズeは1しかないので配列添字は1だけとなる。
探索部23は、各XY座標位置の計算ノード11を起点として仮想X軸を含むX軸及びY軸の増加する方向に連続空きノード数をノード状態記憶部21を用いて探索し、探索結果を探索データ記憶部22に書き込む。探索部23は、仮想X軸を含めて連続Xサイズの最大値を8として探索を行うが、連続空き計算ノード数については実Xサイズを超えない値で計算する。
ソート部24は、探索データ記憶部22が記憶する探索データを連続空きノード数でソートし、ソート結果をソート結果記憶部25に書き込む。ソート結果記憶部25は、ソート部24によるソート結果を記憶する。図3は、ソート結果記憶部25のデータ構造の一例を示す図である。図3に示すように、ソート結果記憶部25は、連続空きノード数でソートされた探索データを記憶する。
受付部26は、入力装置を用いてユーザが指定したジョブを受け付け、探索部23に連続空きノードの探索を指示する。また、受付部26は、ユーザから受け付けたジョブに対して、割当部27に計算ノード11の割当を指示する。
割当部27は、ソート結果記憶部25が記憶する連続空きノード数に基づいてジョブを割り当てる計算ノード11を選択する。すなわち、割当部27は、ユーザジョブが要求する形状および計算ノード数を満たす最小の空き計算ノード11の長方形を選択する。割当部27が、ユーザジョブが要求する形状および計算ノード数を満たす最小の空き計算ノード11の長方形を選択することで、管理装置20は、大きな空き空間を残すことができる。
また、割当部27は、選択した計算ノード11にジョブの実行を指示する。また、割当部27は、ジョブを割り当てた計算ノード11についてノード状態記憶部21を更新する。また、割当部27は、ジョブを完了した計算ノード11についてノード状態記憶部21を更新する。
次に、探索部23による探索処理のフローについて説明する。図4は、探索部23による探索処理のフローを示すフローチャートである。図4に示すように、探索部23は、計算ノード11のY方向の座標位置を示す変数Yを0で初期化する(ステップS1)。そして、探索部23は、Y方向の計算ノード11の個数3よりYが小さいか否かを判定し(ステップS2)、Yが3より小さくない場合には、Y方向について全ての計算ノード11を対象として探索した場合であるので、処理を終了する。
一方、Yが3より小さい場合には、探索部23は、計算ノード11のX方向の座標位置を示す変数Xを0で初期化する(ステップS3)。そして、探索部23は、仮想X軸を含めたX方向の計算ノード11の個数8よりXが小さいか否かを判定する(ステップS4)。その結果、Xが8より小さい場合には、探索部23は、座標(X,Y)の計算ノード11について、連続Yサイズを固定してX方向に連続空きノードの探索を行うY固定探索処理(X,Y)を行う(ステップS5)。
そして、探索部23は、Xを1増加し(ステップS6)、ステップS4に戻り、X方向の次の計算ノード11を起点としてY固定探索処理(X,Y)を行う。一方、Xが8より小さくない場合には、X方向について全ての計算ノード11を対象として探索した場合であるので、Yを1増加し(ステップS7)、ステップS2に戻り、Y方向の次の計算ノード11を起点とするY固定探索処理(X,Y)を行う。
図5は、Y固定探索処理(X,Y)のフローを示すフローチャートである。図5に示すように、探索部23は、X方向の探索サイズであるXSizeを8−Xで初期化する。また、探索部23は、X方向の繰り返し変数iをXで初期化し、Y方向の繰り返し変数cをYで初期化し、連続Xサイズdを0で初期化し、連続Yサイズeを1で初期化する(ステップS11)。
そして、探索部23は、cが3より小さいか否かを判定し(ステップS12)、cが3より小さくない場合には、全ての連続Yサイズについて探索をした場合であるので、処理を終了する。
一方、cが3より小さい場合には、探索部23は、iが8より小さいか否かを判定し(ステップS13)、iが8より小さい場合には、iがXSizeより小さいか否かを判定する(ステップS14)。その結果、iがXSizeより小さい場合には、探索部23は、座標(i,c)の計算ノード11が空きか否かを示すT[i][c]が空きであるか否かを判定する(ステップS15)。ここで、T[i][c]はノード状態記憶部21が記憶する情報である。その結果、空きである場合には、探索部23は、dに1を加え、iに1を加えて(ステップS16)、次の計算ノード11の空き状態をチェックするため、ステップS13に戻る。
一方、T[i][c]が空きでない場合、iがXSizeより小さくない場合、又は、iが8より小さくない場合には、連続Xサイズの探索が終了した場合であるので、探索部23は、dが4以下であるか否かを判定する(ステップS17)。その結果、探索部23は、4以下でない場合には、X軸跨ぎの場合であるので、4とeをかけてfを算出し(ステップS18)、4以下である場合には、X軸跨ぎでない場合であるので、dとeをかけてfを算出する(ステップS19)。
そして、探索部23は、探索データT[X][Y].yx[c]のf及びdに値を設定し、XSize、i及びdをそれぞれd、X及び0で初期化し、c及びeに1を加え(ステップS20)、ステップS12に戻って、次の連続Yサイズの探索を行う。
このように、探索部23は、連続Xサイズの探索が終了した場合に、X軸跨ぎの場合であるか否かを判定し、X軸跨ぎである場合には、連続空きノード数を実Xサイズを超えない値で計算するので、正しく連続空きノード数を計算することができる。
図6及び図7は、実施例1に係る探索部23による条件判定の回数を示す図である。図6は、実施例1に係る探索部23による条件判定の回数を表で示し、図7は、実施例1に係る探索部23による条件判定の回数をグラフで示す。図6及び図7は、Xサイズが24でYサイズが1〜18まで増加した場合の条件判定の回数を示す。
図6に示すように、Xトーラス接続を有効にした場合の条件判定回数であるXトーラス有効合計は、計算ノード数が432の場合で、629677であり、従来の3912216と比較して6分の1になる。なお、図7において、Y固定探索処理のグラフは、Xトーラス無効合計のグラフと重なっている。
上述してきたように、実施例1では、ノード状態記憶部21が、各計算ノード11の空き状態を記憶する。また、探索データ記憶部22が、X軸の右端にX軸を跨いだ状態を仮想X軸として展開したデータ構造を有する。そして、探索部23は、各XY座標位置の計算ノード11を起点として仮想X軸を含むX軸及びY軸の増加する方向に連続空きノード数をノード状態記憶部21を参照して探索し、探索データ記憶部22に書き込む。したがって、管理装置20は、仮想原点を移動してX軸を跨いだ連続空きノード数を探索する場合と比較して、条件判定の数を減らすことができ、連続空きノード数の探索処理時間を短くすることができる。
なお、実施例1では、X方向に軸を跨いだ探索を行う場合について説明したが、本発明はこれに限定されるものではなく、Y方向に軸を跨いだ探索を行う場合やX軸及びY軸の両方向に軸を跨いだ探索を行う場にも同様に適用することができる。
また、実施例1では、二次元に計算ノード11が配置される場合について説明したが、本発明はこれに限定されるものではなく、例えば三次元に計算ノード11が配置される場合など任意の次元で計算ノード11が配置される場合にも同様に適用することができる。
ところで、上記実施例1では、軸を跨いだ連続空きノード数の探索における条件判定数は減るが、X方向のデータ量が2倍になるため、X方向に連続空きノードを探索する際の条件判定数は増加する。そこで、実施例2では、連続した空き計算ノード11の長方形及び直方体探索処理において条件判定回数を削減する並列計算機システムについて説明する。
まず、実施例2に係る並列計算機システムの構成について説明する。図8は、実施例2に係る並列計算機システムの構成を示す図である。なお、ここでは説明の便宜上、図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。図8に示すように、並列計算機システム2は、並列計算機30と、管理装置40とを有する。
並列計算機30は、X方向に6個の計算ノード11を有し、Y方向に5個の計算ノード11を有し、Z方向に4個の計算ノード11を有する。したがって、並列計算機30は、合計120個の計算ノード11を有する。各計算ノード11は、CPU、メモリ、通信部などを有する情報処理装置である。
各計算ノード11は各方向に隣接する計算ノード11と直接接続される。また、並列計算機30は、X方向にトーラス接続であり、左端の計算ノード11は右端の計算ノード11と直接接続される。なお、ここでは説明の便宜上、120個の計算ノード11を示したが、並列計算機30は、任意の台数の計算ノード11を有することができる。
管理装置40は、並列計算機30を管理する装置であり、各計算ノード11へのジョブの割当などを行う。管理装置40は、階層型データ記憶部41と、探索データ記憶部42と、探索部43と、ソート部24と、ソート結果記憶部25と、受付部26と、割当部27と、ビット数テーブル48とを有する。
階層型データ記憶部41は、Z方向及びY方向の連続空きノード数を表す階層型データ構造のデータを記憶する。ここで、階層型データ構造を説明するために必要な計算ノード状態のビット化について説明する。図9は、並列計算機システム2の各計算ノード状態のビット化を示す図である。図9において、X0〜X5は、X座標が0〜5であることを示し、Y0〜Y4は、Y座標が0〜4であることを示し、Z0〜Z3は、Z座標が0〜3であることを示す。
図9に示すように、各計算ノード11の状態は、Z0〜Z3の各面においてXY座標に対応する位置の1ビットで表される。図9において、「1」はジョブなし、すなわち、計算ノード状態は空きであることを示し、「0」はジョブあり、すなわち、計算ノード状態は使用中であることを示す。
図10A〜図10Dは、階層型データ記憶部41の階層型データ構造を示す図である。図10Aは、Z方向に1ノード連続(PZ=0)であるブロック51を示し、図10Bは、Z方向に2ノード連続(PZ=1)であるブロック52を示す。図10Cは、Z方向に3ノード連続(PZ=2)であるブロック53を示し、図10Dは、Z方向に4ノード連続(PZ=3)であるブロック54を示す。ここで、Z方向にn(n=1〜4)ノード連続とは、Z方向に計算ノード11が連続して空き状態にあることを示す。また、PZ=(Z方向に連続空きノード数−1)である。図10A〜図10Dは、一番大きな階層の4つのブロック51〜54を示す。
各ブロック内には、5つの「Y方向にn(n=1〜5)ノード連続」のブロック(PY=0〜4)がある。ここで、Y方向にn(n=1〜5)ノード連続とは、Y方向に計算ノード11が連続して空き状態にあることを示す。また、PY=(Y方向に連続空きノード数−1)である。
図10A〜図10Dにおいて、各ビットは、X軸上の計算ノード情報B[Y][Z].yz[PY][PZ]を示す。ここで、B[Y][Z].yz[PY][PZ]は、座標(n(n=0〜5),Y,Z)の計算ノード11を起点としてY方向に(PY+1)個、Z方向に(PZ+1)個連続して空き計算ノード11があるか否かを示し、「1」はあることを示し、「0」はないことを示す。
例えば、図10Aにおいて、B[0][0].yz[0][0]は、座標(n(n=0〜5),0,0)の計算ノード11を起点としてY方向及びZ方向に計算ノード11が1個連続して空きであるか否かを示す。また、B[1][1].yz[1][0]は、座標(n(n=0〜5),1,1)の計算ノード11を起点としてY方向に2個の計算ノード11、Z方向に1個の計算ノード11が連続して空きであるか否かを示す。また、B[2][2].yz[2][0]は、座標(n(n=0〜5),2,2)の計算ノード11を起点としてY方向に3個、Z方向に1個の計算ノード11が連続して空きであるか否かを示す。また、B[1][3].yz[3][0]は、座標(n(n=0〜5),1,3)の計算ノード11を起点としてY方向に4個、Z方向に1個の計算ノード11が連続して空きであるか否かを示す。
なお、斜線掛け部分は、Y方向の空きノードの連続数と起点となる計算ノード11のY座標との関係で情報が無効であることを示す。例えば、起点となる計算ノード11のY座標が3である場合には、Y方向に2個しか計算ノード11がないため、3個以上空き計算ノード11が連続することはありえない。
また、図10Aに示すPZ=0内のPY=0のブロック61は、図9で示した各計算ノード状態のビット化したデータを示している。ただし、図10Aは、全ての計算ノード11が空き状態である場合を示している。階層型データ記憶部41は、初期状態として図10Aに示すPZ=0内のPY=0のブロック61だけを記憶する。他の部分は、探索部43によりブロック61のデータから作成される。
図8に戻って、探索データ記憶部42は、連続空きノードの探索データを記憶する。図11は、探索データ記憶部42のデータ構造の一例を示す図である。図11は、各XYZ座標の計算ノード11において、最大XYZ座標へ向かう連続する空き計算ノード数の探索データを示している。なお、図11は、説明の便宜上、X方向に4個、Y方向に3個、Z方向に2個の計算ノード11がある場合を示す。
各XYZ座標位置のデータには、当該座標からY=2座標に向けて連続したYサイズを1ずつ増やし、Z=1座標に向けて連続したZサイズを1ずつ増やした場合の連続したXサイズの探索データが含まれている。すなわち、各XYZ座標位置のデータには、連続Yサイズh、連続Zサイズiを固定した連続Xサイズg及び連続空きノード数fの探索データT[a][b][c].yzx[d][e]=f(g,h,i)が含まれている。ここで、a、b及びcはそれぞれ起点となる計算ノード11のX座標、Y座標及びZ座標であり、dはy配列添字で0〜2の値をとり、eはz配列添字で0〜1の値をとる。また、f及びg以外は固定値であるため、初期設定され、f及びgは0に初期設定される。図11において、探索されるf及びgは太字で示される。
例えば、原点T[0][0][0]のデータには、連続Yサイズ=1,2,3に対する連続Zサイズ=1,2の場合の連続Xサイズ探索データが含まれる。最大XYZ座標であるT[7][2][1]のデータには、連続Yサイズ=1かつ連続Zサイズ=1の場合の連続Xサイズ探索データが含まれる。
なお、図11は、全計算ノード11が空き状態にある場合の探索データを示している。また、図11において斜線掛けした部分は、無効データを示す。例えば、Y=1の場合、連続Yサイズhは1又は2であり、3となることはないのでy配列添字は1と2となり、Y=2の場合、連続Yサイズhは1しかないのでy配列添字は1だけとなる。
図12は、図11に示した探索データに対するソート結果を示す図である。図12に示すように、探索データは、連続空きノード数でソートされる。
図8に戻って、探索部43は、各XYZ座標位置の計算ノード11を起点として仮想X軸を含むX軸、Y軸及びZ軸の増加する方向に連続空きノード数を階層型データ記憶部41を用いて探索し、探索結果を探索データ記憶部42に書き込む。
具体的には、探索部43は、まず図10Aに示したZ方向1ノード連続のブロック51を作成するZ方向1ノード連続のY方向探索処理を行う。図13は、Z方向1ノード連続のY方向探索処理を説明するための図である。ブロック51内のPY=0のブロック61は、各計算ノード11の状態をビット化した情報であり、探索部43は、ブロック61のデータを元にPY=1(Y方向に2ノード連続)〜PY=4(Y方向に5ノード連続)の情報を順番に算出していく。
PY=1のブロックのデータは、Y方向に2ノード連続した空きノードの情報なので、PY=0のブロックの2つのデータの論理積で求められる。例えば、B[0][0].yz[1][0]の6計算ノード11の状態はB[0][0].yz[0][0]とB[1][0].yz[0][0]の一回の論理積で算出できる。なお、PY=1のブロックのデータはY方向に2ノード連続した空きノード情報なので、Y=4の座標のデータは0と決まっており、Y=4の座標のデータを算出する必要はない。図13では、斜線掛け表示したB[4][0].yz[1][0]、B[4][1].yz[1][0]、B[4][2].yz[1][0]、B[4][3].yz[1][0]が演算が必要ないデータとなる。
また、PY=2のブロックのデータは、Y方向に3ノード連続した空きノードの情報なので、PY=0のブロックとPY=1のブロックの2つのデータの論理積で求められる。例えば、B[0][1].yz[2][0]の6計算ノード11の状態はB[0][1].yz[0][0]とB[1][1].yz[1][0]の一回の論理積で算出できる。なお、Y=4、Y=3の座標のデータについては0と決まっており、Y=4、Y=3の座標のデータを算出する必要はない。
同様に、PY=3のブロックのデータは、Y方向に4ノード連続した空きノードの情報なので、PY=0のブロックとPY=2のブロックの2つのデータの論理積で求められる。例えば、B[0][2].yz[3][0]の6計算ノード11の状態はB[0][2].yz[0][0]とB[1][2].yz[2][0]の一回の論理積で算出できる。同様に、PY=4のブロックのデータはY方向に5ノード連続した空きノードの情報なので、PY=0のブロックとPY=3のブロックの2つのデータの論理積で求められる。例えば、B[0][3].yz[4][0]の6計算ノード11の状態はB[0][3].yz[0][0]とB[1][3].yz[3][0]の一回の論理積で算出できる。
Z方向1ノード連続のY方向探索処理で重要な点は、探索部43は6計算ノード11の連続空きノード数探索処理を一回の論理積演算で実行できることである。また、Z方向1ノード連続のY方向探索処理で重要なもう1つの点は、Y方向の連続ノード数が増えても論理積演算回数が増えないことである。これに対して、通常の方法でY方向に5ノード連続した空きノード数を求める場合4回の論理積演算を行う必要がある。また、Z方向1ノード連続のY方向探索処理で重要なもう1つの点は、Y方向の連続ノード数が2以上のデータについては無駄な演算を行わないことである。
Z方向1ノード連続のY方向探索処理によりZ方向1ノード連続のブロック51の作成が完了すると、探索部43は、図10Bに示したZ方向2ノード連続のブロック52を作成するZ方向2ノード連続のY方向探索処理を行う。図14は、Z方向2ノード連続のY方向探索処理を説明するための図である。探索部43は、PZ=0のブロック51内のデータを元にPZ=1(Z方向に2ノード連続)かつPY=0(Y方向に1ノード連続)〜PY=4(Y方向に5ノード連続)の情報を順番に算出していく。図13で示した処理と同様に、探索部43は6計算ノード11の連続空きノード数探索処理を一回の論理積で算出できる。
PY=0のブロックのデータは、Z方向に2ノード連続かつY方向に1ノード連続した空きノードの情報なので、PZ=0のブロック内のPY=0のブロックの2つのデータの論理積で求められる。例えば、B[4][2].yz[0][1]の6計算ノード11の状態はB[4][2].yz[0][0]とB[4][3].yz[0][0]の一回の論理積で算出できる。なお、PZ=1のブロック52のデータはZ方向に2ノード連続した空きノード情報なので、Z=3の座標のデータは0と決まっており、Z=3の座標のデータを算出する必要はない。図14では斜線掛け表示したB[0][3].yz[0][1]〜B[4][3].yz[0][1]が演算が必要ないデータとなる。
PY=1のブロックのデータは、Z方向に2ノード連続かつY方向に2ノード連続した空きノードの情報なので、PZ=0のブロック内のPY=1のブロックの2つのデータの論理積で求められる。例えば、B[3][1].yz[1][1]の6計算ノード11の状態はB[3][1].yz[1][0]とB[3][2].yz[1][0]の一回の論理積で算出できる。なお、Z方向に2ノード連続した空きノード情報なので、Z=3の座標のデータは0と決まっており、さらにY方向に2ノード連続した空きノード情報なので、Y=4の座標のデータも0と決まっており、これらのデータを算出する必要はない。図14では、斜線掛け表示したB[0][3].yz[1][1]〜B[4][3].yz[1][1]、B[4][0].yz[1][1]、B[4][1].yz[1][1]、B[4][2].yz[1][1]が演算が必要ないデータとなる。
PY=2〜PY=4のブロックのデータも同様に算出される。Z方向2ノード連続のY方向探索処理で重要な点は、図13で示した処理と同様に、探索部43は6計算ノード11の連続空きノード数探索処理を一回の論理積演算で実行できることである。また、Z方向2ノード連続のY方向探索処理でもう1つ重要な点は、Z方向の連続ノード数およびY方向の連続ノード数が増えても論理積演算回数が増えないことである。これに対して、通常の方法でZ方向に2ノード連続かつY方向に5ノード連続した空きノード数を求める場合8回の論理積演算を行う必要がある。また、Z方向2ノード連続のY方向探索処理で重要なもう1つの点は、Z方向、Y方向の連続ノード数が2以上のデータについては無駄な演算を行わないことである。
Z方向2ノード連続のY方向探索処理が完了すると、探索部43は、Z方向3ノード連続のY方向探索処理及びZ方向4ノード連続のY方向探索処理を同様の方法で行う。そして、全ブロックの算出が終わると、探索部43は、最後に各XYZ座標から連続Xサイズを求める処理を行い、結果を探索データ記憶部42に書き込む。ここで、各XYZ座標から連続Xサイズを求める処理は、当該X座標から連続するON状態(ビットが1の状態)のビット数を数える処理になる。
そこで、X方向に64個の計算ノード11が並ぶ場合を例として、64ビット内の任意の位置から連続したONビット数を求める探索部43の処理について説明する。通常の探索処理では、1ビットを順番に左(又は右)シフトして対象の64ビットとの論理積演算を繰り返すため、最大64回の条件判定が必要になる。一方、探索部43は、図15に示すデータ構造及び図16に示すビット数テーブル48を用いて条件判定回数を減らす。
図15は、64ビット内の連続ONビット数探索処理用データ構造の一例を示す図である。図15に示すように、共用体ccは、64ビットデータcc.aaとしても8個の8ビットデータcc.bb[0]〜cc.bb[7]としても使用される。探索部43は、始めに探索対象の64ビットデータを任意の探索位置が左端(図15の63ビット位置)になる様にcc.aaに代入する。そして、探索部43は、このデータの左端から8ビットずつ切出して(cc.bb[7]〜cc.bb[0])、図16のビット数テーブル48を参照することにより直接8ビット内の連続ONビット数を求める処理を8回繰返す。ここで重要なのは、各8ビット内の連続ONビット数が8未満になった時点で処理を終了させることが出来る点である。
次に、探索部43による探索処理のフローについて説明する。図17は、探索部43による探索処理のフローを示すフローチャートである。図17に示すように、探索部43は、図10A〜図10Dに示した階層型データを作成するために、Z1のY方向探索処理とZnのY方向探索処理を行う(ステップS31〜ステップS32)。ここで、Z1のY方向探索処理とは、Z方向1ノード連続のY方向探索処理であり、ZnのY方向探索処理とは、Z方向2ノード連続のY方向探索処理〜Z方向4ノード連続のY方向探索処理である。
そして、探索部43は、ZをZmax−1で初期化する(ステップS33)。ここで、Zmaxは、Z方向の計算ノードの数である。そして、探索部43は、Zが0以上であるか否かを判定し(ステップS34)、Zが0以上でない場合には、処理を終了する。
一方、Zが0以上である場合には、探索部43は、YをYmax−1で初期化する(ステップS35)。そして、探索部43は、Yが0以上であるか否かを判定し(ステップS36)、Yが0以上である場合には、仮想X軸用にXmaxの2倍でXを初期化し、ビット位置を示す変数XBを1で初期化する(ステップS37)。そして、探索部43は、Xが0以上であるか否かを判定し(ステップS38)、Xが0以上である場合には、X方向に連続空きノードを探索するX方向探索処理(X,Y,Z,XB)を行う(ステップS39)。
そして、探索部43は、Xを1減らし、XBを左に1ビットシフトする(ステップS40)。そして、探索部43は、ステップS38に戻って、X方向の座標が1つ小さい計算ノード11を起点とするX方向探索処理(X,Y,Z,XB)を行う。
一方、Xが0以上でない場合(ステップS38、No)には、探索部43は、Yを1減らし(ステップS41)、ステップS36に戻って次のYを処理する。また、Yが0以上でない場合(ステップS36、No)には、探索部43は、Zを1減らし(ステップS42)、ステップS34に戻って次のZ面を処理する。
このように、探索部43は、階層型データ構造を用いて連続空きノードを探索することによって、条件判定の数を減らすことができる。
次に、Z1のY方向探索処理のフローについて説明する。図18は、Z1のY方向探索処理のフローを示すフローチャートである。図18に示すように、探索部43は、PYを1で初期化する(ステップS51)。そして、探索部43は、PYがYmaxより小さいか否かを判定し(ステップS52)、PYがYmaxより小さくない場合には、全てのPYについて処理が終了した場合なので、探索処理を終了する。
一方、PYがYmaxより小さい場合には、Zを0で初期化し(ステップS53)、ZがZmaxより小さいか否かを判定する(ステップS54)。その結果、ZがZmaxより小さい場合には、Yを0で初期化し(ステップS55)、YがYmax−PYより小さいか否かを判定する(ステップS56)。なお、YがYmax−PYより小さいか否かを判定するのは、図13に斜線掛けで示した部分はデータの算出が不要であるためである。
その結果、YがYmax−PYより小さい場合には、探索部43は、図13に示した処理を行う。すなわち、探索部43は、B[Y][Z].yz[PY][0]=B[Y][Z].yz[0][0]&B[Y+1][Z].yz[PY−1][0]の演算を行う(ステップS57)。そして、探索部43は、Yを1増加し(ステップS58)、ステップS56に戻って、次のYについて処理を行う。
一方、YがYmax−PYより小さくない場合(ステップS56、No)には、探索部43は、Zを1増加し(ステップS59)、ステップS54に戻って、次のZについて処理を行う。また、ZがZmaxより小さくない場合(ステップS54、No)には、探索部43は、PYを1増加し(ステップS60)、ステップS52に戻って次のPYを処理する。
このように、探索部43は、Z1のY方向探索処理を行うことによって、図10Aに示したブロック51のデータを算出することができる。
次に、ZnのY方向探索処理のフローについて説明する。図19は、ZnのY方向探索処理のフローを示すフローチャートである。図19に示すように、探索部43は、PZを1で初期化する(ステップS71)。そして、探索部43は、PZがZmaxより小さいか否かを判定し(ステップS72)、PZがZmaxより小さくない場合には、全てのPZについて処理が終了した場合なので、探索処理を終了する。
一方、PZがZmaxより小さい場合には、探索部43は、PYを0で初期化する(ステップS73)。そして、探索部43は、PYがYmaxより小さいか否かを判定し(ステップS74)、PYがYmaxより小さい場合には、Zを0で初期化し(ステップS75)、ZがZmax−PZより小さいか否かを判定する(ステップS76)。その結果、ZがZmax−PZより小さい場合には、Yを0で初期化し(ステップS77)、YがYmax−PYより小さいか否かを判定する(ステップS78)。なお、ZがZmax−PZより小さいか否か、及び、YがYmax−PYより小さいか否かを判定するのは、図14に斜線掛けで示した部分はデータの算出が不要であるためである。
そして、YがYmax−PYより小さい場合には、探索部43は、図14に示した処理を行う。すなわち、探索部43は、B[Y][Z].yz[PY][PZ]=B[Y][Z].yz[PY][PZ−1]&B[Y][Z+1].yz[PY][PZ−1]の演算を行う(ステップS79)。そして、探索部43は、Yを1増加し(ステップS80)、ステップS78に戻って、次のYについて処理を行う。
一方、YがYmax−PYより小さくない場合(ステップS78、No)には、探索部43は、Zを1増加し(ステップS81)、ステップS76に戻って、次のZについて処理を行う。また、ZがZmax−PZより小さくない場合(ステップS76、No)には、探索部43は、PYを1増加し(ステップS82)、ステップS74に戻って次のPYを処理する。また、PYがYmaxより小さくない場合(ステップS74、No)には、探索部43は、PZを1増加し(ステップS83)、ステップS72に戻って次のPZを処理する。
このように、探索部43は、ZnのY方向探索処理を行うことによって、図10B〜図10Dに示したブロック52〜54のデータを算出することができる。
次に、X方向探索処理(X,Y,Z,XB)のフローについて説明する。図20は、X方向探索処理(X,Y,Z,XB)のフローを示すフローチャートである。図20に示すように、探索部43は、B[Y][Z].yz[0][0]&XBが0でないか否かを判定する(ステップS91)。ここで、XBは、X方向の連続空きノードを探索する先頭のビット位置を示しているので、この判定で、探索部43は、先頭の計算ノード11が空きであるか否かを判定している。
その結果、先頭の計算ノード11が空きでない場合には、探索部43は、処理を終了する。このとき、図11に示した探索データの連続空きノード数f及び連続Xサイズgの値は、初期化で設定される0となる。
そして、探索部43は、PYをYmax−1−Yで初期化する(ステップS92)。ここで、Ymax−1−Yで初期化する理由は、図11に示した斜線掛け部分の算出は不要であるためである。
そして、探索部43は、PYが0以上であるか否かを判定し(ステップS93)、0以上でない場合には、処理を終了する。一方、PYが0以上である場合には、PZをZmax−1−Zで初期化する(ステップS94)。ここで、Zmax−1−Zで初期化する理由は、図11に示した斜線掛け部分の算出は不要であるためである。
そして、探索部43は、PZが0以上であるか否かを判定し(ステップS95)、0以上である場合には、CBにB[Y][Z].yz[PY][PZ]をセットする(ステップS96)。すなわち、探索部43は、図10A〜図10Dに示したX0〜X5のうち、PZ、PY、Z、Yで指定されるX0〜X5をCBにセットする。
そして、探索部43は、CB&XBが0でないか否かを判定する(ステップS97)。ここで、XBは、X方向の連続空きノードを探索する先頭のビット位置を示しているので、この判定で、探索部43は、先頭の連続空きノードの情報が空きであるか否かを判定している。
その結果、先頭の連続空きノードの情報が空きである場合には、探索部43は、連続ONビット数探索処理(CB,X)をCBに対してXを先頭として行い、連続ONビット数すなわち連続Xサイズをgにセットする(ステップS98)。そして、探索部43は、連続YサイズT[X][Y][Z].yzx[PY+Y][PZ+Z].h及び連続ZサイズT[X][Y][Z].yzx[PY+Y][PZ+Z].iを探索データ記憶部42から取り出して、h及びiにセットする(ステップS99)。なお、探索データ記憶部42の連続YサイズT[X][Y][Z].yzx[PY+Y][PZ+Z].h及び連続ZサイズT[X][Y][Z].yzx[PY+Y][PZ+Z].iは初期設定されている。
そして、探索部43は、連続XサイズgがXmax以下であるか否かを判定する(ステップS100)。その結果、Xmax以下でない場合には、連続XサイズはX軸跨ぎの場合なので、探索部43は、Xmaxと連続Yサイズhと連続Zサイズiとを掛けた値を連続空きノード数fとする(ステップS101)。一方、Xmax以下である場合には、連続XサイズはX軸跨ぎでない場合なので、探索部43は、連続Xサイズgと連続Yサイズhと連続Zサイズiとを掛けた値を連続空きノード数fとする(ステップS102)。
そして、探索部43は、探索データ記憶部42の連続空きノード数T[X][Y][Z].yzx[PY+Y][PZ+Z].fに算出した連続空きノード数fを書き込む。また、探索部43は、探索データ記憶部42の連続XサイズT[X][Y][Z].yzx[PY+Y][PZ+Z].gに算出した連続Xサイズgを書き込む(ステップS103)。そして、探索部43は、PZを1減らし(ステップS104)、ステップS95に戻って、次のPZの処理を行う。
一方、CB&XBが0である場合(ステップS97、No)には、先頭の連続空きノードの情報が空きでない場合なので、探索部43は、ステップS104に進む。また、PZが0以上でない場合(ステップS95、No)には、探索部43は、PYを1減らし(ステップS105)、ステップS93に戻って、次のPYの処理を行う。
このように、探索部43は、X方向探索処理(X,Y,Z,XB)を行うことによって、階層型データから連続空きノード数及び連続Xサイズを算出することができる。
次に、連続ONビット数探索処理(CB,X)のフローについて説明する。図21は、連続ONビット数探索処理(CB,X)のフローを示すフローチャートである。図21に示すように、探索部43は、CBを(64−((Xmax*2)−X))左シフトしてcc.aaにセットし、gを0に初期化する(ステップS111)。CBを(64−((Xmax*2)−X))左シフトすることにより、探索部43は、探索したいビット列をcc.aaの左につめてセットすることができる。
そして、探索部43は、最上位の8ビットcc.bb[7]の連続ONビット数をビット数テーブル48(図16に示したcbct[256])から検索し、Jにセットする(ステップS112)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS113)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[6]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS114)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS115)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[5]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS116)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS117)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[4]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS118)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS119)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[3]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS120)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS121)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[2]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS122)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS123)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[1]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS124)。そして、探索部43は、Jが8より小さいか否かを判定し(ステップS125)、Jが8より小さい場合には、8ビット連続ONでない場合であるので、下位ビットを探索することなくステップS127に進む。
一方、Jが8より小さくない場合には、8ビット連続ONである場合であるので、探索部43は、gにJを加え、次の8ビットcc.bb[0]の連続ONビット数をビット数テーブル48から検索し、Jにセットする(ステップS126)。
そして、探索部43は、gにJを加え(ステップS127)、gを連続ONビット数として返す。
このように、ビット数テーブル48を検索することによって、探索部43は、高速に連続ONビット数を算出することができる。また、図21に示すフローチャートでは、通常使用するループカウンタによる条件判定を削減するためループ処理自体をなくしている。
上述してきたように、実施例2では、探索部43は、各計算ノードの空き状態を元に、図10A〜図10Dに示す階層型データ構造でZ方向及びY方向の連続空きノード数ごと及びXYZ座標ごとに連続空きノード情報を作成し、階層型データ記憶部41に書き込む。そして、探索部43は、階層型データ記憶部41に書き込んだ階層型データ構造のデータを用いて、Z方向及びY方向の連続空きノード数ごと及びXYZ座標ごとにX方向の連続空きノード数及び三次元の連続空きノード数を算出する。したがって、探索部43は、空きノードの直方体の探索処理における条件判定の回数を減らすことができ、探索処理時間を短縮することができる。
また、実施例2では、探索部43は、階層型データ記憶部41に書き込んだ階層型データ構造のデータを用いてX方向の連続空きノード数を探索する際に、ビット数テーブル48を用いて連続ONビット数を算出する。したがって、探索部43は、空きノードの直方体の探索処理の処理時間をさらに短縮することができる。
なお、実施例2では、X軸を跨いだ探索を行う場合について説明したが、本発明はこれに限定されるものではなく、Y軸やZ軸を跨いだ探索を行う場合にも同様に適用することができる。また、本発明は、X軸、Y軸及びZ軸の3方向に軸を跨いだ探索を行う場合やX軸、Y軸及びZ軸のいずれの方向にも軸を跨いだ探索を行わない場合などにも同様に適用することができる。
また、実施例2では、三次元に計算ノードが配置される場合について説明したが、本発明はこれに限定されるものではなく、例えば二次元に計算ノードが配置される場合など三次元以外の任意の次元で計算ノードが配置される場合にも同様に適用することができる。
また、実施例1及び2では、管理装置について説明したが、管理装置が有する構成をソフトウェアによって実現することで、同様の機能を有する管理プログラムを得ることができる。そこで、管理プログラムを実行するコンピュータについて説明する。
図22は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図22に示すように、コンピュータ90は、メインメモリ91と、CPU(Central Processing Unit)92と、LAN(Local Area Network)インタフェース93と、HDD(Hard Disk Drive)94とを有する。また、コンピュータ90は、スーパーIO(Input Output)95と、DVI(Digital Visual Interface)96と、ODD(Optical Disk Drive)97とを有する。
メインメモリ91は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU92は、メインメモリ91からプログラムを読み出して実行する中央処理装置である。CPU92は、メモリコントローラを有するチップセットを含む。
LANインタフェース93は、コンピュータ90をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD94は、プログラムやデータを格納するディスク装置であり、スーパーIO95は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI96は、液晶表示装置を接続するインタフェースであり、ODD97は、DVDの読み書きを行う装置である。
LANインタフェース93は、PCIエクスプレスによりCPU92に接続され、HDD94及びODD97は、SATA(Serial Advanced Technology Attachment)によりCPU92に接続される。スーパーIO95は、LPC(Low Pin Count)によりCPU92に接続される。
そして、コンピュータ90において実行される管理プログラムは、DVDに記憶され、ODD97によってDVDから読み出されてコンピュータ90にインストールされる。あるいは、管理プログラムは、LANインタフェース93を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ90にインストールされる。そして、インストールされた管理プログラムは、HDD94に記憶され、メインメモリ91に読み出されてCPU92によって実行される。
1,2 並列計算機システム
10,30 並列計算機
11 計算ノード
20,40 管理装置
21 ノード状態記憶部
22,42 探索データ記憶部
23,43 探索部
24 ソート部
25 ソート結果記憶部
26 受付部
27 割当部
41 階層型データ記憶部
48 ビット数テーブル
51〜54 ブロック
61 ブロック
90 コンピュータ
91 メインメモリ
92 CPU
93 LANインタフェース
94 HDD
95 スーパーIO
96 DVI
97 ODD

Claims (10)

  1. 所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムにおいて、
    前記管理装置は、
    前記所定軸の方向における接続端を跨いで前記所定数の2倍の数の情報処理装置を検索対象として、各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き装置数の探索データを、起点とした各情報処理装置ごとに記憶する探索データ記憶部と、
    記所定軸の方向に接続を跨ぐ場合を含めて前記連続空き装置数を探索し、探索した前記連続空き装置数を前記探索データ記憶部に探索データとして格納する探索部と、
    前記探索部が探索した連続空き装置数に基づき、割当対象のジョブに複数の情報処理装置を割り当てる割当部と
    を有することを特徴とする並列計算機システム。
  2. 前記探索部は、前記所定軸ではない他の軸の方向に連続して情報処理装置が空き状態にある数の固定値に対して前記所定軸の方向に連続して情報処理装置が空き状態にある数を探索する処理を前記固定値を変えながら繰り返すことにより1つの情報処理装置を起点とする前記連続空き装置数を探索することを特徴とする請求項1に記載の並列計算機システム。
  3. 前記探索部は、前記起点から前記所定軸の増加方向に使用中の情報処理装置が見つかるまで情報処理装置の使用状態を1つずつ判定していくことで、前記固定値に対して前記所定軸の方向に連続して情報処理装置が空き状態にある数を探索する処理を行うことを特徴とする請求項2に記載の並列計算機システム。
  4. 所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムにおいて、
    前記管理装置は、
    各情報処理装置を起点として前記所定軸を除いた軸方向について一定の数連続して情報処理装置が空き状態にあるか否かを示す情報を、起点とした各情報処理装置ごとに表すブロックデータを、前記所定軸を除いた軸の方向に連続して情報処理装置が空き状態にある数ごとに展開して得られる階層型データを記憶する階層型データ記憶部と、
    各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き情報処理装置数の探索データを、起点とした各情報処理装置ごとに記憶する探索データ記憶部と、
    記階層型データ記憶部が記憶する階層型データを用いて、前記連続空き情報処理装置数を各情報処理装置について探索し、探索した連続空き情報処理装置数を前記探索データ記憶部に探索データとして格納する探索部と、
    前記探索部が探索した連続空き情報処理装置数に基づき、割当対象のジョブに複数の情報処理装置を割り当てる割当部と
    を有することを特徴とする並列計算機システム。
  5. 前記ブロックデータは、前記情報を1ビットで表し、
    前記探索部は、所定のビット数のデータについて該データと連続する1の数とを対応付けたビット数テーブルを用いて前記ブロックデータの前記所定軸方向のビット列から前記所定軸方向に連続する空き情報処理装置の数を探索することを特徴とする請求項4に記載の並列計算機システム。
  6. 前記探索部は、各情報処理装置が空き状態にあるか否かを示す情報を、各情報処理装置を起点として前記所定軸を除く軸方向で1つ連続して情報処理装置が空き状態にあるか否かを示す情報として用いて、前記階層型データを作成して前記階層型データ記憶部に書き込み、該書き込んだ階層型データを用いて前記連続空き情報処理装置数を各情報処理装置について探索することを特徴とする請求項4又は5に記載の並列計算機システム。
  7. 所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムの制御方法において、
    前記管理装置は、前記所定軸の方向における接続端を跨いで前記所定数の2倍の数の情報処理装置を検索対象として、各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き装置数の探索データを、起点とした各情報処理装置ごとに記憶する探索データ記憶部を有し、
    前記管理装置が有する探索部が、前記所定軸の方向に接続を跨ぐ場合を含めて前記連続空き装置数を探索し、探索した前記連続空き装置数を前記探索データ記憶部に探索データとして格納し、
    前記探索部が探索した連続空き装置数に基づき、前記管理装置が有する割当部が、割当対象のジョブに複数の情報処理装置を割り当てることを特徴とする並列計算機システムの制御方法。
  8. 所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムにおける前記管理装置の制御プログラムにおいて、
    前記管理装置は、前記所定軸の方向における接続端を跨いで前記所定数の2倍の数の情報処理装置を検索対象として、各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き装置数の探索データを、起点とした各情報処理装置ごとに記憶する探索データ記憶部を有し、
    前記管理装置が有する探索部に、前記所定軸の方向に接続を跨ぐ場合を含めて前記連続空き装置数を探索させ、探索させた前記連続空き装置数を前記探索データ記憶部に探索データとして格納させ、
    前記探索部が探索した連続空き装置数に基づき、前記管理装置が有する割当部に、割当対象のジョブに複数の情報処理装置を割り当てさせることを特徴とする管理装置の制御プログラム。
  9. 所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムの制御方法において、
    前記管理装置は、
    各情報処理装置を起点として前記所定軸を除いた軸方向について一定の数連続して情報処理装置が空き状態にあるか否かを示す情報を、起点とした各情報処理装置ごとに表すブロックデータを、前記所定軸を除いた軸の方向に連続して情報処理装置が空き状態にある数ごとに展開して得られる階層型データを記憶する階層型データ記憶部と、
    各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き情報処理装置数の探索データを、起点とした各情報処理装置ごとに記憶する探索データ記憶部とを有し、
    前記管理装置が有する探索部が、前記階層型データ記憶部が記憶する階層型データを用いて、前記連続空き情報処理装置数を各情報処理装置について探索し、探索した連続空き情報処理装置数を前記探索データ記憶部に探索データとして格納し、
    前記探索部が探索した連続空き情報処理装置数に基づき、前記管理装置が有する割当部が、割当対象のジョブに複数の情報処理装置を割り当てることを特徴とする並列計算機システムの制御方法。
  10. 所定軸の方向に接続端を介して円環状に接続された所定数の情報処理装置を有する並列計算機と前記並列計算機を管理する管理装置とを備えた並列計算機システムにおける前記管理装置の制御プログラムにおいて、
    前記管理装置は、
    各情報処理装置を起点として前記所定軸を除いた軸方向について一定の数連続して情報処理装置が空き状態にあるか否かを示す情報を、起点とした各情報処理装置ごとに表すブロックデータを、前記所定軸を除いた軸の方向に連続して情報処理装置が空き状態にある数ごとに展開して得られる階層型データを記憶する階層型データ記憶部と、
    各情報処理装置を起点として全ての軸方向について連続して空き状態にある情報処理装置を探索した数である連続空き情報処理装置数の探索データを、起点とした各情報処理装置ごとに記憶する探索データ記憶部とを有し、
    前記管理装置が有する探索部に、前記階層型データ記憶部が記憶する階層型データを用いて、前記連続空き情報処理装置数を各情報処理装置について探索させ、探索させた連続空き情報処理装置数を前記探索データ記憶部に探索データとして格納させ、
    前記探索部が探索した連続空き情報処理装置数に基づき、前記管理装置が有する割当部に、割当対象のジョブに複数の情報処理装置を割り当てさせることを特徴とする管理装置の制御プログラム。
JP2013172716A 2013-08-22 2013-08-22 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム Active JP6191332B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013172716A JP6191332B2 (ja) 2013-08-22 2013-08-22 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム
US14/445,108 US9146782B2 (en) 2013-08-22 2014-07-29 Parallel computer system, controlling method for parallel computer system, and storage medium storing controlling program for management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013172716A JP6191332B2 (ja) 2013-08-22 2013-08-22 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2015041302A JP2015041302A (ja) 2015-03-02
JP6191332B2 true JP6191332B2 (ja) 2017-09-06

Family

ID=52481610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013172716A Active JP6191332B2 (ja) 2013-08-22 2013-08-22 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム

Country Status (2)

Country Link
US (1) US9146782B2 (ja)
JP (1) JP6191332B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6447329B2 (ja) * 2015-04-09 2019-01-09 富士通株式会社 並列計算制御装置、並列計算システムおよびマイグレーション時間推定プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161990A (ja) 1992-11-19 1994-06-10 Fujitsu Ltd 配置方式
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
WO2008114440A1 (ja) 2007-03-20 2008-09-25 Fujitsu Limited 一意情報集団通信プログラム、コンピュータ、一意情報集団通信方法、および記録媒体
JP5035708B2 (ja) * 2010-04-21 2012-09-26 日本電気株式会社 並列計算機システム、ジョブサーバ、ジョブスケジューリング方法及びジョブスケジューリングプログラム
WO2012020474A1 (ja) * 2010-08-10 2012-02-16 富士通株式会社 ジョブ管理装置及びジョブ管理方法
JP2012252591A (ja) 2011-06-03 2012-12-20 Hitachi Ltd プロセス割当システム、プロセス割当方法、およびプロセス割当プログラム
JP6499388B2 (ja) * 2013-08-14 2019-04-10 富士通株式会社 並列計算機システム、管理装置の制御プログラムおよび並列計算機システムの制御方法

Also Published As

Publication number Publication date
US9146782B2 (en) 2015-09-29
US20150058860A1 (en) 2015-02-26
JP2015041302A (ja) 2015-03-02

Similar Documents

Publication Publication Date Title
CN109255829B (zh) 生成分层加速结构并进行相交测试的方法、光线跟踪系统
JP6225509B2 (ja) メッシュ化方法およびメッシュ化装置
Childs et al. A contract based system for large data visualization
US8471845B1 (en) System and method for constructing a bounding volume hierarchical structure
CN103793876A (zh) 分布式拼接式进行高速缓存
KR20130011961A (ko) 연산 제어 장치, 연산 제어 방법, 프로그램, 및 병렬 프로세서
JP6211631B2 (ja) ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定
US10616103B2 (en) Constructing staging trees in hierarchical circuit designs
JP6503072B2 (ja) 半導体システムおよび計算方法
JP2015149038A (ja) 演算制御装置及び演算制御方法並びにプログラム、OpenCLデバイス
CN103996216A (zh) 用于曲面细分和几何着色器的电力高效属性处置
JP2022534068A (ja) 異種マルチコアアーキテクチャのコンパイルフロー
JP4778558B2 (ja) 有限要素法と境界要素法による結合方程式の高速演算処理方法
CN110222410B (zh) 一种基于Hadoop MapReduce的电磁环境仿真方法
JP5544427B2 (ja) ハードウェア支援配置を行うための方法および装置
JP5321691B2 (ja) 並列計算装置、並列計算方法、および並列計算プログラム
JP6191332B2 (ja) 並列計算機システム、並列計算機システムの制御方法及び管理装置の制御プログラム
CN111797584A (zh) 基于fpga和cpu异构计算的随机行走寄生电容参数提取方法
CN103218259A (zh) 计算任务的调度和执行
KR102326586B1 (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
US6952701B2 (en) Simultaneous array configuration and store assignment for a data storage system
US11960868B2 (en) Branch objects for dependent optimization problems
JP6191401B2 (ja) 並列計算機システム、制御装置、並列計算機システムの制御方法及び制御装置の制御プログラム
JP7111945B2 (ja) 構造解析シミュレーションプログラム、構造解析シミュレーション方法及び情報処理装置
EP4213103A1 (en) Building an acceleration structure for use in ray tracing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170222

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150