HOME > システム > SR16000 > SR16000 利用の手引き > 第8章 数値計算ライブラリ

第8章 数値計算ライブラリ

8.1 概要

SR16000には数値計算ライブラリとしてMATRIX/MPP、MATRIX/MPP/SSS、MSL2、ESSL、Parallel ESSL、BLAS、LAPACK、ScaLAPACK、Parallel NetCDF、FFTW、SuperLU、SuperLU_DIST、STL(Standard Template Library)、Boost C++ があります。 これらのライブラリを利用するにはコンパイラのオプションとして
  • -Lライブラリ検索パス名
  • -lライブラリ名
を指定します。-lオプションはプログラムファイル名の後ろに指定します。このオプションは左から順に処理されるのでライブラリ名を指定する順序には注意して下さい。なお、センター提供の数値計算ライブラリの内、MATRIX/MPP、MATRIX/MPP/SSS、MSL2、ESSL、Parallel ESSL の検索パスは標準で設定されていますので、-L オプションは省略できます。


(注)数値計算ライブラリ(ESSL/PESSL/BLAS/LAPACK/ScaLAPACK/FFTW/SuperLU/SuperLU_DIST/STL)
   において、数学関数を呼び出している場合、-lm オプションが必要になります。
(注)Fortran プログラムを取り扱う場合には -i,L オプションが必要となる場合があります。-i,L オプションは
   C プログラムでは必要ありません(ライブラリが C 言語で作成されている場合)。
(注)C プログラムを取り扱う場合には -lf90s オプションが必要となる場合があります。-lf90s オプションは
   Fortran プログラムでは必要ありません(ライブラリが Fortran 言語で作成されている場合)。

▲ 第8章 数値計算ライブラリ TOPへ

8.2 MATRIX/MPP、MATRIX/MPP/SSS

MATRIX/MPPは基本配列演算、連立1次方程式、逆行列、固有値・固有ベクトル、高速Fourier変換、擬似乱数等に関する副プログラムライブラリです。並列処理用インターフェースを用いることにより、データを各ノードに分散して配置、並列に実行することができます。MATRIX/MPPを使用する場合にはコンパイル時にオプションとして以下のライブラリを指定します。Cプログラムから利用する場合は、-lf90s オプションも同時に指定して下さい(要素並列版は-parallelオプションも同時に指定して下さい)。


表8-2-1

(参考マニュアル)
 「行列計算副プログラムライブラリ MATRIX/MPP」(3000-3-C56)
 「行列計算副プログラムライブラリ 疎行列解法 MATRIX/MPP/SSS」(3000-3-C97)
▲ 第8章 数値計算ライブラリ TOPへ

8.3 MSL2

MSL2は行列計算(連立1次方程式、逆行列、固有値・固有ベクトル等)、関数計算(非線形方程式、常微分方程式、数値積分等)、統計計算(分布関数、回帰分析、多変量解析等)に関する副プログラムライブラリです。MSL2 を使用するためにはコンパイル時にオプションとして以下のライブラリを指定します。Cプログラムから利用する場合は、-lf90s オプションも同時に指定して下さい(要素並列版は-parallelオプションも同時に指定して下さい)。


表8-3-1

(参考マニュアル)
 「数値計算副プログラムライブラリ MSL2 操作」(3000-3-C95)
 「数値計算副プログラムライブラリ MSL2 行列計算」(3000-3-C92)
 「数値計算副プログラムライブラリ MSL2 関数計算」(3000-3-C93)
 「数値計算副プログラムライブラリ MSL2 統計計算」(3000-3-C94)
▲ 第8章 数値計算ライブラリ TOPへ

8.4 ESSL

