Numba
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Numba_logo.svg/220px-Numba_logo.svg.png)
Numba는 llvmlite 파이썬 패키지를 통해 LLVM을 사용하여 파이썬 및 NumPy의 하위 집합을 빠른 기계 코드로 변환하는 오픈 소스 JIT 컴파일러이다. 이는 종종 사소한 코드 변경만으로 CPU 및 GPU용 Python 코드를 병렬화하기 위한 다양한 옵션을 제공한다.
Numba는 2012년 트래비스 올리펀트(Travis Oliphant)에 의해 시작되었으며 이후 깃허브 저장소에서 자주 릴리스되면서 활발한 개발이 진행되었다. 이 프로젝트는 DARPA, 고든 앤드 베티 무어 재단(Gordon and Betty Moore Foundation), 인텔, 엔비디아 및 AMD, 깃허브의 기여자 커뮤니티의 지원을 받아 아나콘다(Anaconda, Inc.)의 개발자가 주도한다.
예시
Numba는 수치 계산을 수행하는 Python 함수에 numba.jit 데코레이터를 적용하여 사용할 수 있다.
import numba import random @numba.jit def monte_carlo_pi(n_samples: int) -> float: """Monte Carlo""" acc = 0 for i in range(n_samples): x = random.random() y = random.random() if (x**2 + y**2) < 1.0: acc += 1 return 4.0 * acc / n_samples
JIT 컴파일은 함수가 호출될 때 투명하게 발생한다.
>>> monte_carlo_pi(1000000) 3.14
외부 링크
- Numba - 공식 웹사이트