论文部分内容阅读
多核已成为处理器设计的主流技术,目前的应用软件要想获得性能的大幅度提升实施并行化是一个最有效的手段之一,并行编程自然成了程序开发人员不得不面对的问题。由于目前遗产代码的数量非常巨大,而程序员又不希望完全重写代码,提供一个并行编程工具来进行并行化可以大大的减少开发的周期。经过几十年的研究成果表明,自动并行化技术的应用范围非常有限,主要集中在高性能数值计算领域,目前大量非数值计算的应用迫切需要并行化。传统的并行编程模型并不能很好的满足这些应用的需求。手工并行化虽然性能提升的很高,但需要程序开发人员对并行化技术有非常深刻的分析和理解。除此之外,改写代码的工作量是非常巨大的。因此,开发新的编程模型和可视化的交互式并行编程环境,对迎接多核并行编程的挑战具有非常高的研究价值和现实意义。本文提出了一种新的基于语法制导的并行编程模型,只需要添加少量语法制导语句,改写的串行代码即可完成程序的并行化;基于此模型利用Eclipse插件技术、GEF、MVC框架等技术实现了一个可视化交互式并行编程系统CAP。它利用编译器构建依赖图,向程序开发人员提供优化建议及采用语法制导的方式来执行复杂的串行程序的结构化代码转换,同时,又与程序开发人员实时交互,根据开发者的经验和分析,手工的删除无效的依赖边,修改变量存储属性等操作,从而大幅度的提高并行化改写的产能效率。实验表明本文提出的编程模型只需对源程序进行非常少量的代码改写,即可在多核处理器上实现大幅度的性能提升。可视化交互式并行编程系统提供友好的交互机制,增强了人机交互,为结构化的并行程序改写提供了一个良好的工具。本文的主要创新和贡献如下:1.提出一个面向多核处理器的并行编程模型:该并行化编程模型采用对现有编程语言进行扩展的方式,通过添加非常少量的编译制导和提供相应的编译器来方便完成对串行遗产代码的并行化改造。为了避免出现原子性违反和数据冲突等并发错误,本文提出的并行化编程模型采用确定性的并发任务执行模式,并以具有强地址隔离性的进程作为实现基础;将程序中的变量分为共享变量和私有变量两大类属性,变量默认是私有属性。2.设计并实现了一个交互式并行编程环境图形用户界面。该工具提供友好的交互机制,用户利用编译器提供的各种分析信息,并结合自身的经验和智慧有效管理代码的并行化的流程。