我只是想知道为什么需要为大规模并行处理创建分布式系统的所有麻烦,而我们只需要创建单独的机器,每台机器支持数百或数千个内核/CPU(甚至GPGPU)?
因此,从根本上说,为什么要在机器网络上进行并行处理,而在支持多个内核的一台机器上以更低的成本和更可靠的方式进行并行处理呢?
发布于 2012-04-04 07:34:00
我认为它只是更便宜而已。这些机器现在都有了,不需要发明新的东西。
下一个问题将是主板的复杂性,想象一下在一个MB上有10个CPUs如此多的链接!如果其中一个CPU死了,可能会毁掉整个机器..
当然,您可以为GPGPU编写程序,但它不像为CPU编写程序那么简单。有很多限制,例如。每个核心的缓存非常小,如果有的话,你不能在核心之间通信(或者你可以,但它非常昂贵)等等。
由于长时间的使用历史,连接多台计算机更稳定、更具可扩展性和更便宜。
发布于 2012-10-16 19:24:38
皮特说的话。当您向单个计算机添加内核时,通信开销会增加。如果内存在内核之间共享,那么共享内存的锁定体系结构和缓存会产生越来越大的开销。
如果你没有共享内存,那么你实际上是在使用不同的机器,即使它们都在同一个盒子里。
因此,在没有共享内存的情况下开发非常大规模的应用程序通常会更好。而且通常也是可能的-尽管通信开销通常仍然很大。
鉴于这种情况,构建高度多核的独立机器几乎没有什么用处--尽管确实存在一些机器,例如nvidia tesla……
https://stackoverflow.com/questions/10002860
复制相似问题