Skip to content

Disterl configurations for experiments. #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 60 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
13be129
Ensure disterl is enabled for the disterl tests.
cmeiklejohn Sep 24, 2018
35f70d6
If partisan dispatch is disabled, use the disterl option, otherwise p…
cmeiklejohn Sep 24, 2018
70238a5
Add kvs latency experiment.
cmeiklejohn Sep 26, 2018
bffdc1c
Store individual samples.
cmeiklejohn Sep 27, 2018
1c5bfdb
Switch echo and fsm to time-based throughput experiment.
cmeiklejohn Sep 28, 2018
5fc5318
Reorganize experiments.
cmeiklejohn Sep 28, 2018
edafff2
Remove.
cmeiklejohn Sep 28, 2018
47d833c
Alter duration.
cmeiklejohn Sep 28, 2018
e2f22b8
data
cmeiklejohn Sep 28, 2018
1a8878d
csv.
cmeiklejohn Sep 28, 2018
627e1f2
new
cmeiklejohn Sep 28, 2018
c41aea2
more
cmeiklejohn Sep 28, 2018
ef61c07
more
cmeiklejohn Sep 28, 2018
fcfe913
more
cmeiklejohn Sep 28, 2018
d709471
more
cmeiklejohn Sep 28, 2018
1e9f1e1
more
cmeiklejohn Sep 28, 2018
4d12b5b
more
cmeiklejohn Sep 28, 2018
b49b1f0
more
cmeiklejohn Sep 28, 2018
575bc40
Fix experiments.
cmeiklejohn Sep 28, 2018
d10cc29
Add results.
cmeiklejohn Sep 28, 2018
b9fff63
update makefile.
cmeiklejohn Sep 29, 2018
2f664f4
update experiment configuration
cmeiklejohn Sep 29, 2018
6b38838
new exp
cmeiklejohn Sep 30, 2018
75f6e64
Remove.
cmeiklejohn Oct 7, 2018
e434c41
Add figure 5 code.
cmeiklejohn Jan 2, 2019
3775870
Update configuration.
cmeiklejohn Jan 2, 2019
4535011
Add fixed parallelism.
cmeiklejohn Jan 2, 2019
c600237
Alter experiment.
cmeiklejohn Jan 2, 2019
3b20576
Alter experiment.
cmeiklejohn Jan 2, 2019
2ab71d8
Fix experiment.
cmeiklejohn Jan 2, 2019
9def138
Update experiments.
cmeiklejohn Jan 2, 2019
9aae000
Set to 16.
cmeiklejohn Jan 2, 2019
701899d
Remove.
cmeiklejohn Jan 2, 2019
d0828da
Enable kernel_poll.
cmeiklejohn Jan 2, 2019
75a9324
Add figure 1-3 workload.
cmeiklejohn Jan 2, 2019
d8c22be
Add Figure 4 workload.
cmeiklejohn Jan 2, 2019
4bfe493
Add new workloads.
cmeiklejohn Jan 3, 2019
c9f0c34
New experiments.
cmeiklejohn Jan 3, 2019
ae1c2bc
Add fsm suite.
cmeiklejohn Jan 3, 2019
456705c
Update experiment configuration.
cmeiklejohn Jan 4, 2019
d3c1583
Remove large file.
cmeiklejohn Jan 4, 2019
fd1859f
Add new configuration.
cmeiklejohn Jan 7, 2019
e6d9576
Add new configuration.
cmeiklejohn Jan 7, 2019
dee22a7
Alter configuration.
cmeiklejohn Jan 7, 2019
4da9d24
Add RScripts.
cmeiklejohn Jan 7, 2019
28d354e
Ensure proper configuration of Vnode Partitioning.
cmeiklejohn Jun 2, 2019
a29b2d0
Use proper partitioning key for sends.
cmeiklejohn Jun 2, 2019
94076ba
Update microbenchmark configuration.
cmeiklejohn Jun 2, 2019
c8fb5cd
Update microbenchmark configuration.
cmeiklejohn Jun 2, 2019
3e729c2
Move file to correct location.
cmeiklejohn Jun 2, 2019
0efe58b
Add throughput benchmarks.
cmeiklejohn Jun 2, 2019
3fc9cb4
Merge branch 'disterl' of github.com:lasp-lang/unir into disterl
cmeiklejohn Jun 2, 2019
64bc576
Add throughput examples.
cmeiklejohn Jun 2, 2019
9552142
Remove basho-bench example configurations.
cmeiklejohn Jun 2, 2019
0a529da
Add microbenchmarks R plots.
cmeiklejohn Jun 2, 2019
4f5efa6
Remove old experimental data.
cmeiklejohn Jun 2, 2019
1c8e3ef
Add preliminary README.
cmeiklejohn Jun 2, 2019
c977efb
Fix extension.
cmeiklejohn Jun 2, 2019
c26cf7d
Fix URL.
cmeiklejohn Jun 2, 2019
fd85115
Fix url.
cmeiklejohn Jun 2, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ results.csv
rebar3.crashdump
results-*
dets/
*.csv
72 changes: 57 additions & 15 deletions Makefile

