
digraph Taskflow {
newrank=true;
#columns
subgraph {
p00[label="pipe-0"];
p10[label="pipe-0"];
p20[label="pipe-0"];
p30[label="pipe-0"];
}

subgraph  {
p01[label="pipe-1"];
p11[label="pipe-1"];
p21[label="pipe-1"];
p31[label="pipe-1"];
}

subgraph  {
p02[label="pipe-2"];
p12[label="pipe-2"];
p22[label="pipe-2"];
p32[label="pipe-2"];
}

subgraph cluster0 {
label="rt-0";
style="dashed";
color="blue";
rank="same";
p00;
p01;
p02;
}
subgraph cluster1 {
label="rt-1";
style="dashed";
color="red";
rank="same";
p10;
p11;
p12;
}
subgraph cluster2 {
label="rt-2";
style="dashed";
color="blue";
rank="same";
p20;
p21;
p22;
}
subgraph cluster3 {
label="rt-3";
style="dashed";
color="red";
rank="same";
p30;
p31;
p32;
}

p00 -> p01;
p01 -> p02;
p10 -> p11;
p11 -> p12;
p20 -> p21;
p21 -> p22;
p30 -> p31;
p31 -> p32;
p00 -> p10;
p02 -> p12;
p10 -> p20;
p12 -> p22;
p20 -> p30;
p22 -> p32;
}

