LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
cache_compare_replc.m
1clear solver AvgTable;
2
3n=5; m=[2,1]; alpha=1.0;
4replStrat = {ReplacementStrategy.RR, ReplacementStrategy.FIFO, ReplacementStrategy.LRU};
5
6AvgTable={};
7solver={};
8%fprintf(1,'replc-strategy, ctmc, mva, nc:\n');
9for s = 1:length(replStrat)
10 model = Network('model');
11 source = Source(model, 'Source');
12 cacheNode = Cache(model, 'Cache', n, m, replStrat{s});
13 sink = Sink(model, 'Sink');
14
15 jobClass = OpenClass(model, 'InitClass', 0);
16 hitClass = OpenClass(model, 'HitClass', 0);
17 missClass = OpenClass(model, 'MissClass', 0);
18
19 source.setArrival(jobClass, Exp(2));
20
21 pAccess = Zipf(alpha, n); % Zipf-like item references
22 cacheNode.setRead(jobClass, pAccess);
23
24 cacheNode.setHitClass(jobClass, hitClass);
25 cacheNode.setMissClass(jobClass, missClass);
26
27 P = model.initRoutingMatrix;
28
29 P{jobClass, jobClass}(source, cacheNode) = 1.0;
30 P{hitClass, hitClass}(cacheNode, sink) = 1.0;
31 P{missClass, missClass}(cacheNode, sink) = 1.0;
32
33 model.link(P);
34
35 solver{end+1} = CTMC(model,'keep',false,'cutoff',1,'verbose',false);
36 AvgTable{end+1} = solver{end}.getAvgNodeTable;
37 hr = cacheNode.getHitRatio; % per-class vector; read-class entry holds the hit ratio
38 if ~isempty(hr)
39 ctmcHitRatio(s) = hr(jobClass.index);
40 else
41 ctmcHitRatio(s) = NaN;
42 end
43
44 if MVA.supports(model)
45 solver{end+1} = MVA(model,'verbose',false);
46 model.reset; AvgTable{end+1} = solver{end}.getAvgNodeTable;
47 hr = cacheNode.getHitRatio;
48 if ~isempty(hr)
49 mvaHitRatio(s) = hr(jobClass.index);
50 else
51 mvaHitRatio(s) = NaN;
52 end
53 end
54
55 if NC.supports(model)
56 solver{end+1} = NC(model,'verbose',false);
57 model.reset; AvgTable{end+1} = solver{end}.getAvgNodeTable;
58 hr = cacheNode.getHitRatio;
59 if ~isempty(hr)
60 ncHitRatio(s) = hr(jobClass.index);
61 else
62 ncHitRatio(s) = NaN;
63 end
64 else
65 ncHitRatio(s) = NaN;
66 end
67
68 fprintf(1,'%s: %.8f, %.8f, %.8f\n',ReplacementStrategy.toString(replStrat{s}),ctmcHitRatio(s),mvaHitRatio(s),ncHitRatio(s));
69end