Running Jupyter Notebook
There are two options for running a Jupyter Notebook on the VDI. Either use the provided script to automate the process, or open a notebook in the strudel client window.
Clone the nci_scripts repository and see the instructions to run the
vdi_jupyter.py script. The script will prompt for an NCI username the first time it is used and after that it should work without prompting if ssh keys are properly set up (see Setting up SSH, but note the ssh key has to be copied to your home directory on VDI).
The script should open a Jupyter window in your default browser. It will show a listing of your VDI home directory. To access /g/data disks make symbolic links to the directories you need to access. e.g.
ln -s /g/data/v45 ~/gdata_v45
You can open a shell terminal window from within the jupyter notebook:
Access via strudel
Within VDI, open a Linux terminal (Applications menu -> System Tools -> Terminal). Inside the Terminal, load the conda environment
module use /g/data/hh5/public/modules module load conda
You should then be able to start the notebook with
Connect your local browser
You can connect the browser on your computer to the jupyter notebook running on vdi once it's started.
You still need to connect to VDI in the usual way. Once the session is started, open a terminal. You need the name of the computer that is running your VDI instance. It is of the form vdi-nXX where XX is a number. It is possible that this is already displayed in your command line prompt there, otherwise you can run the command:
and it will give you the hostname. Remember it.
Next, you load the conda module as above, but tell jupyter to not start a browser:
module use /g/data/hh5/public/modules module load conda jupyter notebook --no-browser
You wait for this line:
The 4 digits after the colon (often just 8888, but not always) are the port. We use this number and the hostname to create a new ssh connection to VDI. So in a new terminal session on your computer, run the command:
ssh userXX@vdi-nXX.nci.org.au -L 8888:localhost:8888
Of course, you need to replace userXX with your NCI username, vdi-nXX with the hostname, and both instances of 8888 with the actual port number.
Once you've done that, you can copy the full line that you got from jupyter notebook (the one http://localhost:8888/?token=... (including the full token) into your browser of choice.
You can also run a notebook from Gadi's compute nodes using the gadi_jupyter script.
Setting Up SSH
You will need to set up SSH keys to use gadi_jupyter
Set up the file ~/.ssh/config with something like
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' run 'ssh-agent bash' and then 'ssh-add'.
You can now run './gadi_jupyter'
- 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.
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
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)