Combinable containers
Preventing from excessive use of locks, uses combinable containers, such as following
vector<int> values(10);
int i = 0;
generate(values.begin(), values.end(), [&]{return ++i;} );
// 1. Calculate the sum of the elements of the vector in parallel.
combinable<int> sums;
parallel_for_each(values.begin(),values.end(), [&](int n)
{
sums.local() += n;}
);
// 2. Combine/Reduce into final result
int result = sums.combine([](int left, int right) { return left + right; });
Advertisement
1 Comment »
Leave a Reply
-
Recent
-
Links
-
Archives
- April 2011 (3)
- March 2011 (21)
- May 2010 (1)
- January 2010 (2)
- December 2009 (2)
- August 2009 (1)
- July 2009 (2)
- April 2009 (4)
- March 2009 (6)
- February 2009 (5)
- January 2009 (4)
- December 2008 (3)
-
Categories
-
RSS
Entries RSS
Comments RSS
it is from http://www.nuonsoft.com/blog/2009/06/12/parallel-pattern-library-in-visual-c-2010/