[petsc-users] ParMETIS question

Thomas Witkowski thomas.witkowski at tu-dresden.de
Wed Dec 22 03:07:22 CST 2010


Okay, in my computations, I have empty partitions on some ranks and 
definitely not
minimal boundary sizes. So may be I generate a wrong input. But if this 
is the case, I
wonder why the resulting mesh partitioning is quite good. If I neglect 
the problem of
empty partitions, the redistributed mesh leads to a very good load 
balancing. Is there
any meaningful way to debug the problem? Is there something link a 
"verbose mode" in
ParMetis that says me whats happen on the input data? Otherwise I have 
to print all the
input data to the screen and check it by hand. Although I have a quite 
small example with
128 overall coarse mesh elements on 8 ranks, this is not big fun :)

Thomas

@Matthew: By mistake I've answered your mail directly to you and not to 
the mailing list, therefore I sent it now here again

Matthew Knepley wrote:
> On Tue, Dec 21, 2010 at 5:49 AM, Thomas Witkowski 
> <thomas.witkowski at tu-dresden.de 
> <mailto:thomas.witkowski at tu-dresden.de>> wrote:
>
>     Hi,
>
>     I have a not directly PETSc related question, but I hope to get
>     some answer from the community here. In my FEM code, I make use of
>     ParMETIS to partition the mesh. I make direct use of this library
>     and not of PETSc's ParMETIS integration. The initial partition is
>     always fine, but I use the ParMETIS_V3_AdaptiveRepart function for
>     repartition the mesh due to local mesh adaption. In most cases,
>     the result is fine, but there are two points, where I have trouble
>     with:
>
>     1) Sometimes ParMETIS generates empty partitions, i.e., a
>     processor has zero mesh elements. This is something my code cannot
>     handle. Is this a bug or a feature? If it is a feature, is there
>     any possiblity to disable it?
>
>
> ParMetis has a balance constraint if you weight vertices. This will 
> enforce equal size partitions.
>  
>
>     2) In most cases the specific partitions are not connected. If I
>     put all data to ParMETIS in a correct way, is this okay? My code
>     can handle it, but is slows down the computation due to larger
>     interior boundaries and therefore to more communications.
>
>
> ParMetis minimizes the overall boundary size, so I do not understand 
> how you could see this slowdown.
>
>    Matt
>  
>
>     Does anyone of you know an answer to these question? Is there a
>     debug mode in ParMETIS, where I can see which data is set to its
>     function calls?
>
>     Regards,
>
>     Thomas
>
>
>
>
> -- 
> 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



More information about the petsc-users mailing list