研究日誌。

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

NUMA-affinity その1

2010-11-22 06:10:36 | Weblog

これまでの 単純分割 & numactl ではなく、ソフトウェアとしてしっかり affinity を設定を行えるように対応した。もちろん計算ノード内のプロセス数が1となるので、非常にオーバーヘッドが削減される。また単純分割では事前に計算量がある程度見積もれる SSSP クエリでしか負荷分散が難しかったが、今回の更新で動的な負荷分散にも可能となる。

● Istanbul4
CPU : Six-Core AMD Opteron(tm) Processor 8439 SE (24)
GCC : 4.4.5
linux : 2.6.34.7-61.fc13.x86_64
Memory : HugeTLBfs(2MB)

● APSP( NY(#nodes: 264346, #arcs: 733846) )

実装1 : 685 秒 (283 GE/s)
affinity 設定なしのマルチスレッド計算 : 24-threads

実装2 : 633 秒 (306 GE/s)
クエリの単純分割 & numactl を用いてソケット数分のプロセスを立ち上げ、プロセス内はソケット内コアでのマルチスレッド計算 : 4-processes x 6-threads

実装3 : 601 秒 (323 GE/s)
affinity 設定ありのマルチスレッド計算 : 24-threads

非常に高効率が確認された。様々な実験を行う予定である。