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
185259d9
Commit
185259d9
authored
Jun 12, 2022
by
Hejing Li
Browse files
ae: add corundum pci latency scripts
parent
6509ca6f
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
158 additions
and
0 deletions
+158
-0
experiments/pyexps/ae/corundum_pcilat.py
experiments/pyexps/ae/corundum_pcilat.py
+85
-0
experiments/pyexps/ae/data_cbpcilat.py
experiments/pyexps/ae/data_cbpcilat.py
+73
-0
No files found.
experiments/pyexps/ae/corundum_pcilat.py
0 → 100644
View file @
185259d9
# Copyright 2021 Max Planck Institute for Software Systems, and
# National University of Singapore
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
########################################################################
# This script is for generating the result in 8.1 in the paper.
#
# In each simulation, two hosts are connected by a switch
# [HOST_0] - [NIC_0] ---- [SWITCH] ---- [NIC_1] - [HOST_1]
# server client
#
# The server host runs netperf server and client host runs TCP_RR and
# TCP_STREAM test
#
# The command to run all the experiments is:
# $: python3 run.py pyexps/ae/corundum_pcilat.py --filter cblat-gt-sw --verbose --force
########################################################################
import
simbricks.experiments
as
exp
import
simbricks.simulators
as
sim
import
simbricks.nodeconfig
as
node
from
simbricks.simulator_utils
import
create_basic_hosts
pci_latency
=
[
1000
]
experiments
=
[]
for
pci_type
in
pci_latency
:
e
=
exp
.
Experiment
(
'cblat-gt-sw-'
+
f
'
{
pci_type
}
'
)
net
=
sim
.
SwitchNet
()
net
.
sync_period
=
pci_type
net
.
eth_latency
=
pci_type
e
.
add_network
(
net
)
host_class
=
sim
.
Gem5Host
e
.
checkpoint
=
True
def
nic_pci
():
n
=
sim
.
CorundumBMNIC
()
n
.
sync_period
=
pci_type
n
.
pci_latency
=
pci_type
return
n
nic_class
=
nic_pci
nc_class
=
node
.
CorundumLinuxNode
# create servers and clients
servers
=
create_basic_hosts
(
e
,
1
,
'server'
,
net
,
nic_class
,
host_class
,
nc_class
,
node
.
NetperfServer
)
clients
=
create_basic_hosts
(
e
,
1
,
'client'
,
net
,
nic_class
,
host_class
,
nc_class
,
node
.
NetperfClient
,
ip_start
=
2
)
for
s
in
servers
:
s
.
pci_latency
=
pci_type
s
.
sync_period
=
pci_type
for
c
in
clients
:
c
.
pci_latency
=
pci_type
c
.
sync_period
=
pci_type
c
.
wait
=
True
c
.
node_config
.
app
.
server_ip
=
servers
[
0
].
node_config
.
ip
# add to experiments
experiments
.
append
(
e
)
experiments/pyexps/ae/data_cbpcilat.py
0 → 100644
View file @
185259d9
# Copyright 2021 Max Planck Institute for Software Systems, and
# National University of Singapore
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
from
utils.netperf
import
*
import
sys
from
time
import
strftime
from
time
import
gmtime
def
fmt_lat
(
lat
):
if
not
lat
:
return
''
x
=
float
(
lat
)
if
x
>=
1000.
:
return
'%.1f
\\
,ms'
%
(
x
/
1000
)
else
:
return
'%d
\\
,$
\\
mu$s'
%
(
int
(
x
))
def
fmt_tp
(
tp
):
if
not
tp
:
return
''
x
=
float
(
tp
)
if
x
>
1000.
:
return
'%.2f
\\
,G'
%
(
x
/
1000
)
else
:
return
'%d
\\
,M'
%
(
int
(
x
))
hosts
=
[(
'gt'
,
'G5'
)]
nics
=
[(
'cb'
,
'CB'
)]
nets
=
[(
'sw'
,
'SW'
)]
outdir
=
sys
.
argv
[
1
]
for
(
h
,
h_l
)
in
hosts
:
for
(
nic
,
nic_l
)
in
nics
:
for
(
net
,
net_l
)
in
nets
:
path
=
'%s/cblat-%s-%s-1.json'
%
(
outdir
,
h
,
net
)
data
=
parse_netperf_run
(
path
)
if
'simtime'
in
data
:
t
=
strftime
(
"%H:%M:%S"
,
gmtime
(
data
[
'simtime'
]))
else
:
t
=
''
tp
=
fmt_tp
(
data
.
get
(
'throughput'
,
''
))
latMean
=
fmt_lat
(
data
.
get
(
'latenyMean'
,
''
))
latTail
=
fmt_lat
(
data
.
get
(
'latenyTail'
,
''
))
print
(
' %s & %s & %s & %s & %s & %s
\\\\
'
%
(
h_l
,
nic_l
,
net_l
,
tp
,
latMean
,
t
)
)
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