Top
個別メモ
Latest update on 2012年3月5日 (月) at 10:54:46.
【第1960回】 物欲(2011年8月17日)
- 6:30起床。しかし昨夜投入しておいたRのジョブは終わっていなかった。"SANN"の方が"Nelder-Mead"より遅いのかもしれない。CRANとCompilerでGoogle検索してみたら,もちろんRcppのFAQ(pdf形式)なんかもあったわけだが,それとは別に,簡単にループを30倍速くする拡張を見つけた。問題は,Windows 7の64ビット版でしか動作確認されていないことだ。このRaという拡張をインストールして,ループの前でjit(1)と書くだけで100回以上のループなら30倍高速になるというのは,現在やっている計算からすると大変な福音なのだが,自分の環境は全部Windows XPの32ビット版なのだ。これは新しいコンピュータを買えという天の声だろうか。Y5はCore2 Duoだし,家のデスクトップもAthlonII X2 260という環境だから,所詮シミュレーションなどやるには非力なのだし,この際Core i7マシンを買ってしまうべきか。物欲の虜。
- Ra+jitは,既にRjpWikiで取り上げられていた。当時のバージョンでは,Windows XP 32bit版でも動いたのだな。ベクトル化する方が速いという結果からすれば,昨日考えたようにベクトル計算にする方が王道なのだろうが,いま動かしているコードはベクトル化が難しんだよなあ。ダメ元でWindows XPの32bit版でもRa+jitを試してみるか。現状,そのためには,R-2.13.1をソースからビルドしなくてはいけないわけだが,この際やってみるか。とりあえずRtools213.exeはフルインストールしてあるので,R-2.13.1をビルドできる環境は整っているはず。
- 事務補佐Yさんが使っているコンピュータはハードディスクが破損しているようで,bootcfg /rebuildではエラーが発生し,chkdskを掛けてみると50%まで進んで修復できない部分があったという表示がでて修復コンソールに戻ってしまった。仕方ないのでWindowsをインストールし直したいところだが,いきなりCドライブに上書きするのは怖いので,まず外付けドライブへのインストールを試みた。しかしこのコンピュータのBIOSではUSBハードディスクからのブートはサポートされていないようで,インストールできなかった。幸運なことにほとんど空のパーティションがあったので,そこにWindows XPを新規でインストールすることにした。ここで昼になったのでインストールを開始してから昼食に行く。インストールが終わればデュアルブートになるので2番目のパーティションから起動すればいいはずだ。その状態にまでもっていければMy Documentsの中身を救えるだろう。
- それにしても,どうしてPanasonicはLet's Note B10から無線LANのON/OFFスイッチを無くしてしまったのか。致命的な欠点だと思う。愚行という他はない。飛行機に乗る時はもちろんだが,海外のAPで無線LAN接続中に不正アクセスを受けたとき,ハードウェア的に無線LAN機能をOFFできなかったら(いくらソフトウェア的にOFFする仕組みがあったとしても),強制電源断するしかなくなって,システムが壊れてしまう危険があるだろう。
- My Documentsを救うには,標準のドラッグ&ドロップでExplorerの機能でコピーするのではダメだった。ハードディスクが壊れているところにくると,そこで止まってしまうのだ。困ったぞ。とりあえず回復コンソールのchkdskよりWindows自体のchkdskの方が強力そうなので,いったんそれを掛けてみることにした。再起動を要求されて時間がかかったが仕方が無い。それでもダメならエラーが起こっても無視して続けてくれるファイルコピーソフトをUSB経由で入れて使おう。
- 結局,「それでもダメ」だったので,だいなファイラーを使ってコピーした。同じファイルで同じエラーが出るのだけれども,先を続けてくれるのがドラッグ&ドロップとは違うところだ。
- 【幾霜】で知ったが,Wolfram Alphaは陰関数を解いてくれる。凄いなあ。
- さてRのWindows版のビルドだが,次の手順で行う。
- RtoolsをフルインストールするとできているC:\Rの中に,R-2.13.1.tar.gz(CRANからダウンロードする)をtar --no-same-owner -xvzfで展開する
- 予めR-2.13.1上にinstall.packages("jit",dep=TRUE)でjitを入れておき,そのディレクトリ("C:\Program Files\R\R-2.13.1\library\jit")をC:\R\src\libraryにコピーする
- tar -xvzfでra_1.3.0.tar.gz(http://www.milbo.users.sonic.net/ra/index.htmlからダウンロードする)をC:\Rに上書き展開する
- 環境変数TMPDIRを適当な書き込み可能なディレクトリにしておく必要があるので(それをやらないと途中までうまくいくが,baseパッケージをビルドするところで致命的エラーが出て止まってしまう),マイコンピュータのプロパティの詳細設定の環境変数のユーザ環境変数で新規ボタンをクリックし,TMPDIRを空き容量が大きいe:\tempに設定した(再起動が必要)
- C:\R\src\gnuwin32でコマンドプロンプトを開いて,make cleanしてからmake all recommendedする……数十分待ち
- pngとかjpegとかtiffといったビットマップ作成ライブラリはall recommendedには含まれていないので,make bitmapdllする
- recommendedなパッケージ群も含めてちゃんとビルドできたかチェックするには,make check-allする……5時間以上待ち(朝起きたら終わっていた。mgcvのドキュメントのクロスチェックのためのネットアクセスがうまくいかなかったらしく1件だけ警告が出ていたが,まあ問題なかろう)
- "C:\Program Files\R\R-2.13.1\library\jit"をC:\R\libraryにディレクトリごとコピーする(これでビルドされたRにjitがインストールされた状態になる)
- raがちゃんとできたかをチェックするために,ra\testsディレクトリに入り,..\..\bin\i386\Rterm --vanilla LANG=C LC_ALL=C <test-jit.R > test-jit.Rout 2>&1する(Raの説明テキストには..\..\bin\Rtermと書かれているが,R-2.13.1では32ビット版は..\..\bin\i386\Rterm.exeになることに注意。また,LANG=CとLC_ALL=Cをつけないと,メッセージが日本語版になってしまうので,次のdiffで余計な違いが報告されてうまくいかない)。
- diff test-jit.Rout.save test-jit.Routでビルドした日以外は差が無いことを確かめる(raのtarボールに入っているtest-jit.Rout.saveは英語版Rで実行された結果なので上述の注意が重要)
- pdf版のマニュアルはmake manualsで作れる。1878ページのpdfファイルができる。が,UseExternalXrefs絡みのエラーが出て終わってしまう。その前にC:\R\doc\manualでmake -f Makefile.win infoをやっておく必要があるのか……と思ってやったのだが,その後も状況は変わらず。このままではmake distributionも同じ所で止まるので,ここで頓挫中
- make distributionによりインストーラを作る(予めInno Setupをインストールしておく必要がある)
▼前【1959】(バグ潰し+α(2011年8月16日)
) ▲次【1961】(承前〜Ra入り独自ビルドR作成(2011年8月18日)
) ●Top
△Read/Write COMMENTS
Notice to cite or link here | [TOP PAGE]