1% Example 6: A queueing network with caching
4model = Network(
'Model');
9clientDelay = Delay(model,
'Client');
10cacheNode = Cache(model,
'Cache', nItems, cacheSize, ReplacementStrategy.LRU());
11cacheDelay = Delay(model,
'CacheDelay');
14clientClass = ClosedClass(model,
'ClientClass', 1, clientDelay, 0);
15hitClass = ClosedClass(model,
'HitClass', 0, clientDelay, 0);
16missClass = ClosedClass(model,
'MissClass', 0, clientDelay, 0);
18clientDelay.setService(clientClass, Immediate());
19cacheDelay.setService(hitClass, Exp.fitMean(0.2));
20cacheDelay.setService(missClass, Exp.fitMean(1));
22cacheNode.setRead(clientClass, Zipf(1.4,nItems));
23cacheNode.setHitClass(clientClass, hitClass);
24cacheNode.setMissClass(clientClass, missClass);
27P = model.initRoutingMatrix;
28% routing from client to cache
29P{clientClass, clientClass}(clientDelay, cacheNode)=1;
30% routing out of the cache
31P{hitClass, hitClass}(cacheNode, cacheDelay)=1;
32P{missClass, missClass}(cacheNode, cacheDelay)=1;
34P{hitClass, clientClass}(cacheDelay, clientDelay)=1;
35P{missClass, clientClass}(cacheDelay, clientDelay)=1;
36% routing from cacheNode
40ssaAvgTable = SSA(model,
'samples',2e4,
'seed',23000,
'verbose',
true).avgTable()
41if license(
'test',
'parallel_computing_toolbox')
42 ssaAvgTablePara = SSA(model,'samples',2e4,'seed',23000,'verbose',true,'parallel').avgTable()