← Back to team overview

yade-dev team mailing list archive

Re: [Bug 729079] Re: Performance optimization of InsertionSortCollider (Anton)

 

"Little slower" depends what you are simulating. For large (>100k
bodies) multithreaded simulations, the speed factor can approach x3 in
terms of sec/iter.
If you look at the cpu time for the collider alone, the factor is around
10... (https://yade-dem.org/wiki/Colliders_performace)

We can keep the old collider for 0.70 if we think it is less risky.
However, it contains bugs that I indentified but never fixed because the
corresponding code has been simply deleted in the branch. For instance,
if you run trunk on the "performance.py" script from Sergei
(https://bugs.launchpad.net/yade/+bug/729079/+attachment/1885255/+files/perfomance.py)
with large verletDist, you will see spheres passing through the
boundaries. In the branch it is fixed.

So, we have the choice bewteen slower collider with known bugs, and
faster collider with (possibly) unknown bugs. Adding a new collider is
not an option because the logic is changed in a wide extent, and it
affects many classes. The old and new collider are mutually exclusive,
so we need to replace.
If you (or we) are unsure, we need more testing to be sure the new
collider is not introducing any bug, that's why I asked people to test
the branch. Klaus didn't find problems. You found one linked with the
deletion of bodies, now fixed.
Nobody else tested yet (me excepted of course, and I fixed the problems
I found).

Bruno



On 20/10/11 20:35, Anton Gladky wrote:
> Ok, I will try to use another verletDist.
> Anyway, I think we should not merge the branch before 0.70 release.
> The current collider is a little slower, but it is tested.
> We need to think about adding one more collider or replacing by a new one.
> Do you agree?
>
> Anton
>
>
>
>
> On Tue, Oct 18, 2011 at 7:01 PM, Bruno Chareyre
> <bruno.chareyre@xxxxxxxxxxx> wrote:
>> Yes, this is expected: the new is better with more threads and also with
>> more bodies. How many bodies in your simulation?
>> The fact that you find worst speed for j=1 is annoying though... Until
>> now I only found new speed at least equal to old, but you found some
>> cases where new < old.
>> It makes the choice of moving to the new algorithm difficult, or it
>> suggests to have two colliding logics but it is uneasy since it also
>> affects Newton, aabb dispatching, interaction container...
>>
>> We need however to consider the tuning of parameters. Maybe the default
>> values I defined are not good in your case and another optimum can be
>> found. If you could send me a simplified script I could test. Or for a
>> simple test, you could just decrease verletDist. The default is 0.9, you
>> could try the same as in the old algorithm: 0.05, and see what happens.
>>
>> Bruno
>>
>> On 18/10/11 18:23, Anton Gladky wrote:
>>> Ok, seems, warnings are gone.
>>>
>>> Speed, iter/sec
>>> -j    Old collider    New_Collider:
>>> 1          7.94                 6.7
>>> 2          13.85               12.89
>>> 3          14.83               16.11
>>>
>>> The new collider works better with threads more than 2.
>>>
>>> Anton
>>>
>>>
>>>
>>>
>>> On Mon, Oct 17, 2011 at 3:57 PM, Bruno Chareyre
>>> <bruno.chareyre@xxxxxxxxxxx> wrote:
>>>> Hi Anton,
>>>>
>>>> I commited fixes for the collider (branch collide2, r2925) and for cgal
>>>> feature. I don't find any problem when removing bodies now, but let you
>>>> try with your scripts.
>>>> Now, all interactions should be removed correctly after deleting bodies.
>>>>
>>>> Bruno
>>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~yade-dev
>>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~yade-dev
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>
>> --
>> _______________
>> Bruno Chareyre
>> Associate Professor
>> ENSE³ - Grenoble INP
>> 11, rue des Mathématiques
>> BP 46
>> 38402 St Martin d'Hères, France
>> Tél : +33 4 56 52 86 21
>> Fax : +33 4 76 82 70 43
>> ________________
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~yade-dev
>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~yade-dev
>> More help   : https://help.launchpad.net/ListHelp
>>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev
> More help   : https://help.launchpad.net/ListHelp
>


-- 
_______________
Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
11, rue des Mathématiques
BP 46
38402 St Martin d'Hères, France
Tél : +33 4 56 52 86 21
Fax : +33 4 76 82 70 43
________________



References