← Back to team overview

dolfin team mailing list archive

Re: Mesh coloring

 

On Monday February 21 2011 15:14:59 Garth N. Wells wrote:
> On 21/02/11 20:52, Johan Hake wrote:
> > On Monday February 21 2011 12:47:51 Garth N. Wells wrote:
> >> On 21/02/11 20:36, Johan Hake wrote:
> >>> On Monday February 21 2011 12:31:18 Garth N. Wells wrote:
> >>>> On 21/02/11 18:00, Johan Hake wrote:
> >>>>> On Monday February 21 2011 08:18:18 Garth N. Wells wrote:
> >>>>>> On 17/02/11 21:28, Johan Hake wrote:
> >>>>>>> Hello!
> >>>>>>> 
> >>>>>>> I have a not so large 3D mesh of some 50K vertices, generated from
> >>>>>>> some geometry (not UnitCube).
> >>>>>>> 
> >>>>>>> When I set
> >>>>>>> 
> >>>>>>>   parameters.num_threads = 2
> >>>>>>> 
> >>>>>>> and try to assemble I just get:
> >>>>>>>   Coloring mesh.
> >>>>>>> 
> >>>>>>> and then it seems it wont find a solution... I had to break it
> >>>>>>> because it nearly hang the computer for some 5 min.
> >>>>>>> 
> >>>>>>> Have anyone experience the same? Is there any way to controll the
> >>>>>>> coloring?
> >>>>>> 
> >>>>>> It's had minimal testing, so issues can be expected. Can you post
> >>>>>> your solver? 50k vertices is not very big, so I would expect it to
> >>>>>> be pretty fast.
> >>>>> 
> >>>>> Yes I would expect that too. I have used the coloring on other meshes
> >>>>> with success.
> >>>>> 
> >>>>> The mesh can be downloaded from here:
> >>>>>   <http://folk.uio.no/hake/trouble.xml.gz>
> >>>>> 
> >>>>> To reproduce the trouble just run:
> >>>>>   from dolfin import *
> >>>>>   mesh = Mesh('trouble.xml.gz')
> >>>>>   V = FunctionSpace(mesh, "CG", 1)
> >>>>>   assemble(Function(V)*dx)
> >>>>>   parameters.num_threads = 2
> >>>>>   assemble(Function(V)*dx)
> >>>>> 
> >>>>> The mesh has two distinct domains, but that shouldnto be causing the
> >>>>> trouble, as other I have successfully colored other such meshes.
> > 
> > The language is a bit hasty put together, but I meant to say here that I
> > have succesfully tried it with other disconnected meshes.
> > 
> >>>>> I
> >>>>> guess it can be the particular mesh that causes coloring to stall. It
> >>>>> is generated using tetgen.
> > 
> > Here I meant to say that the particular mesh might cause the problem.
> > 
> >>>> I don't think that I've tested multi-threaded assembly for
> >>>> functionals.
> >>>> 
> >>>> When we get around to implementing it, assembling functionals
> >>>> shouldn't require colouring. It should just involve OpenMP
> >>>> parallelising the assembly loop, and then each thread adds its
> >>>> contribution to the result once it's processed its bunch of cells
> >>>> (while avoiding a race condition).
> >>> 
> >>> I just used a Functional so I could stick with a shorter example ;)
> >>> 
> >>> The above code works fine with another mesh. Changing the form to a
> >>> linear or bilinear form triggers the same coloring (right?), which
> >>> stalls on this particular mesh.
> >> 
> >> You didn't bother to mention that the mesh is special!
> > 
> > I tried!
> > 
> >> The mesh is disconnected, which I suspect is the problem. My limited
> >> understanding of the Boost colouring algorithm is that it starts at one
> >> graph node and advances from there by moving along edges. Obviously this
> >> will break down for a disconnected meshes since there is no way for the
> >> algorithm to move from one graph (mesh) to the next.
> > 
> > I thought that too. But as I tried to tell you, I have succesfully tried
> > other disconnected meshes.
> 
> I've made it possible to choose between Boost and Zoltan for colouring
> via the parameter system. Zoltan seems to handle your mesh (it runs - I
> haven't checked the result further).

Thanks!

Will look further into it.

Johan

> Garth
> 
> > Johan
> > 
> >> Garth
> >> 
> >>> Johan
> >>> 
> >>>> Garth
> >>>> 
> >>>>> At the end of the day I have to wait untill we support subdomains in
> >>>>> the OpenMPAssembler as I am heavily using these...
> >>>>> 
> >>>>> Johan
> >>>>> 
> >>>>>> Garth
> >>>>>> 
> >>>>>>> Johan
> >>>>>>> 
> >>>>>>> _______________________________________________
> >>>>>>> Mailing list: https://launchpad.net/~dolfin
> >>>>>>> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >>>>>>> Unsubscribe : https://launchpad.net/~dolfin
> >>>>>>> More help   : https://help.launchpad.net/ListHelp
> >>>>>> 
> >>>>>> _______________________________________________
> >>>>>> Mailing list: https://launchpad.net/~dolfin
> >>>>>> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >>>>>> Unsubscribe : https://launchpad.net/~dolfin
> >>>>>> More help   : https://help.launchpad.net/ListHelp
> >>>> 
> >>>> _______________________________________________
> >>>> Mailing list: https://launchpad.net/~dolfin
> >>>> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >>>> Unsubscribe : https://launchpad.net/~dolfin
> >>>> More help   : https://help.launchpad.net/ListHelp



References