default Piece Distribution method
Currently, when loading a multiblock dataset in parallel, the default Piece Distribution is set to Block. The other option is Interleave. I've noticed that for our large datasets, Interleave is a better option, and I was wondering if the default could be changed to Interleave.
The datasets we produce for Flag and xRage is a multiblock dataset, with the first block always being the entire mesh. The other blocks are considerably smaller, containing tracers, subsets of materials, etc.
So if the Block strategy is used, the first pieces are of the mesh, and are the largest pieces. Since they are assigned to continuous procs, the largest pieces will probably sit on the same node. Likewise, the smaller pieces in the later blocks will also sit in the same nodes, and memory usage across nodes will not be very balanced.
Of course you can change this in the gui before loading the data, but I'm worried about users not knowing this and having issues since the default is Block.
A concrete example: let's say we have a multiblock dataset with two blocks, and each block is divided into 32 pieces. So 64 pieces total. The first block is the mesh, and it's quite large. The second block is tracers, and it's much smaller.
We load this dataset over two nodes with 16 procs each. With the Block method, the first 16 procs will load the entire first block, and they all sit on the same node. Then all the procs on the second node will load the second block. The memory usage is not evenly balanced over the two nodes. With the Interleave method, the two nodes will have an equal number of pieces from the first block and second block, so memory usage should be much more balanced.