更快我有這樣的代碼(僞代碼,因爲我無法證明我的程序):parallel_for時ppl.h不超過連續C++
concurrent_vector a, b, c;
concurrent_unordered_map mapForResult;
for(i=0; i<sequenceCount; i++){
variables temp_a, temp_b, temp_c;
database->read(&a, &b, &c);
}
parallel_for(0, sequenceCount, [](int i){
var aa = a[i];
var bb = b[i];
var cc = c[i];
resultOfFunction = MakeFunction(aa, bb, cc);
mapForResults.insert(resultOfFunction);
}, static_partitioner());
它的工作,但它比串行版本慢得多。任何想法爲什麼?這是我第一次與ppl.h,所以我不知道所有的技巧&技巧。
這兩個循環之間的緩存表現如何?在並行版本中你有很多緩存未命中嗎? – NathanOliver
我如何驗證它?我是初學者在c + +和平行。 – Queen
那麼如果你在Linux上,你可以使用[perf](http://stackoverflow.com/a/10114325/4342498)。 – NathanOliver