Base class for functors on a list of entities. More...
#include <arcane/core/ItemFunctor.h>
Public Member Functions | |
| AbstractItemRangeFunctor (ItemVectorView items_view, Int32 grain_size) | |
| Int32 | nbBlock () const |
| Number of blocks. | |
| Int32 | blockGrainSize () const |
| Desired size of an iteration interval. | |
| Public Member Functions inherited from Arcane::IRangeFunctor | |
| virtual | ~IRangeFunctor ()=default |
| Releases resources. | |
| virtual void | executeFunctor (Int32 begin, Int32 size)=0 |
| Executes the associated method. | |
Static Public Attributes | |
| static const Integer | DEFAULT_GRAIN_SIZE = 400 |
Protected Member Functions | |
| ItemVectorView | _view (Int32 begin_block, Int32 nb_block, Int32 *true_begin=nullptr) const |
Protected Attributes | |
| ItemVectorView | m_items |
| Int32 | m_block_size = 0 |
| Int32 | m_nb_block = 0 |
| Int32 | m_block_grain_size = 0 |
Base class for functors on a list of entities.
This class allows splitting an iteration over an ItemVector by ensuring that iterations occur on a multiple of m_block_size. For now, this value is always 8, and thus iterations over entities are done in blocks of 8 values. This allows guaranteeing for vectorization that the sub-views of m_items will be correctly aligned.
Definition at line 41 of file ItemFunctor.h.
| Arcane::AbstractItemRangeFunctor::AbstractItemRangeFunctor | ( | ItemVectorView | items_view, |
| Int32 | grain_size ) |
Definition at line 26 of file ItemFunctor.cc.
|
protected |
Definition at line 50 of file ItemFunctor.cc.
|
inline |
Desired size of an iteration interval.
Definition at line 56 of file ItemFunctor.h.
Referenced by Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), and Arcane::Parallel::Foreach().
|
inline |
Number of blocks.
Definition at line 53 of file ItemFunctor.h.
Referenced by Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), and Arcane::Parallel::Foreach().
|
static |
Definition at line 46 of file ItemFunctor.h.
|
protected |
Definition at line 63 of file ItemFunctor.h.
|
protected |
Definition at line 61 of file ItemFunctor.h.
|
protected |
Definition at line 60 of file ItemFunctor.h.
|
protected |
Definition at line 62 of file ItemFunctor.h.