# HG changeset patch # User Yuhi TOMARI # Date 1424198944 -32400 # Node ID 23baf2b3eff670c91c7c9cb11b1ababfb960628c # Parent a41beec3553ef26f20048622f397250fed9fc892 conclusion diff -r a41beec3553e -r 23baf2b3eff6 slide/blank.html --- a/slide/blank.html Wed Feb 18 03:27:34 2015 +0900 +++ b/slide/blank.html Wed Feb 18 03:49:04 2015 +0900 @@ -837,11 +837,59 @@

まとめ

+

+ 本研究室で開発している並列プログラミングフレームワーク、Cerium を用いてマルチプラットフォームに対応した + プログラミングフレームワークに関する研究を行った。 +

+

マルチプラットフォームへの対応として、以下のことを行った。

+

今後の課題

+
+ +
+

DataDependency

+

+ 様々なベンチマークを行ったが、特に Sort や WordCount の例題で + Task 生成部分の記述が複雑になるという問題が明らかになった。 +

+

+ 例題特有の依存関係と Task を段階的に生成していくための依存関係の両方を記述しなければならず、 + その部分が非常に煩雑になっている。 +

+

+ これは Task 自体に依存関係を設定している事が原因と考えられる。 + OpenCL や CUDA ではデータの依存関係(DataDependency)により暗黙的に Task 間の依存関係を設定している。 + Cerium でも DataDependency により依存関係を記述できることが望ましい。 +

+ +
+

GpuScheduler のパイプラインの改良

+

+ GpuScheduler のパイプラインループ部分が複雑で、可読性を落としている。 + TaskList からパラメタを読み出し、GPU の CommandQueue を操作する処理までループに入っており、 + メインループの中に復数のループ文があり、処理が複雑になっている。 +

+

+ 現状のように大きなループの中でフレームワークの API を呼び出すのではなく、 + マルチコア CPU のパイプラインのように、SchedTask を使用することが望ましい。 + Gpu 用の SchedTask を作り、SchedTask 内部の read, write, exec の部分で + GPU を制御を行う。 +

+
+