[parsec-users] TBB version of ferret

Chris Fensch c.fensch at ed.ac.uk
Wed Aug 11 11:32:10 EDT 2010

Dear Parsec-Users,

   I put together an Intel TBB version of ferret that uses the pipeline
class provided by TBB. The resulting code is somewhat cleaner than the
original code, as the pipeline implementation details are hidden within

As for performance, this depends on which version of TBB you use. With
version 2.2 and higher (I just tried 2.2 and 3.0), the TBB version is
about 1% faster than the pthread version (on my 24 core test system). 

Unfortunately, Parsec 2.1 ships with TBB 2.1. TBB 2.1 forces serial
pipeline stages to be in order and as such results in a version which is
about 2 times slower than the pthread version. The last stage in ferret
has to be serial (but tokens don't have to be processed in the same
order as they are injected into the pipeline).

The attached patch detects the version of TBB and configures the
pipeline stages accordingly. As such, it should be ready for newer
versions of Parsec that will ship a newer version of TBB, I assume.

Please contact me, if you have any questions.

  Chris Fensch

The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ferret-tbb.patch
Type: text/x-patch
Size: 18306 bytes
Desc: not available
URL: <http://lists.cs.princeton.edu/pipermail/parsec-users/attachments/20100811/91eee556/attachment.bin>

More information about the parsec-users mailing list