July 2, 2008

7/2(水) 掛川・晴

 ケツに火がついているので,あれこれ並列処理。

 最近はGoogleのbotよか,Yahoo!のcrawlerからのアクセスが頻繁にある。M$からの買収話が持ち上がる前からの現象なので,買収されまいと必死になっているって訳ではなさそうである。やっぱりGoogle対抗策なんだろうな。スーパーでも,サーチエンジンでも,売り物の鮮度が大事って訳だ。
 昨日upしたばっかりのデカイ圧縮ファイルをさっそくダウンロードしてけつかる。これ全部おんなじホスト名である。

xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:13:08 +0900] "GET /cee/ HTTP/1.0" 200 2365 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:14:11 +0900] "GET /cee/chev02048.tar.bz2 HTTP/1.0" 200 4946374 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:14:55 +0900] "GET /cee/chev16384.tar.bz2 HTTP/1.0" 200 39561417 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:15:49 +0900] "GET /cee/chev32768.tar.bz2 HTTP/1.0" 200 79569783 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:17:46 +0900] "GET /cee/chev01024.tar.bz2 HTTP/1.0" 200 2457703 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:18:13 +0900] "GET /cee/chev08192.tar.bz2 HTTP/1.0" 200 17675652 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
xxxxx.crawl.yahoo.net - - [02/Jul/2008:10:22:32 +0900] "GET /cee/chev04096.tar.bz2 HTTP/1.0" 200 9923952 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"

このうち,一番でかいchev32768.tar.bz2をダウンロードする時間(約2分)から計算してみると,転送速度は663081.525 Bytes/sec,bps(bits/sec)換算だと約5Mbpsになる。なーるほど。ワシんとこのサーバからYahoo!のCrawlerまでの転送速度はそんなに速いわけではない,つーか,遅いといってもいいぐらいだ。てぇことは,でかいサーチエンジンを維持するためには,回線速度より徹底した分散処理が重要ってこと・・・と思っていいのかな?

 CentOS 5.2が出たので,ダウンロードしてみる。さてLinuxマシンでDVDを焼いてみようと,XCDRoastを入れて見るも,肝心のCDRecord-ProDVDは,ライセンスがらみのクレームがDebianチームから付いたとかで、面倒なことになっている様子。
 ググって見たら,標準で入っているツールだけでDVDを焼けるそうな

$ growisofs -dvd-compat -Z /dev/dvd=CentOS-5.2-i386-bin-DVD.iso
Executing 'builtin_dd if=CentOS-5.2-i386-bin-DVD.iso of=/dev/dvd obs=32k seek=0' /dev/dvd: "Current Write Speed" is 8.2x1352KBps.
1114112/4020600832 ( 0.0%) @0.2x, remaining 300:38 RBU 100.0% UBU 2.9%
26705920/4020600832 ( 0.7%) @5.5x, remaining 19:56 RBU 99.8% UBU 100.0%
54394880/4020600832 ( 1.4%) @6.0x, remaining 14:34 RBU 100.0% UBU 100.0%
82083840/4020600832 ( 2.0%) @6.0x, remaining 11:59 RBU 100.0% UBU 100.0%
 こんな感じでDVDが焼けるようだ。ま、こちとら古手のUNIXユーザですんで、コマンドラインツールで構わないんですけどね。手軽でいいし。

 LAPACKのDGEEVルーチンで,Companion行列(個人的にはパニオンネーチャン行列と呼び慣わしているセクハラオヤジなワシだ)の固有値を求めてみると,面白い数値例が出た。

行列 =
0: 3.0e+00 -3.0e+00 1.0e+00
1: 1.0e+00 0.0e+00 0.0e+00
2: 0.0e+00 1.0e+00 0.0e+00

固有値(complex) =
1 1.00000859959030386e+00 0.00000000000000000e+00
2 9.99995700204850846e-01 7.44736245560823309e-06
3 9.99995700204850846e-01 -7.44736245560823309e-06

まあ3重根だしね,仕方ないか・・・ちなみに,ワシのCardano法ルーチンを使ってみると,倍精度でもキッチリ出てしまう。

----- Double Precision -----
dcoef[]: 1.000e+00, -3.000e+00, 3.000e+00, -1.000e+00
dans[0]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)
dans[1]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)
dans[2]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)

行列 =
0: 4.0e+00 -9.0e+00 4.0e+00 -1.0e+00
1: 1.0e+00 0.0e+00 0.0e+00 0.0e+00
2: 0.0e+00 1.0e+00 0.0e+00 0.0e+00
3: 0.0e+00 0.0e+00 1.0e+00 0.0e+00

固有値 =
1 1.75414143528176814e+00 2.01438480066716030e+00
2 1.75414143528176814e+00 -2.01438480066716030e+00
3 2.45858564718232975e-01 2.82333993098281166e-01
4 2.45858564718232975e-01 -2.82333993098281166e-01

----- Double Precision -----
dcoef[]: 1.000e+00 -4.000e+00, 9.000e+00, -4.000e+00, 1.000e+00
dans[0]: 1.75414143528176725e+00 ( 4.4e-16), 2.01438480066715853e+00 ( 8.9e-16)
dans[1]: 1.75414143528176725e+00 ( 4.4e-16), -2.01438480066715853e+00 ( 8.9e-16)
dans[2]: 2.45858564718232864e-01 ( 2.2e-16), 2.82333993098280778e-01 ( 1.4e-15)
dans[3]: 2.45858564718232864e-01 ( 2.2e-16), -2.82333993098280778e-01 ( 1.4e-15)

 共役複素数二組だと問題なく15桁は出る。でも重根だとやっぱりダメ。

0: 4.0e+00 -6.0e+00 4.0e+00 -1.0e+00
1: 1.0e+00 0.0e+00 0.0e+00 0.0e+00
2: 0.0e+00 1.0e+00 0.0e+00 0.0e+00
3: 0.0e+00 0.0e+00 1.0e+00 0.0e+00

1 1.00019634248490830e+00 0.00000000000000000e+00
2 9.99999982462686399e-01 1.96324946916921745e-04
3 9.99999982462686399e-01 -1.96324946916921745e-04
4 9.99803692589723791e-01 0.00000000000000000e+00

 これも,ワシのイカガワシイFerrari法プログラムではキッチリ出る。

----- Double Precision -----
dcoef[]: 1.000e+00 -4.000e+00, 6.000e+00, -4.000e+00, 1.000e+00
dans[0]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)
dans[1]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)
dans[2]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)
dans[3]: 1.00000000000000000e+00 ( 0.0e+00), 0.00000000000000000e+00 ( 0.0e+00)

 ま,整数係数だしね。偶然ってことかしらん?

 明日も頑張ります。頑張らねば間に合いませーんっだ。

Posted by tkouya at July 2, 2008 8:50 PM