comparison paper/datasegment.ind @ 8:e62c3a665813

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 11 Aug 2011 00:11:16 +0900
parents f5982d0deab5
children 504aea3b42be
comparison
equal deleted inserted replaced
7:f5982d0deab5 8:e62c3a665813
9 やレーシングゲームを記述するのに十分な性能を持っており、台数効果も満足いくものと 9 やレーシングゲームを記述するのに十分な性能を持っており、台数効果も満足いくものと
10 なっている。しかし、この開発により Ceirum の問題点も明らかになってきている。 10 なっている。しかし、この開発により Ceirum の問題点も明らかになってきている。
11 本論文では、今まので Cerium の構成と問題点を記述し、新しい TaskManager の設計 11 本論文では、今まので Cerium の構成と問題点を記述し、新しい TaskManager の設計
12 方針を述べる。 12 方針を述べる。
13 13
14 --Ceriumでの並列プログラミングの問題点
14 15
16 Cerium では、ゲームプログラミング及び、sort や word count などの例題を書いたが、いくつかの問題点が明らかになっている。
15 17
18 Task の取り扱うデータ型が示されない
19 Task 自体は簡単だが Task を構成する方法が繁雑
20 Open CL に比べても構文的に複雑
21 Task の種類が複雑
22 Task の依存関係の記述がデータの依存関係と無関係
23 Task Scheduler が大きくメモリを圧迫
24
25 などである。実装方法的にもいくつか問題がある。
16 26
17 --Ceriumでの並列プログラミングの問題点 27 C++ と Task 記述の相性が良くない
28 Task Manager が複雑になりすぎ
29
30 Task Scheduler は Queue からTaskを取り出して一つ一つパイプライン実行を行うインタプリタ的な構造を持っている。これが、Task Manager 自体を複雑にする原因になっている。
18 31
19 --Continuation based C との相性 32 --Continuation based C との相性
20 33
34 当研究室で開発している Continuation based C は、並列処理の基本単位である Task に対応した code segment を持っている。これを Cerium に対応させようとすると以下のような問題がある。
35
36 Inteface の型が整合しないとTask同士を接続できない
37 Scheduler への接続が特定のInterfaceを要求する
38
39 どちらも、Code segment の interface (入力と出力) は、決まった形であるべきだと言うことを示している。しかし、Task 自体は様々なデータを取り扱う必要がある。ここに矛盾がある。この矛盾を解決するためには、データ側も基本単位を導入するべきだいうことになる。
40
41 Data Segment は、Code segment の双対概念であり、C の構造体に相当する。CbC の Code segment は、
42
43 input interface (関数の引数の型)
44 output interface (goto 文の引数の型)
45
46 を持っているが、これらを
47
48 input datasegments
49 output datasegments
50
51 に置き換える。つまり、Code segment は、複数の動的に割り当てられた Data segment を持っている。これらは、標準的な構造を持っているので、Interface の型の不整合を避けることができる。
52
53 Data segment は型を持っていて、その型は実行時に一致している必要がある。分散通信を考えて、Data segment の型は MessagePack \cite{MessagePack} を用いる。
54
21 --C++ との相性 55 --C++ との相性
56
57 Cerium の Task は、Cell のspuとppuで共通であり、同じ Task ID で管理されている。これは C++ のオブジェクトとは関係ない。Cerium の開発でわかったのは、Cerium のデータは、Actor の become 的\cite{Act3} に書き換えられるということである。
58
59
22 60
23 --Data Segment を用いた Cerium の再設計 61 --Data Segment を用いた Cerium の再設計
24 62
25 ---Data Segment の型 63 ---Data Segment の型
26 64