Mercurial > cgi-bin > hgwebdir.cgi > VMS > 0__Writings > kshalle
changeset 36:5357bdecea5a
Perf Tuning -- added UCC and ConseqG def section at end
| author | Some Random Person <seanhalle@yahoo.com> |
|---|---|
| date | Wed, 25 Apr 2012 06:12:16 -0700 |
| parents | 663b333e36c0 |
| children | a64326ad1b5b |
| files | 0__Papers/Holistic_Model/Perf_Tune/figures/Features_table.svg 0__Papers/Holistic_Model/Perf_Tune/figures/UCC_concreteness_grid.svg 0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.tex |
| diffstat | 3 files changed, 1961 insertions(+), 9 deletions(-) [+] |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/figures/Features_table.svg Wed Apr 25 06:12:16 2012 -0700 1.3 @@ -0,0 +1,952 @@ 1.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 1.6 + 1.7 +<svg 1.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 1.9 + xmlns:cc="http://creativecommons.org/ns#" 1.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 1.11 + xmlns:svg="http://www.w3.org/2000/svg" 1.12 + xmlns="http://www.w3.org/2000/svg" 1.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 1.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 1.15 + width="744.09448819" 1.16 + height="1052.3622047" 1.17 + id="svg2" 1.18 + sodipodi:version="0.32" 1.19 + inkscape:version="0.48.1 " 1.20 + sodipodi:docname="Runtime_internals_with_meas_spots.svg" 1.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 1.22 + version="1.1"> 1.23 + <defs 1.24 + id="defs4"> 1.25 + <marker 1.26 + inkscape:stockid="Arrow2Mend" 1.27 + orient="auto" 1.28 + refY="0.0" 1.29 + refX="0.0" 1.30 + id="Arrow2Mend" 1.31 + style="overflow:visible;"> 1.32 + <path 1.33 + id="path3563" 1.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 1.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 1.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 1.37 + </marker> 1.38 + <marker 1.39 + inkscape:stockid="TriangleOutM" 1.40 + orient="auto" 1.41 + refY="0.0" 1.42 + refX="0.0" 1.43 + id="TriangleOutM" 1.44 + style="overflow:visible"> 1.45 + <path 1.46 + id="path3682" 1.47 + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " 1.48 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 1.49 + transform="scale(0.4)" /> 1.50 + </marker> 1.51 + <marker 1.52 + inkscape:stockid="Arrow2Lend" 1.53 + orient="auto" 1.54 + refY="0.0" 1.55 + refX="0.0" 1.56 + id="Arrow2Lend" 1.57 + style="overflow:visible;"> 1.58 + <path 1.59 + id="path3557" 1.60 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 1.61 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 1.62 + transform="scale(1.1) rotate(180) translate(1,0)" /> 1.63 + </marker> 1.64 + <marker 1.65 + inkscape:stockid="Arrow1Mstart" 1.66 + orient="auto" 1.67 + refY="0.0" 1.68 + refX="0.0" 1.69 + id="Arrow1Mstart" 1.70 + style="overflow:visible"> 1.71 + <path 1.72 + id="path3542" 1.73 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 1.74 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 1.75 + transform="scale(0.4) translate(10,0)" /> 1.76 + </marker> 1.77 + <marker 1.78 + inkscape:stockid="Arrow1Lend" 1.79 + orient="auto" 1.80 + refY="0.0" 1.81 + refX="0.0" 1.82 + id="Arrow1Lend" 1.83 + style="overflow:visible;"> 1.84 + <path 1.85 + id="path3539" 1.86 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 1.87 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 1.88 + transform="scale(0.8) rotate(180) translate(12.5,0)" /> 1.89 + </marker> 1.90 + <marker 1.91 + inkscape:stockid="Arrow1Lstart" 1.92 + orient="auto" 1.93 + refY="0.0" 1.94 + refX="0.0" 1.95 + id="Arrow1Lstart" 1.96 + style="overflow:visible"> 1.97 + <path 1.98 + id="path3536" 1.99 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 1.100 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 1.101 + transform="scale(0.8) translate(12.5,0)" /> 1.102 + </marker> 1.103 + <inkscape:perspective 1.104 + sodipodi:type="inkscape:persp3d" 1.105 + inkscape:vp_x="0 : 526.18109 : 1" 1.106 + inkscape:vp_y="0 : 1000 : 0" 1.107 + inkscape:vp_z="744.09448 : 526.18109 : 1" 1.108 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 1.109 + id="perspective10" /> 1.110 + <inkscape:perspective 1.111 + id="perspective4311" 1.112 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.113 + inkscape:vp_z="1 : 0.5 : 1" 1.114 + inkscape:vp_y="0 : 1000 : 0" 1.115 + inkscape:vp_x="0 : 0.5 : 1" 1.116 + sodipodi:type="inkscape:persp3d" /> 1.117 + <inkscape:perspective 1.118 + id="perspective4336" 1.119 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.120 + inkscape:vp_z="1 : 0.5 : 1" 1.121 + inkscape:vp_y="0 : 1000 : 0" 1.122 + inkscape:vp_x="0 : 0.5 : 1" 1.123 + sodipodi:type="inkscape:persp3d" /> 1.124 + <inkscape:perspective 1.125 + id="perspective4365" 1.126 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.127 + inkscape:vp_z="1 : 0.5 : 1" 1.128 + inkscape:vp_y="0 : 1000 : 0" 1.129 + inkscape:vp_x="0 : 0.5 : 1" 1.130 + sodipodi:type="inkscape:persp3d" /> 1.131 + <marker 1.132 + inkscape:stockid="Arrow2Mend" 1.133 + orient="auto" 1.134 + refY="0" 1.135 + refX="0" 1.136 + id="Arrow2Mend-9" 1.137 + style="overflow:visible"> 1.138 + <path 1.139 + id="path3563-4" 1.140 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.141 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.142 + transform="scale(-0.6,-0.6)" /> 1.143 + </marker> 1.144 + <inkscape:perspective 1.145 + id="perspective4423" 1.146 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.147 + inkscape:vp_z="1 : 0.5 : 1" 1.148 + inkscape:vp_y="0 : 1000 : 0" 1.149 + inkscape:vp_x="0 : 0.5 : 1" 1.150 + sodipodi:type="inkscape:persp3d" /> 1.151 + <marker 1.152 + inkscape:stockid="Arrow2Mend" 1.153 + orient="auto" 1.154 + refY="0" 1.155 + refX="0" 1.156 + id="Arrow2Mend-8" 1.157 + style="overflow:visible"> 1.158 + <path 1.159 + id="path3563-2" 1.160 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.161 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.162 + transform="scale(-0.6,-0.6)" /> 1.163 + </marker> 1.164 + <inkscape:perspective 1.165 + id="perspective4461" 1.166 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.167 + inkscape:vp_z="1 : 0.5 : 1" 1.168 + inkscape:vp_y="0 : 1000 : 0" 1.169 + inkscape:vp_x="0 : 0.5 : 1" 1.170 + sodipodi:type="inkscape:persp3d" /> 1.171 + <inkscape:perspective 1.172 + id="perspective14081" 1.173 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.174 + inkscape:vp_z="1 : 0.5 : 1" 1.175 + inkscape:vp_y="0 : 1000 : 0" 1.176 + inkscape:vp_x="0 : 0.5 : 1" 1.177 + sodipodi:type="inkscape:persp3d" /> 1.178 + <inkscape:perspective 1.179 + id="perspective14206" 1.180 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.181 + inkscape:vp_z="1 : 0.5 : 1" 1.182 + inkscape:vp_y="0 : 1000 : 0" 1.183 + inkscape:vp_x="0 : 0.5 : 1" 1.184 + sodipodi:type="inkscape:persp3d" /> 1.185 + <inkscape:perspective 1.186 + id="perspective14299" 1.187 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.188 + inkscape:vp_z="1 : 0.5 : 1" 1.189 + inkscape:vp_y="0 : 1000 : 0" 1.190 + inkscape:vp_x="0 : 0.5 : 1" 1.191 + sodipodi:type="inkscape:persp3d" /> 1.192 + <inkscape:perspective 1.193 + id="perspective3233" 1.194 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.195 + inkscape:vp_z="1 : 0.5 : 1" 1.196 + inkscape:vp_y="0 : 1000 : 0" 1.197 + inkscape:vp_x="0 : 0.5 : 1" 1.198 + sodipodi:type="inkscape:persp3d" /> 1.199 + <marker 1.200 + inkscape:stockid="Arrow2Mend" 1.201 + orient="auto" 1.202 + refY="0" 1.203 + refX="0" 1.204 + id="Arrow2Mend-8-1" 1.205 + style="overflow:visible"> 1.206 + <path 1.207 + id="path3563-2-7" 1.208 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.209 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.210 + transform="scale(-0.6,-0.6)" /> 1.211 + </marker> 1.212 + <marker 1.213 + inkscape:stockid="Arrow2Mend" 1.214 + orient="auto" 1.215 + refY="0" 1.216 + refX="0" 1.217 + id="marker3239" 1.218 + style="overflow:visible"> 1.219 + <path 1.220 + id="path3241" 1.221 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.222 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.223 + transform="scale(-0.6,-0.6)" /> 1.224 + </marker> 1.225 + <inkscape:perspective 1.226 + id="perspective3353" 1.227 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.228 + inkscape:vp_z="1 : 0.5 : 1" 1.229 + inkscape:vp_y="0 : 1000 : 0" 1.230 + inkscape:vp_x="0 : 0.5 : 1" 1.231 + sodipodi:type="inkscape:persp3d" /> 1.232 + <inkscape:perspective 1.233 + id="perspective3447" 1.234 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.235 + inkscape:vp_z="1 : 0.5 : 1" 1.236 + inkscape:vp_y="0 : 1000 : 0" 1.237 + inkscape:vp_x="0 : 0.5 : 1" 1.238 + sodipodi:type="inkscape:persp3d" /> 1.239 + <marker 1.240 + inkscape:stockid="Arrow2Mend" 1.241 + orient="auto" 1.242 + refY="0" 1.243 + refX="0" 1.244 + id="Arrow2Mend-8-5" 1.245 + style="overflow:visible"> 1.246 + <path 1.247 + id="path3563-2-5" 1.248 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.249 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.250 + transform="scale(-0.6,-0.6)" /> 1.251 + </marker> 1.252 + <marker 1.253 + inkscape:stockid="Arrow2Mend" 1.254 + orient="auto" 1.255 + refY="0" 1.256 + refX="0" 1.257 + id="marker3453" 1.258 + style="overflow:visible"> 1.259 + <path 1.260 + id="path3455" 1.261 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.262 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.263 + transform="scale(-0.6,-0.6)" /> 1.264 + </marker> 1.265 + <inkscape:perspective 1.266 + id="perspective4753" 1.267 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.268 + inkscape:vp_z="1 : 0.5 : 1" 1.269 + inkscape:vp_y="0 : 1000 : 0" 1.270 + inkscape:vp_x="0 : 0.5 : 1" 1.271 + sodipodi:type="inkscape:persp3d" /> 1.272 + <marker 1.273 + inkscape:stockid="Arrow2Mend" 1.274 + orient="auto" 1.275 + refY="0" 1.276 + refX="0" 1.277 + id="Arrow2Mend-8-12" 1.278 + style="overflow:visible"> 1.279 + <path 1.280 + id="path3563-2-3" 1.281 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.282 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.283 + transform="scale(-0.6,-0.6)" /> 1.284 + </marker> 1.285 + <inkscape:perspective 1.286 + id="perspective4850" 1.287 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.288 + inkscape:vp_z="1 : 0.5 : 1" 1.289 + inkscape:vp_y="0 : 1000 : 0" 1.290 + inkscape:vp_x="0 : 0.5 : 1" 1.291 + sodipodi:type="inkscape:persp3d" /> 1.292 + <marker 1.293 + inkscape:stockid="Arrow2Mend" 1.294 + orient="auto" 1.295 + refY="0" 1.296 + refX="0" 1.297 + id="Arrow2Mend-8-8" 1.298 + style="overflow:visible"> 1.299 + <path 1.300 + id="path3563-2-74" 1.301 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.302 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.303 + transform="scale(-0.6,-0.6)" /> 1.304 + </marker> 1.305 + <inkscape:perspective 1.306 + id="perspective4850-7" 1.307 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.308 + inkscape:vp_z="1 : 0.5 : 1" 1.309 + inkscape:vp_y="0 : 1000 : 0" 1.310 + inkscape:vp_x="0 : 0.5 : 1" 1.311 + sodipodi:type="inkscape:persp3d" /> 1.312 + <marker 1.313 + inkscape:stockid="Arrow2Mend" 1.314 + orient="auto" 1.315 + refY="0" 1.316 + refX="0" 1.317 + id="Arrow2Mend-8-7" 1.318 + style="overflow:visible"> 1.319 + <path 1.320 + id="path3563-2-9" 1.321 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 1.322 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 1.323 + transform="scale(-0.6,-0.6)" /> 1.324 + </marker> 1.325 + <inkscape:perspective 1.326 + id="perspective4914" 1.327 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.328 + inkscape:vp_z="1 : 0.5 : 1" 1.329 + inkscape:vp_y="0 : 1000 : 0" 1.330 + inkscape:vp_x="0 : 0.5 : 1" 1.331 + sodipodi:type="inkscape:persp3d" /> 1.332 + <inkscape:perspective 1.333 + id="perspective4946" 1.334 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 1.335 + inkscape:vp_z="1 : 0.5 : 1" 1.336 + inkscape:vp_y="0 : 1000 : 0" 1.337 + inkscape:vp_x="0 : 0.5 : 1" 1.338 + sodipodi:type="inkscape:persp3d" /> 1.339 + </defs> 1.340 + <sodipodi:namedview 1.341 + id="base" 1.342 + pagecolor="#ffffff" 1.343 + bordercolor="#666666" 1.344 + borderopacity="1.0" 1.345 + gridtolerance="10000" 1.346 + guidetolerance="10" 1.347 + objecttolerance="10" 1.348 + inkscape:pageopacity="0.0" 1.349 + inkscape:pageshadow="2" 1.350 + inkscape:zoom="1.5301741" 1.351 + inkscape:cx="385.73996" 1.352 + inkscape:cy="731.0723" 1.353 + inkscape:document-units="px" 1.354 + inkscape:current-layer="layer1" 1.355 + showgrid="false" 1.356 + inkscape:window-width="1585" 1.357 + inkscape:window-height="847" 1.358 + inkscape:window-x="-3" 1.359 + inkscape:window-y="0" 1.360 + inkscape:window-maximized="0" /> 1.361 + <metadata 1.362 + id="metadata7"> 1.363 + <rdf:RDF> 1.364 + <cc:Work 1.365 + rdf:about=""> 1.366 + <dc:format>image/svg+xml</dc:format> 1.367 + <dc:type 1.368 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 1.369 + <dc:title></dc:title> 1.370 + </cc:Work> 1.371 + </rdf:RDF> 1.372 + </metadata> 1.373 + <g 1.374 + inkscape:label="Layer 1" 1.375 + inkscape:groupmode="layer" 1.376 + id="layer1"> 1.377 + <rect 1.378 + y="182.49448" 1.379 + x="163.84431" 1.380 + height="161.39378" 1.381 + width="329.44443" 1.382 + id="rect4979" 1.383 + style="fill:none;stroke:#000000;stroke-width:1.08000004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:1.944" /> 1.384 + <text 1.385 + xml:space="preserve" 1.386 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60163802;stroke-opacity:1;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.387 + x="441.66748" 1.388 + y="404.66492" 1.389 + id="text8002" 1.390 + sodipodi:linespacing="100%"><tspan 1.391 + sodipodi:role="line" 1.392 + x="441.66748" 1.393 + y="404.66492" 1.394 + style="font-size:8px" 1.395 + id="tspan12172" /></text> 1.396 + <text 1.397 + id="text5835" 1.398 + y="125.02016" 1.399 + x="450.34119" 1.400 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.401 + xml:space="preserve"><tspan 1.402 + y="125.02016" 1.403 + x="450.34119" 1.404 + id="tspan5837" 1.405 + sodipodi:role="line"><tspan 1.406 + style="fill:#0303b8;fill-opacity:1" 1.407 + id="tspan5845">Blue</tspan> = application</tspan></text> 1.408 + <text 1.409 + xml:space="preserve" 1.410 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.411 + x="368.28989" 1.412 + y="125.02016" 1.413 + id="text5839"><tspan 1.414 + sodipodi:role="line" 1.415 + id="tspan5841" 1.416 + x="368.28989" 1.417 + y="125.02016"><tspan 1.418 + style="fill:#960a0a;fill-opacity:1" 1.419 + id="tspan5847">Red</tspan> = runtime</tspan></text> 1.420 + <text 1.421 + xml:space="preserve" 1.422 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.423 + x="368.25397" 1.424 + y="405.27225" 1.425 + id="text5849"><tspan 1.426 + sodipodi:role="line" 1.427 + id="tspan5851" 1.428 + x="368.25397" 1.429 + y="405.27225" /></text> 1.430 + <path 1.431 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.50000001, 0.50000001;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.432 + d="M 289.73631,577.76803 C 263.95998,564.0618 244.9124,553.07853 244.9124,553.07853" 1.433 + id="path6066-9-4" 1.434 + sodipodi:nodetypes="cc" 1.435 + inkscape:connector-curvature="0" /> 1.436 + <rect 1.437 + y="151.42043" 1.438 + x="157.23335" 1.439 + height="194.79402" 1.440 + width="457.79532" 1.441 + id="rect18326-3" 1.442 + style="opacity:0.3142857;fill:none;stroke:#000000;stroke-width:0.09999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.3999998, 0.3999998;stroke-dashoffset:0.14999992" /> 1.443 + <path 1.444 + sodipodi:nodetypes="cc" 1.445 + id="path3602" 1.446 + d="m 261.4119,552.41344 c 26.46687,13.70623 46.02474,24.6895 46.02474,24.6895" 1.447 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.448 + inkscape:connector-curvature="0" /> 1.449 + <path 1.450 + sodipodi:nodetypes="cc" 1.451 + id="path3655" 1.452 + d="M 318.49369,577.76803 C 357.52667,563.08168 386.37044,551.313 386.37044,551.313" 1.453 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.454 + inkscape:connector-curvature="0" /> 1.455 + <g 1.456 + id="g3242" 1.457 + transform="translate(20,-81.133751)"> 1.458 + <rect 1.459 + y="309.504" 1.460 + x="532.18225" 1.461 + height="68.687347" 1.462 + width="78.674728" 1.463 + id="rect4725" 1.464 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 1.465 + <text 1.466 + xml:space="preserve" 1.467 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.468 + x="571.67981" 1.469 + y="322.80692" 1.470 + id="text4727" 1.471 + sodipodi:linespacing="100%"><tspan 1.472 + style="font-size:9px;text-align:center;text-anchor:middle" 1.473 + sodipodi:role="line" 1.474 + x="571.67981" 1.475 + y="322.80692" 1.476 + id="tspan4731">slaveVP</tspan></text> 1.477 + <g 1.478 + transform="translate(230.36868,-317.52206)" 1.479 + id="g4733"> 1.480 + <rect 1.481 + y="673.02618" 1.482 + x="316.63855" 1.483 + height="16.01606" 1.484 + width="47.791374" 1.485 + id="rect4737" 1.486 + style="fill:none;stroke:#0303b8;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.320725, 4.320725;stroke-dashoffset:0" /> 1.487 + <text 1.488 + xml:space="preserve" 1.489 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.490 + x="340.63751" 1.491 + y="684.03717" 1.492 + id="text4739" 1.493 + sodipodi:linespacing="100%"><tspan 1.494 + style="font-size:9px;text-align:center;text-anchor:middle" 1.495 + id="tspan4741" 1.496 + sodipodi:role="line" 1.497 + x="340.63751" 1.498 + y="684.03717">top_VP_fn</tspan></text> 1.499 + </g> 1.500 + </g> 1.501 + <g 1.502 + id="g5001" 1.503 + transform="translate(-104.17459,-455.52206)"> 1.504 + <text 1.505 + sodipodi:linespacing="100%" 1.506 + id="text4834" 1.507 + y="619.79431" 1.508 + x="339.56277" 1.509 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.510 + xml:space="preserve"><tspan 1.511 + y="619.79431" 1.512 + x="339.56277" 1.513 + sodipodi:role="line" 1.514 + id="tspan4836" 1.515 + style="font-size:9px;text-align:center;text-anchor:middle">Shared Parallelism-Semantic State</tspan><tspan 1.516 + id="tspan4838" 1.517 + y="628.79431" 1.518 + x="339.56277" 1.519 + sodipodi:role="line" 1.520 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 1.521 + <rect 1.522 + style="fill:none;stroke:#960a0a;stroke-width:1.07999992;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000008, 4.32000008;stroke-dashoffset:0" 1.523 + id="rect4840" 1.524 + width="149.25206" 1.525 + height="12.695431" 1.526 + x="264.97189" 1.527 + y="610.18365" /> 1.528 + </g> 1.529 + <path 1.530 + sodipodi:nodetypes="cc" 1.531 + id="path4883" 1.532 + d="m 205.94834,169.27344 c -0.0417,34.47629 -0.0725,62.1034 -0.0725,62.1034" 1.533 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.534 + inkscape:connector-curvature="0" /> 1.535 + <path 1.536 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.537 + d="m 193.94834,231.61326 c -0.0417,-34.47628 -0.0725,-62.10333 -0.0725,-62.10333" 1.538 + id="path4885" 1.539 + sodipodi:nodetypes="cc" 1.540 + inkscape:connector-curvature="0" /> 1.541 + <path 1.542 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.543 + d="m 551.6841,281.79676 c -38.53453,0.002 -67.00988,0.004 -67.00988,0.004" 1.544 + id="path4902" 1.545 + sodipodi:nodetypes="cc" 1.546 + inkscape:connector-curvature="0" /> 1.547 + <path 1.548 + sodipodi:nodetypes="cc" 1.549 + id="path4904" 1.550 + d="m 483.44108,257.79676 c 38.5498,0.002 67.03641,0.004 67.03641,0.004" 1.551 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.552 + inkscape:connector-curvature="0" /> 1.553 + <text 1.554 + xml:space="preserve" 1.555 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.556 + x="528.8573" 1.557 + y="255.07925" 1.558 + id="text4721-1" 1.559 + sodipodi:linespacing="100%"><tspan 1.560 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1" 1.561 + id="tspan4723-9" 1.562 + sodipodi:role="line" 1.563 + x="528.8573" 1.564 + y="255.07925">Switch VPs</tspan></text> 1.565 + <text 1.566 + sodipodi:linespacing="100%" 1.567 + id="text4931" 1.568 + y="279.07925" 1.569 + x="528.8573" 1.570 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.571 + xml:space="preserve"><tspan 1.572 + y="279.07925" 1.573 + x="528.8573" 1.574 + sodipodi:role="line" 1.575 + id="tspan4933" 1.576 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1">Switch VPs</tspan></text> 1.577 + <text 1.578 + xml:space="preserve" 1.579 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.580 + x="422.57816" 1.581 + y="193.16141" 1.582 + id="text4981" 1.583 + sodipodi:linespacing="100%"><tspan 1.584 + style="font-size:9px;text-align:center;text-anchor:middle" 1.585 + id="tspan4983" 1.586 + sodipodi:role="line" 1.587 + x="422.57816" 1.588 + y="193.16141">Repeated for each physical core</tspan></text> 1.589 + <g 1.590 + id="g3590" 1.591 + transform="translate(-104.75363,-387.52206)"> 1.592 + <g 1.593 + id="g18019-8" 1.594 + transform="translate(-109.01365,39.321571)"> 1.595 + <text 1.596 + sodipodi:linespacing="100%" 1.597 + id="text17967-5" 1.598 + y="590.22229" 1.599 + x="419.38776" 1.600 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.601 + xml:space="preserve"><tspan 1.602 + y="590.22229" 1.603 + x="419.38776" 1.604 + sodipodi:role="line" 1.605 + id="tspan17969-7" 1.606 + style="font-size:9px;text-align:center;text-anchor:middle">comm_</tspan><tspan 1.607 + id="tspan17971-6" 1.608 + y="599.22229" 1.609 + x="419.38776" 1.610 + sodipodi:role="line" 1.611 + style="font-size:9px;text-align:center;text-anchor:middle">handler_fn</tspan></text> 1.612 + <rect 1.613 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" 1.614 + id="rect17973-1" 1.615 + width="48.927513" 1.616 + height="22.365267" 1.617 + x="395.11298" 1.618 + y="580.86206" /> 1.619 + </g> 1.620 + </g> 1.621 + <text 1.622 + sodipodi:linespacing="100%" 1.623 + id="text17977-3-5" 1.624 + y="280.80692" 1.625 + x="237.94568" 1.626 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.627 + xml:space="preserve"><tspan 1.628 + y="280.80692" 1.629 + x="237.94568" 1.630 + sodipodi:role="line" 1.631 + id="tspan17979-3-4" 1.632 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 1.633 + <g 1.634 + id="g3580" 1.635 + transform="translate(-103.63132,-399.52206)"> 1.636 + <path 1.637 + inkscape:connector-curvature="0" 1.638 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.639 + d="m 317.62527,671.29009 c -5.09448,-8.49068 -8.85909,-15.29455 -8.85909,-15.29455" 1.640 + id="path18292-2" 1.641 + sodipodi:nodetypes="cc" /> 1.642 + <g 1.643 + id="g17983-3" 1.644 + transform="translate(-7.0136518,5.3215684)"> 1.645 + <rect 1.646 + y="667.70459" 1.647 + x="317.60855" 1.648 + height="16.01606" 1.649 + width="61.691765" 1.650 + id="rect17975-2" 1.651 + style="fill:none;stroke:#159415;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072499, 4.32072499;stroke-dashoffset:0" /> 1.652 + <text 1.653 + xml:space="preserve" 1.654 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.655 + x="347.65115" 1.656 + y="678.71558" 1.657 + id="text17977-2" 1.658 + sodipodi:linespacing="100%"><tspan 1.659 + style="font-size:9px;text-align:center;text-anchor:middle" 1.660 + id="tspan17979-1" 1.661 + sodipodi:role="line" 1.662 + x="347.65115" 1.663 + y="678.71558">master_loop</tspan></text> 1.664 + </g> 1.665 + <path 1.666 + inkscape:connector-curvature="0" 1.667 + sodipodi:nodetypes="cc" 1.668 + id="path3578" 1.669 + d="m 374.32675,655.55365 c -5.09448,8.49068 -8.85909,15.29455 -8.85909,15.29455" 1.670 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 1.671 + </g> 1.672 + <text 1.673 + sodipodi:linespacing="100%" 1.674 + id="text4821" 1.675 + y="218.02182" 1.676 + x="269.62048" 1.677 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.678 + xml:space="preserve"><tspan 1.679 + y="218.02182" 1.680 + x="269.62048" 1.681 + sodipodi:role="line" 1.682 + id="tspan4823" 1.683 + style="font-size:9px;text-align:center;text-anchor:middle">readyQ</tspan><tspan 1.684 + id="tspan4825" 1.685 + y="227.02182" 1.686 + x="269.62048" 1.687 + sodipodi:role="line" 1.688 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 1.689 + <rect 1.690 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000001, 4.32000001;stroke-dashoffset:0" 1.691 + id="rect4827" 1.692 + width="48.927513" 1.693 + height="12.695431" 1.694 + x="245.3457" 1.695 + y="208.66159" /> 1.696 + <path 1.697 + inkscape:connector-curvature="0" 1.698 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 1.699 + d="m 227.16268,231.46504 c 9.78768,-7.86986 17.02037,-14.17623 17.02037,-14.17623" 1.700 + id="path3576-2" 1.701 + sodipodi:nodetypes="cc" /> 1.702 + <text 1.703 + sodipodi:linespacing="100%" 1.704 + id="text3915" 1.705 + y="268.80692" 1.706 + x="201.94568" 1.707 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.708 + xml:space="preserve"><tspan 1.709 + y="268.80692" 1.710 + x="201.94568" 1.711 + sodipodi:role="line" 1.712 + id="tspan3917" 1.713 + style="font-size:9px;text-align:center;text-anchor:middle">2</tspan></text> 1.714 + <text 1.715 + xml:space="preserve" 1.716 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.717 + x="199.94568" 1.718 + y="214.80692" 1.719 + id="text3919" 1.720 + sodipodi:linespacing="100%"><tspan 1.721 + style="font-size:9px;text-align:center;text-anchor:middle" 1.722 + id="tspan3921" 1.723 + sodipodi:role="line" 1.724 + x="199.94568" 1.725 + y="214.80692">3</tspan></text> 1.726 + <text 1.727 + sodipodi:linespacing="100%" 1.728 + id="text3923" 1.729 + y="222.80692" 1.730 + x="231.94568" 1.731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.732 + xml:space="preserve"><tspan 1.733 + y="222.80692" 1.734 + x="231.94568" 1.735 + sodipodi:role="line" 1.736 + id="tspan3925" 1.737 + style="font-size:9px;text-align:center;text-anchor:middle">4</tspan></text> 1.738 + <text 1.739 + sodipodi:linespacing="100%" 1.740 + id="text3931" 1.741 + y="264.80692" 1.742 + x="261.94568" 1.743 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.744 + xml:space="preserve"><tspan 1.745 + y="264.80692" 1.746 + x="261.94568" 1.747 + sodipodi:role="line" 1.748 + id="tspan3933" 1.749 + style="font-size:9px;text-align:center;text-anchor:middle">5</tspan></text> 1.750 + <text 1.751 + xml:space="preserve" 1.752 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.753 + x="527.94568" 1.754 + y="246.80692" 1.755 + id="text3951" 1.756 + sodipodi:linespacing="100%"><tspan 1.757 + style="font-size:9px;text-align:center;text-anchor:middle" 1.758 + id="tspan3953" 1.759 + sodipodi:role="line" 1.760 + x="527.94568" 1.761 + y="246.80692">9</tspan></text> 1.762 + <text 1.763 + sodipodi:linespacing="100%" 1.764 + id="text3955" 1.765 + y="270.80692" 1.766 + x="527.94568" 1.767 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.768 + xml:space="preserve"><tspan 1.769 + y="270.80692" 1.770 + x="527.94568" 1.771 + sodipodi:role="line" 1.772 + id="tspan3957" 1.773 + style="font-size:9px;text-align:center;text-anchor:middle">10</tspan></text> 1.774 + <text 1.775 + sodipodi:linespacing="100%" 1.776 + id="text3494" 1.777 + y="324.80692" 1.778 + x="243.94568" 1.779 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.780 + xml:space="preserve"><tspan 1.781 + y="324.80692" 1.782 + x="243.94568" 1.783 + sodipodi:role="line" 1.784 + id="tspan3496" 1.785 + style="font-size:9px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Trebuchet MS Oblique">(Animated)</tspan></text> 1.786 + <text 1.787 + xml:space="preserve" 1.788 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.789 + x="331.94568" 1.790 + y="162.80692" 1.791 + id="text3498" 1.792 + sodipodi:linespacing="100%"><tspan 1.793 + style="font-size:9px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Trebuchet MS Oblique" 1.794 + id="tspan3500" 1.795 + sodipodi:role="line" 1.796 + x="331.94568" 1.797 + y="162.80692">(Blocked)</tspan></text> 1.798 + <text 1.799 + sodipodi:linespacing="100%" 1.800 + id="text3502" 1.801 + y="216.80692" 1.802 + x="403.94568" 1.803 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.804 + xml:space="preserve"><tspan 1.805 + y="216.80692" 1.806 + x="403.94568" 1.807 + sodipodi:role="line" 1.808 + id="tspan3504" 1.809 + style="font-size:9px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Trebuchet MS Oblique">(Ready)</tspan></text> 1.810 + <text 1.811 + xml:space="preserve" 1.812 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.813 + x="329.62048" 1.814 + y="398.02182" 1.815 + id="text9820" 1.816 + sodipodi:linespacing="100%"><tspan 1.817 + style="font-size:9px;text-align:start;text-anchor:start" 1.818 + id="tspan9822" 1.819 + sodipodi:role="line" 1.820 + x="329.62048" 1.821 + y="398.02182">Receive_type and Send_type: which ever is last to arrive between the send and the receive,</tspan><tspan 1.822 + style="font-size:9px;text-align:start;text-anchor:start" 1.823 + sodipodi:role="line" 1.824 + x="329.62048" 1.825 + y="407.02182" 1.826 + id="tspan9862"> at that point record the unit-ID for sending unit and receiving. This is part of an NtoN </tspan><tspan 1.827 + style="font-size:9px;text-align:start;text-anchor:start" 1.828 + sodipodi:role="line" 1.829 + x="329.62048" 1.830 + y="416.02182" 1.831 + id="tspan9870">constraint, so add sender to senders part of NtoN group and receiver to receivers part</tspan><tspan 1.832 + style="font-size:9px;text-align:start;text-anchor:start" 1.833 + sodipodi:role="line" 1.834 + x="329.62048" 1.835 + y="425.02182" 1.836 + id="tspan9824" /></text> 1.837 + <text 1.838 + sodipodi:linespacing="100%" 1.839 + id="text9826" 1.840 + y="438.02182" 1.841 + x="329.62048" 1.842 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.843 + xml:space="preserve"><tspan 1.844 + y="438.02182" 1.845 + x="329.62048" 1.846 + sodipodi:role="line" 1.847 + id="tspan9828" 1.848 + style="font-size:9px;text-align:start;text-anchor:start">send_from_to and receive_from_to -- whichever arrives last between sending VP and receiving VP,</tspan><tspan 1.849 + y="447.02182" 1.850 + x="329.62048" 1.851 + sodipodi:role="line" 1.852 + style="font-size:9px;text-align:start;text-anchor:start" 1.853 + id="tspan9864"> record the unit-ID for sending unit and receiving unit. </tspan><tspan 1.854 + y="456.02182" 1.855 + x="329.62048" 1.856 + sodipodi:role="line" 1.857 + style="font-size:9px;text-align:start;text-anchor:start" 1.858 + id="tspan9876">Add as a dependency between send *unit* and receive *unit* -- static comm dependency</tspan><tspan 1.859 + id="tspan9830" 1.860 + y="465.02182" 1.861 + x="329.62048" 1.862 + sodipodi:role="line" 1.863 + style="font-size:9px;text-align:start;text-anchor:start" /></text> 1.864 + <text 1.865 + xml:space="preserve" 1.866 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.867 + x="329.62048" 1.868 + y="478.02182" 1.869 + id="text9832" 1.870 + sodipodi:linespacing="100%"><tspan 1.871 + style="font-size:9px;text-align:start;text-anchor:start" 1.872 + id="tspan9834" 1.873 + sodipodi:role="line" 1.874 + x="329.62048" 1.875 + y="478.02182">At point switch to slave, record, at point switch back, record point </tspan><tspan 1.876 + style="font-size:9px;text-align:start;text-anchor:start" 1.877 + sodipodi:role="line" 1.878 + x="329.62048" 1.879 + y="487.02182" 1.880 + id="tspan9878">-] That is the work time of the unit</tspan><tspan 1.881 + style="font-size:9px;text-align:start;text-anchor:start" 1.882 + sodipodi:role="line" 1.883 + x="329.62048" 1.884 + y="496.02182" 1.885 + id="tspan9836" /></text> 1.886 + <text 1.887 + sodipodi:linespacing="100%" 1.888 + id="text9838" 1.889 + y="498.02185" 1.890 + x="329.62048" 1.891 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.892 + xml:space="preserve"><tspan 1.893 + y="498.02185" 1.894 + x="329.62048" 1.895 + sodipodi:role="line" 1.896 + id="tspan9840" 1.897 + style="font-size:9px;text-align:start;text-anchor:start">ctlr -- start of getting lock</tspan><tspan 1.898 + id="tspan9842" 1.899 + y="507.02185" 1.900 + x="329.62048" 1.901 + sodipodi:role="line" 1.902 + style="font-size:9px;text-align:start;text-anchor:start" /></text> 1.903 + <text 1.904 + xml:space="preserve" 1.905 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.906 + x="329.62048" 1.907 + y="518.02185" 1.908 + id="text9844" 1.909 + sodipodi:linespacing="100%"><tspan 1.910 + style="font-size:9px;text-align:start;text-anchor:start" 1.911 + id="tspan9846" 1.912 + sodipodi:role="line" 1.913 + x="329.62048" 1.914 + y="518.02185">master loop -- start and end of assigner, start and end of req hdlr</tspan><tspan 1.915 + style="font-size:9px;text-align:start;text-anchor:start" 1.916 + sodipodi:role="line" 1.917 + x="329.62048" 1.918 + y="527.02185" 1.919 + id="tspan9848" /></text> 1.920 + <text 1.921 + sodipodi:linespacing="100%" 1.922 + id="text9850" 1.923 + y="378.02182" 1.924 + x="329.62048" 1.925 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.926 + xml:space="preserve"><tspan 1.927 + y="378.02182" 1.928 + x="329.62048" 1.929 + sodipodi:role="line" 1.930 + id="tspan9852" 1.931 + style="font-size:9px;text-align:start;text-anchor:start">ResumeVP -- create unit & control dep from prev VP</tspan><tspan 1.932 + id="tspan9854" 1.933 + y="387.02182" 1.934 + x="329.62048" 1.935 + sodipodi:role="line" 1.936 + style="font-size:9px;text-align:start;text-anchor:start" /></text> 1.937 + <text 1.938 + xml:space="preserve" 1.939 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 1.940 + x="329.62048" 1.941 + y="358.02182" 1.942 + id="text9856" 1.943 + sodipodi:linespacing="100%"><tspan 1.944 + style="font-size:9px;text-align:start;text-anchor:start" 1.945 + id="tspan9858" 1.946 + sodipodi:role="line" 1.947 + x="329.62048" 1.948 + y="358.02182">handleCreate -- dep from creator to first task in new VP</tspan><tspan 1.949 + style="font-size:9px;text-align:start;text-anchor:start" 1.950 + sodipodi:role="line" 1.951 + x="329.62048" 1.952 + y="367.02182" 1.953 + id="tspan9860" /></text> 1.954 + </g> 1.955 +</svg>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/figures/UCC_concreteness_grid.svg Wed Apr 25 06:12:16 2012 -0700 2.3 @@ -0,0 +1,964 @@ 2.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 2.6 + 2.7 +<svg 2.8 + xmlns:dc="http://purl.org/dc/elements/1.1/" 2.9 + xmlns:cc="http://creativecommons.org/ns#" 2.10 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 2.11 + xmlns:svg="http://www.w3.org/2000/svg" 2.12 + xmlns="http://www.w3.org/2000/svg" 2.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 2.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 2.15 + width="744.09448819" 2.16 + height="1052.3622047" 2.17 + id="svg2" 2.18 + sodipodi:version="0.32" 2.19 + inkscape:version="0.48.1 " 2.20 + sodipodi:docname="Features_table.svg" 2.21 + inkscape:output_extension="org.inkscape.output.svg.inkscape" 2.22 + version="1.1"> 2.23 + <defs 2.24 + id="defs4"> 2.25 + <marker 2.26 + inkscape:stockid="Arrow2Mend" 2.27 + orient="auto" 2.28 + refY="0.0" 2.29 + refX="0.0" 2.30 + id="Arrow2Mend" 2.31 + style="overflow:visible;"> 2.32 + <path 2.33 + id="path3563" 2.34 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 2.35 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 2.36 + transform="scale(0.6) rotate(180) translate(0,0)" /> 2.37 + </marker> 2.38 + <marker 2.39 + inkscape:stockid="TriangleOutM" 2.40 + orient="auto" 2.41 + refY="0.0" 2.42 + refX="0.0" 2.43 + id="TriangleOutM" 2.44 + style="overflow:visible"> 2.45 + <path 2.46 + id="path3682" 2.47 + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " 2.48 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 2.49 + transform="scale(0.4)" /> 2.50 + </marker> 2.51 + <marker 2.52 + inkscape:stockid="Arrow2Lend" 2.53 + orient="auto" 2.54 + refY="0.0" 2.55 + refX="0.0" 2.56 + id="Arrow2Lend" 2.57 + style="overflow:visible;"> 2.58 + <path 2.59 + id="path3557" 2.60 + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 2.61 + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 2.62 + transform="scale(1.1) rotate(180) translate(1,0)" /> 2.63 + </marker> 2.64 + <marker 2.65 + inkscape:stockid="Arrow1Mstart" 2.66 + orient="auto" 2.67 + refY="0.0" 2.68 + refX="0.0" 2.69 + id="Arrow1Mstart" 2.70 + style="overflow:visible"> 2.71 + <path 2.72 + id="path3542" 2.73 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 2.74 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 2.75 + transform="scale(0.4) translate(10,0)" /> 2.76 + </marker> 2.77 + <marker 2.78 + inkscape:stockid="Arrow1Lend" 2.79 + orient="auto" 2.80 + refY="0.0" 2.81 + refX="0.0" 2.82 + id="Arrow1Lend" 2.83 + style="overflow:visible;"> 2.84 + <path 2.85 + id="path3539" 2.86 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 2.87 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 2.88 + transform="scale(0.8) rotate(180) translate(12.5,0)" /> 2.89 + </marker> 2.90 + <marker 2.91 + inkscape:stockid="Arrow1Lstart" 2.92 + orient="auto" 2.93 + refY="0.0" 2.94 + refX="0.0" 2.95 + id="Arrow1Lstart" 2.96 + style="overflow:visible"> 2.97 + <path 2.98 + id="path3536" 2.99 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 2.100 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 2.101 + transform="scale(0.8) translate(12.5,0)" /> 2.102 + </marker> 2.103 + <inkscape:perspective 2.104 + sodipodi:type="inkscape:persp3d" 2.105 + inkscape:vp_x="0 : 526.18109 : 1" 2.106 + inkscape:vp_y="0 : 1000 : 0" 2.107 + inkscape:vp_z="744.09448 : 526.18109 : 1" 2.108 + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 2.109 + id="perspective10" /> 2.110 + <inkscape:perspective 2.111 + id="perspective4311" 2.112 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.113 + inkscape:vp_z="1 : 0.5 : 1" 2.114 + inkscape:vp_y="0 : 1000 : 0" 2.115 + inkscape:vp_x="0 : 0.5 : 1" 2.116 + sodipodi:type="inkscape:persp3d" /> 2.117 + <inkscape:perspective 2.118 + id="perspective4336" 2.119 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.120 + inkscape:vp_z="1 : 0.5 : 1" 2.121 + inkscape:vp_y="0 : 1000 : 0" 2.122 + inkscape:vp_x="0 : 0.5 : 1" 2.123 + sodipodi:type="inkscape:persp3d" /> 2.124 + <inkscape:perspective 2.125 + id="perspective4365" 2.126 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.127 + inkscape:vp_z="1 : 0.5 : 1" 2.128 + inkscape:vp_y="0 : 1000 : 0" 2.129 + inkscape:vp_x="0 : 0.5 : 1" 2.130 + sodipodi:type="inkscape:persp3d" /> 2.131 + <marker 2.132 + inkscape:stockid="Arrow2Mend" 2.133 + orient="auto" 2.134 + refY="0" 2.135 + refX="0" 2.136 + id="Arrow2Mend-9" 2.137 + style="overflow:visible"> 2.138 + <path 2.139 + id="path3563-4" 2.140 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.141 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.142 + transform="scale(-0.6,-0.6)" /> 2.143 + </marker> 2.144 + <inkscape:perspective 2.145 + id="perspective4423" 2.146 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.147 + inkscape:vp_z="1 : 0.5 : 1" 2.148 + inkscape:vp_y="0 : 1000 : 0" 2.149 + inkscape:vp_x="0 : 0.5 : 1" 2.150 + sodipodi:type="inkscape:persp3d" /> 2.151 + <marker 2.152 + inkscape:stockid="Arrow2Mend" 2.153 + orient="auto" 2.154 + refY="0" 2.155 + refX="0" 2.156 + id="Arrow2Mend-8" 2.157 + style="overflow:visible"> 2.158 + <path 2.159 + id="path3563-2" 2.160 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.161 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.162 + transform="scale(-0.6,-0.6)" /> 2.163 + </marker> 2.164 + <inkscape:perspective 2.165 + id="perspective4461" 2.166 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.167 + inkscape:vp_z="1 : 0.5 : 1" 2.168 + inkscape:vp_y="0 : 1000 : 0" 2.169 + inkscape:vp_x="0 : 0.5 : 1" 2.170 + sodipodi:type="inkscape:persp3d" /> 2.171 + <inkscape:perspective 2.172 + id="perspective14081" 2.173 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.174 + inkscape:vp_z="1 : 0.5 : 1" 2.175 + inkscape:vp_y="0 : 1000 : 0" 2.176 + inkscape:vp_x="0 : 0.5 : 1" 2.177 + sodipodi:type="inkscape:persp3d" /> 2.178 + <inkscape:perspective 2.179 + id="perspective14206" 2.180 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.181 + inkscape:vp_z="1 : 0.5 : 1" 2.182 + inkscape:vp_y="0 : 1000 : 0" 2.183 + inkscape:vp_x="0 : 0.5 : 1" 2.184 + sodipodi:type="inkscape:persp3d" /> 2.185 + <inkscape:perspective 2.186 + id="perspective14299" 2.187 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.188 + inkscape:vp_z="1 : 0.5 : 1" 2.189 + inkscape:vp_y="0 : 1000 : 0" 2.190 + inkscape:vp_x="0 : 0.5 : 1" 2.191 + sodipodi:type="inkscape:persp3d" /> 2.192 + <inkscape:perspective 2.193 + id="perspective3233" 2.194 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.195 + inkscape:vp_z="1 : 0.5 : 1" 2.196 + inkscape:vp_y="0 : 1000 : 0" 2.197 + inkscape:vp_x="0 : 0.5 : 1" 2.198 + sodipodi:type="inkscape:persp3d" /> 2.199 + <marker 2.200 + inkscape:stockid="Arrow2Mend" 2.201 + orient="auto" 2.202 + refY="0" 2.203 + refX="0" 2.204 + id="Arrow2Mend-8-1" 2.205 + style="overflow:visible"> 2.206 + <path 2.207 + id="path3563-2-7" 2.208 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.209 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.210 + transform="scale(-0.6,-0.6)" /> 2.211 + </marker> 2.212 + <marker 2.213 + inkscape:stockid="Arrow2Mend" 2.214 + orient="auto" 2.215 + refY="0" 2.216 + refX="0" 2.217 + id="marker3239" 2.218 + style="overflow:visible"> 2.219 + <path 2.220 + id="path3241" 2.221 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.222 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.223 + transform="scale(-0.6,-0.6)" /> 2.224 + </marker> 2.225 + <inkscape:perspective 2.226 + id="perspective3353" 2.227 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.228 + inkscape:vp_z="1 : 0.5 : 1" 2.229 + inkscape:vp_y="0 : 1000 : 0" 2.230 + inkscape:vp_x="0 : 0.5 : 1" 2.231 + sodipodi:type="inkscape:persp3d" /> 2.232 + <inkscape:perspective 2.233 + id="perspective3447" 2.234 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.235 + inkscape:vp_z="1 : 0.5 : 1" 2.236 + inkscape:vp_y="0 : 1000 : 0" 2.237 + inkscape:vp_x="0 : 0.5 : 1" 2.238 + sodipodi:type="inkscape:persp3d" /> 2.239 + <marker 2.240 + inkscape:stockid="Arrow2Mend" 2.241 + orient="auto" 2.242 + refY="0" 2.243 + refX="0" 2.244 + id="Arrow2Mend-8-5" 2.245 + style="overflow:visible"> 2.246 + <path 2.247 + id="path3563-2-5" 2.248 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.249 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.250 + transform="scale(-0.6,-0.6)" /> 2.251 + </marker> 2.252 + <marker 2.253 + inkscape:stockid="Arrow2Mend" 2.254 + orient="auto" 2.255 + refY="0" 2.256 + refX="0" 2.257 + id="marker3453" 2.258 + style="overflow:visible"> 2.259 + <path 2.260 + id="path3455" 2.261 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.262 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.263 + transform="scale(-0.6,-0.6)" /> 2.264 + </marker> 2.265 + <inkscape:perspective 2.266 + id="perspective4753" 2.267 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.268 + inkscape:vp_z="1 : 0.5 : 1" 2.269 + inkscape:vp_y="0 : 1000 : 0" 2.270 + inkscape:vp_x="0 : 0.5 : 1" 2.271 + sodipodi:type="inkscape:persp3d" /> 2.272 + <marker 2.273 + inkscape:stockid="Arrow2Mend" 2.274 + orient="auto" 2.275 + refY="0" 2.276 + refX="0" 2.277 + id="Arrow2Mend-8-12" 2.278 + style="overflow:visible"> 2.279 + <path 2.280 + id="path3563-2-3" 2.281 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.282 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.283 + transform="scale(-0.6,-0.6)" /> 2.284 + </marker> 2.285 + <inkscape:perspective 2.286 + id="perspective4850" 2.287 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.288 + inkscape:vp_z="1 : 0.5 : 1" 2.289 + inkscape:vp_y="0 : 1000 : 0" 2.290 + inkscape:vp_x="0 : 0.5 : 1" 2.291 + sodipodi:type="inkscape:persp3d" /> 2.292 + <marker 2.293 + inkscape:stockid="Arrow2Mend" 2.294 + orient="auto" 2.295 + refY="0" 2.296 + refX="0" 2.297 + id="Arrow2Mend-8-8" 2.298 + style="overflow:visible"> 2.299 + <path 2.300 + id="path3563-2-74" 2.301 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.302 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.303 + transform="scale(-0.6,-0.6)" /> 2.304 + </marker> 2.305 + <inkscape:perspective 2.306 + id="perspective4850-7" 2.307 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.308 + inkscape:vp_z="1 : 0.5 : 1" 2.309 + inkscape:vp_y="0 : 1000 : 0" 2.310 + inkscape:vp_x="0 : 0.5 : 1" 2.311 + sodipodi:type="inkscape:persp3d" /> 2.312 + <marker 2.313 + inkscape:stockid="Arrow2Mend" 2.314 + orient="auto" 2.315 + refY="0" 2.316 + refX="0" 2.317 + id="Arrow2Mend-8-7" 2.318 + style="overflow:visible"> 2.319 + <path 2.320 + id="path3563-2-9" 2.321 + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 2.322 + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" 2.323 + transform="scale(-0.6,-0.6)" /> 2.324 + </marker> 2.325 + <inkscape:perspective 2.326 + id="perspective4914" 2.327 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.328 + inkscape:vp_z="1 : 0.5 : 1" 2.329 + inkscape:vp_y="0 : 1000 : 0" 2.330 + inkscape:vp_x="0 : 0.5 : 1" 2.331 + sodipodi:type="inkscape:persp3d" /> 2.332 + <inkscape:perspective 2.333 + id="perspective4946" 2.334 + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" 2.335 + inkscape:vp_z="1 : 0.5 : 1" 2.336 + inkscape:vp_y="0 : 1000 : 0" 2.337 + inkscape:vp_x="0 : 0.5 : 1" 2.338 + sodipodi:type="inkscape:persp3d" /> 2.339 + </defs> 2.340 + <sodipodi:namedview 2.341 + id="base" 2.342 + pagecolor="#ffffff" 2.343 + bordercolor="#666666" 2.344 + borderopacity="1.0" 2.345 + gridtolerance="10000" 2.346 + guidetolerance="10" 2.347 + objecttolerance="10" 2.348 + inkscape:pageopacity="0.0" 2.349 + inkscape:pageshadow="2" 2.350 + inkscape:zoom="1.5301741" 2.351 + inkscape:cx="385.73996" 2.352 + inkscape:cy="731.0723" 2.353 + inkscape:document-units="px" 2.354 + inkscape:current-layer="layer1" 2.355 + showgrid="false" 2.356 + inkscape:window-width="1585" 2.357 + inkscape:window-height="847" 2.358 + inkscape:window-x="-3" 2.359 + inkscape:window-y="0" 2.360 + inkscape:window-maximized="0" /> 2.361 + <metadata 2.362 + id="metadata7"> 2.363 + <rdf:RDF> 2.364 + <cc:Work 2.365 + rdf:about=""> 2.366 + <dc:format>image/svg+xml</dc:format> 2.367 + <dc:type 2.368 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 2.369 + <dc:title></dc:title> 2.370 + </cc:Work> 2.371 + </rdf:RDF> 2.372 + </metadata> 2.373 + <g 2.374 + inkscape:label="Layer 1" 2.375 + inkscape:groupmode="layer" 2.376 + id="layer1"> 2.377 + <rect 2.378 + y="182.49448" 2.379 + x="163.84431" 2.380 + height="161.39378" 2.381 + width="329.44443" 2.382 + id="rect4979" 2.383 + style="fill:none;stroke:#000000;stroke-width:1.08000004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:1.944" /> 2.384 + <text 2.385 + xml:space="preserve" 2.386 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.60163802;stroke-opacity:1;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.387 + x="441.66748" 2.388 + y="404.66492" 2.389 + id="text8002" 2.390 + sodipodi:linespacing="100%"><tspan 2.391 + sodipodi:role="line" 2.392 + x="441.66748" 2.393 + y="404.66492" 2.394 + style="font-size:8px" 2.395 + id="tspan12172" /></text> 2.396 + <text 2.397 + id="text5835" 2.398 + y="125.02016" 2.399 + x="450.34119" 2.400 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.401 + xml:space="preserve"><tspan 2.402 + y="125.02016" 2.403 + x="450.34119" 2.404 + id="tspan5837" 2.405 + sodipodi:role="line"><tspan 2.406 + style="fill:#0303b8;fill-opacity:1" 2.407 + id="tspan5845">Blue</tspan> = application</tspan></text> 2.408 + <text 2.409 + xml:space="preserve" 2.410 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.411 + x="368.28989" 2.412 + y="125.02016" 2.413 + id="text5839"><tspan 2.414 + sodipodi:role="line" 2.415 + id="tspan5841" 2.416 + x="368.28989" 2.417 + y="125.02016"><tspan 2.418 + style="fill:#960a0a;fill-opacity:1" 2.419 + id="tspan5847">Red</tspan> = runtime</tspan></text> 2.420 + <text 2.421 + xml:space="preserve" 2.422 + style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.423 + x="368.25397" 2.424 + y="405.27225" 2.425 + id="text5849"><tspan 2.426 + sodipodi:role="line" 2.427 + id="tspan5851" 2.428 + x="368.25397" 2.429 + y="405.27225" /></text> 2.430 + <path 2.431 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.50000001, 0.50000001;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.432 + d="M 289.73631,577.76803 C 263.95998,564.0618 244.9124,553.07853 244.9124,553.07853" 2.433 + id="path6066-9-4" 2.434 + sodipodi:nodetypes="cc" 2.435 + inkscape:connector-curvature="0" /> 2.436 + <rect 2.437 + y="151.42043" 2.438 + x="157.23335" 2.439 + height="194.79402" 2.440 + width="457.79532" 2.441 + id="rect18326-3" 2.442 + style="opacity:0.3142857;fill:none;stroke:#000000;stroke-width:0.09999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.3999998, 0.3999998;stroke-dashoffset:0.14999992" /> 2.443 + <path 2.444 + sodipodi:nodetypes="cc" 2.445 + id="path3602" 2.446 + d="m 261.4119,552.41344 c 26.46687,13.70623 46.02474,24.6895 46.02474,24.6895" 2.447 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.448 + inkscape:connector-curvature="0" /> 2.449 + <path 2.450 + sodipodi:nodetypes="cc" 2.451 + id="path3655" 2.452 + d="M 318.49369,577.76803 C 357.52667,563.08168 386.37044,551.313 386.37044,551.313" 2.453 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.454 + inkscape:connector-curvature="0" /> 2.455 + <g 2.456 + id="g3242" 2.457 + transform="translate(20,-81.133751)"> 2.458 + <rect 2.459 + y="309.504" 2.460 + x="532.18225" 2.461 + height="68.687347" 2.462 + width="78.674728" 2.463 + id="rect4725" 2.464 + style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> 2.465 + <text 2.466 + xml:space="preserve" 2.467 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.468 + x="571.67981" 2.469 + y="322.80692" 2.470 + id="text4727" 2.471 + sodipodi:linespacing="100%"><tspan 2.472 + style="font-size:9px;text-align:center;text-anchor:middle" 2.473 + sodipodi:role="line" 2.474 + x="571.67981" 2.475 + y="322.80692" 2.476 + id="tspan4731">slaveVP</tspan></text> 2.477 + <g 2.478 + transform="translate(230.36868,-317.52206)" 2.479 + id="g4733"> 2.480 + <rect 2.481 + y="673.02618" 2.482 + x="316.63855" 2.483 + height="16.01606" 2.484 + width="47.791374" 2.485 + id="rect4737" 2.486 + style="fill:none;stroke:#0303b8;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.320725, 4.320725;stroke-dashoffset:0" /> 2.487 + <text 2.488 + xml:space="preserve" 2.489 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.490 + x="340.63751" 2.491 + y="684.03717" 2.492 + id="text4739" 2.493 + sodipodi:linespacing="100%"><tspan 2.494 + style="font-size:9px;text-align:center;text-anchor:middle" 2.495 + id="tspan4741" 2.496 + sodipodi:role="line" 2.497 + x="340.63751" 2.498 + y="684.03717">top_VP_fn</tspan></text> 2.499 + </g> 2.500 + </g> 2.501 + <g 2.502 + id="g5001" 2.503 + transform="translate(-104.17459,-455.52206)"> 2.504 + <text 2.505 + sodipodi:linespacing="100%" 2.506 + id="text4834" 2.507 + y="619.79431" 2.508 + x="339.56277" 2.509 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.510 + xml:space="preserve"><tspan 2.511 + y="619.79431" 2.512 + x="339.56277" 2.513 + sodipodi:role="line" 2.514 + id="tspan4836" 2.515 + style="font-size:9px;text-align:center;text-anchor:middle">Shared Parallelism-Semantic State</tspan><tspan 2.516 + id="tspan4838" 2.517 + y="628.79431" 2.518 + x="339.56277" 2.519 + sodipodi:role="line" 2.520 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 2.521 + <rect 2.522 + style="fill:none;stroke:#960a0a;stroke-width:1.07999992;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000008, 4.32000008;stroke-dashoffset:0" 2.523 + id="rect4840" 2.524 + width="149.25206" 2.525 + height="12.695431" 2.526 + x="264.97189" 2.527 + y="610.18365" /> 2.528 + </g> 2.529 + <path 2.530 + sodipodi:nodetypes="cc" 2.531 + id="path4883" 2.532 + d="m 205.94834,169.27344 c -0.0417,34.47629 -0.0725,62.1034 -0.0725,62.1034" 2.533 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.534 + inkscape:connector-curvature="0" /> 2.535 + <path 2.536 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.537 + d="m 193.94834,231.61326 c -0.0417,-34.47628 -0.0725,-62.10333 -0.0725,-62.10333" 2.538 + id="path4885" 2.539 + sodipodi:nodetypes="cc" 2.540 + inkscape:connector-curvature="0" /> 2.541 + <path 2.542 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.543 + d="m 551.6841,281.79676 c -38.53453,0.002 -67.00988,0.004 -67.00988,0.004" 2.544 + id="path4902" 2.545 + sodipodi:nodetypes="cc" 2.546 + inkscape:connector-curvature="0" /> 2.547 + <path 2.548 + sodipodi:nodetypes="cc" 2.549 + id="path4904" 2.550 + d="m 483.44108,257.79676 c 38.5498,0.002 67.03641,0.004 67.03641,0.004" 2.551 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.552 + inkscape:connector-curvature="0" /> 2.553 + <text 2.554 + xml:space="preserve" 2.555 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.556 + x="528.8573" 2.557 + y="255.07925" 2.558 + id="text4721-1" 2.559 + sodipodi:linespacing="100%"><tspan 2.560 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1" 2.561 + id="tspan4723-9" 2.562 + sodipodi:role="line" 2.563 + x="528.8573" 2.564 + y="255.07925">Switch VPs</tspan></text> 2.565 + <text 2.566 + sodipodi:linespacing="100%" 2.567 + id="text4931" 2.568 + y="279.07925" 2.569 + x="528.8573" 2.570 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.571 + xml:space="preserve"><tspan 2.572 + y="279.07925" 2.573 + x="528.8573" 2.574 + sodipodi:role="line" 2.575 + id="tspan4933" 2.576 + style="font-size:8px;text-align:center;text-anchor:middle;fill:#159415;fill-opacity:1">Switch VPs</tspan></text> 2.577 + <text 2.578 + xml:space="preserve" 2.579 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.580 + x="422.57816" 2.581 + y="193.16141" 2.582 + id="text4981" 2.583 + sodipodi:linespacing="100%"><tspan 2.584 + style="font-size:9px;text-align:center;text-anchor:middle" 2.585 + id="tspan4983" 2.586 + sodipodi:role="line" 2.587 + x="422.57816" 2.588 + y="193.16141">Repeated for each physical core</tspan></text> 2.589 + <g 2.590 + id="g3590" 2.591 + transform="translate(-104.75363,-387.52206)"> 2.592 + <g 2.593 + id="g18019-8" 2.594 + transform="translate(-109.01365,39.321571)"> 2.595 + <text 2.596 + sodipodi:linespacing="100%" 2.597 + id="text17967-5" 2.598 + y="590.22229" 2.599 + x="419.38776" 2.600 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.601 + xml:space="preserve"><tspan 2.602 + y="590.22229" 2.603 + x="419.38776" 2.604 + sodipodi:role="line" 2.605 + id="tspan17969-7" 2.606 + style="font-size:9px;text-align:center;text-anchor:middle">comm_</tspan><tspan 2.607 + id="tspan17971-6" 2.608 + y="599.22229" 2.609 + x="419.38776" 2.610 + sodipodi:role="line" 2.611 + style="font-size:9px;text-align:center;text-anchor:middle">handler_fn</tspan></text> 2.612 + <rect 2.613 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32, 4.32;stroke-dashoffset:0" 2.614 + id="rect17973-1" 2.615 + width="48.927513" 2.616 + height="22.365267" 2.617 + x="395.11298" 2.618 + y="580.86206" /> 2.619 + </g> 2.620 + </g> 2.621 + <text 2.622 + sodipodi:linespacing="100%" 2.623 + id="text17977-3-5" 2.624 + y="280.80692" 2.625 + x="237.94568" 2.626 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.627 + xml:space="preserve"><tspan 2.628 + y="280.80692" 2.629 + x="237.94568" 2.630 + sodipodi:role="line" 2.631 + id="tspan17979-3-4" 2.632 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 2.633 + <g 2.634 + id="g3580" 2.635 + transform="translate(-103.63132,-399.52206)"> 2.636 + <path 2.637 + inkscape:connector-curvature="0" 2.638 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.639 + d="m 317.62527,671.29009 c -5.09448,-8.49068 -8.85909,-15.29455 -8.85909,-15.29455" 2.640 + id="path18292-2" 2.641 + sodipodi:nodetypes="cc" /> 2.642 + <g 2.643 + id="g17983-3" 2.644 + transform="translate(-7.0136518,5.3215684)"> 2.645 + <rect 2.646 + y="667.70459" 2.647 + x="317.60855" 2.648 + height="16.01606" 2.649 + width="61.691765" 2.650 + id="rect17975-2" 2.651 + style="fill:none;stroke:#159415;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32072499, 4.32072499;stroke-dashoffset:0" /> 2.652 + <text 2.653 + xml:space="preserve" 2.654 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.655 + x="347.65115" 2.656 + y="678.71558" 2.657 + id="text17977-2" 2.658 + sodipodi:linespacing="100%"><tspan 2.659 + style="font-size:9px;text-align:center;text-anchor:middle" 2.660 + id="tspan17979-1" 2.661 + sodipodi:role="line" 2.662 + x="347.65115" 2.663 + y="678.71558">master_loop</tspan></text> 2.664 + </g> 2.665 + <path 2.666 + inkscape:connector-curvature="0" 2.667 + sodipodi:nodetypes="cc" 2.668 + id="path3578" 2.669 + d="m 374.32675,655.55365 c -5.09448,8.49068 -8.85909,15.29455 -8.85909,15.29455" 2.670 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 2.671 + </g> 2.672 + <text 2.673 + sodipodi:linespacing="100%" 2.674 + id="text4821" 2.675 + y="218.02182" 2.676 + x="269.62048" 2.677 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.678 + xml:space="preserve"><tspan 2.679 + y="218.02182" 2.680 + x="269.62048" 2.681 + sodipodi:role="line" 2.682 + id="tspan4823" 2.683 + style="font-size:9px;text-align:center;text-anchor:middle">readyQ</tspan><tspan 2.684 + id="tspan4825" 2.685 + y="227.02182" 2.686 + x="269.62048" 2.687 + sodipodi:role="line" 2.688 + style="font-size:9px;text-align:center;text-anchor:middle" /></text> 2.689 + <rect 2.690 + style="fill:none;stroke:#960a0a;stroke-width:1.08000004;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.32000001, 4.32000001;stroke-dashoffset:0" 2.691 + id="rect4827" 2.692 + width="48.927513" 2.693 + height="12.695431" 2.694 + x="245.3457" 2.695 + y="208.66159" /> 2.696 + <path 2.697 + inkscape:connector-curvature="0" 2.698 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.49999999, 0.49999999;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.699 + d="m 227.16268,231.46504 c 9.78768,-7.86986 17.02037,-14.17623 17.02037,-14.17623" 2.700 + id="path3576-2" 2.701 + sodipodi:nodetypes="cc" /> 2.702 + <text 2.703 + sodipodi:linespacing="100%" 2.704 + id="text3915" 2.705 + y="268.80692" 2.706 + x="201.94568" 2.707 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.708 + xml:space="preserve"><tspan 2.709 + y="268.80692" 2.710 + x="201.94568" 2.711 + sodipodi:role="line" 2.712 + id="tspan3917" 2.713 + style="font-size:9px;text-align:center;text-anchor:middle">2</tspan></text> 2.714 + <text 2.715 + xml:space="preserve" 2.716 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.717 + x="199.94568" 2.718 + y="214.80692" 2.719 + id="text3919" 2.720 + sodipodi:linespacing="100%"><tspan 2.721 + style="font-size:9px;text-align:center;text-anchor:middle" 2.722 + id="tspan3921" 2.723 + sodipodi:role="line" 2.724 + x="199.94568" 2.725 + y="214.80692">3</tspan></text> 2.726 + <text 2.727 + sodipodi:linespacing="100%" 2.728 + id="text3923" 2.729 + y="222.80692" 2.730 + x="231.94568" 2.731 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.732 + xml:space="preserve"><tspan 2.733 + y="222.80692" 2.734 + x="231.94568" 2.735 + sodipodi:role="line" 2.736 + id="tspan3925" 2.737 + style="font-size:9px;text-align:center;text-anchor:middle">4</tspan></text> 2.738 + <text 2.739 + sodipodi:linespacing="100%" 2.740 + id="text3931" 2.741 + y="264.80692" 2.742 + x="261.94568" 2.743 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.744 + xml:space="preserve"><tspan 2.745 + y="264.80692" 2.746 + x="261.94568" 2.747 + sodipodi:role="line" 2.748 + id="tspan3933" 2.749 + style="font-size:9px;text-align:center;text-anchor:middle">5</tspan></text> 2.750 + <text 2.751 + xml:space="preserve" 2.752 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.753 + x="527.94568" 2.754 + y="246.80692" 2.755 + id="text3951" 2.756 + sodipodi:linespacing="100%"><tspan 2.757 + style="font-size:9px;text-align:center;text-anchor:middle" 2.758 + id="tspan3953" 2.759 + sodipodi:role="line" 2.760 + x="527.94568" 2.761 + y="246.80692">9</tspan></text> 2.762 + <text 2.763 + sodipodi:linespacing="100%" 2.764 + id="text3955" 2.765 + y="270.80692" 2.766 + x="527.94568" 2.767 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.768 + xml:space="preserve"><tspan 2.769 + y="270.80692" 2.770 + x="527.94568" 2.771 + sodipodi:role="line" 2.772 + id="tspan3957" 2.773 + style="font-size:9px;text-align:center;text-anchor:middle">10</tspan></text> 2.774 + <text 2.775 + sodipodi:linespacing="100%" 2.776 + id="text3494" 2.777 + y="324.80692" 2.778 + x="243.94568" 2.779 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.780 + xml:space="preserve"><tspan 2.781 + y="324.80692" 2.782 + x="243.94568" 2.783 + sodipodi:role="line" 2.784 + id="tspan3496" 2.785 + style="font-size:9px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Trebuchet MS Oblique">(Animated)</tspan></text> 2.786 + <text 2.787 + xml:space="preserve" 2.788 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.789 + x="331.94568" 2.790 + y="162.80692" 2.791 + id="text3498" 2.792 + sodipodi:linespacing="100%"><tspan 2.793 + style="font-size:9px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Trebuchet MS Oblique" 2.794 + id="tspan3500" 2.795 + sodipodi:role="line" 2.796 + x="331.94568" 2.797 + y="162.80692">(Blocked)</tspan></text> 2.798 + <text 2.799 + sodipodi:linespacing="100%" 2.800 + id="text3502" 2.801 + y="216.80692" 2.802 + x="403.94568" 2.803 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.804 + xml:space="preserve"><tspan 2.805 + y="216.80692" 2.806 + x="403.94568" 2.807 + sodipodi:role="line" 2.808 + id="tspan3504" 2.809 + style="font-size:9px;font-style:oblique;text-align:center;text-anchor:middle;-inkscape-font-specification:Trebuchet MS Oblique">(Ready)</tspan></text> 2.810 + <text 2.811 + xml:space="preserve" 2.812 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.813 + x="329.62048" 2.814 + y="398.02182" 2.815 + id="text9820" 2.816 + sodipodi:linespacing="100%"><tspan 2.817 + style="font-size:9px;text-align:start;text-anchor:start" 2.818 + id="tspan9822" 2.819 + sodipodi:role="line" 2.820 + x="329.62048" 2.821 + y="398.02182">Receive_type and Send_type: which ever is last to arrive between the send and the receive,</tspan><tspan 2.822 + style="font-size:9px;text-align:start;text-anchor:start" 2.823 + sodipodi:role="line" 2.824 + x="329.62048" 2.825 + y="407.02182" 2.826 + id="tspan9862"> at that point record the unit-ID for sending unit and receiving. This is part of an NtoN </tspan><tspan 2.827 + style="font-size:9px;text-align:start;text-anchor:start" 2.828 + sodipodi:role="line" 2.829 + x="329.62048" 2.830 + y="416.02182" 2.831 + id="tspan9870">constraint, so add sender to senders part of NtoN group and receiver to receivers part</tspan><tspan 2.832 + style="font-size:9px;text-align:start;text-anchor:start" 2.833 + sodipodi:role="line" 2.834 + x="329.62048" 2.835 + y="425.02182" 2.836 + id="tspan9824" /></text> 2.837 + <text 2.838 + sodipodi:linespacing="100%" 2.839 + id="text9826" 2.840 + y="438.02182" 2.841 + x="329.62048" 2.842 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.843 + xml:space="preserve"><tspan 2.844 + y="438.02182" 2.845 + x="329.62048" 2.846 + sodipodi:role="line" 2.847 + id="tspan9828" 2.848 + style="font-size:9px;text-align:start;text-anchor:start">send_from_to and receive_from_to -- whichever arrives last between sending VP and receiving VP,</tspan><tspan 2.849 + y="447.02182" 2.850 + x="329.62048" 2.851 + sodipodi:role="line" 2.852 + style="font-size:9px;text-align:start;text-anchor:start" 2.853 + id="tspan9864"> record the unit-ID for sending unit and receiving unit. </tspan><tspan 2.854 + y="456.02182" 2.855 + x="329.62048" 2.856 + sodipodi:role="line" 2.857 + style="font-size:9px;text-align:start;text-anchor:start" 2.858 + id="tspan9876">Add as a dependency between send *unit* and receive *unit* -- static comm dependency</tspan><tspan 2.859 + id="tspan9830" 2.860 + y="465.02182" 2.861 + x="329.62048" 2.862 + sodipodi:role="line" 2.863 + style="font-size:9px;text-align:start;text-anchor:start" /></text> 2.864 + <text 2.865 + xml:space="preserve" 2.866 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.867 + x="329.62048" 2.868 + y="478.02182" 2.869 + id="text9832" 2.870 + sodipodi:linespacing="100%"><tspan 2.871 + style="font-size:9px;text-align:start;text-anchor:start" 2.872 + id="tspan9834" 2.873 + sodipodi:role="line" 2.874 + x="329.62048" 2.875 + y="478.02182">At point switch to slave, record, at point switch back, record point </tspan><tspan 2.876 + style="font-size:9px;text-align:start;text-anchor:start" 2.877 + sodipodi:role="line" 2.878 + x="329.62048" 2.879 + y="487.02182" 2.880 + id="tspan9878">-] That is the work time of the unit</tspan><tspan 2.881 + style="font-size:9px;text-align:start;text-anchor:start" 2.882 + sodipodi:role="line" 2.883 + x="329.62048" 2.884 + y="496.02182" 2.885 + id="tspan9836" /></text> 2.886 + <text 2.887 + sodipodi:linespacing="100%" 2.888 + id="text9838" 2.889 + y="498.02185" 2.890 + x="329.62048" 2.891 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.892 + xml:space="preserve"><tspan 2.893 + y="498.02185" 2.894 + x="329.62048" 2.895 + sodipodi:role="line" 2.896 + id="tspan9840" 2.897 + style="font-size:9px;text-align:start;text-anchor:start">ctlr -- start of getting lock</tspan><tspan 2.898 + id="tspan9842" 2.899 + y="507.02185" 2.900 + x="329.62048" 2.901 + sodipodi:role="line" 2.902 + style="font-size:9px;text-align:start;text-anchor:start" /></text> 2.903 + <text 2.904 + xml:space="preserve" 2.905 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.906 + x="329.62048" 2.907 + y="518.02185" 2.908 + id="text9844" 2.909 + sodipodi:linespacing="100%"><tspan 2.910 + style="font-size:9px;text-align:start;text-anchor:start" 2.911 + id="tspan9846" 2.912 + sodipodi:role="line" 2.913 + x="329.62048" 2.914 + y="518.02185">master loop -- start and end of assigner, start and end of req hdlr</tspan><tspan 2.915 + style="font-size:9px;text-align:start;text-anchor:start" 2.916 + sodipodi:role="line" 2.917 + x="329.62048" 2.918 + y="527.02185" 2.919 + id="tspan9848" /></text> 2.920 + <text 2.921 + sodipodi:linespacing="100%" 2.922 + id="text9850" 2.923 + y="378.02182" 2.924 + x="329.62048" 2.925 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.926 + xml:space="preserve"><tspan 2.927 + y="378.02182" 2.928 + x="329.62048" 2.929 + sodipodi:role="line" 2.930 + id="tspan9852" 2.931 + style="font-size:9px;text-align:start;text-anchor:start">ResumeVP -- create unit & control dep from prev VP</tspan><tspan 2.932 + id="tspan9854" 2.933 + y="387.02182" 2.934 + x="329.62048" 2.935 + sodipodi:role="line" 2.936 + style="font-size:9px;text-align:start;text-anchor:start" /></text> 2.937 + <text 2.938 + xml:space="preserve" 2.939 + style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS" 2.940 + x="29.620483" 2.941 + y="398.02182" 2.942 + id="text9856" 2.943 + sodipodi:linespacing="100%"><tspan 2.944 + style="font-size:9px;text-align:start;text-anchor:start" 2.945 + id="tspan9858" 2.946 + sodipodi:role="line" 2.947 + x="29.620483" 2.948 + y="398.02182">handleCreate -- dep from creator to first task in new VP</tspan><tspan 2.949 + style="font-size:9px;text-align:start;text-anchor:start" 2.950 + sodipodi:role="line" 2.951 + x="29.620483" 2.952 + y="407.02182" 2.953 + id="tspan9860" /></text> 2.954 + <path 2.955 + inkscape:connector-curvature="0" 2.956 + sodipodi:nodetypes="cc" 2.957 + id="path3139" 2.958 + d="m 23.849847,481.79676 c 38.53453,0.002 67.00988,0.004 67.00988,0.004" 2.959 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" /> 2.960 + <path 2.961 + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#Arrow2Mend-8)" 2.962 + d="m 17.77295,475.70791 c 0.002,-38.53453 0.004,-67.00988 0.004,-67.00988" 2.963 + id="path3141" 2.964 + sodipodi:nodetypes="cc" 2.965 + inkscape:connector-curvature="0" /> 2.966 + </g> 2.967 +</svg>
3.1 --- a/0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.tex Tue Apr 24 12:38:21 2012 +0200 3.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/latex/Holistic_Perf_Tuning.tex Wed Apr 25 06:12:16 2012 -0700 3.3 @@ -325,6 +325,11 @@ 3.4 3.5 The views connect the units to specific segments of code that compose the units, and connect each constraint on scheduling choice to the precise source of the constraint, within the code, hardware, or runtime. They should also separate resource usage into categories of: application work, non-overlapped communication (which results from scheduling decisions), and scheduling/runtime overhead. They should also integrate parameter choices within the code that affect unit creation and constraints. 3.6 3.7 +===== 3.8 + The value of a consequence graph is linking the size of boxes in it to the decisions made by the scheduler, which are represented by the shape. This lets a person visually link scheduling decisions to consequences. The mind can quickly see empty areas, representing lost performance, and connect those to boxes and lines that cause the empty areas. They then look up the code of each box and construct of each line, which gives them the code structures that caused the loss of performance. This \emph{visual} linkage of undesirable effect back to \emph{cause in the code} is what sets our approach apart. 3.9 +The value of the UCC is visually linking cause of performance loss to options available for fixing it. 3.10 +===== 3.11 + 3.12 We introduce in this paper a model of computation that ties all aspects of performance together, along with instrumentation and visualization that is guided by the model and that links all relevant performance tuning information together. The model and visualization tools are illustrated with a story line, which shows how they are used to performance tune a standard parallel application on two multi-core systems. 3.13 3.14 3.15 @@ -593,31 +598,62 @@ 3.16 \subsection{Unit \& Constraint Collection} 3.17 The UCC contains all units of work that get scheduled and all application-related constraints on scheduling them. That's a nice solid definition but things aren't quite that simple. The complication is that different classes of application exist, with two degrees of freedom that determine how much of the UCC is actually defined in the application vs the input data, or even the scheduler. 3.18 3.19 -Some applications have everything determined in the code, with all units fixed, and all constraints fixed. An example is matrix multiply with fixed size matrices. But for others, the shape of the UCC is only partially defined by the application code. An extreme example is an NP complete problem, for which the units are a function of both the particular input data and decisions made by the scheduler! 3.20 +Some applications have everything determined in the code, with all units fixed, and all constraints fixed. An example is matrix multiply with fixed size matrices. But for others, the shape of the UCC is only partially defined by the application code. Take matrix multiply when the size is an input parameter, and the toolchain divides the work into a fixed number of pieces. Then there are a fixed number of units, but their size depends on the input parameter. So, the UCC is different for each parameter value. An extreme example is an NP complete problem, for which the units are a function of both the particular input data \emph{and} decisions made by the scheduler! 3.21 3.22 We call a fully specified UCC a \emph{concrete} UCC. Every run of an application eventually winds up defining a concrete UCC. But the amount of UCC made concrete by the application alone falls into a two-dimensional grid. One dimension covers the units, the other the constraints. 3.23 3.24 -Figure X shows the two axes and the four factors on each that determine how much of the UCC the application code fixes. The horizontal axis is for units, vertical for constraints. The values on an axis start at 0 with units/constraints fully fixed by the application code alone, 1 means they are fixed by parameters plus code, 2 means the values of input data also play a role, and 3 means they are determined by scheduling decisions as well as (optionally) any of the rest. 3.25 +Figure X shows the two axes and the four factors on each that indicate how much of the UCC the application code determines. The horizontal axis is for units, vertical for constraints. The values on an axis start at 0 with units/constraints fully fixed by the application code alone, 1 means they are fixed by parameters plus code, 2 means the values of input data also play a role, and 3 means they are determined by scheduling decisions as well as (optionally) any of the rest. 3.26 3.27 -The closer the UCC is to the origin, the more concrete it is. Even the least concrete UCC, out at the end of the diagonal, becomes concrete during a run of the application. As the computation unfolds, data values interact with scheduling decisions, to fix the units and constraints among them, until all are concrete at the end of the run. 3.28 +The closer the UCC is to the origin, the more concrete it is. But even the least concrete UCC, out at the end of the diagonal, becomes concrete during a run of the application. As the computation unfolds, data values interact with scheduling decisions, to fix the units and constraints among them, until all are concrete at the end of the run. 3.29 3.30 -An added twist is that an application has a life-line, spanning from code through run, and its representation may change at the different stages of life. It starts as pristine source, then moves into specialization where code is translated into different representations than the original, and finally the specialized code is run. The UCC often changes between points in the life-line. 3.31 +Notice, though, that such a concrete UCC still has degrees of freedom. The same units could have been chosen, with the same constraints on them, but different decisions made about which hardware the units were assigned to, and which order the assignment was made in. These decisions interact with the hardware, to yield the communication patterns and consequent performance seen during the run. 3.32 3.33 -For example, specialization may perform a transform that fixes some units, concretizing the UCC. Alternatively, the toolchain may inject manipulator code that allows the runtime scheduler to divide units during the run. It would stop units and divide them to make more when it runs low. The injection of manipulator code moves the UCC further out. 3.34 +An added twist is that an application has a life-line, spanning from code through the run, and its representation may change at the different stages of life. It starts as pristine source, then moves into specialization where code is translated into different representations than the original, and finally the specialized code is run. The UCC often changes between points in the life-line. 3.35 3.36 -Applications that are far out on the diagonal, only specify a portion of the structure of the UCC, but it still tells what is inside the application's control vs under the scheduler's control. It thus indicates what can be done statically. The further out on the diagonal a UCC is, the less can be done statically. 3.37 +For example, specialization may perform a transform that fixes some units, concretizing the UCC. Alternatively, the toolchain may inject manipulator code that allows the runtime scheduler to divide units during the run. It would stop units and divide them to make more when it runs low. The injection of manipulator code moves the UCC further out on the diagonal. 3.38 3.39 -In this paper, we do not suggest how to represent UCCs far up on the diagonal. Those actually indicate a multi-verse of UCCs. Which actually materializes depends on the data that shows up and what the scheduler does. We leave the question of representation to future work. 3.40 +Applications that are far out on the diagonal only specify a portion of the structure of the UCC, but the UCC still tells what is inside the application's control vs under the scheduler's control. It thus indicates what can be done statically. The further out on the diagonal a UCC is, the less scheduling can be done statically in the toolchain. 3.41 + 3.42 +In this paper, we do not suggest how to represent UCCs far out on the diagonal. Those actually indicate a multi-verse of UCCs. Which of them materializes depends on the data that shows up and what the scheduler does. We only represent the concrete UCC that materializes during a run and leave the question of representing less concrete ones to future work. 3.43 3.44 3.45 3.46 \subsection{Scheduling Consequence Graph} 3.47 -The second part of the model adds in constraints caused by runtime implementation details, and by hardware. It then integrates all three aspects of parallel performance: application, runtime, and hardware. The resulting graph identifies all sources of lost performance, and links them to the cause of the loss, as seen during the tuning story in Section X. 3.48 +The second part of the model adds-in constraints caused by runtime implementation details and hardware. It then integrates all three aspects of parallel performance: application, runtime, and hardware. The resulting graph identifies all sources of lost performance, and links them to the cause of the loss, as was seen during the tuning story in Section X. 3.49 3.50 3.51 \subsection{Levels of UCC and Consequence Graph} 3.52 -There is one last twist to the story of UCCs and consequence graphs, which is that there are levels of them, which correspond to the levels of scheduler in a hierarchical machine. Work-unit (or just unit) was defined earlier in terms of instructions. An alternative definition is is the work consequent from 3.53 +There is one last twist to the story of UCCs and consequence graphs, which is that there are levels of them, which correspond to the levels of scheduler in a hierarchical machine. We use an example involving a server machine with a hierarchy of runtimes to illustrate both, concentrating first on just the UCC then adding the consequence graph. 3.54 3.55 +\subsubsection{Levels of UCC} 3.56 + 3.57 +As the example, consider a server with one rack, having a back-plane that boards plug into. A board has its own memory with four sockets, each having a chip with four cores. So there is a back-plane network connecting the boards, a bus on each board that connects the sockets to the DRAM, and inside the chip in each socket is a cache hierarchy that connects the cores. 3.58 + 3.59 +The hardware is given a set of runtimes to match the hierarchy. Each network or bus has a runtime that schedules work onto the things connected below it. So the top runtime divides work among the boards, while each board has a runtime that divides work among the sockets, and each socket has a runtime that divides work among the cores. 3.60 + 3.61 +To a runtime high up, each runtime below it looks like a complete machine. It schedules work-units to these machines, without knowing the internal details of how that machine is implemented. So the runtime at the top handles very large work-units that it schedules onto the boards. The runtime on a board, meanwhile, divides up the work it gets into smaller work-units, and schedules one onto each socket, and so on. 3.62 + 3.63 +The application in this example has been written in a language that allows work to be divided. The toolchain inserted a manipulator that allows each runtime to divide up the work it is given into smaller work-units. This pushed the UCC of the application all the way to the right on the unit axis. 3.64 + 3.65 +So what does the concrete UCC produced during a run look like? Well, a unit is defined as the work resulting from one scheduling decision. Each runtime has its own scheduler, which means units are defined for each runtime. That in turn means that each runtime has its own concrete UCC! 3.66 + 3.67 +Figure X shows that these UCCs are related to each other in the same hierarchy as the runtimes. A unit scheduled in one runtime is broken into smaller units in the one below it. Each of those units is then separately scheduled, making a complete UCC just for them. So, as the figure shows, a unit in one UCC has an entire UCC below it. 3.68 + 3.69 + Great, that makes sense, now what about the consequence graphs? 3.70 + 3.71 +\subsubsection{Levels of Consequence Graph} 3.72 + 3.73 +A consequence graph ties together scheduling decisions made on units with the consequences in the hardware of those decisions. The goal is to charge each segment of time on a physical core to exactly one box in a consequence graph. 3.74 + 3.75 +In the UCCs, for a higher up runtime, each lower runtime it schedules onto is treated as a machine. We saw in Fig X that a unit has its own UCC in the level below it, so there is a corresponding consequence graph. The UCC states the degrees of scheduling freedom, while the consequence graph shows the hardware consequences resulting from the particular scheduling choices made in the runtime. 3.76 + 3.77 + Now, the question is, what hardware usage should get counted towards one of the units? The answer is: only the time spent on the cores that is used to schedule, do work, and wait for non-overlapped communication. 3.78 + 3.79 +The time spent on scheduling one of the units is straight-forward, it's the normal runtime overhead of receiving a unit, managing the constraints on it, and choosing the best location and time to execute it. The only variation is that the location chosen is a lower-level runtime rather than a physical core. 3.80 + 3.81 +But what core time should be charged as the work of that unit? The answer is: the core time not accounted for in the descendent consequence graphs. Each segement of physical core time can only be charged to one box in one consequence graph, so only the leaf graphs count the actual work. Further, the time spent in the lower runtime spent receiving, handling constraints, and choosing when and where to schedule the sub-units is charged to boxes in the lower-level consequence graph. By the process of elimination, the only time not accounted for elsewhere is the time spent dividing up a unit into smaller ones, and time spent accumulating the individual results back together. So this is what gets charged to the work-time box for a unit. 3.82 + 3.83 +The last question is how to handle communication consequences. This is tricky because decisions in higher-level runtimes set the context for decisions in lower-level ones. This means a higher-level choice is linked to the consequences from lower-level choices. The value of a consequence graph is linking the size of boxes in it to the decisions made by the scheduler as represented by the shape. It's not clear how to divide among the levels the time that cores spend waiting for non-overlapped communication. We have no good answer at the moment and leave it for future work. 3.84 3.85 3.86 \end{document}
