Mercurial > hg > Papers > 2015 > yuhi-master
comparison paper/conclusion.tex @ 37:7c5bf9ec7eb3
conclusion.but should fix.
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 16 Feb 2015 02:15:42 +0900 |
parents | 79d16cee0afd |
children | 05add77d93b2 |
comparison
equal
deleted
inserted
replaced
36:8d128c5feb47 | 37:7c5bf9ec7eb3 |
---|---|
2 | 2 |
3 \section{まとめ} | 3 \section{まとめ} |
4 本研究室で開発している Cerium を用いて、 | 4 本研究室で開発している Cerium を用いて、 |
5 マルチプラットフォーム対応並列プログラミングフレームワークに関する研究を行った。 | 5 マルチプラットフォーム対応並列プログラミングフレームワークに関する研究を行った。 |
6 | 6 |
7 マルチプラットフォームへの対応として、マルチコア CPU と GPU における実行を可能にした。 | 7 マルチコア CPU や GPU といったマルチプラットフォームなアーキテクチャ上でリソースを有効活用するには、 |
8 マルチコア CPU は SynchronizedQueue 、 GPU は OpenCL と CUDA を用いて対応した。 | 8 それぞれのプラットフォームに対して適した形でプログラムが並列に動作できるようチューニングする必要がある。 |
9 更に、 Blocked Read による並列処理向けのI/Oの実装を行った。 | 9 しかしこれらのチューニングは非常に複雑になる。 |
10 これらの追加した機能を WordCount 、FFT 、 Sort を例題に性能を測定できた。 | 10 動作させたいプラットフォームに対応した、適切なチューニングを行えるフレームワークが必要である。 |
11 | 11 |
12 ベンチマークの結果から、GPU による並列処理を行う場合データ並列による実行が不可欠であることがわかった。 | 12 Cerium では Scheduler がパイプラインの機構を持っており、Task はパイプラインに沿って実行されている。 |
13 Scheduler が受信した Task は既に TaskManager が依存関係を解決しているため、実行順序は任意で良く、パイプラインによる実行が可能となっている。 | |
14 Cerium はプログラムの様々なレベルでパイプライン処理を行っており、 | |
15 WordCount のようなシンプルな問題でも並列化することで性能向上が確認できた。 | |
16 | |
17 マルチコア CPU への対応として、 SynchronizedQueue を用いた機構を実装し、並列実行を可能にした。 | |
18 WordCount と Sort による測定の結果、高い並列度を維持出来ていることを確認した。 | |
19 また、より高い性能を持つ計算機で測定したところ、速度の向上を確認できた。 | |
20 | |
21 OpenCL と CUDA を用いて GPGPU への対応を行った。 | |
22 WordCount による測定を行ったが、データ並列実行をサポートすることで飛躍的な性能を確認できた。 | |
23 SIMD 型であることやループ命令を苦手とするといった理由から、 | |
24 GPU における演算はデータ並列による実行をサポートしなければ性能が出ない事がわかった。 | |
25 Cerium においてプログラマは Task を記述し、 | |
26 Input データを用意した後はデータ並列用の API で Task を spawn することでデータ並列用の Task を生成する。 | |
27 TaskManager はプログラマが記述した単一の Task を複数生成し、受け取ったデータ(Input)に対しその Task を割り当てる。 | |
28 生成した複数の Task を並列実行する事でデータ並列実行を実現した。 | |
13 また、GPU は SharedMemory でないため、入出力がネックになる場合が多い。 | 29 また、GPU は SharedMemory でないため、入出力がネックになる場合が多い。 |
14 それらのオーバヘッドを吸収するために GPU 制御のコマンドはパイプライン形式で実行していくのが望ましい。 | 30 それらのオーバヘッドを吸収するために GPU 制御のコマンドはパイプライン形式で実行していくのが望ましい。 |
15 | 31 |
32 更に、 Blocked Read による並列処理向けのI/Oの実装を行った。 | |
33 I/O 専用の Thread を追加し、Task が割り込みが起きた際のオーバーヘッドを減らすことに成功した。 | |
34 一般的なfile open である mmap と read の測定も行い、BlockedRead を含めたそれぞれの読み込みに対して、 | |
35 どのような状況でより性能を発揮できるのか考察を行った。 | |
36 | |
16 \section{今後の課題} | 37 \section{今後の課題} |