+
81
-

多线程、多核心、SMP和NUMA的区别是什么?

多线程、多核心、SMP和NUMA的区别是什么?


网友回复

+
0
-

多核心

具有多个逻辑CPU内核并且可以物理上同时执行多条指令的计算机的处理器。计算机的“核心数”是计算机拥有的核心总数。计算机可能具有多个处理器,每个处理器可能具有多个核心;核心数是所有处理器上的核心总数。 多线程 可以通过同时在多个内核上运行来利用多核计算机的程序。通常,两倍的内核等于两倍的计算能力(对于支持多线程的程序),尽管某些问题受CPU使用率以外的因素的限制。这些问题将不会带来多线程带来的巨大收益。

SMP

SMP(Symmetric Multi-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统。

NUMA NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache 的一致性有多种解决方案,一般采用硬件技术实现对cache的一致性维护,通常需要操作系统针对NUMA访存不一致的特性(本地内存和远端内存访存延迟和带宽的不同)进行特殊优化以提高效率,或采用特殊软件编程方法提高效率。NUMA系统的例子。这里有3个SMP模块用高速专用网络联起来,组成一个节点,每个节点可以有12个CPU。像Sequent的系统最多可以达到64个CPU甚至256个CPU。显然,这是在SMP的基础上,再用NUMA的技术加以扩展,是这两种技术的结合。
我知道答案,我要回答