Juliaについての備忘録
Juliaについての備忘録(参考にしないほうがいいです)
^インストール
#Julia言語 【結論】自分のパソコンでJulia言語をJupyter上で手っ取り早く使いたい人は JuliaPro personal 版(無料)をインストールしてください。【結論終】https://t.co/vec8BJkbPk
— 黒木玄 Gen Kuroki (@genkuroki) 2018年1月20日
Julia Box を使えばブラウザだけで利用できます。https://t.co/7MSmde47fQ
ーーーーーーwindows
上のツイートに書かれてあるようにjuliapProを使ってインストールした
メールアドレスとパスワードを求められるので入力するとこんなメールが届く。
ここでJuliaPro-0.6.2.1 (for Windows)をクリックするとwindows版のインストーラー(700MBぐらい?)を入手できる
後はそれに従ってインストールする(2GBぐらい)
JuliaはPythonと連携を取ることができるが
Julia Proフォルダの中にもPythonが入っていて最初はそれと連携をとろうとしているので
以前から入っていたpythonと連携を取らせるためには
Jupyter Notebook Viewer
を参考に
ENV["PYTHON"]="C:\\hoge\\python.exe"
Pkg.add("PyPlot")
でこれまで用いていたpythonのpathを指定する。
ーーーーーーubuntu
ubuntuもJuliaProを使ってインストールした
JuliaPro-0.6.2.1 (for Linux)をクリックすると冷凍されたファイルが手に入る。
https://juliacomputing.com/docs/JuliaProQuickStartGuide-Linux.pdf
スタートガイドには
install_juliapro.shが必要だと書かれているがこれは
さっきのメールのJuliaPro Installer (for Linux)をクリックするとinstall_juliapro.txtが手に入るのでそれを.shに拡張子を変える
インストールに必要なものもさっきのスタートガイドP.3に指定されているのでそれをインストールする
sudo apt-get update
sudo apt-get -y install gcc
sudo apt-get -y install python2.7-dev
sudo apt-get -y install libzmq5
sudo apt-get -y install hdf5-tools
sudo apt-get -y install default-jdk
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64
これで install_juliapro.sh <冷凍されたファイルの場所> <解凍する場所> を実行
最初にインストールに必要なものがそろってるかのチェックが行われる。
私の環境ではインストールに必要なものチェックがうまくいってなかった
(
apt list $req_app | grep installed
みたいな操作が行われていたがこれがちゃんと動いてなかった
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ので
)
インストールに必要なものは揃っているはずだしこのチェック部分をコメントアウトして無理矢理動かした(おいおい)
私の知り合いは install_juliapro.shを使わずその場に解凍して使おうとしたらしいけれどPythonとの連携がうまくいかなかったらしい
jupyterでjuliaを使おうとするのに手間取ってしまった
#Julia言語
— 黒木玄 Gen Kuroki (@genkuroki) 2018年2月8日
ポイントは2つ
(1) Pkg.add("IJulia") の前に JUPYTER 環境変数をjupyter.exeへのフルパスに設定しておくこと。Julia内で
ENV["JUPYTER"]="C:\\Anaconda3\\Scripts\\jupyter.exe"
のように設定することも可能。
(2) Pkg.add("PyPlot") の前に PYTHON 環境変数で~以下略
ここに書いてある方法で解決した
jupyter.exeへのpathを調べるには
ターミナルでwhich jupyterを使えばよい
^書き方
bicycle1885.hatenablog.com
↑のサイトが結構わかりやすい
C++でいうクラスのようなものがないのがちょっと悲しい(あるなら教えて)
typeとimmutableというのがあるがこれはあくまでもデータ型であってメンバ関数を取ることはできない。
それらを受け取って処理する関数を外に作成しろということらしい。
indexが1から始まる(Fortranに合わせているらしい)
^感想
パッケージ追加がパッケージ追加後プリコンパイルしているようでクッソ遅い
計算は早いらしいがjulia自身の起動が遅いので小回りが利かない。
私の書いたプログラムはpythonに比べて早くならなかったので否定的な感想ばかりになってしまったけど
スピン系を扱ってる知り合いはテンソル積が簡単にかけるうえに速度が速いので結構気に入っているらしいです