[parsec-users] TBB version of ferret
cbienia at CS.Princeton.EDU
Wed Aug 11 23:49:20 EDT 2010
Thanks a lot for the TBB implementation! I'll add it to the next version of PARSEC. I'll also update the TBB version that ships with PARSEC (assuming I don't run into any serious issues).
From: parsec-users-bounces at lists.cs.princeton.edu [mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of Chris Fensch
Sent: Wednesday, August 11, 2010 11:32 AM
To: parsec-users at lists.cs.princeton.edu
Subject: [parsec-users] TBB version of ferret
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 TBB.
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.
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
More information about the parsec-users