Skip to content
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

[pitch] Renku 2.0 Compute Sessions #35

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

[pitch] Renku 2.0 Compute Sessions #35

wants to merge 12 commits into from

Conversation

lokijuhy
Copy link
Member

@lokijuhy lokijuhy commented Jan 25, 2024

This pitch introduces how we plan to build Compute Sessions in the next generation of Renku ("Renku 2.0").

@lokijuhy lokijuhy marked this pull request as ready for review January 25, 2024 15:08
@lokijuhy lokijuhy changed the title Add Renku 1.0 Compute sessions pitch [pitch] Renku 1.0 Compute Sessions Jan 25, 2024
Copy link
Member

@rokroskar rokroskar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @lokijuhy!! Just some points to clarify

- There are a whole bunch of restrictions for what must be in the image for it to work on RenkuLab. We will have to document these limitations for users.
- We *think* that any image coming from the Jupyter stack should work
- ... Or at least Renku base images
- Only publicly accessible images are supported
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should either say "... will be supported as a part of this build, and authentication options added later." or add a "nice to have" to deal with authentication.

##### Priority 4: [for the future/out of scope] Search & select from preexisting RenkuLab environments

#### User Flow: Start Session

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is no provision here for selecting the resource pool / class?

- When a user creates a new project, the project has no sessions until a user adds one.
- [nice to have] Provide shortcuts for adding a session from the RenkuLab default environments
- A user can create as many sessions as they want in a project.
- A user can run 1 session per environment per project (similar to our restriction now of 1 session per user per project)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So we need to actually prevent the user from creating multiple sessions from the same environment - should this be mentioned in the user flow?

- → Solved by offering RenkuLab built-in session “templates” (name TBD) as the fastest route to adding a session to a project
- When I create a new Renku project, I want to get started right away with a pre-built environment- **I don’t want to have to wait for the environment image to be built** to get started.
- → Same as above
- When I start a session, I want to **clearly understand what environment image the session will use and what is installed in it**, so I am not confused where the compute environment comes from.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imho this doesn't really address the "clearly understand what is installed" part?

- date of creation
- [optional] description (e.g. why it is useful)
- [optional] keywords/tags to aid in searching (for example, I might tag an environment with `#python` `#pytorch` to give a quick impression of what is in the image)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a very general sense, I feel that these changes are centered on the actual Docker images Renku is using. This is very helpful, however there is something that we cannot do with docker images: "mixing" the environments.

Let's put a concrete case:

Let's say I have an app for "paraview" GUI viewer and an app for a finite element software and another and finally one for Solidipes. The user would wish to create a single session with /paraview, /solidipes, /fe and /lab automatically. In the current Renku, I would do with python plugins and jupyter proxy: this is conditioned by the currently installed python packages. But what is proposed here, do not allow that, I think.

How am I supposed to mix environments ? Can I create as session with two environments ? From your proposal, I think that someone has to make a Dockerfile (somewhere) and describe the installation for the mix.
However, it would make sense to split the process of installation (and not requiring the users to write the Dockerfile for any combination).

I think the metadata attached to an environment should also include possible (compatible) requirements. That would allow the dependencies to be somehow selected while creating the session (and select them in a catalog).

Another possibility could be to have two types of "environments": one for the Dockerfile level and one for the requirements. (Sadly, this is orthogonal to the request that users do not want to wait installation times when spawning a new session....).

To summarize: I think it is important to think of a way/procedure, which allows mixing environment/apps easily.

@lokijuhy lokijuhy changed the title [pitch] Renku 1.0 Compute Sessions [pitch] Renku 2.0 Compute Sessions Mar 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants