2010年1月30日土曜日

Hybrid W-ZERO3(WS027SH)に関するいくつかのメモ

■Windows Live ID を Hybrid W-ZERO3 で新たに取得した際に注意することは別記事に移動しました。

■WILLCOM UIについて
  • WILLCOM UIは、Today画面から起動するアプリ (Todayプラグイン) として動くが、他のプラグインとは排他である。電源投入→OS起動→WILLCOM UI起動、という順なので、WILLCOM UIの表示を切れば、起動の見た目は早くなる。
  • WILLCOM UI の上で動いているコンポーネント (特にW-INFO) は、WILLCOM UIでしか表示されない。Todayプラグインとしては提供されないようだ。えー。
  • 従来機種Todayプラグインとして提供されてきた機種依存の表示(ライトメールの受信状況など)は、今回 Today 画面から利用できない?
  • クイックメモのTodayプラグインも見当たらない。WILLCOM UIコンポーネントにも無い。もったいない。
  • Ad[es]とかから持ってきたらダメかな。ダメだろうなあ…
  • WILLCOM UIはとっととコンポーネント仕様を公開したらいいと思うんだ。
■その他
  • スタイラス必須。Ad[es]と同等のものがついてきます。
  • PCとの連携については、Microsoft Office Outlook の有無で印象がかなり変わる。Windows Mobile を使う人は持っていた方がいいのかもしれない。高いんだけどねえ…。Outlook持ってなくてもいい、ってのがいわゆる Myphone サービスっぽいんですが、Webインターフェースがいまいち使いづらい。あとWindows Live for Windows Mobile との区別もよく分からない。
  • USB給電周りは検証中の記事が役に立つ。eneloop mobile boosterは電源さえ切ればどのモデルでも(?)充電可能ってことか。KBC-L2AS(2口高出力タイプ)の2個口1つに束ねるとか無茶なケーブル作ったら電源投入時でも給電可能だったりするんだろうか。無茶すぎるか。
  • MicroSDは挿抜しにくいので一度刺したらほったらかしにするくらいで丁度いい。
  • ad[es](WS011SH)などから電話帳などを移動するには、連絡先、のメニューから、赤外線送信でHW03に全件転送すればよい。赤外線ポートの位置に注意。
  • アクセス先を切り替えたりして速度比較、なんてことをやっていると、あっという間にPHSと3G両方のパケット額両方の上限に到達するので気をつけよう。

2010年1月9日土曜日

unixbench 5.1.2 を FreeBSD でもCPU数に応じて動くようにしてみる

unixbench 5.1.2 を使ってベンチマークをとっていたのですが、FreeBSDで実行するとCPU数を認識してくれず、少々寂しい結果になるので、patchを作ってみました。ついでに、コンパイラの情報も表示させるようにもしてみたので、そのpatchも置いておきます。(FreeBSD版のpatchはLinux版のpatchの内容を含んでいます。)

■FreeBSD用のpatch はこちら→ unixbench-5.1.2.FreeBSD.patch
□Linux用のpatch はこちら→unixbench-5.1.2.custom.patch

GNU make が必要です。


%ls
unixbench-5.1.2.FreeBSD.patch unixbench-5.1.2.tar.gz
%tar -xzf unixbench-5.1.2.tar.gz
%patch -p < unixbench-5.1.2.FreeBSD.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ruN unixbench-5.1.2.orig/Makefile unixbench-5.1.2/Makefile
|--- unixbench-5.1.2.orig/Makefile 2007-12-23 04:51:21.000000000 +0900
|+++ unixbench-5.1.2/Makefile 2010-01-10 16:11:10.219596811 +0900
--------------------------
Patching file unixbench-5.1.2/Makefile using Plan A...
Hunk #1 succeeded at 38.
Hunk #2 succeeded at 137.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ruN unixbench-5.1.2.orig/Run unixbench-5.1.2/Run
|--- unixbench-5.1.2.orig/Run 2007-12-23 06:48:10.000000000 +0900
|+++ unixbench-5.1.2/Run 2010-01-10 16:10:54.483552885 +0900
--------------------------
Patching file unixbench-5.1.2/Run using Plan A...
Hunk #1 succeeded at 62.
Hunk #2 succeeded at 80.
Hunk #3 succeeded at 681.
Hunk #4 succeeded at 723.
Hunk #5 succeeded at 734.
Hunk #6 succeeded at 796.
Hunk #7 succeeded at 1379.
Hunk #8 succeeded at 1582.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ruN unixbench-5.1.2.orig/Run_FreeBSD unixbench-5.1.2/Run_FreeBSD
|--- unixbench-5.1.2.orig/Run_FreeBSD 1970-01-01 09:00:00.000000000 +0900
|+++ unixbench-5.1.2/Run_FreeBSD 2010-01-10 16:10:09.484287187 +0900
--------------------------
(Creating file unixbench-5.1.2/Run_FreeBSD...)
Patching file unixbench-5.1.2/Run_FreeBSD using Plan A...
Hunk #1 succeeded at 1.
done
%cd unixbench-5.1.2
%vi Makefile
(Makefileを編集します。GMAKEに GNU make コマンドを設定してください。
 FreeBSDの場合は gmake になると思います。
 GRAPHIC_TESTS を切るかどうかはお好みで。FreeBSDで動くかどうかは試していません。
 CC で C コンパイラを変更できます。その場合は、後述の Run_FreeBSD を編集して下さい。)
