摘要
虽然线程级猜测(Thread Level Speculation,TLS)执行机制可以简化多线程编程模型接口,并能获得较高的性能加速,但其并行程序的开发仍然比较困难。面向一个高效的软件TLS模型HEUSPEC,研究了代码自动生成工具C2H的设计与实现方法。具体包括3部分内容:首先,为HEUSPEC设计简单的标注语句,标注出可并行段的一些特征;其次,提出将标注语句和可并行段转换为猜测线程函数的算法;最后,设计生成HEUSPEC并行代码的算法。该方法已在开源编译器Clang上实现。面向Rodinia,OmpScr等基准程序的测试结果表明,C2H能够将带有简单标注语句的串行C代码转换为HEUSPEC并行代码,且其性能与手工编写的HEUSPEC并行代码的性能十分接近。
Although thread level speculation(TLS)mechanism can simplify the interface of multi-thread programming model and achieve high performance speedup,the development of its parallel program is still a tough task.Oriented to an effective software TLS model HEUSPEC,the design and implementation of automatic code generator C2 H,which has three components.First,simple directives are designed for HEUSPEC,which indicates some key characteristics of parallel regions.Second,an algorithm is proposed to convert directives and parallel regions to speculative functions.At last,an algorithm is designed to generate HEUSPEC parallel codes.This method has been implemented on an open source compiler——Clang.Experimental results oriented to typical benchmarks from Rodinia and OmpSrc indicate that C2 H can convert serial C codes with simple directives to HEUSPEC parallel codes,and the performance of automatic-generated parallel codes is very close to the codes developed by programmers manually.
出处
《计算机科学》
CSCD
北大核心
2017年第11期114-119,共6页
Computer Science
基金
国家自然科学基金项目(61272143
61472431)资助