【技术实现步骤摘要】
本专利技术涉及用于多核体系结构的并行程序,具体地,涉及并行程序中 的多个线程并行访问共享数据结构的方法及装置。
技术介绍
当前,微处理器技术正在从单核时代进入多核时代,多核处理器正在成为主流并且快速M。在多核处理器中,每一个CPU核都可支持多个线程。随着对多核处理器的计算能力的需求的增长,能够有效利用硬件并行 性的并行编程是最合适的方式。在并行计算中,通过对多核处理器中的多个CPU核(处理单元)进行编程以协同解决一个问题,能够提高计算速度。为了充分利用多核处理器,通常使用并行程序,即应用程序中包含并行处 理。在并行程序中,任务处理被分成多个部分(线程),这些线程可并行 地执行,并通过访问某些共享数据结构和使用合适的同步方法来彼此通信, 以协同并正确地工作。当并行程序在多核处理器上运行时,该并行程序中的多个线程可访问 共享数据结构,以对共享数据结构进行操作,例如,删除元素或增加元素。 当多个线程访问共享数据结构时,需要使用同步机制以确保每次只有一个 线程能够对共享数据结构进行操作,这可通过为线程授予共享数据结构的 锁来实现。当一个线程获得共享数据结构的锁时,其它线程都不能获得该 锁。获得锁的线程可对共享数据结构进行操作,并在结束操作后释放该锁, 然后由另 一个线程获得该锁以进行操作。在并行程序中,基于数组的数据结构被广泛应用,其中,数组是最常 用的。下面通过一个例子说明现有的多个线程访问共享数据结构的方案。图1示出了三个线程并行访问基于数组的列表的过程。如图1 (a)所示,列 表的位置0-3的元素分别是A 、 B,, 、 C和D,线程1的操 作是a ...
【技术保护点】
一种并行应用程序中的多个线程并行访问共享数据结构的方法,包括: 对所述多个线程中的一个线程授予所述共享数据结构的锁; 对所述共享数据结构执行获得所述锁的线程的操作; 缓存所述多个线程中未获得所述锁的线程的操作;以及在随后的所述多个线程中的另一个线程获得所述共享数据结构的锁的期间,对所述共享数据结构执行所述所缓存的操作。
【技术特征摘要】
1.一种并行应用程序中的多个线程并行访问共享数据结构的方法,包括对所述多个线程中的一个线程授予所述共享数据结构的锁;对所述共享数据结构执行获得所述锁的线程的操作;缓存所述多个线程中未获得所述锁的线程的操作;以及在随后的所述多个线程中的另一个线程获得所述共享数据结构的锁的期间,对所述共享数据结构执行所述所缓存的操作。2. 根据权利要求1所述的并行应用程序中的多个线程并行访问共享 数据结构的方法,还包括将所述所緩存的操作合并为复合操作。3. 根据权利要求1或2所述的并行应用程序中的多个线程并行访问 共享数据结构的方法,其中,所述操作是以下操作的任意一个按值删除 操作,即删除共享数据结构中具有所述值的元素;按操作位置删除操作, 即删除共享数据结构中指定操作位置的元素;以及按操作位置添加操作, 即在共享数据结构中的指定操作位置添加元素。4. 根据权利要求2或3所述的并行应用程序中的多个线程并行访问 共享数据结构的方法,其中,将所述所緩存的操作合并为复合操作的步骤 包括确定所述緩存的操作的每一个的优先级和操作位置;以及 按照所述緩存的操作的优先级和操作位置,对所述緩存的操作进行排序。5. 根据权利要求4所述的并行应用程序中的多个线程并行访问共享 数据结构的方法,其中,确定所述所緩存的操作的每一个的操作位置的步 骤包括确定每一个按值删除操作中的值在所述共享数据结构中的位置,作为 该按值删除操作的操作位置;以及确定每一个按操作位置删除操作和每一个按操作位置添加操作的操作位置。6. 根据权利要求4或5所述的并行应用程序中的多个线程并行访问 共享数据结构的方法,其中,将所述所緩存的操作合并为复合操作的步骤 还包括对排序后的所述所緩存的操作执行沖突检测和解决操作。7. 根据权利要求6所述的并行应用程序中的多个线程并行访问共享 数据结构的方法,其中,所述对排序后的所述所緩存的操作执行沖突检测 和解决操作的步骤包括检测所述排序后的操作中是否包含多个相同的M删除操作; 如果包含,则对所述多个相同的按值删除操作分配不同的操作位置; 删除未分配操作位置的按值删除操作;检测所述排序后的操作中是否包含多个所述操作位置相同的操作; 对于所述操作位置相同的操作,以第一个具有最高优先级的操作为当前操作,并以所述当前操作的操作位置为当前位置,将所述当前操作的下一个操作的操作位置调整为所述当前位置的后续位置;判断调整后的所述下一个操作的操作位置是否是所述共享数据结构的有效位置;如果是有效位置,则以所述下一个操作为当前操作,执行上述的位置 调整步骤和有效位置判断步骤;以及如果不是有效位置,则删除相应的操作以及剩余的操作。8. 根据权利要求3至7任意一项所述的并行应用程序中的多个线程 并行访问共享数据结构的方法,其中,所述按值删除操作的优先级高于所 述按操作位置删除操作的优先级,所述按操作位置删除操作的优先级高于 所述按操作位置添加操作的优先级。9. 根据权利要求1至8任意一项所述的并行应用程序中的多个线程 并行访问共享数据结构的方法,其中,所述共享数据结构是基于数组的。10. —种并行应用程序中的多个线程并行访问共享数据结构的装置, 包括锁授予模块,用于对所述多个线程中的某个线程授予所述共享数据结构的锁;操作执行模块,用于对所述共享数据结构执行线程的操作;以及 緩存模块,用于緩存所述多个线程中未获得所述锁的线程的操作; 其中...
【专利技术属性】
技术研发人员:甘志,戴晓君,邱模炯,齐尧,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。