6.2. 実行コマンドの形式

mpiexecコマンドによるMPIプログラム実行形式は以下のとおりです。

$ mpiexec  オプション 実行モジュール 実行モジュールのオプション

注釈

mpiexecの非互換項目

スーパーコンピュータ「富岳」では、運用に合わせてカスタマイズしたmpiexecコマンドを提供しています。 カスタマイズにより、マニュアル「MPI使用手引書」の記載と非互換となる項目があります。 ここでは、マニュアルと非互換となる項目について説明します。

アプリケーション情報の収集

スーパーコンピュータ「富岳」の運用改善のため、実行するアプリケーションに対して、以下の情報を収集します。

  • コンパイラ情報

  • シンボルテーブル

  • 共有ライブラリ情報

  • MD5ハッシュチェックサム

  • 実行ファイルの種類や文字列

アプリケーション情報の収集を回避するには、ジョブ実行時に以下の環境変数を定義してください。:

#PJM -x "APPLOG=NO"

収集はmpiexecの開始時のみに行うため、実行中のジョブの性能に影響は出ません。 また収集によるジョブの実行時間への影響は、ほとんどありません。


mpiexecコマンドのオプション指定例

  • MPIプログラムを8並列(-n 8)で実行する場合

$ mpiexec -n 8 -std-proc procfile ./a.out

注釈

-nオプション省略時はデフォルト値が誘導されます。

  • JavaのMPIプログラムを8並列(-n 8)で実行する場合

$ mpiexec -n 8 -std-proc procfile java -classpath ./dir JavaTest

注釈

クラスパスは、javaコマンドの-classpathオプションで指定します。

  • MPIジョブを同時に複数実行する場合

  1. MPMD

    実行単位をコロン ":" で区切ることで複数のプログラムを実行することができます。 -nの総和は、--mpi proc=Nを超えないように設定します。

    [書式]

    $ mpiexec [global options] -n N1 [local options] 実行ファイル1 : -n N2 [local options] 実行ファイル2 : 

    [例]

    MPIプログラムの実行可能ファイル a.outb.outc.outをそれぞれ 2、4、6の並列プロセス数で実行

    $ mpiexec -std-proc procfile -n 2 ./a.out : -n 4 ./b.out : -n 6 ./c.out
    

    注意

    Javaプログラムの場合、MPMDモデルでの実行は保証されません。

  2. バックグラウンドジョブ

    バックグラウンドジョブを同時に複数実行する場合は、-vcoordfileオプションを指定して使用するノードの座標を指定します。同時に動かすジョブ間で使用するノードが重ならないように留意ください。同時にバックグラウンドで実行できる数は、128までです。