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 の使用をご検討ください。