Commit 96a298a8 authored by Andreas Schmidt's avatar Andreas Schmidt
Browse files

Add evaluation code and data for NSDI'18.

parent 7817e094
%% Cell type:markdown id: tags:
# X-Lap in Action
%% Cell type:markdown id: tags:
## Imports
%% Cell type:code id: tags:
``` python
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
from xlap.parse import evaluate, parse_config
from xlap.parse import evaluate, evaluate_side, parse_config
import xlap.analyse.jitter as jitter
from xlap.analyse.regress import linear as linear_regression
from xlap.analyse.trace import traces
from xlap.analyse.correlation import correlation
from xlap.analyse.latency import analyse
import pandas as pd
%matplotlib inline
```
%% Cell type:markdown id: tags:
## Data Retrieval
%% Cell type:code id: tags:
``` python
config = parse_config()
data_files = config["data_files"]
original = evaluate(data_files["sender"], data_files["receiver"], config=config, kind=0)
```
%% Cell type:markdown id: tags:
## Traces
%% Cell type:code id: tags:
``` python
traces(original, config)
```
%% Output
%% Cell type:markdown id: tags:
## Jitter Analysis
%% Cell type:code id: tags:
``` python
df = jitter.prep(original, config=config)
jitter.trace_jitter(df)
jitter.trace_jitter(df, threshold=500)
```
%% Output
%% Cell type:markdown id: tags:
4018 / 4095 are no outliers.
## Correlation
%% Cell type:code id: tags:
``` python
correlation(df[df["EndToEnd_D"] < 500], config)
```
%% Cell type:markdown id: tags:
## Correlation
## Latency Criticality
%% Cell type:code id: tags:
``` python
correlation(df[df["EndToEnd_D"] < 150], config)
d = analyse(original, config)
```
%% Output
%% Cell type:markdown id: tags:
### Correlations
%% Cell type:code id: tags:
``` python
d.corr.sort_values(ascending=False)
```
%% Cell type:markdown id: tags:
### Control Flow Graph
%% Cell type:code id: tags:
``` python
d.cfg
```
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
data_files:
sender: "sender.csv"
receiver: "receiver.csv"
threads:
- app_send
- trans_send
- trans_recv
- app_recv
cycle_reference:
app_send:
Start: PrrtSendStart
Stop: PrrtSendEnd
trans_send:
Start: PrrtTransmitStart
Stop: LinkTransmitEnd
trans_recv:
Start: LinkReceive
Stop: PrrtReturnPackage
app_recv:
Start: PrrtReceivePackage
Stop: PrrtDeliver
time_reference:
sender:
Start: PrrtSendStart
Stop: LinkTransmitEnd
receiver:
Start: LinkReceive
Stop: PrrtDeliver
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
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
Thread: trans_send
Type: cycle
LinkTransmitStart:
Source: sender
Thread: trans_send
Type: cycle
ChannelTransmit:
Source: sender
Thread: trans_send
Type: time
LinkTransmitEnd:
Source: sender
Thread: trans_send
Type: time
ChannelReceive:
Source: receiver
Thread: trans_recv
Type: time
LinkReceive:
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
PrrtReceivePackage:
Source: receiver
Thread: app_recv
Type: time
durations:
Send:
Start: PrrtSendStart
Stop: PrrtSendEnd
Source: sender
PrrtTransmit:
Start: PrrtTransmitStart
Stop: PrrtTransmitEnd
Source: sender
LinkTransmit:
Start: LinkTransmitStart
Stop: LinkTransmitEnd
Source: sender
Submit:
Start: PrrtSendStart
Stop: PrrtSubmitPackage
Source: sender