Loading…

Transformation of Functional Dataflow Parallel Programs into Imperative Programs

The functional dataflow paradigm of parallel programming is focused on the development of parallel portable programs. The source code of functional dataflow programs is translated into a set of graphs reflecting information and control dependences. The main method of their execution is interpretatio...

Full description

Saved in:
Bibliographic Details
Published in:Automatic control and computer sciences 2022-12, Vol.56 (7), p.815-827
Main Authors: Vasilev, V. S., Legalov, A. I., Zykov, S. V.
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:The functional dataflow paradigm of parallel programming is focused on the development of parallel portable programs. The source code of functional dataflow programs is translated into a set of graphs reflecting information and control dependences. The main method of their execution is interpretation, which makes it impossible to perform calculations efficiently on real parallel computing systems and leads to poor performance. In order to run programs directly on existing computing systems, specific optimization and transformation methods that take the features of both the programming language and the system architecture into account are necessary. At present, the von Neumann architecture is the most widespread type. Parallel programming for it is mostly performed using languages that support imperative paradigms and are oriented on the static type system. For different architectures of parallel computing systems, there are various approaches to writing parallel programs. The transformation of functional dataflow parallel programs into imperative programs makes it possible to form a general framework of imperative code fragments that directly represent sequential computations, which can then be adapted to a particular parallel architecture. This article discusses an approach to performing this type of transformation, which consists in extracting fragments of functional dataflow parallel programs as patterns that are subsequently replaced by equivalent imperative language fragments. The proposed transformation methods make it possible to generate source code to which various optimizing transformations, including parallelization with respect to the target architecture, can later be applied.
ISSN:0146-4116
1558-108X
DOI:10.3103/S0146411622070239