並列計算ライブラリ
Intel MPI Library
IntelのMPI実装です。
コマンド | 説明 |
---|---|
mpicc | gcc用のCコンパイララッパー |
mpiicx | Intel DCP/CのMPIコンパイララッパー |
mpiicpx | Intel DPC/C++のMPIコンパイララッパー |
mpiifx | Intel Fortran用コンパイララッパー |
mpirun | mpiプログラムの起動スクリプト |
遺伝研スパコンの一般区画では、Intel MPIの利用環境が設定されています。
xxxxx@at139:~/mpitest$ env |grep I_MPI
I_MPI_ROOT=/lustre7/software/intel_ubuntu/oneapi/mpi/2021.11
xxxxx@at139:~/mpitest$ which mpiicx
/lustre7/software/intel_ubuntu/oneapi/mpi/2021.11/bin/mpiicx
コンパイルは以下のように行います。
xxxxx@at139:~/mpitest$ mpiicx mpi_test.c -o mpi_test
yxxxx@at139:~/mpitest$ ls
mpi_test mpi_test.c sample1.sh
実行はAGEの場合以下のようなジョブスクリプトを記述してqsubを実行します。(高度な最適化を施して、詳細なプロファイリングを行いたい場合は、Intelキューを利用してください。構成上実行されやすいepycキューに以下の例では投入しています。)
#!/bin/bash
#$ -cwd
#$ -V
#$ -l epyc
#$ -l d_rt=192:00:00
#$ -l s_rt=192:00:00
#$ -pe mpi 4
#$ -l s_vmem=20G
#$ -l mem_req=20G
#$ -N example
mpirun ./mpi_test
以下のように実行します。
yxxxx@at139:~/mpitest$ qsub ./sample1.sh
Your job 25616887 ("example") has been submitted
yxxxx@at139:~/mpitest$ qstat
job-ID prior name user state submit/start at queue jclass slots ja-task-ID
------------------------------------------------------------------------------------------------------------------------------------------------
25601953 0.25480 QLOGIN yxxxx r 02/27/2024 08:39:03 login.q@at139 1
25604295 0.25384 QLOGIN yxxxx r 02/27/2024 11:20:07 login.q@at139 1
25616887 0.25106 example yxxxx r 02/27/2024 22:06:02 epyc.q@at155 4
実行結果として以下のようになります。
yxxxx@at139:~/mpitest$ more example.o25616887
Hello world from processor at147, rank 2 out of 4 processors
Hello world from processor at155, rank 0 out of 4 processors
Hello world from processor at156, rank 3 out of 4 processors
Hello world from processor at144, rank 1 out of 4 processors
Intel oneAPI DPC++ Library (oneDPL)
以下のコンポーネントを含むC++用基本ライブラリです。
-
Parallel STL(Standard Template Library)
-
ライブラリクラスと関数の追加セット
- 並列アルゴリズム
- イテレータ
- 関数オプジェクトクラス
- 範囲ベースのAPI
-
テスト済みの標準 C++ API
-
乱数ジェネレータ
Intel oneDAL (Data Analytics Library)
ビッグデータ解析アプリケーションと分散計算を高速化するライブラリです。
詳細については以下のリンク先の資料を参照してください。
遺伝研スパコンでは以下のディレクトリがLD_LIBRARY_PATHに含まれているかを確認してください。
/lustre7/software/intel_ubuntu/oneapi/dal/2023.2.0/lib/intel64
Intel OneTBB (Threading Building Blocks)
C++のマルチスレッドライブラリです。このライブラリはSYCL*および、ISO C++で利用可能な機能の他に、CPU上での並列プログラミング向けに次の機能を提供します。
- 汎用並列アルゴリズム
- コンカレント・コンテナ
- スケーラブル・メモリ・アロケータ
- 低レベル同期プリミティブ
詳細については以下のリンク先の資料を参照してください。
環境はmoduleコマンドで読み込み可能です。
$ module load tbb
Loading tbb version 2021.10.0
$ module list
Currently Loaded Modulefiles:
1) tbb/2021.10.0
以下のパスがLD_LIBRARY_PATHに含まれているかを確認してください。
/lustre7/software/intel_ubuntu/oneapi/tbb/2021.11/lib