トップ «前の日記(2010-02-15(Mon)) 最新 次の日記(2010-03-04(Thu))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2010-03-03(Wed) だいぶ暖かくなり、昼も長く、夜明けも早くなってきた

LinuxFromScratch-6.6

x86_64 でやってみた。ホストシステムにはUbuntu-9.10を使ってみた。
まだマニュアルにはx86_64向けの記述はx86と比べて幾分不足気味だけど、 問題なく構築できた。ブートローダはgrub-1.97.2だった。

SMPの威力?

CONFIG_SMPを"not set"にしたカーネルを作り、有効なカーネルと比較してみる。
make menuconfig で切り替えたのは一箇所だけだったが、.config をdiffすると、他にも 色々違うところが出てきた。
bc-1.06をインストールして、簡単なスクリプトを作った。

$ cat 1.sh
echo 2^180+7  | bc | factor > /dev/null
 
$ cat 2.sh
echo 2^180-11 | bc | factor > /dev/null

で、これを複数の端末から同時に実行してみる。
端末Aから time { sh 1.sh ; sh 2.sh ; } の順で、端末Bからは逆に。

$ uname -v
#1 SMP Wed Mar 3 05:48:23 JST 2010
 
$ time { sh 1.sh ; sh 2.sh ; }
 
real    0m55.752s
user    0m55.723s
sys     0m0.005s

これは端末一つだけで実行している結果と、同じだった。
端末Bは省略する。端末Aと同じだったから。
端末4つで(ほぼ)同時に実行させると、結果は倍近くになった。
で、次に、SMPを無効にしたカーネルに切り替える。

$ uname -v
#2 Wed Mar 3 06:24:19 JST 2010
 
$ time { sh 1.sh ; sh 2.sh ; }
 
real    1m51.862s
user    0m55.955s
sys     0m0.002s

一つだけならSMPなカーネルとあまり変らないが、 複数走らせると遅くなった。
ちなみにSMPを無効にすると /proc/cpuinfoでも一つしか表示されなかった。

おまけ

Debian Lennyで少し追試してみた。
今度の例題は echo 2^62-1 | bc | factor。
uname -aは、どちらも "Linux Knoppix 2.6.26-2-686 #1 SMP Wed Feb 10 08:59:21 UTC 2010 i686 GNU/Linux"

PentiumM 1.6GHzだと、 計算が一つ、二つ、三つ、四つと増すに従い、 約8.1秒、16.0秒、24.1秒、31.8秒と、計算時間も比例したが、 SMP(Pentium4 3GHz)で7.7秒、10.5秒、15.9秒、19.8秒と変化する。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。