please email sanjeev@slac.stanford.edu or cropp@slac.stanford.edu with any problems.
S3df management doesn't like it when heavy compute jobs are run on the interactive cluster (Iana). A solution to this is to run jupyter lab on batch compute on the milano cluster.
Make sure your account is part of FACET or ad:beamphysics before trying to access batch compute. Confused? look here and read the section Accessing AD and FACET Resources.
Jupyter Notebooks via Open OnDemand
This is the easiest method.
- login to open ondemand at https://s3df.slac.stanford.edu/ondemand
- click on the top menu bar and choose interactive apps → Jupyter
- Select Custom for Jupyter Image
- Select Conda Environment
- Make sure the conda env you pick has jupyterlab installed.
- Set the path to the conda env setup to run the jupyter notebook. ( conda info | grep "active env location" can show the path to the current active conda env. You would need to ssh into iana on s3df, activate a conda env that you made with jupyterlab and then run the command to find its path. )
(an example of setting up a conda env for the first time for jupyter lab is here in the lume impact jupyter example) - change <environment> to be the desired conda env path, for example
/sdf/home/s/sanjeev/miniforge3/envs/bmad
- Click use JupyterLab instead of Jupyter Notebook
For run on cluster type select: Batch; s3df; account: FACET; Partition Milano *make sure your account is part of the FACET repo or use ad:beamphysics if your part of that.
- Select number of hours and cores (max cores is 120)
- Configure rest of settings
- Launch and connect
Jupyter Notebooks via SSH and port forwarding
This method is a little more complicated but more reliable overall.
These are steps for running a jupyter notebook on S3DF via juptyerlab. These instructions assume a first time setup of connecting to s3df and that your are part of the FACET repo (more info here).
- Get a S3DF account
- Wait for approval
- Open your favorite terminal. I like termius and warp.
Ssh into s3df login node with port forwarding (5555 can be changed to any preferred port): note: make sure this ssh is from your local machine as we need to have port 5555 open on the connection all the way from your local machine to jupyter lab on s3df.
ssh -L 5555:localhost:5555 <SLAC UNIX USERNAME>@s3dflogin.slac.stanford.edu
if connecting from Windows' command line (cmd), specify the following:
ssh -m hmac-sha2-512 -L 5555:localhost:5555 <SLAC UNIX USERNAME>@s3dflogin.slac.stanford.edu
Connect to Iana:
ssh -L 5555:localhost:5555 iana
- Allocate compute via slurm and connect to it. *this step may be skipped if your notebook is not computationally intensive. *make sure your account is part of the FACET repo or use ad:beamphysics if you are a part of that repo (more info). You can change the parameter after
-n
to choose how many cores you want the notebook to have and change the time too.srun --partition milano --account FACET -n 100 --time=01:00:00 --pty /bin/bash
Activate conda env: If conda is not installed see instructions here
conda activate <CONDA ENV>
** do only first time ** install jupyter lab if not installed:
conda install jupyterlab
- Run jupyter and click on the link localhost url to open in your browser:
jupyter lab --no-browser --port 5555
You can also use mamba instead of conda for a faster time creating environments. Mamba is used by first installing miniconda and then using the mamba command instead of the conda command.