parallel_invoke of lightweight tasks

Category: visual studio parallelcpp


edwardyu on Thu, 11 Apr 2013 09:49:23

I have been reading the VS2010 concurrency runtime walkthrough :-

It said lightweight tasks has less overhead than PPL parallel_invoke. If my parallel_invoke tasks do not require load-balancing nor cancellation, how can we adapt the concurrency runtime to the following example to get maximum performance :-

         [&] {          	
         	PPL_searchRoot(2, spboard, alpha, beta, size, m_depth, movetab, incheck, 
         	                   m_bestmove, old_alpha, root_nodes, nUnchanged, pv_i   
         [&] {          	
         	PPL_searchRoot(1, spboard2, alpha2, beta, size, m_depth, movetab, incheck, 
         	                   m_bestmove2, old_alpha, root_nodes, nUnchanged, pv_i2   
I think it would been most convenient if there is something like parallel_invoke_light() in PPL for paralleling lightweight functions without coding the thread data-structure, low-level calls to scheduler etc.