Control flow graphs optimization in intermediate representations of the functional dataflow parallel programming language

V. Vasilev, A. Legalov
{"title":"Control flow graphs optimization in intermediate representations of the functional dataflow parallel programming language","authors":"V. Vasilev, A. Legalov","doi":"10.17212/1814-1196-2020-4-37-46","DOIUrl":null,"url":null,"abstract":"Functional dataflow programming languages are intended for the development of architecture-independent parallel programs and support the control of computations based on data availability. Due to the fact that at present parallel computing systems are very widespread, and their programming in imperative languages is associated with portability problems, the development of architecturally independent parallel programming tools is an urgent task. When such a program is translated, intermediate representations are formed as the information graph and the corresponding control graph. During program execution, data readiness signals are transmitted along the arcs of the control graph. An explicit selection of the control graph allows us not only to change the computational control strategies and ensure the adaptation of the program to the architecture features, but also to apply specific methods for optimizing control dependencies. The paper proposes transformation methods that provide optimization of the control graph. When generating a control graph from an informational one, redundant arcs are introduced into it, the removal of which does not affect the result of the program, but leads to its more efficient execution. It is shown that in dataflow programs, in addition to control dependencies inherent in other programming languages, additional ones associated with the implementation features of deferred or conditional computations described by delayed lists arise. A formal description of redundant dependencies of various types is given, as well as an effective algorithm for their identification. The developed approach can be applied to such dataflow programming languages as PIFAGOR and Smile.","PeriodicalId":214095,"journal":{"name":"Science Bulletin of the Novosibirsk State Technical University","volume":"599 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-12-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Science Bulletin of the Novosibirsk State Technical University","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.17212/1814-1196-2020-4-37-46","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Functional dataflow programming languages are intended for the development of architecture-independent parallel programs and support the control of computations based on data availability. Due to the fact that at present parallel computing systems are very widespread, and their programming in imperative languages is associated with portability problems, the development of architecturally independent parallel programming tools is an urgent task. When such a program is translated, intermediate representations are formed as the information graph and the corresponding control graph. During program execution, data readiness signals are transmitted along the arcs of the control graph. An explicit selection of the control graph allows us not only to change the computational control strategies and ensure the adaptation of the program to the architecture features, but also to apply specific methods for optimizing control dependencies. The paper proposes transformation methods that provide optimization of the control graph. When generating a control graph from an informational one, redundant arcs are introduced into it, the removal of which does not affect the result of the program, but leads to its more efficient execution. It is shown that in dataflow programs, in addition to control dependencies inherent in other programming languages, additional ones associated with the implementation features of deferred or conditional computations described by delayed lists arise. A formal description of redundant dependencies of various types is given, as well as an effective algorithm for their identification. The developed approach can be applied to such dataflow programming languages as PIFAGOR and Smile.
控制流图优化中间表示的函数式数据流并行编程语言
函数式数据流编程语言旨在开发与体系结构无关的并行程序,并支持基于数据可用性的计算控制。由于目前并行计算系统的广泛应用,而命令式语言的编程与可移植性问题有关,因此开发与体系结构无关的并行编程工具是一项紧迫的任务。当这样的程序被翻译时,中间表示被形成为信息图和相应的控制图。在程序执行期间,数据准备信号沿着控制图的弧线传输。控制图的显式选择不仅允许我们改变计算控制策略并确保程序适应体系结构特征,而且还允许我们应用特定的方法来优化控制依赖关系。本文提出了提供控制图优化的转换方法。从信息控制图生成控制图时,引入冗余弧线,删除冗余弧线不会影响程序的结果,但会提高程序的执行效率。结果表明,在数据流程序中,除了其他编程语言中固有的控制依赖关系外,还出现了与延迟列表描述的延迟或条件计算的实现特性相关的其他依赖关系。给出了各种冗余依赖的形式化描述,并给出了一种有效的冗余依赖识别算法。该方法可应用于PIFAGOR和Smile等数据流编程语言。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信