Zoltan2: MJ giving unbalanced parts for large structured data
Created by: kddevin
@trilinos/zoltan2
Expectations
For uniformly weighted input, MJ should return balanced parts when not using rectilinear blocks.
Current Behavior
For large structured data, MJ can return unbalanced parts. For example, running with 9M points selected as integers within a 1000x1000x1000 cube and dividing into 64 parts, MJ returns imbalance of 3, with half of the parts empty.
myGlobalId_t = i 4; localCount = 9000000; globalCount = 9000000
Test: no weights, scalar = double
Imbalance Metrics: (64 existing parts) (32 of which are non-empty)
min max avg imbalance
object count 0 4.219e+05 1.406e+05 3
This result is consistent regardless of whether the coordinates are given to MJ as integers or doubles.
Motivation and Context
I'd like to partition the nonzeros of a tensor with MJ, but for large-enough tensors, the resulting partition is not balanced.
Definition of Done
MJ returns balanced parts for this use case.
Possible Solution
Steps to Reproduce
New test problem zoltan2/test/partition/mj_imbalanced.cpp demonstrates the problem. Running on one processor: Zoltan2_mj_imbalanced.exe
Your Environment
- Relevant repo SHA1s:
- Relevant configure flags or configure script:
- Operating system and version:
-
Compiler and TPL versions:
77f266c4 All platforms
Related Issues
- Blocks
- Is blocked by
- Follows
- Precedes
- Related to
- Part of
- Composed of