NAS Parallel Benchmark

1999/11/08

NAS Parallel Benchmarks(NPB)は、NASA Ames Research Centerで開発された、並列コンピュータのためのベンチマークです。NPBは、5つのParallel Kernel Benchmarksと3つのParallel CFD(Computational Fluid Dynamics)Application Benchmarksから構成されており、並列コンピュータの実効性能を知るうえで、権威あるベンチマークの1つです。

また、NASA Ames Research Centerより定期的にWWWなどで発行されているレポート(NAS Parallel Benchmark Results)では、プログラム実行に要した経過時間(elapsed time)と、Y-MP/1またはC90/1との性能比などについて報告されています。

各問題には問題のサイズのことなる5つのクラスが定義されています.5つとはそれぞれ,A, B, C, W(orkstation), S(ample) です.その相違点は、基本的には問題サイズ(配列サイズ)や反復回数の違いにあります.今回の発表ではAおよび,Bクラスを使用しました.

 

□ベンチマークの詳細 [1]

 

NAS Parallel Benchmarks(NPB) の対象問題
Kernel
EP 乗算合同法による一様乱数、正規乱数の生成
MG 簡略化されたマルチグリッド法のカーネル
CG 正値対称な大規模疎行列の最小固有値を求めるための共役勾配法
FT FFTを用いた3次元偏微分方程式の解法
IS 大規模整数ソート
Simulated CFD Application Benchmarks
LU Synmetric SOR iterationによるCFDアプリケーション
SP Scalar ADI iterationによるCFDアプリケーション
BT 5x5 block size ADI iterationによるCFDアプリケーション

 

-Kernels

The Embarrassingly Parallel (EP) BenchmarkEP(The Embarrassingly Parallel)ベンチマークは、並列計算に適しており、指定されたスキームに従い生成された、多数のガウス分布に従う擬似乱数を用いて、2次元の統計情報を蓄積するものです。  この問題は、モンテカルロ法を用いた応用プログラムによくみられます。この問題を解く際に転送をほとんど必要としないこのから、ある意味において本ベンチマークは、システムがもつ浮動小数点演算の最大実効性能を示すものと言えます。

Multigrid (MG) BenchmarkMG(Multigrid)ベンチマークは、3次元ポアソン方程式を簡略化したマルチグリッド法で解いています。Class B では、Class A と同じ大きさの格子を使用していますが、内部のループの繰り返し数が Class A より大きくなっています。

Conjugate Gradient (CG) BenchmarkCG(Conjugate Gradient)ベンチマークは、大規模で正値対称な疎行列の、最小固有値の近似値を共役勾配法を用いて解いています。このカーネルは非構造格子を用いたアプリケーションでよく見られます。

3-D FFT PDE (FT) Benchmark FT(3-D FFT PDE)ベンチマークは、3次元偏微分方程式をFFTを用いて解いています。このカーネルはスペクトル法を使用したアプリケーションの典型的なところを評価しています。このベンチマークは、ライブラリルーチンの使用が認められている点で、やや趣を異にしています。

Integer Sort (IS) BenchmarkIS(Integer Sort)ベンチマークは、パーティクル法を使用したアプリケーションにおいて重要なソートを評価するものです。このタイプのアプリケーションは、物理における、パーティクルをあるセルに割り当てて、パーティクルがセルから流れ出るかどうかを見る、particle-in-cell法のアプリケーションに似ています。ソートは、パーティクルを再び適切なセルに割り当てる際に使用されます。

-Simulated CFD Application Benchmarks

LU Simulated CFD Application (LU) BenchmarkLUベンチマークは、LU分解を実際には行わず、5x5のブロックをもつ上下三角行列システムをSSOR(Symmetric Successive Over-Relaxation)法で解いています。このコードはNASA Ames Research CenterのINS3D-LUに見られるような新しいクラスの陰解法を代表するものです。

SP Simulated CFD Application (SP) BenchmarkSP(Scalar Pentadiagonal)ベンチマークは、非優位対角なスカラ5重対角方程式を解くものです。 BT Simulated CFD Application (BT) Benchmark :BT(Block Tridiagonal)ベンチマークは、非優位対角な5x5のブロックサイズをもつブロック3重対角方程式を解くものです。

BT Simulated CFD Application (BT) BenchmarkBT(Block Tridiagonal)ベンチマークは、非優位対角な5x5のブロックサイズをもつブロック3重対角方程式を解くものです。

□インストールと実行


NPBのサイトから,プログラムノーソースをダウンロードし,展開します.

$ tar -xvzf NPB-2.3.tar.gz

すると,NPB2.3というディレクトリが生成されます.

(1)設定ファイルの変更

makeする前に,各環境に応じて設定ファイルを変更する必要があります. NPB2.3/config/ に make.def.template というファイルがあるので,これをコピーし make.def とし,CC や F77 のパスを正しく設定します. ※PCクラスタでの設定例(Debian GNU Linux 2.2.12)

(2)make

make.def を正しく記述したら,NPB2.3 ディレクトリで次のように make します.NPBでは,さまざまな種類のベンチマークが可能です.また,それぞれについて,実行するプロセス数,問題のクラスを指定することができます.それらはすべて別々の実行ファイルになるため,make の際に対象問題・プロセス数・クラスを指定しなくてはなりません. SクラスのLUベンチマークを2プロセスで実行したい場合には,以下のように make します.

$ make LU NPROCS=2 CLASS=S

make に成功すると,NPB2.3/bin/ に lu.S.2 という実行ファイルが生成されます.うまく make できない場合には make.def の設定が誤っていないか再確認してみてください.

(3)実行

NPBはMPIを利用していますので,実行の際も mpirun で実行しなければなりません.先ほどの lu.s.2 を実行するためには,NPB2.3/bin/ で,次のようにタイプします.

$ mpirun -mp2 lu.S.2

 

※インストールに関するドキュメントは NPB2.3/Doc/README.install です.うまくインストールできない場合にはこれを参照してください.


□makeの際の注意点

(1)対象問題とプロセス数の関係

NPBには上記の8種類の対象問題が定義されていますが,問題の性質により実行可能なプロセス数に制限があります.

ct, ft, mg, lu, is のプロセス数は2の乗数(2^*: 1, 2, 4, 8・・・ )
sp, bt のプロセス数はnの2乗(n^*: 1, 4, 9, ・・・)

でなくてはなりません.

(2)複数の実行ファイルを一度にmakeする

NPBでは,設定ごとに実行ファイルが生成されるため,通常は何度もmakeの作業を繰り返さなければなりません.そこで,一度に複数のファイルをmakeするためのオプションが用意されています.
config/suite.def.templete をコピーし,config/suite.def とし,make したい設定を以下のように記述します.

# This is a sample suite file to build several executables
sp      A    16
sp      A    25
sp      A    36
ft      B    1
ft      B    2
ft      B    4

このような,suiteファイルを用意して,

$ make suite

とすると,suite.defで指定した設定の実行ファイルを一度にmakeする事ができます.



参考資料

[1] NAS Parallel BenchmarkのSX-4性能 http://www.hpc.comp.nec.co.jp/perform/npb.html

 


戻る

超並列計算研究会のトップページへ



文責:

同志社大学工学部知識工学科 知的システムデザイン研究室 
吉田 純一(junichi@mikilab.doshisha.ac.jp)