IPython: Tools for the Entire Lifecycle of Research Computing
Speaker: Fernando Perez, PhD, University of California, Berkeley
Date: Friday, March 1 2013
Time: 4:00PM to 5:00PM
Location: Rm. 46-3310
Host: Satrajit Ghosh, MIT
Contact: Satrajit Ghosh, firstname.lastname@example.orgRelevant URL:
IPython started as a better interactive Python interpreter in 2001, but over the last decade it has grown into a rich and powerful set of interlocking tools aimed at enabling an efficient, fluid and productive workflow in the typical use cases encountered by scientists in everyday research.
Today, IPython consists of a kernel executing user code and capable of communicating with a variety of clients, using ZeroMQ for networking via a well-documented protocol. This enables IPython to support, from a single codebase, a rich variety of usage scenarios through user-facing applications and an API for embedding:
* An interactive, terminal-based shell with many capabilities far beyond the default Python interactive interpreter (this is the default application opened by the ``ipython`` command that most users are familiar with).
* A Qt console that provides the look and feel of a terminal, but adds support for inline figures, graphical calltips, a persistent sessionthat can survive crashes of the kernel process, and more.
* A web-based notebook that can execute code and also contain rich text and figures, mathematical equations and arbitrary HTML. This notebook presents a document-like view with cells where code is executed but that can be edited in-place, reordered, mixed with explanatory text and figures, etc.
* A high-performance, low-latency system for parallel computing that supports the control of a cluster of IPython engines communicating over ZeroMQ, with optimizations that minimize unnecessary copying of large objects (especially numpy arrays).
In this talk we will show how IPython supports all stages in the lifecycle of a scientific idea: individual exploration, collaborative development, large-scale production using parallel resources, publication and education. In particular, the IPython Notebook supports multiuser collaboration and allows scientists to share their work in an open document format that is a true "executable paper": notebooks can be version controlled, exported to HTML or PDF for publication, and used for teaching. We will demonstrate the key features of the system, including recent examples of scientific publications made with the notebook.
See other events happening in March 2013