[发明专利]高性能计算机NUMA感知的线程和内存资源优化方法与系统有效
申请号: | 201410677736.2 | 申请日: | 2014-11-21 |
公开(公告)号: | CN104375899A | 公开(公告)日: | 2015-02-25 |
发明(设计)人: | 莫则尧;张爱清;杨章;田鸿运 | 申请(专利权)人: | 北京应用物理与计算数学研究所 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 王天尧 |
地址: | 100088*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 性能 计算机 numa 感知 线程 内存 资源 优化 方法 系统 | ||
1.一种高性能计算机非一致内存访问NUMA感知的线程和内存资源优化系统,其特征在于,包括:
运行时环境探测模块,用于探测并行程序所在计算结点的硬件资源及所述硬件资源的分布情况,探测并行程序分布在当前计算结点上的并行进程数;
计算资源分配管理模块,用于根据所述硬件资源的分布情况及所述并行进程数,为各并行进程分配处理器和内存计算资源,建立各并行进程及并行进程的子线程与实际处理器核和物理内存区域的映射关系;其中,由每个并行进程开启的并行区内的执行线程在该进程所属的处理器核上调度,各线程的内存资源分配请求在线程所属进程的内存资源区域内划分;
并行编程接口及线程绑定模块,用于向并行程序提供相应的并行编程接口,在并行程序调用相应的并行编程接口后,根据所述映射关系,获取并行区内各线程的绑定位置掩码,将执行线程绑定到相应的CPU核上。
2.如权利要求1所述的系统,其特征在于,运行时环境探测模块具体用于:
探测当前计算结点包含的对称多处理器共享存储结构SMP模块数量,每个SMP模块的CPU数量,每块CPU的处理器核数量,每块CPU下挂载的内存容量及空闲内存信息统计;其中,SMP模块是由多个CPU以及挂载在该SMP模块上的内存所组成的计算资源模块,在SMP模块内部的处理器核对该SMP模块上的内存访问具有相同的访存性能;
采用共享内存通信计数的方式获知以消息传递接口MPI并行方式运行于当前计算结点上的并行进程数。
3.一种高性能计算机NUMA感知的线程和内存资源优化方法,其特征在于,包括:
探测并行程序所在计算结点的硬件资源及所述硬件资源的分布情况;
探测并行程序分布在当前计算结点上的并行进程数;
根据所述硬件资源的分布情况及所述并行进程数,为各并行进程分配处理器和内存计算资源,建立各并行进程及并行进程的子线程与实际处理器核和物理内存区域的映射关系;其中,由每个并行进程开启的并行区内的执行线程在该进程所属的处理器核上调度,各线程的内存资源分配请求在线程所属进程的内存资源区域内划分;
向并行程序提供相应的并行编程接口,在并行程序调用相应的并行编程接口后,根据所述映射关系,获取并行区内各线程的绑定位置掩码,将执行线程绑定到相应的CPU核上。
4.如权利要求3所述的方法,其特征在于,探测并行程序所在计算结点的硬件资源及所述硬件资源的分布情况,包括:
探测当前计算结点包含的对称多处理器共享存储结构SMP模块数量,每个SMP模块的CPU数量,每块CPU的处理器核数量,每块CPU下挂载的内存容量及空闲内存信息统计;其中,SMP模块是由多个CPU以及挂载在该SMP模块上的内存所组成的计算资源模块,在SMP模块内部的处理器核对该SMP模块上的内存访问具有相同的访存性能;
探测并行程序分布在当前计算结点上的并行进程数,包括:
采用POSIX共享内存写入的方式统计当前计算结点上的并行进程数,对运行于当前计算结点上的各个并行进程按如下流程执行统计操作:
初始化进程间信号量;
并行进程抢占信号量锁资源,若未抢占到则执行等待操作;
并行进程获得信号量锁资源,尝试创建共享内存;
并行进程归还信号量锁资源,让当前计算结点上的其它并行进程继续抢占信号量锁资源;
执行全局进程同步,确保当前计算结点内的并行进程已更新完自己的信息;
将共享内存中的信息拷贝回当前进程并排序,将排序后的进程号对应的序号作为该并行进程在计算结点内的ID号;
回收共享内存和信号量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京应用物理与计算数学研究所,未经北京应用物理与计算数学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410677736.2/1.html,转载请声明来源钻瓜专利网。