Commit 157af6e8 authored by Pedro Gonnet's avatar Pedro Gonnet
Browse files

final draft status.


Former-commit-id: ca34365e4b28940becee0ce3df66340cb896c84a
parent cf13c6d0
......@@ -13,7 +13,7 @@
height="1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
inkscape:version="0.48.4 r9939"
sodipodi:docname="CellLocking.svg">
<defs
id="defs4">
......@@ -39,7 +39,7 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2"
inkscape:cx="319.93452"
inkscape:cx="330.55518"
inkscape:cy="689.70563"
inkscape:document-units="px"
inkscape:current-layer="layer1"
......@@ -127,7 +127,7 @@
id="rect3769"
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
style="fill:#ff0000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1"
id="rect3771"
width="20"
height="20"
......@@ -249,7 +249,7 @@
y="316.0072"
x="364.91455"
id="tspan4878"
sodipodi:role="line">1</tspan></text>
sodipodi:role="line">2</tspan></text>
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
......@@ -261,6 +261,6 @@
id="tspan4882"
x="319.91455"
y="271.0072"
style="font-size:10px;text-align:center;text-anchor:middle">3</tspan></text>
style="font-size:10px;text-align:center;text-anchor:middle">4</tspan></text>
</g>
</svg>
......@@ -14,7 +14,7 @@
height="744.09448"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Hierarchy2.svg">
<sodipodi:namedview
id="base"
......@@ -24,13 +24,13 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2"
inkscape:cx="281.33705"
inkscape:cy="559.59426"
inkscape:cx="125.83705"
inkscape:cy="619.59426"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1280"
inkscape:window-height="753"
inkscape:window-width="1920"
inkscape:window-height="1033"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1">
......@@ -367,7 +367,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -378,7 +378,7 @@
inkscape:label="Layer 1">
<g
style="fill:#74abff;fill-opacity:1"
transform="translate(-230,30)"
transform="translate(-230,50)"
id="g10633">
<rect
style="fill:#74abff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -390,7 +390,7 @@
</g>
<g
style="fill:#ffca1a;fill-opacity:1"
transform="translate(-230,30)"
transform="translate(-230,50)"
id="g10637">
<rect
y="392.36218"
......@@ -402,7 +402,7 @@
</g>
<g
id="g10675"
transform="translate(-230,200)"
transform="translate(-230,220)"
style="fill:#74abff;fill-opacity:1">
<rect
y="392.36218"
......@@ -414,7 +414,7 @@
</g>
<g
id="g10679"
transform="translate(-230,200)"
transform="translate(-230,220)"
style="fill:#ffca1a;fill-opacity:1">
<rect
style="fill:#ffca1a;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -439,11 +439,11 @@
inkscape:rounded="0"
inkscape:randomized="0"
d="m 110,174.09448 17.32051,30 -34.641018,0 z"
transform="translate(204,328.2677)"
transform="translate(204,348.2677)"
inkscape:transform-center-y="-5" />
<path
inkscape:transform-center-y="-5"
transform="translate(256,328.2677)"
transform="translate(256,348.2677)"
d="m 110,174.09448 17.32051,30 -34.641018,0 z"
inkscape:randomized="0"
inkscape:rounded="0"
......@@ -462,21 +462,21 @@
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:bold;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
x="240"
y="436.36218"
y="456.36218"
id="text13273"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan13275"
x="240"
y="436.36218">force</tspan></text>
y="456.36218">force</tspan></text>
<text
sodipodi:linespacing="125%"
id="text13277"
y="606.36218"
y="626.36218"
x="240"
style="font-size:12px;font-style:normal;font-weight:bold;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
xml:space="preserve"><tspan
y="606.36218"
y="626.36218"
x="240"
id="tspan13279"
sodipodi:role="line">density</tspan></text>
......@@ -484,16 +484,16 @@
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:bold;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
x="240"
y="522.36218"
y="542.36218"
id="text13281"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan13283"
x="240"
y="522.36218">ghost</tspan></text>
y="542.36218">ghost</tspan></text>
<path
transform="translate(-125,588.2677)"
d="m 460,99.094482 c 0,8.284268 -6.71573,14.999998 -15,14.999998 -8.28427,0 -15,-6.71573 -15,-14.999998 0,-8.284271 6.71573,-15 15,-15 8.28427,0 15,6.715729 15,15 z"
transform="translate(-125,608.2677)"
d="m 460,99.094482 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
sodipodi:ry="15"
sodipodi:rx="15"
sodipodi:cy="99.094482"
......@@ -509,19 +509,19 @@
sodipodi:cy="99.094482"
sodipodi:rx="15"
sodipodi:ry="15"
d="m 460,99.094482 c 0,8.284268 -6.71573,14.999998 -15,14.999998 -8.28427,0 -15,-6.71573 -15,-14.999998 0,-8.284271 6.71573,-15 15,-15 8.28427,0 15,6.715729 15,15 z"
transform="translate(-85,588.2677)" />
d="m 460,99.094482 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
transform="translate(-85,608.2677)" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:bold;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
x="240"
y="686.36218"
y="706.36218"
id="text5455"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5457"
x="240"
y="686.36218">sort</tspan></text>
y="706.36218">sort</tspan></text>
<path
sodipodi:type="arc"
style="fill:#74abff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -530,11 +530,11 @@
sodipodi:cy="99.094482"
sodipodi:rx="15"
sodipodi:ry="15"
d="m 460,99.094482 c 0,8.284268 -6.71573,14.999998 -15,14.999998 -8.28427,0 -15,-6.71573 -15,-14.999998 0,-8.284271 6.71573,-15 15,-15 8.28427,0 15,6.715729 15,15 z"
transform="translate(-125,644.2677)" />
d="m 460,99.094482 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
transform="translate(-125,664.2677)" />
<path
transform="translate(-85,644.2677)"
d="m 460,99.094482 c 0,8.284268 -6.71573,14.999998 -15,14.999998 -8.28427,0 -15,-6.71573 -15,-14.999998 0,-8.284271 6.71573,-15 15,-15 8.28427,0 15,6.715729 15,15 z"
transform="translate(-85,664.2677)"
d="m 460,99.094482 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
sodipodi:ry="15"
sodipodi:rx="15"
sodipodi:cy="99.094482"
......@@ -543,8 +543,8 @@
style="fill:#ffca1a;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<path
transform="translate(-125,684.2677)"
d="m 460,99.094482 c 0,8.284268 -6.71573,14.999998 -15,14.999998 -8.28427,0 -15,-6.71573 -15,-14.999998 0,-8.284271 6.71573,-15 15,-15 8.28427,0 15,6.715729 15,15 z"
transform="translate(-125,704.2677)"
d="m 460,99.094482 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
sodipodi:ry="15"
sodipodi:rx="15"
sodipodi:cy="99.094482"
......@@ -560,48 +560,46 @@
sodipodi:cy="99.094482"
sodipodi:rx="15"
sodipodi:ry="15"
d="m 460,99.094482 c 0,8.284268 -6.71573,14.999998 -15,14.999998 -8.28427,0 -15,-6.71573 -15,-14.999998 0,-8.284271 6.71573,-15 15,-15 8.28427,0 15,6.715729 15,15 z"
transform="translate(-85,684.2677)" />
d="m 460,99.094482 a 15,15 0 1 1 -30,0 15,15 0 1 1 30,0 z"
transform="translate(-85,704.2677)" />
<text
sodipodi:linespacing="125%"
id="text5486"
y="766.36218"
y="786.36218"
x="240"
style="font-size:12px;font-style:normal;font-weight:bold;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
xml:space="preserve"><tspan
y="766.36218"
y="786.36218"
x="240"
id="tspan5488"
sodipodi:role="line">sort</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 315,224.09448 c 0,20 15,35 15,60"
d="m 315,552.36218 c 0,20 15,35 15,60"
id="path5490"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path6576"
d="m 365,224.09448 c 0,20 -15,35 -15,60"
d="m 365,552.36218 c 0,20 -15,35 -15,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path6578"
d="m 330,612.36218 c 0,20 -10,35 -10,60"
d="m 330,632.36218 c 0,20 -10,35 -10,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 350,612.36218 c 0,20 10,35 10,60"
d="m 350,632.36218 c 0,20 10,35 10,60"
id="path6580"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 330,442.36218 c 0,20 -15,35 -15,60"
d="m 330,462.36218 c 0,20 -15,35 -15,60"
id="path6582"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
......@@ -609,11 +607,11 @@
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path6584"
d="m 350,442.36218 c 0,20 15,35 15,60"
d="m 350,462.36218 c 0,20 15,35 15,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 360,702.36218 c 0,15 -15,20 -30,30"
d="m 360,722.36218 c 0,15 -15,20 -30,30"
id="path6586"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
......@@ -621,11 +619,11 @@
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path6588"
d="m 360,702.36218 c 0,15 0,10 0,25"
d="m 360,722.36218 c 0,15 0,10 0,25"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 360,702.36218 c 0,15 45,30 10,70"
d="m 360,722.36218 c 0,15 45,30 10,70"
id="path6590"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
......@@ -633,11 +631,11 @@
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path6592"
d="m 360,702.36218 c 0,15 -95,5 -50,70"
d="m 360,722.36218 c 0,15 -95,5 -50,70"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<g
id="g6629"
transform="translate(-190,30)"
transform="translate(-185,50)"
style="fill:#ffca1a;fill-opacity:1">
<rect
style="fill:#ffca1a;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -649,7 +647,7 @@
</g>
<g
id="g6633"
transform="translate(-270,30)"
transform="translate(-275,50)"
style="fill:#74abff;fill-opacity:1">
<rect
y="392.36218"
......@@ -660,29 +658,32 @@
style="fill:#74abff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1,1;stroke-dashoffset:0"
d="m 300,124.09448 20,0"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 2;stroke-dashoffset:0"
d="m 295,452.36218 25,0"
id="path6637"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)" />
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
id="path6639"
d="m 360,432.36218 20,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0" />
d="m 360,452.36218 25,0"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 2;stroke-dashoffset:0"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
id="path6641"
d="m 300,602.36218 20,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0" />
d="m 295,622.36218 16.5,0 8.5,0"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 2;stroke-dashoffset:0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
d="m 360,602.36218 20,0"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 2;stroke-dashoffset:0"
d="m 360,622.36218 25,0"
id="path6643"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<g
style="fill:#ffca1a;fill-opacity:1"
transform="translate(-190,200)"
transform="translate(-185,220)"
id="g6645">
<rect
y="392.36218"
......@@ -694,7 +695,7 @@
</g>
<g
style="fill:#74abff;fill-opacity:1"
transform="translate(-270,200)"
transform="translate(-275,220)"
id="g6649">
<rect
style="fill:#74abff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -706,29 +707,96 @@
</g>
<path
sodipodi:nodetypes="cc"
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path6653"
d="m 315,224.09448 c 0,20 -25,35 -25,60"
d="m 315,552.36218 c 0,20 -30,35 -30,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 365,224.09448 c 0,20 25,35 25,60"
d="m 365,552.36218 c 0,20 30,35 30,60"
id="path6655"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path6657"
d="m 290,442.36218 c 0,20 25,35 25,60"
d="m 285,462.36218 c 0,20 30,35 30,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 390,442.36218 c 0,20 -25,35 -25,60"
d="m 395,462.36218 c 0,20 -30,35 -30,60"
id="path6659"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
inkscape:transform-center-y="5.0000047"
transform="matrix(1,0,0,-1,204,556.45667)"
d="m 110,174.09448 17.32051,30 -34.641018,0 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="true"
sodipodi:arg2="-0.52359878"
sodipodi:arg1="-1.5707963"
sodipodi:r2="10"
sodipodi:r1="20"
sodipodi:cy="194.09448"
sodipodi:cx="110"
sodipodi:sides="3"
id="path5337"
style="fill:#74abff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="star" />
<path
sodipodi:type="star"
style="fill:#ffca1a;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path5339"
sodipodi:sides="3"
sodipodi:cx="110"
sodipodi:cy="194.09448"
sodipodi:r1="20"
sodipodi:r2="10"
sodipodi:arg1="-1.5707963"
sodipodi:arg2="-0.52359878"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 110,174.09448 17.32051,30 -34.641018,0 z"
transform="matrix(1,0,0,-1,256,556.45667)"
inkscape:transform-center-y="5.0000047" />
<text
sodipodi:linespacing="125%"
id="text5341"
y="372.36218"
x="240"
style="font-size:12px;font-style:normal;font-weight:bold;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
xml:space="preserve"><tspan
y="372.36218"
x="240"
id="tspan5343"
sodipodi:role="line">integrator</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5345"
d="m 315,382.36218 c 0,20 15,35 15,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 365,382.36218 c 0,20 -15,35 -15,60"
id="path5347"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
d="m 315,382.36218 c 0,20 -30,35 -30,60"
id="path5349"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5351"
d="m 365,382.36218 c 0,20 30,35 30,60"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" />
</g>
</svg>
......@@ -51,6 +51,8 @@
{Table~\ref{tab:#1}}
\newcommand{\figs}[1]
{Figures~\ref{fig:#1}}
\newcommand{\sect}[1]
{Section~\ref{sec:#1}}
\newcommand{\cuda}
{{\sc cuda}\xspace}
\newcommand{\namd}
......@@ -71,7 +73,7 @@
% Title, author and affiliations
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Efficient and Scalable Algorithms for Smoothed Particle Hydrodynamics on
Shared-Memory Multi-Core Architectures}
Hybrid Shared/Distributed-Memory Architectures}
\author{Pedro Gonnet\thanks{School of Engineering and Computing Sciences,
Durham University, Durham, Untied Kingdom ({\tt pedro.gonnet@durham.ac.uk}).}}
......@@ -99,13 +101,15 @@
% Abstract
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{abstract}
This paper describes a novel approach to neighbour-finding in multi-resolution
This paper describes a new fast and implicitly parallel
approach to neighbour-finding in multi-resolution
Smoothed Particle Hydrodynamics (SPH) simulations.
This new approach is based on hierarchical cell decompositions, sorted interactions,
and a task-based formulation.
It is shown to be faster than traditional tree-based
This new approach is based on hierarchical cell decompositions and
sorted interactions, within a task-based formulation.
This approach is shown to be faster than traditional tree-based
codes, and to scale better than domain decomposition-based approaches on
shared-memory parallel architectures such as multi-cores.
hybrid shared/distributed-memory parallel architectures, e.g. clusters
of multi-cores.
\end{abstract}
......@@ -133,36 +137,6 @@ multi-cores
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
Since the past few years, due to the physical limitations
on the speed of individual processor cores, instead of
getting {\em faster}, computers are getting {\em more parallel}.
This increase in parallelism comes mainly in the form of
{\em multi-core} computers, e.g. single computers which
contain more than one computational core sharing the
same memory bus.
Systems containing up to 64 general-purpose cores are becoming
commonplace, and the number cores can be expected to continue
growing exponentially, e.g.~following Moore's law, much in the
same way processor speeds were up until a few years ago.
This applies not only to shared-memory parallel desktop
computers, but also modern High-Performance Computing (HPC)
infrastructure which consist mainly of clusters of multi-cores.
Indeed, over the past 5 years, the main factor driving the growth
in cluster performance is the use of shared-memory multi-cores,
and not an increase in the total number of nodes/computers used.
In order to address increasingly larger
or more complex problems, high-performance computing software
will need to be able to exploit this increasing parallelism.
Fortunately, parallelism and parallel codes are nothing new:
Many large-scale computations, e.g.~the cosmological
simulation software {\sc gadget}, can run concurrently
on several thousands of cores.
The exponential growth of parallelism, and shared-memory
parallelism in particular, however, provide some interesting
new challenges.
For the past 15 years, the predominant paradigm for parallel
computing has been distributed-memory parallelism using MPI
(Message Passing Interface) \cite{ref:Snir1998},
......@@ -172,10 +146,10 @@ each node or core a portion of the data on which to work.
The cores execute the same code
in parallel, each on its own part on the data, intermittently exchanging data.
The amount of {\em computation} local to the node is then proportional
to the amount of data it contains, e.g.~its volume, while
to the amount of data it contains, e.g.~its {\em volume}, while
the amount of {\em communication} is proportional to the
amount of computation spanning two or more nodes, e.g.~its
surface.
{\em surface}.
For very large computations over a moderate number of nodes,
the cost of communication is negligible compared to the
......@@ -184,60 +158,92 @@ However, if the number of nodes increases, or
smaller problems are considered, the surface-to-volume ratio,
i.e. the ratio of communication to computation,
grows, and the time spent on communication will increasingly
dominate the entire simulation, reducing scaling and parallel
efficiency.
Another problem is that current multi-core computers
differ in one important aspect from traditional clusters or
single-core distributed-memory
systems: Since all cores in a single computer share the same memory
bus and, in most cases, parts of the cache hierarchy,
the effective memory bandwidth per core decreases with
increasing numbers of cores,
making aspects such as memory and cache efficiency
increasingly important.
dominate the entire simulation, resulting in a loss of scaling
and parallel efficiency.
% Another problem is that current multi-core computers
% differ in one important aspect from traditional clusters or
% single-core distributed-memory
% systems: Since all cores in a single computer share the same memory
% bus and, in most cases, parts of the cache hierarchy,
% the effective memory bandwidth per core decreases with
% increasing numbers of cores,
% making aspects such as memory and cache efficiency
% increasingly important.
Since the past few years, due to the physical limitations
on the speed of individual processor cores, instead of
getting {\em faster}, computers are getting {\em more parallel}.
This increase in parallelism comes mainly in the form of
{\em multi-core} computers, e.g. single computers which
contain more than one computational core sharing a common
memory bus.
Systems containing up to 64 general-purpose cores are becoming
commonplace, and the number cores can be expected to continue
growing exponentially, e.g.~following Moore's law, much in the
same way processor speeds were up until a few years ago.
This development affects not only to shared-memory parallel desktop
computers, but also modern High-Performance Computing (HPC)
infrastructure which consist mainly of clusters of multi-cores.
Indeed, over the past 5 years, the main factor driving the growth
in cluster performance is the use of shared-memory multi-cores,
and not necessarily an increase in the total number of
nodes/computers used.
Assuming the individual cores do not get any faster,
this means that small simulations, for which the
maximum degree of parallelism has already been reached, will never
become any faster (see \fig{Results}).
This also means that large systems, if they do not continue
simulations for which the
maximum degree of parallelism has already been reached will
{\em never} become any faster (see dashed line in \fig{CosmoVolume}).
Ever.
The surface-to-volume ratio problem also means that large
systems which currently parallelize well, if they do not continue
to get larger, will also eventually break down as the number