-
Notifications
You must be signed in to change notification settings - Fork 66
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
splitandzsplitas 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.