(Sorry for posting this twice...the original post was in the wrong forum..I guess..)
I am currently using Irrlicht in a commercial product at a company that deals with real-time processing and visualizing it. After reading a lot of these forums about multi-threading, I figured I would share this. OpenMP has been around for ages, and I was easily able to incorporate it into the Irrlicht engine to exploit parallelism in all the tight loops to increase the engine's performance by almost 4 times (I have a quad core) in terms of computational processing.
http://openmp.org/wp/
Of course with OpenCL coming out soon, that'll be another opportunity to make Irrlicht's "Lightning fast realtime 3D engine" become "Instant fast realtime 3D engine"
I can post some SVN patches for the engine code changes I did if anyone's interested....
Using OpenMP Improves Irrlicht Performance by 4x!
Open MP is nice but it's not supported on Express Edition MSVC (An alternative is G++ which does support Open MP). I recently tried Intel's TBB and found it very nice, it's worth considering our options here if we do indeed decide to extend certain parts of Irrlicht with multi threading.
I am guessing you did not necessarily alter strictly rendering-related parts but mainly things like collision detection/oct-tree generation, frustum culling, etc?
I am guessing you did not necessarily alter strictly rendering-related parts but mainly things like collision detection/oct-tree generation, frustum culling, etc?
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
This sounds very interesting. I'd be interested in the patch!
Irrlicht Demos: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=45781
How do you check this?Midnight wrote:One thing I want to ask about is I notice irrlicht already has natural affinity with both of my cores.
On my quad core an Irrlicht application uses 25% of the CPU time so one core. However Windows doesn't use one core exclusively for one app until you tell it to. One time the 3rd core uses 50% for irrlicht and the next second it's ide but core number 1 is working and so on.
This is because Windows (and Linux I guess) use all availabe cores. So when a core is idle it's most likely that it will get the next load of work.
Software documentation is like sex. If it's good you want more. If it's bad it's better than nothing.
