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_traits
abstract |
Shared base for scheduler and its role views: state, counters, world layout |
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 |
serializable
abstract |
Contract for objects that round-trip through a task_packet: serialize() / deserialize() |
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 |
| Telemetry (see the Telemetry section) | |
telemetry::telemetry_hub |
Process-wide telemetry hub: counters, probes, transport, and the dashboard server (center role) |
telemetry::worker_frame, node_frame, topology_snapshot |
The frame structs behind the live stream: per-worker counters, per-host stats, and the startup topology |
| C ABI | |
gempba/cabi/gempba.h |
Stable extern "C" surface over the full runtime: opaque handles, status codes, callbacks. The Java binding is its first consumer |
| 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 |