[发明专利]一种利用非统一存储器访问架构特点提升并行化NumPy计算性能的方法有效
申请号: | 202110122117.7 | 申请日: | 2021-01-27 |
公开(公告)号: | CN112860530B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 梁嘉迪;杜云飞;卢宇彤;肖侬 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F9/445;G06F9/50 |
代理公司: | 深圳市创富知识产权代理有限公司 44367 | 代理人: | 高冰 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 统一 存储器 访问 架构 特点 提升 并行 numpy 计算 性能 方法 | ||
本发明公开了一种利用非统一内存访问架构特点提升并行化NumPy计算性能的方法,所述方法包括针对NUMA架构及NumPy并行计算的特点分析;针对NumPy并行计算及NUMA架构优化的CPU分配程序与基于CPU分配程序及进程绑定的优化版NumPy并行计算系统。本发明的有益效果在于,可以由CPU分配器根据NUMA架构计算机以及NumPy并行计算的特点,生成一个CPU配置文件,利用进程绑定,把进程绑定到适合的CPU核心上运行。这样可以更有效地利用计算机的硬件资源的同时,减少进程迁移带来的性能问题,提升并行计算的性能。
技术领域
本发明属于计算机算法性能提升的研究技术领域,特别涉及一种利用非统一存储器访问架构特点提升并行化NumPy计算性能的方法。
背景技术
NumPy是Python语言的一个矩阵及多维数组计算库。它使用C实现各算法中的核心计算部分,使得它的运行效率可以达到编译语言的水平。它还可以通过连接BLAS与LAPACK以进一步提升线性代数运算的性能。NumPy的常用领域包括科学计算、机器学习、数据分析、数据可视化等,而这些领域对性能的需求日渐提高,NumPy是一个串行计算的计算库,并行计算是提升NumPy性能的一种有效思路。
现代计算机应用对处理器的性能需求日渐提升,为了给这些应用提高更多处理器核心,出现了更多非统一存储器访问(NUMA)架构的计算机处理器。与传统的统一存储器访问架构不同,在非统一存储器访问架构的处理器中,存储器的访问时间取决于存储器相对于处理器的位置。虽然两者同样由计算机中的所有物理存储器组成全局的地址空间,但在NUMA架构中存储器在物理上是分布式的。处理器访问它的本地存储器时速度比非本地存储器更快。
因为处理器在访问本地存储器时速度更快,所以一般操作系统在处理多线程任务时,会更倾向于把同一个进程的线程分配到同一个NUMA节点当中,以此提升线程间数据交换的效率。然而这种方式并不是对所有应用场景都是最好的。
如图1所示,描述了一台典型的NUMA架构计算机的架构图。当中包含存储器、CPU插槽、NUMA节点、CPU核心等。其他典型的计算机部件例如硬盘及网络等被省略。
图1中的计算机有两个CPU插槽,分别为Socket0和Socket1,它们各自对应一个相同的CPU。
每个CPU当中包含8个核心,并且被分为两个NUMA节点,其中Socket0中的CPU被分为NUMA0及NUMA1;Socket1中的CPUl被分为NUMA2及NUMA3。其中每个NUMA节点当中皆有4个核心。
与NUMA节点对应地,存储器也被分为了对于每个NUMA节点的本地存储器,它们分别是RAM0、RAM1、RAM2及RAM3。
以NUMA0当中的核心为例,其访问RAM0中的数据时具有相对更小的延迟。而访问RAM1中的数据时因为需要经过NUMA1,延迟会变得较大。访问RAM2或RAM3中的数据因为要进行跨插槽的数据交换,这个时候访问延迟会再进一步提升。
为了确保应用的性能,在一般的操作系统中,会把并行计算应用中的线程尽量分配到相同的NUMA节点的核心当中。同样地,在并行编程模型例如MPI当中,默认也是尽量较少的NUMA节点数量,并尽量使用当中的全部核心。
这样的方式减少了程序中在核心间进行数据交换的延迟,某上程度上可以提升应用的性能。然而,这样的方式可能减少了存储器及存储器带宽的利用率,这个问题将在后续部分进行详细说明。
NumPy并行计算版本主要服务的目标是科学计算、机器学习、数据分析、数据可视化等。这些领域一般都有计算量大、可接受的计算延迟较大等特点。
由于NumPy中相当多的计算操作都是对矩阵中每一个元素进行相同的操作,这些操作显然是易于并行的,而且并行的时候也基本不需要进行进程间的数据交换。这样使得即是进程在不同的NUMA节点上,也不会为计算带来巨大的延迟。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110122117.7/2.html,转载请声明来源钻瓜专利网。