6plotColors = {
'k';
'b--';
'r-.'};
7for ni = 1:length(nJobs)
9 model = Network(
'model');
11 node{1} = Delay(model,
'Delay');
12 node{2} = Queue(model,
'Queue1', SchedStrategy.PS);
13 node{3} = Queue(model,
'Queue2', SchedStrategy.PS);
15 jobclass{1} = ClosedClass(model,
'Class1', N, node{1}, 0);
19 node{1}.setService(
jobclass{1}, Exp(1/1));
20 node{2}.setService(
jobclass{1}, Exp(1/2));
21 node{3}.setService(
jobclass{1}, Exp(1/2));
23 M = model.getNumberOfStations();
24 K = model.getNumberOfClasses();
29 options = FLD.defaultOptions;
30 options.iter_max = 100;
31 solver = FLD(model, options);
32 AvgRespT{ni} = solver.getAvgRespT;
33 % Direct fluid mean response times (exact, codebase-independent parity target)
34 fprintf(
'FLD getAvgRespT N=%d:', N);
35 fprintf(
' %.6f', AvgRespT{ni});
37 RDfluid = solver.getCdfRespT();
39 for c=1:model.getNumberOfClasses
40 for i=1:model.getNumberOfStations
41 AvgRespTfromCDF{ni}(i,c) = diff(RDfluid{i,c}(:,1))
'*RDfluid{i,c}(2:end,2); %mean
42 PowerMoment2_R{ni}(i,c) = diff(RDfluid{i,c}(:,1))'*(RDfluid{i,c}(2:end,2).^2);
43 Variance_R{ni}(i,c) = PowerMoment2_R{ni}(i,c)-AvgRespTfromCDF{ni}(i,c)^2; %variance
44 SqCoeffOfVariationRespTfromCDF{ni}(i,c) = (Variance_R{ni}(i,c))/AvgRespTfromCDF{ni}(i,c)^2; %scv
48 for c=1:model.getNumberOfClasses
49 semilogx(RDfluid{i,c}(:,2),RDfluid{i,c}(:,1),plotColors{find(N==nJobs)}); hold on;
53 SqCoeffOfVariationRespTfromCDF{ni}
54 label{end+1} = [
'N=', num2str(N),
' jobs'];
56legend(label,
'Location',
'SouthEast');
58title('Response time CDF at station 3 under increasing populations')
59ylabel('Pr[RespT < t]')
60xlabel('Response time t')