Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
X-Lap
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
LARN
X-Lap
Commits
2b56aadc
Commit
2b56aadc
authored
Sep 22, 2017
by
Andreas Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Thread-based interpolation.
parent
8de8d37e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
85 deletions
+85
-85
notebook.ipynb
notebook.ipynb
+21
-61
xlap.yml
xlap.yml
+50
-15
xlap/parse.py
xlap/parse.py
+14
-9
No files found.
notebook.ipynb
View file @
2b56aadc
This source diff could not be displayed because it is too large. You can
view the blob
instead.
xlap.yml
View file @
2b56aadc
data_files
:
sender
:
"
sender.csv"
receiver
:
"
receiver.csv"
threads
:
-
app_send
-
trans_send
-
trans_recv
-
app_recv
cycle_reference
:
sender
:
app_send
:
Start
:
PrrtSendStart
Stop
:
PrrtSendEnd
trans_send
:
Start
:
PrrtTransmitStart
Stop
:
LinkTransmitEnd
receiver
:
trans_recv
:
Start
:
LinkReceive
Stop
:
PrrtReturnPackage
app_recv
:
Start
:
PrrtReceivePackage
Stop
:
PrrtDeliver
time_reference
:
...
...
@@ -18,67 +29,90 @@ time_reference:
stamps
:
PrrtSendStart
:
Source
:
sender
Thread
:
app_send
Type
:
time
PrrtSubmitPackage
:
Source
:
sender
Thread
:
app_send
Type
:
cycle
PrrtSendEnd
:
Source
:
sender
Thread
:
app_send
Type
:
time
PrrtSubmitPackage
:
PrrtTransmitStart
:
Source
:
sender
Thread
:
trans_send
Type
:
time
PrrtTransmitEnd
:
Source
:
sender
Thread
:
trans_send
Type
:
cycle
PrrtEncodeStart
:
Source
:
sender
Thread
:
trans_send
Type
:
cycle
PrrtEncodeEnd
:
Source
:
sender
Type
:
cycle
PrrtTransmitStart
:
Source
:
sender
Type
:
cycle
PrrtTransmitEnd
:
Source
:
sender
Thread
:
trans_send
Type
:
cycle
LinkTransmitStart
:
Source
:
sender
Thread
:
trans_send
Type
:
cycle
LinkTransmitEnd
:
Source
:
sender
Thread
:
trans_send
Type
:
time
LinkReceive
:
Source
:
receiver
Type
:
time
PrrtDeliver
:
Source
:
receiver
Thread
:
trans_recv
Type
:
time
SendFeedbackStart
:
Source
:
receiver
Thread
:
trans_recv
Type
:
cycle
SendFeedbackEnd
:
Source
:
receiver
Thread
:
trans_recv
Type
:
cycle
DecodeStart
:
Source
:
receiver
Thread
:
trans_recv
Type
:
cycle
DecodeEnd
:
Source
:
receiver
Thread
:
trans_recv
Type
:
cycle
HandlePacketStart
:
Source
:
receiver
Thread
:
trans_recv
Type
:
cycle
HandlePacketEnd
:
Source
:
receiver
Thread
:
trans_recv
Type
:
cycle
PrrtReturnPackage
:
Source
:
receiver
Thread
:
trans_recv
Type
:
time
PrrtDeliver
:
Source
:
receiver
Thread
:
app_recv
Type
:
time
CopyOutputStart
:
Source
:
receiver
Thread
:
app_recv
Type
:
cycle
CopyOutputEnd
:
Source
:
receiver
Thread
:
app_recv
Type
:
cycle
PrrtReturnPackage
:
Source
:
receiver
Type
:
time
PrrtReceivePackage
:
Source
:
receiver
Thread
:
app_recv
Type
:
time
durations
:
Send
:
...
...
@@ -126,6 +160,7 @@ durations:
Start
:
DecodeStart
Stop
:
DecodeEnd
Source
:
receiver
packet_types
:
Data
:
0
Redundancy
:
1
xlap/parse.py
View file @
2b56aadc
...
...
@@ -8,6 +8,10 @@ def _stamp_name_by_src_and_type(all_stamps, src, kind=None):
kind
=
[
"time"
,
"cycle"
]
return
[
c
for
c
,
v
in
all_stamps
.
items
()
if
v
[
"Source"
]
==
src
and
v
[
"Type"
]
in
kind
]
def
_stamp_name_by_thread_and_type
(
all_stamps
,
thread
,
kind
=
None
):
if
kind
is
None
:
kind
=
[
"time"
,
"cycle"
]
return
[
c
for
c
,
v
in
all_stamps
.
items
()
if
v
[
"Thread"
]
==
thread
and
v
[
"Type"
]
in
kind
]
def
_extract_stamps_by_type
(
all_stamps
,
src
,
kind
=
None
):
columns
=
_stamp_name_by_src_and_type
(
all_stamps
,
src
,
kind
)
...
...
@@ -52,21 +56,20 @@ def evaluate(sender_file, receiver_file, config, kind=0):
for
s
in
_stamp_name_by_src_and_type
(
stamps
,
"receiver"
,
kind
=
[
"time"
]):
df
[
s
+
"_T"
]
-=
df
[
"Channel_D"
]
for
src
in
[
"sender"
,
"receiver
"
]:
for
src
in
config
[
"threads
"
]:
# Generate Processing Duration
src_name
=
src
.
capitalize
()
time
,
cycles
=
_diff_t_c
(
df
,
tr
[
src
][
"Start"
],
tr
[
src
][
"Stop"
])
df
[
src_name
+
"_D"
]
=
time
df
[
src_name
+
"_C"
]
=
cycles
src_name
=
""
.
join
(
map
(
str
.
capitalize
,
src
.
split
(
"_"
)))
# Generate Cycle Times
time
,
cycles
=
_diff_t_c
(
df
,
cr
[
src
][
"Start"
],
cr
[
src
][
"Stop"
])
# TODO: Introduce check if both are on the same host.
df
[
src_name
+
"_D"
]
=
time
df
[
src_name
+
"_C"
]
=
cycles
df
[
src_name
+
"Cycle_D"
]
=
time
/
cycles
# Recreate missing timestamps from cycles
for
stamp_name
in
_stamp_name_by_
src
_and_type
(
stamps
,
src
,
"cycle"
):
start_stamp
=
t
r
[
src
][
"Start"
]
for
stamp_name
in
_stamp_name_by_
thread
_and_type
(
stamps
,
src
,
"cycle"
):
start_stamp
=
c
r
[
src
][
"Start"
]
diff
=
df
[
stamp_name
+
"_C"
]
-
df
[
start_stamp
+
"_C"
]
df
[
stamp_name
+
"_T"
]
=
(
diff
*
df
[
src_name
+
"Cycle_D"
]
+
df
[
start_stamp
+
"_T"
]).
astype
(
int
)
...
...
@@ -74,7 +77,9 @@ def evaluate(sender_file, receiver_file, config, kind=0):
for
name
,
duration
in
config
[
"durations"
].
items
():
df
[
name
+
"_D"
]
=
df
[
duration
[
"Stop"
]
+
"_T"
]
-
df
[
duration
[
"Start"
]
+
"_T"
]
df
[
"EndToEnd_D"
]
=
df
[
"Sender_D"
]
+
df
[
"Receiver_D"
]
df
[
"Sender_D"
]
=
df
[
tr
[
"sender"
][
"Stop"
]
+
"_T"
]
-
df
[
tr
[
"sender"
][
"Start"
]
+
"_T"
]
df
[
"Receiver_D"
]
=
df
[
tr
[
"receiver"
][
"Stop"
]
+
"_T"
]
-
df
[
tr
[
"receiver"
][
"Start"
]
+
"_T"
]
df
[
"EndToEnd_D"
]
=
df
[
tr
[
"receiver"
][
"Stop"
]
+
"_T"
]
-
df
[
tr
[
"sender"
][
"Start"
]
+
"_T"
]
return
df
...
...
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