[发明专利]并行计算的内存访问方法有效

专利信息
申请号: 201010140502.6 申请日: 2010-04-07
公开(公告)号: CN101799773A 公开(公告)日: 2010-08-11
发明(设计)人: 熊雨前;林芝 申请(专利权)人: 福州福昕软件开发有限公司
主分类号: G06F9/50 分类号: G06F9/50
代理公司: 北京科龙寰宇知识产权代理有限责任公司 11139 代理人: 孙皓晨;朱世定
地址: 350003 福建省福*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 并行 计算 内存 访问 方法
【说明书】:

技术领域

本发明涉及计算机技术,特别是涉及多线程的PDF格式文件操作中的内存 访问控制;以及由此引申出来的多线程并行计算时的内存访问策略和提高运行 效率的方法。

背景技术

图书、图片、文件等实体资源的数字化通常是采用扫描——识别——提取 的方式。先将文档扫描为PDF格式,再进行文档模块和文字的识别,之后提取 识别后的信息,供编档和供给搜索引擎以供建立索引。现有技术中,对大量的 PDF格式的文档进行操作时,往往需要大量的系统资源,包括CPU和内存资源, 并且对PDF格式文档的处理速度也较慢。为了提高处理速度,各种方式被选用, 特别是近年来随着多核处理器技术的成熟,在多个CPU上同时运行多个线程成 为提高计算速度的首选方式之一。

然而,实际操作中,却往往出现速度提高有限,而同时CPU却不能被完全 利用的情况。例如,如果充分利用CPU,那么在多核机器上,例如4核CPU上 测试,开4个线程,做压力测试的时候,每个线程占用一个CPU,理论上CPU 占用率应该是接近100%的。但是在实际的测试中发现,CPU占用率远低于 100%,甚至很多时候,CPU占用率只达到25%。这说明,并非每个CPU都在 工作,这里应该是有线程等待。CPU并没有得到充分的利用。

本案发明人结合自身多年业内工作经验和实验结果对此现象的成因进行了 分析和研究,并最终得出该情况的发生主要在于对内存操作工程中,无论是内 存的分配和释放都需要线程保护,且所有的线程共享一个内存池,从而导致了 访问等待,使CPU无法被充分利用。而PDF操作对内存是非常频繁的操作,所 以引起了大量的线程等待。

关于内存访问,在传统操作系统的内存管理中,多是将每个应用程序加载 到一个单独的进程,并为每一进程指定私有的内存空间,内存空间在进程间不 能互访。一般来说,一个应用程序进程运行时会创建多个实体,即线程,同属 一个进程的多个线程共享该进程的资源。

随着计算技术和硬件的发展,特别是近年来多核处理器的广泛应用,线程 的并发执行(并行计算)越来越普遍。在多个线程并行时,考虑到数据安全, 其对共享内存的访问往往是逐一进行而不能同时访问,即便允许同时访问也经 常会有分配的内存池容量不够多个线程之用的情况,这就造成了内存访问的等 待。特别是在使用多CPU,每个CPU运行一个线程的情况,当CPU处理所需 时间小于内存访问和等待时间时,内存访问就成了计算速度的瓶颈,使得CPU 资源无法得到充分的利用,妨碍了计算速度的进一步提高。

为了改善内存访问,本领域技术人员提出了多种方法。例如,专利授权公 告号:CN100487660C,名为“一种多线程处理器动态内存管理系统及方法”的 中国发明专利公开了一种多线程处理器动态内存管理方法,参见图1,该方法包 括以下步骤:主控内核线程从系统内存中申请一段内存作为内存池(步骤101); 所有内核线程向所述主控内核线程发送申请内存消息,主控内核线程收到所述 申请内存消息后,从所述内存池中分配空闲的内存给申请内存的内核线程,并 向申请内存的内核线程发送分配内存消息(步骤102);所述主控内核线程查询 内核线程已申请的内存的使用情况,定期发送回收内存消息(步骤103);内核 线程收到所述回收内存消息后,对内存进行归还,并向主控内核线程发送释放 内存消息(步骤104)。

该方法在一定程度上解决了内核线程的内存释放问题,能够避免某一时刻 某一空闲的内核线程占用过多的空闲内存。由主控内核线程取代硬件仲裁器, 利用消息机制,提高了内存在各个内核线程间的分配使用效率。但是该方法却 无法解决共享一个内存池的多个线程均请求较大内存空间而必须排队等候的问 题。并且应用此方法,要改变内存管理代码,并不适合代码的直接移植。

发明内容

本发明的目的在于,针对多个线程调用同一个执行模块时,由于必须共享 同一内存池,且该内存池无法提供足够资源而导致内存访问等待时间过长的问 题,提供一种新的内存访问策略,以缩短甚或消除并行计算时的内存访问等待 时间,使单个线程能够拥有独立的内存池。

更重要的目的是,要能在不改变或很少改变模块代码特别是完全不改变内 存管理的情况下,将单线程代码,简单移植到多线程环境中。并让多核多线程 的优势得到充分发挥。

本发明的并行计算的内存访问方法,用于存在调用同一原始执行模块的n ≥2个并行线程的情况,其特征在于,包括以下步骤:

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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