sieve-dev Manual mesh distrition

Shi Jin jinzishuai at gmail.com
Wed Jun 4 16:22:40 CDT 2008


>
> I have refactored partitioning to be much more modular. Look in
> Partitioner.hh
> at the Partitioner class. It has a method createPartition() which makes the
> equivalent of assignment[] in a section. This class is templated in
> type GraphPartitioner.
> Look at the class Simple::Partititoner (or Chaco::Partitioner). You
> could write your
> own class and then instantiate a Partitioner<MyGraphPartitioner>.


Sorry but I am still a bit lost. I updated my petsc-dev and did a test of
call to the
MeshDistribute(mesh, "chaco", &parallelMesh); function.

Here is the backtrace I got from gdb:
(gdb) bt
#0  ALE::New::Chaco::Partitioner<ALE::Mesh>::partitionSieve
(bundle=@0x7fff728f7510, dim=3) at sieve/Partitioner.hh:1539
#1  0x00000000005a151a in
ALE::Distribution<ALE::Mesh>::createAssignment<ALE::New::Chaco::Partitioner<ALE::Mesh>
> (bundle=@0x7fff728f7510, dim=3, sendOverlap=@0x7fff728f7280,
recvOverlap=@0x7fff728f7260, height=0) at sieve/Distribution.hh:420
#2  0x00000000005a165d in
ALE::Distribution<ALE::Mesh>::scatterBundle<ALE::New::Chaco::Partitioner<ALE::Mesh>
> (bundle=@0x7fff728f7510, dim=3, bundleNew=@0x7fff728f74f0,
sendOverlap=@0x7fff728f7280, recvOverlap=@0x7fff728f7260, height=0) at
sieve/Distribution.hh:508
#3  0x00000000005a2070 in ALE::Distribution<ALE::Mesh>::scatterBundle
(bundle=@0x7fff728f7510, dim=3, bundleNew=@0x7fff728f74f0,
sendOverlap=@0x7fff728f7280, recvOverlap=@0x7fff728f7260,
partitioner=@0x7fff728f7540, height=0, subBundle=@0x7fff728f7300,
subBundleNew=@0x7fff728f72e0) at sieve/Distribution.hh:437
#4  0x00000000005a2e49 in ALE::Distribution<ALE::Mesh>::distributeMesh
(serialMesh=@0x7fff728f7510, height=0, partitioner=@0x7fff728f7540) at
sieve/Distribution.hh:532
#5  0x00000000005659f2 in MeshDistribute (serialMesh=0x1325220,
partitioner=0xe34478 "chaco", parallelMesh=0x7fff728f7820) at mesh.c:1486
#6  0x000000000047550a in USG (this=0x1321dd0, options=@0x7fff728f79a0) at
USG.cxx:145
#7  0x000000000040a166 in main (argc=4, argv=0x7fff728f8b68) at main.cxx:62

So I still see that an assignment array is created by createAssignment()
which calls the "chaco"(or "parmetis") partitioner.  This is where I
originally talked about to supply my own assignment array.
I have not found out how to use the createPartition() method? Could you
please be more specific on how to use it? For example, what is the
user-level function call I should use? Is there an interface which I can
plug in my Partitioner<MyGraphPartitioner>  class as you suggested?
-- 
Sincerely,
Shi Jin, Ph.D.
http://www.ualberta.ca/~sjin1/ <http://www.ualberta.ca/%7Esjin1/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mcs.anl.gov/mailman/private/sieve-dev/attachments/20080604/0fdc6781/attachment.htm>


More information about the sieve-dev mailing list