Git Product home page Git Product logo

blaze-core's Introduction

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.

Our goal is to allow 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. Allowing the easy mapping of high-level expertise to data while not 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.

The general parallelization and distributed scheduling problem is extremely difficult and under active research, as such we do not aim to solve the problem in its full generality. We aim to provide a compact set of abstractions and types to express general transformations between code and data in addition to a framework for exploring distributed computations.

Simultaneously, in reality most analysts and scientific-computing users spend a large portion of their time combating practical, operational issues, such as cleaning data, matching data formats, and navigating heterogeneous technology environments. Blaze aims to tackle this problem in its entirely and become a "glue project" allowing many different users of other PyData projects ( Pandas, Theano, Numba, SciPy, Scikit-Learn) to interoperate.

Status

Blaze is a work in progress at the moment. The code is quite a distance from feature complete. The code is released in an effort to start a public discussion with our end users and community.

Documentation

Installing

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

$ git clone [email protected]:ContinuumIO/blaze-core.git

Many of the dependencies ( llvm, numba, ... ) are non-trivial to install. It is highly recommend that you build Blaze using the Anaconda Python distribution.

Free Anaconda CE is available here: http://continuum.io/anacondace.html .

Using Anaconda's package manager:

$ conda install ply
$ conda install blosc

Introduction

To build project inside of Anaconda:

$ make build

To build documentation:

$ make docs

To run tests:

$ python setup.py test

Alternative Installation

If you desire not to use 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 [email protected]:ContinuumIO/conda.git
  1. Build and install conda.
cd conda
python setup.sh 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.
conda install ply
conda install blosc
conda install numpy
conda install cython
  1. From inside the Blaze directory run the Makefile.
make build

Contributing

Anyone wishing to discuss on Blaze should join the [blaze-dev](https://groups.google.com/a/continuum.io/forum/#!forum/blaze -dev) mailing list at: [email protected]

License

Blaze development is sponsored by Continuum Analytics.

Released under BSD license. See LICENSE for details.

blaze-core's People

Contributors

sdiehl avatar markflorisson avatar teoliphant avatar ehiggs avatar ilanschnell avatar maggie-m avatar jlowin avatar rgieseke avatar tmc avatar esc avatar

Watchers

Derrick Brittain avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.