-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
exp show: display running/queued state for experiments #6174
Conversation
currently only includes PID and git fetch URL
Regarding docs, |
dvc/command/experiments.py
Outdated
if exp.get("running"): | ||
state = "Run" | ||
elif exp.get("queued"): | ||
state = "Queue" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should it be Running
/Queued
? Just feels a bit odd. Maybe this has been discussed somewhere. Just wondering.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Running/Queued makes more sense but I'm not really sure what's best here given that table width is a concern
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree that Running/Queued is better, unless someone can come up with something shorter that's still clear. We could include a --no-status
option to keep it narrower. Experiment
and Created
take up a lot of space, so we could also look into ways to narrow those if needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks good to me for non-checkpoint experiments.
For checkpoints experiments, it's a little confusing because:
- The
Run
status shows next to the already completed checkpoint. Maybe we should be showing the experiment name on a separate line from individual checkpoints? That would also narrow the first column. - For workspace runs, the status is
Run
for both the workspace row and the experiment row (which only exists after the first checkpoint). So it can look like there are two experiments running, one of which got added after the first checkpoint. Is there a way to indicate that the workspace is the same as one of the experiments, at least while the experiment is running?
dvc/command/experiments.py
Outdated
if exp.get("running"): | ||
state = "Run" | ||
elif exp.get("queued"): | ||
state = "Queue" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree that Running/Queued is better, unless someone can come up with something shorter that's still clear. We could include a --no-status
option to keep it narrower. Experiment
and Created
take up a lot of space, so we could also look into ways to narrow those if needed.
This makes sense to me because when you are resuming/continuing a checkpoint run, you are starting from the last completed checkpoint (rather than starting from the queued row that only has params and no metrics/outputs)
What would we do here for regular experiments? When #6050 is done we will have names in the rows for these queued/running experiments, and will have the same issue. I don't think it makes sense to take up 2 rows for a single experiment.
It seems like what we are going to eventually need is to display information about where an experiment is running (for remote executors) but I'm not sure where to indicate that right now. We could omit |
Extracted to #6194.
Yes, we need a column like executor or location or something. Why not add it now? Maybe we can autohide it and the state column when it's empty (nothing is running)? |
dvc/command/experiments.py
Outdated
@@ -304,7 +309,7 @@ def experiments_table( | |||
|
|||
from dvc.compare import TabularData | |||
|
|||
headers = ["Experiment", "rev", "queued", "typ", "Created", "parent"] | |||
headers = ["Experiment", "rev", "typ", "Created", "parent", "State"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am a bit confused about what it should be: State
or Status
. Both seem to make sense to me. Is State
most appropriate here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think either term works here. I just used state
because status
has some other connotations in DVC
@dberenbaum I've added a separate |
I think that we are mixing two things in the |
Do you mean that columns like status and executor should be shown in a separate command and not in |
@pmrowla Looks great! One very minor comment: can we shorten |
@@ -381,16 +395,22 @@ def show_experiments( | |||
if no_timestamp: | |||
td.drop("Created") | |||
|
|||
for col in ("State", "Executor"): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible for other columns to be empty? If so, would we want to hide them, too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There shouldn't be any other columns in the table right now that can be empty
β I have followed the Contributing to DVC checklist.
π If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.
Thank you for the contribution - we'll try to review it as soon as possible. π
Will close #5965
State
column that will currently be Running, Queued or emptyState
isRunning
, an additionalExecutor
column will be displayed noting where the experiment is being run, currently this is limited tolocal (workspace)
orlocal (background)
--show-json
(VSCode), experiment dicts now have arunning
key that will be true or false, and anexecutor
key which will be an optional string executor name--temp
or--queue/--run-all
runs (related to exp show: Allow running while DVC is lockedΒ #5739) which preventedexp show
from being usableRegular experiments example:
Checkpoints example: