LoginSignup
0
3

More than 5 years have passed since last update.

Python3.5 でNumbaをインストールして使ってみた

Last updated at Posted at 2016-12-15

環境

Ubuntu 16.04

インストール方法

これを参考にしてインストールした

# llvmをインストール(入れるとバージョンが3.8だった)
$ sudo apt-get install llvm #他のパッケージは元から入っていた
$ sudo pip3 install enum34 funcsigs
$ sudo LLVM_CONFIG=/usr/bin/llvm-config-3.8 pip3 install llvmlite
$ sudo LLVM_CONFIG=/usr/bin/llvm-config-3.8 pip3 install numba

実行

時間の計測にtimeで良いのかは不明だけど、ざっくりと知りたいだけなのであまり気にしていない。

import time
import numpy as np
import numba

@numba.jit
def rando(a):
    for i in range(N):
        for j in range(N):
            a[i][j] = np.random.rand()
    return a

start = time.time()
N = 100
a = np.zeros((N, N))
for i in range(1000):
    a = rando(a)

end = time.time()

print(end - start)

@numba.jitの部分をコメントアウトすると、時間が比較できる。
コメントアウトしなかった場合1.46s, コメントアウトした場合26.68sとなり20倍以上速くなった
一方でループの回数を1000回から1回に変更するとコメントアウトしなかった時0.025s、コメントアウトしたとき0.541sとなり、numbaを使わなかった方が速くなった。一番最初にコンパイルするのに時間がやはりかかっている。

一枚目の画像がループ回数が0付近のときの画像で、二枚目が全体的な経過時間の画像
縦軸が時間(秒)で、横軸がループ回数、緑色がnumbaなしで青色がnumbaあり。
around1.png
global.png

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3