HOME > システム > SR11000 > システムに関する情報 > ScaLAPACKの利用について
ScaLAPACK の利用について
並列版の行列計算ライブラリー ScaLAPACK(Scalable Linear Algebra PACKage) を,スーパーコンピューターSR11000上のプログラムライブラリーとして2005年12月6日より公開しました。
※ライブラリーの機能の詳細は以下のURLをご覧ください。
http://www.netlib.org/scalapack/
※BLAS、LAPACKについては「BLAS・LAPACKの利用について」をご覧ください。
ライブラリー本体は /usr/local/lib/ にあります。
libscalapack.a 要素並列版ScaLAPACKライブラリー
libscalapack_sc.a スカラー版ScaLAPACKライブラリー
libblacsBASE.a 要素並列版BLACS Baseライブラリー
libblacsBASE_sc.a スカラー版BLACS Baseライブラリー
libblacsF77.a 要素並列版BLACS Fortranライブラリー
libblacsF77_sc.a スカラー版BLACS Fortranライブラリー
libblacsC.a 要素並列版BLACS Cライブラリー
libblacsC_sc.a スカラー版BLACS Cライブラリー
※要素並列版はノード間をMPIで通信します。
※スカラー版はノード内及びノード間をMPIで通信します。
プログラムのコンパイル及びライブラリーとのリンク方法
これらのライブラリーを利用する場合には、コンパイル時にオプションとして以下のように指定してください。sample.f、sample.cはそれぞれFORTRAN版、C版のプログラムとします。
ライブラリーの関数名が英小文字のため、FORTRANで使用する場合は -i、Lオプションが必要です。要素並列版は -parallelオプション(-Os、-Ossを指定している場合は省略可)を同時に指定してください。スカラー版では -noparallelオプション(-O0、-O、-O3、-O4オプションを指定している場合は省略可)を同時に指定してください。
FORTRANの場合
要素並列版
% mpif77 -Oss -parallel -i,L sample.f -L/usr/local/lib -lscalapack -lblacsF77 -lblacsBASE -lblas
スカラー版
% mpif77 -Oss -noparallel -i,L sample.f -L/usr/local/lib -lscalapack_sc -lblacsF77_sc -lblacsBASE_sc -lblas_sc
※mpif90を使用する場合も、同様にオプションを指定してください。
※ScaLAPACKライブラリーの一部のルーチンがBLASライブラリーを使用しますので、上記のようにBLASライブラリーの指定も必要になります。
Cの場合
要素並列版
% mpicc -Os -parallel +Op -c sample.c
% mpif77 -parallel sample.o -L/usr/local/lib -lscalapack -lblacsC -lblacsBASE -lblas
スカラー版
% mpicc -Os -noparallel +Op -c sample.c
% mpif77 -noparallel sample.o -L/usr/local/lib -lscalapack_sc -lblacsC_sc -lblacsBASE_sc -lblas_sc
※C版のプログラムの場合でも、Fortranランタイムライブラリーを必要としますので、上記のようにmpif77(またはmpif90)でリンクしてください。
ライブラリー利用時の注意事項
本ライブラリーは、最小限のチューニングしか行われておりません。また、演算結果の精度についても十分でない場合がありますので、ご利用の際にはご注意ください。性能を求められる場合は MATRIX/MPP の使用をご検討ください。