HOME > システム > SR11000 > システムに関する情報 > BLAS・LAPACKの利用について

BLAS・LAPACKの利用について

 BLAS(Basic Linear Algebra Subprogam)はベクトル、行列に関する基本演算ライブラリー、LAPACK(Linear Algebra PACKage)は連立一次方程式、固有値、固有ベクトルなどの線形計算ライブラリーです。スーパーコンピューターSR11000上のプログラムライブラリーとして2005年8月1日より公開しました。
 なお、これらのライブラリーの機能の詳細は以下のURLをご覧ください。


http://www.netlib.org/blas/
http://www.netlib.org/lapack/


 ライブラリー本体は /usr/local/lib/ にあります。


libblas.a    要素並列版BLASライブラリー
libblas_sc.a  スカラー版BLASライブラリー
liblapack.a   要素並列版LAPACKライブラリー
liblapack_sc.a スカラー版LAPACKライブラリー


 これらのライブラリーを利用する場合には、コンパイル時にオプションとして以下のように指定してください。 要素並列版は -parallelオプション(-Os、-Ossを指定している場合は省略可)を同時に指定してください。スカラー版では -noparallelオプション(-O0、-O、-O3、-O4オプションを指定している場合は省略可)を同時に指定してください。

  • BLASを利用する場合
    (要素並列版) -lblas
    (スカラー版) -lblas_sc
  • LAPACKを利用する場合
    (要素並列版) -llapack -lblas
    (スカラー版) -llapack_sc -lblas_sc

※LAPACKライブラリーの一部のルーチンがBLASライブラリーを使用しますので、上記のようにBLASライブラリーの指定も必要になります。

ライブラリー利用時の注意事項

 本ライブラリーは、最小限のチューニングしか行われておりません。また、演算結果の精度についても十分でない場合がありますので、ご利用の際にはご注意ください。
 また、BLASライブラリーを利用することが必ずしも計算時間の短縮に繋がるとは限りません。例えば、BLASレベル1に含まれるベクトルのユークリッドノルム||x||2(L2ノルム)を求める関数xNRM2は、精度が高くなるような計算を行う代わりに計算時間は大きくなります。高い精度よりも高速化を必要とする場合には、自分でユークリッドノルムを計算するルーチンを作成した方がよいということになります。

フリーソフトウェアATLASについて

 SR11000上にフリーソフトウェアのATLAS(Automatically Tuned Linear Algebra Software)を公開しております。これは、BLASライブラリーおよびLAPACKライブラリーとして利用できますが、キャッシュを効率的に利用するなど高速化が図られています。詳細につきましては、下記のURLをご覧ください。なお、インストールされているバージョンは3.6.0です。


http://math-atlas.sourceforge.net/

ATLASのインストール先

/usr/local/unsupported/atlas/include/ C言語用ヘッダファイル
/usr/local/unsupported/atlas/lib/ ライブラリー本体


 32bitスカラー版のみの提供となっており、64bit版及び要素並列版はありません。また、C言語用のBLASインターフェースであるCBLASを利用する場合には、プログラム中で下記のようにcblas.hファイルをインクルードしてください。


#include "/usr/local/unsupported/atlas/include/cblas.h"


 本ライブラリーを利用する場合には、コンパイル時にオプションとして以下のように指定してください。

Fortranでの利用の仕方

 (BLASのみを利用)
 -L/usr/local/unsupported/atlas/lib -lf77blas -latlas
 (LAPACKを利用)
 -L/usr/local/unsupported/atlas/lib -llapack -lcblas -lf77blas -latlas

C言語での利用の仕方

 (CBLASのみを利用)
 -L/usr/local/unsupported/atlas/lib -lcblas -latlas
 (LAPACKを利用)
 -L/usr/local/unsupported/atlas/lib -llapack -lcblas -lf77blas -latlas


 本ライブラリーの利用に関しての保証・サポートは行っておりません。使用方法、性能、障害等に関する質問等については一切回答できませんので、予めご了承ください。また、予告なくバージョンアップや不具合修正などの更新を行うことがあります。最新の情報に関しては、必ずセンターのホームページにてご確認ください。