KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
kidsrun/mpi_utils.h
Go to the documentation of this file.
1#ifndef MPI_UTILS_H
2#define MPI_UTILS_H
3
4#include <vector>
5
6#include "kids/Types.h"
7#include "mpi.h"
8
9namespace PROJECT_NS {
10class MPI_Guard final {
11 public:
12 static int rank;
13 static int nprocs;
14 static bool isroot;
15
16 std::size_t istart;
17 std::size_t iend;
18 std::size_t TOTAL;
19
20 MPI_Guard(std::size_t TOTAL);
21 ~MPI_Guard();
22
23 static int reduce(const std::tuple<kids_dtype, void*, void*, std::size_t>& info);
24 static int reduce(const std::vector<std::tuple<kids_dtype, void*, void*, std::size_t>>& info_list);
25
26 private:
27 static int range(const size_t& idx1, const size_t& idx2, size_t& ista, size_t& iend);
28};
29}; // namespace PROJECT_NS
30
31#endif // MPI_UTILS_H
definition of types in the project and some utiles for types
static int reduce(const std::tuple< kids_dtype, void *, void *, std::size_t > &info)
static int range(const size_t &idx1, const size_t &idx2, size_t &ista, size_t &iend)
Definition mpi_utils.cpp:14
MPI_Guard(std::size_t TOTAL)
Definition mpi_utils.cpp:6
< http://warp.povusers.org/FunctionParser/fparser.html
Definition Context.h:39