MCPcopy Index your code
hub / github.com/dask/dask / optimize

Function optimize

dask/array/optimization.py:37–65  ·  view source on GitHub ↗

Optimize dask for array computation 1. Cull tasks not necessary to evaluate keys 2. Perform linear fusion

(dsk, keys, **kwargs)

Source from the content-addressed store, hash-verified

35
36
37def optimize(dsk, keys, **kwargs):
38 """Optimize dask for array computation
39
40 1. Cull tasks not necessary to evaluate keys
41 2. Perform linear fusion
42 """
43 if not isinstance(keys, (list, set)):
44 keys = [keys]
45 keys = list(flatten(keys))
46
47 if not isinstance(dsk, HighLevelGraph):
48 dsk = HighLevelGraph.from_collections(id(dsk), dsk, dependencies=())
49
50 dsk = optimize_blockwise(dsk, keys=keys)
51 dsk = fuse_roots(dsk, keys=keys)
52 dsk = dsk.cull(set(keys))
53
54 # Perform low-level fusion unless the user has
55 # specified False explicitly.
56 if config.get("optimization.fuse.active") is False:
57 return dsk
58
59 dsk = ensure_dict(dsk)
60
61 dsk = convert_legacy_graph(dsk)
62 dsk = fuse_linear_task_spec(dsk, keys=keys)
63 dsk = _optimize_slices(dsk)
64
65 return dsk
66
67
68def _is_getter_task(

Callers 4

from_dask_arrayFunction · 0.90

Calls 11

flattenFunction · 0.90
optimize_blockwiseFunction · 0.90
fuse_rootsFunction · 0.90
ensure_dictFunction · 0.90
convert_legacy_graphFunction · 0.90
fuse_linear_task_specFunction · 0.90
setClass · 0.85
_optimize_slicesFunction · 0.85
from_collectionsMethod · 0.80
cullMethod · 0.45
getMethod · 0.45

Tested by 3

Used in the wild real call sites across dependent graphs

searching dependent graphs…