标签: multithreading parallel-processing openmp thrust
我知道使用thrust::for_each使用thrust::host_vector中的数据调用仿函数有一个并行执行策略,但它们是否实际并行执行?
thrust::for_each
thrust::host_vector
如果没有,那么调用这些的正确方法是什么,知道我运行它的系统是虚拟化的,以便所有核心看起来都在同一台机器上?
[编辑]
我意识到有thrust::omp::par之类的东西,但是,我似乎无法使用OpenMP找到一个完整的Thrust示例。
thrust::omp::par
答案 0 :(得分:2)
一般情况下,在主持人"上发送推力操作。不是并行运行的。他们使用单个主机线程。
如果你想在CPU上并行运行推力操作(使用多个CPU线程),那么推荐的做法是使用推力OpenMP后端。
一个功能齐全的例子是here。
另一个有效的例子是here。