Commit 956abea5 authored by Andreas Schmidt's avatar Andreas Schmidt
Browse files

Merge branch 'develop'

parents 96a298a8 5ba62919
Loading
Loading
Loading
Loading

.gitattributes

0 → 100644
+3 −0
Original line number Diff line number Diff line
*.ipynb filter=nbstripout

*.ipynb diff=ipynb
+2 −1
Original line number Diff line number Diff line
@@ -2,3 +2,4 @@ build/
dist/
xlap.egg-info/
.ipynb_checkpoints/
.venv/

Pipfile

0 → 100644
+22 −0
Original line number Diff line number Diff line
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
jupyter = "*"
matplotlib = "*"
pandas = "*"
numpy = "*"
scipy = "*"
ruamel-yaml = "*"
scikit-learn = "*"
graphviz = "*"
jupyterlab = "*"
nbstripout = "*"
nbconvert = "*"

[requires]
python_version = "3.6"

Pipfile.lock

0 → 100644
+616 −0

File added.

Preview size limit exceeded, changes collapsed.

+68 −26
Original line number Diff line number Diff line
%% 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, 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
from xlap.parse import evaluate, parse_config
config = parse_config()
data_files = config["data_files"]
original = evaluate(data_files["sender"], data_files["receiver"], config=config, kind=0)
data_files = {
    "sender": "rtn2018/20180417_testbed/",
    "receiver": "rtn2018/20180417_testbed/"
}
df_1GHz = evaluate(data_files["sender"] + "sender-1000000.csv", data_files["receiver"] + "receiver-1000000.csv", config=config, kind=0)
df_1GHz.name = "1GHz"
df_2GHz = evaluate(data_files["sender"] + "sender-2000000.csv", data_files["receiver"] + "receiver-2000000.csv", config=config, kind=0)
df_2GHz.name = "2GHz"
df_3GHz = evaluate(data_files["sender"] + "sender-3000000.csv", data_files["receiver"] + "receiver-3000000.csv", config=config, kind=0)
df_3GHz.name = "3GHz"
dfs = [df_1GHz, df_2GHz, df_3GHz]
```

%% Cell type:markdown id: tags:

## Traces
## Individual Packet Traces

%% Cell type:code id: tags:

``` python
traces(original, config)
from xlap.analyse.trace import traces
traces(df_1GHz, config, global_xaxis=True)
```

%% Cell type:markdown id: tags:

## Jitter Analysis
## Trace Jitter Analysis

%% Cell type:code id: tags:

``` python
df = jitter.prep(original, config=config)
jitter.trace_jitter(df, threshold=500)
from xlap.analyse.jitter import multi_trace_jitter
multi_trace_jitter(dfs, config)
```

%% Cell type:markdown id: tags:

## Correlation
## Latency Distributions

%% Cell type:code id: tags:

``` python
correlation(df[df["EndToEnd_D"] < 500], config)
from xlap.analyse.cdf import multi_cdf
from xlap.analyse.util import colors
import copy
cfg = copy.deepcopy(config)
list(map(cfg["durations"].pop, ("Decoding",
                                "ReceiverIPC",
                                "HandlePacket",
                                "Feedback",
                                "SenderIPC",
                                "SenderEnqueued",
                                "Enqueue")))
multi_cdf(dfs, cfg, colors=colors)
```

%% Cell type:markdown id: tags:

## Correlation with E2E Latency

%% Cell type:code id: tags:

``` python
from xlap.analyse.correlation import multi_correlation
multi_correlation(dfs, config, colors=colors, figsize=(3.0,2.0), cols=4)
```

%% Cell type:markdown id: tags:

# $\Delta$elta
## Latency Criticality

%% Cell type:code id: tags:

``` python
d = analyse(original, config)
from xlap.analyse.latency import analyse
d = analyse(df_1GHz, config)
```

%% 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
```

%% Cell type:markdown id: tags:

## Timing Behaviour

%% Cell type:code id: tags:

``` python
from xlap.analyse.timing import timing_behaviour
timing_behaviour(df_1GHz, df_2GHz, config)
```

%% Cell type:code id: tags:

``` python
timing_behaviour(df_1GHz, df_3GHz, config)
```

%% Cell type:code id: tags:

``` python
timing_behaviour(df_2GHz, df_3GHz, config)
```
Loading