(L) [2006/02/08] [tbp] [feb 8, OpenMP zebra] Wayback!Msvc 8 backport is now almost complete, so we get another flavour of OpenMP.
1 shade per cpu, click for full size.
[IMG #1 ]
The non // rendering gives about 2fps, so we have a ~1.5 speedup factor in this case.
But let me tell you one thing, xp's scheduler stinks. It keeps bouncing threads around like a chimp on crack.
As tsc aren't synchronized on xp, and Microsoft OpenMP doesn't like when you tinker with affinities/priorities you're in a world of hurt when you try to (quickly) time your code.
I've learnt a few things. OpenMP's overhead is a problem: you need to split the rendering in enough parts to get a chance to not give all the work to one cpu, but then you waste all your time signaling. And you have no control whatsoever how threads get binded (remember xp scheduler stinks): goodbye warm caches.
I got an almost 2x speedup, that is near optimal, on more complex scenes at large resolution (where i get less than 1fps with 1 cpu).
But forget using that on anything more reasonable.
Conclusion, i'll have to roll my own distribution system. And that can wait a bit.
[IMG #1]:Not scraped:
https://web.archive.org/web/20061004003235im_/http://ompf.org/ray/wip/pix/20060208-02-openmp-small.jpg