Difference between revisions of "Running Jupyter Notebook"

 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=On VDI=
 
  
Currently, the easiest way to run IPython Notebook is on NCI's [http://nci.org.au/services/vdi/ | Virtual Desktop Infrastructure (VDI)]. For a guide to set up and use VDI, click [https://opus.nci.org.au/display/Help/VDI+User+Guide | here].
 
  
Within VDI, open a Linux terminal ('''Applications menu''' -> '''System Tools''' -> '''Terminal''').
 
Inside the Terminal, load the conda environment
 
<syntaxhighlight lang=bash>
 
module use /g/data3/hh5/public/modules
 
module load conda
 
  
 +
= On OOD =
 +
 +
Currently, the easiest way to run a Jupyter Notebook is on NCI's [[OOD|Open On-Demand service]]. For a guide to set up and use the OOD, click [https://opus.nci.org.au/display/OOD/Open+OnDemand+(OOD)+Service here].
 +
 +
When logging into the OOD, you will have an option to open Jupyter Lab. Please follow the instructions to request the best sized cluster for your work.
 +
 +
&nbsp;
 +
 +
= On Gadi =
 +
 +
You can also run a notebook from Gadi's compute nodes using the [https://github.com/coecms/nci_scripts/blob/master/gadi_jupyter gadi_jupyter] script.
 +
=== Pre-requisite ===
 +
