The Dashboard

Welcome to Saturn! After signing up, we'll drop you in the jupyter page of your users dashboard. It looks like this:

Here you can name your jupyter, choose how much disk space you need, how much ram/cpu/gpu you want and hit "Create". We'll spin up Jupyter for you. If we already have capacity in our cluster, it should take less than a minute, otherwise it can take up to 5 minutes (10 minutes for GPU nodes).

After hitting create, we display all Jupyters that you have. You're currently limited to 3. There are links here that will take you to your Jupyter Notebook, as well as your Jupyter Lab.

We bill for compute only when your jupyter is running. We bill you for storage as long as your jupyter exists. The dash has a few buttons, from left to right, trash, stop, edit, and play. Play starts Jupyter, Stop stops Jupyter. Trash icon deletes jupyter (this also deletes all data that you have stored on the machines SSD). You can't delete nodes while they are running.

Auto Shutoff

In order to save you money, we've implemented a few auto shutoff policies. We default to 10 minutes of inactivity, but you can also set it to 1 hour, 6 hours, or Never. Jupyter currently only detects whether someone is connected to Jupyter Lab or Jupyter Notebook. If your browser tab is open (and you have internet), Jupyter is active.

If there is time, we try to send you an email before your Jupyter is automatically stopped. We also send you emails periodically, if you've left Jupyter running for a long time. If it's intentional, great! If you forgot about it, you should stop it, to avoid wasting money.

Tweaking your server

After you've created a Jupyter, you might want to modify it. You can do this by clicking the edit button.

We currently allow you to change the auto shutoff policy, the size of the node. As well as the docker image which runs your Jupyter. You can adjust the auto shutoff policy at any time, however resizing your node, and tweaking the docker image can only be done when your jupyter is stopped.

Modifying your notebook environment

You have root access on the machine, so you can install anything you want using sudo. However, your machine is built from a Docker image. Any libraries you install will be lost the next time you start up. For more permanent changes, we recommend building environments in your home directory, or customizing the docker image.

Customizing the docker container

When creating a Jupyter instance or editing one, there is a set of advanced options which allow users to customize their Python and Linux environment. We minimize it by default.

Clicking on the bar, expandes the advanced menu.

Here you can customize your Python and Linux environment (and soon, R, and Julia). Choose the appropriate option from the select box, and paste in an environment.yaml or a requirements.txt. In addition, if you want additional apt-get linux packages, you can type them in into the apt-txt option. Currently mixing environment.yaml and requirements.txt is not supported.

The build can take a while (up to 10 minutes). But after you're done, you'll never have to install these packages again.

As a starting point, this is the environment.yml that generates the default environment availble in Saturn. Feel free to use this as a reference for your own environments.

channels:
  - defaults
  - conda-forge
  - https://conda.saturncloud.io/pkgs
dependencies:
  - nodejs=10.13.0
  - python=3.7
  - numpy=1.15.3
  - pandas
  - ipywidgets=7.2*
  - numexpr
  - matplotlib
  - scipy
  - seaborn
  - scikit-learn
  - scikit-image
  - sympy
  - cython
  - patsy
  - statsmodels
  - cloudpickle
  - dill
  - numba
  - bokeh
  - sqlalchemy
  - hdf5
  - h5py
  - vincent
  - beautifulsoup4
  - protobuf
  - xlrd
  - ipykernel
name: saturn
    

Creating new environments inside your home directory

Use conda to create a python environment inside your home directory. Assuming you know which packages you want, you can execute the following command. Please make sure to add the ipykernel package.

$ conda create -p /home/jovyan/myenv numpy pandas matplotlib ipykernel

If you have an environment.yaml file - you can use that as well!. Just make sure you add ipykernel to the list of packages.

$ conda env create -p /home/jovyan/myenv --file env.yaml

After your environment is created, you can register it with jupyter

$ python -m ipykernel install --user --name myenv