-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServerSimulator.m
More file actions
50 lines (41 loc) · 1.34 KB
/
ServerSimulator.m
File metadata and controls
50 lines (41 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
classdef ServerSimulator
%UNTITLED2 Summary of this class goes here
% Detailed explanation goes here
properties
fmax
betaSer
alfa
kSer
J_ser
E_ser
freq
end
methods
function obj = ServerSimulator(data_folder,fmax,alfa,betaSer,kSer)
load(strcat(data_folder,"num_FLOPS_vs_SP.mat"));
obj.J_ser = cumsum(FLOPS_DATA);
obj.fmax = fmax;
obj.alfa = alfa;
obj.betaSer = betaSer;
obj.kSer = kSer;
obj.freq = obj.fmax*unifrnd(1e-3,obj.alfa);
end
function [obj] = updateFrequency(obj)
obj.freq = obj.fmax*unifrnd(1e-3,obj.alfa);
end
function [serverDelay,serverEnergy] = simulateServer(obj,A,k)
serverDelay = obj.computeServerDelay(A,k);
serverEnergy = obj.computeServerEnergy(serverDelay);
end
function [Drcomp] = computeServerDelay(obj,A,k)
residualNumberFlops = obj.J_ser(end)-obj.J_ser(k);
Drcomp = (A*residualNumberFlops)/(obj.betaSer*obj.freq);
end
function [serverEnergy] = computeServerEnergy(obj,Drcomp)
serverEnergy = obj.kSer*obj.freq^3*Drcomp;
end
function [freq] = getFreq(obj)
freq = obj.freq;
end
end
end