LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
prio_hol_closed.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} = Delay(model, 'SlowDelay');
8node{2} = Queue(model, 'FCFSQueue', SchedStrategy.FCFS);
9node{3} = Queue(model, 'SIROQueue', SchedStrategy.SIRO);
10node{4} = Queue(model, 'PSQueue', SchedStrategy.PS);
11node{5} = Queue(model, 'HOLQueue', SchedStrategy.HOL);
12node{6} = Delay(model, 'FastDelay');
13
14%% Block 2: classes
15jobclass{1} = ClosedClass(model, 'Class1', 18, node{1}, 0);
16jobclass{2} = ClosedClass(model, 'Class2', 18, node{1}, 1);
17jobclass{3} = ClosedClass(model, 'Class3', 18, node{1}, 0);
18
19node{1}.setService(jobclass{1}, Exp.fitMean(10.000000));
20node{1}.setService(jobclass{2}, Exp.fitMean(10.000000));
21node{1}.setService(jobclass{3}, Exp.fitMean(10.000000));
22
23node{2}.setService(jobclass{1}, Exp.fitMean(0.300000));
24node{2}.setService(jobclass{2}, Exp.fitMean(0.500000));
25node{2}.setService(jobclass{3}, Exp.fitMean(0.600000));
26
27node{3}.setService(jobclass{1}, Exp.fitMean(1.100000));
28node{3}.setService(jobclass{2}, Exp.fitMean(1.300000));
29node{3}.setService(jobclass{3}, Exp.fitMean(1.500000));
30
31node{4}.setService(jobclass{1}, Exp.fitMean(1.000000));
32node{4}.setService(jobclass{2}, Exp.fitMean(1.100000));
33node{4}.setService(jobclass{3}, Exp.fitMean(1.900000));
34
35node{5}.setService(jobclass{1}, Exp.fitMean(2.500000));
36node{5}.setService(jobclass{2}, Exp.fitMean(1.900000));
37node{5}.setService(jobclass{3}, Exp.fitMean(4.300000));
38
39node{6}.setService(jobclass{1}, Exp.fitMean(1.000000));
40node{6}.setService(jobclass{2}, Exp.fitMean(1.000000));
41node{6}.setService(jobclass{3}, Exp.fitMean(1.000000));
42
43%% Block 3: topology
44P = model.initRoutingMatrix(); % initialize routing matrix
45P{1,1}(1,2) = 1; % (Source of Customers,Class0) -> (WebServer,Class0)
46P{1,1}(2,3) = 2.500000e-01; % (WebServer,Class0) -> (Storage1,Class0)
47P{1,1}(2,4) = 2.500000e-01; % (WebServer,Class0) -> (Storage2,Class0)
48P{1,1}(2,5) = 2.500000e-01; % (WebServer,Class0) -> (Storage3,Class0)
49P{1,1}(2,6) = 2.500000e-01; % (WebServer,Class0) -> (Out,Class0)
50P{1,1}(3,2) = 1; % (Storage1,Class0) -> (WebServer,Class0)
51P{1,1}(4,2) = 1; % (Storage2,Class0) -> (WebServer,Class0)
52P{1,1}(5,2) = 1; % (Storage3,Class0) -> (WebServer,Class0)
53P{2,2}(1,2) = 1; % (Source of Customers,Class1) -> (WebServer,Class1)
54P{2,2}(2,3) = 2.500000e-01; % (WebServer,Class1) -> (Storage1,Class1)
55P{2,2}(2,4) = 2.500000e-01; % (WebServer,Class1) -> (Storage2,Class1)
56P{2,2}(2,5) = 2.500000e-01; % (WebServer,Class1) -> (Storage3,Class1)
57P{2,2}(2,6) = 2.500000e-01; % (WebServer,Class1) -> (Out,Class1)
58P{2,2}(3,2) = 1; % (Storage1,Class1) -> (WebServer,Class1)
59P{2,2}(4,2) = 1; % (Storage2,Class1) -> (WebServer,Class1)
60P{2,2}(5,2) = 1; % (Storage3,Class1) -> (WebServer,Class1)
61P{3,3}(1,2) = 1; % (Source of Customers,Class2) -> (WebServer,Class2)
62P{3,3}(2,3) = 2.500000e-01; % (WebServer,Class2) -> (Storage1,Class2)
63P{3,3}(2,4) = 2.500000e-01; % (WebServer,Class2) -> (Storage2,Class2)
64P{3,3}(2,5) = 2.500000e-01; % (WebServer,Class2) -> (Storage3,Class2)
65P{3,3}(2,6) = 2.500000e-01; % (WebServer,Class2) -> (Out,Class2)
66P{3,3}(3,2) = 1; % (Storage1,Class2) -> (WebServer,Class2)
67P{3,3}(4,2) = 1; % (Storage2,Class2) -> (WebServer,Class2)
68P{3,3}(5,2) = 1; % (Storage3,Class2) -> (WebServer,Class2)
69P{1,1}(6,1) = 1;
70P{2,2}(6,1) = 1;
71P{3,3}(6,1) = 1;
72model.link(P);
73
74%%
75options = lineDefaults;
76options.seed = 23000;
77options.cutoff=1;
78options.samples=1e4;
79solver={};
80%solver{end+1} = CTMC(model,options); % CTMC is infinite on this model
81%solver{end+1} = FLD(model,options);
82solver{end+1} = MVA(model,options);
83%solver{end+1} = MAM(model,options);
84solver{end+1} = JMT(model,options);
85solver{end+1} = SSA(model,options);
86%solver{end+1} = NC(model,options);
87for s=1:length(solver)
88 fprintf(1,'SOLVER: %s\n',solver{s}.getName());
89 AvgTable{s} = solver{s}.getAvgTable();
90 AvgTable{s}
91end
Definition mmt.m:92