Archive for January, 2008

Parallel Ogre3D Follow-Up

12. January 2008

Some time ago I mentioned that an Ogre3D-based Equalizer example application is coming.

Meanwhile I’ve integrated the code from Hui Chang into the Equalizer tree under src/contrib/eqOgre. Hui will be the one extending and maintaining this code. You can read about the progress in his blog.

I’m counting on him and the community to look after this. Occasionally I’ll test it on Mac OS X. Feel free to post to the eq-dev mailing list regarding eqOgre, either Hui or I will try to help you.

More on Depth-Based Assembly

4. January 2008

Performance of various DB assemble algorithms

It seems that 2008 will be the year of performance for Equalizer. ūüôā

I’ve just commited the first version of CPU-based depth assembly to the Equalizer code base. The algorithm first assembles all images into a memory buffer on the CPU, and then transfers the result to the GPU using the default algorithm (GLSL in this case).

As you can see on the right, this algorithm is vastly faster than using the GPU. Each input image in this configuration adds about 4 ms to the total time, as compared to 18 ms for GLSL.

Since there is the static cost for setup and transferring the result (about 22 ms in the benchmark), the CPU-based algorithm makes only sense for more than one image, but becomes substantially faster as the number of input images grows. With four images, the new code is 4.5x faster than Equalizer 0.4, with eight images 6.4 times.

The benchmark used the same machine as in the previous posting. It has two 2.2 GHz Opteron CPU’s, but since OpenMP was not enabled, only one processor was used. OpenMP should accelerate this code path even more.