Hoffman intro #
Hoffman (technically now Hoffman2) is a computational cluster hosted by UCLA that CNL subscribes to. It is hosted on main campus and therefore cannot “see” the long-term storage server hosted by Semel IT.
See: https://www.ccn.ucla.edu/wiki/index.php/Hoffman2:Introduction for way more info.
Crucially, Hoffman2 has its own extensive Wiki which explains how to do many common computational tasks: https://www.hoffman2.idre.ucla.edu/
For new users looking to obtain a Hoffman account (you will have to ask John, who is our Hoffman delegate, for permission): https://www.hoffman2.idre.ucla.edu/Accounts/Requesting-an-account.html
Hoffman tips #
Running JupyterLab notebooks #
If you want to run a JupyterLab notebook on Hoffman, see: https://www.hoffman2.idre.ucla.edu/Using-H2/Connecting/Connecting.html?highlight=jupyter#connecting-via-jupyter-notebook-lab
Once you run the h2jupynb shell script with a command like:
h2jupynb -u jsakon -t 23 -m 29
you should see available links to paste in your browser (change “tree” to “lab” once it loads to open JupyterLab instead of Jupyter notebooks) and a countdown that tells you how much time is left on your SSH run:
Note that without this timer we’ve found the connection will idle and stop working over time.
SSH shortcuts #
If you’re using Hoffman as your main analysis pipeline, I’d recommend setting up SSH forwarding keys so you don’t have to type your password over and over when SSHing in or using h2jupynb:
https://github.com/rdauria/HPC_at_UCLA/blob/main/Jupyter-on-H2C.ipynb
For h2jupynb this is particularly useful, since it can take a few minutes for the system to allocate resources, which happens between two required entries of your Hoffman password. Once the SSH forwarding is set up it will enter both passwords for you, so you can run your shell script above and come back later once your resources are allocated.
Personally, I haven’t had much like getting resources allocated for longer than 23 hours, but it’s possible if you request smaller memory amounts (with the advantage that your kernel will keep going with your notebook variables in memory).