diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 07fc1069080c8a62847e044bc67344a99fdd25f5..bd497da3fab7f7404654988ba7fff90e73cdfa90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1558,7 +1558,7 @@ gcc_9_stl_debug: ############################################################################### doc: - image: i10git.cs.fau.de:5005/walberla/buildenvs/ubuntu:18.04 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9 script: - cmake --version - doxygen --version @@ -1916,6 +1916,7 @@ mac_MpiOnly_Dbg: WALBERLA_BUILD_WITH_MPI: "ON" WALBERLA_BUILD_WITH_OPENMP: "OFF" WALBERLA_BUILD_WITH_PYTHON: "ON" + OMPI_MCA_btl: "self,tcp" except: variables: - $DISABLE_PER_COMMIT_BUILDS @@ -1928,6 +1929,7 @@ mac_MpiOnly: WALBERLA_BUILD_WITH_MPI: "ON" WALBERLA_BUILD_WITH_OPENMP: "OFF" WALBERLA_BUILD_WITH_PYTHON: "ON" + OMPI_MCA_btl: "self,tcp" except: variables: - $DISABLE_PER_COMMIT_BUILDS diff --git a/src/core/mpi/MPIManager.cpp b/src/core/mpi/MPIManager.cpp index 2a2ac24824c86659a405508cb098e6419f44b772..a334bc16c4878cea58a1452cd083fba31d9d3c7e 100644 --- a/src/core/mpi/MPIManager.cpp +++ b/src/core/mpi/MPIManager.cpp @@ -32,6 +32,9 @@ #include <stdexcept> #include <string> #include <vector> +#ifdef __APPLE__ +#include <thread> +#endif namespace walberla { @@ -94,6 +97,12 @@ void MPIManager::initializeMPI(int* argc, char*** argv, bool abortOnException) MPI_Initialized(&mpiAlreadyInitialized); if (!mpiAlreadyInitialized) { +#ifdef __APPLE__ + /* Work around a race condition on macOS. + If a process started by mpiexec finishes too quickly, it sometimes doesn't start all processes. + */ + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); +#endif MPI_Init(argc, argv); finalizeOnDestruction_ = true; }