ovni/doc/emulation/fig/model.dot

67 lines
1.4 KiB
Plaintext

digraph {
#rankdir=LR;
graph [ranksep="1"];
newrank=true;
subgraph cluster_resource {
color="#ffeeee";
style=filled;
label="Resouce model";
cluster -> {"node 0", "node 1"}
"node 0" -> {"cpu 0.0", "cpu 0.1"}
"node 1" -> {"cpu 1.0", "cpu 1.1"}
}
subgraph cluster_process {
color="#eeffee";
style=filled;
label="Process model"
genesis -> {"loom 0", "loom 1"}
"loom 0" -> {"pid 0.0", "pid 0.1"}
"loom 1" -> {"pid 1.0", "pid 1.1"}
"pid 0.0" -> {"th 0.0.0", "th 0.0.1"}
"pid 0.1" -> {"th 0.1.0", "th 0.1.1"}
}
subgraph cluster_task {
color="#eeeeff";
style=filled;
label="Task model";
workload -> { "app 0", "app 1"};
"app 0" -> {"rank 0.0", "rank 0.1"};
"app 1" -> {"rank 1.0", "rank 1.1"};
"rank 0.0" -> {"task 0.0.0","task 0.0.1"};
"rank 0.1" -> {"task 0.1.0", "task 0.1.1"};
}
{rank = same; workload; cluster; genesis;}
{
rank = same;
"node 0"; "node 1"; "loom 0"; "loom 1";
}
{ rank=same; "app 0"; "app 1"; }
{
rank = same; "rank 0.0"; "pid 0.0";
}
{
rank = same; "th 0.0.0"; "task 0.0.0";
"cpu 0.0"; "cpu 0.1"; "cpu 1.0"; "cpu 1.1";
}
edge [style=dashed, constraint=false];
"loom 0" -> "node 0" [color=blue, label="mapped to"];
"rank 0.0" -> "pid 0.0" [color=blue, label="mapped to"];
"task 0.0.0" -> "th 0.0.0" [color=red, label="runs at"];
"th 0.0.0" -> "cpu 0.0" [color=red, label="runs at"];
}