研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

2プロセスで実行 - bucket 法。

2008-07-16 23:22:38 | Weblog
どこにボトルネックがあるかというチェックを行うために、以下のような3種類と1プロセスとの実行時間の比較を行った。

・L2 キャッシュを共有しているコア同士
・L2 キャッシュは共有していないが同じダイ上のコア同士
・異なるダイ上のコア同士

まず違うダイ上であれば、ほとんど影響を受けてないことがわかる。この部分からはメモリアクセスがボトルネックではないと判断できる。バケット法の作業領域は、L2 上に載っていることが考えられるだろう。

しかし、同一ダイ上で実行すると少なからず影響を受ける事となる。1プロセスでは超えなかったメモリバンド幅がここで多少なりとも超えてしまったのだろうか。
影響の度合いを考えると2倍を少し超えたくらいであろうか。

L2 キャッシュを共有しない場合では、他の場合と比べかなり低速化してしまう。同一ダイ上のコア同士の結果と比べても、低速化しているのははっきり分かる。バンド幅に加え、作業領域のサイズが L2 からあふれてしまっていることに原因があるのではないか。

作業領域は以下ほどだと推測できる。
3MB ≦ バケット法の作業領域 ≦ 4MB