Live data from Hacker News

Launch HN: Moonglow (YC S24) – Serverless Jupyter Notebooks

news.ycombinator.com

1–10 of 58 posts

Launch HN: Moonglow (YC S24) – Serverless Jupyter Notebooks

#1
Hi Hacker News! We’re Leila and Trevor from Moonglow (https://moonglow.ai). We let you run local Jupyter notebooks on remote cloud GPUs. Here’s a quick demo video: https://www.youtube.com/watch?v=Bf-xTsDT5FQ. If you want to try it out directly, there are instructions below.

With Moonglow, you can start and stop pre-configured remote cloud machines within VSCode, and it makes those servers appear to VSCode like normal Jupyter kernels that you can connect your notebook to.

We built this because we learned from talking to data scientists and ML researchers that scaling up experiments is hard. Most researchers like to start in a Jupyter notebook, but they rapidly hit a wall when they need to scale up to more powerful compute resources. To do so, they need to spin up a remote machine and then also start a Jupyter server on it so they can access it from their laptop. To avoid wasting compute resources, they might end up setting this up and tearing it down multiple times a day.

When Trevor used to do ML research at Stanford, he faced this exact problem: often, he needed to move between cloud providers to find GPU availability. This meant he was constantly clicking through various cloud compute UIs, as well as copying both notebook files and data across different providers over and over again.

Our goal with Moonglow is to make it easy to transfer your dev environment from your local machine to your cloud GPU. If you’ve used Google Colab, you’ve seen how easy it is to switch from a CPU to a GPU - we want to bring that experience to VSCode and Cursor.

If you’re curious, here’s some background on how it works. You can model a local Jupyter server as actually having three parts: a frontend (also known as a notebook), a server and an underlying backend kernel. The frontend is where you enter code into your notebook, the kernel is what actually executes it, and the server in the middle is responsible for spinning up and restarting kernels. Moonglow is a rewrite of this middle server part: where an ordinary Jupyter server would just start and stop kernels, we’ve added extra orchestration that provisions a machine from your cloud, starts a kernel on it, then sets up a tunnel between you and that kernel.

In the demo video (https://www.youtube.com/watch?v=Bf-xTsDT5FQ), you can see Trevor demonstrate how he uses Moonglow to train a ResNet to 94% accuracy on the CIFAR-10 classification benchmark in 1m16s of wall clock time. (In fact, it only takes 5 seconds of H100 time; the rest of it is all setup.)

On privacy: we tunnel your code and notebook output through our servers. We don’t store or log this data if you are bringing your own compute provider. However, we do monitor it if you are using compute provided by us, to make sure that what you are running doesn’t break our compute vendor’s terms of service.

We currently aren’t charging individuals for Moonglow. When we do, we plan to price individuals a reasonable amount per-seat, and we have a business plan for teams with more requirements.

Right now, we support Runpod and AWS. We’ll add support for GCP and Azure soon, too. (If you’d like to use us to connect to your own AWS account, please email me at trevor@moonglow.ai.)

For today’s launch on HN only, you can get a free API key at https://app.moonglow.ai/hn-launch. You don’t need to sign in and you don’t need to bring your own compute; we’ll let you run it on servers we provide. This API key will give you enough credit to run Moonglow with an A40 for an hour.

If you're signed in, you won't be able to see the free credits page, but your account will have automatically had free credits added to it.

We’re still very early, and there are a lot of features we’d still like to add, but we’d love to get your feedback on this. We look forward to your comments!

Re: Launch HN: Moonglow (YC S24) – Serverless Jupyter Notebooks

#3

How do you deal with the filesystem? Eg do you make the local file system visible to the remote kernel somehow?

We don't right now, but it's something a lot of people have asked for, so we're rolling out a file sync feature next week. (It will basically be a nice wrapper over rsync.)

Re: Launch HN: Moonglow (YC S24) – Serverless Jupyter Notebooks

#5

Will this work with zeds repl system that I believe uses Jupyter kernel spec? I really like their Jupyter repl format because it separates the cells with python comments so it’s much easier to deploy your code when you are done versus a notebook.

Good question! I'm not too familiar with Zed, but here's my high-level guess from reading the website: we don't currently integrate with Zed, but we probably could if it supports remote kernels (the docs I found at https://zed.dev/docs/repl weren't specific about it).

One nice thing about our VSCode extension is that it's not just a remote kernel - our extension also lets you see what kernels you have and other details, so we'd need to write something like it for Zed. We probably wouldn't do this unless there's a lot of demand.

By the way, VSCode also supports the # %% repl spec and Moonglow does work with that (though we haven't optimized for it as much as we've optimized for the notebooks).

Re: Launch HN: Moonglow (YC S24) – Serverless Jupyter Notebooks

#9

Cool! Optimal UX! What do you think of this compared with running a Jupyter server on Modal? (I think Modal is slightly harder, ie, you run a terminal command, but curious!) https://modal.com/docs/guide/notebooks

It seems like there are two ways of using Jupyter with Modal. One is adding Modal decorators to specific functions within a notebook, and for that use case, I think Modal is fantastic (if you are using GPUs on a function-by-function basis)!

On the other hand, if you are trying to run an entire notebook on a remote machine by starting a Jupyter server with Modal, then the workflow with Modal is not that different from other clouds (e.g. you can start an EC2 instance and run a Jupyter server there). For that, Moonglow still makes it easier by letting you stay in your IDE and avoid juggling Jupyter server URLs.

Also, you might need to use a specific cloud e.g. if you have cloud credits, sensitive data that needs to stay on that cloud or just expensive egress fees. One of Moonglow's strengths is that you can do your work in that cloud, rather than having to move stuff around.

Post reply on HN