并行计算编程中的软件事务内存算法研究与综合优化
发布时间:2020-05-20 10:02
【摘要】:近年来伴随着计算机多核时代的到来,软件开发出现了新的挑战,如何进行有效的并行计算编程,充分释放多核的计算处理能力,已经成为当前的一大讨论热点问题。传统的并行计算编程模式一般是采用锁机制下的多线程方式来实现的。这种多线程的编程模式要求程序员在写代码时必须自己使用锁机制在线程一级上控制程序的同步问题,代码的复杂度非常高,很容易导致死锁、活锁、优先级反转等一系列问题。软件事务内存(Software Transactional Memory, STM)是一种新型的并行编程模式,它使用事务来进行线程间同步,是锁同步机制的一种替代。软件事务内存将一组操作封装到事务中通过原子操作的方式来运行,为并行计算编程提供一种非常简单有效的编程手段。然而软件事务内存由于复杂的冲突检测机制以及冲突的误判等问题使其一直存在着很大的性能问题。 本文在对现有软件事务的理论和算法分析研究的基础上,提出综合运用下述三点优化方案:一、采用无效性验证策略代替传统的有效性验证策略,提高事务的通过率;二、根据系统实际运行情况动态调整竞争管理器算法,使得系统的实用性大大提高;三、通过引入动态Bloom Filter参数优化调整策略,大大降低了事务冲突的误判率,使得系统的性能得到进一步的提升。最后我们设计实现了一个基于对象的综合优化后的软件事务内存原型系统(Integrate Multi Optimized STM, IMO.STM),实验结果显示,这种通过运行时的动态综合优化的软件事务内存系统,有着很好的整体性能优势。
【图文】:
图5一3链表N一 wr1tef十N一Reader测试结果下面我们来看看对于哈希表结构的测试情况。图5一4是哈希表结构的多线程插入的测试结果。测试结果显示,,工MO.STM有小幅度的优势,但优势不明显。{「一”’「一‘-一一一一1一一一~~一r~一——4个线程插入8个线程插入TB00ST.STM缘IMO.STMTB00ST.STM麟IMO.STM薰250200150100500成完时间
本文编号:2672449
【图文】:
图5一3链表N一 wr1tef十N一Reader测试结果下面我们来看看对于哈希表结构的测试情况。图5一4是哈希表结构的多线程插入的测试结果。测试结果显示,,工MO.STM有小幅度的优势,但优势不明显。{「一”’「一‘-一一一一1一一一~~一r~一——4个线程插入8个线程插入TB00ST.STM缘IMO.STMTB00ST.STM麟IMO.STM薰250200150100500成完时间
本文编号:2672449
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2672449.html