MPIThreadedDistribution::IterationState
IterationState
Section titled “IterationState”#include <sbio/execution/mpi_threaded.hh>class IterationStateDefined in src/lib/sbio/execution/mpi_threaded.hh:318
Friends
Section titled “Friends”| Name | Description |
|---|---|
MPIThreadedDistribution |
MPIThreadedDistribution
Section titled “MPIThreadedDistribution”friend class MPIThreadedDistributionDefined in src/lib/sbio/execution/mpi_threaded.hh:364
Public Methods
Section titled “Public Methods”| Return | Name | Description |
|---|---|---|
IterationState inline |
||
IterationState inline noexcept |
||
IterationState & |
operator= inline noexcept |
IterationState
Section titled “IterationState”inline
inline IterationState()Defined in src/lib/sbio/execution/mpi_threaded.hh:320
IterationState
Section titled “IterationState”inline noexcept
inline IterationState(IterationState && other) noexceptDefined in src/lib/sbio/execution/mpi_threaded.hh:325
operator=
Section titled “operator=”inline noexcept
inline IterationState & operator=(IterationState && other) noexceptDefined in src/lib/sbio/execution/mpi_threaded.hh:342
Private Attributes
Section titled “Private Attributes”| Return | Name | Description |
|---|---|---|
std::atomic< std::size_t > |
m_shared_capacity |
Intra-rank capacity store for inter-thread synchronization of indices. |
std::atomic< bool > |
m_exhausted |
Latch for if the rank has exhausted all indices. |
std::atomic< std::size_t > |
m_in_flight |
The number of steps handed out by next() and not yet finished processing. |
std::mutex |
m_trigger_mutex |
Mutex for thread synchronization on reindexing |
SegmentState< bool > |
m_holding_step |
Whether this thread is holding a step. |
std::atomic< std::size_t > |
m_batch_round |
The round counter for the rank. |
std::atomic< std::size_t > |
m_batch_round_base |
The round when the capacity window started (was refilled). |
std::atomic< std::size_t > |
m_batch_window_start |
The first step of the window. |
std::atomic< std::size_t > |
m_batch_blocks_before |
The number dealt in the window before the current one. |
std::atomic< std::size_t > |
m_window_version |
Odd while a thread changes the window above (with m_shared_capacity). |
std::atomic< std::size_t > |
m_active_units |
The number of this rank’s threads currently iterating with this state. |
SegmentState< bool > |
m_participating |
Whether this thread is iterating. |
std::atomic< bool > |
m_departed |
Latch for if this rank left the iteration early (all its threads left). |
std::vector< char > |
m_node_departed |
Which node ranks left the iteration early. |
int |
m_tag |
Message tag of this iteration (in the order states are created on each rank). |
m_shared_capacity
Section titled “m_shared_capacity”std::atomic< std::size_t > m_shared_capacity { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:369
Intra-rank capacity store for inter-thread synchronization of indices.
m_exhausted
Section titled “m_exhausted”std::atomic< bool > m_exhausted { false }Defined in src/lib/sbio/execution/mpi_threaded.hh:373
Latch for if the rank has exhausted all indices.
m_in_flight
Section titled “m_in_flight”std::atomic< std::size_t > m_in_flight { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:380
The number of steps handed out by next() and not yet finished processing.
A thread returns a step at the start of each next() call.
m_trigger_mutex
Section titled “m_trigger_mutex”std::mutex m_trigger_mutexDefined in src/lib/sbio/execution/mpi_threaded.hh:385
Mutex for thread synchronization on reindexing
m_holding_step
Section titled “m_holding_step”SegmentState< bool > m_holding_stepType: SegmentState< bool >
Defined in src/lib/sbio/execution/mpi_threaded.hh:387
Whether this thread is holding a step.
m_batch_round
Section titled “m_batch_round”std::atomic< std::size_t > m_batch_round { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:392
The round counter for the rank.
m_batch_round_base
Section titled “m_batch_round_base”std::atomic< std::size_t > m_batch_round_base { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:396
The round when the capacity window started (was refilled).
m_batch_window_start
Section titled “m_batch_window_start”std::atomic< std::size_t > m_batch_window_start { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:400
The first step of the window.
m_batch_blocks_before
Section titled “m_batch_blocks_before”std::atomic< std::size_t > m_batch_blocks_before { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:404
The number dealt in the window before the current one.
m_window_version
Section titled “m_window_version”std::atomic< std::size_t > m_window_version { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:408
Odd while a thread changes the window above (with m_shared_capacity).
m_active_units
Section titled “m_active_units”std::atomic< std::size_t > m_active_units { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:413
The number of this rank’s threads currently iterating with this state.
m_participating
Section titled “m_participating”SegmentState< bool > m_participatingType: SegmentState< bool >
Defined in src/lib/sbio/execution/mpi_threaded.hh:414
Whether this thread is iterating.
m_departed
Section titled “m_departed”std::atomic< bool > m_departed { false }Defined in src/lib/sbio/execution/mpi_threaded.hh:419
Latch for if this rank left the iteration early (all its threads left).
m_node_departed
Section titled “m_node_departed”std::vector< char > m_node_departed {}Defined in src/lib/sbio/execution/mpi_threaded.hh:426
Which node ranks left the iteration early.
int m_tag { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:431
Message tag of this iteration (in the order states are created on each rank).
Private Static Attributes
Section titled “Private Static Attributes”| Return | Name | Description |
|---|---|---|
std::atomic< int > |
next_tag static |
next_tag
Section titled “next_tag”static
std::atomic< int > next_tag { 0 }Defined in src/lib/sbio/execution/mpi_threaded.hh:432