Parallel processing 什么';并行和多核编程的区别是什么?

Parallel processing 什么';并行和多核编程的区别是什么?,parallel-processing,multicore,Parallel Processing,Multicore,我认为这个话题说明了一切。并行和多核编程之间有什么区别?谢谢。区别不在于方法,而在于软件运行的硬件。并行编程是将一个问题分解成更小的部分,这些部分可以并行处理(分治型问题等),或者可以独立运行的函数。将该软件放在多核硬件上,操作系统将对其进行优化,使其在不同的核上运行。这使它具有更好的性能,因为您创建用于执行并行工作的每个线程现在都可以在不消耗单个处理器/内核CPU周期的情况下运行。多核系统是并行系统的一个子集。不同的系统将有不同的内存体系结构,每种体系结构都有自己的挑战。一个系统如何处理缓存一

我认为这个话题说明了一切。并行和多核编程之间有什么区别?谢谢。

区别不在于方法,而在于软件运行的硬件。并行编程是将一个问题分解成更小的部分,这些部分可以并行处理(分治型问题等),或者可以独立运行的函数。将该软件放在多核硬件上,操作系统将对其进行优化,使其在不同的核上运行。这使它具有更好的性能,因为您创建用于执行并行工作的每个线程现在都可以在不消耗单个处理器/内核CPU周期的情况下运行。

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

多核是一种并行编程。特别是,它是一种处理单元不分布的设置,而是共享一个公共内存区域,如果需要,甚至可以像MISD设置一样共享数据。我认为它甚至与多处理有所不同,因为多核设置可以共享一定级别的缓存,从而比不同核上的CPU更有效地协作


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

您的问题需要更具体一些。谢谢。我懂了。如果我没看错的话,你是在说,如果我可以打个比方,多核编程就是并行编程技术的实现。那会准确吗?不完全准确。多核编程是一种用词不当的说法,它只是指在多核硬件上运行多线程程序。如果代码在具有多个线程的单处理器环境中工作,那么通过在多个核心/处理器上运行它,您将获得额外的好处。