1function [
RD,logData] = getCdfRespT(self, R)
5if GlobalConstants.DummyMode
6 RD = cell(sn.nstations,sn.nclasses);
11if nargin<2 %~exist(
'R',
'var')
12 R = getAvgRespTHandles(self);
14RD = cell(sn.nstations, sn.nclasses);
15QN = getAvgQLen(self); % steady-state qlen
19 n(:,r) = floor(QN(:,r));
21 n(:,r) = floor(QN(:,r));
22 if sum(n(:,r)) < sn.njobs(r)
23 imax = maxpos(n(:,r)); % put jobs on the bottleneck
24 n(imax,r) = n(imax,r) + sn.njobs(r) - sum(n(:,r));
28cdfmodel = self.model.copy;
31isNodeClassLogged = false(cdfmodel.getNumberOfNodes, cdfmodel.getNumberOfClasses);
32for i= 1:cdfmodel.getNumberOfStations
33 for r=1:cdfmodel.getNumberOfClasses
35 ni = self.model.getNodeIndex(cdfmodel.getStationNames{i});
36 isNodeClassLogged(ni,r) =
true;
41isNodeLogged = max(isNodeClassLogged,[],2);
43cdfmodel.linkAndLog(Plinked, isNodeLogged, logpath);
44cdfmodel.initFromMarginal(n);
45cdfOptions = self.getOptions;
46cdfOptions.lang =
'matlab'; % CDF computation
requires log files from native JMT
47SolverJMT(cdfmodel, cdfOptions).getAvg(); % log data
48logData = SolverJMT.parseLogs(cdfmodel, isNodeLogged, MetricType.toText(MetricType.RespT));
49% from here convert from
nodes in logData to stations
50for i= 1:cdfmodel.getNumberOfStations
51 ni = cdfmodel.getNodeIndex(cdfmodel.getStationNames{i});
52 for r=1:cdfmodel.getNumberOfClasses
53 if isNodeClassLogged(ni,r)
54 if ~isempty(logData{ni,r}) && ~isempty(logData{ni,r}.RespT)
55 [F,X] = ecdf(logData{ni,r}.RespT);