Skip to main content
Help us improve Python packaging – donate today!

Runtime compiler for numerical Python.

Project Description


Parakeet is a runtime accelerator for an array-oriented subset of Python.
If you're doing a lot of number crunching in Python,
Parakeet may be able to significantly speed up your code.

To accelerate a function, wrap it with Parakeet's **@jit** decorator:

import numpy as np
from parakeet import jit

x = np.array([1,2,3])
y = np.tanh(x * alpha) + beta

def fast(x, alpha = 0.5, beta = 0.3):
return np.tanh(x * alpha) + beta

def loopy(x, alpha = 0.5, beta = 0.3):
y = np.empty_like(x, dtype = float)
for i in xrange(len(x)):
y[i] = np.tanh(x[i] * alpha) + beta
return y

def comprehension(x, alpha = 0.5, beta = 0.3):
return np.array([np.tanh(xi*alpha) + beta for xi in x])

assert np.allclose(fast(x), y)
assert np.allclose(loopy(x), y)
assert np.allclose(comprehension(x), y)


You should be able to install Parakeet from its [PyPI package]( by running:

pip install parakeet


Parakeet is written for Python 2.7 (sorry internet) and depends on:

* [treelike](
* [nose]( for unit tests
* [NumPy and SciPy](

Optional (if using the LLVM backend):

* [llvmpy](

How does it work?
Your untyped function gets used as a template from which multiple *type specializations* are generated
(for each distinct set of input types).
These typed functions are then churned through many optimizations before finally getting translated into native code.

More information

* Read more about Parakeet on the [project website](
* Ask questions on the [discussion group](!forum/parakeet-python)
* Watch the [Parakeet presentation]( from this year's [PyData Boston](, look at the [HotPar slides]( from last year
* Contact the [main developer]( directly

Supported language features

Parakeet cannot accelerate arbitrary Python code, it only supports a limited subset of the language:

* Scalar operations (i.e. "x + 3 * y")
* Control flow (if-statements, loops, etc...)
* Nested functions and lambdas
* Tuples
* Slices
* NumPy array expressions (i.e. "x[1:, :] + 2 * y[:-1, ::2]")
* NumPy array constructors (i.e. np.ones, np.empty, etc..)
* NumPy ufuncs (i.e. np.sin, np.exp, etc..)
* List literals (interpreted as array construction)
* List comprehensions (interpreted as array comprehensions)
* Parakeet's "adverbs" (higher order array operations like, parakeet.reduce)

Parakeet currently supports compilation to sequential C, multi-core C with OpenMP (default), or LLVM (deprecated). To switch between these options change `parakeet.config.backend` to one of:
* "c": lowers all parallel operators to loops, compile sequential code with gcc
* "openmp": also compiles with gcc, but parallel operators run across multiple cores (default)
* "cuda": launch parallel operations on the GPU (experimental)
* "llvm": older backend, has fallen behind and some programs may not work

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node


This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
parakeet-0.19.tar.gz (226.0 kB) Copy SHA256 hash SHA256 Source None Nov 5, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page