Wrapper for spawning remote iPython/Jupyter kernel via HPC workload managers.
For now only SLURM is supported.
See kernel.json for example definition of the jupyter kernel
-
Jupyter calls the kernel
-
The kernel calls
salloc
and get an allocation on a SLURM node -
After getting the allocation, the kernel fetches the SLURM node IP address and use SSH forwarding to the compute node according to the connection file. (localhost:shell_port -> batchhost:shell_port) (localhost:iopub_port -> batchhost:iopub_port) (localhost:stdin_port -> batchhost:stdin_port) (localhost:control_port -> batchhost:control_port) (localhost:hb_port -> batchhost:hb_port)
-
It copies the connection file at the root of the host
-
Then, it runs the kernel command and the ipykernel is now running thanks to the connection file
-
The user can now use the IPython kernel remotely
-