%vi Run_FreeBSD
(ベンチマークをとる perl スクリプトです。Makefileでの記述を参考に、
my $gMake = 'gmake';
my $cCompiler = 'gcc';
 を書き換えてください。)
% gmake
% ./Run_FreeBSD
gmake all
gmake[1]: Entering directory `/home/tarai/unixbench-5.1.2'
Checking distribution of files
...
(ここからベンチマークを実行しますので、60分ほど放置するか、
screen などで逃げられるようにしておいたほうがいいでしょう)


./Run のかわりに ./Run_FreeBSD を実行すると、こんなふうにベンチマークが取れる、はず。

BYTE UNIX Benchmarks (Version 5.1.2-custom)

System: zitaku.localdomain: FreeBSD
OS: FreeBSD -- 8.0-RELEASE-p2 -- FreeBSD 8.0-RELEASE-p2 #0: Thu Jan 7 18:38:59 JST 2010 tarai@zitaku.localdomain:/usr/obj/usr/zsrc/sys/GENERIC
Machine: amd64 (GENERIC)
Language: en_US.utf8 (charmap=, collate=)
Compiler: gcc (GCC) 4.2.1 20070719 [FreeBSD]
CPU 0: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 1: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 2: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 3: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 4: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 5: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 6: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 7: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

1:41AM up 1 day, 6:44, 1 user, load averages: 0.00, 0.00, 0.00; runlevel

------------------------------------------------------------------------
Benchmark Run: 土 1 09 2010 01:41:48 - 02:13:24
8 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 19614465.7 lps (10.0 s, 7 samples)
Double-Precision Whetstone 4220.0 MWIPS (9.7 s, 7 samples)
Execl Throughput 3474.9 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 131206.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 33294.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 462368.5 KBps (30.0 s, 2 samples)
Pipe Throughput 1622117.6 lps (10.0 s, 7 samples)
Pipe-based Context Switching 248853.7 lps (10.0 s, 7 samples)
Process Creation 10993.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 7765.5 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2535.4 lpm (60.0 s, 2 samples)
System Call Overhead 974418.6 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 19614465.7 1680.8
Double-Precision Whetstone 55.0 4220.0 767.3
Execl Throughput 43.0 3474.9 808.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 131206.9 331.3
File Copy 256 bufsize 500 maxblocks 1655.0 33294.4 201.2
File Copy 4096 bufsize 8000 maxblocks 5800.0 462368.5 797.2
Pipe Throughput 12440.0 1622117.6 1304.0
Pipe-based Context Switching 4000.0 248853.7 622.1
Process Creation 126.0 10993.0 872.5
Shell Scripts (1 concurrent) 42.4 7765.5 1831.5
Shell Scripts (8 concurrent) 6.0 2535.4 4225.6
System Call Overhead 15000.0 974418.6 649.6
========
System Benchmarks Index Score 873.4


------------------------------------------------------------------------
Benchmark Run: 土 1 09 2010 02:13:24 - 02:42:59
8 CPUs in system; running 8 parallel copies of tests

Dhrystone 2 using register variables 81213813.6 lps (10.0 s, 7 samples)
Double-Precision Whetstone 26264.1 MWIPS (9.9 s, 7 samples)
Execl Throughput 7712.6 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 93489.7 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 23754.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 371435.3 KBps (30.0 s, 2 samples)
Pipe Throughput 8691978.0 lps (10.0 s, 7 samples)
Pipe-based Context Switching 2075904.6 lps (10.0 s, 7 samples)
Process Creation 16325.9 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 21494.6 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2922.0 lpm (60.1 s, 2 samples)
System Call Overhead 5527171.2 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 81213813.6 6959.2
Double-Precision Whetstone 55.0 26264.1 4775.3
Execl Throughput 43.0 7712.6 1793.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 93489.7 236.1
File Copy 256 bufsize 500 maxblocks 1655.0 23754.0 143.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 371435.3 640.4
Pipe Throughput 12440.0 8691978.0 6987.1
Pipe-based Context Switching 4000.0 2075904.6 5189.8
Process Creation 126.0 16325.9 1295.7
Shell Scripts (1 concurrent) 42.4 21494.6 5069.5
Shell Scripts (8 concurrent) 6.0 2922.0 4870.0
System Call Overhead 15000.0 5527171.2 3684.8
========
System Benchmarks Index Score 2050.6





以下説明。patchを当てずに実行すると、

BYTE UNIX Benchmarks (Version 5.1.2)

System: zitaku.localdomain: FreeBSD
OS: FreeBSD -- 8.0-RELEASE-p2 -- FreeBSD 8.0-RELEASE-p2 #0: Thu Jan 7 18:38:59 JST 2010 tarai@zitaku.localdomain:/usr/obj/usr/zsrc/sys/GENERIC
Machine: amd64 (GENERIC)
Language: ja_JP.utf8 (charmap=, collate=)
CPU: no details available
12:28AM up 1 day, 5:30, 1 user, load averages: 0.00, 0.00, 0.00; runlevel

ベンチマークの結果も 1CPUのときのみを計測して終わってしまいます。これはつまらない。

理由は、Run スクリプトが Linux 決め打ちのコードになっていて、CPUに関する情報を
/proc/cpuinfo から取っているためです。Linux エミュレーションを入れていれば、おそらくその絶対パスを書き換えるだけでいいと思うのですが、たまたま手元のマシンにはLinux エミュレーションを入れていなかったので、perlの勉強がてら、sysctlから取るようにしてみました。

sysctl の情報しか取り出していないので、bogomips や CPUの機能情報は決め打ちで埋めてます。CPUの個数さえ分かれば SMP の時のベンチマークも取るようになるので、これで十分かなと思っています。これ以上の情報を取ろうとすると cpuid とかのお世話にならないといけないのかな?

NetBSD, OpenBSD, PC-BSD などの場合は、sysctl のキーが同じなら、Run_FreeBSD のスクリプトを見て場合分けを書き換えればいけると思います。手元にないので確認は取れてません。

Linux エミュレーションが有効な場合は、./Run にある $pCpuinfo="/proc/cpuinfo" を書き換えれば ./Run でも実行できると思います。そういうふうに書き換えてはおきましたが、動作は未確認です。

実は Compiler 情報も表示するよう改造していたり、本家 Run スクリプトも、ハードコーディングしている部分を書き換えたりしているので、これをそのまま ports パッチにするのは改変の度が過ぎると思います。(バージョン情報もちょっといじっています。)Run_FreeBSD のファイルを抜いたものを本家に提出して、もし本家に採用されたら、そこから USE_GMAKE=YES, USE_LINUX=YES という条件で ports を作るのが綺麗な気がしますけど、需要があるのかどうか……

2009年12月24日木曜日

Intel DP55WB + Intel Core i7-860 で debian/ubuntu (予定)

卒論・修論用の計算用PCとして、流行りの Core i7機を入れました。下調べはしていたのですが、blogには書いてなかったなと思って書き起こしておきます。

気になったのはネットワーク周り。

マザーボード:Intel DP55WB
http://www.intel.com/cd/channel/reseller/ijkk/jpn/430580.htm
NICは 82578DC
http://www.jp.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.31
というわけでカーネルのバージョンが新しくないと対応しない模様です。

Debianの場合、
lennyは2.6.26ということで無理そう。
squeeze/lenny-backports でも 2.6.30ということで惜しい。
sidは早くも 2.6.32 みたいなので、現時点ではsidということになるのでしょうか。
ちょっとハードル高いかな……

一方、Ubuntuのほうは、Karmic (9.10) から対応できそうに見えます。不具合が出るという記事も見かけるんですが、このPCではデスクトップ環境は起動しないはずなのでX周りのトラブルは踏まない…はず?

というわけで今期の計算機には ubuntu 9.10 + server CD で最小インストールを試みるということで。