Description
Hi. One of application codes I'm involved with is using split
and zsplit
to partition 982 faces of a serial mesh. The application code is based on discontinuous galerkin method, and users want to distribute the mesh to get about one or two elements per MPI rank.
However, for some cases, split
and zsplit
didn't work. Below is from the parameter scan.
(1) when the number of parts is purely power of 2,
# of parts | split |
zsplit |
---|---|---|
32 | O | O |
256 | O | O |
512 | O | X |
(2) when the number of parts is NOT power of 2,
# of parts | split |
zsplit |
---|---|---|
48 | X | O |
96 | X | O |
288 | X | O |
336 | X | X |
384 | X | X |
Since the users' computer cluster equips 48 cores per one computing node, they want to partition the mesh to get multiples of 48. Since the number of elements for the mesh is small, one idea I'm thinking of is for each rank to load the entire same mesh without partitioning. But for that case, I'm worried that PUMI didn't work because all meshes are duplicated and they don't have partition map or any partition.
In sum, I have two questions.
- Is there limitation in
split
andzsplit
as the ratio of number of elmenets to total MPI ranks is close to 1? - If the limitation exists, is there a recommending way to handle that kind of application with PUMI?
Thanks.