论文部分内容阅读
随着多核处理器的发展,并行化编译技术,特别是循环体的并行化编译技术,越来越受到重视。TLS(Thread level speculation)编译,即猜测并行化编译,可将原来顺序运行的程序并行化。但由于猜测数据的不确定性引起的数据管理开销过大,以及猜测线程失败引起的线程回滚开销,使得并行后的性能提升有限。另外一方面,并行编程对于普通程序开发者难度过大,需要了解底层硬件相关知识并考虑并行分配以及软硬件开销问题,使得并行编程并不能广泛使用。本文针对TLS编译中数据管理和线程回滚开销过大以及并行编程的问题,提出了基于OpenMP的热点级猜测并行化编译框架。基于OpenMP的热点级并行化编译框架标记能有效并行化的循环体为热点循环体,采用对最高层次热点循环体进行更激进的并行化的方式提高性能,而对非热点循环体采用保守的顺序执行以减少开销。基于OpenMP的热点级并行化编译框架基于OpenMP并行编程接口,有利于程序开发者提高并行编程效率。实验表明,使用基于OpenMP的热点级并行化编译框架,可以提高实验程序20%的执行效率。