-
-
Notifications
You must be signed in to change notification settings - Fork 234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Supporting RAPIDS libraries as part the images #37
Comments
Hi @chinmaychandak ,
RAPIDS, as well as JupyterHub would be definitely nice here, yes.
Cool, I've surrended in setting this up. Would you like to share your solution? Is it possible to switch between a JupyterLab and JupyterHub, similarly than between JupyterLab and Jupyter Notebook? The optimal result would be, if one can select the preferred interface.
Maybe the Dockerfile, instructions in RAPIDS ' Dockerfile help. They build onto the same base image, therefore it could work. Have you thought about the way optionally selects RAPIDS on top of the basic packages. It could be done in By the way, in issue 27 @mathematicalmichael and I have brainstormed how to set up GPU-Juypter such that the users can indiviually select their existing versions and desired software. We have thought about an interface similar than this on RAPIDS. Maybe some advanced packages like JupyterHub and RAPIDS could be managed comfortably using such an interface. |
Thank you so much for responding, @ChristophSchranz!
Brilliant!
I wrote a custom Helm Chart config to deploy JupyterHub on K8s here. This uses gpu-jupyter as a base image when spawning out new Jupyter workspaces to new users. It also installs RAPIDS, but currently it's a hacky way. I am going to work on creating a dedicated RAPIDS Docker stack for JupyterHub. If one has a GPU K8s cluster running, deploying this Helm Chart is literally a single command, and it sets up everything nicely.
Yes, definitely! This is already inbuilt: Users can just change the URL to
Yes, exactly! Going to work on that this week. :)
Yes, that is indeed an idea! We could just add this to
Yes, JupyterHub can definitely help there. In the Helm Config I linked above, do see the profiles section wherein different base images can be used to spawn Jupyter Workspaces. I use RAPIDS in the "RAPIDS Profile" and Spark in the "Spark-ML-ETL Profile"; users can choose which profile they want whenever they log into JupyterHub for the first time. |
Okay, so this is a single-user mode of JupyterHub, right? How can we use that for multiple users on a single notebook?
The file
Great! I'm looking forward to the results :) |
I didn't realize rapids built on the same base image! thanks for looking into it! It does look like |
also a note on architecture: the way that containerized jupyterhub with dockerspawner works is that it needs no knowledge of GPU libraries to work. It's just responsible for authentication and selecting which image to spawn. This project provides those images in such a way that are compatible with what the Hub is expecting. I would fully expect jupyterhub + dockerspawner to work as a multi-user application regardless of which libraries are added into the base images, gpu-based or not. |
I'm not sure I understand. Every time a new user logs into JupyterHub, they get their own personal, persistent across sessions, JupyterLab (& Notebook) workspace. Even their Conda environments can be preserved across sessions. Every such user workspace comes with all libraries gpu-jupyter installs as well as RAPIDS which I am installing currently as part of a lifecycleHook via If users need to access each other's workspaces to collaborate, we can always mount an additional persistent volume on the K8s cluster on a shared location.
Yes, I agree. As I mentioned above, I did get it working using this Helm config, but I think a dedicated RAPIDS Jupyter docker stack would be really helpful, which is what I will be working on soon. :) |
@chinmaychandak I havent had time to look into this, so apologies for the perhaps obvious questions, but AFAIK the RAPIDS containers come with jupyter notebook/lab + a bunch of common libraries. What's missing from their stack that you've got in mind? I think these pre-made stacks are helpful for setting up a dev environment but still advocate for custom-builds that are minimal in size once it comes time to ship. |
An update from my side: With a few tweaks, I was able to get the existing RAPIDS runtime DockerHub images to work with JupyterHub on a K8s cluster. :) I've published the Helm chart config I was able to use here. RAPIDS will also be publishing a Medium blog on how users can get started with using RAPIDS w/ JupyterHub. Hopefully that will help some folks in the future! Thanks a lot everyone for all the help here! Really appreciate it. |
Closing as no contribution for a while. |
Thank you for such an amazing project!
I want to use JupyterHub on Kubernetes to serve JupyterLab workspaces to multiple users. All users must be able to use the NVIDIA RAPIDS suite of GPU-accelerated Python Data Science libraries out-of-the-box.
However, none of the available Jupyter Docker Stacks provide RAPIDS yet.
I had a couple of questions:
Any help would be greatly appreciated!
The text was updated successfully, but these errors were encountered: