Mercurial > hg > Members > kono > Cerium
view example/word_count/README @ 797:45c141669de7
SchedTask instance variable clean up
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 18 May 2010 17:57:19 +0900 |
parents | 72b73beb3325 |
children | a8b6ee80c108 |
line wrap: on
line source
/* * $Id: README,v 1.3 2008/10/20 08:49:52 gongo Exp $ */ - 概要 Task の依存関係を設定する例題 タスクは二種類あって 配列 idata があるとする (サイズは length*2) Exec: idata を length の前後に分けて受け取り、各要素に値を加算 半分に分けるため、今回はこのタスクを 2 つに固定。 まあ3つ以上でもいいんだけどね。 Print: idata を表示する。 依存関係としては、まずは Exec を先に実行しないといけないので ------------> 時間 Exec 1 \ Print / Exec 2 みたいな感じ。 この依存を設定しないと、Print は Exec1,2 が計算する前の idata を詠んでしまう可能性がある。 - 実行方法 % ./dependency [-cpu spe_num] [-nodepend] -cpu SPU の数 -nodepend Exec と Print に依存を設定しない - 実行例 %./dependency [TASK_PRINT] 13 13 13 13 13 13 13 13 13 13 13 13 26 26 26 26 26 26 26 26 26 26 26 26 %./dependency -nodepend [TASK_PRINT] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 上の場合、Exec 1, 2 の処理結果が PPE の idata に書き込まれる前に Print が idata から DMA でデータを取ってきて表示しているために 全て 0 になっている。 このタスクが全て同じ SPE 上で実行されているとして、 Exec 1, 2 のあと、Print の DMA read が実行される前に Exec 1, 2 の DMA write が済んでいればもしかしたらデータが取れるかもしれない。 しかし「もしかしたら」では使いものにならないので、依存を設定するわけです。