LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
prio_hol_open.m
1clear node jobclass solver AvgTable
2
3%% multiclass example with PS, SIRO, FCFS, HOL priority
4model = Network('MyNetwork');
5
6%% Block 1: nodes
7node{1} = Source(model, 'Source');
8node{2} = Queue(model, 'WebServer', SchedStrategy.FCFS);
9node{3} = Queue(model, 'Storage1', SchedStrategy.SIRO);
10node{4} = Queue(model, 'Storage2', SchedStrategy.PS);
11node{5} = Queue(model, 'Storage3', SchedStrategy.HOL);
12node{6} = Sink(model, 'Sink');
13
14%% Block 2: classes
15jobclass{1} = OpenClass(model, 'Class1', 0);
16jobclass{2} = OpenClass(model, 'Class2', 1); % higher priority
17jobclass{3} = OpenClass(model, 'Class3', 0);
18
19node{1}.setArrival(jobclass{1}, Exp.fitMean(10.000000)); % (Source of Customers,Class0)
20node{1}.setArrival(jobclass{2}, Exp.fitMean(10.000000)); % (Source of Customers,Class1)
21node{1}.setArrival(jobclass{3}, Exp.fitMean(10.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(2.500000)); % (Storage3,Class0)
32node{5}.setService(jobclass{2}, Exp.fitMean(1.900000)); % (Storage3,Class1)
33node{5}.setService(jobclass{3}, Exp.fitMean(4.300000)); % (Storage3,Class2)
34
35%% Block 3: topology
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)
61model.link(P);
62
63%%
64options = lineDefaults;
65options.seed = 23000;
66options.samples=1e4;
67ctmcoptions = options;
68ctmcoptions.cutoff=1;
69solver={};
70solver{end+1} = CTMC(model,ctmcoptions); % CTMC is infinite on this model
71%solver{end+1} = FLD(model,options);
72solver{end+1} = MVA(model,options);
73%solver{end+1} = MAM(model,options);
74solver{end+1} = JMT(model,options);
75solver{end+1} = SSA(model,options);
76%solver{end+1} = NC(model,options);
77for s=1:length(solver)
78 fprintf(1,'SOLVER: %s\n',solver{s}.getName());
79 AvgTable{s} = solver{s}.getAvgTable()
80 AvgTable{s}
81end
Definition mmt.m:92