研究日誌。

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

NUMA-affinity @ Istanbul その2

2010-11-25 13:50:11 | Weblog
Istanbul アーキテクチャの Six-Core AMD Opteron(tm) Processor 8439 SE を 4基搭載した計算サーバでの実験結果をまとめる。

グラフは全米(24M点/58M枝)である。クエリは SSSP x 576 となっている。

naive : 一般的な pthread 並列
numactl : numactl による affinity 設定
hugepage : naive-based の HugePage(LargePage) によるメモリ確保
affinity : sched_setaffinity() による affinity 設定
hugepage/affinity : hugepage かつ affinity
reference : 9th DIMACS reference code 'mbp' / A.V.Goldberg

まずは1クエリあたりの実行時間(スループット)から。いずれも並列効率が非常に良いことが確認されるが、やはり hugepage/affinity が良い。hugepage の特性が他と違っていて面白い。並列数が小さいときは hugepage による性能の良いメモリによる性能向上が確認されるが、並列数が大きくなると資源共有による性能低下の方が大きいため、affinity や hugepage/affinity に負けてしまう。