2013 年 11 月の履歴(もしくは日誌)


2013 年 11 月

11 月 30 日

Mac で QEMU と Raspberry Pi で Mathematica

先日の記事を書き直します.

Linux が動くワンボードコンピュータ Raspberry Pi 版の Mathematica が無料で配布されるようになりました.ぼくも早速試してみる事にしました.

まずはエミューレータで Raspberry Pi を試してみました.

まずは Mac に QEMU をインストール.ぼくは Homebrew でインストールしました.

$ brew install qemu

homebrew の環境が整っていれば,これで簡単にインストールできます.

次に QEMU で Raspberry Pi のエミュレータが動くまでは以下の URL のサイトを参考にしました.

試行錯誤をしましたが,なんとか QEMU で Raspberry Pi 用の Linux である Raspbian を動かす事ができました.

この時点で QEMU の画面は VGA サイズでした.狭くて不便なので次に tightvncserver をインストールしました.

一度 QEMU を終了.Mac 側での起動コマンドに VNC 用のポートの指定 -redir tcp:15901::5901 を追加します.ついでに SSH も.

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2013-09-25-wheezy-raspbian.img -redir tcp:10022::22 -redir tcp:15901::5901

Raspbian が起動したら vncserver をインストールします.

pi@raspberrypi:~$ sudo apt-get install tightvncserver

VNC を使わなくても SSH が使えるので Mac のターミナルから ssh -X -P 10022 pi@localhost とやればつながります.これでも十分ですが,デスクトップ画面を出したい場合は VNC が便利かも.

VNC で接続の場合は vncserver 起動後に Mac の Finder の移動メニューから「サーバに接続...」を選び,「vnc://localhost:15901」と入力して「接続」ボタンをクリックすると VNC で Raspberry Pi に接続できます.VNC 接続だとマウスポインタが VNC の画面の中と外を自由に行き来できるし,画面サイズも大きくなり快適です.

エミュレータが良いのはあれこれ試して,失敗してやり直しというのが気楽にできる事です.実機を入手できるまでいろいろ試してみました.

実機を入手してから早速起動してみましたが,モニタを接続してなかったので DHCP で割り振られた IP アドレスが良くわかりませんでした.エミュレータ側で IP アドレスを固定に設定して,そのイメージを SD カードにコピーして起動し直し.ifconfig で MAC アドレスを確認して AirMac Time Capsule の DHCP サーバ側に MAC アドレスを登録して割り振る IP アドレスを指定しました.

エミュレータに ssh 接続する時は ssh -X -P 10022 pi@localhost でしたが,実機の場合はポート番号指定を無くして ssh -X pi@192.168.10.100 とかやれば良い訳です.xterm は入ってませんが lxterminal が使えるみたい.-X オプションで X11 の転送が有効になり lxterminal などが使えます.

Raspbian での Mathematica のインストールは簡単です.コマンドを入力するだけ.

以下の URL のサイトを参考にしました.

pi@raspberrypi:~$ sudo apt-get update
pi@raspberrypi:~$ sudo apt-get install wolfram-engine

これで
/usr/bin/mathematica

/usr/bin/wolfram
が使えるようになります.

特に意味ないけど Mac の Mathematica と Raspberry Pi の Mathematica でベンチマークとってみました.

ちなみに iMac でベンチマークをとったときはこんな感じ.

Needs["Benchmarking`"]
b = Benchmark[];
m = b[[1]][[1]][[2]];
iMac = b /. {m -> "iMac12,1 2.7GHz (4Core)"}
BenchmarkReport[$BenchmarkSystems, iMac]

結果はこちら.

=== System Information ===

Machine Name:          iMac12,1 2.7GHz (4Core)
System:                Mac OS X x86 (64-bit)
Date:                  November 28, 2013
Mathematica Version:   9.0.0
Benchmark Result:      1.19

Machine Name:          MacPro5,1 2 x 2.66GHz 6 Core Xeon(12 Cores)
System:                Mac OS X x86 (64-bit)
Date:                  November 28, 2013
Mathematica Version:   9.0.0
Benchmark Result:      0.97

Machine Name:          MacBookAir3,1 1.4GHz Intel Core 2 Duo (2Core)
System:                Mac OS X x86 (64-bit)
Date:                  November 28, 2013
Mathematica Version:   9.0.0
Benchmark Result:      0.38

Machine Name:          raspberrypi
System:                Linux ARM (32-bit)
Date:                  November 30, 2013
Mathematica Version:   10.0.0
Benchmark Result:      0.01


=== MathematicaMark9 System Comparison ===

iMac12,1 2.7GHz (4Core)                         1.19
Mac OS X x86 (64-bit)

3.07 GHz Core i7-950 (8 Cores)                  1.00
Windows 7 Pro (64-bit) Desktop

MacPro5,1 2 x 2.66GHz 6 Core Xeon(12 Cores)     0.97
Mac OS X x86 (64-bit)

2.93 GHz Core i7-940 (8 Cores)                  0.89
Linux Ubuntu (64-bit) Desktop

2.67 GHz Core 2 Quad Q9450 (4 Cores)            0.80
Linux Debian (64-bit) Desktop

3.00 GHz Core 2 Duo E8400 (2 Cores)             0.78
Linux Ubuntu (64-bit) Desktop

3.06 GHz Core 2 Duo E8435 (2 Cores)             0.73
iMac OS X Snow Leopard (64-bit) Desktop

1.73 GHz Core i7-820QM (8 Cores)                0.73
Windows 7 Ultimate (64-bit) Laptop

2 * 2.26 GHz Quad Core Xeon E5520 (8 Cores)     0.69
Mac XServe OS X (64-bit) Server

2.80 GHz Core 2 Duo Mobile T9600 (2 Cores)      0.67
Windows 7 Pro (64-bit) Laptop

2 * 2.66 GHz Dual Core Xeon 5150 (4 Cores)      0.56
MacPro OS X Snow Leopard (64-bit) Server

2.4 Ghz Core 2 Duo Mobile T8300 (2 Cores)       0.47
MacBook OS X Snow Leopard (64-bit) Laptop

2.60 GHz Core 2 Duo Mobile T7800 (2 Cores)      0.44
Windows XP Pro (32-bit) Laptop

2 * 2.80 GHz Opteron 254 (2 Cores)              0.38
Windows XP Pro (64-bit) Server

MacBookAir3,1 1.4GHz Intel Core 2 Duo (2Core)   0.38
Mac OS X x86 (64-bit)

2.13 GHz Core 2 Duo E6400 (2 Cores)             0.36
Windows Vista (32-bit) Server

1.6 GHz Core 2 Duo Mobile L7500 (2 Cores)       0.32
Windows 7 Pro (32-bit) Laptop

2 * 2.00 GHz G5 PowerPC (2 Cores)               0.14
Mac OS X (32-bit) Desktop

raspberrypi                                     0.01
Linux ARM (32-bit)

(Faster systems give larger numbers)

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131130n1 TrackBack