Book Image

Mastering IPython 4.0

By : Thomas Bitterman, Dipanjan Deb
Book Image

Mastering IPython 4.0

By: Thomas Bitterman, Dipanjan Deb

Overview of this book

IPython is an interactive computational environment in which you can combine code execution, rich text, mathematics, plots, and rich media. This book will get IPython developers up to date with the latest advancements in IPython and dive deep into interactive computing with IPython. This an advanced guide on interactive and parallel computing with IPython will explore advanced visualizations and high-performance computing with IPython in detail. You will quickly brush up your knowledge of IPython kernels and wrapper kernels, then we'?ll move to advanced concepts such as testing, Sphinx, JS events, interactive work, and the ZMQ cluster. The book will cover topics such as IPython Console Lexer, advanced configuration, and third-party tools. By the end of this book, you will be able to use IPython for interactive and parallel computing in a high-performance computing environment.
Table of Contents (18 chapters)
Mastering IPython 4.0
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
6
Works Well with Others – IPython and Third-Party Tools
Index

Summary


The fact that distributed systems do not have a single address space means that the usual mechanisms for sharing data between modules (parameters and global variables) are not available. Instead, data movement must be explicitly specified. While IPython provides for the use of a "global" dictionary (which implicitly uses a message passing mechanism similar to what is described in this chapter), more sophisticated communication patterns require more full-featured tools.

In this chapter, we looked at two of these tools: ZeroMQ and MPI. ZeroMQ is a lightweight, socket-like mechanism that has become the basis of IPython's internal architecture. It is easy to use, is efficient, supports many different messaging patterns, and provides support for user-defined patterns. MPI is the workhorse of most HPC applications. It has been in use for a long time and is efficient and thoroughly debugged. The ability to dynamically create processes is an important feature.

Either mechanism is capable of...