Following the idea of using bounding boxes for xmap constructions we could consider to implement a stripe-set form of all involved ingredients.
This avoids vectorization to death of big compact index lists (better scalability). This is suitable for a one-dim distributed directory which might not scale perfectly but probably is more cost effective for medium sized problems.
#1 Updated by Thomas Jahns almost 6 years ago
- Assignee set to Thomas Jahns
- % Done changed from 0 to 30
I have the base of this (a striped version of
xt_xmap_intersection_new) in the making right now. But some method to decide which to use from either
xt_xmap_dist_dir_new is still needed. In the case of
xt_xmap_all2all_new an additional logical reduction on whether any process has a big index list is probably not prohibitive. This might differ for
#2 Updated by Thomas Jahns over 5 years ago
- % Done changed from 30 to 100
This is now completed in master commit:694a0623e385835878e9e4c81bf761041929b98f and should give much improved performance whenever data on a single task becomes large. The changes include a tuning parameter in enum
CHEAP_VECTOR_SIZE (see source:"src/xt_idxlist_internal.h@694a0623e385835878e9e4c81bf761041929b98f#L113")