Mercurial > hg > Papers > 2012 > yutaka-master
comparison paper/chapter5.tex @ 1:5dbcea03717e draft
fix
author | Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 07 Feb 2012 17:38:59 +0900 |
parents | |
children | b69eefd9156e |
comparison
equal
deleted
inserted
replaced
0:6d80c2c895e4 | 1:5dbcea03717e |
---|---|
1 \chapter{デバック} | |
2 並列プログラムの特徴として、デバッグが難しいことが挙げられる。実行が非決定的 (同じ状態で実行しても結果が異なる) な場合があり、バグの状態を再現することが難しい。また、個々の Core 上のデータを調べる必要があり、デバッガが複数の Core を取り扱えることが必須である。Cell の場合、動作している複数 の SPE の一つに対してgdb で breakpoint を掛ければ、PPE や他の SPE も同時にストップするが、それら全ての CPU を手動で管理するのは時間がかかる。また、PPE と SPE ではメモリ空間が違うため、SPE から直接 PPE のデータを見ることができない。 | |
3 Cerium での開発工程は、 | |
4 | |
5 \begin{enumerate} | |
6 \item C によるシーケンシャルな実装 | |
7 \item 並列実行を考慮したデータ構造を持つ実装 | |
8 \item コードを分割し、シーケンシャルに実行する実装 | |
9 \item 分割したコードを並列実行する実装 | |
10 \end{enumerate} | |
11 | |
12 となっている。逐次的な実行で正常な動作を確認した後、並列に実行した場合に正常な動作をしない場合がある。特にCell特有の問題としてデータ構造が DMA 転送に合っていないこと。つまり、DMA転送される際に、16アライメントに設定されていないか、データのサイズが16の倍数になっていない場合に注意しなければならない。またCeriumではコードがそれぞれ PPE 用と SPE 用が別個に存在するので、互いのコードが等価であるかもチェックしなければならない。一つのコードに統一しても良いが、別個で対応したい問題がでた時に対応してる。 | |
13 バグの例として、本来 SPE で動くべき Task が PPE で動作するなど、Task のスケジューリングでのバグ、Task の設定の際のバグなどがある。 |