-
Notifications
You must be signed in to change notification settings - Fork 186
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reader::compute_result_coords sub-partitioner (#1726)
This patch introduces a sub-partitioner to compute and sort the range result coords. The motiviation is to partition the elements sorted in parallel_sort (which runs in O(N * LOG(N)) time complexity). In the current scenario that I'm testing, this improves multi-fragment reads from ~2.9s to ~2.4s. The single-fragment read runs in ~1.8s. This reduces the total multi-fragment read overhead from 61% to 33%. // Single-fragment ``` - Read time: 1.81197 secs * Time to compute next partition: 0.059505 secs * Time to compute result coordinates: 0.427879 secs > Time to compute sparse result tiles: 0.00213199 secs > Time to read coordinate tiles: 0.0205255 secs > Time to unfilter coordinate tiles: 0.0236447 secs > Time to compute range result coordinates: 0.126082 secs * Time to compute sparse result cell slabs: 0.0142938 secs * Time to copy result attribute values: 1.27557 secs > Time to read attribute tiles: 0.325302 secs > Time to unfilter attribute tiles: 0.376115 secs > Time to copy fixed-sized attribute values: 0.324924 secs > Time to copy var-sized attribute values: 0.146791 secs * Time to copy result coordinates: 0.0475786 secs > Time to copy fixed-sized coordinates: 0.0238743 secs - Total read query time (array open + init state + read): 1.81201 secs ``` // Multi-fragment ``` - Read time: 2.40146 secs * Time to compute next partition: 0.0846776 secs * Time to compute result coordinates: 0.701766 secs > Time to compute sparse result tiles: 0.00235241 secs > Time to read coordinate tiles: 0.0225933 secs > Time to unfilter coordinate tiles: 0.0239695 secs > Time to compute range result coordinates: 0.101788 secs * Time to compute sparse result cell slabs: 0.0431639 secs * Time to copy result attribute values: 1.56159 secs > Time to read attribute tiles: 0.338785 secs > Time to unfilter attribute tiles: 0.397662 secs > Time to copy fixed-sized attribute values: 0.356104 secs > Time to copy var-sized attribute values: 0.313703 secs * Time to copy result coordinates: 0.0425039 secs > Time to copy fixed-sized coordinates: 0.0271955 secs - Total read query time (array open + init state + read): 2.4015 secs ``` // Multi-fragment (without this patch) ``` - Read time: 2.91803 secs * Time to compute next partition: 0.0418832 secs * Time to compute result coordinates: 0.988186 secs > Time to compute sparse result tiles: 0.00240205 secs > Time to read coordinate tiles: 0.0225808 secs > Time to unfilter coordinate tiles: 0.0243308 secs > Time to compute range result coordinates: 0.287352 secs * Time to compute sparse result cell slabs: 0.0378204 secs * Time to copy result attribute values: 1.76864 secs > Time to read attribute tiles: 0.343348 secs > Time to unfilter attribute tiles: 0.41717 secs > Time to copy fixed-sized attribute values: 0.436063 secs > Time to copy var-sized attribute values: 0.386814 secs * Time to copy result coordinates: 0.0684334 secs > Time to copy fixed-sized coordinates: 0.0382354 secs - Total read query time (array open + init state + read): 2.91808 secs ``` Co-authored-by: Joe Maley <[email protected]>
- Loading branch information
joe maley
and
Joe Maley
authored
Jul 17, 2020
1 parent
cbcc0f2
commit 25fcb22
Showing
4 changed files
with
132 additions
and
33 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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