sieve-dev Manual mesh distrition

Shi Jin jinzishuai at gmail.com
Wed Jun 4 17:23:47 CDT 2008


Great!  I look forward to trying your implementations. Please let me know
when it is ready.

Thanks a lot.

Shi

On Wed, Jun 4, 2008 at 4:01 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Wed, Jun 4, 2008 at 4:22 PM, Shi Jin <jinzishuai at gmail.com> wrote:
> >> 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.
>
> This is my fault. I have been pressed developing the new, optimized mesh
> version of the code. I now have parallel, optimized mesh and sections
> working.
> I had to make some compromises when getting this working:
>
>  1) I only wrote a C++ interface for the optimized stuff
>
>  2) I rewrote the Partitioner and Distribution stuff to accomodate both
>      implementations of mesh instead of fixing the original stuff (since it
> had
>      to keep running)
>
> *3) I have not backported all the new stuff to the C interface and old
> model
>
> So what needs to happen?
>
>  1) I need to get a distribute call which matches the old call, meaning it
> also
>      distributes all the labels and section.
>
>  2) I need to change the C bindings to call these new methods instead
>
>  N) I need to write tests for all these :)
>
> I am at a conference this week, but will do this as soon as I can. It
> should not
> be all that much work.
>
>  Matt
>
> > 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/>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
>



-- 
Sincerely,
Shi Jin, Ph.D.
http://www.ualberta.ca/~sjin1/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mcs.anl.gov/mailman/private/sieve-dev/attachments/20080604/0367f632/attachment.htm>


More information about the sieve-dev mailing list