-
Notifications
You must be signed in to change notification settings - Fork 14
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
Goal of KSMM. #29
Comments
Here is how I see we can solve some of this. Alice would write a kernelspec template that looks like so:
From this it is "easy" to create a real kernelspec (potentially embedding the template in another key if we want to re-parametrise), from the "parameters" section – which structure is up for debate and can be closer to json-schema, we can create the form that sends us the value, and format all parameters in the rest of the kernelspec. |
This seems correct, but needs a bit more story. A few more examples off the top of my head:
|
Thx for sharing those user stories. In terms of
|
The prototype as well only deal with enum. I was offline and worked without access to json schema example/spec at the time. |
Do we still need this issue or can we close it? If there are still pieces to implement, perhaps new issues can be opened for them. |
Following a quick discussion that happen yesterday at the end of the meeting, I think there needs to be clarification of the goal of KSMM, potentially via users stories. I thought some of the requirements/end goals were clear, but that does not appear to be the case.
I don't particularly like user stories, but let's see if it's clearer.
Alice and Bob work at ACME Inc.
Alice is part of research IT that deploys jupyterHub backed on a multi-tenant and multi-cloud cluster. Alice has deep understanding of resources available, and how to configure a performant kernel deployment, by setting multiple parameters across many software in her stack.
Bob is a data scientist at ACME Inc, bob is good at analysing data, and know his models and the math behind them really well, even if Bob could spend the time to understand the dozen of parameter he could tweak using Jupyter on the cluster, he may not have the time to do so, and trust Alice to provide a number of premade choices with limited configurability.
For example Bob wish to have the following kernel:
Bob may want to also set some env variable as part of the kernel, to specify some extra configuration options, like OMP_NUM_THREADS, but those env variable are not know to alice, and might be part of BOB code. For the sake of simplicity we are going to assume those env variable are not Secrets.
Bob want a relatively simple UI. Click on the Python 3 kernel and change parameters, possibly see dropdown only for relevant parameters. For example R is never used with GPU, so no dropdown to switch GPU.
Alice is responsible for preparing the kernel "template" for Bob, she know the same options might be in multiple places, and want it to be both readable for Bob, and flexible to be given to her software.
For example the scheduler only takes memory amounts in KBytes, so she does not want bob to have to choose an option saying "209,715,093" (kb). So she needs a way to create a kernel spec with "templates":
Template 1:
GPU=True
env variable, otherwise pass nothing.--mem <value in kb>
Template 2:
--mem <value in kb>
--tag=ssd
machines.User requirements and changes in machine configuration varies rarely, so it's ok if creating those files is time consuming, it can be automatized later.
Alice is concerned that a high numbers of options would be too confusing for user and would prefer to only have variables parameters to be shown to the user.
The text was updated successfully, but these errors were encountered: