Book Details

ISBN 139781785888410

Paperback382 pages

Book Description

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

Chapter 1: Using IPython for HPC

The need for speed

FORTRAN to the rescue – the problems FORTRAN addressed

Choosing between IPython and Fortran

An example case – Fast Fourier Transform

High Performance Computing

Going parallel

Summary

Chapter 2: Advanced Shell Topics

What is IPython?

Installing IPython

All-in-one distributions

What happened to the Notebook?

Starting out with the terminal

IPython beyond Python

Magic commands

Cython

Configuring IPython

Debugging

Read-Eval-Print Loop (REPL) and IPython architecture

Alternative development environments

Summary

Chapter 3: Stepping Up to IPython for Parallel Computing

Serial processes

Threading

Using multiple processors

The IPython parallel architecture

Getting started with ipyparallel

Parallel magic commands

Types of parallelism

Data parallelism

Application steering

Summary

Chapter 4: Messaging with ZeroMQ and MPI

The storage hierarchy

ZeroMQ

MPI

ZeroMQ and IPython

Summary

Chapter 5: Opening the Toolkit – The IPython API

Performance profiling

The AsyncResult class

The Client class

The View class

Summary

Chapter 6: Works Well with Others – IPython and Third-Party Tools

R

Octave

Hy

Summary

Chapter 7: Seeing Is Believing– Visualization

Matplotlib

Bokeh

R

Python-nvd3

Summary

Chapter 8: But It Worked in the Demo! – Testing

Unit testing

unittest

pytest

nose2

Summary

Chapter 9: Documentation

Inline comments

Docstrings

reStructuredText

Docutils

Sphinx

Summary

Chapter 10: Visiting Jupyter

Installation and startup

The Dashboard

Creating a notebook

Interacting with Python scripts

Working with cells

Being graphic

Format conversion

Summary

Chapter 11: Into the Future

Some history

The Jupyter project

IPython

The rise of parallelism

Growing professionalism

Summary

What You Will Learn

Develop skills to use IPython for high performance computing (HPC)

Understand the IPython interactive shell

Use XeroMQ and MPI to pass messages

Integrate third-party tools like R, Julia, and JavaScript with IPython

Visualize the data

Acquire knowledge to test and document the data

Get to grips with the recent developments in the Jupyter notebook system

Authors

Thomas Bitterman

Thomas Bitterman has a PhD from Louisiana State University and is currently an assistant professor at Wittenberg University. He previously worked in the industry for many years, including a recent stint at the Ohio Supercomputer Center. Thomas has experience in such diverse areas as electronic commerce, enterprise messaging, wireless networking, supercomputing, and academia. He also likes to keep sharp, writing material for Packt Publishing and O'Reilly in his copious free time.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.