Pleiades singularity

Instructions last successfully run on May 29th 2025

Login

Login to PFE (Pleiades Front End).

ssh pfe 

If already setup ssh tunnel etc.

Download image

Download this image in your scratch, as it might be large in size. This download needs to be done on the login node, as the interactive nodes can't seem to access the internet.

module load singularity singularity pull notebook_pangeo.sif docker://pangeo/pangeo-notebook~~ ~~

Update 05/29/2025: squashfs is banned on Pleiades, so I suggest trying this instead:

singularity build --sandbox notebook_pang/ docker://pangeo/pangeo-notebook

Get interactive node

(or something like that)

Run script request_interactive_node.sh, which has following content.

#!/bin/bash

qsub -I -lselect=1:ncpus=2:model=ivy,walltime=02:00:00 -q devel

run singularity

Note: we needed to add all the above bindings to be able to see where the data is

Run the following command or run a script with the following lines:

#!/bin/bash

module load singularity

singularity shell --bind /nobackup:/nobackup --bind /nobackupp1:/nobackupp1 --bind /nobackupp17:/nobackupp17 --bind /nobackupp1
9:/nobackupp19 --bind /home6/dmenemen:/home6/dmenemen  /nobackup/dbalwada/notebook_pangeo.sif

NB New users need to use ls -l /nobackup/your_username to identify which volume their nobackup direct is actually located in and bind to that directory.

At this point you should be able to run any python script at the command l

Run the script for using the CLI to access LLC data.

Use this: https://github.com/ocean-transport/pleiades_llc_recipes/blob/master/python_cli_data_export/extract_llc.py

Old access example

From: https://github.com/rabernat/pleiades_llc_recipes/blob/master/notebooks/pleiades_llc_examples.ipynb

 from xmitgcm import llcreader
 model = llcreader.PleiadesLLC4320Model()

Jupyter Lab

