{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# The future of Numpy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "The future of NumPy is **Blaze**, a new open source Python numerical library. \n",
    "\n",
    "<img src=\"images/blaze.png\" />\n",
    "\n",
    "Blaze is supposed to process *Big Data* better than NumPy ever can. \n",
    "\n",
    "Big Data is nowadays a sort of *buzzword*, and can be defined in many ways. \n",
    "\n",
    "Here, we will define Big Data as data that cannot be stored in memory or even on a single machine. \n",
    "\n",
    "Usually, the data is distributed amongst several servers. Blaze should also be able to handle large quantities of streaming data that is never stored."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "**Blaze Project**: [http://blaze.pydata.org/]()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "Blaze is centered around **general multidimensional array** and **table abstractions**. \n",
    "\n",
    "The classes in Blaze represent different data types and data structures as found in the real world. \n",
    "\n",
    "Blaze has a generic computation engine that can process data spread out over multiple servers and send instructions to specialized low-level kernels."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Blaze extends NumPy to provide custom-defined data types and heterogeneous shapes. \n",
    "\n",
    "This, of course, allows for greater flexibility and ease of use.\n",
    "\n",
    "Blaze is designed around `arrays`. Just like the NumPy `ndarray`, Blaze offers metadata with extra computational information. The metadata defines how data is stored, (`heterogeneously`) typed and indexed as multidimensional arrays. \n",
    "\n",
    "Computation\n",
    "can be performed on various hardware including heterogeneous clusters of CPUs and GPUs.\n",
    "\n",
    "Blaze has the ambition to become the NumPy of multiple node clusters and distributed computing. The main idea, just as with NumPy, is to focus on arrays and array operations while abstracting the messy details away."
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.4.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
