![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Coordinator-side connections to the ag-worker processes. More...
#include <array>#include <cerrno>#include <cstddef>#include <cstring>#include <iostream>#include <stdexcept>#include <string>#include <vector>#include <arpa/inet.h>#include <netdb.h>#include <netinet/in.h>#include <sys/socket.h>#include <sys/time.h>#include <unistd.h>#include "json.hpp"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::ag::AgWirePayload |
| One agent's static description, in the wire form the worker expects. More... | |
| class | line::ag::AgWorkerPool |
| The connections to every configured worker, plus the agent partition. More... | |
Namespaces | |
| namespace | line |
| namespace | line::ag |
Functions | |
| std::vector< std::array< double, 3 > > | line::ag::ag_triplets (const Matrix< double > &m) |
| Non-zero entries of M as [row, col, value] triplets, 0-based. | |
Coordinator-side connections to the ag-worker processes.
Speaks the protocol of jline.solvers.ag.AgWire: newline-delimited JSON over a plain TCP socket, one object per line. assign ships the STATIC half of each owned agent – its local rate matrix and the passive/active matrices of the actions it takes part in – once per solve, because none of it changes across the fixed point; sweep then carries only the reversed rates, one double per action, which is the entire coupling between agents.
A worker that cannot be reached, or that fails mid-run, is marked dead and its agents fall back to the coordinator. That is not a defensive workaround but a property of the decomposition: an agent depends on the rest of the model only through the reversed rates, so anyone holding them can solve it.
Definition in file ag_worker_client.h.