[目次][前ページ][次ページ][OHP][質疑応答]
(3/5)

3.乱流LESにおける計算機性能

3.1乱流LESのサンプルプログラム

 数値シミュレーションに関する最近のコンピュータ環境をみると、ベクトル演算プロセッサーを用いたスーパーコンピュータから、RISCチップCPUの演算性能向上、さらに、並列型の超スカラーコンピュータへと、技術開発がめまぐるしく行われてきた。その結果、ユーザーが利用できるコンピュータ資源は、数年前に比べて、その大きさも種類も格段に向上しており、当然ながらコンピュータ性能に対する評価も変えねばならない。実際にコンピュータ・プログラムを製作、実行するユーザーにとって、適切なコンピュータ環境を選んでいるか、使用したコンピュータが十分に性能を発揮しているかは、きわめて重要な問題である。一方で、流れ場数値シミュレーションは大規模な数値計算を必要とする代表的な事例であり、その主要部分である大規模配列の反復演算は、コンピュータの得意とする処理の一つであることもあって、実用的な流れ場シミュレーションプログラムにおいても最大演算性能に比較的近い効率での実行が可能である。よって、流れ場シミュレーションは汎用コンピュータの実数演算性能を評価するのに適した課題の一つと考えられる。
 ここでは、流れ場数値シミュレーション研究において実際に利用しているコンピュータ・プログラムをチューニングする目的で各種のパーソナルコンピュータ、ワークステーション、スーパーコンピュータにおいて実行テストを実施した結果を紹介する。ただし、これらの実行テストは少数の特定プログラムのみを対象に行ったもので、また、実際のプログラム実行環境(マルチユーザー、マルチジョブ環境)のままで実施したため、計測値の一般性や再現性は必ずしも保証できない。また、本報告に記載されていない機種の詳細な仕様や、運用されているソフトウェアーによっても結果が変わる恐れがあることを、あらかじめ指摘しておく。本報告のデータを利用する際には、これらの点に十分に注意されたい。
 まず、乱流の数値シミュレーション法であるラージ・エディ・シミュレーション(LES)のために開発した2種のプログラムをサンプルとして用いた5)。以下に、本計算での数値解析の概要を示す。解析法の詳細は文献6)、7)を、解析内容については文献8)を参照されたい。
 非圧縮性乱流場LESの基礎方程式は以下の通りである。


運動方程式;



圧力方程式;



 このうち、運動方程式(1)は各座標方向3成分それぞれについて与えられる。式(1)、(2)は非圧縮性流れ場の一般的な基礎式であり、乱流粘性 vt を算出する部分がLES(本計算では、Smagorinski SGSモデルを適用)特有の計算となる。LESでは式(1)および式(2)から流れ場、すなわち、速度 ui と圧力 p の時間変化を得る。ここで、式(1)に2次精度Adams-Bashforth法、式(2)に1次精度Euler法を用いて時間微分について時間刻み δt で離散化すると、

uinuin-1δt {1.5i (un-1,pn-1)−0.5i (un-2,pn-2)}     (3)

Dn+1Dnδt2pngi (un)}                 (4)

を得る。ここで、上付き添え字 n-2,n-1,n は離散化した時間ステップをあらわす。式(3)は速度成分 uin の3成分について、式(4)は連続の式の条件

Dn+1=0                                  (5)

を代入したのち圧力 pn についての代数方程式とみなして、これらを順次計算することで時間ステップ n の数値解を得る。以上の数値解法はMAC法と呼ばれ、非圧縮性流れ場シミュレーションに広く用いられている方法である。
 (3)、(4)式の右辺 i 、gi は空間微分のみを含む。本計算では、偏微分方程式の数値解析手法として一般的な有限差分法(finite deference method;FDM)と有限要素法(finite element method;FEM)を用いた2種類の計算プログラムを使用した。それぞれの計算手法を表1にまとめて示した。


表1 サンプルプログラムの解析法

プログラム名

LES_FDM

LES_FEM

離散化法

有限差分法

有限要素法

計算アルゴリズム

MAC

MAC

時間離散化スキーム

2次精度Adams-Bashforth

2次精度Adams-Bashforth

計算格子分割・

空間離散化スキーム

直交直線座標格子

2次精度中心差分

6面体双1次要素

Galarkin

圧力ポアソン式の行列解法

ICCGS

CG

LESモデル

Smagorinskiモデル

Smagorinskiモデル

 ところで、上記に示した非圧縮性流れの非定常解析において、計算時間の過半は式(4)、(5)から得られる圧力ポアソン方程式の求解に費やされる。特に、乱流LESのように格子点数の多い問題では反復解法が用いられるが、そこに現れる典型的な演算式を用いたベンチマークテストが姫野9)、白山10)よりそれぞれ提案されている。前者は古典的なヤコビ法、後者はSOR法の代入演算を模擬している。これらは、数10行程度プログラムによるポータビリティの良いテストであるため、パソコンも含む多くのシステムでの実行結果が報告されているので、今回のテストでも合わせて取り上げた。なお、白山のオリジナルコードはC言語で書かれているが、ここでは著者らの乱流LES実行環境に合わせてFortranに書きなおしたものを用いている。

