Class Index
All public types in the gempba namespace, grouped by role. abstract marks
pure-virtual interfaces.
| Class | Description |
|---|---|
| Interfaces | |
load_balancer
abstract |
Thread-level work distribution within a single process |
node_core
abstract |
Base class for node implementations; handle type is shared_ptr<node_core> |
node_traits<T>
abstract |
Full interface contract every node must satisfy; T is the handle type used for tree navigation |
scheduler
abstract |
Process-level IPC coordination — transport-agnostic contract |
scheduler::center
abstract |
Seeds the initial task and coordinates workers (rank 0) |
scheduler::worker
abstract |
Explores the search tree and exchanges tasks with other processes (non-zero ranks) |
serial_runnable
abstract |
Type erasure for functions that cross process boundaries |
stats
abstract |
Runtime metrics collection for a single process |
stats_visitor
abstract |
Format-agnostic readout of collected metrics |
| Concrete types | |
node |
User-facing node handle — wraps shared_ptr<node_core>, cheap to copy |
node_manager |
Control panel — load balancer facade, thread pool config, result tracking |
| Built-in implementations | |
default_mpi_stats |
Built-in stats implementation for the MPI schedulers |
default_mpi_stats_visitor |
Built-in stats_visitor — typed field access for MPI stats |
quasi_horizontal_load_balancer |
Distributes work near the root first; recommended for unbalanced trees |
work_stealing_load_balancer |
Naive FIFO thread scheduler — baseline / benchmarking only |
mpi_semi_centralized_scheduler |
Tasks travel point-to-point between workers; recommended for production |
mpi_centralized_scheduler |
All tasks route through the center — benchmarking only |
| Utilities | |
Queue<T> |
Thread-safe FIFO queue used internally by load balancers |
result |
Found solution: best score plus serialized data as task_packet |
score |
17-byte type-erased numeric value for optimization goals; trivially copyable |
task_bundle |
IPC unit — task_packet plus integer routing ID |
task_packet |
Byte buffer (vector<byte>) for serialized arguments and results |
transmission_guard |
RAII lock for the outgoing IPC channel; released on destruction |
tree |
Index-based flat tree used for scheduler startup topology |