[发明专利]多个线程并行访问共享数据结构的方法及装置有效
申请号: | 200810161517.3 | 申请日: | 2008-09-24 |
公开(公告)号: | CN101685408A | 公开(公告)日: | 2010-03-31 |
发明(设计)人: | 甘志;戴晓君;邱模炯;齐尧 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 于 静;刘 薇 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 并行 访问 共享 数据结构 方法 装置 | ||
技术领域
本发明涉及用于多核体系结构的并行程序,具体地,涉及并行程序中 的多个线程并行访问共享数据结构的方法及装置。
背景技术
当前,微处理器技术正在从单核时代进入多核时代,多核处理器正在 成为主流并且快速发展。在多核处理器中,每一个CPU核都可支持多个线 程。随着对多核处理器的计算能力的需求的增长,能够有效利用硬件并行 性的并行编程是最合适的方式。在并行计算中,通过对多核处理器中的多 个CPU核(处理单元)进行编程以协同解决一个问题,能够提高计算速度。 为了充分利用多核处理器,通常使用并行程序,即应用程序中包含并行处 理。在并行程序中,任务处理被分成多个部分(线程),这些线程可并行 地执行,并通过访问某些共享数据结构和使用合适的同步方法来彼此通信, 以协同并正确地工作。
当并行程序在多核处理器上运行时,该并行程序中的多个线程可访问 共享数据结构,以对共享数据结构进行操作,例如,删除元素或增加元素。 当多个线程访问共享数据结构时,需要使用同步机制以确保每次只有一个 线程能够对共享数据结构进行操作,这可通过为线程授予共享数据结构的 锁来实现。当一个线程获得共享数据结构的锁时,其它线程都不能获得该 锁。获得锁的线程可对共享数据结构进行操作,并在结束操作后释放该锁, 然后由另一个线程获得该锁以进行操作。
在并行程序中,基于数组的数据结构被广泛应用,其中,数组是最常 用的。
下面通过一个例子说明现有的多个线程访问共享数据结构的方案。图 1示出了三个线程并行访问基于数组的列表的过程。如图1(a)所示,列 表的位置0-3的元素分别是“A”、“B”、“C”和“D”,线程1的操 作是“add(0,‘Y’)”,即在位置0处添加元素“Y”,线程2的操作是“add(1, ‘X’)”,即在位置1处添加元素“X”,线程3的操作是“remove(1)”, 即删除位置1处的元素。首先,线程1获得该列表的锁,在列表的位置0 处添加元素“Y”,相应地,原本在位置0-3处的元素“A”、“B”、“C” 和“D”被移动到位置1-4处,如图1(b)所示。然后,线程1释放锁, 由线程2获得该锁,线程2在列表的位置1处添加元素“X”,相应地, 原本在位置1-4处的元素“A”、“B”、“C”和“D”被移动到位置2-5 处,如图1(c)所示。然后,线程2释放锁,由线程3获得锁,线程3删 除位置1处的元素“X”,原本在位置2-5处的元素“A”、“B”、“C” 和“D”被移动到位置1-4处,如图1(d)所示。通过以上过程可以看出, 每次线程对列表进行操作时,列表中的元素都将移动。在实际的应用程序 中,当多个线程频繁地修改数据结构时,会出现很多的如上所述的元素移 动,这些元素移动的开销会降低整个多核处理器的性能。
为了改善多核处理器的性能,提出了对多核处理器所使用的数据库采 用聚合写(Aggregate Write)的方案。聚合写在数据库、文件系统和并行 输入输出系统的设计中很普遍,它可改善并行应用程序在不同场景下的吞 吐量和延迟。在并行输入输出系统和文件系统中,在程序中的某个线程访 问存储器时,为了改善吞吐量和减少延迟,将要写入存储器的内容首先被 缓存在缓存器中,然后,该线程继续其工作而无需等待上述内容被写入实 际的存储器中。
发明内容
本发明正是鉴于上述的技术问题而提出的,其目的在于提供一种并行 应用程序中的多个线程并行访问共享数据结构的方法及装置,其能够在修 改共享数据结构时减少元素移动的次数,提高多线程访问的性能。
根据本发明的一个方面,提供一种并行应用程序中的多个线程并行访 问共享数据结构的方法,包括:对所述多个线程中的一个线程授予所述共 享数据结构的锁;对所述共享数据结构执行获得所述锁的线程的操作;缓 存所述多个线程中未获得所述锁的线程的操作;以及在随后的所述多个线 程中的另一个线程获得所述共享数据结构的锁的期间,对所述共享数据结 构执行所缓存的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810161517.3/2.html,转载请声明来源钻瓜专利网。