2015年5月22日金曜日

Julia の発展途上なところ

この前の簡単な内点法などをしてみて、以下のところが数理最適化に使うには Julia はまだまだ発展途上な印象を受ける。

(1) 遅い
C, C++ などと比較しても遜色ない速さ、とうたっているが、これはある意味で当然で、そもそも実行前にコンパイルしている(インタープリターではない)。

また、実際にプログラミングをしてみると
using PyPlot
など頻出する using の遅さが地味に結構痛い。

ちなみに、これについては、PyPlot などを ~/.juliarc でロードしておけば、それなりに快適にできる。Matlab が起動に時間がかかっている作業を Julia でも行っているようなもので、起動に時間をかけることで、そのあとの作業を効率化できる。


(2) Profiling がカウンターであって秒で計測できない。
たとえば 1/1000 秒ごと、と指定してもサンプルカウントをしているので、かなり荒い情報しか得られない。だいたいのボトルネックを把握するには有効であるが、大まかなチューニングしか行えない。
しかも @time などの時間測定のコマンドを組み入れた関数を @profile で測定すると、サンプルカウントがうまくいかないことがある。

(3) IDE の機能がいまひとつ。
Juno を使ってみたが、数理最適化に多い反復計算には向いていなかった。現状では、emacs とコマンドラインが、一番便利。
ただし、Julia の REPL は結構強力であるので、コマンドラインからの利用でもそれなりに行けたりする。



ここに挙げたうちで一番重要そうなのは (3) で、たぶん IDE に Python の spyder なみの環境ができれば Julia の利用可能性はぐっと高まるかと思う。



0 件のコメント:

コメントを投稿