The Prepare HPF Programming Environment

A. Veen
{"title":"The Prepare HPF Programming Environment","authors":"A. Veen","doi":"10.1109/M-PDT.1994.329808","DOIUrl":null,"url":null,"abstract":"The European Prepare consortium has constructed an integrated programming environment to develop, analyze, and restructure HPF programs. The consortium consists of three industrial and six academic partners and is coordinated by ACE, Europe’s leading compiler manufacturer. It represents most of Europe’s expertise in automatic parallelization for distributed-memory computers, making directly available, for instance, the experience gained during the development of the Vienna Fortran Compilation System. The Prepare environment is based on three tightly integrated components. A parallelization engine transforms the source program’s original data-parallel form into SPMD form. An interactive engine reports to the programmer the extent to which the system can parallelize the program, indicates the obstacles preventing parallelization, facilitates the removal of such obstacles, and provides performance measures. A compilation system generates highly optimized code that fully exploits the target platform’s intraprocessor parallelism. The Prepare project’s unique strength is the tight integration of these components. The interactive engine can access the internal representation of the compiler. The compiler and the parallelization engine use each other’s analysis information and mutually influence each other’s optimization decisions. This integration brings several advantages to the user. Interaction is much more natural, because the communication between the user and the system is always in terms of the original source program. The user does not have to be aware of the elaborate transformations performed by the compiler. Performance is much better, because the parallelizer, vectorizer, optimizer, and code generator all cooperate (rather than compete) to exploit the many performance-enhancing features that high-end massively parallel platforms provide. This is crucial because of the often complicated interaction between these features. Without special tools, this high level of integration is not compatible with the strong modularization required for software as complex as a parallelizing compiler. We adopted the Cosy compilation system developed in the Compare project. In Cosy, a large set of engines (concurrent tasks that each perform one algorithm) access a shared internal representation of the program, gradually transforming it and enriching it with analysis information. Compiling phases do not have to be ordered linearly, which is a great advantage for a compiler that combines vectorization, parallelization, and sophisticated optimizations. Another advantage is that on a (shared-memory) parallel host the engines work in parallel. We have found that the HPF subset is well designed, except for some loose ends concerning subprogram interfaces and the relation between multiple PROCESSOR directives. We question the usefulness of explicit dynamic distributions. T o our surprise, much of the complexity of compiling HPF stems from its Fortran 90 base. For instance, features like assumed-shape arrays require an elaborate system of runtime descriptors and sophisticated analysis to recognize the cases where they can be omitted. Such requirements permeate all aspects of distributed array support. Environment","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Parallel & Distributed Technology: Systems & Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/M-PDT.1994.329808","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

The European Prepare consortium has constructed an integrated programming environment to develop, analyze, and restructure HPF programs. The consortium consists of three industrial and six academic partners and is coordinated by ACE, Europe’s leading compiler manufacturer. It represents most of Europe’s expertise in automatic parallelization for distributed-memory computers, making directly available, for instance, the experience gained during the development of the Vienna Fortran Compilation System. The Prepare environment is based on three tightly integrated components. A parallelization engine transforms the source program’s original data-parallel form into SPMD form. An interactive engine reports to the programmer the extent to which the system can parallelize the program, indicates the obstacles preventing parallelization, facilitates the removal of such obstacles, and provides performance measures. A compilation system generates highly optimized code that fully exploits the target platform’s intraprocessor parallelism. The Prepare project’s unique strength is the tight integration of these components. The interactive engine can access the internal representation of the compiler. The compiler and the parallelization engine use each other’s analysis information and mutually influence each other’s optimization decisions. This integration brings several advantages to the user. Interaction is much more natural, because the communication between the user and the system is always in terms of the original source program. The user does not have to be aware of the elaborate transformations performed by the compiler. Performance is much better, because the parallelizer, vectorizer, optimizer, and code generator all cooperate (rather than compete) to exploit the many performance-enhancing features that high-end massively parallel platforms provide. This is crucial because of the often complicated interaction between these features. Without special tools, this high level of integration is not compatible with the strong modularization required for software as complex as a parallelizing compiler. We adopted the Cosy compilation system developed in the Compare project. In Cosy, a large set of engines (concurrent tasks that each perform one algorithm) access a shared internal representation of the program, gradually transforming it and enriching it with analysis information. Compiling phases do not have to be ordered linearly, which is a great advantage for a compiler that combines vectorization, parallelization, and sophisticated optimizations. Another advantage is that on a (shared-memory) parallel host the engines work in parallel. We have found that the HPF subset is well designed, except for some loose ends concerning subprogram interfaces and the relation between multiple PROCESSOR directives. We question the usefulness of explicit dynamic distributions. T o our surprise, much of the complexity of compiling HPF stems from its Fortran 90 base. For instance, features like assumed-shape arrays require an elaborate system of runtime descriptors and sophisticated analysis to recognize the cases where they can be omitted. Such requirements permeate all aspects of distributed array support. Environment
准备HPF编程环境
欧洲Prepare联盟已经构建了一个集成的编程环境来开发、分析和重构HPF程序。该联盟由三个工业伙伴和六个学术伙伴组成,由欧洲领先的编译器制造商ACE协调。它代表了欧洲在分布式内存计算机的自动并行化方面的大多数专业知识,例如,在开发维也纳Fortran编译系统期间获得的经验可以直接使用。Prepare环境基于三个紧密集成的组件。并行化引擎将源程序的原始数据并行形式转换为SPMD形式。交互引擎向程序员报告系统可以并行化程序的程度,指出阻碍并行化的障碍,促进消除这些障碍,并提供性能度量。编译系统生成高度优化的代码,充分利用目标平台的处理器内并行性。Prepare项目的独特优势在于这些组件的紧密集成。交互式引擎可以访问编译器的内部表示。编译器和并行化引擎使用彼此的分析信息,并相互影响彼此的优化决策。这种集成为用户带来了几个好处。交互更加自然,因为用户和系统之间的通信总是基于原始源程序。用户不必知道编译器执行的复杂转换。性能要好得多,因为并行化器、矢量化器、优化器和代码生成器都在合作(而不是竞争),以利用高端大规模并行平台提供的许多性能增强特性。这是至关重要的,因为这些功能之间的交互通常很复杂。如果没有特殊的工具,这种高水平的集成与像并行编译器这样复杂的软件所需的强模块化是不兼容的。我们采用了Compare项目中开发的Cosy编译系统。在Cosy中,一大组引擎(每个执行一种算法的并发任务)访问程序的共享内部表示,逐渐转换它,并用分析信息丰富它。编译阶段不必线性排序,这对于结合了向量化、并行化和复杂优化的编译器来说是一个很大的优势。另一个优点是,在(共享内存)并行主机上,引擎是并行工作的。我们发现HPF子集设计得很好,除了一些关于子程序接口和多个PROCESSOR指令之间关系的松散部分。我们质疑显式动态分布的有用性。令我们惊讶的是,编译HPF的复杂性很大程度上源于它的Fortran 90基础。例如,像假设形状数组这样的特性需要一个复杂的运行时描述符系统和复杂的分析来识别可以忽略它们的情况。这样的需求渗透到分布式数组支持的各个方面。环境
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信