Juliaとは?
Interface誌 6月号で特集されていました。
Interface(インターフェース) 2020年 06 月号
- 発売日: 2020/04/25
- メディア: 雑誌
雑に言うと、コンパイルできるPythonみたいなものらしいです(雑過ぎ)。PythonでNumpyとか使ってもどうしても遅くなるけど、C++はダルい…というときにピッタリ(?)な言語っぽいです。
Pythonほどではないようですが、ライブラリも豊富でカメラ入力を扱えるので画像処理にも使えそうです。他、ラズパイでも簡単に動くようです。
詳しくは、Interface誌を読むのが一番ですが、ネットの記事だとAtsushi (id:meison_amsl)さんの以下記事がおすすめです。
Juliaに入門してみる
読んでいるだけだとよく分からないので、とりあえず少し動かすところまでやってみることにします。
Juliaセットアップ
WindowsでもMacでもLinux(Raspberry Pi)でも動きます。基本的には以下の公式サイトからダウンロードすればOKです。
MacだとHomebrewでもインストールできます。ターミナルから以下コマンドでOKです。
$ brew cask install julia
Homebrewに関しては、以下記事参照下さい。
あとは、以下コマンドでJuliaが起動します。
$ julia
Jupyter Notebookで「Julia」
このままでは使いづらいので、Jupyter NotebookでJuliaを使えるようにするのが良いでしょう。Jupyter NotebookでJuliaが使えるときくと、びっくりする人も多いかもしれませんが、そもそもJupyter NotebookのJupyterって「Julia」「Python」「R」からとられているらしいです(全然知らなかった)。
以下2行を実行するだけで、Jupyter Notebook上でJuliaが使えるようになります。
julia> ENV["JUPYTER"]=Sys.which("jupyter") julia> using Pkg; Pkg.add("IJulia")
自分の環境では、Python用にJupyter Notebookを入れていたのですが、上記実行したらJupyter Notebook上でJuliaが使えるようになっていました。
Juliaから以下コマンドでJupyter Notebookを起動することもできます。
julia> using IJulia; notebook()
Jupyter Notebook使って描いたジュリア集合(マンデルブロ集合)
コードは以下のような感じです。
julia-example/draw_julia_set.ipynb at master · karaage0703/julia-example · GitHub
Julia初心者向けの情報
Interface誌の特集を執筆した、ごまあざらしこと @SatoshiTerasaki さんのQiita記事が詳しいです。
上記を読んだ後は @SatoshiTerasaki さんをストーカーの如く、激フォローしておけば間違いないでしょう。
ごまふあざらし (@MathSorcerer) | Twitter
terasakisatoshi (Satoshi Terasaki) · GitHub
とりあえずいろんなコードがみたいという方は、@SatoshiTerasaki さんのGitHubの以下リポジトリに豊富なサンプルがあります。
GitHub - terasakisatoshi/juliaExer: my julia exercise
ブラウザで手軽にJuliaを動かせるサービス「Binder」
PythonでいうGoogle Colaboratory的なサービス「Binder」もあります。使い方は例によって @SatoshiTerasaki さんのQiita記事を参考にしましょう。
Julia の Jupyter Notebook を他人に試してもらうためのツールとして Binder を活用する - Qiita
ブラウザでJupyter Notebook風に実行することができます。ますますPython感覚で使えますね。とりあえず試してみましたが、確かにPython感覚で手軽に使用できます。
まとめ
科学計算言語「Julia」の紹介をしてみました。使いどころとしては、自分の場合だとNumpyだとどうしても遅くなってしまうようなマニアックな画像処理をするときに一部、もしくは全部をJuliaで書くといったような感じでしょうか。PythonとJuliaを連携させるといったこともできるようです(例によって @SatoshiTerasaki さんの記事)。
PythonからJuliaを呼び出したいんだ(Julia v 0.7 および v1.0 で OK) - Qiita
ラズパイでも使える上に、カメラライブラリもあるということで、エッジコンピューティング的な使い方でも活用ポイントあるかもしれません。
懸念点としては、やはりユーザーがまだまだ少ないところでしょうか?逆に言えば、まだまだ第一人者になれるチャンスかもしれません。高速科学計算に興味ある方は是非!
Interface(インターフェース) 2020年 06 月号
- 発売日: 2020/04/25
- メディア: 雑誌