FreeBSD 8.0 VS Ubuntu 9.10 amd64 dgemm対決した。dgemmとは行列-行列積をおこなうルーチンの名前であり、いろんな場所で使われる重要な演算である。しかも、特にメモリ-CPU間の転送速度が律速になる最近のCPUでも、dgemmのスピードはほぼ理論性性能値に近い値が出せ、CPUの瞬間最大風速みたいなものの目安になる。
OSに依存するかを見たく、FreeBSDおよびUbuntu (Linux)で比較をした。
結果はFreeBSDが理論性能値の70%しかだせず、95%出せるUbuntuの圧倒的勝だった。
問題意識
以前後藤さんに直接「FreeBSDは計算に向かないOSだ」と言われた。残念であった。以前も二次キャッシュの悪いくせ: FreeBSD最悪, Linux普通、True64良好と書かれており、気になってメールをしてみたら、以下のようにお返事いただいた。
> ページカラーリングとかは当然行っていると思うのですが、
> 最近の巨大なキャッシュに対応させるようなことはしてい
> ないと思います。Linux もまだまだですが BSD 系列はメモリ管理の
> 粒度が小さすぎて、物理アドレスでの連続性があまり得られません。
> さらに、プロセスのスケジューリングでも同一のコアに固定した
> スケジューリングではなくて、コロコロと移動させてしまいます。
で、
> ま、ベンチマークをとってみれば一目瞭然
と当たり前のことを言われたので、(メールをいただいて3カ月後
であるが)ベンチマークをとってみた。
測定条件および結果
マシン: Core i7 920 (42.56-44.8GFlops) / DDR3 1066
OS: FreeBSD 8.0/amd64, Ubuntu 9.10
GotoBLAS2: 1.13
dgemmを用いた測定 (TurboBoost on)
OS : FLOPS実測 : 理論性能値比(%)
FreeBSD : 32.0GFlops : 71%
Ubuntu : 42.0-42.7GFlops : 93.8% - 95.3%
洒落にならんくらい遅いね...
OSに依存するかを見たく、FreeBSDおよびUbuntu (Linux)で比較をした。
結果はFreeBSDが理論性能値の70%しかだせず、95%出せるUbuntuの圧倒的勝だった。
問題意識
以前後藤さんに直接「FreeBSDは計算に向かないOSだ」と言われた。残念であった。以前も二次キャッシュの悪いくせ: FreeBSD最悪, Linux普通、True64良好と書かれており、気になってメールをしてみたら、以下のようにお返事いただいた。
> ページカラーリングとかは当然行っていると思うのですが、
> 最近の巨大なキャッシュに対応させるようなことはしてい
> ないと思います。Linux もまだまだですが BSD 系列はメモリ管理の
> 粒度が小さすぎて、物理アドレスでの連続性があまり得られません。
> さらに、プロセスのスケジューリングでも同一のコアに固定した
> スケジューリングではなくて、コロコロと移動させてしまいます。
で、
> ま、ベンチマークをとってみれば一目瞭然
と当たり前のことを言われたので、(メールをいただいて3カ月後
であるが)ベンチマークをとってみた。
測定条件および結果
マシン: Core i7 920 (42.56-44.8GFlops) / DDR3 1066
OS: FreeBSD 8.0/amd64, Ubuntu 9.10
GotoBLAS2: 1.13
dgemmを用いた測定 (TurboBoost on)
OS : FLOPS実測 : 理論性能値比(%)
FreeBSD : 32.0GFlops : 71%
Ubuntu : 42.0-42.7GFlops : 93.8% - 95.3%
洒落にならんくらい遅いね...