Mercurial > hg > Papers > 2014 > masakoha-thesis > final
changeset 32:60146652043c
fix
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 11 Feb 2014 23:58:22 +0900 |
parents | 7d0f128836ab |
children | c662e7e0d5ed |
files | slide/index.html |
diffstat | 1 files changed, 21 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/slide/index.html Tue Feb 11 22:26:06 2014 +0900 +++ b/slide/index.html Tue Feb 11 23:58:22 2014 +0900 @@ -28,21 +28,17 @@ <div align="right">担当教官 : 河野 真治</div> </article> - <article class='smaller'> + <article> <h3>研究背景と目的</h3> <p> 近年のCPUのほとんどはマルチコアであり、それらの性能を引き出すためには並列プログラミングが必須となっている。 - そこで当研究室では、並列プログラミング用フレームワーク、Cerium Task Manager の開発を行い、提供することによって並列プログラミングを容易にしている。 - </p> - <p> - 先行研究では Task の並列化によって、プログラム全体の処理速度は向上している。しかし、ファイル読み込み等の I/O と Task が並列に動作するようにはされていない。 + そこで当研究室では、並列プログラミング用フレームワーク、Cerium 及び Cerium Task Manager の開発を行い、提供することによって並列プログラミングを容易にしている。 </p> <p> - 現状では、ファイルを memory に mapping を行ってから Task が走るようになっているので、I/O と Task が並列に動作しない。 + 先行研究では Task(分割されたファイルに対して行う処理)の並列化によって、プログラム全体の処理速度は向上している。しかし、ファイル読み込み等の I/O処理 と Task が並列に動作するようにはされていない。 </p> <p> - 本研究では I/O と Task が並列に動作するような設計、実装によってプログラム全体の - 並列度、及び処理速度を上げていく。 + 本研究では I/O と Task が並列に動作するような設計、実装によってプログラム全体の並列度、及び処理速度を上げていく。 </p> </article> @@ -51,11 +47,14 @@ <h3>mmapでの実装の問題点</h3> <ul> <li> - mmap で file を読み込むと、file は memory 上にて即座には展開されない。 + mmap は、C 及び C++ で使用できるAPIであり、ファイルを仮想メモリに mapping する API である。 </li> <li> - file が memory に展開されるタイミングは、その file に対して何らかの計算を行うときである。<br><br> - →つまり、Task が走るときに初めて memory に file を格納するので、I/O と Task が分離できない。 + mmap で file を読み込むと、file は実メモリ上にて即座には展開されない。 + </li> + <li> + file が実メモリに展開されるタイミングは、その file に対して何らかの計算を行うときである。<br><br> + →つまり、Task が走るときに初めて実メモリに file を格納するので、I/O と Task が分離できない。 </li> </ul> </article> @@ -116,16 +115,16 @@ <ul> <font size = 5> <li> - code がシンプル (memory を自分自身で malloc せず、read を書いて読み込まなくていいため) + code がシンプル <br>(memory を自分自身で malloc せず、read を書いて読み込まなくていいため) </li> <li> - memory より大きなファイルは開けない + 実メモリより大きなファイルは開けない </li> <li> - read の先読みがOS依存 + 実メモリへの呼び出しがOS依存 </li> <li> - mmap した領域に対して何らかの処理が行われた時に memory に読み込まれる + mmap した領域に対して何らかの処理が行われた時、実メモリに読み込まれる </li> </font> </ul> @@ -149,10 +148,10 @@ 明示的な read </li> <li> - 先読みを自分で書ける(制御できる) + 実メモリへの呼び出しを自分で書ける(制御できる) </li> <li> - memory より大きなファイルを扱える + 実メモリより大きなファイルを扱える </li> </ul> </article> @@ -206,15 +205,15 @@ <li> Task を 1 つずつ生成するのではなく、ブロック単位で生成する。<br> この図では、1 Block 当たり n 個の Task を生成する。<br> - (1つずつ生成すると、生成された Task で memory を圧迫するため) + (1つずつ生成すると、生成された Task で実メモリを圧迫するため) </li> <li> Task 1つ当たりの読み込む領域を L とする。<br> - Blocked Read Task 1つ当たり、memory に格納する大きさは L × n となる。 + Blocked Read Task 1つ当たり、実メモリに格納する大きさは L × n となる。 </li> <li> Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。<br> - (Read Task が格納する前に走ると、まだ格納していない領域を読みこんでしまう。) + (Read Task がファイルを実メモリに格納する前に走ると、まだ格納していない領域を読みこんでしまう。) </li> </ul> </article> @@ -331,10 +330,10 @@ <br> <ul> <li> - mmap より、Blocked Readのほうが % ほど速くなった + mmap より、Blocked Readのほうが約50秒高速化した </li> <li> - I/O と Task の分離が成功した + I/O と Task の分離が成功して並列に動作するようにした </li> </ul>