Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::CA::Parallel_Engine_Config Struct Reference

Configuration for Parallel_Synchronous_Engine. More...

#include <tpl_ca_parallel_engine.H>

Collaboration diagram for Aleph::CA::Parallel_Engine_Config:
[legend]

Public Attributes

ThreadPool * pool = nullptr
 Thread pool to schedule on. nullptr means Aleph::default_pool().
 
std::size_t num_partitions = 0
 Number of partitions per step.
 
std::size_t min_parallel_cells = 4096
 Workloads with fewer cells than this are executed sequentially without touching the pool.
 

Detailed Description

Configuration for Parallel_Synchronous_Engine.

Every field has a sensible default, so the structure is mostly useful for tuning. Pass it to the engine constructor or update the configuration in place via set_config().

Definition at line 144 of file tpl_ca_parallel_engine.H.

Member Data Documentation

◆ min_parallel_cells

std::size_t Aleph::CA::Parallel_Engine_Config::min_parallel_cells = 4096

Workloads with fewer cells than this are executed sequentially without touching the pool.

The default is sized so that the per-step task overhead never dominates the cell update cost.

Definition at line 158 of file tpl_ca_parallel_engine.H.

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

◆ num_partitions

std::size_t Aleph::CA::Parallel_Engine_Config::num_partitions = 0

Number of partitions per step.

0 means "use `pool->num_threads()`". Setting this larger than the pool size oversubscribes the pool; setting it smaller reduces task overhead at the cost of using fewer cores.

Definition at line 153 of file tpl_ca_parallel_engine.H.

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

◆ pool

ThreadPool* Aleph::CA::Parallel_Engine_Config::pool = nullptr

Thread pool to schedule on. nullptr means Aleph::default_pool().

Definition at line 147 of file tpl_ca_parallel_engine.H.

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: