Parallel Graph & Mesh Partitioning

Discussions about the routines in ParMETIS

Hi,

I am using ParMETIS_V3_PartMeshKway to partition my mesh, if it is not contiguous I am having some bug which doesn't
appear for small meshes, therefore, it is not easy to hunt that bug. Basically, I need contiguous subdomain.

I was doing random experiment with function parameters, I always set "ncon" as one, but this time I changed to 2, all my bugs have been gone away.

There is a phrase in ParMetis documentation " If ncon is greater than one, the target sub-domain weights for each
sub-domain are stored contiguously", I din't quite understand what it means,

does it mean contiguous sub domain if I use ncon > 1? if so, could you explain me why? if not, how can I
force ParMetis for contiguous sub-domains?

I read all forum posted questions in the past, I understand ParMetis doesn't guarantee this, but sometime ago in METIS form George mentioned (for METIS) that it will be an option for enforcing contiguous sub-domain (posted two year-ago).

Thanks,

We currently use PartGraphKway with ubvec set to 1.01, and still end up with many discontiguous domains when in the range of thousands. Has anyone gotten better surface to volume ratios and/or better contiguousness by adding coordinates?

Walt

about to call ParMETIS, ubvec = 1.050000
Error! ***Memory allocation failed for PreAllocateMemory: wspace->core. Requested size: -1077936124 bytesforrtl: error (76): Abort trap signal
Image PC Routine Line Source
libc.so.6 000000336B630215 Unknown Unknown Unknown
libc.so.6 000000336B631CC0 Unknown Unknown Unknown
......

Hi,

above is the error message I got when I run a relatively big partitioning job. all the smaller data setups work. does this mean I'm running to the limit in the sense of memory allocation size?

many thanks

P.

Hi,

Is the input format for ParMETIS different from that for Metis? If so, what is the right input format for ParMETIS? The example graph in the Graphs directory of the ParMetis distribution seems to have the same format as that accepted by (serial) Metis. However, when I try to run ParMetis on my own graphs, I get errors. (Serial Metis runs just fine on these graphs and graphchk (provided in Metis) says these graphs are ok too.) Specifically, the BSearch function invocation on line 432 in Mc_Global_CreateCoarseGraph raises "key not found" errors.

Much appreciate any help!

Thanks,
Venu Satuluri

Hi,

I am running test cases PartMesh, it sometimes (very rare) happens that distributed meshes
are deattached. I was expecting from Partmetis all partitioned elements will
stick each other in the same process.

am I doing something wrong?

Thanks,

Hi,

I have been using parmetis to partition my finite element meshes, I am doing some test cases and
returning some partition zero size. I am doing very coarse meshes (for test cases) such that
44 triangular elements, if I tried to decompose 14 submeshes, it returned me 13 submeshes (which
is correct and covers whole mesh) but one empty mesh.

I wonder if this is expected by Parmetis.

If you can help me out, I will be glad

Thanks,

Hi,

Like the previous poster, I'm trying to partition 3D FE mesh and I have a small, specific region that MUST be on the same processor. I was able to do this using very large weights early on, however I've recently moved into a 20 million node case and I believe the sum of my weights is going past the maximum possible integer value. I need to minimize communication between partitions, therefore I need to at least have edge weights of 1, but any value that doesn't cause an error seems to results in a partitioning which cuts through that region.

Is there a way in Parmetis-3.1 to absolutely prevent edgecuts in a region while still maintaining general edge weights? Currently I'm seeking to collapse all the vertices in the small section into a single graph point, but I'd prefer a simpler solution if possible. Any suggestions?

Thanks.

My graphs come from 3D unstructured FE meshes (the face-adjacent cell graph) and I have certain edges that I wish to avoid being cut. (To give an indication of how these edges would be distributed in the graph, they are associated with an internal mesh surface; I'd strongly prefer the cells not be partitioned along that surface.) My thought is to put a large weight on those edges, but how large is enough to (mostly) avoid them being cut without causing problems to the partitioning algorithms. Is there some rule-of-thumb for this, and is it graph-size dependent? I'd like to avoid a per-mesh, trial-and-error approach to the partitioning process and hardwire a weight value.

Thanks again.

The ParMetis distribution includes (and builds) a separate Metis library. What is the relationship of this library to the Metis distribution (e.g., which version)? I'm wondering if for serial use I can just use this library directly (in which case I need a pointer to the appropriate user documentation), or is it a 'special' version intended only for indirect use via ParMetis.

Thanks!

Hi. I'm working on the parallelization of a serial code for the solution of multiphase incompressible flows based on SAMR methods. Do you recomend the use of ParMETIS for partitioning Structured Adaptive Meshes? Is there another tool which is best suited for this task?

Thanks in Advance

Márcio