3.2実行テスト結果

 まず、FDMおよびFEMを適用したLES乱流解析プログラムによるチャンネル乱流シミュレーションをサンプルとした実行テストについて示す。初期条件には前もって同じプログラムで計算した乱流場の数値解を代入し、少数回の時間ステップだけ計算を進行した(実際の解析では約10000ステップを実行する)。実行したサンプル計算を表2に、使用した計算機およびその仕様を表3に示す。ここで用いた計算機は東京大学に設置されているもので、大型計算機センター、生産技術研究所共同利用計算機室、あるいは、著者の所属する研究室にて運用されている。実行テストは、実際のプログラム実行環境を想定して、通常のマルチユーザー/マルチジョブ環境で実施した。そのため、計測値の一般性や再現性は必ずしも保証できないが、いくつかのテストから計算時間の測定誤差は数%程度と推定している。また、ここに記載していない機種の詳細な仕様や、運用されているソフトウェアーによっても結果が変わる恐れがあることを指摘しておく。なお、Fortranコンパーラーのオプションについては、メーカーの標準推奨値を用いている。コンパイラーの自動最適化による効果は小さくないこともあるので、使用機種の解説書に従うことをお勧めする。表4に各計算機による計算時間を示した。今回用いた機種のいくつかは複数のCPUで構成されており並列計算が可能であるが、実行テストはすべて単体CPUで実施した。
 各手法のプログラム上の特徴として、FDMでは各計算点の長い配列に対する計算が最内側DOループとなるが、FEMでは要素毎の節点(本プログラムでは8点)に対する計算が最内側DOループとなることが多い。ベクトル演算プロセッサーをもつ機種ではこの点が重要なチューニング対象となるが、スカラー機種においてはあまり大きな影響はないと考えられる。(本テストプログラムはベクトル演算プロセッサー向けのチューニングを行っている。この修正はベクトル演算プロセッサーを持たない計算機では不用であるが、本実行テストでは主に計算機ハードウェアーの性能を判定する目的のため全ての計算機で修正プログラムを使用している。修正を行わないプログラムではOrigin 2000(R10000 198MHz)で約60%に計算時間が短縮された。)
 同様に、ベンチマークプログラム(A:姫野、B:白山、C:加藤)の結果について表4にFLOPS値で示した。いくらかばらつきはあるものの上記LESコードの結果との相関は妥当なものと思われ、計算性能評価として実際的にも有効といえる。


表2 実行テストの計算条件

計算ケース

プログラム

計算点(節点)数

時間ステップ数

無次元時間刻

FDM-0

LES_FDM

32x64x32=65,536

10

0.01

FDM-1

30

FDM-2

100

FEM-0

LES_FEM

49,060

1

0.01

FEM-1

4

FEM-2

10

姫野Bench

ヤコビ反復

128x64x64

白山Bench

SOR

101x55x51



表3 使用した計算機とその仕様

No.

コンピュータ機種名

 

CPU

主メモリ

OS

コンパイラー

DEC Alphastation

600-5/333

DEC 21164

(333MHz)

384MB

OFS

1v3.2c

DEC Fortran

 

Visual Technology

Alpha 600

DEC 21164A

(600MHz)

256MB

Digital UNIX

4.0D

DEC Fortran

Compaq XP1000

DEC 21264

(500MHz)

512MB

Digital UNIX

4.0D

DEC Fortran

SGI O2

MIPS R5000SC

(200MHz)

192MB

IRIX

6.5

Fortran77

4.02

Fujitsu S-7000U

M350

Ultra SPARC

II(336MHz) (x8)

2GMB

 

Solaris

2.1

Fujitsu

Fortran90v1

IBM RS6000/590

IBM Power2

(66MHz)

128MB

AIX

3.2.5

Fortran

SGI Origin 2000

MIPS R10000198MHz(x8)

1GB

IRIX

6.2

MIPS Power

Fortran 7.0

SGI Origin 2000

MIPS R12000300MHz(x16)

16GB

IRIX

6.4

MIPS Power

Fortran 7.0

DELL XPS450

Pentium II

(450MHz)

512MB

UNICOS

9.0

CF90

V2.0

Visual Technology

Alpha 600

DEC 221164A

(600MHz)

256MB

Windows NT

4.0

DEC Fortran

1.1

10

Fujitsu VX

 

(2PE)

GB

UXP/V

VP-Fortran

11

Hitachi S3800/480

 

 

GB

VOS/FS

HAP Fortran90



表4 実行テスト結果

No.

Computer System

姫野

(MFlop)

白山

(MFlop)

FDM (sec)

Level-0 1 2

FEM (sec)

Level-0 1 2

DEC Alpha

   

114

385

1164

111

412

992

VT Alpha

102

73

 

235

       

XP1000

209

236

 

190

       

SGI O2

30

19

           

S-7000U

 

39

 

477

   

1127

 

IBM 590

     

1452

   

533

 

Origin(198MHz)

(no-Vec)

124

 

71

80

210

125

742

88

288

772

Origin(300MHz)

(2CPU)

(4CPU)

(8CPU)

236

389

718

1634

145

 

125

       

DELL(NT)

91

             

Alpha(NT)

 

57

           

10

Fujitsu VX

(no-vec)

760

376

 

 

405

100

1115

       

11

HitachiS3800

(no-vec)

   

26

38

105

 

238

 

789

 

* 計測はtimeコマンドなどで表示される全CPU時間(sec)による
* no-Vecは、ベクトル化修正をしないプログラムを使用


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