您当前的位置:首页>论文资料>并行计算的内存访问方法

并行计算的内存访问方法

资料类别:论文资料

文档格式:PDF电子版

文件大小:1.81 MB

资料语言:中文

更新时间:2024-11-29 17:15:34



推荐标签:

内容简介

并行计算的内存访问方法 数字热本与变用
并行计算的内存访问方法
林芝
(福州福昕软件开发有限公司福建福州350003)
算法分析
摘要:本发明是一种有关计算机并行计算的内存访问的方法,用于存在调用同一原始执行模块的口≥2个并行线程的情况,包括以下步骤:S1)根据线程数n确定需创建的映像执行模块的个数k,n-1≥k≥1;S2)确定该n个线程与原始执行模块及k个映像执行模块之间的映射策略F;S3)创建k个映像执行模块,并为其分配各自私有的内存池;S4)执行所速并行的n个线程,令各个线程按照所述映射策略F调用执行模块,每个执行模块访问且仅访问其私有的内存池;S5)线程运行完成后剧除创建的映像执行模块,释放资源。本发明可令并行计算的效率随植心数增加而至线性增长,而不受内存访问瓶颈的限制。各种操作系统通用,且便于将单线程的程序直接够植到多线程环境
关键调:并行计算内存访问方法专利介绍
中图分类号:TP311.1 1发明背景及技术支撑
文献标识码:A
文章编号:1007-9416(2013)05-0161-0)
确定映像执行模块的数量。
本发明主要涉及到计算机技术层面的内容,尤其针对多线程的 PDF格式文件操作中的内存访间控制,同时由此引申到多线程并行计算时的内存访问有效策略及如何更好提高运行效率的方式,下面就该发明的技术背景及发明内容做详细的介绍。
当前图书、图片,文件等实体资源的数字化,通常是采用扫描
识别
一提取的方式。先将文挡扫描为PDF格式再进行文档挡模
块和文字的识别,之后提取识别后的信息,供编档和供给搜索引擎以供建立索引。由于现有技术的限制,在对大量文档处理过程中存在占据大量系统资源的问题,导致处理速度减慢,当前的多核处理器技术逐步成熟,首选方式是在多个CPU上同时实现多线程的运行。但现实操作中仍存在提速有限且CPU未能完全利用的问题,为此发明人结合业内多年工作经验及实验操作分析和研究该问题的成因,发现要归因在内存操作中其分配和释放需要县城保护,并且全部线程共享同个内存池,这类因素导致访问需要等待,CPU效用率低,PDF的频繁操作会使得大量出现线程等待。
为了改善内存访问,本领域技术人员提出了多种方法,例如,专利授权公告号:CN100487660C,名为"一种多线程处理器动态内存管理系统及方法"的中国发明专利公开了
一种多线程处理器动态内
存管理方法,该方法在一定程度上解决了内核线程的内存释放间题,能够避免某一时刻某一空闲的内核线程占用过多的空闲内存。由主控内核线程取代硬件仲裁器,利用消息机制,提高了内存在各个内核线程间的分配使用效率。但是该方法却无法解决共享一
一个内
存池的多个线程均请求较大内存空间而必须排队等候的问题。并且
应用此方法,要改变内存管理代码,并不适合代码的直接移植, 2本发明具体内容阐述
(1)本发明目的在于针对多个线程调用同一个执行模块时,由于必须共享同一内存池,且该内存池无法提供足够资源而导致内存访间等待时间过长的间题,提供一种新的内存访问策略,以缩短甚或消除并行计算时的内存访问等待时间,使单个线程能够拥有独立的内存池,能在不改变或很少改变模块代码特别是完全不改变内存管理的情况下,将单线程代码,简单移植到多线程环境中。并让多核多线程的优势得到充分发挥。
(2)本发明的并行计算的内存访问方法,用于存在调用同一原始执行模块的Ⅱ>2个并行线程的情况,其特征在于,包括以下步骤:
S1)根据线程数n确定需创建的映像执行模块的个数k,Ⅱ-1≥ kl
S2)确定该Ⅱ个线程与原始执行模块及k个映像执行模块之间的映射策略F;
S3)创建k个映像执行模块,并为其分配各自私有的内存池; S4)执行所述并行的Ⅱ个线程,令各个线程按照所述映射策略F
调用执行模块,每个执行模块访间且仅访间其私有的内存池;
S5)线程运行完成后删除创建的映像执行模块,释放资源。其中,所述映像执行模块的个数为k可以是随时间变化的。或
者,所述映像执行模块的个数k在线程执行期闻也可是固定不变的。较佳地,可根据同一时间调用同一执行模块的线程个数的统计值来
根据本发明的一实施例,所述映像执行模块的个数k为1个。根据本发明的另一实施例,所述映像执行模块的个数k为n一1个。其中,当所述映像执行模块的个数k为n-1个时,所述映射策略F可为:每个线程分别调用
一个不同的执行模块,线程与执行模块是一
一对
应的。根据本发明的再一实施例,所述映射策略F可为静态策略,个线程仅指向一
个被它调用的执行模块,而一个
个执行模块被一个或
-个以上的线程调用。较佳地,所述映射策略F为将调用执行模块
颜警的线程,配置为独享
个执行模块,将相对调用执行模块频率
较低的线程,配置为共享执行模块。根据本发明的又一实施例,所述
映射策略F产
行模块定义“空闲”
策略的“多窗口排队“机制,该策略F中,为每个执“繁忙"两个状态,将所有的空闲执行模块排队,
需要调用执行模块的线程从空困执行模块队列中择一调用,若没有空闲的则等待,在线程对执行模块的调用进行中将该执行模块标记为繁忙,执行完毕后,线程释放该执行模块,将其标记为空闲,
应用本发明的方法可令并行计算的效率随核心数增加而呈线性增长,而不受内存访问瓶颈的限制。对各种操作系统均可适用。并且,使用静态方式时,基至无需增加代码,即可将单线程的程序直接移植到多线程环境。而灵活的动态方式和动态映射策略,则可使本发明在用不是那么多的系统资源的情况下显著提高效率,事率功倍
(3)本发明目的在于,在不改变操作系统的内存管理的前提下,
改变内存访问方式
。为对便于对本发明进行更好的理解,首先对
般的内存管理方式进行说明,内存管理的特点之
-是执行模块是隔
离的,每
个执行模块被分配独立的内存池空间。其中,执行模块可
个个数据结构,用于管理运行时加载
视为是系统在内存中建立的一
到内存中的程序
码,数据以及资源。每个执行模块作为
个系统
资源的分配单位,享有其独自的内存池,执行模块中的多个函数将共享该执行模块的内存池。所述执行模块可以是运行后被加载到进程中的一个windows下的.exe程序或一个动态链接库(dll)等。同一个执行模块,不论多少个线程在调用,只会被加载一次,由同一个进程开启的所有线程,对于同一执行模块,它的内存池是共享的。依照操作系统类型的不同,执行模块还可有其它形式。按照本领域技术人员的公知,不同的操作系统的内存管理模式会有区别,但是均会存在这样一种特定的单元,其由一些数据和代码的集合构成,表现为程序、函数等形式,并且对该种代码组合操作系统会分配私有的(private)内存空间(包括逻辑的或物理的)以供其访问。因此,在本发明中,执行模块也可理解为在给定操作系统下,依据该操作系统的默认内存管理方式而为其分配单独的内存池的一组代码和数据的集合。
专利名称:并行计算的内存访间方法专利号:ZL201010140502.6
申请日:2010.04.07公开日:2013.04.17 申请人:福州福昕软件开发有限公司林芝
上一章:TreeView目录构建及数据拖放的编程开发 下一章:报文摘要算法MD5的分析与改进

相关文章

YD/T 4073-2022 基于远程直接内存访问的高速以太存储网络交换设备测试方法 YD/T 4026-2022 基于远程直接内存访问的数据中心网络技术要求和测试方法 YD/T 4072-2022 基于远程直接内存访问的高速以太存储网络交换设备技术要求 并行计算方法研究与应用 基于OpenMP的电力系统并行故障计算实现 蒙特卡罗固定源计算的并行设计与实现 GA/T 1977-2022 法庭科学 计算机内存数据提取检验技术规范 计算电磁学中的超大规模并行矩量法