<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.18255/1818-1015-2020-2-164-179</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-1323</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Theory of Computing</subject></subj-group></article-categories><title-group><article-title>Динамически изменяющийся параллелизм с асинхронно-последовательными потоками данных</article-title><trans-title-group xml:lang="en"><trans-title>Dynamically Changing Parallelism with the Asynchronous Sequential Data Flows</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-5487-0699</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Легалов</surname><given-names>Александр Иванович</given-names></name><name name-style="western" xml:lang="en"><surname>Legalov</surname><given-names>Alexander I.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Руководитель научно-учебной лаборатории технологий программирования, профессор кафедры вычислительной техники, доктор технических наук, профессор</p><p>660041, Красноярский край, г. Красноярск, пр. Свободный, 79</p></bio><bio xml:lang="en"><p>Head of the scientific and educational laboratory of programming technologies, professor of the department of computer engineering, doctor of technical sciences, professor</p><p>79 Svobodny pr., 660041 Krasnoyarsk</p></bio><email xlink:type="simple">legalov@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4801-7982</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Матковский</surname><given-names>Иван Васильевич</given-names></name><name name-style="western" xml:lang="en"><surname>Matkovskii</surname><given-names>Ivan V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Старший преподаватель</p><p> 660041, Красноярский край, г. Красноярск, пр. Свободный, 79</p></bio><bio xml:lang="en"><p>Senior teacher</p><p>79 Svobodny pr., 660041 Krasnoyarsk</p></bio><email xlink:type="simple">alpha900i@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-4234-2714</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Ушакова</surname><given-names>Мария Сергеевна</given-names></name><name name-style="western" xml:lang="en"><surname>Ushakova</surname><given-names>Mariya S.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Ассистент кафедры вычислительной техники</p><p>660041, Красноярский край, г. Красноярск, пр. Свободный, 79</p></bio><bio xml:lang="en"><p>Assistent of the department of computer engineering</p><p>79 Svobodny pr., 660041 Krasnoyarsk</p></bio><email xlink:type="simple">ksv@akadem.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-9020-4802</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Романова</surname><given-names>Дарья Сергеевна</given-names></name><name name-style="western" xml:lang="en"><surname>Romanova</surname><given-names>Darya S.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Аспирант</p><p>660041, Красноярский край, г. Красноярск, пр. Свободный, 79</p></bio><bio xml:lang="en"><p>Graduate student</p><p>79 Svobodny pr., 660041 Krasnoyarsk</p></bio><email xlink:type="simple">daryaooo@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Сибирский федеральный университет</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Siberian Federal University</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2020</year></pub-date><pub-date pub-type="epub"><day>24</day><month>06</month><year>2020</year></pub-date><volume>27</volume><issue>2</issue><fpage>164</fpage><lpage>179</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Легалов А.И., Матковский И.В., Ушакова М.С., Романова Д.С., 2020</copyright-statement><copyright-year>2020</copyright-year><copyright-holder xml:lang="ru">Легалов А.И., Матковский И.В., Ушакова М.С., Романова Д.С.</copyright-holder><copyright-holder xml:lang="en">Legalov A.I., Matkovskii I.V., Ushakova M.S., Romanova D.S.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/1323">https://www.mais-journal.ru/jour/article/view/1323</self-uri><abstract><p>Предлагается статически типизированная версия модели функционально-потоковых параллельных вычислений, которая за счет использования асинхронных последовательных потоков обеспечивает представление динамически изменяющегося параллелизма. Рассмотрены особенности синтаксиса и семантики статически типизированного языка функционально-потокового параллельного программирования Smile, обеспечивающие поддержку асинхронных последовательных потоков. Основная идея подхода базируется на использовании концепции взаимодействующих последовательных процессов Т. Хоара применительно к управлению по готовности данных. Предполагается, что готовность данных сопровождается выдачей управляющих сигналов, информирующих процессы о свершении тех или иных событий. Отличительной особенностью подхода является включение в модель специальных асинхронных контейнеров, которые могут порождать события по частичному заполнению. Этими контейнерами являются поток и рой, каждый из которых имеет свою специфику. Поток используется для обработки данных одного типа, поступающих последовательно и асинхронно в произвольные промежутки времени. Размерность поступающих данных изначально неизвестна, поэтому завершение обработки осуществляется по признаку конца потока. Рой используется для описания независимых данных одного типа, над которыми возможно выполнение массовых параллельных операций. В отличие от потока, его размерность фиксирована и известна заранее. В работе описаны общие принципы организации асинхронных последовательных потоков с произвольным поступлением данных. Рассматривается использование потоков и роев в различных ситуациях. Предлагаются языковые конструкции, позволяющие описывать работу с роями и потоками и особенности их применения. Представлены примеры функций, при реализации которых использованы различные подходы к описанию параллелизма: рекурсивная обработка асинхронных потоков, обработка потоков при недетерминированном и упорядоченном выполнении операций, прямое и ссылочное обращение к элементам потоков и роев, конвейеризация вычислений. Дается предварительная оценка параллелизма в зависимости от временных соотношений между темпом поступления данных и скоростью их обработки. Предложенные методы могут быть использованы при разработке перспективных языковых и инструментальных средств архитектурно-независимого параллельного программирования.</p></abstract><trans-abstract xml:lang="en"><p>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 serial 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 the data readiness. It is assumed that on the 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 the 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 incoming 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 the same type and may be used for the massive parallel operations performing. Unlike a stream, the swarm’s size is fixed and known in advance. General principles of the operations with the asynchronous sequential flows with an arbitrary order of data arrival are described. The use of the streams and the swarms in various situations is considered. We propose the language constructions which allow us to operate the swarms and streams and describe the specifics of their application. We provide the sample functions to illustrate the use of the different approaches to description of the parallelism: recursive processing of the asynchronous flows, processing of the flows in an arbitrary or predefined order of operations, direct access and access by the reference to the elements of the streams and swarms, pipelining of calculations. We give a preliminary parallelism assessment which depends on the ratio of the rates of data arrival and their processing. The proposed methods can be used in the development of the future languages and tool-kits of architecture-independent parallel programming.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>параллельные вычисления</kwd><kwd>асинхронные вычисления</kwd><kwd>статическая типизация</kwd><kwd>динамически изменяющийся параллелизм</kwd></kwd-group><kwd-group xml:lang="en"><kwd>parallel computations</kwd><kwd>asynchronous computations</kwd><kwd>static typing</kwd><kwd>dynamically changing parallelism</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">A. I. Legalov, “The Usage of Asynchronous Lists within the Dataflow Model of Computations”, in The Third Siberian School Seminar on Parallel Computations, In Russian, 2006, pp. 113–120.</mixed-citation><mixed-citation xml:lang="en">A. I. Legalov, “The Usage of Asynchronous Lists within the Dataflow Model of Computations”, in The Third Siberian School Seminar on Parallel Computations, In Russian, 2006, pp. 113–120.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">C. A. R. Hoar, Communicating Sequential Processes, 8. Communications of the ACM, 1978, vol. 21, pp. 666–677.</mixed-citation><mixed-citation xml:lang="en">C. A. R. Hoar, Communicating Sequential Processes, 8. Communications of the ACM, 1978, vol. 21, pp. 666–677.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">M. Diaz, Petri Nets: Fundamental Models, Verification and Applications. UK: ISTE Ltd, 2009.</mixed-citation><mixed-citation xml:lang="en">M. Diaz, Petri Nets: Fundamental Models, Verification and Applications. UK: ISTE Ltd, 2009.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">A. I. Legalov, “About Computation Control in Parallel System and Programming Languages”, Nauchiy Vestnik NGTU, vol. 18, no. 3, pp. 63–72, 2004, In Russian.</mixed-citation><mixed-citation xml:lang="en">A. I. Legalov, “About Computation Control in Parallel System and Programming Languages”, Nauchiy Vestnik NGTU, vol. 18, no. 3, pp. 63–72, 2004, In Russian.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">A. I. Legalov, V. S. Vasiliev, and I. V. Matkovsky, “Changing Computing Management Strategies for Architecture-Independent Parallel Programming”, in Proceedings of the XIX All-Russian Scientific Conference “Scientific Service on the Internet”, In Russian, 2017, pp. 341–350.</mixed-citation><mixed-citation xml:lang="en">A. I. Legalov, V. S. Vasiliev, and I. V. Matkovsky, “Changing Computing Management Strategies for Architecture-Independent Parallel Programming”, in Proceedings of the XIX All-Russian Scientific Conference “Scientific Service on the Internet”, In Russian, 2017, pp. 341–350.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">A. V. Redkin and A. I. Legalov, “Event Based Control of Computations for Functional Dataflow Programming”, Scientific Bulletin of Novosibirsk State Technical University, vol. 32, no. 3, pp. 111–120, 2008, In Russian.</mixed-citation><mixed-citation xml:lang="en">A. V. Redkin and A. I. Legalov, “Event Based Control of Computations for Functional Dataflow Programming”, Scientific Bulletin of Novosibirsk State Technical University, vol. 32, no. 3, pp. 111–120, 2008, In Russian.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">A. I. Legalov, A. V. Redkin, and I. V. Matkovsky, “Data Driven Functional Parallel Programming with Data Coming Asynchronously”, in Parallel Computing Technologiws (PCT’2009), In Russian, 2009, pp. 573–578.</mixed-citation><mixed-citation xml:lang="en">A. I. Legalov, A. V. Redkin, and I. V. Matkovsky, “Data Driven Functional Parallel Programming with Data Coming Asynchronously”, in Parallel Computing Technologiws (PCT’2009), In Russian, 2009, pp. 573–578.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">A. I. Legalov, I. A. Legalov, and I. V. Matkovsky, “Specifics of Semantics of a Statically Typed Language of Functional and Dataflow Parallel Programming”, in Scientific Conference “Scientific Service on the Internet”, 2019, pp. 489–500.</mixed-citation><mixed-citation xml:lang="en">A. I. Legalov, I. A. Legalov, and I. V. Matkovsky, “Specifics of Semantics of a Statically Typed Language of Functional and Dataflow Parallel Programming”, in Scientific Conference “Scientific Service on the Internet”, 2019, pp. 489–500.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">A. I. Legalov, “Functional Language for Architecture-Independent Programming”, Computation technologies, vol. 10, no. 1, pp. 71–89, 2005, In Russian.</mixed-citation><mixed-citation xml:lang="en">A. I. Legalov, “Functional Language for Architecture-Independent Programming”, Computation technologies, vol. 10, no. 1, pp. 71–89, 2005, In Russian.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