Following steps describe accessing a Jupyter lab session running in a singularity container via a browser running on your local machine (Mac, Linux, etc).

  1. Secure Setup of Jupyter Notebook:

    SSH into pfe and follow the steps in the article Secure Setup for Using Jupyter Notebook on NAS Systems to setup your password for Jupyter Lab.

  2. From pfe, SSH into an interactive node and run Singularity

  3. Start Jupyter Lab in the Singularity container. In the output below, r403i7n4 is the interactive node we had gotten and sraza2 is a username. You would need to replace both of these in the next step. The output is attached here for reference purposes.

    ​​​​> sraza2 @ r403i7n4
    ​​​​$ jupyter lab --no-browser
    ​​​​[I 2022-12-15 14:27:28.040 ServerApp] dask_labextension | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.041 ServerApp] jupyter_resource_usage | extension was successfully linked.
    ​​​​[W 2022-12-15 14:27:28.043 MathJaxExtension] Config option `kernel_spec_manager_class` not recognized by `MathJaxExtension`.
    ​​​​[W 2022-12-15 14:27:28.045 MathJaxExtension] Config option `kernel_spec_manager_class` not recognized by `MathJaxExtension`.
    ​​​​[W 2022-12-15 14:27:28.049 MathJaxExtension] Config option `kernel_spec_manager_class` not recognized by `MathJaxExtension`.
    ​​​​[I 2022-12-15 14:27:28.051 ServerApp] jupyter_server_mathjax | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.051 ServerApp] jupyter_server_proxy | extension was successfully linked.
    ​​​​[W 2022-12-15 14:27:28.055 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
    ​​​​[W 2022-12-15 14:27:28.059 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
    ​​​​[W 2022-12-15 14:27:28.066 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
    ​​​​[I 2022-12-15 14:27:28.068 ServerApp] jupyterlab | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.068 ServerApp] jupyterlab_git | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.068 ServerApp] jupyterlab_s3_browser | extension was successfully linked.
    ​​​​[W 2022-12-15 14:27:28.071 NotebookApp] Config option `kernel_spec_manager_class` not recognized by `NotebookApp`.
    ​​​​[W 2022-12-15 14:27:28.075 NotebookApp] 'cookie_secret_file' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
    ​​​​[W 2022-12-15 14:27:28.075 NotebookApp] 'ip' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
    ​​​​[W 2022-12-15 14:27:28.075 NotebookApp] 'certfile' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
    ​​​​[W 2022-12-15 14:27:28.075 NotebookApp] 'keyfile' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
    ​​​​[W 2022-12-15 14:27:28.075 NotebookApp] 'password' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
    ​​​​[W 2022-12-15 14:27:28.077 NotebookApp] Config option `kernel_spec_manager_class` not recognized by `NotebookApp`.
    ​​​​[W 2022-12-15 14:27:28.082 NotebookApp] Config option `kernel_spec_manager_class` not recognized by `NotebookApp`.
    ​​​​[I 2022-12-15 14:27:28.083 ServerApp] nbclassic | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.083 ServerApp] nbdime | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.083 ServerApp] nbgitpuller | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.085 ServerApp] Writing Jupyter server cookie secret to /home3/sraza2/.jupyter/cookie_file
    ​​​​[I 2022-12-15 14:27:28.093 ServerApp] notebook_shim | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.093 ServerApp] panel.io.jupyter_server_extension | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:28.093 ServerApp] xarray_leaflet | extension was successfully linked.
    ​​​​[I 2022-12-15 14:27:29.979 ServerApp] [nb_conda_kernels] enabled, 0 kernels found
    ​​​​[I 2022-12-15 14:27:30.019 ServerApp] notebook_shim | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.019 ServerApp] dask_labextension | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.020 ServerApp] jupyter_resource_usage | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.021 ServerApp] jupyter_server_mathjax | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.668 ServerApp] jupyter_server_proxy | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.669 LabApp] JupyterLab extension loaded from /srv/conda/envs/notebook/lib/python3.10/site-packages/jupyterlab
    ​​​​[I 2022-12-15 14:27:30.669 LabApp] JupyterLab application directory is /srv/conda/envs/notebook/share/jupyter/lab
    ​​​​[I 2022-12-15 14:27:30.673 ServerApp] jupyterlab | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.679 ServerApp] jupyterlab_git | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.680 ServerApp] jupyterlab_s3_browser | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.688 ServerApp] nbclassic | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.862 ServerApp] nbdime | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.863 ServerApp] nbgitpuller | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.863 ServerApp] panel.io.jupyter_server_extension | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.864 ServerApp] xarray_leaflet | extension was successfully loaded.
    ​​​​[I 2022-12-15 14:27:30.864 ServerApp] Serving notebooks from local directory: /home3/sraza2
    ​​​​[I 2022-12-15 14:27:30.864 ServerApp] Jupyter Server 1.23.3 is running at:
    ​​​​[I 2022-12-15 14:27:30.864 ServerApp] https://127.0.0.1:8888/lab
    ​​​​[I 2022-12-15 14:27:30.864 ServerApp]  or https://127.0.0.1:8888/lab
    ​​​​[I 2022-12-15 14:27:30.864 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    
    ​​​​[I 2022-12-15 14:41:35.068 LabApp] 302 GET /lab? (127.0.0.1) 1.26ms
    ​​​​[I 2022-12-15 14:41:43.316 ServerApp] 302 POST /login?next=%2Flab%3F (127.0.0.1) 28.18ms
    ​​​​[W 2022-12-15 14:41:59.079 LabApp] Could not determine jupyterlab build status without nodejs
    ​​​​ERROR:root:Exception encountered during GET : Could not connect to the endpoint URL: "http://169.254.169.254/latest/api/token"
    ​​​​[I 2022-12-15 14:42:05.829 ServerApp] Creating new notebook in
    ​​​​[I 2022-12-15 14:42:06.781 ServerApp] Kernel started: 4911b680-76db-48d8-9d6d-a3e846f206d4
    ​​​​[IPKernelApp] ERROR | No such comm target registered: jupyter.widget.control
    ​​​​[IPKernelApp] WARNING | No such comm: f63c9676-f5c4-49a2-b7dd-86d71caa23b6
    ​​​​[W 2022-12-15 14:42:34.454 ServerApp] Notebook nasa/nasa.ipynb is not trusted
    ​​​​[I 2022-12-15 14:42:34.958 ServerApp] Kernel started: b3b74c13-74c9-4311-9b07-fa1709623753
    ​​​​[W 2022-12-15 14:42:36.718 ServerApp] Notebook nasa/scratch.ipynb is not trusted
    ​​​​[IPKernelApp] ERROR | No such comm target registered: jupyter.widget.control
    ​​​​[IPKernelApp] WARNING | No such comm: 736f163e-9ed0-426b-ac41-21214f683e7c
    ​​​​[I 2022-12-15 14:42:37.852 ServerApp] Kernel started: 9bea8645-2f85-4a99-b559-37970dd48502
    ​​​​[IPKernelApp] ERROR | No such comm target registered: jupyter.widget.control
    ​​​​[IPKernelApp] WARNING | No such comm: 15fad6fe-88b0-4d7e-8e4e-30a5d1b9052a
    ​​​​[I 2022-12-15 14:44:06.619 ServerApp] Saving file at /Untitled.ipynb
    ​​​​[I 2022-12-15 14:44:34.841 ServerApp] Saving file at /nasa/nasa.ipynb
    ​​​​[I 2022-12-15 14:44:38.980 ServerApp] Saving file at /nasa/scratch.ipynb
    ​​​​[W 2022-12-15 14:44:38.980 ServerApp] Notebook nasa/scratch.ipynb is not trusted
    
  4. Update the following items in the command below and run it in the terminal of your local machine (e.g., iTerm in Mac).

    • Interactive node name: replace r403i7n4 with the name of the interactive node you get
    • Username: replace sraza2 with your NAS username
    • Actual pfe node: replace pfe21 with the pfe node you log into
    ​​​​ssh -l sraza2 -o "StrictHostKeyChecking=ask" -o "ProxyJump=sfe,pfe21" -L 8080:localhost:8888 r403i7n4
    

    This will create a SSH tunnel from your local machine port 8080 to port 8888 on r403i7n4

  5. Visit https://localhost:8080 in the browser on your local machine and enter Jupyter password you created in Step 1, when prompted.

Select a repo