55 static constexpr std::array local_rank_vars{
56 "OMPI_COMM_WORLD_LOCAL_RANK",
57 "MV2_COMM_WORLD_LOCAL_RANK",
65 for (
const char * variable : local_rank_vars)
67 const char * value = std::getenv(variable);
72 const char * end = value + std::char_traits<char>::length(value);
73 const auto [ptr, error] = std::from_chars(value, end, rank);
75 if (error != std::errc{} || ptr != end || rank < 0)
76 throw std::runtime_error(std::string(
"Invalid local rank in ") + variable +
": " + value);