当前位置: 首页 > 专利查询>复旦大学专利>正文

一种可控重复执行次数的多线程事务存储编程模型方法技术

技术编号:21398588 阅读:44 留言:0更新日期:2019-06-19 06:53
本发明专利技术属于计算机多线程并行编程领域,涉及一种执行失败后,可控重复执行次数(N‑retry)的多线程事务存储编程模型方法。本发明专利技术将原事务存储编程模型进行修改,对执行失败的事务控制重复执行次数,并通过构建任务队列,若事务执行失败,则将该事务执行的任务返回至任务队列尾部的方式,确保并行模型的正确性,并避开多线程程序中的热点资源,减少事务总执行失败次数,提高程序并发效率。本方法易用性高,能在高冲突并行算法中显著提高并行效率。

【技术实现步骤摘要】
一种可控重复执行次数的多线程事务存储编程模型方法
本专利技术属于计算机并行编程领域,涉及一种执行失败后可控重复执行次数的多线程事务存储(TransactionMemory)编程模型方法。
技术介绍
现有技术公开了摩尔定律在芯片的尺寸,频率,功耗等方面均被验证,但随着IC芯片的晶体管尺寸已达7纳米,晶体管尺寸很难再依照摩尔定律不断缩小,单核CPU的频率由于功耗的限制也难以大幅提升,因此单核CPU的计算能力提升较为困难;业内认为,并行多核处理器将成为处理器的计算能力沿摩尔定律增长的关键技术之一。多线程编程是在多核处理器平台上实现并行计算的常用编程技术。然而将现有程序从单线程移植到多线程,同时又具备较高的并行效率却是一件极具挑战性的工作,其难点主要体现在易用的并行编程模型和高的并行效率方面。业内认为,多核并行编程模型需要解决的核心问题是多线程共享内存的冲突。常见的共享内存冲突有两种,一种是写后读冲突,即当两个线程同时读写同一块内存,其中一个线程在读取并使用共享内存的过程中,该内存值被另一线程覆写改变;另一种是写后写冲突,两个线程同时对一块共享内存进行写操作;实践显示,在多线程编程中这些冲突本文档来自技高网...

【技术保护点】
1.一种可控重复执行次数的多线程事务存储编程模型方法,其特征在于,其包括:a)在多线程事务存储模型内部,事务执行失败若干次后,不再重复执行原事务,将该事务所执行的任务放回任务队列尾部;使提高基于事务存储模型的多线程程序的并行效率;b)可控重复执行的多线程事务存储编程模型,可实现为可控重复执行次数的软件事务存储模型和可控重复执行次数的硬件事务存储模型。

【技术特征摘要】
1.一种可控重复执行次数的多线程事务存储编程模型方法,其特征在于,其包括:a)在多线程事务存储模型内部,事务执行失败若干次后,不再重复执行原事务,将该事务所执行的任务放回任务队列尾部;使提高基于事务存储模型的多线程程序的并行效率;b)可控重复执行的多线程事务存储编程模型,可实现为可控重复执行次数的软件事务存储模型和可控重复执行次数的硬件事务存储模型。2.按权利要求1所述的方法,其特征在于,在所述可控重复执行次数的软件事务存储模型中,可控重复执行次数的软件事务存储模型(N-retryTL2)的应用层代码如图2示例代码所示;在N-retryTL2模型的应用层代码中,线程从任务队列中取出一个任务并开始执行,由STM_BEGIN和STM_EDN进入事务存储,N-retryTL2模型对成功或失败的事务设立一个标志位;事务执行失败时,语句flag=0将不会被执行,程序直接跳转到N-retry_STM_END;构建一个全局的任务队列动态派遣任务将失败的任务在之后的某个时间重新执行;若本任务的事务执行失败,该事务执行的任务被放入任务队列尾部。3.按权利要求2所述的方法,其特征在于,N-retryTL2的实现包括:N-retryTL2模型在事务处理失败后跳到事务开始阶段STM_begin,其增加了检查重复次数的步骤;在事务的开始执行阶段,定义一个环境变量stm_jmpbuf并且调用sigsetjmp指令存储当前环境;若事务执行期间,事务因某原因被废止,则程序使失败次数retrytime加1,...

【专利技术属性】
技术研发人员:曾璇周海严昌浩陆昆
申请(专利权)人:复旦大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1