# Linear-time blockwise layer fusion

**URL:** https://dask.discourse.group/t/linear-time-blockwise-layer-fusion/1822
**Category:** Uncategorized
**Created:** [May 3, 2023, 6:59pm UTC](https://dask.discourse.group/t/linear-time-blockwise-layer-fusion/1822 "2023-05-03T18:59:35Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![martindurant](https://yyz1.discourse-cdn.com/flex035/user_avatar/dask.discourse.group/martindurant/32/69_2.png) [@martindurant](https://dask.discourse.group/u/martindurant)
#### Post date: [May 3, 2023, 6:59pm UTC](https://dask.discourse.group/t/linear-time-blockwise-layer-fusion/1822/1 "2023-05-03T18:59:35Z")

</div>

See [dask-awkward/optimize.py at main · dask-contrib/dask-awkward · GitHub](https://github.com/dask-contrib/dask-awkward/blob/main/src/dask_awkward/lib/optimize.py#L216) for a function that does fusion on chains of blockwise layers in linear time, rather than the current N\*\*2 algorithm in dask. It is more limited in what it can fuse, but could be an effective precursor stage to standard fuse as a way to cut down time.

Since it was developed for dask-awkward, it might only apply when there is just one axis of partitioning, i.e., dataframes rather than arrays, because this matches dask-awkward’s model.
