You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Would you be able to give a high-level summary of what this is doing? An element of your task graph is this All2All class, which when "materialized" represents the actual task graph to do the shuffle? Are you familiar with Blockwise (
This is a lazily constructed mapping for tensor operation graphs.
This defines a dictionary using an operation and an indexing pattern.
It is built for many operations like elementwise, transpose, tensordot, and
so on. We choose to keep these as symbolic mappings rather than raw
dictionaries because we are able to fuse them during optimization,
sometimes resulting in much lower overhead.
) and SubgraphCallable? On the surface, these sound somewhat similar, but I might misunderstand.
However I think one notable difference is that Blockwise graphs are materialized as plain dicts before being sent to the scheduler. Your changes in dask/distributed#3765 would delay the materialization until the graph reaches the scheduler?
Thanks @TomAugspurger, I did look at Blockwise and SubgraphCallable but I will study them in more detail; you are right they look similar. I think we can generalize all of them into to a delayed task generation API.
I will collect my thoughts and write an issue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warning, this is a prototype and very hacky!
This PR, together with dask/distributed#3765, address the scheduler overhead #6163 by replacing
rearrange_by_column_tasks()with a task generator.Instead of creating
n**2tasks orn log ntasks when staging on the client upfront, this PR makes it possible to delay tasks creations until later.To enable the task generator set
USE_TASK_GENERATOR=1Preliminary Results
Shuffle with 536554 tasks (no staging) now takes ~6 seconds instead of ~60 seconds on my machine.