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