Parallel processing 并行处理真的可能吗?

Parallel processing 并行处理真的可能吗?,parallel-processing,Parallel Processing,我见过在同一主板上有两个处理器的新电脑。 同一主板上的两个处理器如何正常工作,因为这就像两个大脑(试图)控制一个身体一样,它们实际上是如何执行并行处理的,是吗?如果两个(或更多)CPU/核心想要访问同一资源,则有规则决定谁获胜。通常,一个CPU稍后会尝试访问它,因此它必须等待。如果两个CPU确实希望在完全相同的时间访问同一资源,那么规则将确保其中一个CPU获胜。今天,规则变得相当复杂,以确保一个CPU不能占用资源(耗尽另一个CPU) 缓存是其中非常复杂的一部分;每个CPU都会将部分真实RAM复制

我见过在同一主板上有两个处理器的新电脑。
同一主板上的两个处理器如何正常工作,因为这就像两个大脑(试图)控制一个身体一样,它们实际上是如何执行并行处理的,是吗?

如果两个(或更多)CPU/核心想要访问同一资源,则有规则决定谁获胜。通常,一个CPU稍后会尝试访问它,因此它必须等待。如果两个CPU确实希望在完全相同的时间访问同一资源,那么规则将确保其中一个CPU获胜。今天,规则变得相当复杂,以确保一个CPU不能占用资源(耗尽另一个CPU)

缓存是其中非常复杂的一部分;每个CPU都会将部分真实RAM复制到其缓存中。这意味着,如果CPU 1的缓存中有地址X,而CPU 2读取或写入该地址,则可能会发生有趣的事情。解决这一问题的技术包括地址嗅探(CPU 1注意到CPU 2想要查看的地址,并发送一个信号告诉它该地址的内容现在无效)、RAM分段(CPU实际上看不到大部分RAM,因此在实际发生此问题的地方只有很小的重叠),或者是一种特殊的缓存总线,CPU的缓存在其中相互通信(“我刚刚读取了这个地址”,“我正在将X写入那个地址”)

这是一个非常复杂的区域,每天都变得越来越复杂。据我们所知,这是保持几年不变的唯一办法


有关更多详细信息,请参阅。

似乎更像是关于计算机设计而不是编程的问题。嗯。。。它与编程无关?选择一个不同的比喻,它会变得更容易理解。假设一个办公室有两名秘书和一台电脑、文件柜、复印机等。显然,如果两人都想使用同一台设备,他们必须轮流使用,但如果他们想使用不同的设备,他们可以并行工作。这就是并行处理工作的原因。很多时候,两者都在使用(或做)不同的事情。当然,这与编程有关。别傻了。@tvanfosson:听起来像是对我的回答