Large diffs are not rendered by default.

32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# ATC'19 Results for Partisan

Here you can find the test harness used for generating all of our results.
Obviously, your results will differ from ours if you do not use the same
experimental configuration as we do.

Preliminary results are available [here.](http://partisan.cloud)

This repository includes a microbenchmark suite for Partisan itself, and a
port of Riak Core (from Basho) ported to Partisan for running experiments
with a simulated key-value store using three vnodes, and a echo service using
a single vnode.

Our port of Riak Core is available [here](https://github.com/lasp-lang/riak_core/tree/partisan-support-r21) with a compatibility library available [here](https://github.com/lasp-lang/riak_core_partisan_utils).

## Data Collection Targets

* `bin/microbenchmarks.sh`: Run the microbenchmark suite, Figure 1.

* `bin/microbenchmarks-queueoverhead.sh`: Run the microbenchmark suite for identifying queue overhead introduced by additional connections/queues, Figure 2.

* `bin/microbenchmarks-highlatency.sh`: Run the high-latency microbenchmark suite, Figure 3.

* `bin/microbenchmarks-largepayload.sh`: Run the large-payload microbenchmark suite, Figure 4.

* `bin/throughput-echo.sh`: Run the Echo workload, Figures 5 & 6.

* `bin/throughput-kvs.sh`: Run the KVS workload, Figures 7 & 8.

## Plots

Available in the ```Rscripts``` folder are a number of scripts used to generate the plots included in our final paper.
121 changes: 0 additions & 121 deletions README.rst

This file was deleted.

35 changes: 0 additions & 35 deletions Rscripts/echo-latency.R

This file was deleted.

32 changes: 0 additions & 32 deletions Rscripts/graph.R

This file was deleted.

66 changes: 66 additions & 0 deletions Rscripts/microbenchmarks-highlatency.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
library(ggplot2)
library(tidyverse)
library(scales)
library(shades)
library(socviz)

# df <- read.csv("C:\\Users\\cmeiklej\\source\\repos\\unir-2019-03-28\\microbenchmarks.csv", header = FALSE)
# df <- read.csv("C:\\Users\\cmeiklej\\OneDrive\\Desktop\\usenix-2019-camera-ready-results\\microbenchmarks.csv", header = FALSE)
# df <- read.csv("C:\\Users\\chris\\Documents\\GitHub\\unir\\results-3.csv", header = FALSE)
df <- read.csv("../microbenchmarks-highlatency.csv", header = FALSE)
colnames(df) <- c("App", "Transport", "Concurrency", "Channels", "Monotonic", "Parallelism", "Affinity", "Size", "Num", "Latency", "Time")
df <- transform(df, Time = round(as.numeric(Time) / 1000, digits = 2))

df1 <- subset(df, (
# disterl 1 1 false
(Transport == "disterl" & Channels == 1 & Parallelism == 1 & Affinity == "false") |

# partisan 1 1 false
(Transport == "partisan" & Channels == 1 & Parallelism == 1 & Affinity == "false") |

# partisan 1 16 false
(Transport == "partisan" & Channels == 1 & Parallelism == 16 & Affinity == "false") |

# partisan 1 16 true
(Transport == "partisan" & Channels == 1 & Parallelism == 16 & Affinity == "true") |

# partisan 4 1 false
(Transport == "partisan" & Channels == 4 & Parallelism == 1 & Affinity == "false") |

# partisan 4 16 true
(Transport == "partisan" & Channels == 4 & Parallelism == 16 & Affinity == "true")
)
& (Size == 524288 & Latency == "20" & is.element(Concurrency, c(16, 32, 64, 128))))
df1$Concurrency <- factor(df1$Concurrency)
df1$Experiment <- paste("",
ifelse(df1$Affinity == "true" & df1$Transport == "partisan" & df1$Channels == 4 & df1$Parallelism == 16, "partisan parallel affinitized (N = 16)",
ifelse(df1$Affinity == "true" & df1$Transport == "partisan" & df1$Channels == 1 & df1$Parallelism == 16, "partisan parallel affinitized (N = 16)",
ifelse(df1$Affinity == "false" & df1$Channels == 1 & df1$Transport == "partisan" & df1$Parallelism == 1, "partisan (N = 1)",
ifelse(df1$Affinity == "false" & df1$Channels == 4 & df1$Transport == "partisan" & df1$Parallelism == 1, "partisan w/ channels (N = 1)",
ifelse(df1$Affinity == "false" & df1$Transport == "partisan" & df1$Channels == 1 & df1$Parallelism == 16, "partisan parallel (N = 16)",
"disterl"))))))


ggplot(data = df1, aes(x = Concurrency, y = Time, fill = Experiment)) +
geom_jitter(alpha=0.1, position = position_jitterdodge(jitter.width = 0.1), aes(color = Experiment)) +
geom_boxplot(outlier.shape = NA, notch = TRUE) +
# geom_boxplot() +
# theme_grey(base_size = 14) +
ylab("Milliseconds / RT Request") +
xlab("# of Actors") +
#scale_y_continuous(trans='log2') +
#annotation_logticks(base = 2, sides = "l") +
ggtitle("512KB Payload, 20ms RTT Latency") +
theme_classic() +
theme(legend.position = c(0.27, 0.86),
panel.grid.major.y = element_line(size = 0.25, linetype = 'solid', colour = "grey60"),
panel.grid.minor.y = element_line(size = 0.1, linetype = 'solid', colour = "grey80"),
# legend.background = element_rect(color = "black", fill = "grey90", size = 1, linetype = "solid"),
plot.title=element_text(size=18),
axis.text=element_text(size=16),
axis.title=element_text(size=18),
legend.title=element_text(size=16, face="bold"),
legend.text=element_text(size=16)
)

ggsave("../Microbenchmarks-HighLatency-Final-linear.png", dpi = 400)
66 changes: 66 additions & 0 deletions Rscripts/microbenchmarks-largepayload.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
library(ggplot2)
library(tidyverse)
library(scales)
library(shades)
library(socviz)

# df <- read.csv("C:\\Users\\cmeiklej\\source\\repos\\unir-2019-03-28\\microbenchmarks.csv", header = FALSE)
# df <- read.csv("C:\\Users\\cmeiklej\\OneDrive\\Desktop\\usenix-2019-camera-ready-results\\microbenchmarks.csv", header = FALSE)
# df <- read.csv("C:\\Users\\chris\\Documents\\GitHub\\unir\\results-3.csv", header = FALSE)
df <- read.csv("../microbenchmarks-largepayload.csv", header = FALSE)
colnames(df) <- c("App", "Transport", "Concurrency", "Channels", "Monotonic", "Parallelism", "Affinity", "Size", "Num", "Latency", "Time")
df <- transform(df, Time = round(as.numeric(Time) / 1000, digits = 2))

df1 <- subset(df, (
# disterl 1 1 false
(Transport == "disterl" & Channels == 1 & Parallelism == 1 & Affinity == "false") |

# partisan 1 1 false
(Transport == "partisan" & Channels == 1 & Parallelism == 1 & Affinity == "false") |

# partisan 1 16 false
(Transport == "partisan" & Channels == 1 & Parallelism == 16 & Affinity == "false") |

# partisan 1 16 true
(Transport == "partisan" & Channels == 1 & Parallelism == 16 & Affinity == "true") |

# partisan 4 1 false
(Transport == "partisan" & Channels == 4 & Parallelism == 1 & Affinity == "false") |

# partisan 4 16 true
(Transport == "partisan" & Channels == 4 & Parallelism == 16 & Affinity == "true")
)
& (Size == 8388608 & Latency == "1" & is.element(Concurrency, c(16, 32, 64, 128))))
df1$Concurrency <- factor(df1$Concurrency)
df1$Experiment <- paste("",
ifelse(df1$Affinity == "true" & df1$Transport == "partisan" & df1$Channels == 4 & df1$Parallelism == 16, "partisan parallel affinitized (N = 16)",
ifelse(df1$Affinity == "true" & df1$Transport == "partisan" & df1$Channels == 1 & df1$Parallelism == 16, "partisan parallel affinitized (N = 16)",
ifelse(df1$Affinity == "false" & df1$Channels == 1 & df1$Transport == "partisan" & df1$Parallelism == 1, "partisan (N = 1)",
ifelse(df1$Affinity == "false" & df1$Channels == 4 & df1$Transport == "partisan" & df1$Parallelism == 1, "partisan w/ channels (N = 1)",
ifelse(df1$Affinity == "false" & df1$Transport == "partisan" & df1$Channels == 1 & df1$Parallelism == 16, "partisan parallel (N = 16)",
"disterl"))))))

ggplot(data = df1, aes(x = Concurrency, y = Time, fill = Experiment)) +
geom_jitter(alpha=0.1, position = position_jitterdodge(jitter.width = 0.1), aes(color = Experiment)) +
geom_boxplot(outlier.shape = NA, notch = TRUE) +
# geom_boxplot() +
# theme_grey(base_size = 14) +
ylab("Milliseconds / RT Request") +
xlab("# of Actors") +
#scale_y_continuous(trans='log2') +
#annotation_logticks(base = 2, sides = "l") +
ggtitle("8MB Payload, 1ms RTT Latency") +
theme_classic() +
theme(legend.position = c(0.27, 0.86),
panel.grid.major.y = element_line(size = 0.25, linetype = 'solid', colour = "grey60"),
panel.grid.minor.y = element_line(size = 0.1, linetype = 'solid', colour = "grey80"),
# legend.background = element_rect(color = "black", fill = "grey90", size = 1, linetype = "solid"),
plot.title=element_text(size=18),
axis.text=element_text(size=16),
axis.title=element_text(size=18),
legend.title=element_text(size=16, face="bold"),
legend.text=element_text(size=16)
)


ggsave("../Microbenchmarks-LargePayload-Final-linear.png", dpi = 400)
Loading