Cray MPIライブラリ

バージョン システムA システムB システムC 備考
7.7.12 + 2020年3月導入
7.7.10 + 2019年10月導入
7.7.6 + (default) 2019年3月導入
7.7.3 + 2018年12月導入
7.7.0 + 2018年3月導入
7.6.3 + 2017年12月導入
7.6.0 + 2017年8月導入
7.5.3 + 2017年3月導入
7.5.0 + 2016年12月導入
7.4.2 + 2016年10月導入

+ : すべてのユーザが利用可能
― : 利用不可

バージョン moduleファイル名
7.7.12 cray-mpich/7.7.12
7.7.10 cray-mpich/7.7.10
7.7.6 cray-mpich/7.7.6
7.7.3 cray-mpich/7.7.3
7.7.0 cray-mpich/7.7.0
7.6.3 cray-mpich/7.6.3
7.6.0 cray-mpich/7.6.0
7.5.3 cray-mpich/7.5.3
7.5.0 cray-mpich/7.5.0
7.4.2 cray-mpich/7.4.2

コンパイラは, CrayIntelPGIGNU のいずれかを利用できます.コンパイラの環境設定については,個別のページを参照してください.現時点でのコンパイラ設定を確認する場合は,以下のようにmoduleコマンドを実行してください.

$ module list

システムAにログインした時点で,Cray MPIライブラリが利用できるようになっています.ライブラリのバージョンは,上表に記載のデフォルトのバージョンが設定されています.

moduleファイルをアンロードした場合などは,以下のようにmoduleコマンドを実行し,利用したいバージョンのmoduleファイルをロードします.moduleファイル中のスラッシュとバージョンを省略した場合は,上表に記載のデフォルトのバージョンが設定されます.

$ module load cray-mpich

Cray MPIライブラリのバージョンを切り替えたい場合は,以下のようにmoduleコマンドを実行してください.

$ module switch cray-mpich/6.3.0 cray-mpich2/5.6.2

moduleコマンドの詳細は Modules をご覧ください.

Cray MPIで提供可能なスレッド並列サポートレベルは,デフォルトでは,MPI_THREAD_SERIALIZEDです.各スレッドからMPI関数を呼び出すことができますが,1度に1つのスレッドからしか呼び出しを行わないようなプログラムにしておく必要があります.
実行時に以下の環境変数を設定することで,スレッド並列サポートレベルMPI_THREAD_MULTIPLEを利用できます.各スレッドから自由にMPI関数を呼び出すことができますが,Cray MPIの計算性能は悪くなります.

(tcshを利用する場合) setenv MPICH_MAX_THREAD_SAFETY multiple
(bashを利用する場合) export MPICH_MAX_THREAD_SAFETY=multiple

コンパイルコマンド

言語 コマンド 実行形式
Fortran ftn ftn [オプションの並び] ファイル名の並び
C cc cc [オプションの並び] ファイル名の並び
C++ CC CC [オプションの並び] ファイル名の並び

コンパイル例

$ ftn -O3 sample_mpi.f90

コンパイルしたMPIプログラムを実行するためには, 会話型処理では tssrun コマンドを,バッチ処理では aprun コマンドを使用します.会話型実行,バッチ実行ともに,並列数は -A オプションの引数 p で指定します.詳細は, サンプル をご覧ください.

実行例(会話型)

$ tssrun -A p=2 ./a.out

会話型実行の詳細については, 会話型処理 のページをご覧ください.

  • 8並列で実行
tssrun -A p=8 ./a.out
  • スレッド並列と組み合わせて実行(MPI 4並列,OpenMP 8並列)
tssrun -A p=4:t=8:c=8 ./a.out

バッチ実行の詳細については, バッチ処理(システムA)のページをご覧ください.

以下の例はシステムAの場合です.

  • 8並列で実行

    $ cat sample.sh
    #!/bin/bash
    #QSUB -q gr19999a
    #QSUB -ug gr19999
    #QSUB -W 5:00
    #QSUB -A p=8
    aprun -n $QSUB_PROCS ./a.out
  • スレッド並列と組み合わせて実行(MPI 4並列,OpenMP 8並列)

    $ cat sample.sh
    #!/bin/bash
    #QSUB -q gr19999a
    #QSUB -ug gr19999
    #QSUB -W 5:00
    #QSUB -A p=4:t=8:c=8:m=4G
    #QSUB -o %J.out
    aprun -n $QSUB_PROCS -d $QSUB_CPUS -N $QSUB_PPN ./a.out

Cray MPICH 7.6以降のリリースノートは,ドキュメント形式では提供されなくなりましたので, $ module help cray-mpich/<version> で見られる情報をご参照ください.


Copyright © Academic Center for Computing and Media Studies, Kyoto University, All Rights Reserved.