For this method to work, you must become part of the '''hh5''' project at NCI using [https://my.nci.org.au/mancini/project/hh5 my.nci.org.au].
 +
 +
This project will give you access to [[Conda|conda environments]] for Python managed by the CMS team.
 +
 +
=== Setting Up SSH ===
 +
 +
You will need to set up SSH keys to use gadi_jupyter
 +
 +
Create the file ~/.ssh/config with something like the following lines in:
 +
<syntaxhighlight lang="text">
 +
Host *.nci.org.au
 +
User abc123 # Your NCI username here
 
</syntaxhighlight>
 
</syntaxhighlight>
You should then be able to start the notebook with
 
<syntaxhighlight lang=bash>
 
jupyter notebook
 
</syntaxhighlight>
 
<span style="background-color: #ffffff; color: #333333; display: block; font-family: &quot;Helvetica Neue&quot;,Helvetica,Arial,sans-serif; font-size: 14px;">
 
----
 
</span><span style="background-color: #ffffff; display: block; font-family: Arial,Helvetica,sans-serif;">
 
=On Raijin=
 
  
If you don't have access to VDI, you can still run IPython Notebook from Raijin in a browser on your local computer. Currently these instructions show how to run the notebook from the login node - '''which is not recommended''' - and, as such, are just a demonstration of what is possible. Ideally the notebook should be run from an interactive session.
+
Create a SSH key by running 'ssh-keygen'. It will ask for a 'passphrase', make sure you enter one, it doesn't need to be the same as your NCI password. Use the default key file name.
</span>
+
 
Log in to raijin using SSH, forwarding your ports as you go (you might have to sudo this)
+
Copy your SSH key to gadi. Some computers have a command that can do this automatically - 'ssh-copy-id gadi.nci.org.au'. If not, you need to add the contents of the file '~/.ssh/id_rsa.pub' on your local computer to the end of the file '~/.ssh/authorized_keys' on Gadi.
<syntaxhighlight lang=bash>
+
 
ssh -L 8889:localhost:8889 [USERNAME]@raijin.nci.org.au
+
Enable your SSH key by running the command 'ssh-add', it will ask for the SSH passphrase you entered when you made the key (which may not be your NCI password). If it says 'Could not open a connection to your SSH agent', or '‘could not connect to authentication agent', run 'ssh-agent bash' and then 'ssh-add'.
</syntaxhighlight>
+
 
Load the conda environment
+
You can now run './gadi_jupyter'
<syntaxhighlight lang=bash>
+
 
module use /g/data3/hh5/public/modules
+
=== Notes ===
module load conda
+
 
</syntaxhighlight>
+
*You need to download this script to your own computer and execute there. The script handles the connection.
 +
*This job requires an implementation of bash. This is default on MacOS and Linux, but not Windows.  
 +
*This will cost SU depending on the queue and the resources requested (default: 1 cores, express queue)
 +
*You also won't have access to the internet to, for example, download data.
 +
 
 +
=== Running ===
  
Set up an ipython profile that serves your notebooks (adapted from [[https://ipython.org/ipython-doc/dev/notebook/public_server.html]])
+
You can download the script from the link above directly, or by running
<syntaxhighlight lang=bash>
+
<syntaxhighlight lang="bash">
ipython profile create nbserver
+
git clone https://github.com/coecms/nci_scripts.git
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Then modify the Notebook config file in ~/.ipython/profile_nbserver/ipython_config.py (or create that file if it wasn't generated) so that it reads:
+
which will download the script into a directory called '''nci_scripts'''.
<syntaxhighlight lang=python>
 
c = get_config()
 
c.NotebookApp.open_browser = False
 
# It is a good idea to put it on a known, fixed port - must match port used to ssh in.
 
c.NotebookApp.port = 8889
 
c.NotebookApp.base_project_url = 'ipython'
 
  
# The following can be used to set up a password,
+
There are several options that you can use when running the script:
# from here: https://ipython.org/ipython-doc/dev/notebook/public_server.html
+
<syntaxhighlight lang="unknown">
# c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
+
General Options:
# c.NotebookApp.ip = '*'
+
    -h:         Print help
# c.NotebookApp.password = u'sha1:bcd259ccf...[your hashed password here]'
+
    -l:        NCI username
 +
    -L:        NCI login node (default 'gadi.nci.org.au')
 +
    -e:         Conda environment
  
 +
Queue Options:
 +
    -q QUEUE:  Queue name
 +
    -n NCPU:    Use NCPU cpus
 +
    -m MEM:    Memory allocation (default 4*NCPU GB)
 +
    -t TIME:    Walltime limit (default 1 hour)
 +
    -J JOBFS:  Jobfs allocation (default 100 GB)
 +
    -P PROJ:    Submit job under project PROJ
 
</syntaxhighlight>
 
</syntaxhighlight>
The dependencies required for ipython have been installed and should load automatically when the ipython module is loaded.
 
  
You should be able to start the notebook with
+
=== Windows Desktops ===
<syntaxhighlight lang=bash>
 
ipython notebook --profile=nbserver
 
</syntaxhighlight>
 
  
On your local computer, direct your browser to [[http://127.0.0.1:8889/ipython/]] and you should have access to the notebook.
+
To run gadi_jupyter on Windows you'll need Bash and some form of SSH available. This could be from
  
If another user is already running an ipython session using the port number above, the ipython process will tell you with a message like this:
+
* git bash - [https://gitforwindows.org/ https://gitforwindows.org/]
<syntaxhighlight>
+
* cygwin terminal - [https://www.cygwin.com/ https://www.cygwin.com/]
[I 11:06:03.545 NotebookApp] The port 8899 is already in use, trying another random port.
 
</syntaxhighlight>
 
and it will tell you which port it has chosen instead:
 
<syntaxhighlight>
 
[I 11:06:03.552 NotebookApp] The IPython Notebook is running at: http://localhost:8900/ipython/
 
</syntaxhighlight>
 
  
Unfortunately the ssh connection will only forward the port you specified when you logged in. You should edit the ~/.ipython/profile_nbserver/ipython_config.py file, change the port number to the one ipython chose (or another higher number less than 65535), log out and log back in, using the new port number.
+
Install one of these, then within the terminal follow the 'Setting up SSH' instructions before running 'gadi_jupyter'. (The terminal should start in your 'My Documents' directory if you need to find the downloaded script)
<syntaxhighlight lang=bash>
 
ssh -L 8889:localhost:8890 [USERNAME]@raijin.nci.org.au
 
</syntaxhighlight>
 
The first port number is the one you connect to on your local computer, and can remain unchanged.
 
  
 
[[Category:Python]]
 
[[Category:Python]]

Latest revision as of 02:09, 16 September 2021


On OOD

Currently, the easiest way to run a Jupyter Notebook is on NCI's Open On-Demand service. For a guide to set up and use the OOD, click here.

When logging into the OOD, you will have an option to open Jupyter Lab. Please follow the instructions to request the best sized cluster for your work.

 

On Gadi

You can also run a notebook from Gadi's compute nodes using the gadi_jupyter script.

Pre-requisite

For this method to work, you must become part of the hh5 project at NCI using my.nci.org.au.

This project will give you access to conda environments for Python managed by the CMS team.

Setting Up SSH

You will need to set up SSH keys to use gadi_jupyter

Create the file ~/.ssh/config with something like the following lines in:

Host *.nci.org.au
User abc123 # Your NCI username here

Create a SSH key by running 'ssh-keygen'. It will ask for a 'passphrase', make sure you enter one, it doesn't need to be the same as your NCI password. Use the default key file name.

Copy your SSH key to gadi. Some computers have a command that can do this automatically - 'ssh-copy-id gadi.nci.org.au'. If not, you need to add the contents of the file '~/.ssh/id_rsa.pub' on your local computer to the end of the file '~/.ssh/authorized_keys' on Gadi.

Enable your SSH key by running the command 'ssh-add', it will ask for the SSH passphrase you entered when you made the key (which may not be your NCI password). If it says 'Could not open a connection to your SSH agent', or '‘could not connect to authentication agent', run 'ssh-agent bash' and then 'ssh-add'.

You can now run './gadi_jupyter'

Notes

  • You need to download this script to your own computer and execute there. The script handles the connection.
  • This job requires an implementation of bash. This is default on MacOS and Linux, but not Windows.
  • This will cost SU depending on the queue and the resources requested (default: 1 cores, express queue)
  • You also won't have access to the internet to, for example, download data.

Running

You can download the script from the link above directly, or by running

git clone https://github.com/coecms/nci_scripts.git

which will download the script into a directory called nci_scripts.

There are several options that you can use when running the script:

General Options:
    -h:         Print help
    -l:         NCI username
    -L:         NCI login node (default 'gadi.nci.org.au')
    -e:         Conda environment

Queue Options:
    -q QUEUE:   Queue name
    -n NCPU:    Use NCPU cpus
    -m MEM:     Memory allocation (default 4*NCPU GB)
    -t TIME:    Walltime limit (default 1 hour)
    -J JOBFS:   Jobfs allocation (default 100 GB)
    -P PROJ:    Submit job under project PROJ

Windows Desktops

To run gadi_jupyter on Windows you'll need Bash and some form of SSH available. This could be from

* git bash - https://gitforwindows.org/
* cygwin terminal - https://www.cygwin.com/

Install one of these, then within the terminal follow the 'Setting up SSH' instructions before running 'gadi_jupyter'. (The terminal should start in your 'My Documents' directory if you need to find the downloaded script)