-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broadcasting of unions overtouches data #2911
Comments
This was working as expected in a prior version of awkward/dask-awkward (query 8 here run for CHEP): I know things have changed greatly, but I'm sure we can get back to that state. This issue may likely hang between awkward and dask-awkward. @douglasdavis FYI |
What's happening here is that we broadcast through the union, which necessarily involves projecting out each content before recursing. This projection is eager, so we end up touching everything below-and-including each content of the union. Once we recurse through each content, we find the same ufunc overload for @jpivarski this concerns the choice for N.B.: presently, there is an implicit dependency upon the union formed by |
We can change This mechanism was introduced in #261 as an optimization for RecordArrays (#204). We weren't thinking about UnionArrays, but if unions can be optimized (for Dask) by the same mechanism, then great! You can't directly nest an IndexedArray inside of a UnionArray, but since a UnionArray has an index anyway, those indexes can be combined without affecting the union's contents. |
Version of Awkward Array
master
Description and code to reproduce
While this does function now and does not yield incorrect data it reads a very large number of fields when it should need 10 (the counts of electrons, muons, and the four-momentum components of each). The current performance is rather suboptimal.
The code presently outputs:
Apologies for the coffea reproducer.
The text was updated successfully, but these errors were encountered: