在主机上调用推力函子来执行多个线程

时间:2016-11-02 18:04:00

标签: multithreading parallel-processing openmp thrust

我知道使用thrust::for_each使用thrust::host_vector中的数据调用仿函数有一个并行执行策略,但它们是否实际并行执行?

如果没有,那么调用这些的正确方法是什么,知道我运行它的系统是虚拟化的,以便所有核心看起来都在同一台机器上?

[编辑]

我意识到有thrust::omp::par之类的东西,但是,我似乎无法使用OpenMP找到一个完整的Thrust示例。

1 个答案:

答案 0 :(得分:2)

一般情况下,在主持人"上发送推力操作。不是并行运行的。他们使用单个主机线程。

如果你想在CPU上并行运行推力操作(使用多个CPU线程),那么推荐的做法是使用推力OpenMP后端。

一个功能齐全的例子是here

另一个有效的例子是here