5.3. C-SSL II ライブラリ

C-SSL II ライブラリは、Fortran言語で利用されているSSL II の豊富なサブルーチン群のサブセットに対してC言語のためのインターフェースルーチンを提供し、C言語/C++言語で利用できるようにしています。

  1. 線形計算

  2. 固有値固有ベクトル

  3. 非線形計算

  4. 極値問題

  5. 補間、近似

  6. 変換

  7. 数値微積分

  8. 微分方程式

  9. 特殊関数

  10. 擬似乱数

  11. 補助ルーチン

5.3.1. C言語コンパイル方法

C-SSL II ライブラリを利用するには-SSL2、または、-SSL2BLAMPオプションを指定します。
SSL II/MPIライブラリを使用する場合には、mpifccpxコマンドに-SSL2MPIオプションを指定し、同時に-SSL2、または、-SSL2BLAMPを指定してください。

コンパイル例は以下のとおりです。

  1. MPI/自動並列/SSL II(主にマルチノードジョブ)

[_LNlogin]$ mpifccpx  -Kfast,parallel,SVE sample.c -SSL2MPI -SSL2
  1. MPI/OpenMP/SSL II(主にマルチノードジョブ)

[_LNlogin]$ mpifccpx -Kfast,parallel,openmp,SVE sample.c -SSL2MPI -SSL2
  1. 逐次/SSL II(シングルノードジョブ)

[_LNlogin]$ fccpx -Kfast,SVE sample.c -SSL2
  1. 自動並列/SSL II(シングルノードジョブ)

[_LNlogin]$ fccpx -Kfast,parallel,SVE sample.c -SSL2
  1. OpenMP/SSL II(シングルノードジョブ)

[_LNlogin]$ fccpx -Kfast,openmp,SVE sample.c -SSL2

参考

  • ログインノードで結合する場合、-KSVEが有効であれば、SVEを使用したライブラリを結合します。

  • ログインノードで結合する場合、-KNOSVEが有効であれば、汎用のライブラリを結合します。

  • 計算ノードで結合する場合、-KSVE-KNOSVEのどちらを指定してもSVEを使用したライブラリを結合します。

  • -KSVEオプションのデフォルト(省略時)は、-KSVEになります。

  • ネイティブコンパイラでプログラムを翻訳し、C-SSL II を結合する場合、fccコマンドを使用します。

  • ネイティブコンパイラでMPIプログラムを翻訳し、SSL II/MPI を結合する場合、mpifccコマンドを使用します。

5.3.2. サンプルプログラム(C-SSL II/C)

サンプルプログラムを使用して、コンパイルからジョブ実行までの例を示します。

  1. ソースプログラムを用意します。
    サンプルプログラムを/home/system/sample/CSSL2/sample_C-SSLII-C.cとして用意しています。
  2. サンプルプログラムをコンパイルします。

[_LNlogin]$ fccpx -V -Kfast,optmsg=2 -Nlst=t -o sample_C-SSLII-C sample_C-SSLII-C.c -SSL2
  1. ジョブスクリプトを用意します。
    ジョブスクリプトのサンプルは/home/system/sample/CSSL2/sample_C-SSLII-C.shとして用意しています。
  2. pjsubコマンドでジョブを投入します。

[_LNlogin]$ pjsub sample_C-SSLII-C.sh
[INFO] PJM 0000 pjsub Job 138 submitted.

5.3.3. C++コンパイル方法

C-SSL II ライブラリを利用するには-SSL2、または、-SSL2BLAMPオプションを指定します。
SSL II/MPIライブラリを使用する場合には、mpiFCCpxコマンドに-SSL2MPIオプションを指定し、同時に-SSL2、または、-SSL2BLAMPを指定してください。

コンパイル例は以下のとおりです。

  1. MPI/自動並列/SSL II(主にマルチノードジョブ)

[_LNlogin]$ mpiFCCpx -Kfast,parallel,SVE sample.cc -SSL2MPI -SSL2
  1. MPI/OpenMP/SSL II(主にマルチノードジョブ)

[_LNlogin]$ mpiFCCpx -Kfast,parallel,openmp,SVE sample.cc -SSL2MPI -SSL2
  1. 逐次/SSL II(シングルノードジョブ)

[_LNlogin]$ FCCpx -Kfast,SVE sample.cc -SSL2
  1. 自動並列/SSL II(シングルノードジョブ)

[_LNlogin]$ FCCpx -Kfast,parallel,SVE sample.cc -SSL2
  1. OpenMP/SSL II(シングルノードジョブ)

[_LNlogin]$ FCCpx -Kfast,openmp,SVE sample.cc -SSL2

参考

  • ログインノードで結合する場合、-KSVEが有効であれば、SVEを使用したライブラリを結合します。

  • ログインノードで結合する場合、-KNOSVEが有効であれば、汎用のライブラリを結合します。

  • 計算ノードで結合する場合、-KSVE-KNOSVEのどちらを指定してもSVEを使用したライブラリを結合します。

  • -KSVEオプションのデフォルト(省略時)は、-KSVEになります。

  • ネイティブコンパイラでプログラムを翻訳し、C-SSL II を結合する場合、FCCコマンドを使用します。

  • ネイティブコンパイラでMPIプログラムを翻訳し、SSL II/MPI を結合する場合、mpiFCCコマンドを使用します。