← Back to team overview

dolfin team mailing list archive

Re: Mesh coloring

 


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).

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



Follow ups

References