Python高速化は Numba を使う。@jit だ。そこに じっと しておれェ なにを!
JITコンパイラを使う。高速化したい関数の前に @jit を書く。そしてワタクシは、およよ、これは速いぞ。C++並みですぞの。ま~なんてこった。
そしたらもう一つ、並列化も可能だという。そこでCopilot先生に訊いて真似たのである。
∑(1/n) n = 1 から1億までの計算
概要
import time
from numba import jit, prange
@jit(nopython=True, parallel=True)
def series_sum(num_max):
sum = 0
for n in prange(1, num_max + 1):
sum += 1 / n
return sum
ここで num_max = 100000000 でして1億ね
parallel なし --- 0.5秒ぐらい
parallel あり --- 0.12秒ぐらい
@jit なし --- 7秒ぐらい
C++よりも速いぞの・・・いや、C++もOpenMP使って並列化すればかなり速くなるぞの
というわけでPythonで数値計算をする場合にはNumbaでjit, prange使おうぞの。
1億までの計算 なにもしないと 7秒、@jit 使うと 0.5秒、さらに並列化して 0.12秒。
うむむむむ。別の計算してアーーーソブ