aboutsummaryrefslogtreecommitdiff
path: root/doc/data-flow.dot
diff options
context:
space:
mode:
Diffstat (limited to 'doc/data-flow.dot')
-rw-r--r--doc/data-flow.dot83
1 files changed, 83 insertions, 0 deletions
diff --git a/doc/data-flow.dot b/doc/data-flow.dot
new file mode 100644
index 0000000..aa4bcda
--- /dev/null
+++ b/doc/data-flow.dot
@@ -0,0 +1,83 @@
+// Based on http://graphviz.org/content/cluster
+
+// Node types:
+// Rectangle: process
+// Oval: data
+// Diamond: debug/simulation data
+
+digraph G {
+ //rankdir="LR"; // left to right layout
+
+ // http://www.graphviz.org/content/color-names
+ colorscheme=pastel13;
+
+ subgraph cluster_0 {
+ graph [ fontsize=24 ];
+ label = "Reporting";
+ style=filled;
+ color=2;
+
+ node [style=filled, color=white, fontsize=12];
+
+ gen_sim_input -> dist_csv -> rappor_sim;
+
+ rappor_sim -> out;
+ rappor_sim -> params;
+ rappor_sim -> hist;
+ rappor_sim -> true_inputs;
+
+ // Process
+ rappor_sim [label="rappor_sim"];
+
+ // Data
+ dist_csv [shape=box, label="dist.csv"];
+ out [shape=box, label="dist_out.csv"];
+ params [shape=box, label="dist_params.csv"];
+
+ // simulation data
+ hist [shape=box, style=dotted, color=black, label="dist_hist.csv"];
+ true_inputs [shape=box, style=dotted, color=black, label="dist_true_inputs.txt"];
+ }
+
+ subgraph cluster_1 {
+ graph [ fontsize=24 ];
+ label = "Analysis";
+ style = filled;
+ color=3;
+
+ node [style=filled, color=white, fontsize=12];
+
+ sum_bits -> counts;
+
+ // sum_bits needs the params to construct the matrix. Technically it could
+ // infer it, but this is simple.
+ params -> sum_bits;
+
+ // only in the simulation
+ true_inputs -> demo_sh -> candidates [style=dotted];
+
+ candidates -> hash_candidates -> map;
+ params -> hash_candidates;
+
+ params -> analyze;
+ map -> analyze;
+ counts -> analyze;
+ hist -> analyze [style=dotted]; // only for comparison
+
+ analyze -> plot_png;
+
+ // Processes
+ analyze [label="analyze.R"];
+ demo_sh [label="demo.sh", style=dotted, color=black];
+
+ // Data
+ counts [shape=box, label="dist_count.csv"];
+ candidates [shape=box, label="dist_candidates.txt"];
+ map [shape=box, label="dist_map.csv"];
+
+ plot_png [shape=box, label="dist.png"];
+
+ }
+
+ out -> sum_bits;
+}