Thread Previous • Date Previous • Date Next • Thread Next |
Martin Sandve Alnæs wrote:
On 12/6/06, Garth N. Wells <g.n.wells@xxxxxxxxxx> wrote: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.I'm thinking about having to renumber the dofs to reduce the communication. Communication size should preferably be independent of the dof numbering, only on the partition.
This is possible for assembly if entries assembled on a process reside on that process, but then for arbitrary dof numbering linear algebra operations will be deadly slow. The key goal of course is to minimise the couplings between blocks on different processes. To do this, you need to minimise the number of "connected" degrees of freedom which reside on different processes.
If no renumbering is required for performance, then you could partition as mesh arbitrarily (just divide the number of cells across processes equally). No need to bother with a partitioning library like METIS (a lot of people would be out if business).
Effective renumbering (based on a good partition) is the key to performance. Even for a single process, renumbering can improve performance.
Garth
I'll tell you when I get around to testing it myself. martin
Thread Previous • Date Previous • Date Next • Thread Next |