[Bf-committers] Is there a parallel pipeline in blender?

Lars Krueger lars_e_krueger at gmx.de
Fri Aug 7 08:57:19 CEST 2009


If you want a library to do this in C++, you might want to take a look at the INTEL thread building blocks.

http://www.threadingbuildingblocks.org/

Depending on how far reaching you want to try this, it might be a lot of work. Most problematic are data dependencies. You have to make sure that data computed by one function, but used by a second function later, is either computed so far that the second function can start or completely. That's why most people do their parallelisation block-wise.

I don't think manually specifying these dependencies would be a good idea. If you find an at least semi-automatic way to specify these dependencies, more parts of the code can benefit from it. 
Other options are lock-free data structures (interesting, but usually require complete rewrite), parallel functional programming (possible in C, but requires a lot of discipline and good libraries, e.g. garbage collection) or more esoteric concepts, e.g. tuple space (requires rewrite).

If you can find such an approach to the dependencies, you are better off investing your time in parallising different modules. 

I don't know which of the following modules are already parallel, but I guess the nodes and the particle system are prime candidates for parallelisation. On the other hand, if parallelise too fine-grained, things like thread-start overhead and cache utilisation become the determining factors.

-- 
Dr. Lars Krueger


Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser


More information about the Bf-committers mailing list