[目次][前ページ][OHP][質疑応答]

付録 平成9年度及び10年度高速化作業成果一覧

コード名

向上率 (1PEスカラ)

BWR用最適化予測コード

TRAC-BF1

圧力容器部を3次元でモデル化できる二流体モデルコードである。事故時の一次系、二次系各部の流量、温度、ボイド率等の過渡解析と行う。

M780で動作しているTRAC-BF1コードをVPP500にインストールしたが、コードに一部問題があり、研究室で整備したWSTRAC-BF1コードをAP3000にインストールした。

3次元汎用流体解析コード

FLOW-3D

2次元流体解析コードであるSOLA,SOLA-ICE,SOLA-VOFの3次元への拡張版で、圧縮/非圧縮・自由界面の動き、熱流動の解析を行う。SOLAアルゴリズムを用いて方程式を解く。

FLOW-3Dコードに対しベクトル化行う。

入力データ dbr8

オリジナルスカラ 60m26.25s

ベクトル化版 50m29.61s(1.2)

回帰計算等ベクトル化できない部分があり、ベクトル化が十分にできない。このためAP3000上で実行する(VPPと比較し約3.3倍高速である)。

ダイヤモンド結晶を扱う分子動力学コード

DGR

DGRは,ダイヤモンド型結晶における照射損傷シミュレーションのための分子動力学コードであり,PART1,PART2,PART3から構成されている.それぞれがいくつかルーチンから成る一つのコードであり,実行はそれぞれ個別に行われる.

PART1では,初期設定を行う.

PART2では,PART1で設定されたデータを読み込み,結晶を構成する各原子に対する運動方程式を解き,種々のエネルギーの計算を行う.

PART3は,PART2での計算結果の作図を行う.

ベクトル並列化を行った.尚,高速化の対象としたのは,主計算を行うPART2のみである.

オリジナル版ベクトル実行

     733sec(※)

ベクトル化版ベクトル実行

     190sec(3.8倍 ※比)

並列化版(1PE)

ベクトル並列実行

338sec2.2倍 ※比)

並列化版(4PE)

ベクトル並列実行

    182sec (4.0倍 ※比)

並列化版(16PE)

ベクトル並列実行

   62sec (11.8倍 ※比)

本並列化では,最大で「使用するプロセッサ台数/2」倍の性能が期待される並列処理構造を採用しているため,通常期待されるPE台数倍には達していない.

連続エネルギー粒子輸送モンテカルロコード

MCNP4A

中性子、2次ガンマ線、ガンマ線及び電子の輸送計算を行う。

MCNP4A並列版(PVM)のAP3000へのインストールと動作環境整備。

2並列実行 1.9

4並列実行 3.7

(MCNP4A付属のテスト入力を使用)並列版の入力データとシングル版の入力データは完全互換ではない。

円筒座標系直接数値解析コード

CYLDNS44N

円管内乱流の直接シミュレーションを行う。本体部分はICGS法+FFTであるが、今回の対象部分は2方向FFTTDMAを用いている。

大規模な問題に対応するため、PEに対しデータを分割して持たせるような並列化を行う。またさらに、ベクトル化が不十分なルーチンに対し、ベクトル化を行う。

オリジナルスカラ

10220.21s (ELAPS) (1.0)

10188.73s (CPU)

オリジナルベクトル

1665.64s(ELAPS) (6.1)

1635.12s(CPU)

