3%% a large multiclass example with PS and FCFS
4model = Network(
'MyNetwork');
7node{1} = Source(model,
'Source');
8node{2} = Queue(model,
'Queue1', SchedStrategy.FCFS);
9node{3} = Queue(model,
'Queue2', SchedStrategy.FCFS);
10node{4} = Queue(model,
'Queue3', SchedStrategy.PS);
11node{5} = Queue(model,
'Queue4', SchedStrategy.FCFS);
12node{6} = Sink(model,
'Sink');
15jobclass{1} = OpenClass(model,
'Class1', 0);
16jobclass{2} = OpenClass(model,
'Class2', 0);
17jobclass{3} = OpenClass(model,
'Class3', 0);
19node{1}.setArrival(
jobclass{1}, Exp.fitMean(5.000000)); % (Source of Customers,Class0)
20node{1}.setArrival(
jobclass{2}, Exp.fitMean(8.000000)); % (Source of Customers,Class1)
21node{1}.setArrival(
jobclass{3}, Exp.fitMean(7.000000)); % (Source of Customers,Class2)
22node{2}.setService(
jobclass{1}, Exp.fitMean(0.300000)); % (WebServer,Class0)
23node{2}.setService(
jobclass{2}, Exp.fitMean(0.500000)); % (WebServer,Class1)
24node{2}.setService(
jobclass{3}, Exp.fitMean(0.600000)); % (WebServer,Class2)
25node{3}.setService(
jobclass{1}, Exp.fitMean(1.100000)); % (Storage1,Class0)
26node{3}.setService(
jobclass{2}, Exp.fitMean(1.300000)); % (Storage1,Class1)
27node{3}.setService(
jobclass{3}, Exp.fitMean(1.500000)); % (Storage1,Class2)
28node{4}.setService(
jobclass{1}, Exp.fitMean(2.000000)); % (Storage2,Class0)
29node{4}.setService(
jobclass{2}, Exp.fitMean(2.100000)); % (Storage2,Class1)
30node{4}.setService(
jobclass{3}, Exp.fitMean(1.900000)); % (Storage2,Class2)
31node{5}.setService(
jobclass{1}, Exp.fitMean(1.500000)); % (Storage3,Class0)
32node{5}.setService(
jobclass{2}, Exp.fitMean(0.900000)); % (Storage3,Class1)
33node{5}.setService(
jobclass{3}, Exp.fitMean(2.300000)); % (Storage3,Class2)
36P = model.initRoutingMatrix(); % initialize routing matrix
37P{1,1}(1,2) = 1; % (Source of Customers,Class0) -> (WebServer,Class0)
38P{1,1}(2,3) = 2.500000e-01; % (WebServer,Class0) -> (Storage1,Class0)
39P{1,1}(2,4) = 2.500000e-01; % (WebServer,Class0) -> (Storage2,Class0)
40P{1,1}(2,5) = 2.500000e-01; % (WebServer,Class0) -> (Storage3,Class0)
41P{1,1}(2,6) = 2.500000e-01; % (WebServer,Class0) -> (Out,Class0)
42P{1,1}(3,2) = 1; % (Storage1,Class0) -> (WebServer,Class0)
43P{1,1}(4,2) = 1; % (Storage2,Class0) -> (WebServer,Class0)
44P{1,1}(5,2) = 1; % (Storage3,Class0) -> (WebServer,Class0)
45P{2,2}(1,2) = 1; % (Source of Customers,Class1) -> (WebServer,Class1)
46P{2,2}(2,3) = 2.500000e-01; % (WebServer,Class1) -> (Storage1,Class1)
47P{2,2}(2,4) = 2.500000e-01; % (WebServer,Class1) -> (Storage2,Class1)
48P{2,2}(2,5) = 2.500000e-01; % (WebServer,Class1) -> (Storage3,Class1)
49P{2,2}(2,6) = 2.500000e-01; % (WebServer,Class1) -> (Out,Class1)
50P{2,2}(3,2) = 1; % (Storage1,Class1) -> (WebServer,Class1)
51P{2,2}(4,2) = 1; % (Storage2,Class1) -> (WebServer,Class1)
52P{2,2}(5,2) = 1; % (Storage3,Class1) -> (WebServer,Class1)
53P{3,3}(1,2) = 1; % (Source of Customers,Class2) -> (WebServer,Class2)
54P{3,3}(2,3) = 2.500000e-01; % (WebServer,Class2) -> (Storage1,Class2)
55P{3,3}(2,4) = 2.500000e-01; % (WebServer,Class2) -> (Storage2,Class2)
56P{3,3}(2,5) = 2.500000e-01; % (WebServer,Class2) -> (Storage3,Class2)
57P{3,3}(2,6) = 2.500000e-01; % (WebServer,Class2) -> (Out,Class2)
58P{3,3}(3,2) = 1; % (Storage1,Class2) -> (WebServer,Class2)
59P{3,3}(4,2) = 1; % (Storage2,Class2) -> (WebServer,Class2)
60P{3,3}(5,2) = 1; % (Storage3,Class2) -> (WebServer,Class2)
64options = lineDefaults;
69solver{end+1} = CTMC(model,options); % CTMC
is infinite on
this model
70%solver{end+1} = FLD(model,options);
71solver{end+1} = MVA(model,options);
72solver{end+1} = MAM(model,options);
73solver{end+1} = JMT(model,options);
74solver{end+1} = DES(model,options);
75%solver{end+1} = SSA(model,options);
76%solver{end+1} = NC(model,options);
78 fprintf(1,
'SOLVER: %s\n',solver{s}.getName());
79 AvgTable{s} = solver{s}.getAvgTable()