#julialang #python #numpy #gcc #gpp #openmp #dsfmt #mersennetwister
使用したCとC++のコードは
https://gist.github.com/genkuroki/740f5515330217a3b9247b636fc09f0d
にあり、Python と Julia の Jupyter notebooks が
https://gist.github.com/genkuroki/45e47f56799aee57c3dc11cda6df869a
にあります。
勉強になっています。
みなさん、本当にどうもありがとうございます。
#julialang #python #numpy #gcc #gpp #openmp
【更新】私のWindows環境での現時点での最高速のまとめ【更新】
ループを1億から10億に増やしました。
モンテカルロ法による円周率の計算でループを10億回まわした場合
g++ → 26秒台
gcc default rand() → 約25秒
Python & numpy → 約22.5秒
gcc Mersenne Twister → 約8.5秒
g++ OpenMPで並列化 → 約4秒
Julia → 約4秒
gcc dSFMT → 約3.2秒
ついにJuliaを凌駕した!!!
gcc dSFMT OpenMPで並列化 → 1.3秒台
Juliaの並列化のケースとほぼ互角だと言ってよいでしょう!
Juliaで並列化 → 1.2秒台
今回の件で、モンテカルロシミュレーションで乱数生成が高速であることの重要性を初めて理解できました。