ppl.dot (2291B)
1 graph Pipeline { 2 3 node [fontname="Times",fontsize=7,margin="0.01,0.01",shape=box,height="0.1",width="0.1",penwidth="0.5"] 4 graph [fontname="Times",fontsize=8,nodesep="0.07",ranksep="0.05",rankdir="LR",margin="-0.1,-0.1",bgcolor=transparent] 5 edge [arrowsize=0.66,penwidth="0.5"] 6 7 subgraph cluster_daemon { 8 label="Daemon process" 9 style=filled 10 color=lightgrey 11 12 factory [label="Factory"] 13 parallel_ppl [label="Parallel\npipeline"] 14 io_ppl [label="I/O\npipeline"] 15 sched_ppl [label="Schedule-based\npipeline"] 16 net_ppl [label="Network\npipeline"] 17 proc_ppl [label="Process\npipeline"] 18 19 upstream [label="Upstream\nthread pool"] 20 downstream [label="Downstream\nthread pool"] 21 } 22 23 factory--parallel_ppl 24 factory--io_ppl 25 factory--sched_ppl 26 factory--net_ppl 27 factory--proc_ppl 28 29 subgraph cluster_hardware { 30 label="Compute devices" 31 style=filled 32 color=lightgrey 33 34 cpu [label="CPU"] 35 core0 [label="Core 0"] 36 core1 [label="Core 1"] 37 core2 [label="Core 2"] 38 core3 [label="Core 3"] 39 40 storage [label="Storage"] 41 disk0 [label="Disk 0"] 42 43 network [label="Network"] 44 nic0 [label="NIC 0"] 45 46 timer [label="Timer"] 47 48 } 49 50 core0--cpu 51 core1--cpu 52 core2--cpu 53 core3--cpu 54 55 disk0--storage 56 nic0--network 57 58 parallel_ppl--upstream 59 parallel_ppl--downstream 60 61 upstream--{core0,core1,core2,core3} [style="dashed"] 62 downstream--core0 [style="dashed"] 63 64 io_ppl--core0 [style="dashed"] 65 io_ppl--disk0 [style="dashed"] 66 sched_ppl--core0 [style="dashed"] 67 sched_ppl--timer [style="dashed"] 68 net_ppl--core0 [style="dashed"] 69 net_ppl--nic0 [style="dashed"] 70 proc_ppl--core0 [style="dashed"] 71 72 subgraph cluster_children { 73 style=filled 74 color=white 75 76 subgraph cluster_child0 { 77 label="Child process 0" 78 style=filled 79 color=lightgrey 80 labeljust=right 81 82 app0_factory [label="Factory"] 83 app0 [label="Child process\rpipeline"] 84 } 85 86 # subgraph cluster_child1 { 87 # label="Child process 1" 88 # style=filled 89 # color=lightgrey 90 # labeljust=right 91 # 92 # app1_factory [label="Factory"] 93 # app1 [label="Child process\rpipeline"] 94 # } 95 } 96 97 proc_ppl--app0 98 # proc_ppl--app1 99 100 app0_factory--app0 [constraint=false] 101 # app1_factory--app1 [constraint=false] 102 103 }