LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
getStageAvg.m
1function [QN,UN,RN,TN] = getStageAvg(self,~,~,~,~)
2% % [QN,UN,RN,TN] = GETSTAGEAVG(SELF,~,~,~,~)
3%
4% runAnalyzer(self); % run iterations
5% E = self.nlayers;
6% QN = zeros(E,self.lqn.nidx+self.lqn.ncalls);
7% UN = zeros(E,self.lqn.nidx+self.lqn.ncalls);
8% RN = zeros(E,self.lqn.nidx+self.lqn.ncalls);
9% TN = zeros(E,self.lqn.nidx+self.lqn.ncalls);
10% for e=1:E
11% clientIdx = self.ensemble{e}.attribute.clientIdx;
12% serverIdx = self.ensemble{e}.attribute.serverIdx;
13% sourceIdx = self.ensemble{e}.attribute.sourceIdx;
14% for c=1:self.ensemble{e}.getNumberOfClasses
15% type = self.ensemble{e}.classes{c}.attribute(1);
16% switch type
17% case LayeredNetworkElement.TASK
18% tidx = self.ensemble{e}.classes{c}.attribute(2);
19% if strcmp(self.lqn.sched(tidx), SchedStrategy.REF)
20% TN(e,tidx) = self.results{end,e}.TN(clientIdx,c);
21% end
22% UN(e,tidx) = NaN;
23% RN(e,tidx) = NaN;
24% QN(e,tidx) = NaN;
25% %if ~isnan(clientIdx)
26% % TN(e,tidx) = max(self.results{end,e}.TN(clientIdx,c), TN(e,tidx));
27% %end
28% %UN(e,tidx) = self.util(tidx);
29% %RN(e,tidx) = NaN;
30% %QN(e,tidx) = self.results{end,e}.QN(serverIdx,c);
31% case LayeredNetworkElement.ENTRY
32% %eidx = self.ensemble{e}.classes{c}.attribute(2);
33% %RN(e,eidx) = NaN;
34% %UN(e,eidx) = self.results{end,e}.UN(serverIdx,c);
35% %QN(e,eidx) = self.results{end,e}.QN(serverIdx,c);
36% %TN(e,eidx) = self.results{end,e}.TN(clientIdx,c);
37% %if ~isnan(clientIdx)
38% % TN(e,eidx) = max(self.results{end,e}.TN(clientIdx,c), TN(e,eidx));
39% %end
40% case LayeredNetworkElement.CALL
41% cidx = self.ensemble{e}.classes{c}.attribute(2);
42% idx = self.lqn.nidx + cidx;
43% aidx = self.lqn.callpair(cidx,1);
44% tidx = self.lqn.parent(aidx);
45% % contribution of call to task
46% %UN(e,tidx) = UN(e,tidx) + self.results{end,e}.UN(serverIdx,c);
47% %QN(e,tidx) = QN(e,tidx) + self.results{end,e}.QN(serverIdx,c);
48% switch self.ensemble{e}.classes{c}.type
49% case JobClassType.CLOSED
50% if self.ensemble{e}.classes{c}.completes
51% % TN(e,tidx) = TN(e,tidx) + max(self.results{end,e}.TN(serverIdx,c), self.results{end,e}.TN(clientIdx,c));
52% end
53% %TN(e,aidx) = TN(e,aidx) + self.results{end,e}.TN(serverIdx,c);
54% TN(e,idx) = TN(e,idx) + self.results{end,e}.TN(serverIdx,c);
55% %TN(e,idx) = max(self.results{end,e}.TN(serverIdx,c), self.results{end,e}.TN(clientIdx,c));
56% case JobClassType.OPEN
57% if self.ensemble{e}.classes{c}.completes
58% % TN(e,tidx) = TN(e,tidx) + self.results{end,e}.TN(sourceIdx,c);
59% end
60% %TN(e,aidx) = TN(e,aidx) + self.results{end,e}.TN(sourceIdx,c);
61% TN(e,idx) = TN(e,idx) + self.results{end,e}.TN(sourceIdx,c);
62% %TN(e,idx) = max(self.results{end,e}.TN(serverIdx,c), self.results{end,e}.TN(sourceIdx,c));
63% end
64% %RN(e,aidx) = RN(e,aidx) + self.results{end,e}.RN(serverIdx,c);
65% %UN(e,aidx) = UN(e,aidx) + self.results{end,e}.UN(serverIdx,c);
66% %QN(e,aidx) = QN(e,aidx) + self.results{end,e}.QN(serverIdx,c);
67% RN(e,idx) = RN(e,idx) + self.results{end,e}.RN(serverIdx,c);
68% UN(e,idx) = UN(e,idx) + self.results{end,e}.UN(serverIdx,c);
69% QN(e,idx) = QN(e,idx) + self.results{end,e}.QN(serverIdx,c);
70% case LayeredNetworkElement.ACTIVITY
71% aidx = self.ensemble{e}.classes{c}.attribute(2);
72% tidx = self.lqn.parent(aidx);
73% % contribution of activity to task
74% %UN(e,tidx) = UN(e,tidx) + self.results{end,e}.UN(serverIdx,c);
75% %QN(e,tidx) = QN(e,tidx) + self.results{end,e}.QN(serverIdx,c);
76% switch self.ensemble{e}.classes{c}.type
77% case JobClassType.CLOSED
78% if self.ensemble{e}.classes{c}.completes
79% % TN(e,tidx) = TN(e,tidx) + max(self.results{end,e}.TN(serverIdx,c), self.results{end,e}.TN(clientIdx,c));
80% end
81% TN(e,aidx) = TN(e,aidx) + self.results{end,e}.TN(serverIdx,c);
82% case JobClassType.OPEN
83% if self.ensemble{e}.classes{c}.completes
84% % TN(e,tidx) = TN(e,tidx) + self.results{end,e}.TN(sourceIdx,c);
85% end
86% %TN(e,aidx) = TN(e,aidx) + self.results{end,e}.TN(sourceIdx,c);
87% TN(e,aidx) = TN(e,aidx) + self.results{end,e}.TN(sourceIdx,c);
88% end
89% RN(e,aidx) = RN(e,aidx) + self.results{end,e}.RN(serverIdx,c);
90% UN(e,aidx) = UN(e,aidx) + self.results{end,e}.UN(serverIdx,c);
91% QN(e,aidx) = QN(e,aidx) + self.results{end,e}.QN(serverIdx,c);
92% end
93% end
94% end
95end