def test_plot_multiple(): from dask.diagnostics.profile_visualize import visualize with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, "c") p = visualize([prof, rprof], label_size=50, title="Not the default", show=False, save=False) # Grid plot layouts changed in Bokeh 3. # See https://github.com/dask/dask/issues/9257 for more details if BOKEH_VERSION().major < 3: figures = [r[0] for r in p.children[1].children] else: figures = [r[0] for r in p.children] assert len(figures) == 2 assert figures[0].title.text == "Not the default" assert figures[0].xaxis[0].axis_label is None assert figures[1].title is None assert figures[1].xaxis[0].axis_label == "Time (s)" # Test empty, checking for errors prof.clear() rprof.clear() visualize([prof, rprof], show=False, save=False)
def test_plot_multiple(): from dask.diagnostics.profile_visualize import visualize with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, "c") p = visualize( [prof, rprof], label_size=50, title="Not the default", show=False, save=False ) bokeh_version = LooseVersion(bokeh.__version__) if bokeh_version >= "1.1.0": figures = [r[0] for r in p.children[1].children] elif bokeh_version >= "0.12.0": figures = [r.children[0] for r in p.children[1].children] else: figures = [r[0] for r in p.children] assert len(figures) == 2 assert check_title(figures[0], "Not the default") assert figures[0].xaxis[0].axis_label is None assert figures[1].title is None assert figures[1].xaxis[0].axis_label == "Time (s)" # Test empty, checking for errors prof.clear() rprof.clear() visualize([prof, rprof], show=False, save=False)
def test_plot_multiple(): from dask.diagnostics.profile_visualize import visualize from bokeh.models import GridPlot with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, 'c') p = visualize([prof, rprof], label_size=50, title="Not the default", show=False, save=False) assert isinstance(p, GridPlot) assert len(p.children) == 2 assert p.children[0][0].title == "Not the default" assert p.children[0][0].xaxis[0].axis_label is None assert p.children[1][0].title is None assert p.children[1][0].xaxis[0].axis_label == 'Time (s)' # Test empty, checking for errors prof.clear() rprof.clear() visualize([prof, rprof], show=False, save=False)
def test_plot_multiple(): from dask.diagnostics.profile_visualize import visualize from bokeh.plotting import GridPlot with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, 'c') p = visualize([prof, rprof], label_size=50, title="Not the default", show=False, save=False) assert isinstance(p, GridPlot) assert len(p.children) == 2 assert p.children[0][0].title == "Not the default" assert p.children[0][0].xaxis[0].axis_label is None assert p.children[1][0].title is None assert p.children[1][0].xaxis[0].axis_label == 'Time (s)' # Test empty, checking for errors prof.clear() rprof.clear() visualize([prof, rprof], show=False, save=False)
def test_plot_multiple(): from dask.diagnostics.profile_visualize import visualize with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, "c") p = visualize( [prof, rprof], label_size=50, title="Not the default", show=False, save=False ) figures = [r[0] for r in p.children[1].children] assert len(figures) == 2 assert figures[0].title.text == "Not the default" assert figures[0].xaxis[0].axis_label is None assert figures[1].title is None assert figures[1].xaxis[0].axis_label == "Time (s)" # Test empty, checking for errors prof.clear() rprof.clear() visualize([prof, rprof], show=False, save=False)
def visualize(self, **kwargs): """Visualize the profiling run in a bokeh plot. See also -------- dask.diagnostics.profile_visualize.visualize """ from dask.diagnostics.profile_visualize import visualize return visualize(self, **kwargs)
def test_plot_multiple(): from dask.diagnostics.profile_visualize import visualize with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, 'c') p = visualize([prof, rprof], label_size=50, title="Not the default", show=False, save=False) if LooseVersion(bokeh.__version__) >= '0.12.0': figures = [r.children[0] for r in p.children[1].children] else: figures = [r[0] for r in p.children] assert len(figures) == 2 assert check_title(figures[0], "Not the default") assert figures[0].xaxis[0].axis_label is None assert figures[1].title is None assert figures[1].xaxis[0].axis_label == 'Time (s)' # Test empty, checking for errors prof.clear() rprof.clear() visualize([prof, rprof], show=False, save=False)
def test_plot_both(): from dask.diagnostics.profile_visualize import visualize from bokeh.plotting import GridPlot with ResourceProfiler(dt=0.01) as rprof: with prof: get(dsk2, 'c') p = visualize([prof, rprof], label_size=50, title="Not the default", show=False, save=False) assert isinstance(p, GridPlot) assert len(p.children) == 2 assert p.children[0][0].title == "Not the default" assert p.children[0][0].xaxis[0].axis_label is None assert p.children[1][0].title is None assert p.children[1][0].xaxis[0].axis_label == 'Time (s)'
result = (da_input**2. + da_input**3.).mean(axis=0) result # %% [markdown] # ### Note that result hasn't been computed yet # # Here is a graph of how the calculation will be split among 4 threads # %% from dask.dot import dot_graph dot_graph(result.dask) # %% [markdown] # ### Now do the calculation # %% with Profiler() as prof, ResourceProfiler(dt=0.1) as rprof,\ CacheProfiler() as cprof: answer = result.compute() # %% [markdown] # Visualize the cpu, memory and cache for the 4 threads # %% visualize([prof, rprof, cprof], min_border_top=15, min_border_bottom=15) # %% [markdown] # ### You can evaluate your own functions on dask arrays # # If your functons release the GIL, you can get multithreaded computation using [dask.delayed](http://dask.pydata.org/en/latest/delayed.html)