任务并行VS数据并行
原文地址:https://www.cnblogs.com/SevenwindMa/p/4366218.html
并行计算中,有两种并行的方法:任务并行(task-parallelism)和数据并行(data-parallelism)。
任务并行:将许多可以解决问题的任务分割,然后分布在一个或者多个核上进行程序的执行。
数据并行:将可以解决问题的数据进行分割,将分割好的数据放在一个或者多个核上进行执行;每一个核对这些数据都进行类似的操作。
例:
有一个professor P,他在给本科生上一门课,一共有300个本科生,考试的试卷上有15到题目。有三个助教来帮助Professor P修改试卷。
![](https://images0.cnblogs.com/blog2015/408573/201503/251709042087149.png)
![](https://images0.cnblogs.com/blog2015/408573/201503/251709340524799.png)
那么,这三个助教可以采用数据并行或者任务并行的方法来完成任务。
数据并行:
每个人平均看100份试卷,然后分别对自己的试卷的15到题目打分。
![](https://images0.cnblogs.com/blog2015/408573/201503/251709598172206.png)
任务并行:
每个人分别负责5个题目。
![](https://images0.cnblogs.com/blog2015/408573/201503/251710300052427.png)