Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
ceaab2d3
Commit
ceaab2d3
authored
Feb 01, 2024
by
Hejing Li
Browse files
e2e_bg_homa.py: something wrong
parent
cc62c4ef
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
81 additions
and
18 deletions
+81
-18
experiments/core
experiments/core
+0
-0
experiments/pyexps/e2e_bg_homa.py
experiments/pyexps/e2e_bg_homa.py
+73
-13
experiments/simbricks/orchestration/e2e_topologies.py
experiments/simbricks/orchestration/e2e_topologies.py
+8
-5
No files found.
experiments/core
0 → 100644
View file @
ceaab2d3
File added
experiments/pyexps/e2e_bg_homa.py
View file @
ceaab2d3
...
...
@@ -32,7 +32,8 @@ from simbricks.orchestration.e2e_topologies import (
random
.
seed
(
42
)
e
=
exp
.
Experiment
(
'e2e_bg_homa'
)
types_of_host
=
[
'qemu'
,
'qt'
,
'gem5'
]
types_of_protocol
=
[
'tcp'
,
'dctcp'
,
'homa'
]
options
=
{
'ns3::TcpSocket::SegmentSize'
:
'1448'
,
...
...
@@ -43,19 +44,78 @@ options = {
topology
=
DCFatTree
(
n_spine_sw
=
1
,
n_agg_bl
=
1
,
n_agg_bl
=
4
,
n_agg_sw
=
1
,
n_agg_racks
=
2
,
h_per_rack
=
1
,
n_agg_racks
=
4
,
h_per_rack
=
1
0
,
)
add_homa_bg
(
topology
,
app_proto
=
'ns3::HomaSocketFactory'
)
net
=
sim
.
NS3E2ENet
()
net
.
opt
=
' '
.
join
([
f
'--
{
o
[
0
]
}
=
{
o
[
1
]
}
'
for
o
in
options
.
items
()])
net
.
e2e_global
.
stop_time
=
"20s"
net
.
add_component
(
topology
)
net
.
wait
=
True
e
.
add_network
(
net
)
net
.
init_network
()
experiments
=
[
e
]
for
h
in
types_of_host
:
for
p
in
types_of_protocol
:
e
=
exp
.
Experiment
(
'e2e_homa_'
+
h
+
'_bg_'
+
p
)
def
qemu_timing
(
node_config
:
node
.
NodeConfig
):
h
=
sim
.
QemuHost
(
node_config
)
h
.
sync
=
True
return
h
if
h
==
'qemu'
:
HostClass
=
sim
.
QemuHost
elif
h
==
'qt'
:
HostClass
=
qemu_timing
elif
h
==
'gem5'
:
HostClass
=
sim
.
Gem5Host
e
.
checkpoint
=
True
else
:
raise
NameError
(
h
)
add_homa_bg
(
topology
,
app_proto
=
'homa'
)
net
=
sim
.
NS3E2ENet
()
net
.
opt
=
' '
.
join
([
f
'--
{
o
[
0
]
}
=
{
o
[
1
]
}
'
for
o
in
options
.
items
()])
net
.
e2e_global
.
stop_time
=
"60s"
net
.
add_component
(
topology
)
# net.wait = True
e
.
add_network
(
net
)
# create client
client_config
=
node
.
I40eLinuxNode
()
# boot Linux with i40e NIC driver
client_config
.
disk_image
=
'homa'
client_config
.
ip
=
'10.0.0.1'
client_config
.
app
=
node
.
HomaClientNode
()
client_config
.
app
.
protocol
=
p
client
=
HostClass
(
client_config
)
# client.sync = False
client
.
name
=
'client'
client
.
wait
=
True
# wait for client simulator to finish execution
e
.
add_host
(
client
)
# attach client's NIC
client_nic
=
sim
.
I40eNIC
()
e
.
add_nic
(
client_nic
)
client
.
add_nic
(
client_nic
)
# create server
server_config
=
node
.
I40eLinuxNode
()
# boot Linux with i40e NIC driver
server_config
.
disk_image
=
'homa'
server_config
.
ip
=
'10.0.0.2'
server_config
.
app
=
node
.
HomaServerNode
()
server_config
.
app
.
protocol
=
p
server
=
HostClass
(
server_config
)
# server.sync = False
server
.
name
=
'server'
# server.wait = True
e
.
add_host
(
server
)
# attach server's NIC
server_nic
=
sim
.
I40eNIC
()
e
.
add_nic
(
server_nic
)
server
.
add_nic
(
server_nic
)
client_nic
.
set_network
(
net
)
server_nic
.
set_network
(
net
)
net
.
init_network
()
experiments
=
[
e
]
experiments/simbricks/orchestration/e2e_topologies.py
View file @
ceaab2d3
...
...
@@ -320,12 +320,12 @@ def add_contig_bg(topo, subnet='10.42.0.0/16', **kwargs):
topo
.
add_host_r
(
c_host
)
def
add_homa_bg
(
topo
,
subnet
=
'10.
42
.0.0/16'
,
**
kwargs
):
def
add_homa_bg
(
topo
,
subnet
=
'10.
0
.0.0/16'
,
**
kwargs
):
params
=
{
'link_rate'
:
'
5
Gbps'
,
'link_delay'
:
'
1u
s'
,
'link_rate'
:
'
10
Gbps'
,
'link_delay'
:
'
500n
s'
,
'link_queue_size'
:
'512KB'
,
'app_stop_time'
:
'
1
0s'
,
'app_stop_time'
:
'
6
0s'
,
}
for
(
k
,
v
)
in
kwargs
.
items
():
params
[
k
]
=
v
...
...
@@ -346,7 +346,10 @@ def add_homa_bg(topo, subnet='10.42.0.0/16', **kwargs):
s_host
.
data_rate
=
params
[
'link_rate'
]
s_host
.
ip
=
ip
+
prefix
s_host
.
queue_size
=
params
[
'link_queue_size'
]
if
(
params
[
'app_proto'
]
==
'tcp'
):
s_app
=
e2e
.
E2EMsgGenApplicationTCP
(
'msggen'
)
elif
(
params
[
'app_proto'
]
==
'homa'
):
s_app
=
e2e
.
E2EMsgGenApplication
(
'msggen'
)
s_app
.
stop_time
=
params
[
'app_stop_time'
]
s_app
.
remotes
=
remotes
s_host
.
add_component
(
s_app
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment