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

MPI


The Message Passing Interface (MPI) is a language-independent message passing library standard. It has been implemented in several languages, including Fortran, C/C++, and Python. This book will use the Mpi4py implementation. Chapter 3, Stepping Up to IPython for Parallel Computing, outlined the process for starting IPython using MPI. It will be assumed that IPython has been started this way in the following examples.

Hello World

Here is the MPI "Hello world" program. It has every process reply with a simple string, along with the rank of the process:

from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
print("hello world from process ", rank)
  • Line 2: This obtains a communicator object. A communicator is a logical structure that defines which processes are allowed to send and receive messages. COMM_WORLD is the communicator that contains all the processes in this session.

  • Line 3: The Get_rank( ) method returns the rank of this process. Each process inside a communicator...