Commit 19afb41f authored by Andreas Schmidt's avatar Andreas Schmidt
Browse files

Remove jitter.prep. Add correlation export. Small fixes.

parent 123504b6
Loading
Loading
Loading
Loading
+78 −8
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.cdf import multi_cdf
from xlap.analyse.regress import linear as linear_regression
from xlap.analyse.trace import traces
from xlap.analyse.correlation import correlation
from xlap.analyse.correlation import correlation, multi_correlation
from xlap.analyse.latency import analyse
import matplotlib.pyplot as plt
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)
data_files = {
    "sender": "~/Work/Publications/rtn-2018/eval/20180417_testbed/",
    "receiver": "~/Work/Publications/rtn-2018/eval/20180417_testbed/"
}
original1 = evaluate(data_files["sender"] + "sender-1000000.csv", data_files["receiver"] + "receiver-1000000.csv", config=config, kind=0)
original1.name = "1GHz"
original2 = evaluate(data_files["sender"] + "sender-2000000.csv", data_files["receiver"] + "receiver-2000000.csv", config=config, kind=0)
original2.name = "2GHz"
original3 = evaluate(data_files["sender"] + "sender-3000000.csv", data_files["receiver"] + "receiver-3000000.csv", config=config, kind=0)
original3.name = "3GHz"
dfs = [original1, original2, original3]
```

%% Cell type:markdown id: tags:

## Traces

%% Cell type:code id: tags:

``` python
traces(original, config)
traces(original1, config)
```

%% Cell type:markdown id: tags:

## Jitter Analysis

%% Cell type:code id: tags:

``` python
df = jitter.prep(original, config=config)
jitter.trace_jitter(df, threshold=500)
def multi_trace_jitter(dfs, config):
    for df in dfs:
        print("############################ {} ############################".format(df.name))
        jitter.trace_jitter(df, config=config, threshold=300)

multi_trace_jitter(dfs, config)
```

%% Cell type:markdown id: tags:

## CDFs

%% Cell type:code id: tags:

``` python
multi_cdf(dfs, config, export=True)
```

%% Cell type:markdown id: tags:

## Correlation

%% Cell type:code id: tags:

``` python
correlation(df[df["EndToEnd_D"] < 500], config)
multi_correlation(dfs, config, export=True)
```

%% Cell type:markdown id: tags:

## Latency Criticality

%% Cell type:code id: tags:

``` python
d = analyse(original, config)
d = analyse(original1, 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:

# Kolmogorov

%% Cell type:code id: tags:

``` python
from scipy import stats
from xlap.analyse.util import extract_durations
import numpy as np

def timing_behaviour(df1, df2, config, confidence=0.9):
    durations = [x + "_D" for x in extract_durations(config)]

    norm = lambda x: x / np.max(x)

    for duration in durations:
        rvs1 = norm(df1[duration])
        rvs2 = norm(df2[duration])
        stat, pvalue = stats.ks_2samp(rvs1, rvs2)
        result = "CANNOT REJECT"
        if pvalue < 1 - confidence:
            result = "REJECT"
        print(duration.ljust(20), "{:.6f}".format(pvalue), result, sep="\t\t")

timing_behaviour(original1, original2, config)
```

%% Cell type:code id: tags:

``` python
timing_behaviour(original1, original3, config)
```

%% Cell type:code id: tags:

``` python
timing_behaviour(original2, original3, config)
```

%% Cell type:code id: tags:

``` python
```
+8 −0
Original line number Diff line number Diff line
@@ -39,6 +39,14 @@ stamps:
        Source: sender
        Thread: app_send
        Type: time
    PrrtSendPacketStart:
        Source: sender
        Thread: trans_send
        Type: none
    PrrtSendPacketEnd:
        Source: sender
        Thread: trans_send
        Type: none

    PrrtTransmitStart:
        Source: sender