Mercurial > hg > Papers > 2014 > masakoha-thesis > final
annotate slide/index.html @ 28:933c669d567e
add
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 11 Feb 2014 20:08:48 +0900 |
parents | 9def91a908d6 |
children | f8fc309caf84 |
rev | line source |
---|---|
13 | 1 <!DOCTYPE html> |
2 | |
3 <html> | |
4 <head> | |
5 <title>Presentation</title> | |
15
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
6 |
13 | 7 <meta charset='utf-8'> |
8 <script | |
9 src='./slides.js'></script> | |
10 </head> | |
11 | |
12 <style> | |
13 /* Your individual styles here, or just use inline styles if that’s | |
14 what you want. */ | |
15 | |
16 </style> | |
17 | |
18 <body style='display: none'> | |
19 <section class='slides layout-regular template-default'> | |
20 | |
21 <!-- | |
22 Your slides (<article>s) go here. Delete or comment out the | |
23 slides below. | |
24 --> | |
25 <article > | |
14 | 26 <h1>Cerium による並列処理向け I/O の設計と実装</h1> |
27 <h3 class="title">Masataka Kohagura 12th, February</h3> | |
13 | 28 <div align="right">担当教官 : 河野 真治</div> |
29 </article> | |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
30 |
21 | 31 <article class='smaller'> |
14 | 32 <h3>研究背景と目的</h3> |
13 | 33 <p> |
24 | 34 近年のCPUのほとんどはマルチコアであり、それらの性能を引き出すためには並列プログラミングが必須となっている。 |
35 そこで当研究室では、並列プログラミング用フレームワーク、Cerium Task Manager の開発を行い、提供することによって並列プログラミングを容易にしている。 | |
13 | 36 </p> |
37 <p> | |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
38 先行研究では Task の並列化によって、プログラム全体の処理速度は向上している。しかし、ファイル読み込み等の I/O と Task が並列に動作するようにはされていない。 |
13 | 39 </p> |
40 <p> | |
27 | 41 現状では、ファイルを memory に mapping を行ってから Task が走るようになっているので、I/O と Task が並列に動作しない。 |
21 | 42 </p> |
43 <p> | |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
44 本研究では I/O と Task が並列に動作するような設計、実装によってプログラム全体の |
27 | 45 並列度、及び処理速度を上げていく。 |
13 | 46 </p> |
47 </article> | |
14 | 48 |
27 | 49 |
50 <article> | |
51 <h3>mmapでの実装の問題点</h3> | |
52 <ul> | |
53 <li> | |
54 mmap で file を読み込むと、file は memory 上にて即座には展開されない。 | |
55 </li> | |
56 <li> | |
57 file が memory に展開されるタイミングは、その file に対して何らかの計算を行うときである。<br><br> | |
58 →つまり、Task が走るときに初めて memory に file を格納するので、I/O と Task が分離できない。 | |
59 </li> | |
60 </ul> | |
61 </article> | |
62 | |
63 <!-- | |
13 | 64 <article> |
24 | 65 <h3>Cerium Task Manager の流れ</h3> |
13 | 66 <table border="0" cellpadding="0" cellspacing="0"> |
67 <tbody> | |
68 <tr> | |
15
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
69 <td><img src='images/cerium.png' style="height:350px"></td> |
13 | 70 <td> |
71 <ol> | |
24 | 72 <font size=5> |
73 <li>Taskを生成後、Task Managerにて Task の管理、依存関係のチェック</li> | |
74 <li>TaskList に生成された Task を set </li> | |
75 <li>Task を各 Scheduler に転送</li> | |
13 | 76 <li>並列実行</li> |
24 | 77 </font> |
13 | 78 </ol> |
79 </td> | |
80 </tr> | |
81 </tbody> | |
82 </table> | |
83 </article> | |
27 | 84 --> |
14 | 85 |
13 | 86 <article> |
15
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
87 <h3>並列処理向け I/O の 設計と実装</h3> |
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
88 <br> |
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
89 <ul> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
90 <li>I/O を含む Task の説明</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
91 <li>mmap の説明</li> |
27 | 92 <li>Blocked Read の設計と実装</li> |
28 | 93 <<<<<<< local |
94 <li>IO専用 therad の追加</li> | |
95 ======= | |
96 >>>>>>> other | |
27 | 97 <li>ベンチマーク</li> |
15
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
98 </ul> |
13 | 99 </article> |
15
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
100 |
13 | 101 <article> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
102 <h3>I/O を含む Task の説明</h3> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
103 <br> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
104 <img src='images/includeIOTask.png' style="height:250px"> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
105 <ol> |
27 | 106 <li>file mapping 後、file をある一定の大きさに分割する</li> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
107 <li>分割した file に対して、それぞれ計算を行う</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
108 <li>計算した結果を集計する</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
109 </ol> |
16
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
110 </article> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
111 |
28 | 112 <<<<<<< local |
113 ======= | |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
114 |
28 | 115 >>>>>>> other |
16
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
116 <article> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
117 <h3>mmap の説明</h3> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
118 <table border="0" cellpadding="0" cellspacing="0"> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
119 <tbody> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
120 <tr> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
121 <td><img src='images/mmap.png' style="height:350px"></td> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
122 <td> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
123 <ul> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
124 <font size = 5> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
125 <li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
126 code がシンプル (memory を自分自身で malloc せず、read を書いて読み込まなくていいため) |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
127 </li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
128 <li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
129 memory より大きなファイルは開けない |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
130 </li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
131 <li> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
132 read の先読みがOS依存 |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
133 </li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
134 <li> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
135 mmap した領域に対して何らかの処理が行われた時に memory に読み込まれる |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
136 </li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
137 </font> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
138 </ul> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
139 </td> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
140 </tr> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
141 </tbody> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
142 </table> |
16
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
143 |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
144 <ul> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
145 </ul> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
146 </article> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
147 |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
148 <article> |
27 | 149 <h3>Blocked Read の設計</h3> |
16
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
150 <br> |
18
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
151 <img src='images/divide_read.png' style="height:250px"> |
16
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
152 <br> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
153 |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
154 <ul> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
155 <li> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
156 明示的な read |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
157 </li> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
158 <li> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
159 先読みを自分で書ける(制御できる) |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
160 </li> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
161 <li> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
162 memory より大きなファイルを扱える |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
163 </li> |
56cd6800acb5
write slide No.11 & add images
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
15
diff
changeset
|
164 </ul> |
13 | 165 </article> |
15
9b071b32e3de
add some files and write slide
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
166 |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
167 <!-- |
17
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
168 <article> |
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
169 <h3>divide read の実装(1)</h3> |
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
170 <br> |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
171 <h3 class="yellow">Read Task の ブロック化</h3> |
17
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
172 <pre> |
18
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
173 program_run(TaskManager *manager, char *filename) |
17
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
174 { |
18
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
175 FileReadPtr fr = (FileReadPtr)manager->allocate(sizeof(FileRead)); |
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
176 fr->self = fr; |
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
177 fr->fd = fd; |
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
178 ・・・ |
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
179 read = manager->create_task(RUN_READ_BLOCKS, |
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
180 (memaddr)&fr->self, sizeof(memaddr),read_text,fr->filesize); |
17
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
181 |
18
e735ac7509c6
add image spawn not blocks
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
182 read->spawn(); |
17
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
183 } |
2d1060de4dfe
write divide read の実装
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
184 </pre> |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
185 </article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
186 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
187 <article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
188 <h3>divide read の実装(2)</h3> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
189 <br> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
190 <ul> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
191 <li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
192 divide read Task の実行の際に、ブロック単位で Task の生成、実行を行う。 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
193 </li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
194 <li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
195 1つずつ生成すると Task の数だけ memory address が取られるために肥大化してしまう。 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
196 </li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
197 <li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
198 しかしブロック単位で生成すると、同じ変数を使用しているので memory の節約になる。 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
199 </li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
200 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
201 </li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
202 </ul> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
203 </article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
204 --> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
205 |
28 | 206 <<<<<<< local |
24 | 207 <article class='smaller'> |
27 | 208 <h3>Blocked Read の実装</h3> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
209 <br> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
210 <img src='images/blockread.png' style="height:250px"> |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
211 <br> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
212 |
25
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
213 <ul> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
214 <li> |
25
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
215 Task を 1 つずつ生成するのではなく、ブロック単位で生成する。<br> |
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
216 この図では、1 Block 当たり n 個の Task を生成する。<br> |
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
217 (1つずつ生成すると、生成された Task で memory を圧迫するため) |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
218 </li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
219 <li> |
25
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
220 Task 1つ当たりの読み込む領域を L とする。<br> |
27 | 221 Blocked Read Task 1つ当たり、memory に格納する大きさは L × n となる。 |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
222 </li> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
223 <li> |
27 | 224 Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。<br> |
25
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
225 (Read Task が格納する前に走ると、まだ格納していない領域を読みこんでしまう。) |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
226 </li> |
25
3385af0bca0f
write block read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
227 </ul> |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
228 </article> |
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
229 |
28 | 230 <article class = 'smaller'> |
231 <h3>I/O 専用の therad を追加 (1/2)</h3> | |
232 <br> | |
233 <img src='images/SPEANYblockread.png' style="height:400px"> | |
234 <ol> | |
235 <li>file mapping 後、file をある一定の大きさに分割する</li> | |
236 <li>分割した file に対して、それぞれ計算を行う</li> | |
237 <li>計算した結果を集計する</li> | |
238 </ol> | |
239 </article> | |
240 | |
241 <article> | |
242 <h3>I/O 専用の therad を追加 (2/2)</h3> | |
243 <br> | |
244 <img src='images/IO0blockread.png' style="height:250px"> | |
245 <ol> | |
246 <li>file mapping 後、file をある一定の大きさに分割する</li> | |
247 <li>分割した file に対して、それぞれ計算を行う</li> | |
248 <li>計算した結果を集計する</li> | |
249 </ol> | |
250 </article> | |
251 | |
23
a452d8f104bd
divede read rename to Block Read
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
21
diff
changeset
|
252 <article> |
27 | 253 <h3>ベンチマーク(1/3)</h3> |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
254 <br> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
255 <h3 class="yellow">実験環境</h3> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
256 <ul> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
257 <li> Mac OS X 10.9.1</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
258 <li> 2*2.66 GHz 6-Core Intel Xeon</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
259 <li> Memory 16GB 1333MHz DDR3</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
260 <li> HHD 1TB</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
261 <li> file size : 約 10 GB</li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
262 <li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
263 "doing" という文字列が file 内にいくつあるか計算<br> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
264 ("doing" は 25,961,792 個存在する) |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
265 </li> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
266 </ul> |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
267 </article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
268 |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
269 <article class = 'smaller'> |
27 | 270 <h3>ベンチマーク(2/3)</h3> |
271 <ul> | |
272 <li> | |
273 file が memory に残っていない状態での測定 | |
274 </li> | |
275 <li> | |
276 one task size 128KByte | |
277 </li> | |
278 <li> | |
279 Task Blocks 48 | |
280 </li> | |
281 </ul> | |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
282 <br> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
283 <h3 class="yellow">結果</h3> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
284 <table border="0" cellpadding="0" cellspacing="0"> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
285 <tbody> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
286 <tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
287 <td>read mode</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
288 <td>cpu num</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
289 <td>min time(s)</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
290 <td>MAX time(s)</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
291 <td>ave time(s)</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
292 </tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
293 <tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
294 <td>mmap</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
295 <td>4</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
296 <td>135.2</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
297 <td>148.9</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
298 <td>142.3</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
299 </tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
300 <tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
301 <td>BRead</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
302 <td>4</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
303 <td>94.5</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
304 <td>109.2</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
305 <td>98.8</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
306 </tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
307 |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
308 <tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
309 <td>mmap</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
310 <td>12</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
311 <td>147.0</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
312 <td>181.8</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
313 <td>154.6</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
314 </tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
315 <tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
316 <td>BRead</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
317 <td>12</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
318 <td>91.6</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
319 <td>117.5</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
320 <td>99.2</td> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
321 </tr> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
322 </tbody> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
323 </table> |
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
324 |
27 | 325 </article> |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
326 |
28 | 327 |
328 <article> | |
329 <h3>まとめ</h3> | |
330 <br> | |
331 <ul> | |
332 <li> | |
333 mmap より、Blocked Readのほうが % ほど速くなった | |
334 </li> | |
335 <li> | |
336 I/O と Task の分離が成功した | |
337 </li> | |
338 </ul> | |
339 | |
340 </article> | |
341 | |
342 <article> | |
343 <h3>大学院に進学してしたいこと</h3> | |
344 <br> | |
345 <ul> | |
346 <li> | |
347 さらなる 並列処理向け I/O の動作を改善 | |
348 </li> | |
349 <li> | |
350 I/O を利用した、マルチコアソフトウェアシンセサイザーを設計 | |
351 </li> | |
352 </ul> | |
353 | |
354 </article> | |
355 | |
356 | |
357 <article> | |
358 <h3>大学院に進学してしたいこと</h3> | |
359 <br> | |
360 <ul> | |
361 <li> | |
362 さらなる 並列処理向け I/O の動作を改善 | |
363 </li> | |
364 <li> | |
365 I/O を利用した、マルチコアソフトウェアシンセサイザーを設計 | |
366 </li> | |
367 </ul> | |
368 | |
369 </article> | |
370 | |
371 <article> | |
372 <h3>マルチコアソフトウェアシンセサイザーの設計</h3> | |
373 <br> | |
374 <ul> | |
375 <li> | |
376 作曲をする際にはマシンパワーが必要となることが多い。 | |
377 </li> | |
378 <li> | |
379 ソフトウェアシンセサイザー(以下、シンセサイザー)を使用する際にマシンパワーが必要となる。 | |
380 </li> | |
381 <li> | |
382 シンセサイザーは1つだけで立ち上げる物ではなく、複数立ち上げる物なので、1つ1つの負荷を抑えることがキーポイントとなる。 | |
383 </li> | |
384 <li> | |
385 シンセサイザーは様々なフィルターをかけることで音を作っていくのだが、フィルターを重ねても動作軽量なプログラムを作る。 | |
386 </li> | |
387 </ul> | |
388 </article> | |
389 | |
390 <article> | |
391 <h3>付録 : Cerium Task の生成の例(1)</h3> | |
392 <p>(例題) multiply : 2つの数を掛け算するプログラム</p> | |
393 <h3 class="yellow">main.cc の記述</h3> | |
394 <pre> | |
395 float* A, B, C; | |
396 // Task の宣言 | |
397 HTaskPtr multiply = manager->create_task(MULTIPLY_TASK); | |
398 // Task を実行する デバイスの設定 | |
399 multiply->set_cpu(SPE_ANY); | |
400 // Task に入力データのアドレスを追加 | |
401 multiply->set_inData(0, (memaddr)A, sizeof(float)*length); | |
402 multiply->set_inData(1, (memaddr)B, sizeof(float)*length); | |
403 // Task に出力データのアドレスを追加 | |
404 multiply->set_outData(0, (memaddr)C, sizeof(float)*length); | |
405 // Task へ値を1つだけ渡す | |
406 multiply->set_param(0,length); | |
407 // Task を TaskList に set する | |
408 multiply->spawn(); </pre> | |
409 </article> | |
410 | |
411 <article> | |
412 <h3>付録 : Cerium Task の生成(2)</h3> | |
413 <br> | |
414 <h3 class="yellow">Task の記述</h3> | |
415 <pre> | |
416 static int | |
417 multiply(SchedTask *s,void *rbuf, void *wbuf) | |
418 { | |
419 float *A,*B,*C | |
420 // 登録した inData を取得 | |
421 A = (float*)s->get_input(rbuf,0); | |
422 B = (float*)s->get_input(rbuf,1); | |
423 // 登録した outData を取得 | |
424 C = (float*)s->get_output(wbuf,0); | |
425 // 登録した param を取得 | |
426 long length=(long)s->get_param(0); | |
427 for (int i=0;i < length;i++) { | |
428 C[i] = A[i] * B[i]; | |
429 } | |
430 return 0; | |
431 } </pre> | |
432 </article> | |
433 | |
434 <article> | |
435 <h3>付録 : mmap での I/O の実装</h3> | |
436 <br> | |
437 <h3 class="yellow">mmap の記述</h3> | |
438 <pre> | |
439 mmap(SchedTask *s, void *in, void *out) | |
440 { | |
441 // FileReadPtr : File情報などを格納している構造体 | |
442 FileReadPtr fr = (FileReadPtr)in; | |
443 int map = MAP_PRIVATE; | |
444 | |
445 fr->read_text = | |
446 (char*)mmap(NULL,fr->filesize,PROT_READ,map,fr->fd,(off_t)0); | |
447 } | |
448 </pre> | |
449 <ul> | |
450 <li> | |
451 PROT_READ : 読み込み可 | |
452 </li> | |
453 <li> | |
454 MAP_PRIVATE : 読み込んだ領域に対して書き込みが起こると複製し、複製した領域に対して書き込みを行う | |
455 </li> | |
456 </ul> | |
457 </article> | |
458 | |
459 ======= | |
460 >>>>>>> other | |
461 <article class='smaller'> | |
462 <<<<<<< local | |
463 <h3>付録 : Block Read の実装(1/2)</h3> | |
464 ======= | |
465 <h3>Blocked Read の実装</h3> | |
466 >>>>>>> other | |
467 <br> | |
468 <<<<<<< local | |
469 <h3 class="yellow">Block Read の実装</h3> | |
470 <pre> | |
471 HTaskPtr t_read = manager->create_task(READ_TASK); | |
472 t_read->set_cpu(read_spe_cpu); | |
473 // 読み出すファイルの格納場所を設定 | |
474 t_read->set_outData(0, | |
475 w->file_mmap + w->task_spawned * w->division_size, | |
476 w->task_blocks * w->division_size); | |
477 // ファイルディスクリプタの受け渡し | |
478 t_read->set_param(0,w->fd); | |
479 // ファイル読み込みの始点 | |
480 t_read->set_param(1,w->task_spawned*w->division_size); | |
481 ======= | |
482 <img src='images/blockread.png' style="height:250px"> | |
483 <br> | |
484 >>>>>>> other | |
485 | |
486 <<<<<<< local | |
487 // run_tasks(manager,w, w->task_blocks, t_read, t_next, w->division_size + w->extra_len); | |
488 // ここで、ファイルに対して何らかの計算を掛けるような Task を設定する | |
489 run_tasks(manager,w, w->task_blocks,・・・ ); | |
490 | |
491 // ファイル読み込みの終点 | |
492 t_read->set_param(2,w->task_spawned*w->division_size + w->extra_len); | |
493 | |
494 t_read->spawn(); | |
495 | |
496 </pre> | |
497 ======= | |
498 <ul> | |
499 <li> | |
500 Task を 1 つずつ生成するのではなく、ブロック単位で生成する。<br> | |
501 この図では、1 Block 当たり n 個の Task を生成する。<br> | |
502 (1つずつ生成すると、生成された Task で memory を圧迫するため) | |
503 </li> | |
504 <li> | |
505 Task 1つ当たりの読み込む領域を L とする。<br> | |
506 Blocked Read Task 1つ当たり、memory に格納する大きさは L × n となる。 | |
507 </li> | |
508 <li> | |
509 Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。<br> | |
510 (Read Task が格納する前に走ると、まだ格納していない領域を読みこんでしまう。) | |
511 </li> | |
512 </ul> | |
513 >>>>>>> other | |
514 </article> | |
515 | |
516 <article> | |
517 <<<<<<< local | |
518 <h3>付録 : Block Read の実装(2/2)</h3> | |
519 ======= | |
520 <h3>ベンチマーク(1/3)</h3> | |
521 >>>>>>> other | |
522 <br> | |
523 <<<<<<< local | |
524 <h3 class="yellow"> Block Read の記述</h3> | |
525 <pre> | |
526 static int | |
527 read_task(SchedTask *s, void *rbuf, void *wbuf) | |
528 { | |
529 long fd = (long)s->get_param(0); | |
530 long start_read_position = (long)s->get_param(1); | |
531 long end_read_position = (long)s->get_param(2); | |
532 char *read_text = (char*)s->get_output(wbuf,0); | |
533 long read_size = end_read_position - start_read_position; | |
534 | |
535 pread(fd, read_text, read_size , start_read_position); | |
536 return 0; | |
537 } | |
538 </pre> | |
539 ======= | |
540 <h3 class="yellow">実験環境</h3> | |
541 <ul> | |
542 <li> Mac OS X 10.9.1</li> | |
543 <li> 2*2.66 GHz 6-Core Intel Xeon</li> | |
544 <li> Memory 16GB 1333MHz DDR3</li> | |
545 <li> HHD 1TB</li> | |
546 <li> file size : 約 10 GB</li> | |
547 <li> | |
548 "doing" という文字列が file 内にいくつあるか計算<br> | |
549 ("doing" は 25,961,792 個存在する) | |
550 </li> | |
551 </ul> | |
552 >>>>>>> other | |
553 </article> | |
554 | |
555 <<<<<<< local | |
556 ======= | |
557 <article class = 'smaller'> | |
558 <h3>ベンチマーク(2/3)</h3> | |
559 <ul> | |
560 <li> | |
561 file が memory に残っていない状態での測定 | |
562 </li> | |
563 <li> | |
564 one task size 128KByte | |
565 </li> | |
566 <li> | |
567 Task Blocks 48 | |
568 </li> | |
569 </ul> | |
570 <br> | |
571 <h3 class="yellow">結果</h3> | |
572 <table border="0" cellpadding="0" cellspacing="0"> | |
573 <tbody> | |
574 <tr> | |
575 <td>read mode</td> | |
576 <td>cpu num</td> | |
577 <td>min time(s)</td> | |
578 <td>MAX time(s)</td> | |
579 <td>ave time(s)</td> | |
580 </tr> | |
581 <tr> | |
582 <td>mmap</td> | |
583 <td>4</td> | |
584 <td>135.2</td> | |
585 <td>148.9</td> | |
586 <td>142.3</td> | |
587 </tr> | |
588 <tr> | |
589 <td>BRead</td> | |
590 <td>4</td> | |
591 <td>94.5</td> | |
592 <td>109.2</td> | |
593 <td>98.8</td> | |
594 </tr> | |
595 | |
596 <tr> | |
597 <td>mmap</td> | |
598 <td>12</td> | |
599 <td>147.0</td> | |
600 <td>181.8</td> | |
601 <td>154.6</td> | |
602 </tr> | |
603 <tr> | |
604 <td>BRead</td> | |
605 <td>12</td> | |
606 <td>91.6</td> | |
607 <td>117.5</td> | |
608 <td>99.2</td> | |
609 </tr> | |
610 </tbody> | |
611 </table> | |
612 | |
613 </article> | |
614 | |
27 | 615 <article class = 'smaller'> |
616 <h3>ベンチマーク(3/3)</h3> | |
26
54591c145fec
add experiment result
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
617 <h3 class="yellow">考察</h3> |
27 | 618 <ul> |
619 <li> | |
620 mmap より、Blocked Readのほうが % ほど速くなった | |
621 </li> | |
622 <li> | |
623 I/O と Task が分離できた。 | |
624 </li> | |
625 <li> | |
626 </li> | |
627 </ul> | |
628 | |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
629 </article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
630 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
631 <article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
632 <h3>大学院に進学してしたいこと</h3> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
633 <br> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
634 <ul> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
635 <li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
636 さらなる 並列処理向け I/O の動作を改善 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
637 </li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
638 <li> |
21 | 639 I/O を利用した、マルチコアソフトウェアシンセサイザーを設計 |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
640 </li> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
641 </ul> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
642 |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
643 </article> |
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
644 |
27 | 645 <article> |
646 <h3>マルチコアソフトウェアシンセサイザーの設計</h3> | |
647 <br> | |
648 <ul> | |
649 <li> | |
650 作曲をする際にはマシンパワーが必要となることが多い。 | |
651 </li> | |
652 <li> | |
653 ソフトウェアシンセサイザー(以下、シンセサイザー)を使用する際にマシンパワーが必要となる。 | |
654 </li> | |
655 <li> | |
656 シンセサイザーは1つだけで立ち上げる物ではなく、複数立ち上げる物なので、1つ1つの負荷を抑えることがキーポイントとなる。 | |
657 </li> | |
658 <li> | |
659 シンセサイザーは様々なフィルターをかけることで音を作っていくのだが、フィルターを重ねても動作軽量なプログラムを作る。 | |
660 </li> | |
661 </ul> | |
662 </article> | |
28 | 663 >>>>>>> other |
19
36958c5e0b90
add slide pages 8-17
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
18
diff
changeset
|
664 |
13 | 665 </body> |
666 </html> | |
27 | 667 </ul> |
668 | |
669 </article> | |
670 | |
671 </body> | |
672 </html> |