# HG changeset patch # User Masataka Kohagura # Date 1393355306 -32400 # Node ID ec6ddf37a60bb4b951c894271903e5230fa89932 # Parent 17c93faef65b34566c0371b1af295a5deb4c00c5 fix slide diff -r 17c93faef65b -r ec6ddf37a60b paper/fig/blockread.graffle --- a/paper/fig/blockread.graffle Wed Feb 26 02:56:44 2014 +0900 +++ b/paper/fig/blockread.graffle Wed Feb 26 04:08:26 2014 +0900 @@ -26,7 +26,7 @@ MasterSheets ModificationDate - 2014-02-25 17:43:44 +0000 + 2014-02-25 17:59:41 +0000 Modifier masataka kohagura NotesVisible @@ -38025,6 +38025,1242 @@ GraphicsList + Bounds + {{349.83002928005732, 112.35235622913868}, {108.41831207275391, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 83 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 wait for Output Data} + VerticalPad + 0 + + + + Bounds + {{243.64874258292048, 73.25925488982746}, {108.41831207275391, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 82 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 spawn Output Data} + VerticalPad + 0 + + + + Bounds + {{165.26627324696224, 59.259258212703131}, {81.463137313527341, 28}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 81 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 wait for\ +file read} + VerticalPad + 0 + + + + AllowToConnect + + Class + LineGraphic + ID + 87 + Points + + {369.32896222233944, 253.9936572872839} + {407.76977495207439, 211.54560281664553} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + + + AllowToConnect + + Class + LineGraphic + ID + 73 + Points + + {369.32894897460938, 233.82559103016305} + {395.58490270484458, 206.51466797364506} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + + + AllowToConnect + + Class + LineGraphic + ID + 72 + Points + + {369.32894897460938, 160.7163508481004} + {395.58490158839709, 188.67089596956819} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + + + AllowToConnect + + Class + LineGraphic + Head + + ID + 62 + + ID + 70 + Points + + {369.32896222233944, 143.48946092014191} + {419.50243577478443, 184.18386725525298} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + + + Class + LineGraphic + Head + + ID + 52 + + ID + 69 + Points + + {293.77972128175168, 261.76213271651505} + {264.53314945889986, 269.97998629484528} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + FilledArrow + + + Tail + + ID + 60 + + + + Class + LineGraphic + Head + + ID + 51 + + ID + 68 + Points + + {287.36645641602695, 234.70460873750284} + {267.69575650613575, 235.66914326922986} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + FilledArrow + + + Tail + + ID + 59 + + + + Class + LineGraphic + Head + + ID + 50 + + ID + 67 + Points + + {287.36642299774809, 159.77429402731738} + {267.69577205475645, 158.80977381411248} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + FilledArrow + + + Tail + + ID + 55 + + + + Class + LineGraphic + Head + + ID + 28 + + ID + 66 + Points + + {293.77963710187345, 132.71674530119205} + {264.53317063951829, 124.49893677491676} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + FilledArrow + + + Tail + + ID + 54 + + + + Class + LineGraphic + Head + + ID + 52 + + ID + 65 + Points + + {183.49285030115306, 262.43781723862367} + {191.80789890658932, 253.29921570905844} + {212.35765330484233, 253.29921570905844} + {225.76468571828983, 264.56145477864015} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + Tail + + ID + 47 + + + + Class + LineGraphic + Head + + ID + 51 + + ID + 64 + Points + + {182.19324748926189, 222.64794375790373} + {191.80789376886767, 210.89872323676454} + {212.35764816712063, 210.89872323676454} + {226.85845272979398, 224.44266155136057} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + Tail + + ID + 46 + + + + Class + LineGraphic + ID + 63 + Points + + {180.27231672314932, 143.53164879550511} + {191.80790294741374, 132.85200477392701} + {212.35765734566669, 132.85200477392701} + {225.81004116434357, 145.30621858185688} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + + + Class + LineGraphic + Head + + ID + 28 + + ID + 35 + Points + + {183.25662822953271, 103.34382564020828} + {192.76627965277558, 92.697403177720687} + {213.31603405102859, 92.697403177720687} + {226.76841786970544, 105.15161698565052} + + Style + + stroke + + HeadArrow + 0 + Legacy + + LineType + 1 + TailArrow + Arrow + + + Tail + + ID + 1 + + + + Bounds + {{390.63884893286468, 183.59107764089654}, {90.731513977050781, 27.954545768578228}} + Class + ShapedGraphic + ID + 62 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 Result Task} + VerticalPad + 0 + + + + Bounds + {{287.86584946941747, 242.33088234514204}, {81.463103909583637, 19.295995712280273}} + Class + ShapedGraphic + ID + 60 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 Output Data} + + + + Bounds + {{287.86585639268458, 223.03488938207519}, {81.463103909583637, 19.295995712280273}} + Class + ShapedGraphic + ID + 59 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 Output Data} + + + + Class + LineGraphic + ID + 58 + Points + + {327.84303487611038, 183.26216910861453} + {327.84303487611038, 211.2167148771924} + + Style + + stroke + + HeadArrow + 0 + Legacy + + Pattern + 2 + TailArrow + 0 + + + + + Bounds + {{287.86582298874123, 152.14799269137089}, {81.463103909583637, 19.295995712280273}} + Class + ShapedGraphic + ID + 55 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 Output Data} + + + + Bounds + {{287.86582991200845, 132.85199972830398}, {81.463103909583637, 19.295995712280273}} + Class + ShapedGraphic + ID + 54 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 Output Data} + + + + Bounds + {{213.31602108687596, 262.80766376930353}, {54, 27.954545768578228}} + Class + ShapedGraphic + ID + 52 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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} + VerticalPad + 0 + + + + Bounds + {{213.31602108687596, 223.03493092281334}, {54, 27.954545768578228}} + Class + ShapedGraphic + ID + 51 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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} + VerticalPad + 0 + + + + Bounds + {{213.31603405102854, 143.48945685495173}, {54, 27.954545768578228}} + Class + ShapedGraphic + ID + 50 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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} + VerticalPad + 0 + + + + Bounds + {{213.31603405102859, 103.71672400846133}, {54, 27.954545768578228}} + Class + ShapedGraphic + ID + 28 + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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} + VerticalPad + 0 + + + + Class + LineGraphic + ID + 48 + Points + + {165.26627488093757, 183.26218666204076} + {165.26627488093757, 211.21673243061869} + + Style + + stroke + + HeadArrow + 0 + Legacy + + Pattern + 2 + TailArrow + 0 + + + + + Bounds + {{138.76627276886592, 262.80764162659648}, {63.344825298837208, 27.954545768578228}} + Class + ShapedGraphic + ID + 47 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 File Read} + + + + Bounds + {{138.76627276886592, 223.03489581595906}, {63.344825298837208, 27.954545768578228}} + Class + ShapedGraphic + ID + 46 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 File Read} + + + + Bounds + {{138.76627276886592, 143.48945226567864}, {63.344825298837208, 27.954545768578228}} + Class + ShapedGraphic + ID + 45 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 File Read} + + + + Bounds + {{138.76628084405212, 103.71672630309789}, {63.344825298837208, 27.954545768578228}} + Class + ShapedGraphic + ID + 1 + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 File Read} + + + + Bounds + {{99.999998233936481, 289.710876759602}, {35.433071398293073, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 44 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1265 +\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 FILE} + VerticalPad + 0 + + + + Class + LineGraphic + ID + 43 + Points + + {117.21652858486596, 262.80763005446465} + {117.21652858486596, 290.76217582304253} + + Style + + stroke + + HeadArrow + NegativeControls + Legacy + + TailArrow + NegativeControls + + + + + Class + LineGraphic + ID + 42 + Points + + {117.21652858486596, 223.03490154432578} + {117.21652858486596, 250.98944731290354} + + Style + + stroke + + HeadArrow + NegativeControls + Legacy + + TailArrow + NegativeControls + + + + + Class + LineGraphic + ID + 40 + Points + + {117.21652858486601, 183.26217787078312} + {117.21652858486601, 211.21672363936099} + + Style + + stroke + + HeadArrow + 0 + Legacy + + Pattern + 2 + TailArrow + 0 + + + + + Class + LineGraphic + ID + 39 + Points + + {117.21653342146274, 143.48945705826318} + {117.21653342146274, 171.44400282684146} + + Style + + stroke + + HeadArrow + NegativeControls + Legacy + + TailArrow + NegativeControls + + + + + Class + LineGraphic + ID + 38 + Points + + {117.21652858486607, 103.71672957002347} + {117.21652858486607, 131.6712753386017} + + Style + + stroke + + HeadArrow + NegativeControls + Legacy + + TailArrow + NegativeControls + + + + + Bounds + {{129.84034610743049, 90.352357778038964}, {81.463137313527341, 213.3585205078125}} + Class + ShapedGraphic + ID + 89 + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Color + + b + 0 + g + 0 + r + 1 + + + + + + GridInfo + + HPages + 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 + + Orientation + 2 + PrintOnePage + + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 22 + UniqueID + 24 + VPages + 1 + + + ActiveLayerIndex + 0 + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {558.99997329711914, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + DisplayScale + 1 0/72 in = 1.0000 in + GraphicsList + + Class LineGraphic Head @@ -40308,7 +41544,7 @@ WindowInfo CurrentSheet - 20 + 19 ExpandedCanvases Frame @@ -40436,6 +41672,11 @@ 1.3500000238418579 1 + + キャンバス 22 + 1.3500000238418579 + 1 + diff -r 17c93faef65b -r ec6ddf37a60b slide/images/includeIOTask.png Binary file slide/images/includeIOTask.png has changed diff -r 17c93faef65b -r ec6ddf37a60b slide/index.html --- a/slide/index.html Wed Feb 26 02:56:44 2014 +0900 +++ b/slide/index.html Wed Feb 26 04:08:26 2014 +0900 @@ -52,50 +52,9 @@
  • PS3 に搭載されている Cell 向けに開発を行っていた。近年では、Mac OS X、Linux でも使用ができるように改良された。
  • -
  • - マルチコア CPU だけでなく、GPGPU での動作もサポート。 -
  • - -
    -

    用語の定義

    -
      -
    • - Blocked Read Task
      - ファイルを実メモリに読み込む処理 -
    • -
    • - Task
      - 分割されたファイルに対して何らかの計算を行う処理
      -
    • -
    - - - -

    並列処理向け I/O の 設計と実装


    @@ -113,8 +72,8 @@
      -
    1. file を実メモリに格納後、file をある一定の大きさに分割する
    2. -
    3. 分割した file に対して、それぞれ計算を行う
    4. +
    5. テキストファイルの読み込み後、ファイルをある一定の大きさに分割する
    6. +
    7. 分割したテキストファイルに対して、それぞれ計算を行う
    8. 計算した結果を集計する
    @@ -129,13 +88,10 @@ @@ -152,14 +108,11 @@

    mmapでの実装の問題点

    @@ -173,56 +126,12 @@ + 以後、ファイルに対して文字列検索を行う処理を Task と定義する。 - -

    Blocked Read の実装


    @@ -233,15 +142,15 @@
  • Task を 1 つずつ生成するのではなく、ブロック単位で生成する。
    この図では、1 Block 当たり n 個の Task を生成する。
    - (1つずつ生成すると、生成された Task で実メモリを圧迫するため) + (1つずつ生成すると、生成された Task でメモリを圧迫するため)
  • Task 1つ当たりの読み込む領域を L とする。
    - Blocked Read Task 1つ当たり、実メモリに格納する大きさは L × n となる。 + Blocked Read Task 1つ当たり、メモリに格納する大きさは L × n となる。
  • Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。
    - (Read Task がファイルを実メモリに格納する前に走ると、まだ格納していない領域を読みこんでしまう。) + (Read Task がファイルをメモリに格納する前に走ると、まだ格納していない領域を読みこんでしまう。)
  • @@ -252,13 +161,13 @@ @@ -269,10 +178,9 @@
    @@ -287,10 +195,8 @@
  • Memory 16GB 1333MHz DDR3
  • HHD 1TB
  • file size : 約 10 GB
  • -
  • - "doing" という文字列が file 内にいくつあるか計算
    - ("doing" は 25,961,792 個存在する) -
  • +
  • ファイルに対して Boyer-Moore String Seaech で文字列検索をかける
  • +
  • ファイルの読み込みから結果までを測定
  • @@ -298,7 +204,7 @@

    ベンチマーク(2/2)


    結果

    @@ -313,40 +222,28 @@ read mode - cpu num - min time(s) - MAX time(s) ave time(s) mmap - 4 - 135.2 - 148.9 - 142.3 - - - BRead - 4 - 94.5 - 109.2 - 98.8 - - - - mmap - 12 - 147.0 - 181.8 154.6 - BRead - 12 - 91.6 - 117.5 + 一括Read + 114.9 + + + Blocked Read & SPE_ANY + 106.0 + + + Blocked Read & IO_0 99.2 + + [参考] mmap (CPU num:2) + 106.2 + @@ -354,80 +251,31 @@
    -

    まとめ

    +

    考察


    • - mmap より、Blocked Readのほうが約50秒高速化した
      - mmap では 1つ1つの Task が実メモリへの呼び出しを行っているが、Blocked Read だと複数 Task 分の実メモリ呼び出しを行っている。実メモリへの呼び出し回数が少なくなったため速くなっていると考えられる。(要検証) + 実験結果から、mmap より、Blocked Read & IO_0 の実行速度が36%改善された。
    • - I/O と Task の分離が成功して並列に動作するようになった + mmap では 1つ1つの Task がファイルの読み込みを行うが、Blocked Read だと複数 Task 分のファイルを読み込んでいるので、メモリへの呼び出し回数が少ない Blocked Read のほうが速くなったと考えられる。 +
    • +
    • + I/Oを含む並列処理を mmap で実装すると遅くなるので、このような例題の場合は Blocked Read で読み込む必要がある。
    -

    Blocked Read の有効性

    -
    -
      -
    • - mmap で記述するよりも速度的に速くなる -
    • -
    • - 読み込みのOS 依存度が減少する。 -
    • -
    -
    - -
    -

    研究計画

    +

    まとめ


    • - さらなる 並列処理向け I/O の動作を改善 -
    • -
    • - I/O を利用した、マルチコアソフトウェアシンセサイザーを設計と実装 -
    • -
    - -
    - -
    -
    - -
    -

    マルチコアソフトウェアシンセサイザーの設計

    -
    -
      -
    • - 作曲をする際にはマシンパワーが必要となることが多い。 + I/O を含む Task を実装するときに mmap では不向き
    • - ソフトウェアシンセサイザー(以下、シンセサイザー)を使用する際にマシンパワーが必要となる。 -
    • -
    • - シンセサイザーは1つだけで立ち上げる物ではなく、複数立ち上げる物なので、1つ1つの負荷を抑えることがキーポイントとなる。 -
    • -
    • - シンセサイザーは様々なフィルターをかけることで音を作っていくのだが、フィルターを重ねても動作軽量なプログラムを作る。 -
    • -
    -
    - -
    -

    仮想メモリと実メモリ

    -
    -
      -
    • - 実メモリ
      - 物理メモリとも呼ばれている。コンピュータに実際に搭載されているメインメモリ。 -
    • -
    • - 仮想メモリ
      - HDD などの補助記憶装置上に仮想的なメモリ領域を確保する。仮想メモリ上と仮想メモリ上の領域の対応付けを行う。 + I/O を含む Task では Blocked Read で読み込みを制御したほうが効果的