Last active
May 10, 2016 11:48
-
-
Save lukego/c1875e8c7b5ab9ef38a20be26e8ceeff to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
branch | gbps | |
---|---|---|
master | 5.23 | |
master | 5.44 | |
master | 3.24 | |
master | 3.23 | |
master | 5.84 | |
master | 5.60 | |
master | 5.65 | |
master | 5.82 | |
master | 5.75 | |
master | 4.67 | |
master | 5.09 | |
master | 4.71 | |
master | 5.29 | |
master | 5.36 | |
master | 5.00 | |
master | 5.41 | |
master | 4.93 | |
master | 5.29 | |
master | 5.23 | |
master | 5.68 | |
master | 4.82 | |
master | 5.56 | |
master | 2.48 | |
master | 5.46 | |
master | 5.03 | |
master | 5.41 | |
master | 5.61 | |
master | 4.73 | |
master | 5.30 | |
master | 4.87 | |
master | 5.57 | |
master | 5.48 | |
master | 5.89 | |
master | 5.18 | |
master | 5.50 | |
master | 6.02 | |
master | 5.91 | |
master | 5.58 | |
master | 4.93 | |
master | 2.31 | |
master | 4.40 | |
master | 5.31 | |
master | 4.43 | |
master | 5.64 | |
master | 4.63 | |
master | 5.61 | |
master | 4.92 | |
master | 5.52 | |
master | 4.58 | |
master | 5.29 | |
next | 4.56 | |
next | 4.93 | |
next | 4.79 | |
next | 4.48 | |
next | 4.45 | |
next | 4.26 | |
next | 4.66 | |
next | 4.51 | |
next | 4.81 | |
next | 3.68 | |
next | 5.05 | |
next | 4.91 | |
next | 4.27 | |
next | 4.33 | |
next | 4.44 | |
next | 4.72 | |
next | 5.03 | |
next | 4.76 | |
next | 4.48 | |
next | 3.84 | |
next | 4.55 | |
next | 3.66 | |
next | 4.63 | |
next | 4.45 | |
next | 4.64 | |
next | 5.18 | |
next | 4.34 | |
next | 4.67 | |
next | 4.11 | |
next | 4.47 | |
next | 4.91 | |
next | 4.72 | |
next | 4.74 | |
next | 4.55 | |
next | 4.30 | |
next | 2.10 | |
next | 4.33 | |
next | 4.38 | |
next | 5.03 | |
next | 5.26 | |
next | 4.62 | |
next | 4.34 | |
next | 4.17 | |
next | 4.68 | |
next | 5.37 | |
next | 4.73 | |
next | 4.98 | |
next | 4.38 | |
next | 5.37 | |
next | 5.03 | |
next1024 | 4.840000 | |
next1024 | 4.850000 | |
next1024 | 5.740000 | |
next1024 | 5.290000 | |
next1024 | 5.130000 | |
next1024 | 5.030000 | |
next1024 | 5.450000 | |
next1024 | 5.430000 | |
next1024 | 4.350000 | |
next1024 | 4.870000 | |
next1024 | 5.080000 | |
next1024 | 4.010000 | |
next1024 | 4.890000 | |
next1024 | 5.120000 | |
next1024 | 4.930000 | |
next1024 | 5.170000 | |
next1024 | 5.050000 | |
next1024 | 4.900000 | |
next1024 | 5.470000 | |
next1024 | 4.300000 | |
next1024 | 4.720000 | |
next1024 | 4.540000 | |
next1024 | 3.050000 | |
next1024 | 4.970000 | |
next1024 | 5.780000 | |
next1024 | 5.640000 | |
next1024 | 5.140000 | |
next1024 | 3.710000 | |
next1024 | 4.410000 | |
next1024 | 5.060000 | |
next1024 | 4.440000 | |
next1024 | 4.600000 | |
next1024 | 5.140000 | |
next1024 | 4.750000 | |
next1024 | 5.170000 | |
next1024 | 4.550000 | |
next1024 | 5.900000 | |
next1024 | 4.550000 | |
next1024 | 4.440000 | |
next1024 | 4.610000 | |
next1024 | 4.480000 | |
next1024 | 5.470000 | |
next1024 | 5.210000 | |
next1024 | 4.280000 | |
next1024 | 5.040000 | |
next1024 | 4.620000 | |
next1024 | 5.350000 | |
next1024 | 5.940000 | |
next1024 | 4.380000 | |
next1024 | 4.380000 | |
newpkt | 5.87 | |
newpkt | 5.36 | |
newpkt | 5.95 | |
newpkt | 5.05 | |
newpkt | 5.00 | |
newpkt | 4.82 | |
newpkt | 5.41 | |
newpkt | 4.88 | |
newpkt | 5.85 | |
newpkt | 5.16 | |
newpkt | 5.10 | |
newpkt | 5.42 | |
newpkt | 5.56 | |
newpkt | 5.46 | |
newpkt | 4.48 | |
newpkt | 4.74 | |
newpkt | 5.99 | |
newpkt | 5.95 | |
newpkt | 4.45 | |
newpkt | 5.57 | |
newpkt | 5.20 | |
newpkt | 6.17 | |
newpkt | 5.08 | |
newpkt | 4.98 | |
newpkt | 5.02 | |
newpkt | 4.28 | |
newpkt | 4.84 | |
newpkt | 4.45 | |
newpkt | 5.07 | |
newpkt | 3.44 | |
newpkt | 6.06 | |
newpkt | 5.88 | |
newpkt | 4.95 | |
newpkt | 4.92 | |
newpkt | 4.83 | |
newpkt | 5.26 | |
newpkt | 5.20 | |
newpkt | 5.38 | |
newpkt | 4.54 | |
newpkt | 5.74 | |
newpkt | 3.47 | |
newpkt | 5.48 | |
newpkt | 5.40 | |
newpkt | 4.37 | |
newpkt | 5.65 | |
newpkt | 5.47 | |
newpkt | 4.92 | |
newpkt | 5.93 | |
newpkt | 6.03 | |
newpkt | 5.02 | |
newcksum | 5.73 | |
newcksum | 5.02 | |
newcksum | 5.42 | |
newcksum | 5.49 | |
newcksum | 4.74 | |
newcksum | 4.49 | |
newcksum | 5.31 | |
newcksum | 5.03 | |
newcksum | 5.22 | |
newcksum | 4.90 | |
newcksum | 5.34 | |
newcksum | 4.77 | |
newcksum | 5.32 | |
newcksum | 5.39 | |
newcksum | 5.39 | |
newcksum | 5.04 | |
newcksum | 5.39 | |
newcksum | 4.55 | |
newcksum | 4.34 | |
newcksum | 4.74 | |
newcksum | 4.92 | |
newcksum | 5.70 | |
newcksum | 4.95 | |
newcksum | 5.45 | |
newcksum | 4.99 | |
newcksum | 4.91 | |
newcksum | 4.73 | |
newcksum | 4.89 | |
newcksum | 5.12 | |
newcksum | 5.15 | |
newcksum | 4.70 | |
newcksum | 4.82 | |
newcksum | 5.25 | |
newcksum | 4.88 | |
newcksum | 4.89 | |
newcksum | 5.28 | |
newcksum | 4.85 | |
newcksum | 4.99 | |
newcksum | 5.00 | |
newcksum | 4.67 | |
newcksum | 5.07 | |
newcksum | 5.64 | |
newcksum | 4.61 | |
newcksum | 5.34 | |
newcksum | 2.68 | |
newcksum | 5.22 | |
newcksum | 4.94 | |
newcksum | 4.67 | |
newcksum | 5.04 | |
newcksum | 5.64 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ pkgs ? (import <nixpkgs> {})}: | |
with pkgs; | |
let | |
template = pkgs.writeText "template.Rmd" '' | |
# iperf-1500 inter-branch comparison | |
This [Rmarkdown](http://rmarkdown.rstudio.com/) document presents | |
comparative `iperf-1500` benchmark scores for a few branches: | |
- `master` is the v2016.04 release. | |
- `next` is the first release candidate for `v2016.05` | |
- `next1024` is the second release candiate for `v2016.05`. | |
- `newpkt` is a variation on the `struct packet` layout. | |
- `newcksum` is with a new checksum implementation merged. | |
These results were measured by manually running the `iperf-1500` | |
benchmark on each branch 50 times. This was done because SnabbBot had | |
suggested the results were suspicious. | |
This is the R code to load the data for processing: | |
```{r} | |
library("ggplot2") | |
d <- read.csv(file="${./data.csv}", head=TRUE, sep=",") | |
df <- as.data.frame(d) | |
``` | |
## Visual comparison | |
Here is a visual summary of the performance of each tested branch. There are three visualizations overlayed for each branch: | |
- A black dot marks the average ([arithmetic mean](https://en.wikipedia.org/wiki/Arithmetic_mean)). | |
- A [scatter plot](https://en.wikipedia.org/wiki/Scatter_plot) shows each individual result. | |
- A [violin plot](https://en.wikipedia.org/wiki/Violin_plot) suggests the distribution of results and how common each result is. | |
The scale has been chosen to suit the specific benchmark. This is running `iperf` between two VMs with MTU=1500 on a 1.8GHz Ivy Bridge CPU. The ideal results would be consistently above 10 Gbps. | |
```{r} | |
p <- ggplot(df, aes(branch, gbps)) | |
p <- p + expand_limits(y=0) + expand_limits(y=10) | |
p <- p + ggtitle("iperf MTU=1500") | |
p <- p + geom_violin() | |
p <- p + geom_jitter(color="blue", alpha=0.5) | |
p <- p + stat_summary(fun.data=mean_se) | |
p <- p + scale_y_continuous(breaks = seq(from=0, to=10, by=1), minor_breaks = NULL) | |
p | |
``` | |
One interpretation of these results: | |
1. The results are far below the target of 10 Gbps. This is something that we have accepted for slow Ivy Bridge processors but it is very striking. | |
2. The results vary for unknown reasons. Why do we not see the same result for the same code every time? | |
3. The `next` branch seems to have a performance limit below the `master` branch. This does not seem to be true of the `next1024` branch (though the variation makes it hard to be entirely certain). | |
## Summary by branch | |
```{r} | |
by(df, df["branch"], summary) | |
``` | |
## Tukey's Test | |
This [Tukey's Test](https://en.wikipedia.org/wiki/Tukey%27s_range_test) compares the averages for the results and provides a 95% confidence interval to account for variation. | |
```{r} | |
TukeyHSD(aov(gbps ~ branch, data=df)) | |
``` | |
''; | |
in { | |
sample = pkgs.runCommand "rmarkdown-example" { buildInputs = [ rPackages.rmarkdown rPackages.ggplot2 R pandoc which ]; } '' | |
cp ${template} template.Rmd | |
echo "library(rmarkdown);render('template.Rmd')" | R --no-save | |
mkdir -p $out/nix-support | |
cp template.html $out | |
echo "file HTML $out/template.html" >> $out/nix-support/hydra-build-products; | |
''; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment