Max*_*axB 7 hardware parallel-processing hpc
在多CPU机器中,不同的CPU是否竞争相同的内存带宽,还是独立访问DRAM?
换句话说,如果一个程序的内存带宽有限,例如1-CPU 8核系统,那么转向4-CPU 4*8核机器就有机会加速它(假设CPU和DRAM)是可比的)?
您的主要问题的答案是:取决于。它取决于什么?这取决于你的设置所属的阵营,从技术上讲有两个。
在第一个阵营中,即共享内存多核,您的问题的答案是“是”。在这种模型中,如果您愿意的话,具有多个内核的多个处理器通过公共总线(这就是您遇到瓶颈的地方)共享内存,除此之外,没有任何东西将 CPU 连接在一起。这是典型消费级计算机所属的类别/阵营/型号。
在第二个阵营中,称为分布式内存多核,您的问题的答案是“否”。这种硬件设置方案意味着每个处理器都有自己的私有内存,但有一条总线将处理器直接连接在一起。使这种情况成为可能的协议是消息传递接口。这也意味着 CPU 组在物理上不必与它们访问的 RAM 位于同一个盒子或房间中。您可能在家中找不到这种设置。想想研究设施、实验室、大学、大中型企业等。
回答你的第二个问题。答案也要看情况。这取决于,因为人们需要知道编写程序是否是为了利用并行性和系统的并行执行可能性。尽管您的消费级计算机具有一个或两个处理器共享单个内存总线,但如果在编写程序时考虑到并行性,那么您会注意到性能的提高。否则,来自程序的串行指令将仅在一个内核上串行执行。
如果您对多核处理的本质以及如何通过程序访问内存感兴趣,那么弗林的分类法是一个很好的“网关资源”,可以扩展您的颅骨。如果你有兴趣的话,只需谷歌一下它就会带你进入兔子洞。
编辑:为了给予应有的认可,我强烈推荐 Gaston C. Hillar 的 C# 专业并行编程。在我短暂的职业生涯中,这本令人愉快的书是关于并行性主题的最具启发性的书。它有助于澄清并行编程和多核编程之间的区别以及我刚刚提到的多核处理类型的浑水,并附有图表!