LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
sn_node_metrics.h File Reference

Ports of matlab/src/api/sn/sn_get_node_arvr_from_tput.m and sn_get_node_tput_from_tput.m: the NODE-level arrival rate and throughput tables behind getAvgNode, getAvgNodeTable and the node chain getters. More...

#include <cstddef>
#include <map>
#include <vector>
#include "line/lang/qn/network_struct.h"
#include "line/num/number.h"
Include dependency graph for sn_node_metrics.h:

Go to the source code of this file.

Classes

struct  line::api::CacheActualProb< T >
 The converged cache split, per ORIGINAL class of one Cache node. More...

Namespaces

namespace  line
namespace  line::api

Functions

template<class T>
Matrix< T > line::api::sn_get_node_arvr_from_tput (const qn::NetworkStruct< T > &sn, const Matrix< T > &TN, const Matrix< T > &AN)
 Port of sn_get_node_arvr_from_tput.
template<class T>
Matrix< T > line::api::sn_get_node_tput_from_tput (const qn::NetworkStruct< T > &sn, const Matrix< T > &TN, const Matrix< T > &ANn, const std::map< std::size_t, CacheActualProb< T > > &cache_prob=std::map< std::size_t, CacheActualProb< T > >())
 Port of sn_get_node_tput_from_tput.

Detailed Description

Ports of matlab/src/api/sn/sn_get_node_arvr_from_tput.m and sn_get_node_tput_from_tput.m: the NODE-level arrival rate and throughput tables behind getAvgNode, getAvgNodeTable and the node chain getters.

Station metrics are what a solver returns; node metrics are what the user asks for when the model has nodes that are not stations – a Router, a ClassSwitch, a Cache, a Fork or a Join. Those nodes have no service and no queue, so their only meaningful averages are the rates flowing through them, and those come from the station throughputs plus the NODE-level routing sn.rtnodes and the per-chain node visits.

REFERENCE STATION INDEX. Both functions read sn.refstat(c) with c a CHAIN index, while sn.refstat is indexed by CLASS. The two agree whenever the chain's classes are numbered from its own index, which every single-chain and every non-switching model satisfies, and the refresh already refuses a chain whose classes disagree on their reference station. Reproduced as the reference has it: correcting the index here alone would make these tables disagree with MATLAB, the JAR and native Python at once.

CACHE HIT AND MISS RATES. The reference splits a Cache node's flow with the ACTUAL hit and miss probabilities the cache fixed point converged to, which this struct does not store on the node – refresh_cacheqn_actual_visits folds them into the visits instead. They are therefore optional arguments: a caller holding the converged probabilities passes them and gets the reference's first branch, and a caller that does not gets its second, the visit-ratio split, which is what the folded visits already encode.

ARITHMETIC: field. Sums and quotients only.

Definition in file sn_node_metrics.h.