Structured development of parallel programs

M. Paprzycki
{"title":"Structured development of parallel programs","authors":"M. Paprzycki","doi":"10.1109/MCC.1999.806989","DOIUrl":null,"url":null,"abstract":"IEEE Concurrency Structured Development of Parallel Programs presents a structured programming methodology for parallel computations that ensures portability, programmability, and good performance. The book’s ultimate goal is to develop a suitable programming language for parallel programming and its compiler. This language is meant to deliver typical parallel constructs (skeletons) and their realizations (templates) on various architectures. The book’s first half presents a critical analysis of the state of the art of parallel software development. It also closely examines several existing approaches to parallel programming, concluding that template-based systems are the best compromise. In this approach, the programmer selects skeletons and their conversion rules, then uses them to build a program. Its performance might not match that of a lowlevel graph-based approach, but it is predictable and easily ensures programmability and portability. The book’s second half describes the P3L template-based methodology and its realization as the P3L language and its compiler, offering application examples. The author maintains that the template-based system gives rise to accurate performance models for the skeletons library designer as well as for the programmer. The technical and mapping details are left to the skeleton library designer, who can fully exploit specific properties of particular skeletons. The P3L methodology incorporates a small set of basic skeletons and their combination rules. Skeleton selection is based on the analysis of existing approaches. The skeletons reflect typical constructs that parallel program designers use. The P3L methodology might be a good starting point for developing efficient highlevel languages for parallel programming. It suggests how to ensure compromise between performance and portability and programmability. In any case, we should not treat it as something closed and finally established— high-level parallel programming languages continue to develop and improve. Such high-level languages would let the programmer concentrate less on the details of the machine’s architecture and more on the algorithm’s design. The lack of high-level languages is one of the major obstacles hampering large, complex software projects and the development of computational algorithms. Currently, the progress of these languages is severely delayed compared to the pure parallel hardware performance. An efficient, high-level language for parallel programming available on computers with parallel processors and on clusters of machines used for distributed computations would be an important tool for people developing general theoretical and application-oriented algorithms. This book should interest people working on parallel algorithms, but, more importantly, it should interest researchers and software engineers developing languages for parallel computations. It might also be of interest to both undergraduate and graduate computer science students because it does not require any special background. It can supplement material for courses devoted to programming languages and compilation techniques, especially for high-level parallel programming. Book Reviews","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"9 2","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"83","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Concurr.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MCC.1999.806989","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 83

Abstract

IEEE Concurrency Structured Development of Parallel Programs presents a structured programming methodology for parallel computations that ensures portability, programmability, and good performance. The book’s ultimate goal is to develop a suitable programming language for parallel programming and its compiler. This language is meant to deliver typical parallel constructs (skeletons) and their realizations (templates) on various architectures. The book’s first half presents a critical analysis of the state of the art of parallel software development. It also closely examines several existing approaches to parallel programming, concluding that template-based systems are the best compromise. In this approach, the programmer selects skeletons and their conversion rules, then uses them to build a program. Its performance might not match that of a lowlevel graph-based approach, but it is predictable and easily ensures programmability and portability. The book’s second half describes the P3L template-based methodology and its realization as the P3L language and its compiler, offering application examples. The author maintains that the template-based system gives rise to accurate performance models for the skeletons library designer as well as for the programmer. The technical and mapping details are left to the skeleton library designer, who can fully exploit specific properties of particular skeletons. The P3L methodology incorporates a small set of basic skeletons and their combination rules. Skeleton selection is based on the analysis of existing approaches. The skeletons reflect typical constructs that parallel program designers use. The P3L methodology might be a good starting point for developing efficient highlevel languages for parallel programming. It suggests how to ensure compromise between performance and portability and programmability. In any case, we should not treat it as something closed and finally established— high-level parallel programming languages continue to develop and improve. Such high-level languages would let the programmer concentrate less on the details of the machine’s architecture and more on the algorithm’s design. The lack of high-level languages is one of the major obstacles hampering large, complex software projects and the development of computational algorithms. Currently, the progress of these languages is severely delayed compared to the pure parallel hardware performance. An efficient, high-level language for parallel programming available on computers with parallel processors and on clusters of machines used for distributed computations would be an important tool for people developing general theoretical and application-oriented algorithms. This book should interest people working on parallel algorithms, but, more importantly, it should interest researchers and software engineers developing languages for parallel computations. It might also be of interest to both undergraduate and graduate computer science students because it does not require any special background. It can supplement material for courses devoted to programming languages and compilation techniques, especially for high-level parallel programming. Book Reviews
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
并行程序的结构化开发
IEEE并行程序的并发结构化开发为并行计算提供了一种结构化的编程方法,确保了可移植性、可编程性和良好的性能。本书的最终目标是开发一种适合并行编程及其编译器的编程语言。这种语言旨在在各种体系结构上提供典型的并行结构(骨架)及其实现(模板)。本书的前半部分对并行软件开发技术的现状进行了批判性的分析。本文还仔细研究了几种现有的并行编程方法,得出结论认为基于模板的系统是最好的折衷方案。在这种方法中,程序员选择骨架及其转换规则,然后使用它们构建程序。它的性能可能比不上低级的基于图的方法,但它是可预测的,并且很容易确保可编程性和可移植性。本书的后半部分描述了基于P3L模板的方法及其作为P3L语言及其编译器的实现,并提供了应用示例。作者认为,基于模板的系统为skeleton库设计人员和程序员提供了准确的性能模型。技术和映射细节留给骨架库设计师,他们可以充分利用特定骨架的特定属性。P3L方法包含一组基本框架及其组合规则。骨架选择是在分析现有方法的基础上进行的。框架反映了并行程序设计者使用的典型结构。P3L方法可能是为并行编程开发高效高级语言的良好起点。它建议如何在性能、可移植性和可编程性之间做出妥协。在任何情况下,我们都不应该把它当作某种封闭的、最终确立的东西——高级并行编程语言还在继续发展和改进。这样的高级语言可以让程序员更少地关注机器架构的细节,而更多地关注算法的设计。缺乏高级语言是阻碍大型复杂软件项目和计算算法发展的主要障碍之一。目前,与纯并行硬件性能相比,这些语言的进展严重滞后。对于具有并行处理器的计算机和用于分布式计算的机器集群来说,一种高效的高级并行编程语言将是开发通用理论和面向应用的算法的重要工具。这本书应该引起从事并行算法工作的人的兴趣,但更重要的是,它应该引起开发并行计算语言的研究人员和软件工程师的兴趣。它可能也会引起计算机科学专业本科生和研究生的兴趣,因为它不需要任何特殊背景。它可以作为编程语言和编译技术课程的补充材料,特别是高级并行编程课程。书评
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Embedded systems C++ exception handling Wisconsin Wind Tunnel II: a fast, portable parallel architecture simulator A Java kernel for embedded systems in distributed process control Network computers: the changing face of computing
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1