论文部分内容阅读
目前市场上的计算机多采用多核多处理器结构,然而软件技术的研究远远落后于硬件技术的发展,多数程序员还不能掌握并行程序的开发技术,传统应用程序无法利用多核多处理器的卓越计算能力。串行程序并行化技术使串行程序可以被分成可执行的并行程序段,分配到不同的处理器上执行,从而充分发挥多核多处理器的强大计算能力。但传统的并行计算技术将注意力集中在对依赖关系的处理上,在此基础上开发了很多并行化算法和并行化编译器,但由于依赖关系形式多样,所以各类算法复杂且不易实现,影响了并行计算技术的发展。研究表明,程序如果有一些特定的共同特征就可以采用相同或类似的并行化方案。所以本题目不像传统方式那样对串行程序进行各种依赖关系的识别和处理以消除依赖达到可并行化的程度,而是借鉴串行程序中设计模式的思想,提出并行化模式的概念,将串行程序的并行化方案进行分类,形成模式,建立一个知识库存储各种并行化模式,其中并行化模式包含应用程序特征及其相应的并行化方案,在此基础上开发一个并行编译器,该编译器服务对象为多核多处理器计算机,它利用词法和语法分析提取串行程序特征,并利用CBR(基于案例推理)技术从知识库中获取并行化方案,然后自动产生并行程序的框架结构,从而减轻程序员编写并行程序的负担,同时可以利用并行计算发展至今积累的宝贵资源,达到代码复用的目的。知识库还具有学习能力,可以不断增加新的案例,以适应各类新问题的出现,并提高串行程序解决方案的准确度。该编译器的输入为普通应用程序,输出为对应的并行化解决方案,不局限于传统的处理规则数据结构的科学计算程序,而是将服务范围扩大为处理非规则数据结构的普通应用程序,能极大提高软件对于多核多处理器计算机的利用率