Mathtodon#ccall

Juliaとgccの比較について、円周率モンテカルロのような単純計算ではなく、実際に役に立つ数値計算で比較したらどうなるかに興味がある人は多いと思います。

インターネット上で見付かる指数積分函数 Ei(x) のCによる数値計算のコードをほとんどそのままJuliaに忠実に翻訳したものと、もとのCのコードをmingwのgccでコンパイルしたものとの速度比較を実行してみました。

結論:計算の速さはほぼ同じ。

gist.github.com/genkuroki/dabc

JuliaをCの代わりに用いても数値計算の速さ的には何も問題がないというのが結論。

github.com/stevengj/18S096-iap
のような最適化は行っていません。

mathtod.online/media/JfVZMKAwD

gcc連合軍とJulia帝国軍の戦いの記録を1枚のファイルにしました。

gist.github.com/genkuroki/c9ae

例の円周率モンテカルロによる比較です。

mathtod.online/media/76DAtpHMd

Juliaの文字列としてCで書かれた函数のコードを書いておき、Juliaからgccを呼び出してそのCのコードをコンパイルし、Cで書かれた函数をJuliaから利用する方法
gist.github.com/genkuroki/5a45

もとネタは
perfectionatic.org/?p=470
より。もとネタの方では gcc に -PIC オプションがついていた。

Cで書かれた函数をそのまんまJuliaで使える。

しかもCで書かれた函数のソースコードを別ファイルにしておく必要がなくて、Jupyter notebook の中にCのコードをそのまま入れておける。短いコードの実験では便利だと思う。