Skip to content

nvdnkpr/blaze

 
 

Repository files navigation

Blaze is the next-generation of NumPy. It is designed as a foundational set of abstractions on which to build out-of-core and distributed algorithms over a wide variety of data sources and to extend the structure of NumPy itself.

Blaze allows easy composition of low level computation kernels ( C, Fortran, Numba ) to form complex data transformations on large datasets.

In Blaze, computations are described in a high-level language (Python) but executed on a low-level runtime (outside of Python), enabling the easy mapping of high-level expertise to data without sacrificing low-level performance. Blaze aims to bring Python and NumPy into the massively-multicore arena, allowing it to able to leverage many CPU and GPU cores across computers, virtual machines and cloud services.

Continuum Analytics' vision is to provide open technologies for data integration on a massive scale based on a vision of a structured, universal "data web". In the same way that URL, HTML, and HTTP form the basis of the World Wide Web for documents, Blaze could be a fabric for structured and numerical data spearheading innovations in data management, analytics, and distributed computation.

Blaze aims to be a foundational project allowing many different users of other PyData projects ( Pandas, Theano, Numba, SciPy, Scikit-Learn) to interoperate at the application level and at the library level with the goal of being able to to lift their existing functionality into a distributed context.

Status

Blaze is a work in progress at the moment. The 0.1 release is imminent with a first-usable release due at the end of August 2013.

Documentation

Installing

If you are interested in the development version of Blaze you can obtain the source from Github.

$ git clone git@github.com:ContinuumIO/blaze.git

Many of the dependencies ( i.e. llvmpy ) are non-trivial to install. It is highly recommend that you build Blaze using the Anaconda distribution, a free Python distribution that comes with a host of scientific and numeric packages bundled and precompiled into a userspace Python environment.

Anaconda can be downloaded for all platforms here: http://continuum.io/downloads.html.

Introduction

Pre-requisites:

  • llvmpy >= 0.11.1
  • cython >= 0.16
  • numpy >= 1.5

Install all pre-requisites and then run:

python setup.py install

Docs are generated using sphinx in the docs directory.

Alternative Installation

If for some reason you wish to avoid using Anaconda it is possible to build Blaze using standard Python tools. This method is not recommended.

  1. After you have checked out the Blaze source, create a virtualenv under the root of the Blaze repo.
$ virtualenv venv --distribute --no-site-packages 
$ . venv/bin/activate
  1. Pull the Conda package manager for use inside of your virtualenv.
$ git clone git@github.com:ContinuumIO/conda.git
  1. Build and install conda.
$ cd conda
$ python setup.py install
$ cd ..
  1. Create a directory in your virtualenv to mimic the behavior of Anaconda and allow Continuum signed packages to be installed.
$ mkdir venv/pkgs
  1. Add conda to your path.
$ PATH=venv/bin:$PATH
  1. Use Anaconda to resolve Blaze dependencies. This method is experimental and not officially supported.
$ conda install ply
$ conda install numpy
$ conda install llvmpy
$ conda install cython
$ conda install pycparser
  1. From inside the Blaze directory run the Makefile.
$ make build

Contributing

Anyone wishing to discuss on Blaze should join the blaze-dev mailing list at: blaze-dev@continuum.io

License

Blaze development is sponsored by Continuum Analytics.

Released under BSD license. See LICENSE for details.

About

Blaze is the next generation of NumPy

Resources

Stars

Watchers

Forks

Packages

No packages published