LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
cache_replc_hlru.m
1clear solver AvgTable;
2
3% h-LRU / LRU(m) replacement: h LRU lists of capacities m(1..h); a miss
4% inserts the item at the head of list 1, a hit in list l exchanges the item
5% with the tail of list l+1. Exact in CTMC; simulated in SSA/LDES; MVA uses
6% the characteristic-time (TTL) approximation of Gast and Van Houdt
7% (SIGMETRICS 2015), which reduces to the Che approximation for h=1.
8
9model = Network('model');
10
11n = 6; % number of items
12m = [2 1]; % list capacities: list 1 holds 2 items, list 2 holds 1
13
14source = Source(model, 'Source');
15cacheNode = Cache(model, 'Cache', n, m, ReplacementStrategy.HLRU);
16sink = Sink(model, 'Sink');
17
18jobClass = OpenClass(model, 'InitClass', 0);
19hitClass = OpenClass(model, 'HitClass', 0);
20missClass = OpenClass(model, 'MissClass', 0);
21
22source.setArrival(jobClass, Exp(1));
23
24pAccess = Zipf(1.2, n); % Zipf-like item references
25cacheNode.setRead(jobClass, pAccess);
26
27cacheNode.setHitClass(jobClass, hitClass);
28cacheNode.setMissClass(jobClass, missClass);
29
30P = model.initRoutingMatrix;
31P{jobClass, jobClass}(source, cacheNode) = 1.0;
32P{hitClass, hitClass}(cacheNode, sink) = 1.0;
33P{missClass, missClass}(cacheNode, sink) = 1.0;
34model.link(P);
35
36solver{1} = CTMC(model,'keep',false,'cutoff',1); % exact
37AvgTable{1} = solver{1}.getAvgNodeTable; AvgTable{1}
38
39model.reset;
40solver{2} = MVA(model); % TTL approximation
41AvgTable{2} = solver{2}.getAvgNodeTable; AvgTable{2}
42
43model.reset;
44solver{3} = SSA(model,'samples',1e4,'method','serial','seed',23000);
45AvgTable{3} = solver{3}.getAvgNodeTable; AvgTable{3}
Definition Station.m:245