[发明专利]一种利用非统一存储器访问架构特点提升并行化NumPy计算性能的方法有效
申请号: | 202110122117.7 | 申请日: | 2021-01-27 |
公开(公告)号: | CN112860530B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 梁嘉迪;杜云飞;卢宇彤;肖侬 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F9/445;G06F9/50 |
代理公司: | 深圳市创富知识产权代理有限公司 44367 | 代理人: | 高冰 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 统一 存储器 访问 架构 特点 提升 并行 numpy 计算 性能 方法 | ||
1.一种利用非统一内存访问架构特点提升并行化NumPy计算性能的方法,其特征在于,所述方法包括:
S1 NumPy并行计算系统接收计算任务;
S2从用户输入中确定需要使用的CPU核心数量;
S3调用CPU分配程序以生成针对NUMA架构及NumPy并行计算优化过的CPU分配文件;
S4结果为分配给不同的NUMA中各两个核心;
S5建立与步骤S2需要使用的CPU核心数量相同的进程,并按照CPU分配文件对它们进行与CPU核心的绑定;
S6矩阵计算任务被分到各个进程中进行;
S7计算完成;
其中,所述S3包括:
S3.1从环境变量或输入获取需要的核心数量;
S3.2使用lscpu获取系统的CPU信息并截取有用部分;
S3.3从CPU信息中截取有用信息;
S3.4以需要的核心数量除以NUMA节点数量以求出平均每个NUMA节点需要分配多少个核心;
S3.5从第一个NUMA节点开始进行核心的分配;
S3.6若剩余需要分配的核心数可被剩下的NUMA节点数整除,从剩余的NUMA节点中平均地分配需要的核心即可完成分配;
S3.7若剩余需要分配的核心数为0也即完成分配;
S3.8否则为在当前NUMA节点分配核心并跳到下一个NUMA节点,转到S3.6继续;
S3.9完成分配后,根据CPU信息及各NUMA节点上分配的核心数量生成CPU核心分配文件。
2.根据权利要求1所述的利用非统一内存访问架构特点提升并行化NumPy计算性能的方法,其特征在于,所述有用信息是CPU插槽数量、NUMA节点数量及CPU核心数量。
3.根据权利要求1所述的利用非统一内存访问架构特点提升并行化NumPy计算性能的方法,其特征在于,所述S3.4中,对于非整数情况,使用round,即求与该非整数最接近的整数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110122117.7/1.html,转载请声明来源钻瓜专利网。