论文部分内容阅读
片上多核已经成为当今处理器设计的主流。在多核时代,为了将不断增长的片上资源转变为程序性能提升,必须充分利用其硬件多线程并行执行的优势。但是,并行程序的设计是困难的,设计不好的并行程序将不能有效利用硬件资源。从最初的串行算法到可以充分发挥硬件平台优势的高效的并行程序是一个不断调优的过程,必须从理解程序的算法行为和硬件行为两方面入手。PMU(Performance Monitoring Unit),即现代处理器里集成的微体系事件性能计数器,使得在以极小的额外开销和极少的对目标程序的干扰的情况下在线记录程序运行时的微体系事件特征成为可能。基于PMU,我们在Linux系统中实现SMART(Sampling Monitoring Analyzing and ReTuning)性能调优工具;其功能包括(1)支持全系统范围或者针对特定进程以事件直接计数或者抽样的方法采集程序运行时的硬件行为特征数据,(2)借助编译技术,将采集到的性能事件数据与程序代码位置对应起来,(3)以命令行或图形窗口形式提供用户界面。本文的工作作为SMART项目的一部分,主要工作和成果包括以下几个方面。(1)设计了SAMRT的整体技术方案,划分并定义了SMART软件的功能模块;将其分为运行于用户层的前端与内核态的后端,前者负责数据后期处理与显示,后者负责底层数据采集。其中,后端进一步细分为以系统调用方式提供底层控制的Pview内核核心扩展和负责大规模数据抽样的PEngine驱动模块。(2)对SMART的实现原理进行了探讨,总结业内同类工具的工作机制,制定了SMART的技术策略。(3)实现了SMART后端中的Pview内核核心扩展部分;在内核核心中,为进程扩展了用于记录性能事件数据的pview上下文,提供了针对特定进程性能监测需要的进程控制机制,实现了一个新的系统调用pview。其中,许多技术是同类工作中首次采用的。