1から始める Juliaプログラミング
目次
- 目次
- はじめに
- パッケージのロードをsysimageで高速化する
- 関数の初期実行をsysimagesで高速化する
- REPL用のデフォルトパッケージをロードしたsysimageを作る便利関数
- 参考資料
- MyEnigma Supporters
はじめに
これまでPythonでやってきたことを、
Juliaで置き換えようとすると、まず初めにぶつかるのが、
Juliaのコードにおけるライブラリのロードや、
初めて使う関数の計算が遅いなど、
いわゆる初回実行が遅い問題が気になってきます。
(英語ではこの問題をlatencyと呼んでいるそうです
github.com
)
Juliaは基本的に初回実行時にコードをJITコンパイルして実行するため、
動的言語でありながら、高速な実行を実現できているので、
myenigma.hatenablog.com
この初回実行が遅いのはある程度はしょうがないのかなと思います。
しかし、
毎回使うライブラリのロードや
変更が不要な関数が、
毎回遅いのはなんとかならないのかなと思っていました。
そこで、この問題の一つの解決策がPackageCompiler.jlです。
github.com
julialang.github.io
概要はこちらの動画を参照していただけるとわかると思いますが、
www.youtube.com
sysimageと呼ばれるJuliaのセッション保存機能を使って、
いつも利用するライブラリをロードした状態や、
関数のJITコンパイル結果を保存することにより、
そのsysimageを使って、juliaコードを実行したときに、
初回実行を高速化することができます。
(Julianのsysimageに関しては、こちらを参照ください
julialang.github.io)
今回の記事では、このPackageCompiler.jlとsysimagesを使うことで、
Juliaのコードの初回実行を高速化する方法を簡単に紹介したいと思います。
続きを読む