Dask - any way to limit the content in dask scheduler dashboard?

Hi,

I am using distributed version 2021.10.0.

I noticed that the default content in the dashboard header is pretty extensive in the latest version and in some cases I feel that it takes up too much space.

Is there any way to limit the items in the header or set expand to False or similar? Earlier versions 2021.6.0 did have less info in the dashboard. The difference in headers is indicated by the blue square in the image below and seems to have been changed between these two mentioned versions.

Also to see that to show the dashboard I need to do it differently between the two versions:

In 2021.06.0 I call the dashboard just calling the client as below:


from distributed import Client

client = Client()

# call client to see the dashboard

client

In 2021.10.0 I call the dashboard as below:


from distributed import Client

client = Client()

# call client.scheduler_info() to see the dashboard

client.scheduler_info()

@geoviz I can’t reproduce what you report but I’ve seen this problem before, and it usually gets resolved by clearing the browser cash, see this issue Dashboard "More" not rendering as dropdown · Issue #5368 · dask/distributed · GitHub and Dashboard Plots tab not working in Firefox · Issue #4994 · dask/distributed · GitHub
Can you give it a try to the cache clearing? (hold shift and click refresh)

This is what I see on my end in Firefox.

Regarding your comment “In 2021.06.0 I call the dashboard just calling the client as below:” you can still get the client that way in 2021.10.0 In the notebook you can click the link in blue:

Thanks a lot for quick feedback!

I did actually fall back to the earlier version temporarily, but will certainly try clearing the cache. I thaught I might be able to send in a list of what headers was desired, but certainly understand if this is not an option.

I agree that calling the client created as above does work for both listed versions. But one thing I noticed for the 20201.10.0 was that this would not list number of workers and cores; thus I did rather call the client.scheduler_info() to get that.

I understand that there are quite some synergies between the great work done by the dev teams behind dask and holoviz and was wondering if you are also looking into applying the higher level holoviews/hvplot/panel (powered by bokeh) for dashboard output compared to the bokeh dashboard being build from the bottom?

Thank you for your great feedback!

Hi @geoviz yes, please give it a try to the latest version of dask at there have been a good amount of improvements since 2021.06.0.

Regarding this comment “I agree that calling the client created as above does work for both listed versions. But one thing I noticed for the 20201.10.0 was that this would not list number of workers and cores”

In the notebook if you click on Cluster info you will see all this information.
client_info

Regarding your latest comment about the holoviws/hvplot/panel I’m not aware of this but it is an interesting question, would you mind opening a different question on discourse about this topic with a nice title that describes it, so people that might know about this can answer.

But one thing I noticed for the 20201.10.0 was that this would not list number of workers and cores;

That’s correct. As @ncclementi pointed out, this information is now one level deeper in the “Cluster Info” section. FWIW there’s this issue in the distributed issue tracker Client HTML Repr no longer as engaging at first glance · Issue #5189 · dask/distributed · GitHub for adding back information like total cluster memory, total number of workers, etc. to the top-level of the Client HTML repr. This should make the Client repr more compelling at first glance.

1 Like

Thanks a lot for this information, I did upgrade to 2021.10.0 again. It now works after clearing the browser cache - great tip!

I did not realize that the call to client was giving back a page where you could unfold by clicking the headers. In my case I did not make space for that in a panel (library) representation of the output (see below code).
Here is the code I use in my notebook

import panel as pn
pn.extension()

try:
    client.close()
    del client
except:
    pass

client_kwargs = dict()  #  n_workers=4, threads_per_worker=3)

if 'client' not in locals():
    client = Client()  # **client_kwargs)

pn.Column(pn.pane.Markdown('## Dashboard dask processing'),
          client,
          pn.pane.HTML(IFrame(src=client.dashboard_link, width=1400, height=500), align='center'), height_policy='max')

Another observation I made is that the dashboard / progress part task names are becoming unreadable if the browser window is reduced in width in the 2021.10.0 version compared to 2021.06.0. This also happens in my panel representation inside the notebook with the 2021.10.0 version (see below example).

dask_dashboard

Interesting, I haven’t seen people using Panel this way.

If you want to customize the size/layouts of the Dask dashboard components, you might also be interested in trying out dask-labextension in the JupyterLab notebook interface. That allows you to connect to and arrange the dashboard in whatever way is convenient to you (and my help with some of the squeezing you are seeing here).