Skip to content

Class Index

All public types in the gempba namespace, grouped by role. abstract marks pure-virtual interfaces.

ClassDescription
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