Тип публикации: статья из журнала
Год издания: 2021
Идентификатор DOI: 10.3103/S0146411621070105
Ключевые слова: parallel computations, asynchronous computations, static typing, dynamically changing parallelism
Аннотация: A statically typed version of the data driven functional parallel computing model is proposed. It enables a representation of dynamically changing parallelism by means of asynchronous sequential data flows. We consider the features of the syntax and semantics of the statically typed data driven functional parallel programming languПоказать полностьюage Smile, that supports asynchronous sequential flows. Our main idea is to apply the Hoar concept of communicating sequential processes to the computation control on data readiness. It is assumed that on data readiness a control signal is emitted to inform the processes about the occurrence of certain events. The special feature of our approach is that the model is extended with special asynchronous containers that can generate events on their partial filling. These containers are a stream and a swarm, each of which has its own specifics. A stream is used to process data which have identical type. The data comes sequentially and asynchronously at arbitrary time moments. The number of the coming data elements is initially unknown, so the processing completes on the signal of the end of the stream. A swarm is used to contain independent data of same type and may be used for massive parallel operations performing. Unlike a stream, swarm's size is fixed and known in advance. General principles of operations with asynchronous sequential flows with arbitrary order of data coming are described. The use of streams and swarms in various situations is considered. We propose language constructs which allow operating swarms and streams and describing the specifics of their application. We provide sample functions to illustrate the use of different approaches to describing the parallelism: recursive processing of asynchronous flows, processing of flows in an arbitrary or predefined order of operations, direct access and access by reference to elements of streams and swarms, pipelining of calculations. We give a preliminary parallelism assessment which depends on the ratio of the rates of data coming and their processing. The proposed methods can be used in the development of the future languages and toolkits of architecture-independent parallel programming. Abstract: A statically typed version of the data driven functional parallel computing model is proposed. It enables a representation of dynamically changing parallelism by means of asynchronous sequential data flows. We consider the features of the syntax and semantics of the statically typed data driven functional parallel programming language Smile, that supports asynchronous sequential flows. Our main idea is to apply the Hoar concept of communicating sequential processes to the computation control on data readiness. It is assumed that on data readiness a control signal is emitted to inform the processes about the occurrence of certain events. The special feature of our approach is that the model is extended with special asynchronous containers that can generate events on their partial filling. These containers are a stream and a swarm, each of which has its own specifics. A stream is used to process data which have identical type. The data comes sequentially and asynchronously at arbitrary time moments. The number of the coming data elements is initially unknown, so the processing completes on the signal of the end of the stream. A swarm is used to contain independent data of same type and may be used for massive parallel operations performing. Unlike a stream, swarm’s size is fixed and known in advance. General principles of operations with asynchronous sequential flows with arbitrary order of data coming are described. The use of streams and swarms in various situations is considered. We propose language constructs which allow operating swarms and streams and describing the specifics of their application. We provide sample functions to illustrate the use of different approaches to describing the parallelism: recursive processing of asynchronous flows, processing of flows in an arbitrary or predefined order of operations, direct access and access by reference to elements of streams and swarms, pipelining of calculations. We give a preliminary parallelism assessment which depends on the ratio of the rates of data coming and their processing. The proposed methods can be used in the development of the future languages and toolkits of architecture-independent parallel programming. © 2021, Allerton Press, Inc.
Журнал: AUTOMATIC CONTROL AND COMPUTER SCIENCES
Выпуск журнала: Vol. 55, Is. 7
Номера страниц: 636-646
ISSN журнала: 01464116
Место издания: NEW YORK
Издатель: PLEIADES PUBLISHING INC