论文部分内容阅读
随着半导体技术的发展,多核多线程体系结构已经成为未来计算机体系结构的发展方向。然而,相应的编程模型,编译器和运行时系统的研究则相对滞后。如何为用户提供一个简单易用的编程模型,编译器和运行时系统能够提供怎样的支持和优化才能更加有效的利用多核多线程计算资源,提高应用的可扩展性,都是研究人员力图解决的难题。
在前期工作中,提出了一种面向多核体系结构的数据流编程模型Diva。本文在前期工作的基础上,为了提高Diva模型的表达能力,在传统数据流模型的基础上引入了组件问数据共享。针对实现互斥访问共享数据时,细粒度锁难以编程,粗粒度锁扩展性不好的问题,本文将软件事务性内存(Software Transactional Memory)引入Diva模型。实验表明,相对于粗粒度锁,软件事务性内存能够有效提高Diva应用的可扩展性,在16核的机器上最高可以提升10倍以上。
本文还针对软件事务性内存实现中存在的开销过大的问题,提出了一种通过体系结构支持加速软件事务性内存的思路,并给出了性能分析。