numbaの簡単な使用


JITとは?
JIT(just-in-time compilation)は動的コンパイルの一種であり、プログラムの実行効率を向上させる方法である.通常、プログラムには2つの実行方法があります.静的コンパイルと動的直訳です.静的にコンパイルされたプログラムは実行前にすべてマシンコードに翻訳され,直訳では1文1文実行しながら翻訳される.インスタントコンパイラでは、ソースコードを1つ1つコンパイルしますが、翻訳したコードをキャッシュしてパフォーマンス損失を低減します.
時間のある子供靴は、コンパイル言語と動的言語がコンパイル運転にどのような異同があるかをもっと研究することができます.
Numbaとは
Numbaは1つのライブラリで、実行時にPythonコードをローカルマシン命令にコンパイルすることができて、LLVMコンパイラを使って完成したので、JITの技術を利用して、コードをいくつかの何度も運行することができて、大型の演算の中で運行効率はわりに大きい向上があります
numbaのインストール
pip install numba

numba使用
@jit
from numba import jit
from numpy import arange

# jit decorator tells Numba to compile this function.
# The argument types will be inferred by Numba when function is called.
@jit
def sum2d(arr):
    M, N = arr.shape
    result = 0.0
    for i in range(M):
        for j in range(N):
            result += arr[i,j]
    return result

a = arange(9).reshape(3,3)
print(sum2d(a))

#         ,                   ,       numba               ,     
# a = arange(9999999).reshape(3333333,3)           

テスト中、numbaはいくつかの大規模な反復科学演算で効率が向上したが、TensorFlowではこのライブラリをサポートしていない.
関連資料:
インスタントコンパイラJIT numba公式サイトPython・numbaの基本アプリケーションはnumbaでpythonに高性能C拡張を書きます