[发明专利]一种对CPU与MIC间数据传输进行优化的方法在审

专利信息
申请号: 201310447726.5 申请日: 2013-09-27
公开(公告)号: CN103530174A 公开(公告)日: 2014-01-22
发明(设计)人: 吴韶华;张广勇;沈铂;张清 申请(专利权)人: 浪潮电子信息产业股份有限公司
主分类号: G06F9/46 分类号: G06F9/46;G06F9/54
代理公司: 暂无信息 代理人: 暂无信息
地址: 250101 山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 cpu mic 数据传输 进行 优化 方法
【说明书】:

技术领域   

     发明涉及高性能计算领域中的并行程序设计及优化,与计算机硬件领域中的一种协处理器技术:Intel的MIC设备,具体说是一种对CPU与MIC间数据传输进行优化的方法。

背景技术

 高性能计算通常是指利用许多计算资源,如很多的CPU或协处理器,来完成单个CPU所不能完成的计算任务。高性能计算处于快速的发展之中,我们国家在2013年6月发布的天河2号是目前世界上最快的超级计算机。为使程序运行在多个计算设备上,需要采用一些特定的编程方法,目前较为通用的并行编程方法有MPI、OpenMP与PThread等。这些方法提供了简易的编程接口,利用这些方法可以相对较为容易的将仅能运行在单个CPU上的串行程序改编成为可运行在许多计算设备上的并行程序。

 MIC(Many Integrated Core)是Intel公司在2012年11月发布的一款协处理器。目前MIC芯片上有61个精简的x86核心,每个核心上包含4个硬件线程,每块MIC芯片上最多可启动244个线程,提供了高度并行的计算能力。同时MIC芯片提供了512位的向量化宽度,运算性能超过1TFlops。与其它协处理器不同的是,由于MIC芯片是对Intel x86结构的精简,所以原本运行在CPU上的程序可直接运行在MIC上,这意味着对程序无需或仅需要进行少量的改动即可利用MIC的计算资源。

 在MIC卡上运行程序的方式主要有三种:本地模式,对等模式与offload模式。本地模式是指程序直接在MIC设备上执行,该模式下无需对原有的CPU程序进行任何的修改,仅在编译时添加-mmic编译选项即可。对等模式是将MIC视为与CPU同等的计算节点,程序主函数在CPU与MIC端同时发起。该模式同样无需对原有的CPU程序进行修改。Offload模式是指程序主函数由CPU发起,执行到并行计算部分交给MIC执行,并行计算部分完全运行在MIC上。MIC技术仍处于发展之中,目前较通用的MIC计算方式为offload模式。MIC设备的启动及数据的传输由offload语句控制,而MIC端线程的启动由OpenMP语句控制,尽管二者的作用不同,但它们的使用方式非常类似,都是通过在程序中添加编译诱导语句来完成,因此对代码的修改较少,编程也较为便捷。

 在offload模式中,数据的传输是影响程序性能的一个关键因素。CPU与MIC之间通过PCI-E通信,由于PCI-E的数据传输速度较慢,因此频繁的进行CPU与MIC的通信将大大降低并行程序的性能。数据的传输同时涉及到在不同设备上数据空间的开辟与释放,每一次数据空间的开辟与释放都需要占用一定的计算时间,随着数据量的增大,开辟与释放操作所占用的时间也越来越多。因此在数据传输时如果不能很好的控制数据传递的次数以及数据空间的开辟与释放的次数,程序的性能必然会受到很大的影响。

发明内容

本发明给出了采用nocopy技术优化offload模式中数据传输的方法,从而达到提升程序整体性能的目的。本发明中,把数据空间的开辟置于计算之前,把数据空间的释放置于计算完成之后,从而把数据空间的开辟与释放次数降到了最低;该方法同时降低了数据在设备间的传入与传出次数,而且在数据传输时避免了数据空间的申请与释放,从而进一步的降低了数据传输时间。

本发明的技术方案为:CPU为任务的发起端,负责申请CPU端的数据空间,并随后启动MIC设备;MIC为计算端,负责数据的处理与计算。CPU与MIC之间的通信由offload语句控制。CPU与MIC端的通信包含两种情况:a)数据由CPU端传入MIC端;b)数据由MIC端传回CPU端。

 CPU在启动计算之前,利用offload语句中的nocopy子句,预先在MIC卡上申请数据空间并保持该空间以便重复使用,MIC设备对数据进行处理或计算时不再开辟空间,数据在CPU端与MIC端进行传输时也不再开辟或释放空间,计算结束后,在CPU端利用nocopy子句释放空间。

按实现的先后次序该方法可分为以下8步:

(1)定位需要在MIC上运行的所有程序片段;

(2)在这些程序片段中找出所有的数组变量;

(3)确定每一个数组在不同程序片段间的依赖关系;

(4)在主程序中对所有的数组变量进行CPU端空间的分配及初始化操作;确保这些空间的分配在程序的起始阶段,并位于循环的外部。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310447726.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top