Does some of you know a mesh partitioner that assures non empty subdomains? For METIS, ParMETIS and Zoltan this is not the case.
-
$\begingroup$ Could you be a bit more specific? What type of mesh are you partitioning? And what do you consider an empty subdomain? And how exactly were you using METIS/Zoltan? $\endgroup$– PedroCommented Nov 13, 2012 at 11:18
-
$\begingroup$ A mesh is a set of arbitrary elements, an empty domain is an empty set of elements, quite simple :) It does not matter, in which way I use METIS and Zoltan, they cannot guarantee that all subdomains contain at least one element. $\endgroup$– Thomas W.Commented Nov 13, 2012 at 11:25
-
1$\begingroup$ Well, I ask because METIS and Zoltan are graph, i.e. not mesh, partitioners, and I was wondering what the graph for your mesh looked like. Are you on a fixed grid? Variable number of links per node? Max/min number of links? The size of your mesh? To be honest, I have never seen METIS produce empty sub-domains, so I am quite curious as to what your problem looks like. Also, unless you add more details, I don't think anybody will be able to answer your question. $\endgroup$– PedroCommented Nov 13, 2012 at 16:45
-
$\begingroup$ The mesh is defined by its dual graph. Both, METIS and Zoltan provide functions which work directly on the mesh. Internally, the mesh is converted to the corresponding dual graph, which is than forwarded to the core algorithms. From time to time I see empty subdomains. This is usually, when I go to > 10.000 cores and I have not much more than 100 elements per subdomain. But I don't want to start a discussion about using these packages, as they can produce empty subdomains. So I'm searching for alternatives ... $\endgroup$– Thomas W.Commented Nov 13, 2012 at 18:18
-
$\begingroup$ Why is empty partition a problem. Yes there is a minor load imbalance (if 1 core out of a 1000 doesnt have any element) but thats it. You can always repartition by changing some of the the METIS options or by changing the number of partitions (e.g., request 999/1001 instead of 1000). Btw I have never seen METIS give me an empty partition. It could be because you have a low 'elements per core' ratio. $\endgroup$– staliCommented Nov 15, 2012 at 20:50
1 Answer
I was having an issue with Metis_PartMeshDual
where if my number of processors was greater than (number of elements)/2 I would get processors that were given no elements. I believe this is what the OP means by a partition getting an "empty subdomain".
I found that the line
options[METIS_OPTION_PTYPE] = METIS_PTYPE_RB;
made it so that for all cases where the number of processors $\leq$ number of elements, every processor gets at least one element. I know this isn't terribly enlightening, but hopefully, it helps someone.