Print

可扩展的自动并行化编译系统Agassiz

论文摘要

随着并行计算机的大量涌现,如何开发并行程序以便充分有效利用并行计算机资源已成为非常重要但又十分困难的问题。在目前缺乏普遍接受的并行程序设计语言的情况下,自动并行化是解决这一问题的有效途径之一。所谓自动并行化编译技术就是指通过多种技术手段自动检测串行程序中潜在的并行性,并将串行程序转变为等价的高效并行程序的技术。由于并行化编译的研究依赖于实验性方法,而实验性方法往往会对并行化编译系统提出很多要求,这些要求需要有不同的技术来解决,如何将这些技术有效地集成,是开发并行化编译系统的关键。当今国际上3个比较有影响力的并行化编译系统(SUIF[1]、Polaris[2]、AFT[3])与理想的要求还存在差距。Polaris与AFT只能实现串行Fortran程序的并行化,SUIF虽然对串行Fortran与串行C都能进行并行化,但对Fortran的并行化是通过把Fortran转换成C完成的[1],这在一定程度上阻碍了某些并行性的发掘。而且要在这3个系统上支持新的语言或者实现新的并行优化算法是一件比较困难的事情,因此迫切需要一个具有良好可扩展性的自动并行化编译系统。Agassiz是一个可扩展的自动并行化编译系统,它可以把串行程序变换为并行程序,并为编译技术的研究提供了良好的平台。通过面向对象的设计,对多种语言的支持以及与后端编译器有效整合使得Agassiz一定程度上弥补了现有自动并行化编译系统通用性和可扩展性差的不足。

论文目录

  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 研究背景
  • 1.2 并行编译系统的发展
  • 1.2.1 向量化编译
  • 1.2.2 SMP上的并行化编译
  • 1.2.3 MPP上的并行化编译
  • 1.3 本文工作和全文结构
  • 第二章 并行化编译相关技术
  • 2.1 数据相关性分析
  • 2.2 过程间分析
  • 2.3 循环变换
  • 2.4 规约变量的识别
  • 2.5 数组私有化
  • 第三章 Agassiz的整体设计
  • 3.1 现有的一些自动并行化编译系统介绍
  • 3.1.1 AFT
  • 3.1.2 Polaris
  • 3.1.3 SUIF 2.0
  • 3.2 Agassiz的系统结构
  • 3.3 Agassiz的设计原则
  • 3.4 Agassiz的基本数据结构
  • 3.4.1 线性表结构
  • 3.4.2 树结构
  • 3.5 Agassiz的关键特性
  • 3.5.1 内存管理
  • 3.5.2 支持多种语言
  • 3.5.3 与后端编译器的有效整合
  • 3.5.4 支持源码-源码的转换
  • 3.5.5 并行分析和并行变化技术
  • 第四章 Agassiz IR的设计
  • 4.1 IR的设计原则
  • 4.2 现有的一些IR设计
  • 4.2.1 GCC的IR设计
  • 4.2.2 ICC的IR设计
  • 4.2.3 Polaris的IR设计
  • 4.2.4 AFT系统的IR设计
  • 4.2.5 SUIF1.0编译系统的IR设计
  • 4.2.6 SUIF2.0编译系统的IR设计
  • 4.3 Agassiz编译系统的IR设计
  • 4.3.1 IR在Agassiz编译系统中的地位
  • 4.3.2 Agassiz的中间表示形式
  • 4.3.3 IR的层次架构
  • 4.3.4 Agassiz IR的面向对象设计
  • 4.3.5 Agassiz IR提供的接口
  • 4.3.6 Agassiz IR内存映像的导出与导入
  • 4.4 Agassiz IR对并行分析和并行变换的支持
  • 第五章 总结
  • 参考文献
  • 致谢
  • 相关论文文献

    本文来源: https://www.lw50.cn/article/581455e1d8901f3e617e25d8.html