So, I found the problem related to empty partitions. It is not possible to weight vertices (i.e. elements of a mesh) in such a way that one weight is much higher than the other ones. For more details see
http://glaros.dtc.umn.edu/flyspray/task/11 Its a pity that ParMetis makes is very hard to find this kind of errors. The open question for me is about the non continuous partitions. Is it a normal behavior of ParMetis to create partitions that are not continous? Thomas Thomas Witkowski wrote: > 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 > > >
