1% fork-join with multiple
visits within the same chain
3model = Network(
'model');
5source = Source(model,
'Source');
6queue1 = Queue(model,
'Queue1',SchedStrategy.PS);
7queue2 = Queue(model,
'Queue2',SchedStrategy.PS);
8fork = Fork(model,
'Fork');
9join = Join(model,
'Join', fork);
10sink = Sink(model,
'Sink');
12jobclass1 = OpenClass(model,
'class1');
13jobclass2 = OpenClass(model,
'class2');
15source.setArrival(jobclass1, Exp(0.1));
16queue1.setService(jobclass1, Exp(1.0));
17queue2.setService(jobclass1, Exp(1.0));
18queue1.setService(jobclass2, Exp(1.0));
19queue2.setService(jobclass2, Exp(1.0));
21P = model.initRoutingMatrix;
22P{jobclass1,jobclass1}(source,fork) = 1;
23P{jobclass1,jobclass1}(fork,queue1) = 1.0;
24P{jobclass1,jobclass1}(fork,queue2) = 1.0;
25P{jobclass1,jobclass1}(queue1,join) = 1.0;
26P{jobclass1,jobclass1}(queue2,join) = 1.0;
28% now loop back in
class 2
30P{jobclass2,jobclass2}(fork,queue1) = 1.0;
31P{jobclass2,jobclass2}(fork,queue2) = 1.0;
32P{jobclass2,jobclass2}(queue1,join) = 1.0;
33P{jobclass2,jobclass2}(queue2,join) = 1.0;
34P{jobclass2,jobclass2}(join,sink) = 1.0;
38solver{1} = MVA(model);
39solver{end+1} = JMT(model,
'seed',23000);
40%solver{end+1} = DES(model,
'seed',23000);
43 AvgTable{s} = solver{s}.getAvgTable;