![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Decomposition-aggregation driver for integrated cache-queueing models, a port of matlab/src/api/da/da_cacheqn.m. More...
#include <cstddef>#include <limits>#include <functional>#include <vector>#include "line/api/cache/cache_mva.h"#include "line/api/cache/cache_prob_erec.h"#include "line/api/cache/cache_ttl_lrua.h"#include "line/api/cache/cache_miss_fpi.h"#include "line/api/da/da_cache_isolate.h"#include "line/api/da/da_fpi.h"#include "line/lang/qn/network_struct.h"#include "line/solvers/mva/mva_types.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::da::CacheqnInfo< T > |
| The converged isolated-cache inputs, kept for per-item occupancy reporting. More... | |
| struct | line::da::CacheqnResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::da |
Functions | |
| template<class T> | |
| std::vector< Matrix< T > > | line::da::da_cacheqn_itemprob (const CacheqnInfo< T > &info) |
| Per-item occupancy of every cache from the CONVERGED access factors. | |
| template<class T> | |
| CacheqnResult< T > | line::da::da_cacheqn (qn::NetworkStruct< T > sn, bool exact, const mva::MvaOptions &opt, const std::function< mva::MvaSolution< T >(const qn::NetworkStruct< T > &)> &netfun, const std::function< std::vector< T >(const Matrix< T > &, const std::vector< int > &, const std::vector< Matrix< T > > &, const qn::CacheParam< T > &)> &missfun=nullptr) |
| Decomposition-aggregation driver for integrated cache-queueing models, a port of matlab/src/api/da/da_cacheqn.m. | |
Decomposition-aggregation driver for integrated cache-queueing models, a port of matlab/src/api/da/da_cacheqn.m.
Alternates between (i) solving each cache in isolation given the current per-class arrival rates and (ii) solving the surrounding queueing network with every cache replaced by a class switch that routes according to the current hit/miss probabilities, until the cache arrival rates reach a fixed point (da_fpi under the 1-norm). The cache node is RELABELLED to a ClassSwitch but stays stateful, so it remains a retained node of the stochastic complement – exactly as the reference does. The per-sweep routing rewrite goes straight into rtnodes, after which da_recompute_visits_from_rtnodes rebuilds rt and the visits with the chains held fixed.
ARITHMETIC: the miss solve (cache_mva / cache_miss_fpi) and the network solve decide the achievable T; the driver itself is field arithmetic. The tolerance loop is inexact by construction whatever the backend.
Definition in file da_cacheqn.h.