Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion modules/runners/src/runners.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include "runners/include/runners.hpp"

#include <gtest/gtest.h>
#include <mpi.h>

#include <chrono>
#include <cstdint>
Expand All @@ -10,6 +9,7 @@
#include <format>
#include <iostream>
#include <memory>
#include <mpi.h>
#include <random>
#include <stdexcept>
#include <string>
Expand Down Expand Up @@ -140,6 +140,7 @@ int RunAllTestsSafely() {
} // namespace

int Init(int argc, char **argv) {
ppc::util::ConfigureMpiEnvironment();
const int init_res = MPI_Init(&argc, &argv);
if (init_res != MPI_SUCCESS) {
std::cerr << std::format("[ ERROR ] MPI_Init failed with code {}", init_res) << '\n';
Expand Down
1 change: 1 addition & 0 deletions modules/util/include/util.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ double GetTaskMaxTime();
double GetPerfMaxTime();
double GetTimeMPI();
int GetMPIRank();
void ConfigureMpiEnvironment();
void SynchronizeMpiRanks();

template <typename T>
Expand Down
12 changes: 10 additions & 2 deletions modules/util/src/util.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
#include "util/include/util.hpp"

#include <mpi.h>

#include <algorithm>
#include <array>
#include <filesystem>
#include <libenvpp/detail/get.hpp>
#include <mpi.h>
#include <string>

namespace {
Expand Down Expand Up @@ -68,6 +67,15 @@ bool ppc::util::IsUnderMpirun() {
});
}

void ppc::util::ConfigureMpiEnvironment() {
#ifdef __APPLE__
// Open MPI 5 can emit mmap backing-file probe warnings for macOS TMPDIR paths.
if (!env::get<std::string>("OMPI_MCA_shmem").has_value()) {
env::detail::set_environment_variable("OMPI_MCA_shmem", "posix");
Comment thread
aobolensk marked this conversation as resolved.
}
#endif
}

void ppc::util::SynchronizeMpiRanks() {
int initialized = 0;
if (MPI_Initialized(&initialized) != MPI_SUCCESS || initialized == 0) {
Expand Down
1 change: 1 addition & 0 deletions tasks/common/runners/performance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ int SynchronizeStatus(int local_status, std::string_view stage) {
}

int RunPerformanceMain(int argc, char **argv) {
ppc::util::ConfigureMpiEnvironment();
const int init_res = MPI_Init(&argc, &argv);
if (init_res != MPI_SUCCESS) {
std::cerr << "[ ERROR ] MPI_Init failed with code " << init_res << '\n';
Expand Down
Loading