# HG changeset patch # User Yutaka_Kinjyo # Date 1329055304 -32400 # Node ID 02067287fac3a4f71224ed83216dd64f1d4f12ff # Parent fe88829c8fe387d4806c8f790eb2081c3d87fc24 add file diff -r fe88829c8fe3 -r 02067287fac3 presen/pix/scenegraph1.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/pix/scenegraph1.graffle Sun Feb 12 23:01:44 2012 +0900 @@ -0,0 +1,1075 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.17.0.133677 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-12 21:25:18 +0900 + Creator + 金城 裕 + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 6 + GraphicsList + + + Bounds + {{352.75, 414}, {52.5, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 61 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Collision} + VerticalPad + 0 + + + + Bounds + {{352.75, 397}, {52.5, 48}} + Class + ShapedGraphic + ID + 60 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + VerticalPad + 0 + + + + Bounds + {{270, 397}, {52.5, 48}} + Class + ShapedGraphic + ID + 58 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Move} + VerticalPad + 0 + + + + Class + LineGraphic + Head + + ID + 60 + + ID + 57 + Points + + {352.307, 379.293} + {363.349, 401.128} + + Style + + stroke + + HeadArrow + FilledArrow + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 50 + + + + Class + LineGraphic + Head + + ID + 58 + + ID + 56 + Points + + {322.56, 378.727} + {310.552, 400.291} + + Style + + stroke + + HeadArrow + FilledArrow + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 50 + + + + Class + LineGraphic + Head + + ID + 50 + + ID + 54 + Points + + {295.921, 281.47} + {320.743, 324.299} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 47 + + + + Class + LineGraphic + Head + + ID + 47 + + ID + 53 + Points + + {239.365, 192.224} + {261.095, 228.372} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 55 + + + + Class + LineGraphic + Head + + ID + 48 + + ID + 52 + Points + + {149.882, 281.894} + {126.476, 325.079} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 46 + + + + Class + LineGraphic + Head + + ID + 49 + + ID + 51 + Points + + {180.921, 281.47} + {205.743, 324.299} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 46 + + + + Class + LineGraphic + Head + + ID + 46 + + ID + 24 + Points + + {206.855, 192.347} + {185.082, 229.229} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 55 + + + + Bounds + {{306, 320}, {64, 62}} + Class + ShapedGraphic + ID + 50 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SceneGraphNode} + VerticalPad + 0 + + + + Bounds + {{191, 320}, {64, 62}} + Class + ShapedGraphic + ID + 49 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SceneGraphNode} + VerticalPad + 0 + + + + Bounds + {{76, 320}, {64, 62}} + Class + ShapedGraphic + ID + 48 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SceneGraphNode} + VerticalPad + 0 + + + + Bounds + {{248, 223}, {64, 62}} + Class + ShapedGraphic + ID + 47 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SceneGraphNode} + VerticalPad + 0 + + + + Bounds + {{133, 223}, {64, 62}} + Class + ShapedGraphic + ID + 46 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SceneGraphNode} + VerticalPad + 0 + + + + Bounds + {{191, 134}, {64, 62}} + Class + ShapedGraphic + ID + 55 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SceneGraphNode} + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-02-12 21:25:25 +0900 + Modifier + 金城 裕 + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + 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 + mrGOu73fcqk7TcKJ9p3cYI0QylbT9A1Ik72ANh8ncoVvbA80R3rjcIUMuXGrDW8FDYy1 + z3IjdJqjrTzZ6XHkSQQ0VzwBbpFcWnhCuEWPSt4i8WnnyfDtoH03M0RDeaL2Jk8IC7HH + PBmZcaYtWODMeIdpccKk2dkfT3Eho3gNaSZWnABhHK6jCpZGnYXfSvLEUlozejpjSkTl + xVy4dIRGvvRGTUhDQnWk9aMBg7CnWCki8UCxfdNOlDVH3p07SDVF9XAuleivjHZsAcbu + Ax0xilTmA/xWGVv5p8DBw0p0NaBr6xsObiJtxMtQaz4bii7QyTLBKWFLHVjhBNupgW+J + Jbnh8MG3rjiiSySGuUQggp854EAyH/DlUfsuPGM+Jop4UyGGULaqWRSH2GkD1CwwK9hF + yFazUxsB7gB5PBDhGkj513AyAIGGSziqB5YPuP0XgIEUwNGJv0WAkXHCK4Jq4W7hQk8Y + a0WUH9RbxB3x3JYLSjeud/AO6Iik4tGgNVibevRoVCrioj3YFzcqmOaDaLGP0JK1MSvH + EwbUxb5IZmwj9Uds8jb2RLGVuBIWo7hWNBLOAwSP1nHCk6h0EDyMIcLYMVzQSAl1iPwT + j1Uy4zKLngTPi6tgN4+B58RQfFQ0kLN0lAN7RUMk4iXHpi3s6VMYni8DdqqE2fldjdph + pnqcBidPVf/8hV+mfp9vYPv9j56QrkZ4dK9BnbnKvYTxdENNltxTAefe1MK1Ys895FBE + NkS/5l6suJq1NffoVoBCdJV7EdNpXLSxp7z4FIh51dLc07Ul08T+lGAjbmN7aoAnX8p+ + frISNOecCjjneP0ldwQFyTDxVCUThTXnGAXLOaeCmXOCgvgIzCfCS84JCpJz4uXX5RyO + 4ScSjlrMp95GX3O+SeI9suTx5bxO/Y8lX+Q3+RpPtvRSu2fpD38AXy2EOgplbmRzdHJl + YW0KZW5kb2JqCjYgMCBvYmoKMjM2MgplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFn + ZSAvUGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBSIC9N + ZWRpYUJveCBbMCAwIDU1OSA3ODNdCj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9jU2V0 + IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9DczEgOCAwIFIgL0NzMiA5IDAg + UiA+PiAvRm9udCA8PAovRjEuMCAxMCAwIFIgPj4gPj4KZW5kb2JqCjExIDAgb2JqCjw8 + IC9MZW5ndGggMTIgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIg + L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AYVUz2sTQRT+Nm6p0CIIWmsOsniQIklZq2hF + 1Db9EWJrDNsftkWQZDNJ1m426+4mtaWI5OLRKt5F7aEH/4AeevBkL0qFWkUo3qsoYqEX + LfHNbky2perAzn7z3jfvfW923wANctI09YAE5A3HUqIRaWx8Qmr8iACOoglBNCVV2+xO + JAZBg3P5e+fYeg+BW1bDe/t3snetmtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnHdAjf + 49jy7I85Tnl4wbUPKz3EWSJ8QDUtzn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQ + vU+QprvM7qtioZxO9g6QvZ30fk6z3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4 + YBW3Gqn4NcIUXxBNJ6JUcdkuDfGYrv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/i + d1ZR4XmPE2fe1N3vRdoCrzAOHQwaDJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUk + art0YkSxQXs23D23UaTdPP4oInGUQ7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8Xl + mbkaHtfTyONzTV58ldR2k1dHlqx5erya7Bo/7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV + 8+pLhHVaMTffn2x/Oz3iLs8utdZzrYmLN1abl2f9akj77qq8k+ZV+U9e9fH8Z83EY+Ip + MSZ2iuchiZfFLvGS2EurC+JgbccInZWGKdJtkfok1WBgmrz1L10/W3i9Rn8M9VGUGczS + VIn3f8IqZDSduQ5v+o/bx/wX5PeK558oAi9s4MiZum1Tce8QoWWlbnOuAhe/0X3wtm5r + o344/ARYPKsWrVI1nyC8ARx2h3oe6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsW + s5lVYul22JnTHW4coTlC98SnSmWT+q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RQplbmRz + dHJlYW0KZW5kb2JqCjEyIDAgb2JqCjczNwplbmRvYmoKOCAwIG9iagpbIC9JQ0NCYXNl + ZCAxMSAwIFIgXQplbmRvYmoKMTMgMCBvYmoKPDwgL0xlbmd0aCAxNCAwIFIgL04gMSAv + QWx0ZXJuYXRlIC9EZXZpY2VHcmF5IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh + bQp4AYVST0gUURz+zTYShIhBhXiIdwoJlSmsrKDadnVZlW1bldKiGGffuqOzM9Ob2TXF + kwRdojx1D6JjdOzQoZuXosCsS9cgqSAIPHXo+83s6iiEb3k73/v9/X7fe0RtnabvOylB + VHNDlSulp25OTYuDHylFHdROWKYV+OlicYyx67mSv7vX1mfS2LLex7V2+/Y9tZVlYCHq + Lba3EPohkWYAH5mfKGWAs8Adlq/YPgE8WA6sGvAjogMPmrkw09GcdKWyLZFT5qIoKq9i + O0mu+/m5xr6LtYmD/lyPZtaOvbPqqtFM1LT3RKG8D65EGc9fVPZsNRSnDeOcSEMaKfKu + 1d8rTMcRkSsQSgZSNWS5n2pOnXXgdRi7XbqT4/j2EKU+yWCoibXpspkdhX0AdirL7BDw + BejxsmIP54F7Yf9bUcOTwCdhP2SHedatH/YXrlPge4Q9NeDOFK7F8dqKH14tAUP3VCNo + jHNNxNPXOXOkiO8x1BmY90Y5pgsxd5aqEzeAO2EfWapmCrFd+67qJe57AnfT4zvRmzkL + XKAcSXKxFdkU0DwJWBR9i7BJDjw+zh5V4HeomMAcuYnczSj3HtURG2ejUoFWeo1Xxk/j + ufHF+GVsGM+Afqx213t8/+njFXXXtj48+Y163DmuvZ0bVWFWcWUL3f/HMoSP2Sc5psHT + oVlYa9h25A+azEywDCjEfwU+l/qSE1Xc1e7tuEUSzFA+LGwluktUbinU6j2DSqwcK9gA + dnCSxCxaHLhTa7o5eHfYInpt+U1XsuuG/vr2evva8h5tyqgpKBPNs0RmlLFbo+TdeNv9 + ZpERnzg6vue9ilrJ/klFED+FOVoq8hRV9FZQ1sRvZw5+G7Z+XD+l5/VB/TwJPa2f0a/o + oxG+DHRJz8JzUR+jSfCwaSHiEqCKgzPUTlRjjQPiKfHytFtkkf0PQBn9ZgplbmRzdHJl + YW0KZW5kb2JqCjE0IDAgb2JqCjcwNAplbmRvYmoKOSAwIG9iagpbIC9JQ0NCYXNlZCAx + MyAwIFIgXQplbmRvYmoKNCAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94IFsw + IDAgNjEyIDc5Ml0gL0NvdW50IDEgL0tpZHMgWyAzIDAgUiBdID4+CmVuZG9iagoxNSAw + IG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvT3V0bGluZXMgMiAwIFIgL1BhZ2VzIDQgMCBS + ID4+CmVuZG9iagoyIDAgb2JqCjw8IC9MYXN0IDE2IDAgUiAvRmlyc3QgMTcgMCBSID4+ + CmVuZG9iagoxNyAwIG9iago8PCAvUGFyZW50IDE4IDAgUiAvQ291bnQgMCAvRGVzdCBb + IDMgMCBSIC9YWVogMCA3ODMgMCBdIC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAwMCBcMDAw + MSkKPj4KZW5kb2JqCjE4IDAgb2JqCjw8ID4+CmVuZG9iagoxNiAwIG9iago8PCAvUGFy + ZW50IDE4IDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBdIC9U + aXRsZSAo/v8wrTDjMPMw0DC5XDAwMCBcMDAwMSkKPj4KZW5kb2JqCjE5IDAgb2JqCjw8 + IC9MZW5ndGggMjAgMCBSIC9MZW5ndGgxIDEwMjU2IC9GaWx0ZXIgL0ZsYXRlRGVjb2Rl + ID4+CnN0cmVhbQp4Ab1aeXxU1b3/nbvPksmsmT0zN5OZSTLZAyEhkYwhC1tiICoJEk0C + gYBQI4RYbOFFZZGI1BUQbCtaWbUMIYUBCqUUxL62itZCRftqKy5dUtv30NcCmXm/cyeJ + kGf78Q8/vXfO8jvn3HN/53t+5/f7nXOne9mKDkiCXmChYU5b1wJQrsBjAKR33tK2rgRt + oknvvJ5ub4LmMwDYJQu6Fi5N0NJTAGr3wiUrh5837QYwfrOzo21+oh6uYVrciQUJmozD + NL1zaffXE7RxANMZS+6ZN1xv6kU6Y2nb14ffD+8i7f1a29IOTPEKLMEoveue5d0KCYF0 + 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 + TS8XJQ8dZtmlRtwh4nbzoXCqICzFIx7CCxxLcMfNCizgd0u1hDqY3c8cJVTzrzlI9gt2 + e/1lW93Qe+8N2RU9bKNWxorbMSqdxlKxLjekr79UJyaS0PSZK8N+JtPIshxk4vYPbfYN + neOZyX4ePu+3tHSotHRMz7yoD+GvIJ+aZ9yuqkgR2s93SSoJnYktORlbweVd28p2Xn0D + ERo+BYt34Pf4L7ro38MC+PU2HwqgGKqgRvnCT7/h34L/MJiF/xq4DW6HZmxF8J8HibM1 + AU/BYE7TjIY5c0JTOpb0dHQvmtemtBh5w62YacXQhaEXw2MYnsMQwXASwzkM72H4K+0W + gx6DF0M+hjCGBgytGLriwxfgNZoneM53I107hq4bQ9ePoRvH0JT76/ufN4aeP4ZWsLyO + n84x9YvG0PSb+fX9f20Mfc8YumsMTc82r39++Ri6h9L/B1VpacYKZW5kc3RyZWFtCmVu + ZG9iagoyMCAwIG9iago2NjU3CmVuZG9iagoyMSAwIG9iago8PCAvVHlwZSAvRm9udERl + c2NyaXB0b3IgL0FzY2VudCA3NzAgL0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQgLTIzMCAv + RmxhZ3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUg + L1pYTFBaWitIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRo + IDE1MDAgL1hIZWlnaHQgNjM3IC9Gb250RmlsZTIgMTkgMCBSID4+CmVuZG9iagoyMiAw + IG9iagpbIDcyMiAwIDAgMCA3NzggMCAwIDAgMCAwIDgzMyA3MjIgMCAwIDAgMCA2Njcg + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA1NTYKMCA1MDAgNTU2IDU1NiAwIDAgNTU2 + IDIyMiAwIDAgMjIyIDAgNTU2IDU1NiA1NTYgMCAzMzMgNTAwIDAgMCA1MDAgXQplbmRv + YmoKMTAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNl + Rm9udCAvWlhMUFpaK0hlbHZldGljYSAvRm9udERlc2NyaXB0b3IKMjEgMCBSIC9XaWR0 + aHMgMjIgMCBSIC9GaXJzdENoYXIgNjcgL0xhc3RDaGFyIDExOCAvRW5jb2RpbmcgL01h + Y1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjIzIDAgb2JqCihNYWMgT1MgWCAxMC42Ljgg + UXVhcnR6IFBERkNvbnRleHQpCmVuZG9iagoyNCAwIG9iagooRDoyMDEyMDIxMjEyMjUz + OFowMCcwMCcpCmVuZG9iagoxIDAgb2JqCjw8IC9Qcm9kdWNlciAyMyAwIFIgL0NyZWF0 + aW9uRGF0ZSAyNCAwIFIgL01vZERhdGUgMjQgMCBSID4+CmVuZG9iagp4cmVmCjAgMjUK + MDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDEyMzA4IDAwMDAwIG4gCjAwMDAwMDQ2MDEg + MDAwMDAgbiAKMDAwMDAwMjQ3OCAwMDAwMCBuIAowMDAwMDA0NDUyIDAwMDAwIG4gCjAw + MDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMjQ1OCAwMDAwMCBuIAowMDAwMDAyNTgyIDAw + MDAwIG4gCjAwMDAwMDM1NTIgMDAwMDAgbiAKMDAwMDAwNDQxNiAwMDAwMCBuIAowMDAw + MDEyMDM5IDAwMDAwIG4gCjAwMDAwMDI2OTIgMDAwMDAgbiAKMDAwMDAwMzUzMiAwMDAw + MCBuIAowMDAwMDAzNTg4IDAwMDAwIG4gCjAwMDAwMDQzOTYgMDAwMDAgbiAKMDAwMDAw + NDUzNSAwMDAwMCBuIAowMDAwMDA0Nzc4IDAwMDAwIG4gCjAwMDAwMDQ2NDkgMDAwMDAg + biAKMDAwMDAwNDc1NiAwMDAwMCBuIAowMDAwMDA0ODg1IDAwMDAwIG4gCjAwMDAwMTE2 + MzMgMDAwMDAgbiAKMDAwMDAxMTY1NCAwMDAwMCBuIAowMDAwMDExODc5IDAwMDAwIG4g + CjAwMDAwMTIyMTQgMDAwMDAgbiAKMDAwMDAxMjI2NiAwMDAwMCBuIAp0cmFpbGVyCjw8 + IC9TaXplIDI1IC9Sb290IDE1IDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8YzUxMmI2MjEy + YmNiMjJjNDA1YmY1MDIyZDdjZDNlMjI+CjxjNTEyYjYyMTJiY2IyMmM0MDViZjUwMjJk + N2NkM2UyMj4gXSA+PgpzdGFydHhyZWYKMTIzODMKJSVFT0YKMSAwIG9iago8PC9BdXRo + b3IgPGZlZmY5MWQxNTdjZTAwMjA4OGQ1PiAvQ3JlYXRpb25EYXRlIChEOjIwMTIwMjEy + MTIyNTAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgNS4yLjMpL01vZERhdGUgKEQ6MjAx + MjAyMTIxMjI1MDBaKS9Qcm9kdWNlciAyMyAwIFIgPj4KZW5kb2JqCnhyZWYKMSAxCjAw + MDAwMTMwNDEgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPGM1MTJiNjIxMmJjYjIyYzQw + NWJmNTAyMmQ3Y2QzZTIyPiA8YzUxMmI2MjEyYmNiMjJjNDA1YmY1MDIyZDdjZDNlMjI+ + XSAvSW5mbyAxIDAgUiAvUHJldiAxMjM4MyAvUm9vdCAxNSAwIFIgL1NpemUgMjU+Pgpz + dGFydHhyZWYKMTMxOTgKJSVFT0YK + + QuickLookThumbnail + + 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 + APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoB + oQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6 + AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oD + lgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wTh + BPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoG + ewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghG + CFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQK + agqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzA + DNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14P + eg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk + EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsV + vRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlF + GWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4d + Rx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1 + IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcm + JyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysC + KzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUw + bDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9 + Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8 + JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJy + QrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1J + Y0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1Bx + ULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BY + L1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AF + YFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9o + lmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6 + cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6 + pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQd + hICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+O + Zo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4 + mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj + 5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8W + r4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7 + LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dB + x7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bU + SdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE + 4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTv + QO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p + /br+S/7c/23//3BhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAAoOdmNndAAAAAAA + AAABAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAbmRpbgAAAAAAAAA2 + AACpQAAAUYAAADUAAACrAAAAJMAAABGAAABQQAAAVEAAAjMzAAIzMwACMzMAAAAAAAAA + AHNmMzIAAAAAAAELtwAABZb///NXAAAHKQAA/df///u3///9pgAAA9oAAMD2bW1vZAAA + AAAAAB5tAABXlAADcZvF5zuAAAAAAAAAAAAAAAAAAAAAAA== + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{576, 55}, {693, 937}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff -r fe88829c8fe3 -r 02067287fac3 presen/pix/scenegraph1.png Binary file presen/pix/scenegraph1.png has changed diff -r fe88829c8fe3 -r 02067287fac3 presen/presen1.html --- a/presen/presen1.html Sun Feb 12 17:51:19 2012 +0900 +++ b/presen/presen1.html Sun Feb 12 23:01:44 2012 +0900 @@ -105,10 +105,25 @@
  • ソフトウェアMailQueueの実装
  • TaskをグルーピングするTaskArrayの実装
  • 明示的なDMAロードを隠蔽するMemorySegmentのAPIの実装
  • - +
    などの改良を行い、信頼性のある並列プログラミングフレームワークを目指す。 +
  • +

    発表構成

    + +
  • Cell Broadband Engine

    @@ -131,18 +146,22 @@
  • -

    DMA転送

    -SPE は直接 MainMemory にアクセスできない。 明示的な DMA 転送命令を用いてデータにアクセスする。データは +

    Cellの機能(DMA転送)

    + +Cell の SPE は直接 MainMemory にアクセスできない。 明示的な DMA 転送命令を用いてデータにアクセスする。転送するデータの条件として
    • 16アラインメントに揃える
    • -
    • 16byte の倍数のサイズ
    • -
    • 一度の転送は16KB の大きさまで
    • -
    +
  • 16byte の倍数のサイズでなければならない
  • +
  • 一度の転送は16KB の大きさまでできる
  • +
    +プログラムが明示的にDMA命令を発行して、データ転送を行う +
  • -

    Mailbox

    +

    Cellの機能(Mailbox)

    + PPE と SPE の通信には Mailbox を用いる @@ -154,22 +173,26 @@
  • SPU Outbound Mailbox: SPE -> PPE
  • SPU Outbound interrupt Mailbox: SPE -> PPE (割り込み)
  • - +
    + +
  • Cerium

    + Cerium とは +
    • 並列プログラミング用のフレームワーク
    • 学生実験での使用を考慮して PS3/Cell, Linux, MacOSX で動作する
    • -
    • 構成
    • +
    • Ceriumの構成
      • TaskManager
      • RenderingEngine
      • SceneGraph
    - +
  • TaskManager

    @@ -177,15 +200,15 @@ +
  • ユーザは処理(単位は関数に近い)を Task で記述していく
  • +
  • 定義されたTask は、Task 情報に沿って各コアに処理を割り振られる
  • +
    Task で記述された部分の、自動的な並列処理スケジューリングを行う。
  • RenderingEngine(1/2)

    -PS3 では Graphics Engien の仕様が公開されていないので、独自の RenderingEngine を開発した。 +PS3 では Graphics Engine の仕様が公開されていないので、独自の RenderingEngine を開発した。 Task で記述され、主に3つの Task から構成される -ball bound では Mail 待ちが約70%と、稼働率が出ていない。
    -panel は ball bound より処理の描画の処理が重く、その分稼働率が高くなっている。 -アムダールの法則より稼働率がでないとマルチコアの性能は発揮されない。フレームワークとしての信頼性が十分でない +ball bound では Mail 待ちが約70%、稼働率23%と十分な稼働率ではない。(panel は ball bound より描画の処理が重く、その分稼働率が高くなっている)
    +アムダールの法則より稼働率がでないとマルチコアの性能は発揮されない。フレームワークとしての信頼性が十分でない問題がある
  • Mail 通知のスケジューリング

    +稼働率を向上させるために、Mail の待ち時間を削減する。

    Cerium では SPE が Mail で 待ち時間が発生するタイミングは2つ
  • @@ -295,12 +320,16 @@
  • TaskArray(1/3)

    -TaskList は Cerium 側で固定長であり、ユーザは変更することができない。ユーザが設定できる TaskList のようなものが、TaskArrayである。TaskArray は複数の Task をグルーピングできる。 + +Task毎に依存関係の解決のため、Mail を通知する。バリア同期など複数の Task が同じ Task を待つ場合にはグルーピングできる。 +Task のグルーピングを可能にするために TaskArray を実装した。

    +
    +
  • TaskArray(2/3)

    例えば TaskListのサイズが4, TaskArray のサイズが4の場合、Task が8個の場合 @@ -361,7 +390,6 @@ 67.6% - あり 4.2 @@ -377,7 +405,7 @@
  • MailQueue(1/3)

    -ソフトウェア MailQueue の実装 +Task 毎の Mail 書き込み時の待ち時間を削減するため、MailQueue を実装した。 -Task 毎の Mail 書き込み時の待ち時間を削減するのが目的 -
  • MailQueue(2/3)

    @@ -398,9 +424,9 @@
  • MailQueue(3/3)

    + MailQeueuの効果 - @@ -457,9 +483,12 @@
    ball bound
    +ball bound , panel ともに Mail 待ち時間が削減され、稼働率、FPS の向上につながった。 + +
  • -

    MemorySegment(1/7)

    -CreateSpanTask では明示的にDMA転送命令を記述している。 +

    Ceriumの改良(アーキテクチャ依存記述の隠蔽)

    +RenderingEngine の Task内 では明示的にDMA転送命令を記述している。
    • 処理するデータ構造上の理由、Task内でのデータロードが必要
    • @@ -467,12 +496,13 @@
    • 他のアーキテクチャなどでは不要

    +フレームワークとしての汎用性に欠ける。 アーキテクチャ依存の記述を隠蔽できるAPIが必要になった。
  • -

    MemorySegment(2/7)

    +

    MemorySegment(1/6)

    明示的なDMA転送命令を隠蔽するため MemorySegment を実装した - +MemorySegemnt はデータ構造。LS 内のデータを管理する。
    • 一定のメモリを確保し、ハッシュで管理(LRU方式)
    • API 内部で自動的なキャッシュを行う (サイズは任意に設定できる)
    • @@ -485,7 +515,7 @@
  • -

    MemorySegment(3/7)

    +

    MemorySegment(2/6)

    @@ -493,7 +523,7 @@

  • -

    MemorySegment(4/7)

    +

    MemorySegment(3/6)

    @@ -501,7 +531,7 @@

  • -

    MemorySegment(5/7)

    +

    MemorySegment(4/6)

    明示的に記述したDMA転送命令の例
     loop() {
    @@ -523,7 +553,7 @@
     
  • -

    MemorySegment(6/7)

    +

    MemorySegment(5/6)

    MemorySegment を適応させた例
     loop() {
    @@ -543,29 +573,28 @@
     
  • -

    MemorySegment(7/7)

    +

    MemorySegment(6/6)

    MemorySemgment を導入
    • アーキテクチャ依存の記述を隠蔽することに成功した
    • 汎用的な Task 内でのデータ転送APIとして使用でき
    • Core i7, Xeon などの汎用のメニーコアにも対応可能
    • -
    • CreateSpanTask 内のデータロードと、DrawspanTask の Texture のロードに使用している
  • -

    まとめ(1)

    +

    まとめ(1/2)

    並列プログラミングフレームワーク Cerium の改良を行った。
      -
    • Mail の待ち時間を削減、稼働率とFPSの向上に成功
    • -
    • 汎用的なデータ転送APIを実装した
    • -
    • Cell アーキテクチャ依存の記述の隠蔽に成功
    • -
    +
  • MailQeueu, TaskArry を実装、導入した。その結果 Mail の待ち時間の削減、稼働率と FPS の向上に成功した
  • +
  • MemorySegment を実装し、汎用的なデータ転送APIが利用できるようになった。Cell アーキテクチャ依存の記述の隠蔽に成功
  • +
    +以上の改良を行い、稼働率の向上、アーキテクチャ依存のコードの排除に成功し、フレームワークとしての信頼性が向上した。
  • -

    まとめ(2)

    +

    まとめ(2/2)

    改良の効果を示す @@ -651,18 +680,24 @@
  • 今後の課題

    -アムダールの法則より、 - -
  • -

    自動的な依存関係の解決

    - -
  • -

    Task 化による並列化率の向上

    - -
  • -

    SPE の LS の利用方法

    - +
      +
    • SceneGraph 部分の Task 化
    • +
        +
      • Task 化によって並列化率の向上
      • +
      +
    • 自動的な依存関係の解決
    • +
        +
      • 扱うデータから Task の依存関係がわかる
      • +
      • ユーザが複雑な依存関係を設定しない
      • +
      +
    • プログラムとデータの On demand Load
    • +
        +
      • プログラムコードはすべて LS に置いている
      • +
      • LS の容量を圧迫しプログラムが動作しなくなる
      • +
      • すべてのデータを扱う包括的なデータ構造が必要
      • +
      +