Posix Thread Support - Patch & small benchmark

ola
Posts: 169
Joined: Sun Jan 14, 2007 7:56 pm
Location: Norway

Re: Posix Thread Support - Patch & small benchmark

Post by ola »

Hi again,

It's a Intel Centrino Duo x86 processor (Dell XPS laptop), Intel Core2 CPU T7600 @ 2.33GHz. (2 cores)
I use 32bit Ubuntu Gutsy (7.10), and the compiler is gcc 4.1.3.

I checked again now, the demo is using the Posix threads.

Let me know if I can help with anything!

best regards,
Ola :-)
Enrico
Posts: 42
Joined: Thu May 17, 2007 9:34 am
Location: Stuttgart, Germany

Re: Posix Thread Support - Patch & small benchmark

Post by Enrico »

Ok, I have the AMD64 Build fixed :)

I was not able to reproduce the problem with double precision :oops:

The problem with the segmentation faults is something in cellDma*(). I have it somewhat working, some parts still missing...
User avatar
John McCutchan
Posts: 133
Joined: Wed Jul 27, 2005 1:05 pm
Location: Berkeley, CA

Re: Posix Thread Support - Patch & small benchmark

Post by John McCutchan »

Can you please provide a patch for your fixes, against the current googlecode SVN?
Enrico
Posts: 42
Joined: Thu May 17, 2007 9:34 am
Location: Stuttgart, Germany

Re: Posix Thread Support - Patch & small benchmark

Post by Enrico »

John McCutchan wrote:Can you please provide a patch for your fixes, against the current googlecode SVN?
Sure, when I am finished ;)

On x86 I can reproduce the problem with double precision, on x86_64 I am running into several assertions. And on both systems I am fighting with Null-Pointers in the SpuFakeDma-stuff...
User avatar
John McCutchan
Posts: 133
Joined: Wed Jul 27, 2005 1:05 pm
Location: Berkeley, CA

Re: Posix Thread Support - Patch & small benchmark

Post by John McCutchan »

Okay. Sorry, I was confused and thought that you had fixed the bugs. Let me know how it goes.
Enrico
Posts: 42
Joined: Thu May 17, 2007 9:34 am
Location: Stuttgart, Germany

Re: Posix Thread Support - Patch & small benchmark

Post by Enrico »

With SVN revision 1130 (most recent) I have a patch to make everything compile. However, in handleCollisionPair() the CollisionShape-pointers are NULL which causes the segmentation faults on any Linux system. I don't know the code so it takes me a while to dig through everything... When changing the memory copy stuff in SpuFakeDma I get rid of these crashes. Then there are some more bad pointers with proxy-objects.


I can send you the x86_64 patch, if you want. Crashes are on both architectures.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Posix Thread Support - Patch & small benchmark

Post by Erwin Coumans »

BulletMultiThreaded was designed for Cell SPUs for 32bit and single precision floating point.

Making this part work for 64-bit and double precision could be a big effort. The regular non-multi threaded Bullet engine (under Bullet/src) should work in both 32bit and 64bit, as well as single and double precision.

Currently AllBulletDemos relies on BulletMultiTheaded, but we will remove this dependency in Bullet 2.68.
Hope this helps,
Erwin
Enrico
Posts: 42
Joined: Thu May 17, 2007 9:34 am
Location: Stuttgart, Germany

Re: Posix Thread Support - Patch & small benchmark

Post by Enrico »

Erwin Coumans wrote:BulletMultiThreaded was designed for Cell SPUs for 32bit and single precision floating point.

Making this part work for 64-bit and double precision could be a big effort. The regular non-multi threaded Bullet engine (under Bullet/src) should work in both 32bit and 64bit, as well as single and double precision.

Currently AllBulletDemos relies on BulletMultiTheaded, but we will remove this dependency in Bullet 2.68.
So you suggest writing a second BulletMultiThreaded will be faster, easier and "better" than fixing the current one?
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Posix Thread Support - Patch & small benchmark

Post by Erwin Coumans »

So you suggest writing a second BulletMultiThreaded will be faster, easier and "better" than fixing the current one?
Borh rewriting the current BulletMultiThreaded and rewriting a new one are valid options. There is an upcoming contribution that could be a good alternative to the new multi threaded version. We can't provide more info about this contribution right now.

For the existing BulletMultiThreaded: we will need to review the existing BulletMultiThreaded and see what parts need to be optimized to take benefit of multi-core systems with shared cache.

The Cell SPU DMA has been implemented as an expensive memcpy, and some other slow operations should be replaced, and some prefetch operations added etc.
We received a fast multi-core system (thanks Intel!) so once we have time we can optimize things. Also the constraint solver lacks a lot of optimizations that are in the regular solver.

Hope this helps,
Erwin
ole.k
Posts: 17
Joined: Thu Jun 12, 2008 1:32 pm

Re: Posix Thread Support - Patch & small benchmark

Post by ole.k »

There is an upcoming contribution that could be a good alternative to the new multi threaded version. We can't provide more info about this contribution right now.
Do you already have some more details on this "upcoming contribution"? When will it be available (roughly)? I think a lot of people, including me, are interested in this.