Mercurial > hg > Papers > 2014 > masakoha-sigos
changeset 39:3e23bbe3abe3
push
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 May 2014 17:00:04 +0900 |
parents | b148e2c6b527 |
children | e47b86ad3214 |
files | presen/s6/images/blockread.graffle presen/s6/images/read.png presen/s6/images/read_break.png presen/s6/index.html |
diffstat | 4 files changed, 1447 insertions(+), 61 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/s6/images/blockread.graffle Tue May 13 14:06:29 2014 +0900 +++ b/presen/s6/images/blockread.graffle Tue May 13 17:00:04 2014 +0900 @@ -26,7 +26,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2014-05-12 18:17:07 +0000</string> + <string>2014-05-13 06:57:57 +0000</string> <key>Modifier</key> <string>MasaKoha</string> <key>NotesVisible</key> @@ -10988,6 +10988,817 @@ <array> <dict> <key>Bounds</key> + <string>{{265.90178486062592, 27.045177921668667}, {114.28571319580078, 27.740258460170686}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>61</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs36 \cf0 Task Block}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{506.23608977619455, 244.84121066015112}, {114.28571319580078, 14}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>58</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 : Word Count Task}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{473.42659079175723, 218.88112690963075}, {24.000001907348633, 65.920196533203125}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>57</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{335.14643641559479, 370.55537538599378}, {24.000001907348633, 11.085924044832375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>56</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>AllowToConnect</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>49</integer> + <key>Points</key> + <array> + <string>{110.42957586689224, 257.6347753218194}</string> + <string>{199.81050267463752, 257.6347753218194}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{335.14643159265603, 282.93632382138719}, {24.000001907348633, 11.085924044832375}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>48</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{413.14643867709316, 257.63479277204317}, {24.000001907348633, 61.689019802464799}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>47</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{374.14655233503703, 345.25386423927364}, {24.000001907348633, 61.689019802464799}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>55</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{257.14649720963791, 345.25384088445082}, {24.000001907348633, 82.955885870215852}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>54</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{218.14637511487635, 345.25384908240562}, {24.000001907348633, 61.689019802464799}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>53</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{413.14640270741387, 345.2538475004875}, {24.000001907348633, 52.199020841965151}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>52</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{296.14646785532108, 345.25382338960435}, {24.000001907348633, 69.381300533890339}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>51</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{374.1464339087218, 257.63478931984378}, {24.000001907348633, 82.955885870215852}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>46</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{296.14641783249766, 257.63477896324548}, {24.000001907348633, 61.689019802464799}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>44</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{257.14641306412636, 257.63477551104586}, {24.000001907348633, 52.199020841965151}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>43</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{218.14639766909843, 257.63477551104631}, {24.000001907348633, 69.381300533890339}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>31</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + <key>GradientColor</key> + <dict> + <key>w</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{13.286713774067042, 163.2344221956341}, {69.142857097820212, 18.666665805283419}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>37</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs36 \cf0 read}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{86.429574762616511, 82.687869364845056}, {24.000001907348633, 179.75975036621094}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>36</integer> + <key>Line</key> + <dict> + <key>ID</key> + <integer>5</integer> + <key>Position</key> + <real>0.24344135820865631</real> + <key>RotationType</key> + <integer>0</integer> + </dict> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>5</integer> + <key>Points</key> + <array> + <string>{98.429575716290827, 51.317182380471031}</string> + <string>{98.429575716290827, 360.13987334971176}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>Pattern</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{50.429575747556086, 23.076923923379603}, {95.999999937469426, 27.740258460170686}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs36 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{196.50351848696923, 257.63479034956765}, {259.75399780273438, 87.619033813476562}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>4</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{196.50350371120206, 346.12102934328379}, {259.75399780273438, 90.48109913188884}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>59</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + <key>Width</key> + <real>3</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>62</integer> + <key>Points</key> + <array> + <string>{323.25925232423492, 55.285380641057777}</string> + <string>{329.14650814782948, 449.48862173067812}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>Pattern</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>61</integer> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>HPages</key> + <integer>2</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>レイヤー 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>Orientation</key> + <integer>2</integer> + <key>PrintOnePage</key> + <false/> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>キャンバス 15</string> + <key>UniqueID</key> + <integer>15</integer> + <key>VPages</key> + <integer>1</integer> + </dict> + <dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {1117.9999465942383, 783}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>DisplayScale</key> + <string>1 0/72 in = 1.0000 in</string> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> <string>{{89.510492793714818, 228.40780469511591}, {158.44606018066406, 28}}</string> <key>Class</key> <string>ShapedGraphic</string> @@ -13933,6 +14744,474 @@ <key>BackgroundGraphic</key> <dict> <key>Bounds</key> + <string>{{0, 0}, {558.99997329711914, 783}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>DisplayScale</key> + <string>1 0/72 in = 1.0000 in</string> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{9.7622428153267133, 148.20279358817169}, {39.86014132220113, 14}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>13</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 time}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>12</integer> + <key>Points</key> + <array> + <string>{62.909097911594891, 51.048952921415484}</string> + <string>{62.909097911594891, 259.35663725292284}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{217.19229192974908, 187.35664878730529}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>11</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>CornerRadius</key> + <real>10</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Task}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{217.19229235026705, 115.35664367675781}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>10</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>CornerRadius</key> + <real>10</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Task}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{217.1923147959568, 223.35663725292287}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>9</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{217.19230742291901, 151.35664367675781}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>8</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{217.19229562132514, 79.356643676758438}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>7</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{217.19230740385447, 43.356644946956237}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>6</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94.30769775404049, 151.35664240656001}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>5</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94.307709536569774, 115.35664367675781}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>4</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94.307690012512694, 79.356643676757812}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>3</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{94.307701795042007, 43.356644946955605}, {62.307685401479993, 36}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf190 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 read}</string> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>HPages</key> + <integer>1</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>レイヤー 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>Orientation</key> + <integer>2</integer> + <key>PrintOnePage</key> + <false/> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>キャンバス 14</string> + <key>UniqueID</key> + <integer>14</integer> + <key>VPages</key> + <integer>1</integer> + </dict> + <dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> <string>{{0, 0}, {1117.9999465942383, 783}}</string> <key>Class</key> <string>SolidGraphic</string> @@ -16920,11 +18199,11 @@ <key>WindowInfo</key> <dict> <key>CurrentSheet</key> - <integer>10</integer> + <integer>12</integer> <key>ExpandedCanvases</key> <array/> <key>Frame</key> - <string>{{400, 300}, {1300, 878}}</string> + <string>{{813, 540}, {1300, 878}}</string> <key>ListView</key> <true/> <key>OutlineWidth</key> @@ -16938,7 +18217,7 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{0, 0}, {814.68534456779503, 516.78323573871285}}</string> + <string>{{-128, 0}, {814.68534456779503, 516.78323573871285}}</string> <key>Zoom</key> <real>1.4299999475479126</real> <key>ZoomValues</key> @@ -17008,6 +18287,16 @@ <real>1.4299999475479126</real> <real>1</real> </array> + <array> + <string>キャンバス 14</string> + <real>1.4299999475479126</real> + <real>1</real> + </array> + <array> + <string>キャンバス 15</string> + <real>1.4299999475479126</real> + <real>1</real> + </array> </array> </dict> </dict>
--- a/presen/s6/index.html Tue May 13 14:06:29 2014 +0900 +++ b/presen/s6/index.html Tue May 13 17:00:04 2014 +0900 @@ -161,11 +161,8 @@ <p> 上記 2点を実装して、I/O と並列計算が同時に実行し、なおかつ I/O の処理を乱されないようにすることによって、全体のパフォーマンスを上げたい。 </p> - </div> - - <div class='slide'> - <h2>I/O の読み込み方法</h2> + <p>I/O の読み込みと並列計算の方法は以下の 3 つの方法を試みた。</p> <ol> <li> mmap 後に並列計算 @@ -177,19 +174,63 @@ read と 並列計算 が同時に実行 </li> </ol> + </div> + <div class='slide'> + <h2>mmap の特徴</h2> + + <img src='images/mmap.png' style="height:300px" align="middle" > + <br> + + <ul> + <li> + mmap は、仮想メモリ空間にファイルの中身を対応させ、そのメモリ空間に + アクセスされたら、 OS が読み込みを行う。<br> + </li> + <li> + code の記述はシンプルだが、スレッドが読み込み終わるまで待たされる。 <br> + </li> + <li> + 読み込みが OS 依存となるので、環境に左右されやすく、読み込みを細かく制御することが難しい。 + </li> + </ul> </div> + <div class='slide'> + <h2>読み込みながら計算を行う</h2> + <p>mmap を使用せずに、read を独立したスレッドで実行させる。そして、読み込んだ部分に対して Word Count を並列に起動する。 + </p> + <br> + <img src='images/divide_read.png' style="height:350px" align="middle" > + <!--図をUML に近いものに変更 --> + <br> + + <ul> + <li> read は全て読み込み終えるまで連続で動作しファイルを読み込む </li> + <li> read の待ちは CPU を消費しない </li> + <li> 読み込み終わったブロックに対して、Word Count を起動する </li> + <li> + WordCount Task を一度に全て生成すると、その Task でメモリを圧迫するので、 + ある程度の数でまとめた Block という単位で徐々に Task を起動していく。 + </li> + </ul> +</div> + + <div class='slide'> + <h2>読み込みを行ってから計算を行う</h2> + <br> + <img src='images/read.png' style="height:350px" align="middle" > + <br> + + <ul> + <li> 読み込みを行ってから計算を行うので、読み込みの間、CPU に待ち時間が発生してオーバーヘッドとなる。 </li> + </ul> +</div> <div class='slide'> <h2>I/Oを含むアプリケーションの並列化</h2> <p> - ファイル内の文字列検索を行うようなプログラムを走らせたとき、 - 文字列検索よりもファイルの読み込みに時間がかかることが多い。 - </p> - - <p> I/O は、ディスクからの読み込む時間がかかる。<br> -> <font color = red>I/O をどのように実装したら、並列処理とI/Oが干渉をなくして全体のパフォーマンスを上げれるか??</font><br> </p> @@ -251,47 +292,8 @@ </div> <div class='slide'> - <h2>mmap の特徴</h2> - - <img src='images/mmap.png' style="height:300px" align="middle" > - <br> - - <ul> - <li> - mmap は、仮想メモリ空間にファイルの中身を対応させ、そのメモリ空間に - アクセスされたら、 OS が読み込みを行う。<br> - </li> - <li> - code の記述はシンプルだが、スレッドが読み込み終わるまで待たされる。 <br> - </li> - <li> - 読み込みが OS 依存となるので、環境に左右されやすく、読み込みを細かく制御することが難しい。 - </li> - </ul> - </div> - - <div class='slide'> - <h2>読み込みながら計算を行う</h2> - <p>mmap を使用せずに、read を独立したスレッドで実行させる。そして、読み込んだ部分に対して Word Count を並列に起動する。 - </p> - <br> - <img src='images/divide_read.png' style="height:350px" align="middle" > - <!--図をUML に近いものに変更 --> - <br> - - <ul> - <li> read は全て読み込み終えるまで連続で動作しファイルを読み込む </li> - <li> read の待ちは CPU を消費しない </li> - <li> 読み込み終わったブロックに対して、Word Count を起動する </li> - <li> - WordCount Task を一度に全て生成すると、その Task でメモリを圧迫するので、 - ある程度の数でまとめた Block という単位で徐々に Task を起動していく。 - </li> - </ul> -</div> - - <div class='slide'> <h2>Blocked Read の実装</h2> + 読み込みながら並列計算を実行する方法を、Blocked Read と名付けた。 <br> <img src='images/blockread.png' style="height:300px"align="middle"> <!-- UML 形式にして --> @@ -316,6 +318,23 @@ </div> <div class='slide'> + <h2>Blocked Read 間に Task が割り込まれないようにする</h2> + <br> + <img src='images/read_break.png' style="height:300px"align="middle"> + <!-- UML 形式にして --> + <br> + + <ul> + <li> + I/O を含むアプリケーションの実行時間は、ほとんどが I/O ネックとなることが多い。 + </li> + <li> + 読み込みの間に Task が割り込まれると、全体の実行速度が遅くなってしまう。 + </li> + </ul> + </div> + + <div class='slide'> <h2>I/O 専用 thread での Blocked Read の実装</h2> <br> <img src='images/IO_0blockread.png' style="height:350px"> @@ -341,7 +360,7 @@ Word Count を実行した後に、読み込むファイルをキャッシュから追い出すために、 <pre>% sudo purge </pre> - を実行して、再測定を行っている。 + を実行して繰り返し、測定を行っている。 </div> <div class='slide'> @@ -456,9 +475,6 @@ </tbody> </table> <ul> - <li> - GPU の場合、キャッシュに入った時の実行速度は94.479秒である。 - </li> </ul> </div> @@ -468,6 +484,9 @@ <div class='slide'> <h2>実験2: Blocked Read size を変更してみる</h2> <p> +filesize : 1GB +</p> +<p> Blocked read Task 1つ当たりの読み込み量 : <font color=red>128 kbyte </font>* 48 </p> <table border="2" cellpadding="0" cellspacing="0"> @@ -567,6 +586,14 @@ </tr> </tbody> </table> + <ul> + <li> + Blocked Read size を大きくすると、mmap は遅くなってしまう。 + </li> + <li> + <font color=red>Blocked Read(IO_0) かつ、CPU 12 の時、最速となった。</font> + </li> + </ul> </div> <div class='slide'> @@ -640,11 +667,76 @@ </tr> </tbody> </table> + <ul> + <li> + Blocked Read size を大きくすればするほど、mmap は遅くなる。 + </li> + <li> + どの大きさでも Blocked Read(IO_0) は安定した速度がでる。 + </li> + </ul> </div> + + <div class='slide'> +<h2>実験4: mmap 後に madvise で読み込み方法を設定する</h2> + +<p> +Blocked read Task 1つ当たりの読み込み量 : 16 kbyte * 48 +</p> +<table border="2" cellpadding="0" cellspacing="0"> + <tbody> + <tr align="center"> + <td>madvise flag </td> + <td></td> + <td>time(s)</td> + </tr> + <tr> + <td>MADV_NORMAL(default)</td> + <td></td> + <td><div align=right>11.841</div></td> + </tr> + <tr> + <td>MADV_RANDOM</td> + <td></td> + <td><div align=right>42.891</div></td> + </tr> + <tr> + <td>MADV_SEQENTIAL</td> + <td></td> + <td><div align=right>38.935</div></td> + </tr> + <tr> + <td>MADV_WILLNEED</td> + <td></td> + <td><div align=right>10.916</div></td> + </tr> + <tr> + <td>MADV_DONTNEED</td> + <td></td> + <td><div align=right>17.506</div></td> + </tr> + <tr> + <td>MADV_FREE</td> + <td></td> + <td><div align=right>16.863</div></td> + </tr> + </tbody> +</table> + + <ul> + <li> + madvise はマッピングされたメモリに対してどのように処理を行うか指定することができる。kernel はそれに応じて読み込みを行う。 + </li> + <li> + kernel に読み込みを任せたほうが速い。 + </li> + </ul> + </div> + + <div class='slide'> -<h2>実験4: 別のコンピュータにて測定</h2> -<p>実験環境</p> +<h2>実験5: 別のコンピュータにて測定</h2> <ul> <li>OS : <font color=red>Cent OS 6.5</font></li> <li>CPU : Core i7-3770 3.40GHz</li> @@ -652,7 +744,6 @@ <li>HDD : 2TB 7200 rpm SATA <font color=red>6.0 Gbps</font> </li> </ul> <p> -<p> ファイルをキャッシュから追い出すために、以下のコマンドを実行した。 <pre>% sysctl -w vm.drop_caches=3</pre> <p> @@ -770,7 +861,13 @@ mmap での実行時は、Blocked Read size を小さくしたほうが速度が向上した。これは、まとめと読み込むサイズが小さくなればなるほど、sequential access に近い動作になるからであると考えられる。 </p> <p> - I/O の読み込みと Word Count などの Task を並列に動作させるときは、I/O と Task を同時に走らせる + I/O の読み込みと並列計算を分離して、同時に処理させたほうが、全体的に安定した速度がでる。mmapだと、一度に読み込む大きさが大きくなってしまうと遅くなる。 + </p> + <p> + mmap は OS での読み込み依存のため、環境によって左右されやすい。 + </p> + <p> + mmap の読み込み方法を指定することができるが、default である MADV_NORMAL でも充分に速くなる。 </p> </div>