线程间的工作划分
为了提高线程利用率并最小化开销,必须决定要使用的线程数量,并为每个线程合理分配任务
开始处理之前的线程间数据划分
简单算法最容易并行化,比如要并行化 std::for_each,把元素划分到不同的线程上执行即可。
如何划分才能获取最优性能,取决于数据结构的细节,这里用一个最简单的划分为例,每 N 个元素分配给一个线程,每个线程不需要与其他线程通信,直到独立完成各自的处理任务(如下)。
为了提高线程利用率并最小化开销,必须决定要使用的线程数量,并为每个线程合理分配任务
简单算法最容易并行化,比如要并行化 std::for_each,把元素划分到不同的线程上执行即可。
如何划分才能获取最优性能,取决于数据结构的细节,这里用一个最简单的划分为例,每 N 个元素分配给一个线程,每个线程不需要与其他线程通信,直到独立完成各自的处理任务(如下)。