annotate paper/cerium.tex @ 3:423b4d15e248

fix
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Wed, 06 Nov 2013 20:31:56 +0900
parents b7c8a956c10b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
1 \section{Cerium における Task の生成}\label{section:cerium}
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
2 Cerium では,user が createtask を行い、input data や依存関係の設定し spawn を行うと TaskManager で Task が生成される。
2
b7c8a956c10b write benchmark and conclusion
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
3 spawn の代わりに新たに用意した iterate を利用することで,Data 並列実行を行う Task として登録される。
3
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
4 Task の依存関係が解消されて実行可能になった Task は ActiveTaskList に移される。
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
5 さらに、Scheduler に転送しやすい TaskList に変換してから Task Manager から各 Scheduler に転送される。
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
6
2
b7c8a956c10b write benchmark and conclusion
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
7 以下に Data 並列実行を行う Task を生成する例題を示す。
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 input data を二つ用意し、 input 同士を乗算し、 output に格納する multiply という例題となる。
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 \begin{Verbatim}[fontsize=\footnotesize,xleftmargin=1cm]
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 void
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 multiply_init
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 (HTaskPtr twice, int *i_data, int *o_data) {
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 multiply =
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 manager->create_task(MULTIPLY_TASK);
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 // MULTIPLY_TASK is task id(enum)
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 multiply->set_inData(0, i_data1,
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 sizeof(int)*length);
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 multiply->set_inData(1, i_data2,
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 sizeof(int)*length);
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 multiply->set_outData(0, o_data,
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 sizeof(int)*length);
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 multiply->set_cpu(SPE_ANY);
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
23 multiply->iterate(length);
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 }
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \end{Verbatim}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 \begin{tiny}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 \begin{table}[ht]
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 \begin{center}
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
30 \caption{Task 生成における API}
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 \label{table:create_taskAPI}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 \scalebox{0.5}[0.9]
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 \small
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 \begin{tabular}[t]{c|l}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 \hline
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 create\_task& Task を生成する \\
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 \hline
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 set\_inData & Task への入力データのアドレスを追加 \\
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 \hline
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
40 set\_outData & Task からの出力データのアドレスを追加 \\
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 \hline
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 set\_cpu & Task を実行するデバイスの設定 \\
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 \hline
2
b7c8a956c10b write benchmark and conclusion
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
44 iterate&Data 並列実行を行う Task として ActiveTaskList に登録 \\
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 \hline
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 \end{tabular}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 \end{center}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \end{table}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 \end{tiny}
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
50
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 \begin{tiny}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 \begin{table}[ht]
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 \begin{center}
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
54 \caption{Task 側で使用する API}
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
55 \label{table:created_taskAPI}
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
56 \scalebox{0.5}[0.9]
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 \small
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 \begin{tabular}[t]{c|l}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 \hline
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
60 get\_input&Scheduler から set\_inData したアドレスを取得\\
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 \hline
1
f4b3de446113 write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
62 get\_output&Scheduler から set\_outData したアドレスを取得\\
0
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 \hline
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 \end{tabular}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 \end{center}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 \end{table}
9e88a388ec83 first commit
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 \end{tiny}