-
-
Notifications
You must be signed in to change notification settings - Fork 308
Add internal spatial tree #5800
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
base: develop
Are you sure you want to change the base?
Conversation
adaa2c7
to
b8620f9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CMake changes looks good.
/* Sort hyper-rectangles in this region by the first unsorted coordinate of their midpoints */ | ||
if (!this_rank_sorted) { | ||
assert(prev_sort_dim < rank - 1); | ||
sort_dim = prev_sort_dim + 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So it just sorts dimensions in the order 0,1,2, 3,3,3,3 (for rank 4)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be hard to use something simple like picking the largest dimension? I'm wondering how much this would help performance
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your understanding is correct - it just iterates through the dimensions. We could try picking the largest dimension, though this would require manually keeping tracking of which dimensions have been sorted and which haven't. I'll try it and see if it has an impact.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What exactly do you mean by largest dimension? I tried an implementation where the dimension in the bbox with the highest span (max - min) was prioritized, but didn't find any improvement in performance.
Implement an r-tree data structure in a new module. It has three exposed methods: creation, destruction, and search.
The STR algorithm used during creation is based on the one described here.
This will be used to optimize VDS operations in an upcoming PR.
Important
Introduces an R-tree data structure with creation, search, and destruction methods, integrated into the build system and validated with new tests.
H5RT.c
with methodsH5RT_create()
,H5RT_search()
, andH5RT_free()
.CMakeLists.txt
to includeH5RT.c
and related headers.rtree.c
test file to validate R-tree creation and search functionalities.test/CMakeLists.txt
to includertree
in test suite.This description was created by
for 1b8ba58. You can customize this summary. It will automatically update as commits are pushed.