Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To be fleshed out

No Format
 docker 

Do Not Run Jupyter on the Login Nodes

The login or head node of each cluster is a resource that is shared by many users. Running Jupyter on one of these nodes may adversely affect other users. Please use one of the approaches described on this page to carry out your work. 

Internet is Not Available on Compute Nodes, Only on OnDemand  compute Nodes (currently n059). Jupyter sessions run on the compute nodes which do not have Internet access. This means that you will not be able to download files, clone a repo from GitHub, install packages, etc. You will need to perform these operations on the login node before starting the session. You can run commands which need Internet access on the login nodes (gc-prd-hpclogin1). Any files that you download while on the login node will be available on the OnDemand compute nodes. Internet access is available when running Jupyter on a OnDemand node. There is no job scheduler on the visualization nodes. Be sure to use these nodes in a way that is to fair all users.

...

The ipykernel package should be installed


If additional packages are needed after this install, you may log into the login node and do the following:

module load anaconda3/2021.11
source activate <you environment>   #e.g source activate s123456-tf-cpu
conda install <another-package-1> <another-package-2>
conda deactivate
exit
For some packages you will need to add the conda-forge channel or even perform the installation using pip as the last step.

Using Widgets

conda create --name widg-env --channel conda-forge matplotlib jupyterlab ipywidgets ipympl

Usage

# from behind VPN if off-campus or on wireless
ssh snumber@n059,rcs,griffith.edu.au
module load anaconda3/2020.11
source activate snumber-tf-cpu #e.g source activate s123456-tf-cpu jupyter-notebook --no-browser --port=8889 --ip=127.0.0.1 # note the last line of the output which will be something like http://127.0.0.1:8889/?token=61f8a2aa8ad5e469d14d6a1f59baac05a8d9577916bd7eb0 # leave the session running

Then in a new terminal on your laptop,
ssh -N -f -L localhost:8889:localhost:8889 snumber@n059.rcs.griffith.edu.au

Lastly, open a web browser and copy and paste the URL from the previous output:

http://127.0.0.1:8889/?token=61f8a2aa8ad5e469d14d6a1f59baac05a8d9577916bd7eb0

Choose "New" then "Python 3" to launch a new notebook. Note that Jupyter may use a port that is different than the one you specified. This is why it is import to copy and paste the URL.

When you are done, terminate the ssh tunnel by running lsof -i tcp:8889 to get the PID and then kill -9 <PID> (e.g., kill -9 6010).

Custom Conda Environment

The procedue above will only be useful if you only need the base Conda environment which includes just less than three hundred packages. If you need custom packages then you should create a new Conda environment and include jupyter in addition to the other packages that you need. The necessary modifications are shown below:

ssh snumber@n059.rcs.griffith.edu.au
module load anaconda3/2020.11
source /usr/local/bin/s3proxy.sh conda create --name myenv jupyter <package-2> <package-3> conda activate myenv jupyter-notebook --no-browser --port=8889 --ip=127.0.0.1

The packages in the base environment will not be available in your custom environment unless you explicitly list them (e.g., numpy, matplotlib, scipy).

Running on a Compute Node via interative pbs

First, from the head node, request an interactive session on a compute node. The command below requests 1 CPU-core with 4 GB of memory for 1 hour:


Reference

1. https://jupyter.org/try
2. https://researchcomputing.princeton.edu/support/knowledge-base/jupyter