« January 2009 | Main | March 2009 »

February 22, 2009

紅玉

E141紅玉と言ってもリンゴじゃなくて、宝石のルビーのほう。まあ、更に、それから名前を取ったプログラム言語の事だけどね。
前回のコンテンツは、Ubuntu 8.04 標準の Ruby 1.8.6 を使ってプログラムの性能を測ったのだが、1月末に Ruby の新バージョン 1.9.1 がリリースされていたので、試してみた。以下、全て Ubuntu 8.04 での作業記録だが、Ubuntu 8.10 でも同様に使えるだろう。

まずは、インスト。
Ruby 1.9.1 インストの前に、Synaptic で build-essential をインストールしておく。
オブジェクト指向スクリプト言語 Rubyから、ruby-1.9.1-p0.tar.bz2 をダウンロード

$ cd /tmp
$ tar jxvf ruby-1.9.1-p0.tar.bz2
$ cd ruby-1.9.1-p0/
$ ./configure
$ make
$ sudo make install
$ sudo mv /usr/local/bin/ruby /usr/local/bin/ruby1.9
$ sudo ln -s /usr/bin/ruby /usr/local/bin/ruby

最後の二行は、Ruby 1.8.6 と同居するためのオマジナイ。これで、コマンドラインから「$ ruby」とすると Ruby 1.8.6 で、「$ ruby1.9」とすると Ruby 1.9.1 になる。Ruby 1.9.1 は、未だ ruby-kde4 とか ruby-gnome2 とかに対応していないからね。

前回と同じくデュアルコア対応プログラミングの testDualCore03.rb を使って、パフォーマンスを測定した。ただ、そのままだと Ruby 1.9.1 では正常動作しないので、少し書き換えた:testDualCore05.rb
・Atom Z520 Ubuntu 8.04 ruby 1.8.6
 ・シングルコア用プログラム 159.1秒 デュアルコア用プログラム 122.4秒
・Athlon64 X2 4200+ (2.2GHz) Ubuntu 8.04 ruby 1.8.6
 ・シングルコア用プログラム 55.2秒 デュアルコア用プログラム 28.2秒
・Atom Z520 Ubuntu 8.04 ruby 1.9.1
 ・シングルコア用プログラム 61.0秒 デュアルコア用プログラム 45.9秒
・Athlon64 X2 4200+ (2.2GHz) Ubuntu 8.04 ruby 1.9.1
 ・シングルコア用プログラム 22.3秒 デュアルコア用プログラム 11.9秒

Ruby 1.9.1 は吃驚するほど速い!
ただ、デュアルコア対応プログラミングの testDualCore01.rb は、またも全く効果がなかった。デュアルコア対応プログラミングにも書いたけど、ruby の 1.8.x では、ネイティブ・スレッドに対応していなかったのが、Ruby 1.9.1 なら対応してパフォーマンスが向上すると期待したんだけどねえ。

まあ、速いから良いか。

| | Comments (3) | TrackBack (0)

February 11, 2009

七つの威力

E140Atom CPU の話。
私の LOOX U/C30 は Atom の中でも Z520 1.33GHz と言う CPU を使っている。
調べてみると、Atom は次のようなバリエーションがある。
・A330/230
 デスクトップ用
 1.60GHz Hyper-Threadingと64bitに対応
 330はデュアルコア
・N270(1.60GHz)
 NetBook に多く使われている
 1.60GHz Hyper-Threadingに対応
・Z540(1.86GHz)/ Z530(1.60GHz) /Z520(1.33GHz)
 より小型の NetBook などに使われている
 仮想化技術とHyper-Threadingに対応

ええ? 仮想化技術とHyper-Threadingに対応??
じゃあ、早速、試してみよう。

仮想化技術
Ubuntu 8.04 上に、KVMを使って、Debian etch をインストしてみた。ちゃんと動く。試して無いけど、Windows Xp だって動くだろう。
LOOX U の小さな画面に複数の OS を出しても実用的じゃ無いけど、とにかく動く。
こんな機能があるとは、驚いた。

