15 lines
1.2 KiB
Markdown
15 lines
1.2 KiB
Markdown
#### NUMA简介
|
||
|
||
numa把一台计算机分成多个节点(node),每个节点内部拥有多个CPU,节点内部使用共有的内存控制器,节点之间是通过互联模块进行连接和信息交互。
|
||
|
||
#### NUMA和SMP的区别(CK老师的解释)
|
||
|
||
NUMA和SMP的区别在性能上。SMP是对称多处理,NUMA是非统一内存访问。
|
||
|
||
SMP的每一颗处理器到内存的距离都是一样的。传统上所有处理器都连接着北桥芯片(即内存控制器),这样的结构是对称的,可以认为是SMP。
|
||
|
||
现在,内存控制器做在处理器里面了,这样每一个处理器都可以控制一部分内存。要访问另一颗处理器控制的内存,就必须通过处理器的通信线路,这样访问自己的内存就快,访问别人的内存就慢,这样就存在一个处理器亲和力的问题。解决方法就是内核线程要绑定到一个处理器的一个核心中,不要老跑来跑去。
|
||
|
||
有这样一个结论:任何针对单核处理器所做的优化,在多核上面都要创建一个新的Memory Model。
|
||
|
||
对内存有兴趣的同学可以看两个文档:**All Programmer should Know About Memory**和**Tutorial On Memory Model**。前提是要先清楚**Sequential Consistency**的概念。 |