OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
GlobalComm.hpp File Reference
#include "Message/GlobalComm.h"
#include "Message/Communicate.h"
#include "Message/Message.h"
#include "Message/Tags.h"
#include "Utility/IpplInfo.h"
#include "Utility/IpplStats.h"
#include "Message/DataTypes.h"
#include "Message/Operations.h"
#include <algorithm>
Include dependency graph for GlobalComm.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<class InputIterator, class OutputIterator, class ReduceOp>
bool reduce (Communicate &comm, InputIterator s1, InputIterator s2, OutputIterator t1, const ReduceOp &op, bool *IncludeVal)
template<class InputIterator, class OutputIterator, class ReduceOp>
bool reduce (InputIterator s1, InputIterator s2, OutputIterator t1, const ReduceOp &op, bool *IncludeVal)
template<class T, class ReduceOp>
bool reduce_masked (Communicate &comm, T &input, T &output, const ReduceOp &op, bool IncludeVal)
template<class T, class ReduceOp>
bool reduce_masked (T &input, T &output, const ReduceOp &op, bool IncludeVal)
template<class InputIterator, class RandomIterator, class ScatterOp>
bool scatter (Communicate &comm, InputIterator s1, InputIterator s2, RandomIterator t1, int *target_node, int *target_position, const ScatterOp &op)
template<class InputIterator, class RandomIterator, class ScatterOp>
bool scatter (InputIterator s1, InputIterator s2, RandomIterator t1, int *target_node, int *target_position, const ScatterOp &op)
template<typename T>
void gather (const T *input, T *output, int count, int root)
template<typename T>
void scatter (const T *input, T *output, int count, int root)
template<typename T, class Op>
void reduce (const T *input, T *output, int count, Op op, int root)
template<typename T, class Op>
void new_reduce (const T *input, T *output, int count, Op op, int root)
template<typename T, class Op>
void new_reduce (T *inout, int count, Op op, int root)
template<typename T, class Op>
void reduce (const T &input, T &output, int count, Op op, int root)
template<typename T, class Op>
void allreduce (const T *input, T *output, int count, Op op)
template<typename T, class Op>
void allreduce (const T &input, T &output, int count, Op op)
template<typename T, class Op>
void allreduce (T *inout, int count, Op op)
template<typename T, class Op>
void allreduce (T &inout, int count, Op op)

Function Documentation

◆ allreduce() [1/4]

template<typename T, class Op>
void allreduce ( const T & input,
T & output,
int count,
Op op )

Definition at line 520 of file GlobalComm.hpp.

References allreduce().

Here is the call graph for this function:

◆ allreduce() [2/4]

template<typename T, class Op>
void allreduce ( const T * input,
T * output,
int count,
Op op )

◆ allreduce() [3/4]

template<typename T, class Op>
void allreduce ( T & inout,
int count,
Op op )

Definition at line 537 of file GlobalComm.hpp.

References allreduce().

Here is the call graph for this function:

◆ allreduce() [4/4]

template<typename T, class Op>
void allreduce ( T * inout,
int count,
Op op )

Definition at line 526 of file GlobalComm.hpp.

References get_mpi_datatype(), get_mpi_op(), and IpplInfo::getComm().

Here is the call graph for this function:

◆ gather()

template<typename T>
void gather ( const T * input,
T * output,
int count,
int root )

Definition at line 449 of file GlobalComm.hpp.

References get_mpi_datatype(), and IpplInfo::getComm().

Referenced by PartBunchBase< T, Dim >::gatherLoadBalanceStatistics(), and IpplMemoryUsage::sample().

Here is the call graph for this function:

◆ new_reduce() [1/2]

template<typename T, class Op>
void new_reduce ( const T * input,
T * output,
int count,
Op op,
int root )

Definition at line 477 of file GlobalComm.hpp.

References get_mpi_datatype(), get_mpi_op(), and IpplInfo::getComm().

Referenced by MemoryProfiler::compute().

Here is the call graph for this function:

◆ new_reduce() [2/2]

template<typename T, class Op>
void new_reduce ( T * inout,
int count,
Op op,
int root )

Definition at line 488 of file GlobalComm.hpp.

References get_mpi_datatype(), get_mpi_op(), IpplInfo::getComm(), and IpplInfo::myNode().

Here is the call graph for this function:

◆ reduce() [1/4]

template<class InputIterator, class OutputIterator, class ReduceOp>
bool reduce ( Communicate & comm,
InputIterator s1,
InputIterator s2,
OutputIterator t1,
const ReduceOp & op,
bool * IncludeVal )

Definition at line 55 of file GlobalComm.hpp.

References IpplInfo::abort(), Communicate::broadcast_others(), COMM_ANY_NODE, COMM_REDUCE_CYCLE, COMM_REDUCE_RECV_TAG, COMM_REDUCE_SEND_TAG, Message::MsgItem::data(), endl(), ERRORMSG, getMessage(), Communicate::getNodes(), Message::item(), Communicate::myNode(), TagMaker::next_tag(), PETE_apply(), putMessage(), Communicate::receive_block(), Communicate::send(), and Message::size().

