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
664f47ed
Commit
664f47ed
authored
Dec 07, 2020
by
Antoine Kaufmann
Browse files
results: add script to generate netperf table
parent
fe269309
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
98 additions
and
0 deletions
+98
-0
results/netperf.py
results/netperf.py
+48
-0
results/utils/netperf.py
results/utils/netperf.py
+50
-0
No files found.
results/netperf.py
0 → 100644
View file @
664f47ed
from
utils.netperf
import
*
import
sys
import
os.path
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
=
[(
'qemu'
,
'QK'
),
(
'qt'
,
'QT'
),
(
'gem5'
,
'G5'
)]
nics
=
[(
'i40e'
,
'IB'
),
(
'cd_bm'
,
'CB'
),
(
'cd_verilator'
,
'CV'
)]
nets
=
[(
'switch'
,
'SW'
),
(
'ns3'
,
'NS'
)]
outdir
=
sys
.
argv
[
1
]
for
(
h
,
h_l
)
in
hosts
:
for
(
nic
,
nic_l
)
in
nics
:
for
(
net
,
net_l
)
in
nets
:
path
=
'%s/netperf-%s-%s-%s-1.json'
%
(
outdir
,
h
,
net
,
nic
)
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 & %s
\\\\
'
%
(
h_l
,
nic_l
,
net_l
,
tp
,
latMean
,
latTail
,
t
))
results/utils/netperf.py
0 → 100644
View file @
664f47ed
import
json
import
re
import
os
def
parse_netperf_run
(
path
):
ret
=
{}
if
not
os
.
path
.
exists
(
path
):
return
ret
with
open
(
path
,
'r'
)
as
f
:
data
=
json
.
load
(
f
)
ret
[
'simtime'
]
=
data
[
'end_time'
]
-
data
[
'start_time'
]
tph_pat
=
re
.
compile
(
r
'Size\s*Size\s*Size\s*Time\s*Throughput.*'
)
start
=
None
i
=
0
lines
=
data
[
'sims'
][
'host.client.0'
][
'stdout'
]
for
l
in
lines
:
if
tph_pat
.
match
(
l
):
start
=
i
break
i
+=
1
if
start
is
not
None
:
tp_line
=
lines
[
start
+
3
]
tp_pat
=
re
.
compile
(
r
'\s*\d*\s*\d*\s*\d*\s*[0-9\.]*\s*([0-9\.]*).*'
)
m
=
tp_pat
.
match
(
tp_line
)
ret
[
'throughput'
]
=
float
(
m
.
group
(
1
))
lath_pat
=
re
.
compile
(
r
'\s*Mean Latency.*'
)
start
=
None
i
=
0
lines
=
data
[
'sims'
][
'host.client.0'
][
'stdout'
]
for
l
in
lines
:
if
lath_pat
.
match
(
l
):
start
=
i
break
i
+=
1
if
start
is
not
None
:
lat_line
=
lines
[
start
+
1
]
lat_pat
=
re
.
compile
(
r
'\s*([-0-9\.]*),([-0-9\.]*),([-0-9\.]*),([-0-9\.]*).*'
)
m
=
lat_pat
.
match
(
lat_line
)
ret
[
'latenyMean'
]
=
float
(
m
.
group
(
1
))
ret
[
'latenyTail'
]
=
float
(
m
.
group
(
4
))
return
ret
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