-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEPAMP_GMA_Connector.py
64 lines (61 loc) · 2.35 KB
/
EPAMP_GMA_Connector.py
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import numpy as np
def Connector(GMA_params):
# Take params from GMA and return EPAMP params
M = GMA_params['n-services']
S_edge_b = np.minimum(GMA_params['hpa']['edge-area']['current-replicas'],1)
S_edge_b[M-1]=1 # Last service is always on the edge since it represent the istio-ingress/user
Acpu = np.zeros(2*M)
Acpu[0:M] = GMA_params['acpu']['cloud-area']['value']
Acpu[M:2*M] = GMA_params['acpu']['edge-area']['value']
Amem = np.zeros(2*M)
Amem[0:M] = GMA_params['amem']['cloud-area']['value']
Amem[M:2*M] = GMA_params['amem']['edge-area']['value']
Qcpu = np.zeros(2*M)
Qcpu[0:M] = GMA_params['qcpu']['cloud-area']['value']
Qcpu[M:2*M] = GMA_params['qcpu']['edge-area']['value']
Qmem = np.zeros(2*M)
Qmem[0:M] = GMA_params['qmem']['cloud-area']['value']
Qmem[M:2*M] = GMA_params['qmem']['edge-area']['value']
Fcm = GMA_params['fcm']['value']
lambda_val = GMA_params['service-lambda']['value'][M-1]
Rs = GMA_params['rs']['value']
if 'di' in GMA_params:
Di = GMA_params['di']['value']
else:
Di = np.zeros(2*M)
delay_decrease_target = (GMA_params['edge-user-delay']['value'] - GMA_params['edge-user-target-delay']['value'])/1000.0
delay_increase_target = - delay_decrease_target
Ne = GMA_params['network']['cloud-edge-bps']['value']
RTT = GMA_params['network']['edge-cloud-rtt']['value']/1000.0
Cost_cpu_edge = GMA_params['cost']['edge-area']['cpu']['value']
Cost_mem_edge = GMA_params['cost']['edge-area']['memory']['value']
if 'u-limit' in GMA_params['optimizer']['epamp']:
u_limit = int(GMA_params['optimizer']['epamp']['u-limit'])
else:
u_limit = 2
if 'locked' in GMA_params['optimizer']:
locked = GMA_params['optimizer']['locked']
else:
locked = None
params = {
'S_edge_b': S_edge_b,
'Acpu': Acpu,
'Amem': Amem,
'Fcm': Fcm,
'M': M,
'lambd': lambda_val,
'Rs': Rs,
'Di': Di,
'delay_decrease_target': delay_decrease_target,
'delay_increase_target': delay_increase_target,
'RTT': RTT,
'Ne': Ne,
'Cost_cpu_edge': Cost_cpu_edge,
'Cost_mem_edge': Cost_mem_edge,
'locked': locked,
'dependency_paths_b': None,
'u_limit': u_limit,
'Qcpu': Qcpu,
'Qmem': Qmem
}
return params