Management of multiple reductions. More...
#include <arcane/core/parallel/IMultiReduce.h>
Public Member Functions | |
| virtual | ~IMultiReduce () |
| Frees resources. | |
| virtual void | execute ()=0 |
| Executes the reductions. | |
| virtual bool | isStrict () const =0 |
| Indicates if strict mode is used. | |
| virtual void | setStrict (bool is_strict)=0 |
| Sets the strict mode. | |
| virtual ReduceSumOfRealHelper * | getSumOfReal (const String &name)=0 |
| Returns the name manager name. If a name manager name does not exist, it is created. The returned object remains the property of this instance and must not be explicitly destroyed. It will be when this instance is destroyed. | |
Static Public Member Functions | |
| static IMultiReduce * | create (IParallelMng *pm) |
Management of multiple reductions.
For now, only 'sum' type reductions on reals are supported.
It is possible to specify a strict mode, via setStrict(), which allows these sums to be identical regardless of the order of the operations. However, this requires storing all intermediate values and is therefore memory-intensive and not scalable because a single processor will handle the sum calculation.
The strict mode must be specified before creating the reductions. The strict mode is automatically active if the environment variable ARCANE_STRICT_REDUCE is set.
Definition at line 101 of file IMultiReduce.h.
|
inlinevirtual |
Frees resources.
Definition at line 105 of file IMultiReduce.h.
|
static |
Definition at line 89 of file MultiReduce.cc.
|
pure virtual |
Executes the reductions.
Implemented in Arcane::MultiReduce.
|
pure virtual |
Returns the name manager name. If a name manager name does not exist, it is created. The returned object remains the property of this instance and must not be explicitly destroyed. It will be when this instance is destroyed.
Implemented in Arcane::MultiReduce.
|
pure virtual |
Indicates if strict mode is used.
Implemented in Arcane::MultiReduce.
|
pure virtual |
Sets the strict mode.
Implemented in Arcane::MultiReduce.