Nektar++
Functions
Python/Communication/Comm.cpp File Reference
#include <LibUtilities/BasicUtils/SharedArray.hpp>
#include <LibUtilities/Communication/Comm.h>
#include <LibUtilities/Python/BasicUtils/SharedArray.hpp>
#include <LibUtilities/Python/NekPyConfig.hpp>
#include <vector>

Go to the source code of this file.

Functions

template<typename T >
AllReduce (CommSharedPtr &comm, T toReduce, ReduceOperator oper)
 
void export_Comm (py::module &m)
 Export for Comm communicator. More...
 

Function Documentation

◆ AllReduce()

template<typename T >
T AllReduce ( CommSharedPtr comm,
toReduce,
ReduceOperator  oper 
)

Definition at line 47 of file Python/Communication/Comm.cpp.

48{
49 comm->AllReduce(toReduce, oper);
50 return toReduce;
51}

Referenced by export_Comm().

◆ export_Comm()

void export_Comm ( py::module &  m)

Export for Comm communicator.

Definition at line 56 of file Python/Communication/Comm.cpp.

57{
58 // Export ReduceOperator enum
60
61 py::class_<Comm, std::shared_ptr<Comm>>(m, "Comm")
62 .def("GetSize", &Comm::GetSize)
63 .def("GetRank", &Comm::GetRank)
64 .def("GetType", &Comm::GetType, py::return_value_policy::reference)
65 .def("AllReduce", &AllReduce<double>)
66 .def("AllReduce", &AllReduce<int>)
67 .def("AllReduce", &AllReduce<long>)
68 .def("AllReduce", &AllReduce<Array<OneD, NekDouble>>);
69}
#define NEKPY_WRAP_ENUM(MOD, ENUMNAME, MAPNAME)
Definition: NekPyConfig.hpp:53
T AllReduce(CommSharedPtr &comm, T toReduce, ReduceOperator oper)
const char *const ReduceOperatorMap[]
Definition: Comm.h:72
ReduceOperator
Type of operation to perform in AllReduce.
Definition: Comm.h:65

References AllReduce(), NEKPY_WRAP_ENUM, and Nektar::LibUtilities::ReduceOperatorMap.

Referenced by PYBIND11_MODULE().