Shinichi Tokunaga
@deepneko
タスク分解では粒度(タスクの処理量)に注目したと思うけど、それとは別にデータ分解ではチャンクの形状に注意しなければいけない。
2010-01-02 19:59:47
Shinichi Tokunaga
@deepneko
何を気にしてるかっていうと、チャンク同士の境界面が多いか少ないか。データ更新が起きるとチャンク同士でデータ交換を行うことがあるから、境界面は少ないほうがオーバーヘッドは少ない。
2010-01-02 20:02:33
Shinichi Tokunaga
@deepneko
タスク(スレッド)専用の領域にデータをコピーしておくか、必要になった時点で隣接チャンクへアクセスするか。
2010-01-02 20:13:00
Shinichi Tokunaga
@deepneko
必要に応じて隣接チャンクにアクセスする方式は、共有メモリ通信の恩恵を最大限に受けられるし、データが必要になるまでスレッド間の連携を遅らせることができる。
2010-01-02 20:26:15
Shinichi Tokunaga
@deepneko
なんかこの本、サンプルを載せてくれるのはいいんだが、最終的にスレッド化したものを書いてくれてないんだが。今のところ。
2010-01-02 20:30:53
Shinichi Tokunaga
@deepneko
状態を持つもの。次の処理へ進む際に何かしらの情報を維持するもの。乱数生成のseed、ファイルI/Oのseek位置など。
2010-01-02 20:44:40