2010-11-23 29 views

回答

5

多核是一种并行编程。特别是它是一种MIMD设置,其中处理单元不分配,而是共享一个公共存储区,甚至可以共享像MISD设置的数据(如果需要的话)。我相信它甚至不同于多处理器,因为多核心设置可以共享一定级别的高速缓存,并且因此比不同核心上的CPU更有效地合作。

通用并行编程还将包括SIMD系统(如GPU)和分布式系统。

1

区别不在于处理方法,只是在软件运行的硬件上。并行编程遇到了一个问题,将工作负载分解为可以并行处理的小块(分而治之类型问题等)或可以彼此独立运行的函数。将该软件放置在多核硬件上,并由操作系统对其进行优化,以在不同内核上运行。这使它具有更好的性能,因为您为创建并行工作而创建的每个线程现在都可以运行,而无需在单个处理器/内核上占用CPU周期。

+0

谢谢。我懂了。如果我正确地读了你的话,你就是说,如果我可以用类比的话,多核编程就是并行编程技术的实现。这是准确的吗? – 2010-11-23 14:41:59

0

多核系统是并行系统的一个子集。不同的系统会有不同的内存架构,每个架构都有自己的挑战。一个系统如何处理缓存一致性?是否涉及NUMA等等。