August 31, 2005
Matlabの計算速度や使い勝手は、大抵の面に置いて満足がいくものだけど、扱うdataのサイズが大きくなるとどうしてももっさりとしてくる。同じ様なコトは、常々思っていたけど、今でもかなり厳しい状況なのにも関わらず、もしかしたら将来的にあと1.5倍ほどサイズが増えてしまうかもしれない。
という訳で、よりefficientな方法を考えていた訳だけど、やっぱりFortranを試してみるしか無いのかもしれない。2年ほど前、visitingで来ていたnumericalなヒトがFortranを使っていて、その時使っていたmachine上のMatlabで20分以上かかるものを、ものの一瞬に解いていたのを見たのが衝撃的だった。宿題の答えを、「じゃー、ちょっと今ココでやってみるか」みたいな感じでやって、あっという間にキレイなpolicy functionのグラフを見せてくれていた。
以前にもFortranにtryした時は、Fortran 77をいじってみたけど、これは行列の計算をサクッとやってくれないので、あっさりと諦めてしまった。さすがに、Matlabで書いたprogramを、いちいち巨大な行列の一つひとつの要素について計算するprogramなんて書きたくない。Fortran 95ではmatrixの計算をサポートしているみたいだったけど、Fortran 95のコードをMatlab側から呼び出して使う(MEX file)には、商用のコンパイラしかサポートしていないみたいだったので、諦めてしまった。(今、調べてみたら、Mac版のMatlabはgcc 3.3までしかサポートしていないみたいだった。商用コンパイラはAbsoft f77/f90 (ver. 8.2a)まで。詳細はココ)
でも、今回は、結構背に腹は代えられないので、Matlab側からFortranのコードを呼び出して使うのではなく、必要最低限な部分はFortranにやってもらってspeed upを図ろうと思う。
GCC 4ではFortran 95のコンパイラも含まれているらしい。OS X用に作られたBinary installerはHigh Performance Computing for Mac OS Xで手に入る。そこに書いてある手順に従ったら、インストールは一瞬で終わった。OS 10.3の場合は、cctoolsの最新版もインストールする必要がある。
試しに、以前遊びで作ったFortran 77のプログラムを走らせてみたら、問題なく動いた。Fortran 95でコンパイルするにはTerminal.appから
gfortran FILENAME.f
でいいみたい。GCC 4ではauto-vectorizationもサポートされているらしいので、そのoptionをつけるには
gfortran -ftree-vectorize FILENAME.f
とするらしい。
Fortran 95を実行する環境は整ったので、後は時間を見つけてF95の文法をちょこっと勉強すればOKなはず。
Leave a Comment » |
Computation |
Permalink
Posted by mnchk
August 24, 2005
せっかくMTに移行して、日記をちゃんと書き出したと思ったら、長い事満足にInternetに繋げない生活がやって来てしまったので、微妙な空白が生まれてしまった。せっかく、見に来始めてくれたヒト達がいたかもしれないけど、これでまた白紙に戻しちゃったかも…引っ越ししてcable internetの工事がなかなか終わらなかったせいなんだけど、その間、昔ながらのdial-upで繋いでたりした。
確かに、High-speed Internetが無いといろいろと不便なコトだらけ。例えば、外からMatlabのprogramを回しているDesktop machineの状況を見たりする事も出来ないし、RAの仕事で巨大なfileを送らなければいけない時とか、わざわざ学校まで行かなければいけなかったりもする。なにより、wirelessでInternetを使う事が出来ないって言うのは痛い。
学校に行けば、快適な通信環境なのは分かり切っているけど、RemoteでDesktop machineの状況を見る事が出来ないから、必然的に家に張り付いているコトが多かった。まぁ、でも、そういう部分が無かったら、dial-upで満足、とは言わないけど、DSL位の中速回線でも全然問題無いかも。一日数回メールチェックして、みたいな生活も意外と悪くないと思う。っていうか、その方が、意外と物事に集中出来るかもしれない。
dial-upだと重たいサイトとかは見に行かなくなるし、必要最低限の事しかしなくなる。さすがに自分の日記も書かなかったくらいだから、ちょっとそれは問題かもしれないけど、自分は思っていたよりもInternet依存度は低いらしい。それはちょっと意外だった。
1 Comment |
Diary |
Permalink
Posted by mnchk
August 3, 2005
Single-button looks, multibutton charm
Appleが新しく導入した純正mouseに付けたキャッチコピー。すごくAppleのこだわりを如実に表しているコピーだと思う。
今までMacの登場以来、頑なにこだわり続けてきた、”Simple is best”な1-button mouseだったけど、context menuのサポートや、scroll wheelの登場などで、どうしても他の多機能mouseと比べると、かなり見劣りしていたのは事実。
特に優秀な”Hardwareの会社”として知られるMicrosoft(XBoxを除く)のInteliMouseは、縦スクロールのみならず横スクロールまで取り入れて、かなり使いやすい。Excelの様な横スクロールが多いapplicationでは欠かせないと思う。
しかも、今年初めにリリースしたPowerBook G4では、トラックパッドでの二本指スクロールも実現された。この多機能mouseがあふれている中で、Appleが自らのこだわりをどういう風に新しい製品の中に取り入れてくるかすごく興味があった訳だけれども、今回リリースされたMighty Mouseは、simpleなmouseという制約条件の中での最適解な気がする。
ユーザーは、自分自身で機能をコントロールできるので、Mighty Mouseは、見た目だけではなく、本来のsimpleな1-buttonを踏襲しつつ最新の機能をも包括している。
基本的に、ボクはこの手のアプローチが好きだったりする。どういう事かと言うと、ある制約を(自ら)課した上でその中で最適なモノを見つけ出していく、ということ。極端な話、多機能mouseを実現したかったら、単純に沢山のボタンを配置すれば良いわけで、それでは何の面白みも無くなってしまう。
車にしたって、同乗するヒトの快適性を追及したら、家みたいな車にしちゃえば良い訳だし、速さを追及するならば、どんどん馬力を上げていけば良いだけなのかもしれない。
でも、世の中、unconstrained optimizationなんてある訳が無い。ボクらが直面する問題をconstrained optimizationとして捉えるならば、そのconstraint自体を楽しめる方がよっぽどいいはず。と、ボクは思うので、そのような製品開発のphilosophyを持っている商品は好きだし、そのような生き方をしているヒトを好きだったりする。
Leave a Comment » |
Mac |
Permalink
Posted by mnchk