Program Listing for File mpi_init_utils.hpp¶
↰ Return to documentation for file (include/uitsl/mpi/mpi_init_utils.hpp)
#pragma once
#ifndef UITSL_MPI_MPI_INIT_UTILS_HPP_INCLUDE
#define UITSL_MPI_MPI_INIT_UTILS_HPP_INCLUDE
#include <assert.h>
#include <limits>
#include <numeric>
#include <stddef.h>
#include <mpi.h>
#include "../../uit_emp/base/errors.hpp"
#include "../debug/safe_cast.hpp"
#include "../utility/print_utils.hpp"
#include "audited_routines.hpp"
#include "comm_utils.hpp"
#include "group_utils.hpp"
#include "proc_id_t.hpp"
#include "request_utils.hpp"
#include "status_utils.hpp"
namespace uitsl {
inline void mpi_init_multithread(int *argc, char ***argv) {
int res{};
UITSL_Init_thread(argc, argv, MPI_THREAD_MULTIPLE, &res);
if (res < MPI_THREAD_MULTIPLE) uit_emp::NotifyWarning(
"MPI implementation may not provide full multithread support."
);
}
inline void mpi_init_multithread() {
int argc{};
mpi_init_multithread(&argc, nullptr);
}
inline void mpi_init() {
int argc{};
UITSL_Init(&argc, nullptr);
}
inline bool is_mpi_initialized() {
int flag{};
UITSL_Initialized(&flag);
return flag;
}
} // namespace uitsl
#endif // #ifndef UITSL_MPI_MPI_INIT_UTILS_HPP_INCLUDE