MPI_Abort

いちごパック > MPIの解説 > MPI_Abort

インターフェース

#include <mpi.h>
int MPI_Abort(MPI_Comm comm, int errorcode);
commで指定されたプロセスグループに属するすべてのプロセスに対し、MPIの実行環境を強制終了させます。
この関数は常に成功するようです。戻り値はMPI_SUCCESSです。
引数内容
comm送受信を行うプロセスの所属プロセスグループを指定します。MPI_COMM_WORLDを指定するとすべてのプロセスが所属するプロセスグループになります。
errorcodempiexecに返す戻り値を指定します。

サンプルプログラム

MPI_Abort()により並列実行中のプログラムを強制終了させるサンプルソースコードを示します。

#include <mpi.h>

#define ABORT_INIT 1
#define ABORT_ICHIGO 15

int main( int argc, char** argv )
{
    int num_processes = 1;
    int process_rank = 0;
    int ret;

    ret = MPI_Init(&argc, &argv);
    if (ret == MPI_SUCCESS)
    ret = MPI_Comm_size(MPI_COMM_WORLD, &num_processes);
    if (ret == MPI_SUCCESS)
        ret = MPI_Comm_rank(MPI_COMM_WORLD, &process_rank);
    if (ret != MPI_SUCCESS) {
        // error
        MPI_Abort(MPI_COMM_WORLD, ABORT_INIT);
    }

    MPI_Abort(MPI_COMM_WORLD, ABORT_ICHIGO);

    MPI_Finalize();
    return 0;
}

4つのプロセスで動作させたときの出力結果の1例は次の通りです。

job aborted:
[ranks] message

[0] application aborted
aborting MPI_COMM_WORLD (comm=0x44000000), error 15, comm rank 0

[1] application aborted
aborting MPI_COMM_WORLD (comm=0x44000000), error 15, comm rank 1

[2] application aborted
aborting MPI_COMM_WORLD (comm=0x44000000), error 15, comm rank 2

[3] application aborted
aborting MPI_COMM_WORLD (comm=0x44000000), error 15, comm rank 3

---- error analysis -----

[0-3] on ICHIGOPC1
mpi_abort.exe aborted the job. abort code 15

---- error analysis -----

関連ページ

  • MPIの解説 目次