今回は mbp とこちらの実装を比べてみる。mbp は1スレッド時は確かに高速であるが、マルチスレッドに対応していない。対応したとしても資源の競合から性能が出しにくいと予想している。
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
istanbul の結果。
![](https://blogimg.goo.ne.jp/user_image/05/70/57f80f5659610a699efb74778b133c97.png)
nehalemep の結果。
![](https://blogimg.goo.ne.jp/user_image/22/53/f52589006130fd19309f75506e6ce8f1.png)
このようにいずれも並列数分ほどの性能差が確認される。
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
istanbul の結果。
![](https://blogimg.goo.ne.jp/user_image/05/70/57f80f5659610a699efb74778b133c97.png)
nehalemep の結果。
![](https://blogimg.goo.ne.jp/user_image/22/53/f52589006130fd19309f75506e6ce8f1.png)
このようにいずれも並列数分ほどの性能差が確認される。
※コメント投稿者のブログIDはブログ作成者のみに通知されます