Referenced by PartBunchBase< T, Dim >::boundp_destroyT(), ParallelCyclotronTracker::calcMeanP(), PartBunchBase< T, Dim >::calcMeanPhi(), ParallelCyclotronTracker::calcMeanR(), GreenWakeFunction::CalcWakeFFT(), ParallelCyclotronTracker::checkNumPart(), Distribution::checkParticleNumber(), Vacuum::checkVacuum(), BareField< T, Dim >::CompressedFraction(), PeakFinder::computeCentroid_m(), ParallelTTracker::computeExternalFields(), ParallelTTracker::computeParticleMatterInteraction(), MGPoissonSolver::computePotential(), Distribution::createDistributionFromFile(), PeakFinder::createHistogram_m(), ParallelCyclotronTracker::deleteParticle(), PartBunchBase< T, Dim >::destroyT(), CCollimator::doFinaliseCheck(), Stripper::doFinaliseCheck(), Distribution::doRestartOpalCycl(), Distribution::emitParticles(), Distribution::fillEBinHistogram(), AmrPartBunch::gatherLevelStatistics(), Distribution::getMaxTOrZ(), Distribution::getMinTOrZ(), Distribution::getNumberOfParticlesInFile(), PartBins::getTotalNum(), PartBins::getTotalNumPerBin(), ParallelTTracker::hasEndOfLineReached(), LossDataSink::hasNoParticlesToDump(), ParticleAttrib< Index_t >::isDirty(), IpplMessageCounterRegion::print(), Timing::print(), Timing::print(), Distribution::printDist(), IpplCounter::printIt(), MGPoissonSolver::printLoadBalanceStats(), reduce(), reduce(), Distribution::reflectDistribution(), PartBunchBase< T, Dim >::resetPartBinID2(), PartBins::resetPartInBin_cyc(), LossDataSink::saveH5(), Distribution::setupEmissionModelNone(), Distribution::shiftBeam(), PartBins::sortArray(), PartBunchBase< double, 3 >::switchToUnitlessPositions(), Distribution::writeOutFileHeader(), Distribution::writeOutFileInjection(), and ParallelTTracker::writePhaseSpace().

Here is the call graph for this function:

◆ reduce() [2/4]

template<typename T, class Op>
void reduce ( const T & input,
T & output,
int count,
Op op,
int root )

Definition at line 504 of file GlobalComm.hpp.

References reduce().

Here is the call graph for this function:

◆ reduce() [3/4]

template<typename T, class Op>
void reduce ( const T * input,
T * output,
int count,
Op op,
int root )

Definition at line 467 of file GlobalComm.hpp.

References get_mpi_datatype(), get_mpi_op(), and IpplInfo::getComm().

Here is the call graph for this function:

◆ reduce() [4/4]

template<class InputIterator, class OutputIterator, class ReduceOp>
bool reduce ( InputIterator s1,
InputIterator s2,
OutputIterator t1,
const ReduceOp & op,
bool * IncludeVal )

Definition at line 194 of file GlobalComm.hpp.

References IpplInfo::Comm, and reduce().

Here is the call graph for this function:

◆ reduce_masked() [1/2]

template<class T, class ReduceOp>
bool reduce_masked ( Communicate & comm,
T & input,
T & output,
const ReduceOp & op,
bool IncludeVal )

Definition at line 208 of file GlobalComm.hpp.

References IpplInfo::abort(), Communicate::broadcast_others(), COMM_ANY_NODE, COMM_REDUCE_CYCLE, COMM_REDUCE_RECV_TAG, COMM_REDUCE_SEND_TAG, getMessage(), Communicate::getNodes(), Communicate::myNode(), TagMaker::next_tag(), PETE_apply(), putMessage(), Communicate::receive_block(), Communicate::send(), and Message::size().

Referenced by reduce(), reduce(), reduce_masked(), and Reduction().

Here is the call graph for this function:

◆ reduce_masked() [2/2]

template<class T, class ReduceOp>
bool reduce_masked ( T & input,
T & output,
const ReduceOp & op,
bool IncludeVal )

Definition at line 334 of file GlobalComm.hpp.

References IpplInfo::Comm, and reduce_masked().

Here is the call graph for this function:

◆ scatter() [1/3]

template<class InputIterator, class RandomIterator, class ScatterOp>
bool scatter ( Communicate & comm,
InputIterator s1,
InputIterator s2,
RandomIterator t1,
int * target_node,
int * target_position,
const ScatterOp & op )

Definition at line 353 of file GlobalComm.hpp.

References COMM_ANY_NODE, COMM_REDUCE_CYCLE, COMM_REDUCE_SCATTER_TAG, Message::MsgItem::data(), endl(), ERRORMSG, Message::get(), getMessage(), Communicate::getNodes(), Message::item(), Communicate::myNode(), TagMaker::next_tag(), PETE_apply(), putMessage(), Communicate::receive_block(), Communicate::send(), and Message::size().

Referenced by BinaryRepartition(), BoxLibParticle< PLayout >::scatter(), and scatter().

Here is the call graph for this function:

◆ scatter() [2/3]

template<typename T>
void scatter ( const T * input,
T * output,
int count,
int root )

Definition at line 458 of file GlobalComm.hpp.

References get_mpi_datatype(), and IpplInfo::getComm().

Here is the call graph for this function:

◆ scatter() [3/3]

template<class InputIterator, class RandomIterator, class ScatterOp>
bool scatter ( InputIterator s1,
InputIterator s2,
RandomIterator t1,
int * target_node,
int * target_position,
const ScatterOp & op )

Definition at line 440 of file GlobalComm.hpp.

References IpplInfo::Comm, and scatter().

Here is the call graph for this function: