Skip to content

ZipFetchPlan

template<class ExecutionPolicy, class FTraits, class... Groups>
class ZipFetchPlan

Defined in src/lib/sbio/core/iteration.hh:196

The planned IO for a fixed set of BrokerGroups.

Every distinct fetch (StreamBroker + access pattern + step mapping) across all the groups is recorded once, so a step (or batch) is fetched exactly once per distinct fetch, through the Execution policy’s get_data / get_data_steps hooks.

Return Name Description
SBIO_HD ZipFetchPlan inline explicit
SBIO_HD hd_std::size_t num_fetches const inline The number of distinct fetches performed per step (or batch).
SBIO_HDIOStatus fetch const inline Perform every planned fetch for the step, through the Execution policy.
SBIO_HDIOStatus fetch const inline Perform every planned fetch for the batch [first, last), through the policy.

inline explicit

inline explicit SBIO_HD ZipFetchPlan(const Groups &... groups)

Defined in src/lib/sbio/core/iteration.hh:207


const inline

inline SBIO_HD hd_std::size_t num_fetches() const

Defined in src/lib/sbio/core/iteration.hh:216

The number of distinct fetches performed per step (or batch).


const inline

inline SBIO_HDIOStatus fetch(StepIdxType step_idx) const

Defined in src/lib/sbio/core/iteration.hh:223

Perform every planned fetch for the step, through the Execution policy.

Parameter Type Description
step_idx StepIdxType The index of the step to fetch.

const inline

inline SBIO_HDIOStatus fetch(StepBatch< StepIdxType > batch) const

Defined in src/lib/sbio/core/iteration.hh:239

Perform every planned fetch for the batch [first, last), through the policy.

Return Name Description
constexpr hd_std::size_t MaxFetches static constexpr The maximum number of distinct fetches over every StreamBroker of every group.

static constexpr

constexpr hd_std::size_t MaxFetches {
( Groups::SegmentCapacity + ... + 0 )
}

Defined in src/lib/sbio/core/iteration.hh:203

The maximum number of distinct fetches over every StreamBroker of every group.

Name Description
StepIdxType

using StepIdxType = typename FTraits::StepIdxType

Defined in src/lib/sbio/core/iteration.hh:198

Return Name Description
hd_std::tuple< const Groups *... > m_groups
BoundedList< Fetch, MaxFetches > m_fetches

hd_std::tuple< const Groups *... > m_groups

Defined in src/lib/sbio/core/iteration.hh:454


BoundedList< Fetch, MaxFetches > m_fetches

Type: BoundedList< Fetch, MaxFetches >

Defined in src/lib/sbio/core/iteration.hh:455

Return Name Description
SBIO_HD void plan_fetches inline
SBIO_HD void plan_group inline
SBIO_HD bool shares_fetch const inline
SBIO_HD bool shares_buffer const inline
SBIO_HDIOStatus fetch_range const inline The range of steps for a StreamBroker that are read for a BrokerGroups range.
SBIO_HDIOStatus check_shared_buffer const inline
SBIO_HDIOStatus fetch_one const inline
SBIO_HDIOStatus fetch_range_one const inline

inline

template<hd_std::size_t... Is> inline SBIO_HD void plan_fetches(hd_std::index_sequence< Is... >)

Defined in src/lib/sbio/core/iteration.hh:267


inline

template<hd_std::size_t G> inline SBIO_HD void plan_group()

Defined in src/lib/sbio/core/iteration.hh:272


const inline

template<class Group, hd_std::size_t... Is> inline SBIO_HD bool shares_fetch(const Group & group, hd_std::size_t broker_no, const Fetch & fetch_, hd_std::index_sequence< Is... >) const

Defined in src/lib/sbio/core/iteration.hh:305


const inline

template<class Group, hd_std::size_t... Is> inline SBIO_HD bool shares_buffer(const Group & group, hd_std::size_t broker_no, const Fetch & fetch_, hd_std::index_sequence< Is... > seq) const

Defined in src/lib/sbio/core/iteration.hh:324


const inline

template<hd_std::size_t... Is> inline SBIO_HDIOStatus fetch_range(const Fetch & fetch_, StepIdxType first, StepIdxType last, hd_std::size_t & first_ordinal, hd_std::size_t & end_ordinal, hd_std::index_sequence< Is... > seq) const

Defined in src/lib/sbio/core/iteration.hh:348

The range of steps for a StreamBroker that are read for a BrokerGroups range.


const inline

template<hd_std::size_t... Is> inline SBIO_HDIOStatus check_shared_buffer(const Fetch & fetch_, StepIdxType first, StepIdxType last, hd_std::index_sequence< Is... > seq) const

Defined in src/lib/sbio/core/iteration.hh:371


const inline

template<hd_std::size_t... Is> inline SBIO_HDIOStatus fetch_one(const Fetch & fetch_, StepIdxType step, hd_std::index_sequence< Is... >) const

Defined in src/lib/sbio/core/iteration.hh:407


const inline

template<hd_std::size_t... Is> inline SBIO_HDIOStatus fetch_range_one(const Fetch & fetch_, StepBatch< StepIdxType > batch, hd_std::index_sequence< Is... >) const

Defined in src/lib/sbio/core/iteration.hh:431

Return Name Description
constexpr hd_std::size_t NoFetch static constexpr

static constexpr

constexpr hd_std::size_t NoFetch { static_cast<hd_std::size_t>(-1) }

Defined in src/lib/sbio/core/iteration.hh:264