-
Notifications
You must be signed in to change notification settings - Fork 146
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
Special case for sparse IndexSpace overlap test #463
Comments
Yes, that'd be correct. Apart from a minor code reordering tweak, I'll submit a fix for that shortly. Thanks for the suggestion! |
Another test when both IndexSpaces are sparse? |
Another question: if I understand the purpose (doubtful!) of |
Yes, Can you describe the use case that is causing you to call this method? |
I believe (based on the call stack in the core file) that this
method is being called as a consequence of my application calling
`Legion::Runtime::create_partition_by_image_range()`, although I'm
not certain of it. The idea is to project an IndexPartition on
IndexSpace "I_A" that is a subspace of IndexSpace "I" to another
IndexSpace "I_B" that is also a subspace of "I", where any of the
IndexSpaces may be sparse.
…On Fri, 21 Dec 2018 at 11:35, streichler wrote:
Yes, `overlaps_approx` must return true if there is overlap, but
it's also allowed to return true in non-overlap cases. The goal
is that this imprecision will only happen when it's holes in a
sparsity mask that avoid the overlap. (Technically it'd be
legal to simply return true in all cases, but that wouldn't be
very useful.)
Can you describe the use case that is causing you to call this
method?
--
Martin
|
Can you paste the backtrace here? |
|
Ok, I've reproduced the error with a small test case. I'll work on a fix tonight. |
Looks good, all test cases for my application now pass. Thanks, @streichler. |
The implementation of Realm::IndexSpace<N,T>::overlaps_approx()
legion/runtime/realm/indexspace.inl
Lines 1285 to 1305 in 9074bbf
bails out when both index spaces are sparse. However, I was wondering whether there isn't a special case that is actually fairly easy to resolve: that is, when the sparsity maps are identical and the bounds overlap. Something like
if (sparsity == other.sparsity) return bounds.overlaps(other.bounds);
before the
assert(0);
.I'm uncertain about the correctness in general, but it seems reasonable based on my limited understanding. Making this change in my local repo allowed me to work around the otherwise missing implementation, and provided the correct result in my application.
The text was updated successfully, but these errors were encountered: