并行和多核处理都指的是同一个事情:同时执行代码的能力(在多个核心/ CPU /机器中).因此在这个意义上,多核只是一种进行并行处理的方法.
另一方面,并发(可能是并行处理的意思)指的是具有交错的多个执行单元(线程或进程).这也可能发生在单核CPU或许多核/ CPU中,甚至发生在许多机器(集群)中.
总而言之,多核是并行的子集,并发可以在有或没有并行的情况下发生.研究这个的领域是分布式系统或分布式计算.
并行处理可以在具有多个线程的单个内核中完成。
多核处理意味着分配这些线程以利用 CPU 中的多个内核。
并行处理仅指同时运行多个部分的程序,通常不同部分之间以某种方式进行通信。这可能在多个内核上,一个内核上的多个线程(实际上是模拟并行处理),多个CPU甚至多个机器上。
多核处理通常是并行处理的子集。
多核处理意味着在单个CPU芯片的多个“核”上工作的代码。核心就像一个处理器中的一个小处理器。因此,使代码适用于多核处理将几乎总是在谈论并行化方面(尽管这还包括删除任何核心特定的假设,而这些通常都是您不应该拥有的)。
就算法设计而言,如果从并行处理的角度来看是正确的,那么它将是正确的多核。
但是,如果您需要优化代码以使其尽可能“并行”运行,那么多核,多CPU,多计算机或向量化之间的差异将大为不同。
| 归档时间: |
|
| 查看次数: |
16936 次 |
| 最近记录: |