Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::CA::Row_Partition< Rank > Struct Template Reference

Row partitioning along axis 0. More...

#include <ca-tiling.H>

Static Public Member Functions

static constexpr Range1D slab (const std::array< ca_size_t, Rank > &extents, const ca_size_t parts, const ca_size_t idx) noexcept
 Number of partitions along axis 0 with a balanced split.
 

Detailed Description

template<std::size_t Rank>
struct Aleph::CA::Row_Partition< Rank >

Row partitioning along axis 0.

For row-major storage this produces contiguous slabs of memory per worker and is therefore the friendliest schedule for the L1/L2 cache hierarchy. It works for every rank (1, 2, 3).

Template Parameters
Ranklattice dimension (must match the engine's).

Definition at line 179 of file ca-tiling.H.

Member Function Documentation

◆ slab()

template<std::size_t Rank>
static constexpr Range1D Aleph::CA::Row_Partition< Rank >::slab ( const std::array< ca_size_t, Rank > &  extents,
const ca_size_t  parts,
const ca_size_t  idx 
)
inlinestaticconstexprnoexcept

Number of partitions along axis 0 with a balanced split.

Each other axis is iterated in full inside every partition.

Parameters
[in]extentsuser-visible extents of the lattice.
[in]partsrequested number of partitions.
[in]idxpartition index.
Returns
the half-open row range owned by idx.

Definition at line 190 of file ca-tiling.H.

References Aleph::blossom_maximum_cardinality_matching(), and Aleph::CA::split_range_balanced().

Referenced by Aleph::CA::Parallel_Synchronous_Engine< Lattice, Rule, Neighborhood, Order >::step(), and TEST().


The documentation for this struct was generated from the following file: