[petsc-users] Grid Partitioning with ParMetis
Matthew Knepley
knepley at gmail.com
Thu Jul 28 23:25:04 CDT 2011
On Fri, Jul 29, 2011 at 3:49 AM, Mohammad Mirzadeh <mirzadeh at gmail.com>wrote:
> Hi all,
>
> I am trying to write a code to do parallel computation on quadtree adaptive
> grids and to do so , I need to distribute the grid in parallel. I have
> selected a general unstructured framework for telling PETSc about my node
> numbering. An example of such grid is schematically shown below.
>
0) If you are doing this, I think you should at least look at the p4est
package before proceeding.
>
> 1 16 7 3
> +---------------+---------------+------------------------------+
> | | | |
> | | | |
> |14 | 15 | 17 |
> +---------------+---------------+ |
> | | | |
> | | | |
> | 4 | 12 | 6 |8
> +---------------+---------------+------------------------------+
> | | | |
> | | | |
> | 9 | 11 | 13 |
> +---------------+---------------+ |
> | | | |
> | | | |
> | 0 | 10 |5 | 2
> +---------------+---------------+------------------------------+
>
>
> To distribute this in parallel I am using the ParMetis interface via MatPartitioning object and I follow(more or less) the example in $PETSC_DIR/src/dm/ao/examples/tutorials/ex2.c; To make the initial distribution, I choose nodal based partitioning by creating the adjacency matrix, for which I create ia and ja arrays accordingly. once the grid is processed and the new orderings are generated, I follow all required steps to generate the AO needed to map between PETSc ordering and the new global numbering and this is the result:
>
>
> Number of elements in ordering 18
> PETSc->App App->PETSc
> 0 9 0 1
> 1 0 1 3
> 2 10 2 4
> 3 1 3 7
> 4 2 4 12
> 5 11 5 14
> 6 12 6 15
> 7 3 7 16
> 8 13 8 17
> 9 14 9 0
> 10 15 10 2
> 11 16 11 5
> 12 4 12 6
> 13 17 13 8
> 14 5 14 9
> 15 6 15 10
> 16 7 16 11
> 17 8 17 13
>
> Now I have two questions/concerns:
>
> 1) Do processors always have the nodes in contiguous chunks of PETSc
> ordering? i.e 0-8 on rank 0 and 9-17 on rank 1 ? If so, this particular
> ordering does not seem to be "good" for this grid since it seems to cross
> too many edges in the graph (here 13 edges) and by just looking at the graph
> I can(at least) think of a better distribution with only 6 edge cuts. (if
> you are wondering how, having {0,9,4,14,1,10,11,12,15} on rank 0 and rest on
> rank 1).
>
Yes, the PETSc ordering is always contiguous. Perhaps you are not providing
the graph you think you are for partitioning.
> 2) Isn't it true that the final distribution should be independent of
> initial grid numbering? When I try the same grid but with the following
> (hand-generated) numbering:
>
> 14 15 16 17
> +---------------+---------------+------------------------------+
> | | | |
> | | | |
> |11 | 12 | 13 |
> +---------------+---------------+ |
> | | | |
> | | | |
> | 7 | 8 | 9 |10
> +---------------+---------------+------------------------------+
> | | | |
> | | | |
> | 4 | 5 | 6 |
> +---------------+---------------+ |
> | | | |
> | | | |
> | 0 | 1 |2 | 3
> +---------------+---------------+------------------------------+
>
> I get the following AO:
>
> Number of elements in ordering 18
> PETSc->App App->PETSc
> 0 9 0 9
> 1 10 1 10
> 2 11 2 11
> 3 12 3 12
> 4 13 4 13
> 5 14 5 14
> 6 15 6 15
> 7 16 7 16
> 8 17 8 17
> 9 0 9 0
> 10 1 10 1
> 11 2 11 2
> 12 3 12 3
> 13 4 13 4
> 14 5 14 5
> 15 6 15 6
> 16 7 16 7
> 17 8 17 8
>
>
> which is simply the initial ordering with a change in the order in which
> processors handle nodes. Could it be that the partitioning is not unique
> and each time the algorithm only tries to obtain the "best" possible
> ordering depending on the initial distribution? If so, how should I know
> what ordering to start with?
>
Yes, ParMetis does not provide a unique "best" ordering, which is at least
NP-complete if not worse.
Matt
> I am really confused and would appreciate if someone could provide some
> insights.
>
> Thanks,
> Mohammad
>
--
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110729/11eae3ea/attachment.htm>
More information about the petsc-users
mailing list