[英]Parallel reduce using lambda expressions
我目前正在處理一個以數組,大小,低和高為參數的函數
parllelCount(int *src, int size, int low, int high)
該函數從源數組返回落在低范圍和高范圍內的值的數量。
我有以下利用lambda表達式進行並行歸約的函數,但是我無法弄清楚應該如何實現paralle_reduce中的Combine參數(在代碼段中進行了注釋)
int parallelCount(int *src, int size, int low, int high)
{
int counter = parallel_reduce(blocked_range<int>(0, size),
int(0),
[&](blocked_range<int> r, int counter)->int{
for(int i = r.begin(); i < r.end(); i++){
if(low <= src[i] && src[i] <= high){
counter++;
}
}
return counter;
},
//[](){}
);
return counter;
}
combine
大概應該只是將工人們計算出的結果相加,所以類似
[](int a, int b) { return a + b; }
應該管用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.