多核和并行处理

ikr*_*haq 1 cpu

并行处理和多核处理之间有什么区别

Vin*_*vic 8

并行和多核处理都指的是同一个事情:同时执行代码的能力(在多个核心/ CPU /机器中).因此在这个意义上,多核只是一种进行并行处理的方法.

另一方面,并​​发(可能是并行处理的意思)指的是具有交错的多个执行单元(线程或进程).这也可能发生在单核CPU或许多核/ CPU中,甚至发生在许多机器(集群)中.

总而言之,多核是并行的子集,并发可以在有或没有并行的情况下发生.研究这个的领域是分布式系统分布式计算.

  • 实际上,并发就是当你有多个交错的执行线程 - 而不是并行性."关于并发性的一个误解是人们常常混淆并发性和并行性.并发性是一种编程模型,可以让你表达独立的东西,因为独立执行和并行性是关于同时运行两件事.它们不是同一个想法很多人都把它们弄糊涂了,他们认为它们是一回事,但并发性和并行性最好被认为是一个不同的想法." - Rob Pike (3认同)

Jus*_*ner 5

并行处理可以在具有多个线程的单个内核中完成。

多核处理意味着分配这些线程以利用 CPU 中的多个内核。

  • 是的,但是所使用的同步技术与如果您有很多内核时会使用的技术相同 (3认同)

Nic*_*cue 5

并行处理仅指同时运行多个部分的程序,通常不同部分之间以某种方式进行通信。这可能在多个内核上,一个内核上的多个线程(实际上是模拟并行处理),多个CPU甚至多个机器上。

多核处理通常是并行处理的子集。

多核处理意味着在单个CPU芯片的多个“核”上工作的代码。核心就像一个处理器中的一个小处理器。因此,使代码适用于多核处理将几乎总是在谈论并行化方面(尽管这还包括删除任何核心特定的假设,而这些通常都是您不应该拥有的)。

就算法设计而言,如果从并行处理的角度来看是正确的,那么它将是正确的多核。

但是,如果您需要优化代码以使其尽可能“并行”运行,那么多核,多CPU,多计算机或向量化之间的差异将大为不同。