並列化版(4PE

469.61s(ELAPS)(21.8)

並列化版(16PE

209.17s(ELAPS) (48.9)

多次元二流体モデルコード

ACE-3D

受動的安全炉の設計研究を多次元の二流体モデルコードにより高精度に行うための二流体モデルの構成方程式の評価開発に使用できる解析コードである。

基礎方程式は3次元の二流体モデルであり、解析体系として直交座標系または円筒座標系が選択できる。基礎式はスタッガードメッシュの有限差分で定式化し、対流項は風上差分、拡散項は中心差分とし、半陰解法で解いていく。乱流モデルとしては、二相 k−εモデルを導入している。

ガウス消去法のアルゴリズムを変更し、二段二列同時消去法を採用した。その他、計算アルゴリズムの変更を伴わないベクトル化作業を実施。

○ILUBCG(双共役勾配法)

オリジナルスカラ 82040 sec

ベクトル化版 6414 sec

(12.8)

○BGLU(ガウス消去法)

オリジナルスカラ 51494 sec

ベクトル化版 4386 sec

(11.7)

放射能粒子拡散予測コード

WSPEEDI

WSPEEDIは,原子炉事故時の緊急時において,放射能の地球規模拡散をリアルタイムで予測するシステムである.高速化を依頼されたコードは,風速場計算コードと濃度・線量計算コードである.

風速場計算コードは,ネームリストで与えられる計算領域とサイトのパラメータから,それらに該当する地形データを読み込み,計算対象領域を3次元メッシュとして作成する.そして,地球規模の気象予報データを読み込み,計算対象領域のメッシュ上の風速場を内挿により求める.更に,内挿された風速場が質量保存則を満たすように補正される.気象予報データは6or12時間毎に複数個存在し,その読み込みはメインルーチンに存在する時間ループで行われる.

濃度・線量計算コードでは,風速場データを使用して,領域内の放射能の拡散を粒子によって模擬する.粒子は計算開始時から既に全粒子が領域内に存在するのではなく,δt毎に増えていく.粒子の位置は,風速場や大気の乱れ,乱数等によって求められる.メインルーチンには,風速場データを読み込むループとその中のδtループが存在する.δtループの直前で風速場データを読み込み,δtループ前半部分で粒子を発生させ放射能拡散を模擬し,各粒子から放射能空気中濃度や地表面への放射能沈着量を求める.δtの加算値がWIDRCSになった場合,空気中濃度の平均値や沈着量の積算,線量当量等の計算と出力を行う.

風速場計算コードについては,メインルーチンに存在する時間ループの1回転毎の各気象予報データについての計算が,他の気象予報データについての計算とは依存関係がないことから,このループを分割して並列化を行った.

濃度・線量計算コードについては,各粒子について独立に計算されており,また処理構造も粒子ループが主体となっているため,粒子について処理とデータを分割して並列化を行った.

風速場計算コード:

オリジナル版スカラ実行

    5180sec(※)

オリジナル版ベクトル実行

    1213sec4.3倍 ※比)

並列化版(1PE)

ベクトル並列実行

  1258sec4.1倍 ※比)

並列化版(4PE)

ベクトル並列実行

    323sec16.0倍 ※比)

並列化版(16PE)

ベクトル並列実行 

 145sec35.7倍 ※比)

濃度・線量計算コード:

(a)実時間  (b)CPU時間

オリジナル版(粒子40000)

スカラ実行

(a) 8095sec(※1)

(b)  7443sec(※2)

ベクトル実行

(a)  2349sec3.4 ※1比)

(b)  1780sec4.2倍 ※2比)

追加ベクトル化版(粒子80000)

スカラ実行

(a) 17680sec(※3)

(b) 16508sec(※4)

ベクトル実行

(a) 4985sec3.5倍 ※3比)

(b) 3242sec5.1倍 ※4比)

並列化版(粒子80000)

1PE実行

(a) 3966sec4.5倍 ※3比)

(b) 3051sec5.4倍 ※4比)

4PE実行

(a)  1594sec11.1倍 ※3比)

(b)  892sec18.5倍 ※4比)

12PE実行

(a)  1224sec14.4倍 ※3比)

(b)   482sec34.2倍 ※4比)

汎用図形処理解析システム

IPLOT

IPLOTはデータ解析とプロット図作成の機能を持つ。グラフィックライブラリとしCALCOMPが使用されている。

ALCOMPを互換ライブラリpiflibに代える。piflibは出力先としてPostScriptファイルを選ぶことができる。改良として、フォントを描画するための適切なPostScript命令をファイルに出力する機能を付け加えた。

3次元熱伝導解析コード

SSPHEAT

SSPHEATコードは、複雑な冷却材ヘリウムガスの流路を持つ構造物の温

度分布を求めるために開発された数値解析コードである。

解析対象を有限な要素に分割し、全ての要素についてガラーキン法に基づく有限要素法を適用して冷却材ヘリウムガスの流れ方向の温度変化、熱放射、内部発熱を考慮した3次元熱伝導解析を行っている。

(1)ベクトル化チューニング

(2)並列化の可能性調査

(3)AP3000へのインストール

(1)VPP

テストケース RPVVCS1

Org(Scalar) 45.41sec

Tuning(Vec) 20.06sec(2.26)

テストケース sp61.txt(100)

Org(Scalar) 957.63sec

Tuning(Vec) 145.37sec(6.59)

(2)AP3000

テストケース RPVVCS1

Tuning 17.29sec(2.63)

テストケースsp61.txt(100)

Tuning 404.27sec(2.37)

(2)は対VPP/Org(Scalar)の向上率

運動論的バルーニングシューティングコード

KBSHOOT

運動論的バルーニング方程式をシューティング法によって解き、不安定モードの固有関数および固有値を求める。係数に速度積分(マクスウェル分布についての平均)を含む。

