[发明专利]一种简便的测试内存带宽的方法在审
申请号: | 201410552569.9 | 申请日: | 2014-10-17 |
公开(公告)号: | CN104268050A | 公开(公告)日: | 2015-01-07 |
发明(设计)人: | 唐湘华 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F11/26 | 分类号: | G06F11/26 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 简便 测试 内存 带宽 方法 | ||
1.一种简便的测试内存带宽的方法,其特征在于操作如下:
(1)系统参数获取:
获取系统的cpu信息——包括物理cpu数量及总线程数量;获取线程编号与物理cpu编号的对应关系,方便后续的debug;获取内存的总大小,以及LLC(三级缓存)的总大小;通过awk命令及grep命令抓取/proc/cpuinfo 及/proc/meminfo中的关键字的方法,来获取想要的信息;
(2)参数修改:
修改stream程序中的N值的大小,通过awk语言中的NR参数,定位到需要修改的N值所在的具体的行,然后,将设定的值赋给N值;
(3)信息输出:
Output函数实现,打印出当前的系统信息,包括物理cpu的个数、一个物理cpu的物理core个数,逻辑core个数,HT 是否打开,cpu node与core ID的map关系,LLC大小、总内存大小、N值大小,N值与LLC的倍数关系;使用awk语言获取想要的系统信息——已经在预定义模块获取;cpu信息输出只需要要使用命令echo就行,map 对应关系获取使用了一个简单的算法实现;
(4)开始:
start()函数,开始对stream.c代码进行并行化编译,并开始一个循环,按照参数设定的粒度大小逐次增加线程运行编译好的stream程序,并将结果输出到result-$i中;之后会对结果进行初步处理,将Triald与Copy值取出存入Triald-$Threads中;
(5)参数选择:
这一部分通过一个case循环来获取命令行中的参数,并将参数运用到各函数中去,实现通过参数来控制程序运行的方法;可使用的参数有:-N xxx需要设置的N值大小;-m 选择是否输出node id与core id的对应关系;-i xxx设置线程的粒度大小;
(6)结果处理:
对start中得出的结果进行进一步归纳处理:
(7)环境清理:
清除程序运行过程中的临时文件,如stream_omp、stream_omp.c、result-*等文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410552569.9/1.html,转载请声明来源钻瓜专利网。