3model = Network(
'model');
5n = 5; % number of items
8source = Source(model,
'Source');
9cacheNode = Cache(model,
'Cache', n, m, ReplacementStrategy.RR);
10sink = Sink(model,
'Sink');
12jobClass = OpenClass(model,
'InitClass', 0);
13hitClass = OpenClass(model,
'HitClass', 0);
14missClass = OpenClass(model,
'MissClass', 0);
16source.setArrival(jobClass, Exp(2));
18%pAccess = DiscreteSampler((1/n)*ones(1,n)); % uniform item references
19pAccess = Zipf(1.4, n); % Zipf-like item references
20cacheNode.setRead(jobClass, pAccess);
23cacheNode.setHitClass(jobClass, hitClass);
24cacheNode.setMissClass(jobClass, missClass);
26P = model.initRoutingMatrix;
28P{jobClass, jobClass}(source, cacheNode) = 1.0;
29P{hitClass, hitClass}(cacheNode, sink) = 1.0;
30P{missClass, missClass}(cacheNode, sink) = 1.0;
34solver{1} = CTMC(model,
'keep',
false,
'cutoff',1);
35AvgTable{1} = solver{1}.getAvgNodeTable; AvgTable{1}
38solver{2} = SSA(model,
'samples',1e4,
'verbose',
true,
'method',
'serial',
'seed',23000);
39AvgTable{2} = solver{2}.getAvgNodeTable; AvgTable{2}
42solver{3} = MVA(model);
43AvgTable{3} = solver{3}.getAvgNodeTable; AvgTable{3}
47AvgTable{4} = solver{4}.getAvgNodeTable; AvgTable{4}
49hitRatio=cacheNode.getHitRatio
50missRatio=cacheNode.getMissRatio