Thursday, 29 April 2010

sched_yield

Multi thread (メモリ空間を共有した並列実行)で、自分より優先度の高い thread に処理を渡す操作なんですが、

 http://blog.cell.sijam.com/make_sched_yield_more_agressiv/

なんか苦労しているっぽい。つうか、どこも抱えている問題は同じか。SPEからの情報を受け取るのに pthread の複雑な conditional wait とかを使わないで、sched_yiled とかを使っているらしいです。

  CTK: Cell ToolKit Library

とかいうのがあるのね。

なんですが、この間のバグ取り大会で、ようやっと Cerium の bottle neck を一つ取れた。

なので、word count で、PPE single thread よりも速くなりました。プロシンの論文には遅いとか情けないことが書いてある。12月に作ったので正しかったんだけど、バグが取れないのと、プロシンに例題が間に合わなかったんだよな。

なんか、SPE のTaskが終ったのをmailで、PPEに伝えるんですが、PPEが忙しいと、それを取ってくれないので、SPEが待ってしまうらしい。なので、終了をまとめて知らせるようなAPIを入れたら速くなりました。

めでたいんだが、なんかやる気がでない〜 なんでだ〜 せめて、それで今のを書き直すと、少しは速くなるはず。簡単なのに。つうか学生にやってもらいたい。だったら、他にも色んな工夫の余地があるんだが...

No comments: