Mercurial > hg > Papers > 2014 > masakoha-thesis > final
diff slide/index.html @ 19:36958c5e0b90
add slide pages 8-17
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 31 Jan 2014 23:49:02 +0900 |
parents | e735ac7509c6 |
children | 7b4609c77ac1 |
line wrap: on
line diff
--- a/slide/index.html Thu Jan 30 19:55:28 2014 +0900 +++ b/slide/index.html Fri Jan 31 23:49:02 2014 +0900 @@ -27,6 +27,7 @@ <h3 class="title">Masataka Kohagura 12th, February</h3> <div align="right">担当教官 : 河野 真治</div> </article> + <article > <h3>研究背景と目的</h3> <p> @@ -40,6 +41,16 @@ </p> </article> + <article > + <h3>Cerium とは</h3> + <p> + </p> + <p> + </p> + <p> + </p> + </article> + <article> <h3>Cerium の流れ</h3> <table border="0" cellpadding="0" cellspacing="0"> @@ -187,10 +198,11 @@ </ul> </article> +<!-- <article> <h3>divide read の実装(1)</h3> <br> - <h3 class="yellow">Read Task の生成</h3> + <h3 class="yellow">Read Task の ブロック化</h3> <pre> program_run(TaskManager *manager, char *filename) { @@ -204,21 +216,113 @@ read->spawn(); } </pre> - <p> - divide read Task の実行の際に、ブロック単位で Task の生成、実行を行う。 - </p> + </article> + + <article> + <h3>divide read の実装(2)</h3> + <br> + <ul> + <li> + divide read Task の実行の際に、ブロック単位で Task の生成、実行を行う。 + </li> + <li> + 1つずつ生成すると Task の数だけ memory address が取られるために肥大化してしまう。 + </li> + <li> + しかしブロック単位で生成すると、同じ変数を使用しているので memory の節約になる。 + </li> + + </li> + </ul> + </article> +--> + + <article> + <h3>divide read の実装(1)</h3> + <br> + <h3 class="yellow">divide Read の実装</h3> + <pre> +// 生成するTaskが何番目か +read->set_param(0,(long)w->read_task_number); +// 1つの Read Task で読み込む量 +read->set_param(1,(long)w->read_division_size); +// read_left_size : 残り読み込み量 +if(w->read_left_size <= w->read_division_size){ + read->set_param(2,(long)w->read_left_size); +}else{ + read->set_param(2,(long)w->read_division_size); +} +// ファイルディスクリプタを渡す +read->set_param(3,(long)w->fd); + +//生成するTaskが何番目か +read->set_outData + (0,w->file_mmap + w->read_task_number*w->read_division_size, + w->read_division_size); +</pre> </article> <article> <h3>divide read の実装(2)</h3> <br> - <h3 class="yellow">ブロック単位で生成、実行を行う理由</h3> - <ul> - <li> + <h3 class="yellow">divide Read の記述</h3> + <pre> +static int +read_task(SchedTask *s, void *rbuf, void *wbuf) +{ + long task_number = (long)s->get_param(0); + long division_size = (long)s->get_param(1); + long read_size = (long)s->get_param(2); + long fd = (long)s->get_param(3); + + char *read_text = (char*)s->get_output(wbuf,0); + + pread(fd, read_text, (long)read_size , division_size*task_number); + + return 0; +} +</pre> + </article> - </li> + <article> + <h3>divide read を実装した例題</h3> + <br> + <ul> + <li> + Boyer Moore String Search Algorithm を使用した文字列検索 + </li> + <li> + 検索対象の文字列が、あるファイルの中にいくつ存在するかカウントする例題 + </li> </ul> + </article> + <article> + <h3>ベンチマーク</h3> + <br> + <h3 class="yellow">考察</h3> + </article> + + <article> + <h3>まとめ</h3> + <br> + </article> + + <article> + <h3>大学院に進学してしたいこと</h3> + <br> + <ul> + <li> + さらなる 並列処理向け I/O の動作を改善 + </li> + <li> + 動作の軽いソフトウェアシンセサイザーを Cerium で実装 + </li> + </ul> + + </article> + + </body> </html>