概括来说并行计算是同时使用多种计算资源解决问题,是一种提高计算机系统计算速度和处理能力的有效手段。
并行是一个相对于串行来说的概念,它是一种可以一次执行多个指令的算法,目的是提高计算的速度,以及通过扩大问题的求解规模从而解决大型而复杂的计算问题。
并行计算可以分为时间和空间上的并行两种。
时间上的并行是指流水线技术。空间上的并行是指用多个处理器并发地执行计算。
举个简单的例子。(看这里看这里)
假设有一个食品加工小作坊,它生产某种食品需要经过清洗、消毒、切割、包装共四步,目前只有1个工人1台机器且每个步骤的操作均需要工人参与(非自动化),假设每个步骤需要1分钟(不要深究,就是个假设)。
那么每件商品的生产需要耗时4分钟,在只有一个工人的前提下,8分钟只能生产2件商品:即要分别经过“清洗、消毒、切割、包装”“清洗、消毒、切割、包装”,在其中某一个步骤进行的时候,用于完成其余功能的机器组件是闲置状态(很浪费)。
这个时候,我们可以选择再雇佣3个工人,这样目前一共有4个人手,我们让4个人分别负责某一步骤且同时操作,8分钟后可以得到8件商品(假设已经经过了initial状态,那么每个步骤在8分钟内分别执行了8次),将吞吐量提高了4倍。这个过程对应于“并行计算”在时间上的并行,也就是流水线的概念。
那么如果我再雇佣4个人,再买一台设备,此时已经有8个工人了,每2个人操作2台机器负责一个步骤,这样8分钟后可以得到16件产品,这就是“并行计算”在空间上的并行。即用多个处理器并发的执行计算。
网友评论