Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Parallel Namespace Reference

Concurrency implementation. More...

Classes

class  IParallelSort
 Interface of a parallel sorting algorithm. More...
class  BitonicSortDefaultTraits
 Provides the necessary operations for sorting via the BitonicSort class. More...
class  BitonicSort
 Parallel bitonic sort algorithm. More...
class  GhostItemsVariableParallelOperation
 Parallel operations on ghost entities. More...
class  IStat
 Statistics on parallelism. More...
class  Stat
 Statistics on parallelism. More...
class  VariableParallelOperationBase
 Interface for a class of parallel operations on variables. More...
class  IRequestCreator
 Interface for a request creator. More...
class  IRequestList
 Message request list. More...
class  ISubRequest
 Sub-request of a request. More...
class  MessageId
 MessageId. More...
class  MessageRank
 Rank of a message. More...
class  MessageSourceInfo
 Information about the source of a message. More...
class  MessageTag
 Message tag. More...
class  PointToPointMessageInfo
 Information for sending/receiving a point-to-point message. More...
class  Request
 Message request. More...
class  Communicator
 Communicator for message exchange. More...

Enumerations

enum  eReduceType
 Supported reduction types. More...
enum  eWaitType
 Wait type. More...
enum  eBlockingType
 Type indicating whether a message is blocking or not. More...
enum  ePointToPointMessageType
 Point-to-point message type. More...

Functions

template<typename InstanceType, typename ItemType>
void Foreach (const ItemVectorView &items_view, const ParallelLoopOptions &options, InstanceType *instance, void(InstanceType::*function)(ItemVectorViewT< ItemType > items))
template<typename InstanceType, typename ItemType>
void Foreach (const ItemGroup &items, const ParallelLoopOptions &options, InstanceType *instance, void(InstanceType::*function)(ItemVectorViewT< ItemType > items))
template<typename InstanceType, typename ItemType>
void Foreach (const ItemVectorView &items_view, InstanceType *instance, void(InstanceType::*function)(ItemVectorViewT< ItemType > items))
template<typename InstanceType, typename ItemType>
void Foreach (const ItemGroup &items, InstanceType *instance, void(InstanceType::*function)(ItemVectorViewT< ItemType > items))
template<typename LambdaType>
void Foreach (const ItemVectorView &items_view, const ParallelLoopOptions &options, const LambdaType &lambda_function)
template<typename LambdaType>
void Foreach (const ItemGroup &items, const ParallelLoopOptions &options, const LambdaType &lambda_function)
template<typename LambdaType>
void Foreach (const ItemVectorView &items_view, const LambdaType &lambda_function)
template<typename LambdaType>
void Foreach (const ItemGroup &items, const LambdaType &lambda_function)
template<typename InstanceType>
ARCANE_DEPRECATED_122 void For (Integer i0, Integer size, Integer grain_size, InstanceType *itype, void(InstanceType::*lambda_function)(Integer i0, Integer size))
template<typename InstanceType>
void For (Integer i0, Integer size, const ParallelLoopOptions &options, InstanceType *itype, void(InstanceType::*lambda_function)(Integer i0, Integer size))
template<typename LambdaType>
ARCANE_DEPRECATED_122 void For (Integer i0, Integer size, Integer grain_size, const LambdaType &lambda_function)
template<typename InstanceType>
void For (Integer i0, Integer size, InstanceType *itype, void(InstanceType::*lambda_function)(Integer i0, Integer size))
template<typename LambdaType>
void For (Integer i0, Integer size, const ParallelLoopOptions &options, const LambdaType &lambda_function)
template<typename LambdaType>
void For (Integer i0, Integer size, const LambdaType &lambda_function)
IStatcreateDefaultStat ()
 Creates a default instance.
void dumpJSON (JSONWriter &writer, const Arccore::MessagePassing::OneStat &os, bool cumulative_stat=true)
 Free function for dumping a message stat into JSON.
void printStatsCollective (IStat *s, IParallelMng *pm)
 Displays the cumulative statistics across all ranks of pm.
template<typename LambdaType>
void Foreach (const ComponentItemVectorView &items_view, const LambdaType &lambda_function)
 Applies the lambda function lambda_function instance concurrently on the component view items_view.
template<typename LambdaType>
void Foreach (const ComponentItemVectorView &items_view, const ParallelLoopOptions &options, const LambdaType &lambda_function)
 Applies the lambda function lambda_function instance concurrently on the component view items_view with the options options.
