Mercurial > hg > Members > kokubo > 2013-mid-thesis
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 |
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 | 4 Task の依存関係が解消されて実行可能になった Task は ActiveTaskList に移される。 |
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 | 8 input data を二つ用意し、 input 同士を乗算し、 output に格納する multiply という例題となる。 |
9 \begin{Verbatim}[fontsize=\footnotesize,xleftmargin=1cm] | |
10 void | |
11 multiply_init | |
12 (HTaskPtr twice, int *i_data, int *o_data) { | |
13 multiply = | |
14 manager->create_task(MULTIPLY_TASK); | |
15 // MULTIPLY_TASK is task id(enum) | |
16 multiply->set_inData(0, i_data1, | |
17 sizeof(int)*length); | |
18 multiply->set_inData(1, i_data2, | |
19 sizeof(int)*length); | |
20 multiply->set_outData(0, o_data, | |
21 sizeof(int)*length); | |
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 | 24 } |
25 \end{Verbatim} | |
26 | |
27 \begin{tiny} | |
28 \begin{table}[ht] | |
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 | 31 \label{table:create_taskAPI} |
32 \scalebox{0.5}[0.9] | |
33 \small | |
34 \begin{tabular}[t]{c|l} | |
35 \hline | |
36 create\_task& Task を生成する \\ | |
37 \hline | |
38 set\_inData & Task への入力データのアドレスを追加 \\ | |
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 | 41 \hline |
42 set\_cpu & Task を実行するデバイスの設定 \\ | |
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 | 45 \hline |
46 \end{tabular} | |
47 \end{center} | |
48 \end{table} | |
49 \end{tiny} | |
1
f4b3de446113
write introduction and cerium
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
50 |
0 | 51 \begin{tiny} |
52 \begin{table}[ht] | |
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 | 57 \small |
58 \begin{tabular}[t]{c|l} | |
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 | 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 | 63 \hline |
64 \end{tabular} | |
65 \end{center} | |
66 \end{table} | |
67 \end{tiny} |