J4 ›› 2013, Vol. 35 ›› Issue (11): 14-21.
李艳华,张悠慧,王为,郑纬民
LI Yanhua,ZHANG Youhui,WANG Wei,ZHENG Weimin
摘要:
随着大规模片上多核处理器的发展,越来越多的核被集成到一个芯片上。一方面,总会有一些核处于空闲状态;另一方面,受功耗限制片上单核比较简单,导致单线程性能较弱。通过在片上多核处理器上支持推测多线程机制,可以利用空闲的片上资源来加速串行程序执行,提高单线程性能。决定推测多线程执行性能的一些额外开销,比如缓存缺失率上升、冲突检测开销、线程提交开销以及推测线程重新执行开销等,对片上多核处理器访存时延和核间通信时延非常敏感。传统的多线程调度算法因为没有考虑到推测多线程机制的特点,在用于推测多线程调度时效果不佳。提出的延时敏感的推测多线程调度算法,利用推测多线程在剖析、编译阶段产生的访存特性统计和实时访存记录,计算程序的数据重心,逐步将推测多线程调度到数据重心周围的相邻几个核中执行;同时,在推测线程调度过程中充分利用提交成功的线程和推测失败的线程留在缓存中的数据,提高缓存利用率。实验结果表明,推测多线程机制执行中,采用延时敏感的推测多线程调度策略相对于广泛采用的优先级调度策略能够取得平均16.8%的性能提升;相对于最近提出的基于非一致性数据访问优化的集群线程调度策略能够取得平均10.1%的性能提升。