|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include "FieldLayout/BinaryBalancer.h"#include "FieldLayout/FieldLayout.h"#include "Field/BareField.h"#include "Utility/PAssert.h"

Go to the source code of this file.
Functions | |
| template<unsigned Dim> | |
| static int | FindCutAxis (const NDIndex< Dim > &domain, const FieldLayout< Dim > &layout) |
| template<class RandomIterator , class T > | |
| static RandomIterator | FindMedian (int nprocs, RandomIterator begin, RandomIterator end, T) |
| static double | PerpReduce (BrickIterator< double, 3 > &data, int i, int cutAxis) |
| static double | PerpReduce (BrickIterator< double, 2 > &data, int i, int cutAxis) |
| static double | PerpReduce (BrickIterator< double, 1 > &data, int i, int) |
| template<unsigned Dim> | |
| static void | LocalReduce (double *reduced, int cutAxis, BrickIterator< double, Dim > data) |
| template<class IndexIterator , unsigned Dim> | |
| static void | SendReduce (IndexIterator domainsBegin, IndexIterator domainsEnd, BareField< double, Dim > &weights, int tag) |
| template<unsigned Dim> | |
| static void | ReceiveReduce (NDIndex< Dim > &domain, BareField< double, Dim > &weights, int reduce_tag, int nprocs, int &cutLoc, int &cutAxis) |
| void | BcastCuts (int cutLoc, int cutAxis, int bcast_tag) |
| template<unsigned Dim> | |
| static void | ReceiveCuts (std::vector< NDIndex< Dim > > &domains, std::vector< int > &nprocs, int bcast_tag) |
| template<unsigned Dim> | |
| static void | CutEach (std::vector< NDIndex< Dim > > &domains, std::vector< int > &nprocs, BareField< double, Dim > &weights) |
| template<unsigned Dim> | |
| NDIndex< Dim > | CalcBinaryRepartition (FieldLayout< Dim > &layout, BareField< double, Dim > &weights) |
|
inline |
Definition at line 454 of file BinaryBalancer.hpp.
References Communicate::broadcast_all(), IpplInfo::Comm, and Message::put().
Referenced by CutEach().

| NDIndex< Dim > CalcBinaryRepartition | ( | FieldLayout< Dim > & | layout, |
| BareField< double, Dim > & | weights | ||
| ) |
Definition at line 586 of file BinaryBalancer.hpp.
References IpplInfo::Comm, CutEach(), Dim, FieldLayout< Dim >::getDomain(), Communicate::getNodes(), and Communicate::myNode().
Referenced by BinaryRepartition().

|
static |
Definition at line 551 of file BinaryBalancer.hpp.
References BcastCuts(), IpplInfo::Comm, F_REDUCE_PERP_TAG, F_TAG_CYCLE, Communicate::myNode(), TagMaker::next_tag(), ReceiveCuts(), ReceiveReduce(), and SendReduce().
Referenced by CalcBinaryRepartition().

|
static |
Definition at line 82 of file BinaryBalancer.hpp.
References Dim, FieldLayout< Dim >::getDistribution(), FieldLayout< Dim >::getRequestedDistribution(), and SERIAL.
Referenced by ReceiveReduce(), and SendReduce().

|
static |
Definition at line 125 of file BinaryBalancer.hpp.
References begin(), end(), and Attrib::Legacy::Distribution::T.
Referenced by ReceiveReduce().

|
static |
Definition at line 263 of file BinaryBalancer.hpp.
References PerpReduce(), and BrickCounter< Dim >::size().
Referenced by SendReduce().

|
inlinestatic |
Definition at line 251 of file BinaryBalancer.hpp.
References BrickIterator< T, Dim >::offset().

|
inlinestatic |
Definition at line 226 of file BinaryBalancer.hpp.
References BrickIterator< T, Dim >::offset(), and BrickCounter< Dim >::size().

|
inlinestatic |
Definition at line 188 of file BinaryBalancer.hpp.
References BrickIterator< T, Dim >::offset(), and BrickCounter< Dim >::size().
Referenced by LocalReduce().

|
static |
Definition at line 476 of file BinaryBalancer.hpp.
References IpplInfo::Comm, COMM_ANY_NODE, Message::get(), PAssert, PAssert_EQ, and Communicate::receive_block().
Referenced by CutEach().

|
static |
Definition at line 365 of file BinaryBalancer.hpp.
References BareField< T, Dim >::begin_if(), IpplInfo::Comm, COMM_ANY_NODE, BareField< T, Dim >::end_if(), FindCutAxis(), FindMedian(), Index::first(), Message::get(), BareField< T, Dim >::getLayout(), getMessage(), IpplInfo::getNodes(), Index::last(), IpplInfo::myNode(), PAssert, Communicate::receive_block(), and FieldLayout< Dim >::touch_range_rdv().
Referenced by CutEach().

|
static |
Definition at line 287 of file BinaryBalancer.hpp.
References BareField< T, Dim >::begin_if(), IpplInfo::Comm, BareField< T, Dim >::end_if(), FindCutAxis(), BareField< T, Dim >::getLayout(), NDIndex< Dim >::intersect(), LocalReduce(), Message::put(), putMessage(), Communicate::send(), Message::setCopy(), and Message::setDelete().
Referenced by CutEach().