Hyper-Threading
Hyper-Threadingに対応しているので、Ubuntu 8.04 からでも、Windows Xp からでも CPU は二つに見える。
調べてみると、Atom は、従来の Out-of order 型ではなく、in-order 型パイプラインを持っているらしい。従来の Out-of order 型パイプラインでは、先読みするので、プログラム中の命令の前後関係に依存性があっても大丈夫で、普通のプログラミングでも高速化の対象となる。しかし、この先読みするための回路が大きくなり、消費電力が増える。
Atom は、低消費電力化のために、先読みするための回路を省略して 2 Way の in-order 型パイプラインとした。in-order 型の場合、依存性のある命令の同時実行はできない。このため、ハイパースレッド方式として、依存性のない命令をそれぞれのスレッド毎にやらせてる必要がある。つまり、マルチスレッドやマルチコアに対応したプログラムでなければ、パイプラインを有効利用して、パフォーマンスを上げることはできない。

本当にそうか、試してみた。
以前、デュアルコア対応プログラミングデュアルコアで小惑星探査軌道計算で試験したプログラムを、そのまま使った。

まずは、ruby で作った円周率を求めるプログラムだが、
・Atom Z520 Ubuntu 8.04
 ・シングルコア用プログラム 159秒 デュアルコア用プログラム 124秒
・Athlon64 X2 4200+ (2.2GHz) Linux etch
 ・シングルコア用プログラム 58秒 デュアルコア用プログラム 29秒
と言う結果になった。CPUコアが2つあるAthlon64 X2 では、プログラムによって2倍のパフォーマンスが出るが、Atom の場合、本当にCPUコアが2つあるわけではないので、パフォーマンスは3割アップに留まっている。

次に小惑星探査軌道計算だ。小惑星30個の計算の場合、
・Atom Z520 48分16秒=2896秒 (シングルコア用プログラム)
・Atom Z520 36分54秒=2214秒 (デュアルコア用プログラム)
・Athlon64 X2 4200+ 12分46秒=766秒 (デュアルコア用プログラム)
と言う結果になった。Atom同士では、プログラムの違いによって、パフォーマンスは3割アップになったのは、円周率計算と同じだ。

Athlon64 X2に比べると、周波数とコア数の違いが、そのまま出ているような結果になっている。
思ったより、性能が良いなあ。
消費電力優先設計だから、もっと性能が悪いかと思っていた。

予想外の結果と言えるのが、円周率計算よりも小惑星計算の方が善戦したことだ。円周率計算は Ruby スクリプトなので整数演算主体。それに対して、小惑星計算はコンパイルした浮動小数点演算の塊。整数演算向きと言われる Atom なら、円周率計算の方が良くなると思ったのだが、逆だった。

64bit
対応していないと聞いても、念のため 64bit 版の Ubuntu を USBメモリから起動しようとしたが、対応していないとエラーメッセージが出てブートが止まった。
まあ、64bitに対応していないのだから、当たり前だが。

| | Comments (0) | TrackBack (0)

February 07, 2009

デジカメを買った

E1391コンパクト・デジカメを買った。その前に買ったデジカメは、6年前に買ったPanasonic LUMIX DMC-FZ1で、200万画素・光学12倍ズームのものだった。どうも最近このデジカメの写りが悪い(レンズ内部にカビが生えたか、光軸がずれたんじゃないかと思う)のと、コンパクトカメラのわりに重く大きく携帯性が悪いので、新たにコンパクトデジカメを買うことにした。
買ったのは、写真のオリンパス FE-360。800万画素・光学3倍ズームのもの。最近は、コンパクトデジカメでも1000万画素級が主流になっているようで、そのせいか、パソコン屋で安売りしていた。でも、小さなサイズのCCDなら、800万どころか600万画素でも十分だと思うのだが、どうなんだろう?
少なくとも私には800万画素もあれば、ありすぎくらいあるので、買うことにした。以前のデジカメよりズーム比が小さいが、子供も高校・中学生となり、運動会も行かなくなるで、携帯性を優先した。
むしろ、オリンパスの場合、xDカードを使うことが気になっていた。デジカメ本体が幾ら安くてもメモリカードが高価なら意味が無いからね。でも、micro SD も使えるというので、買うことにした。とにかく、micro SD や SD は、とっても安いからね。
E1392で、買って帰って、箱を開けてビックリ。てっきり、デジカメ本体にメモリカード用のスロットが、xD と micro SD 用の二つが開いていると思っていたら、xD 用だけだった。その代わり、付属に写真のような黄色い micro SD から xD への変換アダプタが付いているだけだった。
後日、人に話したら、結構有名みたいだった、この話。
でも、いい加減、オリンパスも諦めて、SD 系に変えてしまえば良いのに。往生際が悪い。フジもだけど。

| | Comments (2) | TrackBack (0)

« January 2009 | Main | March 2009 »