2004年1月
日本電気株式会社
はじめに
MathKeisanは、NECのハイパフォーマンス・コンピュータのために高度に最適化された数学ライブラリ集です。この製品は、NECのベクトルコンピュータ
SX-6上で稼動します。SX-5で稼動するバージョン、およびNEC Express5800/1000シリーズ(Itanium(R)
プロセッサファミリサーバ)のLinux OS上で稼動するバージョンについては、www.mathkeisan.comをご参照下さい。特に記述がない限り、このリリースメモはSX版MathKeisanに関するものです。
MathKeisan に含まれるライブラリを表1に示します。
表1:
MathKeisan に含まれるライブラリ
| ライブラリ名 | 機能概要 |
| BLAS | ベクトル、行列の基本演算 |
| LAPACK | 高性能コンピュータ用連立一次方程式、固有値解析 |
| ScaLAPACK | 連立一次方程式、固有値解析 (MPIによる並列版, PBLASを含む) |
| BLACS | ベクトル、行列の基本演算のためのメッセージパッシングライブラリ |
| PARBLAS | 共有メモリ用、並列版BLAS |
| CBLAS | BLAS Cインタフェース |
| SBLAS | スパースBLAS |
| FFT | HP VECLIBインタフェース FFT, SGI/CRAY LIBSCI 3.1インタフェース FFT |
| PARFFT | HP VECLIBインタフェース FFT, SGI/CRAY LIBSCI 3.1インタフェース 並列版FFT |
| METIS | 行列、グラフの並べ変え、分割ライブラリ |
| ParMETIS | 行列、グラフの並べ変え、分割の並列版ライブラリ |
| SOLVER | 対称疎行列線形問題のソルバ |
| ARPACK | 大規模固有値解析 |
動作可能OS
MathKeisan 1.5.0が稼動する機種やSUPER-UXのリビジョンのリストについては、www.mathkeisan.comのCompatibilityのリンクをご参照下さい
MathKeisanのライブラリ作成には、以下のコンパイラを使用しています。
| Fortran | f90 for SX, Rev.267 |
| C | C++/SX, Rev.061 |
| MPI | MPI/SX r121 |
MathKeisan 1.4.0からの強化概要は以下の通りです。
- R-C. C-R 1D, および1次元、2次元、3次元のFFTの性能向上。
- 表2に記載のFFTサブルーチンの作業用配列のサイズが大きくなりました。これにより、複数個の異なるFFTサイズに対し、trigonometric 及びfactorizationの初期化を事前に行うことが可能になります。各サブルーチンの作業用配列のサイズはmanページで確認して下さい。
表2: FFTサブルーチン
|
scfft2d |
dzfft2d |
|
scfft3d |
dzfft3d |
|
scfft |
dzfft |
|
scfftm |
dzfftm |
|
c1dfft |
z1dfft |
|
ccfft2d |
zzfft2d |
|
ccfft3d |
zzfft3d |
|
ccfft |
zzfft |
|
ccfftm |
zzfftm |
|
cfft2d |
zfft2d |
|
cfft2 |
zfft2 |
|
cfft3d |
zfft3d |
|
cfft |
zfft |
|
crc1ft |
zrc1ft |
|
src1ft |
drc1ft |
|
s1dfft |
d1dfft |
|
src1ft |
drc1f |
- FFTのサブルーチンzzfft3d and ccfft3dの性能向上
- BLASのサブルーチン[sd]gemm, [cz]her2の性能向上
- PARBLASのサブルーチン[sd]gemvの性能向上
- LAPACKのサブルーチン[sd]laebzの性能向上
- インライン展開に適したBLASやLAPACKのリファレンスソースコードの追加
- 新インストールスクリプト
リンク方法
f90 -dwオプション(既定値)を使用してリンクする場合には、表2のように指定します。それぞれに示された順番にリンクするか、またはリンク時に -h lib_cyclicオプションを指定する必要があります。$(LIBDIR)については、表4をご参照下さい。ただし、表4中の$(LIBDIR)はMathKeisanを規定値のディレクトリにインストールした場合のものです。ライブラリが規定値のディレクトリにない場合は、マシン管理者にご確認下さい。
表2: -dw指定時の各ライブラリのリンク方法
|
|
|
| BLAS | -L$(LIBDIR) -lblas |
| LAPACK | -L$(LIBDIR) -llapack -lblas |
| ScaLAPACK | -L$(LIBDIR) -lscalapack -lblacsF90init -lblacs -lblacsF90init -lblas -lmpi |
| BLACS | -L$(LIBDIR) -lblacsF90init -lblacs -lblacsF90init -lmpi |
| PARBLAS | -L$(LIBDIR) -lparblas -Popenmp |
| CBLAS | -L$(LIBDIR) -lcblas -lblas |
| SBLAS | -L$(LIBDIR) -lsblas |
| FFT | -L$(LIBDIR) -lfft |
| PARFFT | -L$(LIBDIR) -lparfft -Popenmp |
| METIS | -L$(LIBDIR) -lmetis_32 |
| -L$(LIBDIR) -lmetis | |
| ParMETIS | -L$(LIBDIR) -lparmetis_32 -lmpi |
| -L$(LIBDIR) -lparmetis -lmpi | |
| SOLVER | -L$(LIBDIR) -lsolver -lmetis -lblas -Popenmp |
| ARPACK | -L$(LIBDIR) -larpack -llapack -lblas |
f90 -ewオプションを使用する場合には、表3のように指定します。それぞれに示された順番にリンクするか、またはリンク時に -h lib_cyclicオプションを指定する必要があります。$(LIBDIR)については、表4をご参照下さい。
表3: -ew指定時の各ライブラリのリンク方法
|
|
|
| BLAS | -L$(LIBDIR) -lblas_64 |
| LAPACK | -L$(LIBDIR) -llapack_64 -lblas_64 |
| ScaLAPACK | (*) NA |
| BLACS | (*) NA |
| PARBLAS | -L$(LIBDIR) -lparblas_64 -Popenmp |
| CBLAS | (*) NA |
| SBLAS | -L$(LIBDIR) -lsblas_64 |
| FFT | -L$(LIBDIR) -lfft_64 |
| PARFFT | -L$(LIBDIR) -lparfft_64 -Popenmp |
| METIS | -L$(LIBDIR) -lmetis_64 |
| ParMETIS | -L$(LIBDIR) -lparmetis_64 -lmpiw |
| SOLVER | -L$(LIBDIR) -lsolver_64 -lmetis_64 -lblas_64 -Popenmp |
| ARPACK | -L$(LIBDIR) -larpack_64 -llapack_64 -lblas_64 |
(*) NA: サポートしていません。
表4:$(LIBDIR)の規定値
| machine | コンパイラ | $(LIBDIR)の規定値 | |
|---|---|---|---|
| F90 | C++ | ||
| self compile | -size_t32 (規定値) | -Nover2g (規定値) | $(LIBDIR) = /usr/lib |
| -size_t64 | -over2g | $(LIBDIR) = /usr/lib/lib64 | |
| cross compile | -size_t32 (規定値) | -Nover2g (規定値) | $(LIBDIR) = /SX/usr/lib |
| -size_t64 | -over2g | $(LIBDIR) = /SX/usr/lib/lib64 | |
データタイプ
MathKeisan ライブラリの各データタイプに対応するライブラリファイル名を表5、表6に示します。
表5: MathKeisan のライブラリ名
| ライブラリ名 |
|
|
| BLAS | libblas.a | libblas_64.a |
| LAPACK | liblapack.a | liblapack_64.a |
| ScaLAPACK | libscalapack.a | (*) NA |
| BLACS | libblacs.a | (*) NA |
| PARBLAS | libparblas.a | libparblas_64.a |
| CBLAS | libcblas.a | (*) NA |
| SBLAS | libsblas.a | libsblas_64.a |
| FFT | libfft.a | libfft_64.a |
| PARFFT | libparfft.a | libparfft_64.a |
| ARPACK | libarpack.a | libarpack_64.a |
表 6: MathKeisan のライブラリ名
| ライブラリ名 |
|
|
|
| METIS | libmetis_32.a | libmetis.a | libmetis_64.a |
| ParMETIS | libparmetis_32.a | libparmetis.a | libparmetis_64.a |
| SOLVER | (*) NA | libsolver.a | libsolver_64.a |
(*) NA: サポートしていません。
表5のI32R32+I32R64欄のライブラリは、integerが32ビットのデータタイプのライブラリです(Fortran integer*4)。 floating pointのデータタイプはサブルーチン名、関数名の一文字目で決まります。
- s - 32 bit real data type (Fortran real*4)
- d - 64 bit real data type (Fortran real*8)
- c - 32 bit complex data type (Fortran complex*8)
- z - 64 bit complex data type (Fortran complex*16)
I64R64+I64R64欄のライブラリは、integer 64ビット、floating point 64ビットのデータタイプのライブラリです。これらのサブルーチン名やファンクション名も、s、d、c、zで始まっていますが、全て64ビットデータタイプです。f90 -ew オプションでコンパイルすると、これらのライブラリがリンクされます。
表6のI32R32欄はinteger 32ビット、floating point 32ビットデータタイプのライブラリです。
I32R64欄はinteger 32ビット、floating point 64ビットデータタイプのライブラリです。
I64R64欄はinteger 64ビット、floating point 64ビットデータタイプのライブラリです。
Man pages
MathKeisanにはman pageが含まれています。それぞれのライブラリにそれぞれのman pageがあり、BLAS, LAPACK, ScaLAPACK, FFT, SOLVER,SBLAS,ARPACKのライブラリについては、それぞれのサブルーチンごとにman pageがあります。
例えば、BLASのman pageを見る場合には、以下のように入力します。
MathKeisan には次の3つのファイルが含まれています。
- tar file
- install.sh script
- README
MathKeisanをインストールするためには、インストール用のスクリプトinstall.shを使用します。このinstall.shスクリプトで実行されるステップは次の通りです。
- MathKeisanをインストールするディレクトリを指定します。
SUPER/UX機は$INSTALLD=/usr/opt/mathkeisan/.
クロスコンパイラ機は$INSTALLD=/SX/opt/mathkeisan
- installディレクトリにあるtarファイルを抽出 します。MathKeisanの全サブルーチンは$INSTALLD/MK1_5_0のデレクトリィに格納されています。
- もしwrite権利を所有されている場合、表8および表9のシンボリックリンクが生成されます。上書きされたファイルはバックアップされます。
- アンインストール用のスクリプトおよびインストールlogを生成します。
表8: SUPER/UX上のシンボリックリンク
|
inst link |
$INSTALLD/inst |
-> |
$INSTALLD/MK1_5_0 |
|
lib links |
/usr/lib0/libblas.a |
-> |
$INSTALLD/inst/lib0/libblas.a |
|
|
/usr/lib0/liblapack.a |
-> |
$INSTALLD/inst/lib0/liblapack.a |
|
|
: |
|
: |
|
|
/usr/lib0/lib64/libblas.a |
-> |
$INSTALLD/inst/lib0/lib64/libblas.a |
|
|
/usr/lib0/lib64/liblapack.a |
-> |
$INSTALLD/inst/lib0/lib64/liblapack.a |
|
|
: |
|
: |
|
include link |
/usr/include/cblas.h |
-> |
$INSTALLD/inst/include/cblas.h |
|
man page link |
/usr/share/man/C/mathkeisan |
-> |
$INSTALLD/inst/man/C |
表9: クロスコンパイラ機上のシンボリックリンク
|
inst link |
$INSTALLD/inst |
-> |
$INSTALLD/MK1_5_0 |
|
lib links |
/SX/usr/lib0/libblas.a |
-> |
$INSTALLD/inst/lib0/libblas.a |
|
|
/SX/usr/lib0/liblapack.a |
-> |
$INSTALLD/inst/lib0/liblapack.a |
|
|
: |
|
: |
|
|
/SX/usr/lib0/lib64/libblas.a |
-> |
$INSTALLD/inst/lib0/lib64/libblas.a |
|
|
/SX/usr/lib0/lib64/liblapack.a |
-> |
$INSTALLD/inst/lib0/lib64/liblapack.a |
|
|
: |
|
: |
|
include link |
/SX/usr/include/cblas.h |
-> |
$INSTALLD/inst/include/cblas.h |
|
man page link |
SUPER-UX以外の機種にはman pageのリンクはありません。man pageへアクセスするための環境変数$MANPATHの設定方法の説明が用意されています。 | ||
下記はSUPER-UX機上でのinstall.sh実行結果です。各質問に対し”enter”キーを押せば、既定値が選択されます。
____________________________________________________________
Do you want to install MathKeisan MK1_5_0
(default y: y,n ? )
____________________________________________________________
This install script will do the following:
1. Prompt for a directory in which to install MathKeisan
2. Install all of MathKeisan in this directory by untaring the
file MK1_5_0.tar
3. Set up symbolic links for inst, libraries, include files,
and man pages if you have the write permission on the
required directories
< Press RETURN to continue >
____________________________________________________________
Where should this package <mk1_5_0> be installed ?
(default: /usr/opt/mathkeisan )
____________________________________________________________
Please only continue if you have the required space
198174720 bytes in directory /usr/opt/mathkeisan
Do you want to continue
(default y: y,n ? )
Please wait while MK1_5_0.tar is untared
Tar: blocksize = 20
____________________________________________________________
do you want to create link
inst->MK1_5_0 in directory /usr/opt/mathkeisan
(default y: y,n ? )
____________________________________________________________
do you want to create MAN page link
/usr/share/man/C/mathkeisan->/usr/opt/mathkeisan/inst/man/C
(default y: y,n ? )
____________________________________________________________
do you want to create include file link
/usr/include/cblas.h->/usr/opt/mathkeisan/inst/include/cblas.h
(default y: y,n ? )
____________________________________________________________
do you want to create symbolic links like
/usr/lib0/libblas.a->/usr/opt/mathkeisan/inst/lib0/libblas.a
/usr/lib0/lib64/libblas.a->/usr/opt/mathkeisan/inst/lib0/lib64/libblas.a
for MathKeisan libraries in directories
/usr/opt/mathkeisan/inst/lib0
/usr/opt/mathkeisan/inst/lib0/lib64
(default y: y,n ? )
#--------------------------------------#
| Install is complete |
#--------------------------------------#
1. A log file for this install is in
/usr/opt/mathkeisan/MK1_5_0/doc/install.log
please e-mail a copy of this file to technical@atcc.necsyl.com.
It will be used to debug any future problems.
2. An uninstall script is in
/usr/opt/mathkeisan/MK1_5_0/uninstall/uninstall.sh
Do not run this script unless you want to uninstall MathKeisan製品概要
MathKeisan のそれぞれのライブラリの製品説明を以下に示します。
BLAS
BLASは、ベクトルと行列の基本演算を行うFORTRANサブルーチン群です。ベクトル−ベクトル演算(レベル1)、行列−ベクトル演算(レベル2)、行列−行列演算(レベル3)を行う3種のルーチン群から構成されています。
このMathKeisanに含まれているBLAS(以下、NEC版BLASと呼ぶ)は、Dr. J.J.Dongarra(Argonne National Laboratory), Dr. Du Croz(Numerical Algorithms Group Ltd.), I. S. Duff (AERE Harwell), S. Hammarling (Numerical Algorithms Group Ltd.), R. J. Hanson (Sandia National Labs) によって開発されたオリジナルのBLASをベースにしています。特に使用頻度の高いルーチン群については、アセンブラ言語での書き換えを行い、非常に高い性能を実現しています。
PARBLAS
PARBLASは共有メモリ用の並列版BLASで、レベル2、レベル3のサブルーチン群です。 これらのサブルーチンは、シリアル版BLASと同じインターフェースです。並列実行されるスレッドの数は、環境変数OMP_NUM_THREADSによって設定されます。nをスレッド数とした場合、Cシェル及びBシェルでは以下のように設定します。(スレッド数設定の詳細については「FORTRAN90/SX並列処理機能利用の手引き」をご参照下さい。)
Cシェルの場合'setenv OMP_NUM_THREADS n' Bシェルの場合'export OMP_NUM_THREADS; OMP_NUM_THREADS=n'このMathKeisanに含まれている並列版BLAS(以下、NEC版並列BLASと呼ぶ)は、Dr. J.J. Dongarra (Argonne National Laboratory), Dr. Du Croz (Numerical Algorithms Group Ltd.), I. S. Duff (AERE Harwell), S. Hammarling (Numerical Algorithms Group Ltd.), R. J. Hanson (Sandia National Labs) によって開発されたオリジナルのBLASをベースにしています。
CBLAS
CBLASは、FORTRAN BLASへのC 言語インタフェースです。BLASはベクトル−ベクトル演算(レベル1)、行列−ベクトル演算(レベル2)、行列−行列演算(レベル3)を行うサブルーチン群です。
CBLASは、K. Teranishi(University of Tennessee)がBLAS Technical Forumのリファレンス版として開発し、J. Horner(University of Tennessee)が改版、詳細についてR.Whaley(University of Tennessee)が作成したものをベースにしています。
SBLAS
SBLASは、Sparse BLASの演算を行うサブルーチン群です。Sparse BLASはD.S.Dodson(Convex), R.G.Grimes, J.G.Lewis(Boeing)によって開発されたACM Algorithm 692をベースにしています。
LAPACK
LAPACKは、各種の連立一次方程式や行列の固有値と固有ベクトルを計算するFORTRANサブルーチン群です。機能的にはLINPACK及びEISPACKの機能を包含する数値計算パッケージです。この2つのパッケージに対して、計算アルゴリズムがいくつか改良されており、より高精度な計算が可能となっています。LAPACKでは、可能な限りBLAS(通常レベル2とレベル3)をcallします。
MathKeisanに含まれているLAPACK(以下、NEC版LAPACKと呼ぶ) は、E. Anderson (University of Tennessee, Knoxville), Z. Bai (University of Kentucky and University of California, Davis), C. Bischof (Institute for Scientific Computing, Technical University Aachen, Germany), S. Blackford (University of Tennessee, Knoxville), J. Demmel (University of California, Berkeley), J. Dongarra (University of Tennessee, Knoxville, and Oak Ridge National Lab.), J. Du Croz (Numerical Algorithms Group Ltd.), A. Greenbaum (University of Washington), S. Hammarling (Numerical Algorithms Group Ltd.), A. McKenney, D. Sorensen (Rice University) などで構成されたLAPACKプロジェクトチームによって開発された、オリジナルのLAPACK version 3.0をベースにしています。
BLACS
BLACS (Basic Linear Algebra Communication Subprograms)は、線形代数のために開発されたメッセージパッシングライブラリです。計算モデルは1次元、あるいは2次元のプロセスグリッドを想定しており、各プロセスは行列とベクトルの一部を保持します。BLACSは、1つのプロセスから他のプロセスへ、行列や部分行列の通信をするための同期送信および受信、部分行列のブロードキャスト、あるいはグローバルデータのリダクション操作(和、最大値、最小値)を含んでいます。また、プロセスグリッドの生成、変更、問い合わせを行うルーチンも提供しています。 ScaLAPACKのアルゴリズムには、プロセスグループの、異なるサブセット内でのブロードキャスト、あるいはリダクションを要求するものがあるため、BLACSでは、1つのプロセスがいくつかの重複した、あるいは排反するプロセスグループに属することを許しています。各プロセスは、コンテキストによりラベル付けされています。 これは、MPIではコミニュケータと呼ばれています。BLACSは、システムコンテキストと、BLACSのコンテキストが混同しないような仕組みになっています。
このMathKeisanに含まれているBLACS(以下、NEC版BLACSと呼ぶ)は J.J. Dongarra, and R.C. Whaley (University of Tennessee, Knoxville) によって開発されたオリジナルのBLACS version 1.1 (mpiblacs-patch03)をベースとしています。
ScaLAPACK
ScaLAPACKは、PVMやMPIをサポートしている分散メモリ型のMIMDコンピュータや、ワークステーションクラスタ向けに開発された、各種連立一次方程式を計算する高性能なルーチン群です。 ScaLAPACKは、線形方程式、線形最小二乗問題、固有値問題、特異値問題を解くことができます。また、行列の分解や条件数の計算もすることが出来ます。密行列や帯行列に対するルーチン群は提供されていますが、疎行列に対しては提供されていません。同様な機能が実行列、複素行列に対して提供されています。ScaLAPACKという名前は、Scalable Linear Algebla PACKage、または、Scalable LAPACKの頭文字をとって付けられたものです。
LAPACKと同様に、ScaLAPACKでは、メモリ階層間のデータの移動頻度を最小限にするためブロックアルゴリズムを採用しています。ScaLAPACKは、PBLASと呼ばれる分散メモリ版のレベル1、2、3 BLASを基礎としています。更に、PBLASはシングルノード上の計算にはBLASを、各ノード間の通信にはBasic Linear Algebra Communication Subprograms (BLACS)を採用し、その上に構築されています。
このMathKeisanに含まれているScaLAPACK(以下、NEC版ScaLAPACK)は、L. S. Blackford (University of Tennessee, Knoxville), J. Choi (Soongsil University, Korea), A. Cleary (Lawrence Livermore National Laboratory), E. D'Azevedo (Oak Ridge National Laboratory), J. Demmel (University of California, Berkeley), I. Dhillon (University of California, Berkeley), J. Dongarra (University of Tennessee, Knoxville, and Oak Ridge National Lab.), S. Hammarling (Numerical Algorithms Group Ltd.), G. Henry (Intel Corporation), A. Petitet (University of Tennessee, Knoxville), K. Stanley (University of California, Berkeley), D. Walker (University of Wales, Cardiff), R. C. Whaley (University of Tennessee, Knoxville) によって開発された、オリジナルのversion 1.7 + errataをベースにしています。
FFT
このMathKeisanに含まれているFFTは、HPのVECLIBライブラリや、CRAYのLIBSC 3.1とインタフェース、機能が同じです。MathKeisan には、1次元、2次元、3次元のComplex-Complex FFT、Real-Complex FFT、Complex-Real FFTがあります。
このFFTライブラリは、NECで開発されたものです。
PARFFT
PARFFTは、上記FFTと同様の機能を持つOpenMP並列版のFFTです。並列実行されるスレッドの数は、環境変数OMP_NUM_THREADSによって設定されます。nをスレッド数とした場合、Cシェル及びBシェルでは以下のように設定します。(スレッド数設定の詳細については「FORTRAN90/SX並列処理機能利用の手引き」をご参照下さい。)
Cシェルの場合'setenv OMP_NUM_THREADS
n'
Bシェルの場合'export OMP_NUM_THREADS;
OMP_NUM_THREADS=n'
ARPACK
ARPACKは、大規模固有値問題のために開発されたFORTRANサブルーチン群です。 ARPACKは、ARnoldi PACKage から名付けられています。ARPACKは大規模対称(Hermitian)行列、非対称(non-Hermitian)行列、一般行列、重要な応用分野の一般的な固有値問題などを解くことができます。
ARPACKは、多くのLAPACKとBLASのサブルーチンに依存しています。ARPACKの性能は、行列のサイズが大きくなるに従い、レベル2 BLASのGEMVの性能に限りなく近づいていきます。
このMathKeisanに含まれているARPACK(以下、NEC版ARPACK)は、Rich Lehoucq, Kristi Maschhoff, Danny Sorensen and Chao Yang (Rice University) によって開発されたオリジナルをベースとしています。
METIS
METISは行列やグラフを分割したりオーダリングしたりするためのライブラリです。 METISは、上記SOLVERにおいて、行列分解処理でのfill-inを少なくするために行列のオーダリングのために使用されています。
オリジナルのMETISは、George Karypis、Vipin KumarによってUniversity of Minnesota とArmy HPC research centerで開発されたものです。
----------------------------------------------------------------
"This software package includes/uses
METIS, developed by George
Karypis and Vipin
Kumar at the University of Minnesota.
Additional information
about METIS can be found at
http://www.cs.umn.edu/‾karypis/metis
METIS is Copyright 1997 Regents
of the University of Minnesota.
Twin Cities. All
Rights Reserved.
----------------------------------------------------------------
ParMETIS
ParMETISは、グラフ分割や疎行列のオーダリングのための様々なアルゴリズムを持つMPIベースの並列ライブラリです。MathKeisanに含まれるParMETISは、George Karypis、Vipin Kumarによって、University of Minnesota、Army HPC research center で開発されたversion 2.0をベースとしています。
SOLVER
SOLVERは、対称疎行列の線形問題を解くサブルーチン群です。SOLVERは、left-lookingアルゴリズムを使用して、疎行列AをLDLTに分解します。ここで、Lは、対角の値が1の下三角行列で、Dが対角行列です。行列のSupernode構の利点を生かしています。現バージョンでは行列の並べ変えにはMETISライブラリを用いています。また、行列分解処理では、シリアル版と並列版の2つが用意されています。並列実行されるスレッドの数は、環境変数OMP_NUM_THREADSによって設定されます。nをスレッド数とした場合、Cシェル及びBシェルでは以下のように設定します。 (スレッド数設定の詳細については「FORTRAN90/SX並列処理機能利用の手引き」をご参照下さい。)
Cシェルの場合'setenv OMP_NUM_THREADS
n'
Bシェルの場合'export OMP_NUM_THREADS;
OMP_NUM_THREADS=n'
SOLVERは、NECで開発されたものです。
その他のサブルーチン
mkversionは、MathKeisanのバージョン情報を出力するサブルーチンで、libblas.aとibblas64.aに含まれています。Fortranからは"call mkversion()"、Cからは"mkversion_()"で呼び出します。どちらの場合も、libblas.aをリンクして下さい。詳細はmkversionのman pageをご参照下さい。
< mkversion 出力結果(MathKeisan 1.5.0の場合)
BLAS - legacy blas
LAPACK - version 3.0 + UPDATES
ScaLAPACK - version 1.7 + errata
BLACS - version 1.1 + patch 03
METIS - version 4.0
PARMETIS - version 2.0Contact
MathKeisanに対するご意見、ご質問は、MathKeisan開発者向けに、下記アドレスにemailをお送りください。
