arma-thesis

git clone https://git.igankevich.com/arma-thesis.git
Log | Files | Refs | LICENSE

commit c65c0f095fa6f8fbcb104af101badd24ce6bd6df
parent 0d2f5be2013fe8e3651110261a3da34f130ee3d4
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Sat,  4 Feb 2017 20:55:18 +0300

Add pipeline graph.

Diffstat:
phd-diss.org | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 105 insertions(+), 0 deletions(-)

diff --git a/phd-diss.org b/phd-diss.org @@ -1916,6 +1916,111 @@ replace active wait for completion of subordinate kernels with passive one. Pipelines, in turn, allow implementing passive wait, and call correct kernel methods by analysing their internal state. + +#+name: fig:subord-ppl +#+begin_src dot :exports results :file build/subord-ppl.pdf +graph G { + + node [fontsize=14,margin="0.055,0",shape=box] + graph [nodesep="0.25",ranksep="0.25",rankdir="LR"] + edge [arrowsize=0.66] + + subgraph cluster_daemon { + label="Daemon process" + style=filled + color=lightgrey + + factory [label="Factory"] + parallel_ppl [label="Parallel pipeline"] + io_ppl [label="I/O pipeline"] + sched_ppl [label="Schedule-based pipeline"] + net_ppl [label="Network pipeline"] + proc_ppl [label="Process pipeline"] + + upstream [label="Upstream thread pool"] + downstream [label="Downstream thread pool"] + } + + factory--parallel_ppl + factory--io_ppl + factory--sched_ppl + factory--net_ppl + factory--proc_ppl + + subgraph cluster_hardware { + label="Compute devices" + style=filled + color=lightgrey + + cpu [label="CPU"] + core0 [label="Core 0"] + core1 [label="Core 1"] + core2 [label="Core 2"] + core3 [label="Core 3"] + + storage [label="Storage"] + disk0 [label="Disk 0"] + + network [label="Network"] + nic0 [label="NIC 0"] + + } + + core0--cpu + core1--cpu + core2--cpu + core3--cpu + + disk0--storage + nic0--network + + parallel_ppl--upstream + parallel_ppl--downstream + + upstream--{core0,core1,core2,core3} [style="dashed"] + downstream--core0 [style="dashed"] + + io_ppl--core0 [style="dashed"] + io_ppl--disk0 [style="dashed"] + sched_ppl--core0 [style="dashed"] + net_ppl--core0 [style="dashed"] + net_ppl--nic0 [style="dashed"] + proc_ppl--core0 [style="dashed"] + + subgraph cluster_children { + style=filled + color=white + + subgraph cluster_child0 { + label="Child process 0" + style=filled + color=lightgrey + + app0 [label="App 0"] + app0_factory [label="Factory"] + } + + subgraph cluster_child1 { + label="Child process 1" + style=filled + color=lightgrey + + app1 [label="App 1"] + app1_factory [label="Factory"] + } + appN [label="..."] + } + + proc_ppl--app0--app0_factory + proc_ppl--app1--app1_factory + proc_ppl--appN + +} +#+end_src + +#+RESULTS: fig:subord-ppl +[[file:build/subord-ppl.pdf]] + *** Governing principles Data processing pipeline model is based on the following principles, following which maximises efficiency of a programme.