C++でOpenMPI入門 追記1 MPI::InitとMPI::Finalizeの確認
OpenMPIでは並列処理の前にMPI::Init, 終了時にMPI::Finalizeを呼ぶことになっているが,
MPI::Init(); MPI::Init(); MPI::Finalize(); MPI::Finalize();
のようにすると実行時エラーで落ちる. これを回避するために既にMPI::InitやMPI::Finalizeが呼ばれているかを事前に確認すると良い.
#include <mpi.h> int main(int argc, char **argv) { if (!MPI::Is_initialized()) { MPI::Init(argc, argv); } if (!MPI::Is_finalized()) { MPI::Finalize(); } }