5.2. SSL IIライブラリ¶
SSL IIライブラリは、スレッドセーフな数値計算ライブラリであり、10分野のサブルーチンが提供されます。
スレッド並列版は、並列効果の見込める重要な機能に関して、並列処理向けのアルゴリズムおよびインタフェースで提供されています。
線形計算
固有値固有ベクトル
非線形計算
極値問題
補間、近似
変換
数値微積分
微分方程式
特殊関数
擬似乱数
5.2.1. Fortranコンパイル方法¶
FortranプログラムからSSL II を利用するには
-SSL2
、または、-SSL2BLAMP
オプションを指定します。SSL II/MPIライブラリを使用する場合は、mpifrtpxコマンドに、
-SSL2MPI
オプションを指定し、同時に-SSL2
、または、-SSL2BLAMP
を指定します。コンパイル例は以下のとおりです。
MPI/自動並列/SSL II(主にマルチノードジョブ)
[_LNlogin]$ mpifrtpx -Kfast,parallel,SVE sample.f90 -SSL2MPI -SSL2
MPI/OpenMP/SSL II(主にマルチノードジョブ)
[_LNlogin]$ mpifrtpx -Kfast,parallel,openmp,SVE sample.f90 -SSL2MPI -SSL2
逐次/SSL II(シングルノードジョブ)
[_LNlogin]$ frtpx -Kfast,SVE sample.f90 -SSL2
自動並列/SSL II(シングルノードジョブ)
[_LNlogin]$ frtpx -Kfast,parallel,SVE sample.f90 -SSL2
OpenMP/SSL II(シングルノードジョブ)
[_LNlogin]$ frtpx -Kfast,openmp,SVE sample.f90 -SSL2
参考
SSL II のサブルーチンは、スレッド並列版と逐次版で、サブルーチン名およびインタフェースが異なります。
分割コンパイルを行う場合は、リンク時にもSSL II のオプションを指定してください。
ログインノードで結合する場合、
-KSVE
が有効であれば、SVE
を使用したライブラリを結合します。ログインノードで結合する場合、
-KNOSVE
が有効であれば、汎用のライブラリを結合します。計算ノードで結合する場合、
-KSVE
と-KNOSVE
のどちらを指定してもSVE
を使用したライブラリを結合します。-KSVE
オプションのデフォルト(省略時)は、-KSVE
になります。ネイティブコンパイラでプログラムを翻訳し、SSL II を結合する場合、frtコマンドを使用します。
ネイティブコンパイラでMPIプログラムを翻訳し、SSL II/MPI を結合する場合、mpifrtコマンドを使用します。
5.2.2. サンプルプログラム(SSL2/Fortran)¶
サンプルプログラムを用いたコンパイル例を示します。
サンプルプログラムをコンパイルします。
[_LNlogin]$ frtpx -V -Kfast,optmsg=2,SVE -Nlst=t -o sample_SSL2 sample_SSL2.f -SSL2
pjsubコマンドでジョブを投入します。
[_LNlogin]$ pjsub sample_SSL2.sh [INFO] PJM 0000 pjsub Job 140 submitted.
5.2.3. C言語から利用する場合のプログラム復帰値¶
SSL II はFortran用のライブラリですが、C言語からも利用できます。
C言語からSSL II を利用する場合、Cの最初に実行される関数名によりプログラムの復帰値が異なります。
Cの復帰値を利用したい場合は留意ください。
詳しくはマニュアル「C言語使用手引書」の「Fortranとの結合」を参照してください。
関数名 |
プログラムの復帰値 |
---|---|
main |
Cの復帰値 |
MAIN__ |
Fortranの復帰値
ただし、Fortranの復帰値が0の場合はCの復帰値を返します。
|