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 if ~isempty(cacheNode.getHitRatio)
38 ctmcHitRatio(s) = cacheNode.getHitRatio;
39 else
40 ctmcHitRatio(s) = NaN;
41 end
42
43 if MVA.supports(model)
44 solver{end+1} = MVA(model,'verbose',false);
45 model.reset; AvgTable{end+1} = solver{end}.getAvgNodeTable;
46 if ~isempty(cacheNode.getHitRatio)
47 mvaHitRatio(s) = cacheNode.getHitRatio;
48 else
49 mvaHitRatio(s) = NaN;
50 end
51 end
52
53 if NC.supports(model)
54 solver{end+1} = NC(model,'verbose',false);
55 model.reset; AvgTable{end+1} = solver{end}.getAvgNodeTable;
56 if ~isempty(cacheNode.getHitRatio)
57 ncHitRatio(s) = cacheNode.getHitRatio;
58 else
59 ncHitRatio(s) = NaN;
60 end
61 else
62 ncHitRatio(s) = NaN;
63 end
64
65 fprintf(1,'%s: %.8f, %.8f, %.8f\n',ReplacementStrategy.toString(replStrat{s}),ctmcHitRatio(s),mvaHitRatio(s),ncHitRatio(s));
66end