Binderhub for kernels? KernelHub?


#1

This is something I’ve been pondering for a bit…

Binderhub lets me define a repo, which may be a kernel defining repo, and create a build against it that eg lets me open a notebook against that (dynamically built) kernel.

But what if I have my own notebook server and just want to connect to a remote kernel built from that repo?

What I’m wondering is, is the notion of a KernelHub meaningful, where eg you pass a git repo URL, KernelHub builds and runs the repo as a kernel process and gives you a connection string back that you can use to access the kernel, as a remote kernel, from your own notebook server.

(One of the things I’ve noticed about installing custom kernels is that they may have a stack of other dependencies that are required and for which installation guides are less than helpful…)


#2

you should check out these repos, that are nibbling around the edges of what you’re thinking about here :slight_smile:

And an example of juniper in action: https://spacy.io/


#3

Yes and no… What I’m wondering is: what’s the lightest way of running just a kernel?


#4

(Thebelab et al are client packages that call on a kernel running via Binderhub. Do they need the full machinery of all the stuff Binderhub builds into its images?)


#5

ah - I guess my question then is: what do you mean by “just a kernel”? I thought you were asking for arbitrary binder-like environments running via a text interface in the cloud.


#6

By “kernel”, I guess I mean a minimal environment that includes just the Linux and language specific packages to execute the programme language commands that I would be able to execute in a notebook code cell associated with that “kernel”.

So eg for gnuplot kernel, that would be gunplot and its dependencies, metakernal / gnuplot metakernel and its dependencies, and whatever other dependencies are required so that I could fire up a container containing that stuff and connect to it, as “a kernel” from something like ThebeLab.

–tony


#7

I think in this case BinderHub is actually a decent choice - if you specify a minimal number of requirements, it basically just uses a barebones ubuntu environment which is quite lightweight, then spins up a jupyter server so you can connect with it. I think you can do the same thing w/ JupyterHub too (that’s what binderhub is using under the hood)


#8

I’d start prototyping this with a JupyterHub or BinderHub. Also investigate kernel gateway as it sounds like it should be made for this. I’ve never found time to look at it and through all the enterprise talk can’t quite work out what it does.

In terms of minimalism https://github.com/binder-examples/minimal-dockerfile/blob/c7928dc713893d8aba4d8e2c3fe6025681524636/Dockerfile is the minimal Dockerfile to get things going on BinderHub (or I guess a JupyterHub)


#9

Ah, yes… kernel gateway… maybe that’s what I need…

Lost track of that one!

Thanks
–tony