← Back to team overview

dolfin team mailing list archive

Re: [HG dolfin] merge

 

Martin Sandve Alnæs wrote:
On 12/6/06, Garth N. Wells <g.n.wells@xxxxxxxxxx> wrote:
I used METIS. Take a look at the first function in the file
src/test/passembly.main.cpp.

I think your performance results may be a result of using the wrong
partitioning function. I've had a look at the METIS manual, and it
says this about the function you've used:


What do you mean? I was very happy with the performance. Given some of the rough edges in the test program, I was surprised.


METIS PartMeshNodal (...)

This function converts the mesh into a nodal graph and then uses METIS
PartGraphKway to compute a parti-
tioning of the nodes. This partitioning of nodes is then used to
compute a partitioning for the elements. This is
done by assigning each element to the partition in which the majority
of its nodes belong to (subject to balance
constraints).


It partitions the vertices, then divides the elements as an
"aftertought". Instead I think you should use this (and when I get the
time I'll try it myself):


METIS PartMeshDual (...)

This function converts the mesh into a dual graph and then uses METIS
PartGraphKway to compute a parti-
tioning of the elements. This partitioning of elements is then used to
compute a partitioning for the nodes. This
is done by assigning each node to the partition in which the majority
of its incident elements belong to (subject
to balance constraints).


This one partitions the elements first, then divides the vertices
based on this partition. For a FEM application, I believe this is much
better.


I don't expect this to make much difference.

Garth

martin





Follow ups

References