並列化効率を元に、オーバーヘッド等を測定し性能評価を行う。(VPP500)

H9年度高速化対象コードの性能調査

調査対象コードの計算内容欄を参照下さい。

H9年度高速化対象コードのうち以下の原子力コードの性能データ収集を行った。

ACE-3D, DGR, DORT-TORT, EDDYCAL, EQMD, FLOW3D, GYRO,MARS NLFP, SD, SELENEJ, SSPHEAT, STREAM V3.10, WSPEED

データ収集条件

(1)対象コード:オリジナル版, ベクトル化チューニング版(除 並列化版)

(2)実行計算機:VPP500, AP3000

(3)主な収集データ:CPU,経過,VU時間,ベクトル化率,ベクトル化効果,ベクトル化チューニング効果,AP3000効果(対VPP, etc

1. ベクトル化チューニング効果

Tuning(Vec)版のOrg(Scalar)版に対する向上率

1.0 2.0 3ケース

2.0 3.0 3ケース

3.0 4.0 4ケース

4.0 5.0 0ケース

5.010.0 3ケース

10.015.0 0ケース

15.020.0 1ケース

20.025.0 3ケース

100.0 以上 1ケース

18ケース

2. AP3000の効果

VPPスカラ実行に対するAP3000実行の向上率

1.054.09(平均:2.24,標準偏差:0.66, 44ケース)

原子核統計崩壊計算コード

SD

原子核の各種、励起エネルギー、スピン角運動量ともとに、軽粒子放出及び核分裂による統計崩壊の計算を行う。

ベクトル化を行った。

オリジナルスカラ 611.82s

ベクトル化版 28.78s

(21.3)

3次元熱流体解析コード

STREAM V3.10

3次元圧縮・非圧縮性流体を対象とした熱流体解析を行う。流体解析、熱解析、物質移動解析を個々に、またすべてを連成させて解く。

縮性流体の部分に関して、MPIによる並列化を行う。また、大規模計算の対応のため、解析空間をプロセッサ台数個に分割させる。前処理付き反復解法による行列ソルバ部分は、不完全LU分解及び前進・後退代入計算部分は(データに依存関係があるため)単純に並列計算ができないため、パイプライン的な並列化を行う。

入力データ B09.S

オリジナル版 21.382s (1.0)

並列化版(4PE19.627s (1.1)

入力データ B10.S

オリジナル版 メモリ不足のため実行不可

並列化版( 4PE 77.152s

並列化版(16PE 68.330s

並列化手法として、MPIを採用している。

MHD平衡コードSELENEJ

トカマクのMHD平衡方程式であるグラッド・シャフラノフ方程式を解く。数値解法は2次元楕円偏微分方程式の自由境界問題を反復法で解いている。一方向にはフーリエ変換、もう一方向には差分解法を用いている。

オリジナルコードに対し、ベクトル化、および並列化を行った。

オリジナルスカラ 4.35s

オリジナルベクトル1.33s

ベクトル化版 0.75s (5.8)

以後カーネル部分の性能(向上比はベクトル化版を1.0とする)

ベクトル化版 0.487s

並列化版(4PE) 0.378s (1.29倍)

並列化版(16PE)0.455s (1.07倍)

並列化版の性能が向上率が悪いのは、ベクトル長が短くなることによるベクトル性能の低下、および全体の実行時間が短いため、データ通信時間の比率が大きくなってしまったためである。

拡張量子分子動力学コード

EQMD

QMDコードは原子核反応をシミュレーションするコードである。1核子を一つの波束で表現して、古典運動方程式及び2体衝突により核子多体系の時間発展を記述している。EQMDの特徴は波束の拡がりを動的に扱う点にあり、波束の中心はニュートン方程式、拡がりはニュートン方程式に良く似た運動方程式を解いている。この解法として4次のRunge-Kutta法を用いている。

1.近似版

(1)計算量の削減による高速化

(2)ベクトル並列化による高速化

(3)AP3000への適応性調査

2.厳密版

(1)ベクトル並列化による高速化

テストケース 近似版/T040

Org (Scalar/1PE)

4:36:15.15

Tuning(Vec/1PE) 2:16.74(121.2)

Tuning(Vec/4PE) 1:32.38(179.4)

テストケース厳密版/T040

Org(Scalar/1PE)

1:35:10.32

Tuning(Vec/1PE) 4:56.89(19.2)

Tuning(Vec/4PE) 2:28.27(38.5)

渦電流解析コード EDDYCAL

有限要素法を用いて渦電流の固有値解析を行うとともに、ビオサバールの式を用いて外部磁場との結合を求め、渦電流の時間変化を求める。具体的には、有限要素法により導体をモデル化し、薄板近似により電流ポテンシャルを導入し、これらの電流ポテンシャルの励起モードを固有値解析により求める。電流ポテンシャル法による電磁場解析においては、インダクタンス行列中に非局所的な境界積分項が現れ、行列が実対称となることが特徴として挙げられる。コードの構造としては、大きく3つのステップに分かれる。ステップ1は、最初(回路方程式の組み立て)から固有値計算まで、ステップ2は、外部磁場、ベクトルポテンシャルの計算から渦電流計算まで、ステップ3は、外部磁場、磁束密度の計算から最後(磁束密度、電磁力の計算)までである。これらの内、計算時間については、ステップ1の行列計算の部分が支配的である。

VPP500上で並列化の作業を行ったのは、行列計算の部分である。全体の実行時間コストの79%を占めるインダクタンス行列Aを作成する部分と、11%を占める一般固有値問題Ax =λBxの解法部の並列化を行った。一般固有値問題の内、標準固有値問題解法部の並列化にういては、計算科学技術推進センター並列計算法グループ開発の並列ライブラリを用いて行った。また、データ分割を行うと、多頻度のデータ転送が発生し、性能が極端に劣化することが予想されたため、データ分割は行わなかった。VPP500上でのベクトル化は、既にオリジナルコードがクレイ計算機用にベクトル化済あったことから、更なるベクトル化作業という位置付けで、機械的にベクトル化可能なサブルーチンすべてについて行った。また、VPP500上では補足作業という位置付けで、I/Oの高速化も行った。VPP500上での作業ではデータ分割を行わなかったことにより、大規模計算対応化できかったことから、メモリ量/1PEVPP500の10倍搭載されているAP3000への移植も行った。

VPP500: 

 (a) 実時間 (b) CPU時間

オリジナル版

スカラ実行

(a) 4971sec (b) 4949sec

  ベクトル実行

(a) 1440sec (b)1382sec

(ユーザ利用環境)

ベクトル並列化版

1PE実行

(a) 1212sec (b) 1193sec

  4PE実行

(a) 428sec (b) 418sec

  16PE実行

(a) 237sec (b) 228sec

(対ユーザ利用環境

(a) 6.1 (b) 6.1倍)

AP3000:

(a) 実時間  (b) CPU時間

オリジナル版

(a) 3393sec (b) 3354sec

並列化版(VPP500からの移植)

1PE実行

(a) 2772sec (b) 2699sec

  4PE実行

(a) 1265sec (b) 1249sec

(対 オリジナル

   (a) 2.7倍  (b) 2.7倍)

連続エネルギー粒子輸送モンテカルロコード

MCNP 4B2

 

中性子、光子、及び電子の輸送計算を行う。

MCNP 4B2AP3000へのインストールと動作環境整備

(1)シングル版(バッチ版、X版)のインストールと動作環境整備

(2)並列版(PVM)のインストールと動作環境整備

(3)並列版(MPI)の作成、及びインストールと動作環境整備

  1. バッチ版(1PE)
  2. 13h02m14.99s (1.00)

  3. PVM (4PE)
  4. 4h54m59.92s (2.65)

  5. MPI (4PE)

4h47m36.63s (2.72)

原子炉安全性解析コード

RELAP5/MOD3.2.1.2

加圧水型原子炉(PWR)の事故や異常過渡変化を解析のため熱水力最適化評価コードであり、PWRの炉心、蒸気発生器、加圧器などの主要機器をモデル化するためのツールや安全保護系をモデル化するための制御系モデルを備えている。これらを用いて、PWRの総合実験解析、個別効果実験解析、及び商用炉の解析を行う。

VPP500上にあるRELAP5/MOD3.2.1.2コードをAP3000にインストールした。

当初はベクトル化であったが、AP3000での実行が(VPP500での実行より)速いことが判明し、AP3000のインストールに変更した。これは、RELAP5/MOD3.2.1.2コードのベクトル化効果が低いものと予想されたためである。

汎用トカマク回路シミュレーションプログラム

GTCSP

回路(接続ノードで結ばれた同期発電機、トランス・サイリスタ変換機、コイル群等)解析シミュレーションを行う。回路全体の回路方程式を構築し、これらの微分方程式を台形法で積分することによって、回路を動的に解析する。

SP2GTCSPVPP500へインストールし、ベクトル化を行った。

オリジナル版

 ベクトル実行  14h35m03s

ベクトル化版

 ベクトル実行   1h09m29s

12.6 倍)

イオン性融体分子動力学計算コード

MSP2

分子動力学法によりイオンの運動について計算を行う。イオンの座標及びポテンシャルを与え、運動方程式の差分近似を解いてイオンの動きを計算する。(運動方程式のテイラー展開の一次微分までの近似)

ベクトル処理時のメモリ領域削減並列化(粒子体系を分割し、各プロセッサに持たせる)

オリジナルメモリ使用量

41.79MB

チューニング版メモリ使用量

2.00MB (4並列)

オリジナル実行時間

4534sec

チューニング版

2471sec(4並列)

受動的冷却システム試験解析コード

THANPACST2

放射伝熱、熱伝導及び自然対流熱伝達を考慮して流れと流体及び各構造物の温度分布を同時に解く非定常コードである。基本方程式は非圧縮の連続運動及び流体を固体のエネルギー式流動計算と熱計算を交互に反復させて非定常計算を行なう。流体と構造物間の熱伝達は既存の自然対流熱伝達の相関式により定めている。放射計算のための形態係数は別途幾何学的手法により求め、コードに入力している。基礎方程式はコントロールボリューム法により差分化し、時間項に対しては前進差分、対流項には一次精度の風上差分、拡散項には中心差分を適応している。

最もコストの高いソルバー部(Newton-Raphson法、PCG法)をベクトル化した。流動計算部、温度計算部についてはベクトル化による精度誤差が他部分に影響するため並列化のみを実施した。

オリジナルスカラ:

1h55m38s (1.0)

オリジナルベクトル

1h10m29s (1.6)

チューニングベクトル

35m32s (3.3)

チューニング並列(4pe):

16m57s (6.8)

原子炉安全性解析コード

RELAP5/MOD2/C36-05

軽水炉の事故時、及び異常過渡変化時における1次系および2次系の熱水力挙動の計算を行う。これには、炉心部や圧力バウンダリ等の構造物に関する温度計算も含まれる。数値解法的には、1次元二相流計算コードであり、質量保存式、運動方程式、エネルギー保存式、及び二相流に関する各種構成方程式から成り立っている。

VPP500RELAP5/MOD2/C36-05コードをAP3000にインストールする。作業内容は、非互換項目の修正、スチームテーブル(バイナリ形式)のIEEE形式の変更等。

 

中性子・光子輸送計算コード

TORT-DORT

原子炉、核融合炉等の放射線発生施設の遮蔽計算のためにORNLで開発された放射線輸送計算コードで、現在設計等に用いられているDOT3.5の改良型コードである。ボルツマン型輸送計算式をエネルギー多群、離散角度分点、メッシュ分点を用いて核データの角度分布をルジャンドル展開し、基本的にはダイヤモンド差分法により解いている。

ORNLより送られたDORT-TORTコード群より、CRAY版のDORTTORTGIPGRTUNCLVISATORSEDを抽出し、VPP500用に変換(倍精度化を含む)を行い、さらにベクトル化を行った。

入力データ・j42.jffnj

オリジナルスカラ

2h19m38.32s

ベクトル化版

1h 5m49.41s (2.2)

入力データ・j175.jffnj

オリジナルスカラ

4h10m39.68s

ベクトル化版

2h 9m41.04s (1.9倍)

非線形フォッカープランクコード

非線形フォッカープランク方程式をADI法によって解き、速度分布関数の時間展開を追跡する。

本コードに対し、ベクトル化を行い、その後メモリ分割を伴う並列化を行う。

ベクトル化版性能(VPP500)

CPU時間) (比率)

オリジナルスカラ

6m56.25s ( 1.0)

オリジナルベクトル

2m21.90s ( 2.9)

ベクトル化版ベクトル

19.90s (21.7)

並列化版性能(VPP500)

(経過時間) (比率)

1PEベクトル化版

1h18m02.36s (1.0)

4PE並列化版

26m38.11s (2.9)

8PE並列化版

19m16.61s (4.0)

16PE並列化版

16m51.93s (4.6)

並列化版性能(VPP300)

(経過時間)(比率)

1PEベクトル化版

1h02m01.79s (1.0)

4PE並列化版

22m45.35s (2.7)

8PE並列化版

16m59.69s (3.6)

最大解析規模(XxY(VPP500)

(規模) (比率)

シングル版 751x 501 (1.0)

4PE 1348x1348 (4.8)

16PE 2696x2696 (19.3)

最大解析規模 (XxY) (VPP300)

(規模) (比率)

シングル版 1441x501 (1.0)

4PE 1862x1862 (4.8)

8PE 2619x2619 (9.5)

メモリ分割は領域分割法を採用した。

 


[目次][前ページ][OHP][質疑応答]