めもらんだむ

個人的な備忘録。Julia言語やPythonに関することが中心になると思われます。

Julia言語を使ってみた

<追記(2022年11月18日)>
コンパイルのオーバーヘッドが大きいと感じたのは、私の使い方が悪かったようです。
julia (Juliaのコード)
という具合にコマンドを走らせる形がよろしくなかったようです。以下の記事を参照し、REPLというJulia言語のコマンドラインのようなものを通して使うようにすれば、いちいちコンパイルせずに使えるようになりました。コンパイルを待つ時間が減り、大変快適です!!!
qiita.com

但し、exit()があるとREPLから抜けてまた一から(最初からコンパイルするところから)始まるので、コード開発中の動作確認(私はこまめに動作を確認するタイプの人間なのです)には、わざとエラーを起こして止めるようにしてをしています。統合開発環境なるものを使ったことがない(vi一筋25年の)原始人はこうしますが、いい道具を使えばもっとスマートにコード書きができるのだと思います。

〜〜〜〜〜〜〜〜
これまで他人様がPythonで作成したライブラリを使ってきましたが、その枠では収まりくらなくなり、自力で実装することにしました。
残念ながら、自分の技術力もあってかPythonでは処理速度が遅く、早いと噂されるJulia言語に手を染めてみました。
実装の手始めに過ぎない段階ではありますが
コンパイルのオーバーヘッドが大きい
コンパイルが済むと爆速→くり返し計算には強みを発揮
というのが第一印象です。

Fortranが「母国語」の者からすると、配列がインデックスが1から始まるのがデフォルトだったり、多次元配列をメモリに格納する様式がFortranと一緒(CやPythonとは異なる)だったりで馴染みやすくはあります。

処理速度を早くしたいならば変数の型を指定した方がよいとか、当たり前ですが、結局はFortranとかと同じようにあれこれ書き込まないといけないので、Pythonのようなお手軽さは薄まります。
自分がやりたいことがどのぐらいmassiveな計算かを見極めないと、コンパイルやコーディングに時間がかかるというオーバーヘッドが大きい分、やりたいことを実現するのに必要な正味の時間は結局Pythonと大して変わらない(ヘタすると多い)ということになりそうです。