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
696375d6
Commit
696375d6
authored
Dec 07, 2020
by
Hejing Li
Browse files
experiment: add udp-microbenchmark experiment
parent
a6cfd4df
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
113 additions
and
3 deletions
+113
-3
experiments/modes/nodeconfig.py
experiments/modes/nodeconfig.py
+12
-3
experiments/pyexps/udp-miciobench.py
experiments/pyexps/udp-miciobench.py
+101
-0
No files found.
experiments/modes/nodeconfig.py
View file @
696375d6
...
@@ -293,7 +293,16 @@ class IperfUDPClient(AppConfig):
...
@@ -293,7 +293,16 @@ class IperfUDPClient(AppConfig):
rate
=
'150m'
rate
=
'150m'
def
run_cmds
(
self
,
node
):
def
run_cmds
(
self
,
node
):
return
[
'sleep 1'
,
return
[
'sleep 1'
,
'iperf -c '
+
self
.
server_ip
+
' -i 1 -u -b '
+
self
.
rate
]
'iperf -c '
+
self
.
server_ip
+
' -i 1 -u -b '
+
self
.
rate
,
'sleep 20'
]
class
IperfUDPClientLast
(
AppConfig
):
server_ip
=
'10.0.0.1'
rate
=
'150m'
def
run_cmds
(
self
,
node
):
return
[
'sleep 1'
,
'iperf -c '
+
self
.
server_ip
+
' -i 1 -u -b '
+
self
.
rate
,
'sleep 1'
]
class
IperfUDPClientSleep
(
AppConfig
):
class
IperfUDPClientSleep
(
AppConfig
):
server_ip
=
'10.0.0.1'
server_ip
=
'10.0.0.1'
...
@@ -329,7 +338,7 @@ class NOPaxosClient(AppConfig):
...
@@ -329,7 +338,7 @@ class NOPaxosClient(AppConfig):
cmds
.
append
(
'ping -c 1 '
+
ip
)
cmds
.
append
(
'ping -c 1 '
+
ip
)
cmds
.
append
(
'/root/nopaxos/bench/client -c /root/nopaxos.config '
+
cmds
.
append
(
'/root/nopaxos/bench/client -c /root/nopaxos.config '
+
'-m nopaxos -n 2000'
)
'-m nopaxos -n 2000'
)
cmds
.
append
(
'sleep
20
'
)
cmds
.
append
(
'sleep
infinity
'
)
return
cmds
return
cmds
class
NOPaxosClientLast
(
AppConfig
):
class
NOPaxosClientLast
(
AppConfig
):
...
@@ -340,7 +349,7 @@ class NOPaxosClientLast(AppConfig):
...
@@ -340,7 +349,7 @@ class NOPaxosClientLast(AppConfig):
cmds
.
append
(
'ping -c 1 '
+
ip
)
cmds
.
append
(
'ping -c 1 '
+
ip
)
cmds
.
append
(
'/root/nopaxos/bench/client -c /root/nopaxos.config '
+
cmds
.
append
(
'/root/nopaxos/bench/client -c /root/nopaxos.config '
+
'-m nopaxos -n 2000'
)
'-m nopaxos -n 2000'
)
cmds
.
append
(
'sleep
0.5
'
)
cmds
.
append
(
'sleep
100
'
)
return
cmds
return
cmds
class
NOPaxosSequencer
(
AppConfig
):
class
NOPaxosSequencer
(
AppConfig
):
...
...
experiments/pyexps/udp-miciobench.py
0 → 100644
View file @
696375d6
import
modes.experiments
as
exp
import
modes.simulators
as
sim
import
modes.nodeconfig
as
node
# iperf TCP_single test
# naming convention following host-nic-net-app
# host: gem5-timing
# nic: cv/cb/ib
# net: wire/switch/dumbbell/bridge
# app: UDPs
host_types
=
[
'gt'
,
'qt'
,
'qemu'
]
nic_types
=
[
'cv'
,
'cb'
,
'ib'
]
net_types
=
[
'switch'
,
'bridge'
]
app
=
[
'UDPmicro'
]
total_rate
=
1000
# Mbps
num_client_max
=
8
num_client_step
=
2
num_client_types
=
[
1
,
3
,
7
,
15
,
31
]
#for n in range(1, num_client_max + 1, num_client_step):
# num_client_types.append(n)
# print(n)
experiments
=
[]
for
n_client
in
num_client_types
:
per_client_rate
=
int
(
total_rate
/
n_client
)
rate
=
f
'
{
per_client_rate
}
m'
for
host_type
in
host_types
:
for
nic_type
in
nic_types
:
for
net_type
in
net_types
:
e
=
exp
.
Experiment
(
host_type
+
'-'
+
nic_type
+
'-'
+
net_type
+
'-UDPmicro-'
+
f
'
{
total_rate
}
'
+
f
'-
{
n_client
}
'
)
# network
if
net_type
==
'switch'
:
net
=
sim
.
SwitchNet
()
elif
net_type
==
'bridge'
:
net
=
sim
.
NS3BridgeNet
()
else
:
raise
NameError
(
net_type
)
e
.
add_network
(
net
)
# host
if
host_type
==
'qemu'
:
host_class
=
sim
.
QemuHost
elif
host_type
==
'qt'
:
def
qemu_timing
():
h
=
sim
.
QemuHost
()
h
.
sync
=
True
return
h
host_class
=
qemu_timing
elif
host_type
==
'gt'
:
host_class
=
sim
.
Gem5Host
e
.
checkpoint
=
True
else
:
raise
NameError
(
host_type
)
# nic
if
nic_type
==
'ib'
:
nic_class
=
sim
.
I40eNIC
nc_class
=
node
.
I40eLinuxNode
elif
nic_type
==
'cb'
:
nic_class
=
sim
.
CorundumBMNIC
nc_class
=
node
.
CorundumLinuxNode
elif
nic_type
==
'cv'
:
nic_class
=
sim
.
CorundumVerilatorNIC
nc_class
=
node
.
CorundumLinuxNode
else
:
raise
NameError
(
nic_type
)
# create servers and clients
servers
=
sim
.
create_basic_hosts
(
e
,
1
,
'server'
,
net
,
nic_class
,
host_class
,
nc_class
,
node
.
IperfUDPServer
)
clients
=
sim
.
create_basic_hosts
(
e
,
n_client
,
'client'
,
net
,
nic_class
,
host_class
,
nc_class
,
node
.
IperfUDPClient
,
ip_start
=
2
)
clients
[
n_client
-
1
].
node_config
.
app
=
node
.
IperfUDPClientLast
()
clients
[
n_client
-
1
].
wait
=
True
for
c
in
clients
:
c
.
node_config
.
app
.
server_ip
=
servers
[
0
].
node_config
.
ip
c
.
node_config
.
app
.
rate
=
rate
print
(
e
.
name
)
# add to experiments
experiments
.
append
(
e
)
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