template<typename LambdaType>
void Foreach (const EnvItemVectorView &items_view, const LambdaType &lambda_function)
 Applies the lambda function lambda_function instance concurrently on the environment view items_view.
template<typename LambdaType>
void Foreach (const EnvItemVectorView &items_view, const ParallelLoopOptions &options, const LambdaType &lambda_function)
 Applies the lambda function lambda_function instance concurrently on the environment view items_view with the options options.
template<typename LambdaType>
void Foreach (const MatItemVectorView &items_view, const LambdaType &lambda_function)
 Applies the lambda function lambda_function instance concurrently on the material view items_view.
template<typename LambdaType>
void Foreach (const MatItemVectorView &items_view, const ParallelLoopOptions &options, const LambdaType &lambda_function)
 Applies the lambda function lambda_function instance concurrently on the material view items_view with the options options.

Detailed Description

Concurrency implementation.

Types of parallelism classes.

Enumeration Type Documentation

◆ eBlockingType

Type indicating whether a message is blocking or not.

Definition at line 132 of file MessagePassingGlobal.h.

◆ ePointToPointMessageType

Point-to-point message type.

Definition at line 144 of file MessagePassingGlobal.h.

◆ eReduceType

Supported reduction types.

Definition at line 110 of file MessagePassingGlobal.h.

◆ eWaitType

Wait type.

Definition at line 120 of file MessagePassingGlobal.h.

Function Documentation

◆ createDefaultStat()

IStat * Arcane::Parallel::createDefaultStat ( )

Creates a default instance.

Definition at line 128 of file arcane/src/arcane/core/parallel/Stat.cc.

◆ dumpJSON()

void Arcane::Parallel::dumpJSON ( JSONWriter & writer,
const Arccore::MessagePassing::OneStat & os,
bool cumulative_stat = true )

Free function for dumping a message stat into JSON.

Definition at line 137 of file arcane/src/arcane/core/parallel/Stat.cc.

References Arcane::MessagePassing::OneStat::cumulativeNbMessage(), Arcane::MessagePassing::OneStat::cumulativeTotalSize(), Arcane::MessagePassing::OneStat::cumulativeTotalTime(), Arcane::MessagePassing::OneStat::name(), Arcane::MessagePassing::OneStat::nbMessage(), Arcane::MessagePassing::OneStat::totalSize(), and Arcane::MessagePassing::OneStat::totalTime().

Referenced by Arcane::Parallel::Stat::dumpJSON().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ For() [1/6]

template<typename LambdaType>
void Arcane::Parallel::For ( Integer i0,
Integer size,
const LambdaType & lambda_function )
inline
Deprecated
Use Arcane::arcaneParallelFor() instead.

Definition at line 436 of file Concurrency.h.

References Arcane::TaskFactory::executeParallelFor().

Here is the call graph for this function:

◆ For() [2/6]

template<typename LambdaType>
void Arcane::Parallel::For ( Integer i0,
Integer size,
const ParallelLoopOptions & options,
const LambdaType & lambda_function )
inline
Deprecated
Use Arcane::arcaneParallelFor() instead.

Definition at line 425 of file Concurrency.h.

References Arcane::TaskFactory::executeParallelFor().

Here is the call graph for this function:

◆ For() [3/6]

template<typename InstanceType>
void Arcane::Parallel::For ( Integer i0,
Integer size,
const ParallelLoopOptions & options,
InstanceType * itype,
void(InstanceType::* lambda_function )(Integer i0, Integer size) )
inline
Deprecated
Use Arcane::arcaneParallelFor() instead.

Definition at line 391 of file Concurrency.h.

References Arcane::TaskFactory::executeParallelFor().

Here is the call graph for this function:

◆ For() [4/6]

template<typename InstanceType>
void Arcane::Parallel::For ( Integer i0,
Integer size,
InstanceType * itype,
void(InstanceType::* lambda_function )(Integer i0, Integer size) )
inline
Deprecated
Use Arcane::arcaneParallelFor() instead.

Definition at line 413 of file Concurrency.h.

References Arcane::TaskFactory::executeParallelFor().

Here is the call graph for this function:

◆ For() [5/6]

template<typename LambdaType>
ARCANE_DEPRECATED_122 void Arcane::Parallel::For ( Integer i0,
Integer size,
Integer grain_size,
const LambdaType & lambda_function )
inline
Deprecated
Use the For overload with ParallelLoopOptions as an argument.

Definition at line 402 of file Concurrency.h.

References Arcane::TaskFactory::executeParallelFor().

Here is the call graph for this function:

◆ For() [6/6]

