from numba import jit で高速に

numbaのjitというものを使うと普通のpythonの計算がとても速くやってくれるという噂を聞きました。

 

試しに使ってみることにします。

 

始めましょうか。

 

 

===========================

from numba import jit
import time

@jit
def function():
    number = 10 ** 8
    x = [0] * number
    total_time = 10
    time_mesh = 10 ** 3
    dt = total_time / time_mesh
    a = 0.01
    b = 0.02
    for i in range(number - 1):
        x[i + 1] = x[i] + dt * (a * x[i] - b * x[i] ** 2)

t0 = time.time()
function()
t1 = time.time()
print('Calculation time=', float(t1 - t0), '[s]')

 

==========================

計算にかかった時間が、

numba jit 1.5秒

negative control 12.6秒

となった。

 

さらに、計算回数を10倍にして、増やすと、

numba jit 18.1秒

negative control 147.6秒

となった。

 

やはり、多少コードの変更は必要だが、numbaを使った方が圧倒的に速いことがわかった。

 

参考文献はこちら