NUMA与英特尔下一代Xeon处理器学习心得(6)

简介:
接下来讲讲 NUMA 策略,也就是为了更好的利用NUMA来给咱们干活:
为描述在 NUMA 架构下针对内存访问的优化,我们可以引入 NUMA 策略的概念。 NUMA 策略 (NUMA Policy) 即是指在多个节点上合理的进行内存分配的机制。对于不同软件设计要求,策略的目标可能会不同:有一些设计可能强调低延迟访问,另一些则可能更加看重内存的访问带宽。
 
对于强调低延迟访问的设计,基本的分配方式就是尽量在线程的本地内存上为其进行分配,   并尽量让线程保持在该节点上。这被称为线程的节点亲和性 (Node affinity) 。这样既充分利用了本地内存的低延迟,   同时也能有效降低节点间的通信负担。
 
NUMA 架构的一个优势是,即便是在拥有大量 CPU 的大规模系统中,我们也可以保证局部内存访问的低延迟。通常来讲, CPU 的处理速度是远大于内存的存取速度的。在读写内存时, CPU 常常需要花大量的时钟周期来等待。降低内存访问的延迟因而能够有效的提升软件性能。
 
另外,为 SMP 设计的操作系统通常会有缓存亲和性 (Cache Affinity)  的优化措施。缓存亲和性机制可以让数据尽量长时间的保留在某一个 CPU 的缓存中,而不是来回在多个 CPU 的缓存里换来换去。操作系统通常是通过优化进行线程 / 进程调度来保证这一点:在线程被重新调入时,调度器会尽量让线程在之前运行的同一个 CPU 上运行,从而保证缓存利用率。这一机制显然是和 NUMA 系统尽量利用本地内存的策略是一致的,有利于面向 SMP 系统的程序向 NUMA 架构移植。
 
但缓存亲和性机制同 NUMA 系统的节点亲和性又是有区别的:首先,同一个节点间多个 CPU 或者核的线程迁移并不影响该线程的节点亲和性;其次,当线程被迫迁移到其他节点时,他所拥有的内存是不会跟着迁移的,   仍然保留在原来位置。这个时候,本地内存就变成了远端内存,对它的访问既慢又占用节点通信带宽。相对的,线程在迁移之后能够以较小的代价迅速建立起新的缓存,并继续在新 CPU 上体现缓存的亲和优势。   因此, NUMA 系统对于节点亲和性的依赖更大。
 
操作系统的调度器同时也不能仅仅为保证节点亲和性做优化。因为通常相对于频繁访问远端内存来说,让 CPU 空闲带来的性能损失更大。如果特定应用系统的性能受内存访问的影响远大于 CPU 的利用率,这个时候程序员或者管理员则可采用特别的 NUMA 策略来强调节点的亲和性,从而提升性能。
 
另外 尽管大部分应用会因为优化响应时间而收益,还有一部分应用则对内存带宽比较敏感。为了提升内存带宽, NUMA 架构下的多个内存控制器可以并行使用。这类似于 RAID 阵列通过并行处理磁盘 IO 来提升读写性能。通过适当的软件或者硬件机制, NUMA 架构可以使内存控制单元在各个内存控制器上交替的分配内存。这意味着分配得到的连续内存页面会水平地分布到各个节点上。当应用程序对内存进行流式读写时,各个内存控制器的带宽就相当于累加了。此机制获得性能提升决定于 NUMA 架构的实现。对于远端内存访问延迟严重的架构,该提升往往会比较明显。在一些 NUMA 系统中,系统硬件本身提供了节点交织分配机制;而在没有硬件提供节点交织的系统中,可由操作系统来实现该机制。

本文转自Intel_ISN 51CTO博客,原文链接:http://blog.51cto.com/intelisn/130462,如需转载请自行联系原作者
相关文章
|
存储 边缘计算 固态存储
玄铁RISC-V处理器入门与实战-平头哥玄铁CPU IP-面向高性能领域CPU
玄铁RISC-V处理器入门与实战-平头哥玄铁CPU IP-
1644 1
|
存储 安全 物联网
玄铁RISC-V处理器入门与实战-平头哥玄铁CPU IP-面向低功耗领域CPU
玄铁RISC-V处理器入门与实战-平头哥玄铁CPU IP-
2958 0
|
人工智能 安全 大数据
第三代英特尔®至强®可扩展处理器:“X”王者归来
X是什么?每个人心中或许有不同的答案。 在数学方面,X代表着未知数;在坐标系统中常用来标识横坐标变量;在罗马数字里,Ⅹ代表十。当然还有一些时候,X表示无限,还有“目标”和“希望”的含义。 如果在计算领域,X也代表了x86架构,如今所有主流的计算机平台都基于x86架构而存在,这个X也不得不让我们想起x86架构的缔造者:英特尔。 提到英特尔,就无法不想到数据中心和服务器芯片市场,X是Xeon的首字母,英特尔®至强®可扩展处理器,为一大批互联网及企业级用户的数据中心带来了强劲的算力,也成就了英特尔在数据中心市场的霸主地位。
318 0
第三代英特尔®至强®可扩展处理器:“X”王者归来