ESSL(Engineering and Scientific Subroutine Library)は行列演算、連立1次方程式、固有値解析、Fourier変換、乱数生成等に関する数値計算ライブラリです。BLAS、LAPACK の API も有しています。また、FFTW 3.1.2 のラッパーサンプルが /usr/lpp/essl.rte.common/FFTW3 にあります。ESSLを使用する場合には、リンク時にオプションとして以下を指定します。Fortran プログラムから利用する場合は、-i,L オプションも同時に指定して下さい (要素並列版は -parallel オプションも同時に指定して下さい)。


表8-4-1
▲ 第8章 数値計算ライブラリ TOPへ

8.5 Parallel ESSL (PESSL)

PESSL は、MPIでの分散メモリ並列処理による線形代数方程式、Sparseサブルーチン、ScaLAPACK のサブセット、Fourier 変換、一様乱数生成等に関する数値計算ライブラリです。PESSL を使用する場合には、リンク時にオプションとして以下を指定します。Fortran プログラムから利用する場合は、-i,L オプションも同時に指定して下さい。


表8-5-1
▲ 第8章 数値計算ライブラリ TOPへ

8.6 BLAS・LAPACK・ScaLAPACK

SR16000 の標準BLAS、LAPACK、ScaLAPACKは本家netlibより入手できるソースをコンパイルしたものとなります。これらは日立製作所製のコンパイラでコンパイルしたプログラムと正常にリンクできることが確認されております。性能を要求する場合は、ESSL、Parallel ESSL の利用をお奨めします。
システム標準のBLAS、LAPACK、ScaLAPACKを使用する場合にはコンパイル時にオプションとして以下を指定します。Cプログラムから利用する場合は、-lf90s オプションも同時に指定して下さい(要素並列版は -parallel オプションも同時に指定して下さい)。


表8-6-1
▲ 第8章 数値計算ライブラリ TOPへ

8.7 Parallel NetCDF

SR16000 には、アプリケーションに対し共通のデータアクセス方法を提供するI/OライブラリNetCDF(Network Common Data Form) ver1.1.1 がインストール(MPI 版のみ)されています。NetCDFを使用する場合には、リンク時にオプションとして以下を指定します。MPI版のみの提供となりますので、ご注意ください。


表8-7-1
▲ 第8章 数値計算ライブラリ TOPへ

8.8 FFTW

FFTW(Fastest Fourier Transform in the West) は離散 Fourier 変換を計算するライブラリです。ver3.3 のMPI版、要素並列版、スカラー版がインストールされています。FFTWを使用する場合には、リンク時にオプションとして以下を指定します。Fortran プログラムから利用する場合は、-i,L オプションも同時に指定してください(要素並列版は -parallelオプションも同時に指定して下さい)。


表8-8-1
▲ 第8章 数値計算ライブラリ TOPへ

8.9 SuperLU、SuperLU_DIST

疎行列の直接ソルバであるSuperLUがインストールされています。ver4.2の要素並列版及びスカラー版、メッセージパッシング並列ライブラリのSuperLU_DIST (MPI版、ver2.5)を用意しています。SuperLU を使用する場合には、リンク時にオプションとして以下を指定します(要素並列版は -parallelオプションも同時に指定して下さい)。


表8-9-1
▲ 第8章 数値計算ライブラリ TOPへ

8.10 C++ ライブラリ

C++ライブラリとして、日立最適化 C++ コンパイラにて標準ライブラリの一つである STL(Standard Template Library) を使用するためにはリンク時にオプションとして以下を指定します。


表8-10-1

また、Boost C++ ライブラリがインストールされています。リンク時にオプションとして以下を指定します。本ライブラリは日立最適化C++コンパイラには対応しておりません。IBM C++ コンパイラ、GNU C++ コンパイラをご利用ください。


表8-10-2
(注)Boost Accumulators ライブラリについては IBM C++ コンパイラが対応しておりません。
   GNU C++ コンパイラをお使いください。
(注)使用する Boost ライブラリにより、-lpthread オプションが適宜必要になるケースがあります。
▲ 第8章 数値計算ライブラリ TOPへ