Skip to content

Config toggle to disable blockwise fusion#10909

Closed
crusaderky wants to merge 1 commit intodask:mainfrom
crusaderky:blockwise-toggle
Closed

Config toggle to disable blockwise fusion#10909
crusaderky wants to merge 1 commit intodask:mainfrom
crusaderky:blockwise-toggle

Conversation

@crusaderky
Copy link
Collaborator

Useful to debug / work around #9888

@crusaderky crusaderky self-assigned this Feb 8, 2024
@github-actions
Copy link
Contributor

github-actions bot commented Feb 8, 2024

Unit Test Results

See test report for an extended history of previous test failures. This is useful for diagnosing flaky tests.

     15 files  ± 0       15 suites  ±0   3h 14m 46s ⏱️ - 1m 35s
 12 990 tests + 2   12 061 ✅ + 2     929 💤 ±0  0 ❌ ±0 
160 531 runs  +24  144 057 ✅ +24  16 474 💤 ±0  0 ❌ ±0 

Results for commit a07d7da. ± Comparison against base commit 7726d31.

♻️ This comment has been updated with latest results.

@phofl
Copy link
Collaborator

phofl commented Feb 9, 2024

I am not a fan of exposing this publicly, the reuse keys stuff goes away for DataFrames with dask-expr and I don't want to respect this option there. Disabling blockwise fusion kills the scheduler as soon as you want to scale out

@crusaderky
Copy link
Collaborator Author

@fjetter @hendrikmakait opinions? IMHO this is a powerful debugging tool, at the very least.

assert len(graph) <= 4


def test_blockwise_optimize_toggle():
Copy link
Collaborator Author

@crusaderky crusaderky Feb 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused as to why this test doesn't fail with dask-expr enabled? @phofl ideas?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't go through the dask-expr optimised, you'll end up with an un-optimized expression that is materialised and then goes through the dask/dask blockwise optimise

You would have to call ddf.optimize() if you want to go through the dask-expr optimiser. We should probably fix this FWIW in here as well

crusaderky added a commit to crusaderky/dask that referenced this pull request Feb 9, 2024
@fjetter
Copy link
Member

fjetter commented Feb 12, 2024

I don't expect anyone to actually use this configuration. I think we do not have any kind of documentation about blockwise fusion so this public config is confusing. Even worse, I can't come up with a situation where I would recommend this to anybody. Even if a user is affected by #9888 there are other mitigation strategies that are generally more user friendly than disabling fusion.

I'm also not convinced that debugging this is such a common practice that we need a proper toggle for it. For dask devs, it should be sufficient to comment this stuff out, it's two lines after all.

@crusaderky crusaderky closed this Feb 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants