黒木玄 Gen Kuroki is a user on mathtod.online. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

【更新】私のWindows環境での現時点での最高速のまとめ【更新】

円周率を求めるモンテカルロの1億回ループにかかる時間

g++ → 2.6秒台

Python & numpy → 2.3秒台

g++ & OpenMPで並列化 → 0.4秒台

gcc & dSFMT → 0.4秒台

Julia → 0.4秒台

Juliaで並列化 → 0.12秒

【更新】私の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秒台

今回の件で、モンテカルロシミュレーションで乱数生成が高速であることの重要性を初めて理解できました。

黒木玄 Gen Kuroki @genkuroki

使用したCとC++のコードは

gist.github.com/genkuroki/740f

にあり、Python と Julia の Jupyter notebooks が

gist.github.com/genkuroki/45e4

にあります。

勉強になっています。

みなさん、本当にどうもありがとうございます。

· Web · 0 · 1