To run access a remote jupyter notebook, you will need to do the following:
- Setting ssh config file (
~/.ssh/config):
Host FLIP # access point server
HostName access.engr.oregonstate.edu
User ONIDusername
Host DGX # target server
HostName submit-b.hpc.engr.oregonstate.edu
User ONIDusername
ProxyJump FLIP
Context: at OSU, FLIP server is our access point server and DGX server is a cluster server that I would like to access, so in order to access the DGX server, I would need to access the FLIP server first. The ProxyJump configuration states that if I want to access the DGX server, I would need to access the FLIP server first. This step is needed for VS code's extension, Remote - SSH, to have access to the DGX server.
Note: Steps 1.b-c and 2.b-c assuming the DGX server uses SLURM to manage jobs, so if your target server doesn't use SLURM, please skip them.
-
Setting Port Forwarding
a. Ssh to the
DGXserverb. Load SLURM using the following command:
module load slurmc. Start a job using the following command:
srun -A eecs -p dgx2 --gres=gpu:1 --pty bash(group=eecs, machine=dgx2, shell=bash), replace any flag value as neededd. Install ngrok and follow their setup (https://ngrok.com/)
e. Start the ngrok server:
./ngrok http PORT, replace PORT with any portf. Copy the generated URL, for example
https://ad32ef7ad45e.ngrok.io -
Setting the Jupyter's Kernel
a. Ssh to the
DGXserverb. Load SLURM using the following command:
module load slurmc. Access the node used in
1.cusing this following command:ssh NODE(NODE is what is written in the left, e.g. dgx2-5)d. Access your conda/pip environment if needed
e. Generate a Jupyter configuration file:
jupyter notebook --generate-configf. Set Jupyter's configuration:
echo "c.NotebookApp.allow_remote_access = True" >> ~/.jupyter/jupyter_notebook_config.pyg. Start Jupyter's server:
jupyter notebook --no-browser --port=PORT, replace PORT with the same PORT used in1.eh. Copy the URL token parameter, for example
?token=... -
Connecting everything together! (in VS code)
a. Install
Remote - SSHVS code's extensionb. Connect to the
DGXserver usingRemote - SSHc. Open a Folder and select the folder of your project
d. CTRL+SHIFT+P then type
Jupyter: Specify local or remote ...f. Select
Existingthen paste ngrok's url + token parameter, for examplehttps://ad32ef7ad45e.ngrok.io/?token=...
Props to Austin L. for sharing ngrok and Aayam S. for sharing how ngrok and jupyter notebook could be used together.
Thank will try, and the VS Code Web App via VS Code Server --> does not support Github Copilot as of this writing.