template<typename InstanceType>
ARCANE_DEPRECATED_122 void Arcane::Parallel::For ( Integer i0,
Integer size,
Integer grain_size,
InstanceType * itype,
void(InstanceType::* lambda_function )(Integer i0, Integer size) )
inline
Deprecated
Use the For overload with ParallelLoopOptions as an argument.

Definition at line 379 of file Concurrency.h.

References Arcane::TaskFactory::executeParallelFor().

Here is the call graph for this function:

◆ Foreach() [1/8]

template<typename LambdaType>
void Arcane::Parallel::Foreach ( const ItemGroup & items,
const LambdaType & lambda_function )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 370 of file Concurrency.h.

References Arcane::ItemGroup::_paddedView(), and Foreach().

Here is the call graph for this function:

◆ Foreach() [2/8]

template<typename LambdaType>
void Arcane::Parallel::Foreach ( const ItemGroup & items,
const ParallelLoopOptions & options,
const LambdaType & lambda_function )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 349 of file Concurrency.h.

References Arcane::ItemGroup::_paddedView(), and Foreach().

Here is the call graph for this function:

◆ Foreach() [3/8]

template<typename InstanceType, typename ItemType>
void Arcane::Parallel::Foreach ( const ItemGroup & items,
const ParallelLoopOptions & options,
InstanceType * instance,
void(InstanceType::* function )(ItemVectorViewT< ItemType > items) )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 303 of file Concurrency.h.

References Foreach().

Here is the call graph for this function:

◆ Foreach() [4/8]

template<typename InstanceType, typename ItemType>
void Arcane::Parallel::Foreach ( const ItemGroup & items,
InstanceType * instance,
void(InstanceType::* function )(ItemVectorViewT< ItemType > items) )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 325 of file Concurrency.h.

References Foreach().

Here is the call graph for this function:

◆ Foreach() [5/8]

template<typename LambdaType>
void Arcane::Parallel::Foreach ( const ItemVectorView & items_view,
const LambdaType & lambda_function )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 359 of file Concurrency.h.

References Arcane::AbstractItemRangeFunctor::blockGrainSize(), Arcane::TaskFactory::executeParallelFor(), and Arcane::AbstractItemRangeFunctor::nbBlock().

Here is the call graph for this function:

◆ Foreach() [6/8]

template<typename LambdaType>
void Arcane::Parallel::Foreach ( const ItemVectorView & items_view,
const ParallelLoopOptions & options,
const LambdaType & lambda_function )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 335 of file Concurrency.h.

References Arcane::AbstractItemRangeFunctor::blockGrainSize(), Arcane::TaskFactory::executeParallelFor(), Arcane::ParallelLoopOptions::grainSize(), Arcane::AbstractItemRangeFunctor::nbBlock(), and Arcane::ParallelLoopOptions::setGrainSize().

Here is the call graph for this function:

◆ Foreach() [7/8]

template<typename InstanceType, typename ItemType>
void Arcane::Parallel::Foreach ( const ItemVectorView & items_view,
const ParallelLoopOptions & options,
InstanceType * instance,
void(InstanceType::* function )(ItemVectorViewT< ItemType > items) )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 288 of file Concurrency.h.

References Arcane::AbstractItemRangeFunctor::blockGrainSize(), Arcane::TaskFactory::executeParallelFor(), Arcane::ParallelLoopOptions::grainSize(), Arcane::AbstractItemRangeFunctor::nbBlock(), and Arcane::ParallelLoopOptions::setGrainSize().

Referenced by Foreach(), Foreach(), Foreach(), and Foreach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Foreach() [8/8]

template<typename InstanceType, typename ItemType>
void Arcane::Parallel::Foreach ( const ItemVectorView & items_view,
InstanceType * instance,
void(InstanceType::* function )(ItemVectorViewT< ItemType > items) )
inline
Deprecated
Use Arcane::arcaneParallelForeach() instead.

Definition at line 314 of file Concurrency.h.

References Arcane::AbstractItemRangeFunctor::blockGrainSize(), Arcane::TaskFactory::executeParallelFor(), and Arcane::AbstractItemRangeFunctor::nbBlock().

Here is the call graph for this function:

◆ printStatsCollective()

void Arcane::Parallel::printStatsCollective ( IStat * s,
IParallelMng * pm )

Displays the cumulative statistics across all ranks of pm.

Definition at line 354 of file arcane/src/arcane/core/parallel/Stat.cc.

References Arcane::Parallel::IStat::printCollective().

Here is the call graph for this function: