Introducing the PiCloud Notebook

December 23rd, 2012 by Ken Elkabany

The PiCloud Notebook is a Python console in your browser optimized for data analysis and collaboration. Unlike a traditional console, a notebook lets you intermingle code and descriptive text. The best way to get a feel for how it works is to see it:



We’re big fans of IPython, and those who are familiar with it will immediately recognize the console as an IPython Notebook running on the PiCloud Platform. While we believe that in general developers will continue to code on their local machine for convenience, there are several advantages to using a cloud-based notebook:

  • Your research is accessible from anywhere.
  • You can share your work with collaborators.
  • You can work efficiently with your data stored on PiCloud or AWS.
  • You can get comfortable with the environment your jobs run in.

Getting Started

Log into your account (sign up and get 20 free core hours), and click on the Notebook tab. This brings you to your Notebook Machine.

Think of your Notebook Machine as a computer dedicated to you sitting on the cloud. When you open a notebook, your Notebook Machine is started if it isn’t already. And when you’re done, you should shutdown the machine to avoid wasting resources.

By default, a notebook named “Primer” is available, which will walk you through the examples in the introductory section of our documentation called Primer. Click on it to open your first notebook.

Use your PiCloud account password when prompted.

Using a Notebook

Cell

Each box in your notebook is called a cell. Cells can hold code, or various types of markup (Markdown, headers, or raw text). Unlike in a traditional Python console, pressing enter in a cell will create a new line, but not execute it. This makes it easy to write multi-line functions and sequences of commands.

Executing Code

When you want to execute a cell, whether it’s code or markup, press shift+enter. Note the number indicating the order of execution on the left side of the cell, “In [X]“. Unlike a traditional console, you can execute and re-execute a cell at any time, and cells are thus not necessarily in order of execution. While it takes some time to get used to, it’s very handy when you’re continuously iterating your code.

Executing Shell Commands

While the primary use case of the notebook is for writing Python code, it’s also convenient for running shell commands. To execute a shell command, just prefix a command with “!”. For example, you can run “!ls”, “!pwd”, or even the PiCloud command-line interface (CLI), “!picloud”.



Visualization

Your notebook can also display rich media including images, graphs, videos, and more!



What else?

For more tips and tricks, see the following resources:

What is the Notebook Machine Exactly?

Your Notebook Machine is more than a web application. It’s a full-blown Linux system that can be accessed through the notebook console. We’re able to offer this by leveraging the same job abstraction we’ve already devoted so much effort to. In fact, the machine is running as a job. You can see the job id of your notebook machine from the notebook tab.

How is it Implemented?

As mentioned previously, our notebook is an IPython Notebook running on PiCloud. The notebook is run as a job in your account. For those of you familiar with our platform, you may be wondering how you’re able to connect to the notebook web server running in the job. The answer is that we’ve just released a feature that allows jobs to open listening sockets which can accept external connections. This opens up numerous possibilities including using sockets for job to job communication, as well as hosting web applications.

Using the Notebook to Live the Life of a Job

Another advantage of a notebook is it allows you to explore the system that a job sees. You can do the following:

  • Peek around the filesystem.
  • Import Python libraries to check availability and version.
  • Run non-Python programs.
  • Verify that your custom environment is working as expected.
  • Verify that your volumes are mounted in the way you intended.
  • Benchmark workloads interactively.

Refer to our documentation on configuring your notebook machine for more information regarding mimicking a job’s usage of volumes, environments, multicore, and core types.

Collaboration

If you want to give collaborators access to use your notebook machine, set a secondary password. Then provide the URL of your notebook to your collaborators. They should use the secondary password when prompted. We don’t want you to hand out your primary account password to others.

You can also send a notebook to a collaborator by downloading it (File -> Download as) and manually sending it.

Suggestions?

We’re really excited about this latest addition to the PiCloud Platform. If you have any ideas, let us know!

Tags: ,

Categories: What's New

You can follow any responses to this entry through the RSS 2.0 feed.

5 Responses to “Introducing the PiCloud Notebook”

  1. Sounds very much like Mathematica’s notebook concept but better in two ways: 1. python != Mathematica, and 2. access to the system. Good Work!

  2. Joao says:

    I don’t see any difference between this and running an ipython notebook directly on aws, which is trivial with a system like notebookcloud.appspot.com

    Can you elaborate on the advantages of running it on picloud?

  3. Aaron Staley says:

    @Joao: The main advantages of using IPython notebook on PiCloud are being able to immediately use the many features PiCloud offers: http://www.picloud.com/platform/ Your notebook is not just a notebook; it also is the interface to a supercomputer that you can leverage with the cloud library. The notebook allows you to run an interactive interpreter on your already configured PiCloud environment (and volumes), rather than re-configuring your environment on AWS.

    If you already are/intend to use PiCloud for its scaling abilities, the PiCloud notebook is the easiest way to run an interactive iPython notebook in your configured environment.

  4. Vasudev Ram says:

    Seems like a good product idea.

  5. Vasudev says:

    What is the relationship between the notebook and environments? Are modules and dependencies installed in an environment accessible to the notebook?

Leave a Reply