Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::IMultiReduce Class Referenceabstract

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 ReduceSumOfRealHelpergetSumOfReal (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 IMultiReducecreate (IParallelMng *pm)

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~IMultiReduce()

virtual Arcane::IMultiReduce::~IMultiReduce ( )
inlinevirtual

Frees resources.

Definition at line 105 of file IMultiReduce.h.

Member Function Documentation

◆ create()

IMultiReduce * Arcane::IMultiReduce::create ( IParallelMng * pm)
static

Definition at line 89 of file MultiReduce.cc.

◆ execute()

virtual void Arcane::IMultiReduce::execute ( )
pure virtual

Executes the reductions.

Implemented in Arcane::MultiReduce.

◆ getSumOfReal()

virtual ReduceSumOfRealHelper * Arcane::IMultiReduce::getSumOfReal ( const String & name)
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.

◆ isStrict()

virtual bool Arcane::IMultiReduce::isStrict ( ) const
pure virtual

Indicates if strict mode is used.

Implemented in Arcane::MultiReduce.

◆ setStrict()

virtual void Arcane::IMultiReduce::setStrict ( bool is_strict)
pure virtual

Sets the strict mode.

Implemented in Arcane::MultiReduce.


The documentation for this class was generated from the following files: