Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
5 Views

TBB and Raytracing

Hi guys!
I'm new to Intel's TBB and I would like to optimize my raytracing engine.
The problem is, that I don't get any performance boost by using TBB,
which is somehow weird, because it should run faster in a multi-threaded
environment.
What I did so far:
[cpp]tbb::task_scheduler_init init;
init.initialize(4);

...

tbb::blocked_range2d range(0u, SCREENH, GRAN, 0u, SCREENW, GRAN);
tbb::parallel_for(range, tRenderParallel(renderer));[/cpp]
I initialized the task scheduler to use 4 threads and SCREENH, SCREENW and GRAN are the screen resolution and the granularity (I tried values between 1 and 10000 - no effect).
The tRenderParallel calls my renderer with the appropriate clip region.
I understand it in that the way, that the above code is enough to parallelize the system. Can anyone tell me, what's wrong with my approach?
Thanks in advance,
pkei
0 Kudos
2 Replies
Highlighted
Black Belt
5 Views

You ought to be able to see information on this subject already posted in the TBB section of the forum.
0 Kudos
Highlighted
Valued Contributor II
5 Views

There are no obvious issues with the code you've shared, but as always, the devil is in the details. Need to see tRenderParallel.operator() and perhaps further details to understand what may be preventing your desired scaling, but one sanity question: you are running four threads on a machine that has at least four HW threads, right?
0 Kudos