- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
parallel_for_each
的形式是:
Concurrency::parallel_for_each(start_iterator, end_iterator, function_object);
但是 parallel_for
也是类似的形式:
Concurrency::parallel_for(start_value, end_value, function_object);
那么在多核编程中使用的Concurrency::parallel_for
和Concurrency::parallel_for_each
算法有什么区别?
最佳答案
我不知道你在说什么库,但看起来这个库需要迭代器:
Concurrency::parallel_for_each(start_iterator, end_iterator, function_object);
并且可能与此具有相同的效果(尽管不一定以相同的顺序):
for(sometype i = start_iterator; i != end_iterator; ++i) {
function_object(*i);
}
例如:
void do_stuff(int x) { /* ... */ }
vector<int> things;
// presumably calls do_stuff() for each thing in things
Concurrency::parallel_for_each(things.begin(), things.end(), do_stuff);
另一个采用值,因此它很可能具有与此类似的效果(但同样,没有保证顺序):
for(sometype i = start_value; i != end_value; ++i) {
function_object(i);
}
尝试运行这个:
void print_value(int value) {
cout << value << endl;
}
int main() {
// My guess is that this will print 0 ... 9 (not necessarily in order)
Concurrency::parallel_for(0, 10, print_value);
return 0;
}
编辑:您可以在 Parallel Algorithm references 中找到对这些行为的确认。 .
关于c++ - MSVC 并发运行时中的 parallel_for_each 和 parallel_for 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499245/
我正在尝试使用 C++ AMP,但出于某种原因,最简单的代码无法编译。这: concurrency::extent e(2,2); concurrency::parallel_for_each(gri
我非常是 AMP C++ 的新手。如果我在“parallel_for_each”函数中使用“memcpy”,一切正常,但我知道这不是最佳做法。我尝试使用“copy_to”,但它引发了异常。下面是一个简
我一直在研究并行循环 (C++11) 并使用 MS visual studio 2013 对其进行测试。我很清楚它们(尤其是 lambdas),它们非常酷。 但我担心的是我必须调用一个函数来执行简单的
我有一个很大的项目 vector ,这些项目是根据它们的一个字段排序的,例如一个成本属性,我想对这些项目中的每一个进行一些处理以找到不同属性的最大值......这里的约束是如果该项目的成本超过,我们不
我认为,由于 std::bind 无法推断返回类型的问题,我当前的尝试无法编译。实际的错误信息是 1>Source.cpp(24): error C2783: 'enable_if::value,st
这是我用于 TBB 代码的原子计数器类。 #include template struct AtomicCounter { private: std::atomic value; std::ato
我正在转换算法以利用 C++ AMP 提供的巨大加速。我所处的阶段是将 for 循环放入已知的 parallel_for_each 循环中。 通常这应该是一项简单的任务,但它看起来比我最初想象的要复杂
如果我有一个 concurrency::array_view 在 concurrency::parallel_for_each 循环中运行,我的理解是我可以在 CPU 上继续其他任务,同时循环正在执行
最近我写了一个这样的函数: #include "amp.h" #define DLLExport __declspec(dllexport) using namespace concurrency;
我目前正在编写一个库,我希望能够允许用户定义一个函数(声明为restrict(amp))并允许他们传递这个函数在 concurrency::parallel_for_each 循环中使用我的库函数之一
parallel_for_each 的形式是: Concurrency::parallel_for_each(start_iterator, end_iterator, function_object
尝试以下代码时: Concurrency::concurrent_vector results_temp; std::set temp; Concurr
使用 Visual Studio 2010 SP1 所以我有一个 std::for_each 使用 boost::filesystem 库迭代大量文件。因为这些迭代不会相互混淆,所以我试图让多线程处理
我用c++ amp计算了这个值。环境:VS2015,Win8。 当运行 parallel_for_each 函数时,值为 NaN。原因是 concurrency::fast_math::tanh 函数
我是一名优秀的程序员,十分优秀!