Formal and adaptive methods and software tools of parallel programming

A review of the results of the development of formal and adaptive methods and software, achieved in recent years in the Institute of Software Systems of the National Academy of Sciences of Ukraine, based on the algebra-algorith­mic approach and the technique of rewriting rules is given. The methods...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2018
Автори: Doroshenko, А.Yu., Beketov, O.G., Zhereb, K.A., Ivanenko, P.A., Ovdii, О.М., Shevchenko, R.S., Yatsenko, O.A.
Формат: Стаття
Мова:English
Опубліковано: Інститут програмних систем НАН України 2018
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/295
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-295
record_format ojs
resource_txt_mv ppisoftskievua/2c/daa9e21d95c4749cd8bf6b84ccc2ec2c.pdf
spelling pp_isofts_kiev_ua-article-2952024-04-28T11:48:07Z Formal and adaptive methods and software tools of parallel programming Формальные и адаптивные методы и инструментальные средства параллельного программирования Формальні та адаптивні методи й інструментальні засоби паралельного програмування Doroshenko, А.Yu. Beketov, O.G. Zhereb, K.A. Ivanenko, P.A. Ovdii, О.М. Shevchenko, R.S. Yatsenko, O.A. programming automation; algebra of algorithms; meteorological forecasting; parallel computation; rewriting rules technique UDC 004.4'24 автоматизация программирования; алгебра алгоритмов; метеорологическое прогнозирование; параллельные вычисления; техника переписывающих правил УДК 004.4'24 автоматизація програмування; алгебра алгоритмів; метеорологічне прогнозування; паралельні обчислення; техніка переписувальних правил УДК 004.4'24 A review of the results of the development of formal and adaptive methods and software, achieved in recent years in the Institute of Software Systems of the National Academy of Sciences of Ukraine, based on the algebra-algorith­mic approach and the technique of rewriting rules is given. The methods are developed to automate the design, generation and transformation of parallel programs for a wide range of multiprocessor computing platforms and find application for various application areas, in particular for the effective implementation of meteorological forecasting tasks. Problems in programming 2017; 3: 19-30 Приведен обзор результатов разработки формальных и адаптивных методов и программных средств, достигнутых за последние годы в Институте программных систем НАН Украины, основанные на алгебро-алгоритмическом подходе и технике переписывающих правил. Методы предназначены для автоматизации проектирования, генерации и преобразований параллельных программ для широкого диапазона мультипроцессорных вычислительных платформ и находят применение для различных прикладных областей, в частности, для эффективной реализации задач метеорологического прогнозирования.Problems in programming 2017; 3: 19-30 Наведено огляд результатів розробки формальних та адаптивних методів і програмних засобів, досягнутих за останні роки в Інституті програмних систем НАН України, що ґрунтуються на алгебро­алгоритмічному підході та техніці переписувальних правил. Методи призначені для автоматизації проектування, генерації та перетворень паралельних програм для широкого діапазону мультипроцесорних обчислювальних платформ і знаходять застосування для різних прикладних областей, зокрема, для ефективної реалізації задач метеорологічного прогнозування.Problems in programming 2017; 3: 19-30 Інститут програмних систем НАН України 2018-11-12 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/295 10.15407/pp2017.03.019 PROBLEMS IN PROGRAMMING; No 3 (2017); 19-30 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 3 (2017); 19-30 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 3 (2017); 19-30 1727-4907 10.15407/pp2017.03 en https://pp.isofts.kiev.ua/index.php/ojs1/article/view/295/289 Copyright (c) 2018 PROBLEMS OF PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2024-04-28T11:48:07Z
collection OJS
language English
topic programming automation
algebra of algorithms
meteorological forecasting
parallel computation
rewriting rules technique
UDC 004.4'24
spellingShingle programming automation
algebra of algorithms
meteorological forecasting
parallel computation
rewriting rules technique
UDC 004.4'24
Doroshenko, А.Yu.
Beketov, O.G.
Zhereb, K.A.
Ivanenko, P.A.
Ovdii, О.М.
Shevchenko, R.S.
Yatsenko, O.A.
Formal and adaptive methods and software tools of parallel programming
topic_facet programming automation
algebra of algorithms
meteorological forecasting
parallel computation
rewriting rules technique
UDC 004.4'24
автоматизация программирования
алгебра алгоритмов
метеорологическое прогнозирование
параллельные вычисления
техника переписывающих правил
УДК 004.4'24
автоматизація програмування
алгебра алгоритмів
метеорологічне прогнозування
паралельні обчислення
техніка переписувальних правил
УДК 004.4'24
format Article
author Doroshenko, А.Yu.
Beketov, O.G.
Zhereb, K.A.
Ivanenko, P.A.
Ovdii, О.М.
Shevchenko, R.S.
Yatsenko, O.A.
author_facet Doroshenko, А.Yu.
Beketov, O.G.
Zhereb, K.A.
Ivanenko, P.A.
Ovdii, О.М.
Shevchenko, R.S.
Yatsenko, O.A.
author_sort Doroshenko, А.Yu.
title Formal and adaptive methods and software tools of parallel programming
title_short Formal and adaptive methods and software tools of parallel programming
title_full Formal and adaptive methods and software tools of parallel programming
title_fullStr Formal and adaptive methods and software tools of parallel programming
title_full_unstemmed Formal and adaptive methods and software tools of parallel programming
title_sort formal and adaptive methods and software tools of parallel programming
title_alt Формальные и адаптивные методы и инструментальные средства параллельного программирования
Формальні та адаптивні методи й інструментальні засоби паралельного програмування
description A review of the results of the development of formal and adaptive methods and software, achieved in recent years in the Institute of Software Systems of the National Academy of Sciences of Ukraine, based on the algebra-algorith­mic approach and the technique of rewriting rules is given. The methods are developed to automate the design, generation and transformation of parallel programs for a wide range of multiprocessor computing platforms and find application for various application areas, in particular for the effective implementation of meteorological forecasting tasks. Problems in programming 2017; 3: 19-30
publisher Інститут програмних систем НАН України
publishDate 2018
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/295
work_keys_str_mv AT doroshenkoayu formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT beketovog formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT zherebka formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT ivanenkopa formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT ovdiiom formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT shevchenkors formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT yatsenkooa formalandadaptivemethodsandsoftwaretoolsofparallelprogramming
AT doroshenkoayu formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT beketovog formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT zherebka formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT ivanenkopa formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT ovdiiom formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT shevchenkors formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT yatsenkooa formalʹnyeiadaptivnyemetodyiinstrumentalʹnyesredstvaparallelʹnogoprogrammirovaniâ
AT doroshenkoayu formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
AT beketovog formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
AT zherebka formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
AT ivanenkopa formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
AT ovdiiom formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
AT shevchenkors formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
AT yatsenkooa formalʹnítaadaptivnímetodijínstrumentalʹnízasobiparalelʹnogoprogramuvannâ
first_indexed 2024-09-22T04:04:04Z
last_indexed 2024-09-22T04:04:04Z
_version_ 1818527397171953664
fulltext Методи та засоби програмної інженерії © А.Ю. Дорошенко, О.Г. Бекетов, К.А. Жереб, П.А. Іваненко, О.М. Овдій, Р.С. Шевченко, О.А. Яценко, 2017 ISSN 1727-4907. Проблеми програмування. 2017. № 3 19 УДК 004.4'24 А.Ю. Дорошенко, О.Г. Бекетов, К.А. Жереб, П.А. Іваненко, О.М. Овдій, Р.С. Шевченко, О.А. Яценко ФОРМАЛЬНІ ТА АДАПТИВНІ МЕТОДИ Й ІНСТРУМЕНТАЛЬНІ ЗАСОБИ ПАРАЛЕЛЬНОГО ПРОГРАМУВАННЯ Наведено огляд результатів розробки формальних та адаптивних методів і програмних засобів, досяг- нутих за останні роки в Інституті програмних систем НАН України, що ґрунтуються на алгебро- алгоритмічному підході та техніці переписувальних правил. Методи призначені для автоматизації про- ектування, генерації та перетворень паралельних програм для широкого діапазону мультипроцесорних обчислювальних платформ і знаходять застосування для різних прикладних областей, зокрема, для ефективної реалізації задач метеорологічного прогнозування. Ключові слова: автоматизація програмування, алгебра алгоритмів, метеорологічне прогнозування, па- ралельні обчислення, техніка переписувальних правил. Вступ Паралельні обчислення на мульти- процесорних системах на сьогодні є осно- вним джерелом забезпечення необхідних потреб у високій продуктивності обчис- лень при розв’язуванні складних науково- технічних і господарських проблем. Пода- льший прогрес у покращенні показників якості створення паралельних систем пов’язаний не тільки з підвищенням про- дуктивності їх роботи, а й із зменшенням споживаної енергії на одиницю обчислю- вальної потужності ("зелені" обчислення). Досягнення таких цілей лежить на шляху до використання архітектур паралельних обчислювальних систем, здатних до спеці- алізації обчислень для конкретних класів задач з метою отримання найвищих показ- ників продуктивності при найменших ре- сурсних витратах. За останні роки у цьому відношенні найкраще себе проявили, на- приклад, графічні прискорювачі (graphics processing units, GPU) – спеціалізовані не- дорогі мультипроцесорні системи, спроек- товані спочатку як додаткові до централь- них процесорів (CPU) засоби обробки ві- деоінформації і використані потім як му- льтипроцесорні платформи загального призначення (GPGPU). Проте, розробка програм для графічних прискорювачів є досить складною задачею, тому постає пи- тання щодо розробки спеціальних засобів автоматизації розробки програмного за- безпечення, що дозволяли б найбільш ефе- ктивно генерувати найпродуктивніший код для таких систем. На даний час Грід-системи та "хма- рні" обчислення все більше використову- ються як в наукових, так і в промислових застосуваннях. Такі системи використову- ють низку взаємно пов'язаних ідей, вклю- чаючи поняття загальнодоступних обчис- лень, сервісів, Грід-технологій, віртуаль- них ресурсів та ін., спрямованих на грани- чне абстрагування ресурсів та спрощення доступу до них з боку користувача. Вони дозволяють ефективно використовувати існуючі різнорідні паралельні ресурси та вирішувати задачі великих обсягів, які не можуть бути вирішені на окремих парале- льних комплексах. Однак, проблемою за- лишається оптимізація затрат і зусиль на отримання ефективного програмного коду для таких систем. У відділі теорії комп’ютерних об- числень Інституту програмних систем НАН України упродовж тривалого періоду розвивається напрямок досліджень, пов’я- заний з розробкою теорії, методології та інструментальних засобів для автоматизо- ваного проектування паралельних і розпо- ділених програм. Даний напрямок бере свій початок від праць В.М. Глушкова, Г.О. Цейтліна та К.Л. Ющенко з розробки систем алгоритмічних алгебр та їх модифі- Методи та засоби програмної інженерії 20 кацій [1–3] і праць О.А. Летичевського та його школи з алгебраїчного програмування [4–6], що ґрунтується на техніці перепису- вання термів. Мета даної роботи – огляд резуль- татів, отриманих в рамках розробки фор- мальних методів та програмних засобів на основі алгеброалгоритмічного підходу та техніки переписувальних правил для авто- матизації програмування мультипроцесор- них платформ [7–29]. 1. Формальні методи й інструментарій проектування та генерації програм для графічних прискорювачів В основу пропонованого підходу до проектування паралельних програм покла- дений апарат модифікованих систем алго- ритмічних алгебр (САА-М) [2, 7], призна- чений для формалізації процесів мульти- обробки, що виникають при конструюван- ні програмного забезпечення в мультипро- цесорних системах. 1.1. Алгебра алгоритмів. САА-М – двоосновна алгебра  ;, PrOp , де Op – множина операторів; Pr – множина логічних умов;  – сигнатура, яка склада- ється з логічних операцій (диз'юнкції, кон'юнкції, заперечення, лівого множення оператора на умову) та операторних операцій (композиції, альтернативи, циклу та ін.) [7]. Алгоритми в САА-М мо- жуть бути подані в трьох формах: аналіти- чній (регулярні схеми), природньо- лінгвістичній (САА-схеми) та графовій (граф-схеми). У роботах [11–13] викона- ний подальший розвиток САА-М в напря- мку проектування паралельних програм для графічних прискорювачів, що викори- стовують технологію Nvidia CUDA [30]. Далі наведено перелік назв та спе- цифікації операторних операцій сигнатури САА-М, що використовуються у даній ро- боті і подані у природньо-лінгвістичній формі. 1. Композиція (послідовне вико- нання) операторів: "оператор 1"; "оператор 2". 2. Операція виконання одного з n операторів за істинності відповідної умо- ви: ВИБІР (['умова 1']  "оператор 1", ... ['умова n']  "оператор n"). 3. Асинхронна диз'юнкція – парале- льне виконання двох операторів (потоків): "оператор 1" ПАРАЛЕЛЬНО "оператор 2". 4. Синхронізатор, що виконує зат- римку обчислень доти, поки значення умо- ви не стане істинним: ЧЕКАТИ 'умова'. 5. Операція виклику функції-ядра у схемах алгоритмів для графічних приско- рювачів: Запуск Ядра (nB, nTh) ( "оператор" ), де nB – кількість блоків потоків; nTh – кі- лькість потоків у кожному блоці; "опера- тор" – частина алгоритму, що буде вико- нуватися паралельно. Застосування цих операцій проде- монстроване у розділах 5 та 7. 1.2. Методи й інструментарій ав- томатизованої розробки програм. Вико- ристання апарату САА-М покладено в ос- нову розробленої методології та інструме- нтальних засобів підтримки проектування та генерації програм. Інструментарій ґрун- тується на методі діалогового конструю- вання синтаксично правильних програм (ДСП-методі) [7], що орієнтований на ви- ключення можливості появи синтаксичних помилок у процесі побудови алгоритму. Основна ідея методу полягає у порівнево- му конструюванні алгоритмів зверху вниз шляхом суперпозиції мовних конструкцій САА-М. На основі побудованої схеми ал- горитму виконується автоматична генера- ція тексту програми цільовою мовою про- грамування. ДСП-метод був реалізований у сис- темі ІПС [7, 8, 14, 15], яка містить такі ос- новні компоненти:  діалоговий конструктор синтак- сично правильних програм (ДСП-конст- руктор), призначений для діалогового про- Методи та засоби програмної інженерії 21 ектування схем алгоритмів та синтезу про- грам мовами Java, C++, C++ для CUDA;  редактор граф-схем;  база даних алгеброалгоритмічних специфікацій, у якій зберігається текст конструкцій САА-М і базисних елементів схем, а також їх програмні реалізації;  генератор САА-схем за гіперсхе- мами [15] (див. також розділ 5). Для автоматизації виконання тран- сформацій алгоритмів система ІПС засто- совується спільно з системою Term- Ware [8, 9, 14], яка ґрунтується на паради- гмі переписувальних правил. У роботах [12, 13] розглядається нова версія системи ІПС, названа онлайно- вим діалоговим конструктором синтаксич- но правильних програм (ОДСП), особливі- стю якої є сервісно-орієнтована архітекту- ра та спрямованість на багатокористуваль- ницьке використання системи через Інтер- нет. 2. Засоби опису паралельних алгоритмів у рамках алгебри алгоритмів з даними для класу інформаційно-керуючих систем З огляду на важливість ролі, яку відіграють інформаційно-керуючі системи (ІКС) у сучасному світі, в роботах [16, 17] виконана розробка засобів специфікації та перетворення паралельних алгоритмів для таких систем. Для опису алгоритмів застосовано алгебраїчний апарат, побудо- ваний у результаті модифікації відомої моделі ЕОМ Глушкова. Модифікація поля- гає у доповненні згаданої моделі зовніш- нім середовищем (ЗС), що складається з програмної та апаратної складових. Про- грамна складова забезпечує взаємодію між моделями, що функціонують у різних ЗС (багатомашинна організація), і між задачами в рамках одного ЗС (квазі- паралельна, багатозадачна організація). Апаратна складова є пам’яттю та зовніш- німи пристроями, які включають пристрої введення-виведення та пристрої зв’язку з об’єктом керування, і інтерпретуються як дані, що формалізуються таким чином. Даними називається пара ЗND , , де N – носій даних, З – кор- теж значень, носієм яких є N . На кожному кроці обчислювального процесу носій міс- тить певний (поточний) кортеж значень даних, зокрема, ці значення можуть бути невизначеними. Така модифікація моделі ЕОМ до- зволила ввести Д-оператори виду )()( DOD  із специфікованими даними D і D , які вони обробляють, тобто аналізу- ють і перетворюють, змінюючи їх значен- ня. На основі модифікованої моделі запро- понована система алгоритмічних алгебр з даними (САА/Д):  Ω ; , , DLU , основами якої є множина Д-операторів U , множина логічних умов L та множина даних D , а 1 2 3    – її сигнатура, що скла- дається з 1 – операцій, що приймають значення на множині U , 2 – логічних операцій, що приймають значення на мно- жині L , 3 – операцій, що приймають значення на множині даних D . У роботі [16] розглядається варіант ІКС, коли вона складається з двох підсис- тем, кожна з яких функціонує у власному програмно-апаратному середовищі (дво- машинний випадок). Для випадків, коли підсистеми ІКС функціонують у різних програмно-апаратних середовищах, в сиг- натуру алгебри включено операцію асинх- ронної диз'юнкції Д-операторів ( ) ( ) ( ) ( )i i i j j jD O D D O D  , яка полягає в па- ралельному асинхронному виконанні цих операторів. Введені також засоби синхро- нізації та визначено умови, за яких є мож- ливим паралельне виконання Д-опера- торів. У зв’язку з розмаїтістю архітектур ІКС і специфічністю розв’язуваних ними задач продемонстровано можливість побу- дови похідних засобів синхронізації. У роботі [18] запропоновано розви- ток інструментарію проектування та син- тезу програм (ІПС) для конструювання специфікацій алгоритмів, що подані у ви- щезгаданій алгебрі алгоритмів з даними. 3. Засоби імітаційного моделювання паралельних застосувань На даний час важлива проблема – це побудова глобальних інформаційно- Методи та засоби програмної інженерії 22 обчислювальних інфраструктур, таких як Грід-системи. Проте такі системи є склад- ними як для створення та конфігурування, так і для програмування. При цьому підбір найбільш оптимальних конфігурацій як для структури самого Грід-середовища, так і для задач, що виконуються на ньому, недоцільно здійснювати на реальних сис- темах через великі витрати та необхідність координації різних учасників Грід- проектів. Тому актуальною є задача іміта- ційного моделювання, яка дозволяє без ви- трат на створення, підтримку та викорис- тання реальної Грід-системи провести на моделі необхідні експерименти, результати яких не будуть суттєво відрізнятися від оригіналу. Враховуючи зростаючий інте- рес до використання для обчислень графі- чних прискорювачів, актуальними є також задачі моделювання Грід-систем, окремі вузли яких містять CPU та GPU- компоненти. У роботах [19–21] розроблена ін- струментальна система gpusim, що приз- начена для моделювання Грід-систем з графічними прискорювачами і грунтується на Java-фреймворку GridSim [31]. Особли- вістю системи є підхід до опису паралель- ної системи, при якому CPU і GPU- компоненти розглядаються як окремі вуз- ли віртуального Грід-середовища. Описано механізм налаштування системи на пара- метри конкретної паралельної системи за рахунок автоматизованого підбору пара- метрів моделі. Проведено експериментальну пере- вірку розробленої системи на зада- чах блочного множення матриць та моде- лювання гравітаційної взаємодії N тіл. Для першої задачі, на основі емпі- ричної моделі часу виконання множення матриць на GPU, розроблені генератор експериментів симулятора і обробник ста- тистики, що входять до складу експериме- нтального модуля MatrixMultiply [19]. Вхі- дними параметрами генератора є розмір блоку, мінімальний та максимальний роз- мір матриці, а також інкремент розміру матриці. Результатом експерименту є за- лежність часу виконання множення мат- риць блочним алгоритмом (з урахуванням пересилання даних) від розміру матриці. Проведений експеримент показав достат- ню точність побудованої моделі для вели- ких розмірів вхідних даних. З метою використання gpusim для дослідження паралельного алгоритму об- числення гравітаційної задачі взаємодії N тіл в [20] розроблено відповідний експе- риментальний модуль системи gpusim. У результаті проведеного експерименту встановлено залежність часу виконання паралельної програми від розміру вхідних даних N та кількості потоків CUDA [30] на блок. У роботі [21] розглядається парале- льна розподілена реалізація системи gpusim, створена на основі використання платформи для розподілених обчислень Hazelcast [32]. 4. Програмні засоби паралельних обчислень на основі платформ розподілених сховищ об’єктів даних в основній пам’яті машин Одна основна проблема при обробці великих обсягів даних на обчислювальній техніці – це продуктивність системи вве- дення-виведення сховищ даних. З поши- ренням 64-бітних багатоядерних систем вартість оперативної пам’яті значно знизи- лася, а обсяги багаторазово збільшилися. Це робить ідею використання оперативних запам'ятовуючих пристроїв (ОЗП) для збе- рігання даних замість жорстких дисків ду- же привабливою, враховуючи той факт, що швидкість доступу до ОЗП у тисячі разів перевищує швидкість доступу до HDD. Об’єднання вузлів з великими обсягами ОЗП в єдиний обчислювальний кластер фактично повністю виключає потребу за- стосувань у доступі до повільних при- строїв введення-виведення. Усі ці чинники спричинили створення нових підходів та рішень кластеризації – розподілених схо- вищ об’єктів даних (In-Memory Data Grid, IMDG), які ще також називаються дата- грід. У роботі [22] виконаний аналіз та порівняння технологій сучасних платформ IMDG, а саме: RH Infinispan, Oracle Coherence, Ehcache та Hazelcast. Одне з ос- новних застосувань IMDG-систем є клас Методи та засоби програмної інженерії 23 програм, де основна операція введення- виведення – це читання, а не запис. Прик- ладами таких застосувань є пошукові сис- теми, системи агрегації та обчислень на множині даних. Проведені експерименти з виміру продуктивності кількох систем для типових застосувань на розробленому кла- стері з чотирьох вузлів показали, що най- більш ефективним є використання систем Coherence та Hazelcast. У статті [23] розглядається актуаль- на задача автоматизованої розробки висо- конавантаженої розподіленої паралельної системи, яка може горизонтально масшта- буватись та забезпечувати безперебійну обробку потокових даних великих обсягів. Як приклад джерела даних для обробки обрана соціальна мережа Twitter та її пото- ковий API – Twitter Firehose. Для ство- рення розподіленої системи використано Hazelcast [32], перевагою якого є автома- тичне розгортання та керування обчислю- вальним кластером. Для розгортання сис- теми на основі Hazelcast обрана "хмарна" платформа Amazon Elastic Compute Cloud (EC2). Розроблена система є динамічно масштабованим та відмовостійким класте- рним рішенням, одним з головних надбань якого є те, що дослідник може нарощувати ресурси для обчислень за своїм бажанням, різної конфігурації та потужності, що дає змогу досягати бажаної швидкодії систе- ми. 5. Засоби розробки адаптивних алгоритмів на основі параметрично керованої генерації схем програм Одним із шляхів вирішення про- блеми підвищення адаптивності програм до конкретних умов їх використання у ра- мках алгеброалгоритмічного підходу є за- стосування параметрично керованої гене- рації високорівневих специфікацій алгори- тмів за допомогою схем більш високого рівня, що називаються гіперсхемами. У роботі [15] запропоновано підхід до розробки послідовних і паралельних ал- горитмів на основі алгебри гіперсхем та інструментальних засобів генерації САА-схем алгоритмів, що входять до складу інтегрованого інструментарію про- ектування та синтезу програм (див. також підрозділ 1.2). На рис. 1 показана послідо- вність розробки програм у системі ІПС, починаючи з проектування гіперсхеми та закінчуючи генерацією коду цільовою мо- вою програмування. Гіперсхеми є параметризованими операторними виразами, що орієнтовані на вирішення певного класу задач. Зазначен- ня конкретних значень параметрів гіпер- схем та їх наступна інтерпретація дозволяє отримати САА-схеми алгоритмів, адапто- вані до конкретних умов використання. У роботі [15] застосування гіперсхем про- ілюстроване на прикладах з області сорту- вання та лінійної алгебри. Приклад 1. Далі наведено гіпер- схему, яка є алгоритмом керування виве- денням класу САА-схем паралельного множення матриць із різною кількістю па- ралельних потоків K . У САА-схемі, яка є результатом інтерпретації гіперсхеми, ви- конується множення матриці ( )lj M NA a  на матрицю ( )lj N QB b  . Матриця A роз- ділена на K горизонтальних смуг (блоків). Обчислення розподіляються між K пара- лельними потоками з індексами 1Ki ,… 0, = . При цьому i -й потік, а са- ме, оператор "Множення(A(i), B)", виконує множення i -го блоку матриці A на матри- цю B . Параметра K , який відповідає кі- лькості паралельних потоків, у гіперсхемі присвоєне значення 4. "Гіперсхема множення матриць" = ==== (i := –1); (K := 4); "ПРС1"; ЧЕКАТИ 'Обробка у всіх потоках закінчена'; "ПРС1" = "ІНК(i)"; ВИБІР ( ['i < K – 1'] → "Множення(A(i), B)" ПАРАЛЕЛЬНО "ПРС1"; ['i = K – 1'] → "Множення(A(i), B)"; ). Методи та засоби програмної інженерії 24 Рис. 1. Послідовність генерації алгоритмів та програм в інтегрованому інструментарії У вищенаведеній гіперсхемі скла- дений оператор ПРС1 рекурсивно фор- мує паралельні потоки із використанням операції вибору та зміни значення пара- метра i від 0 до 1K . Результатом інтер- претації гіперсхеми є САА-схема мно- ження матриць з чотирма паралельними потоками. 6. Засоби автоматичного налаштовування застосувань на мультипроцесорні платформи У роботах [24, 25] розроблено ме- тод автоматичного самоналаштовування (автотюнінгу) паралельних застосувань на основі формальної моделі розширеного поняття дискретної динамічної системи та PRAM-моделі паралельних обчислень. Автотюнінг дозволяє емпіричним спосо- бом в автоматичному режимі підібрати найкращий варіант програми для цільового середовища виконання (мульти- процесорної платформи). На основі запро- понованого методу розроблено інструмен- тальну систему генерації автотюнерів TuningGenie. На рис. 2 показано процес модифі- кації, оцінки і вибору оптимального варіа- нта програми в TuningGenie. Система сприймає на вході початковий код мовою програмування, відмічений прагмами. Прагми описують конфігурації і трансфо- рмації програми, що впливають на її про- дуктивність. Прагми задаються вручну програмними розробниками із викорис- танням коментарів спеціальної форми. Спочатку інформація з усіх прагм у коді вхідної програми збирається синтаксичним аналізатором і на її основі генеруються усі можливі конфігурації застосунку. Далі для кожної конфігурації генерується відповід- на варіація програми й виконуються замі- ри швидкодії. На основі отриманих ре- зультатів знаходиться оптимальна конфі- гурація і на її основі генерується оптима- льний варіант застосунка. Для трансфор- мацій вихідного коду TuningGenie викори- стовує інструментарій переписувальних правил TermWare [8, 9, 25]. Застосування TuningGenie проде- монстроване у роботах [24–26] на прикла- дах задач паралельного програмування, зокрема, задачі короткочасного метеоро- логічного прогнозування. 7. Прикладні програмні системи метеорологічного прогнозування У роботах [11–13, 27, 28] виконане застосування методології та інструмента- рію автоматизованого алгеброалгоритміч- ного проектування (див. розділ 1) для роз- робки паралельних алгоритмів та програм- ної реалізації розв'язання задач регіональ- ного метеорологічного прогнозування. За- пропонований підхід до вирішення про- блем метеорологічного прогнозування по- єднує комплексність використання адеква- тних фізичних моделей атмосферних про- цесів з ефективними обчислювальними методами програмування високопродукти- вних обчислень на багатоядерних проце- сорах та графічних прискорювачах, що дає змогу досягати належного ступеня точнос- ті, повноти і своєчасності інформації, не- обхідної для складання якісних метеороло- гічних прогнозів. Методи та засоби програмної інженерії 25 Рис. 2. Послідовність дій автотюнінгу в системі TuningGenie Приклад 2. Далі наведено частину паралельної САА-схеми обчислень про- гнозу погоди, в основу якої покладено ре- гіональну математичну модель стану атмо- сфери та чисельні методи, що розгляда- ються в роботі [11]. "Паралельне обчислення правих частин рівнянь Q для функції (U)" = ==== Запуск Ядра (blocksPerGrid_3d, threadsPerBlock_3d) ( "Виконати попередні обчислення для першої похідної (Pr1)" ); Запуск Ядра (blocksPerGrid_1d, threadsPerBlock_1d) ( "Виконати обчислення першої похідної (Pr1)" ); "Заповнити масив для Q у відеопам'яті значеннями (0)"; Запуск Ядра (blocksPerGrid_3d, threadsPerBlock_3d) ( "Обчислити праві частини Q для функції (U)" ); "Занести в масив (RZ) значення для функції (U)"; "Обчислити складові рівняння пе- реносу в напрямках X,Y,Z для (U)"; "Скопіювати масив значень Q з відеопам’яті у пам’ять CPU". На основі побудованої САА-схеми реалізовано послідовну та паралельну про- грами мовою С++ для виконання на CPU та GPU відповідно [11]. Випробування програм проводились із використанням процесора i5-3570 та графічного приско- рювача GeForce GTX 650 Ti (768 ядра). На рис. 3 показано графік залежності мульти- процесорного прискорення /s pSp T T (де sT і pT – час виконання послідовної та па- ралельної програм, відповідно), від розмі- ру задачі N – кількості вузлів розбиття розрахункової сітки. У роботі [27] запропоновано підхід до проектування та генерації Грід-сервісів для платформи Globus Toolkit на основі використання інструментарію ІПС. Розро- Методи та засоби програмної інженерії 26 блено Грід-сервіс, що виконує запуск паралельної програми з області метеороло- гічного прогнозування на мультипроцесо- рному кластері. В роботі [28] розроблено засоби автоматизованого конструювання пара- лельного коду для середовища OpenMP на основі високорівневих алгеброалгоритміч- них специфікацій. Застосування засобу демонструється на прикладі задачі моде- лювання циркуляції атмосфери, що пред- ставлений як сервіс у складі Інтернет- порталу [29] з надання послуг метео- прогнозу. Висновки В статті показано, як в Інституті програмних систем НАНУ розвивалися формальні та адаптивні методи та інстру- ментарій для автоматизованого проекту- вання та генерації паралельних програм на основі алгеброалгоритмічного підходу та техніки переписувальних правил. За роки становлення і розвитку цього напря- мку розроблено нові засоби опису парале- льних алгоритмів у рамках алгебри алго- ритмів з даними для класу інформаційно- керуючих систем. Створені інструмента- льні засоби автоматизації програмування та імітаційного моделювання високопро- дуктивних паралельних застосувань для Грід-систем. Розроблена кластерна систе- ма для обробки потокових даних великого обсягу на основі платформи, призначеної для створення розподілених сховищ об’єктів даних в основній пам’яті машин. Запропоновано метод та програмні засоби розробки послідовних і паралельних ада- птивних алгоритмів на основі викорис- тання параметрично керованої генерації схем програм. Розроблено метод та про- грамну систему для автоматичного само- налаштовування (автотюнінгу) паралель- них програм на цільові платформи, що ґрунтується на трансформації програмно- го коду на основі використання перепису- вальних правил. Проведено застосування методології автоматизованого алгебро- алгоритмічного проектування для розроб- ки паралельних алгоритмів та програмної реалізації розв’язання задач регіонального метеорологічного прогнозування на різ- них мультипроцесорних платформах, що дало можливість значно покращити точ- ність та завчасність прогнозів. 1. Глушков В.М. Теория автоматов и форма- льные преобразования микропрограмм. Кибернетика. 1965. № 5. C. 1–10. Рис. 3. Графік залежності мультипроцесорного прискорення від розміру задачі для паралельної програми метеорологічного прогнозування Методи та засоби програмної інженерії 27 2. Глушков В.М., Цейтлин Г.Е., Ющенко Е.Л. Методы символьной мультиобработки. К.: Наукова думка, 1980. 252 с. 3. Глушков В.М., Цейтлин Г.Е., Ющенко Е.Л. Алгебра. Языки. Программирование. 3-е изд., перераб. и доп. К.: Наукова думка, 1989. 376 с. 4. Капитонова Ю.В., Летичевский А.А. Пара- дигмы и идеи академика В. М. Глушкова. К.: Наукова думка, 2003. 456 с. 5. Капитонова Ю.В., Летичевский А.А. Ме- тоды и средства алгебраического програ- ммирования. Кибернетика. 1993. № 3. С. 7–12. 6. Letichevsky A.A., Kapitonova Yu.V., Ko- nozenko S.V. Computations in APS. Theore- tical computer science. 1993. Vol. 119. P. 145–171. 7. Андон Ф.И., Дорошенко А.Е., Цейт- лин Г.Е., Яценко Е.А. Алгеброалгоритми- ческие модели и методы параллельного программирования. Киев: Академпериоди- ка, 2007. 631 с. 8. Андон Ф.И., Дорошенко А.Е., Жереб К.А., Шевченко Р.С., Яценко Е.А. Методы ал- гебраического программирования. Фор- мальные методы разработки параллель- ных программ. Киев: Наукова думка, 2017. 440 с. 9. Doroshenko A., Shevchenko R. A rewriting framework for rule-based programming dy- namic applications. Fundamenta Informati- cae. 2006. Vol. 72, N 1–3. P. 95–108. 10. Андон Ф.И., Дорошенко А.Е., Жереб К.А. Программирование высокопроизводитель- ных параллельных вычислений: формаль- ные модели и графические ускорители. Кибернетика и системный анализ. 2011. № 4. С. 176–187. 11. Дорошенко А.Ю., Бекетов О.Г., Прусов В.А., Тирчак Ю.М., Яценко О.А. Фор- малізоване проектування та генерація па- ралельної програми чисельного моделю- вання погоди. Проблеми програмування. 2014. № 2–3. С. 72–81. 12. Андон Ф.И., Дорошенко А.Е., Бекетов А.Г., Иовчев В.А., Яценко Е.А. Инстру- ментальные средства автоматизации па- раллельного программирования на основе алгебры алгоритмов. Кибернетика и си- стемный анализ. 2015. № 1. С. 162–170. 13. Дорошенко А.Ю., Бекетов О.Г., Іванів Р.Б., Іовчев В.О., Мироненко І.О., Яценко О.А. Автоматизована генерація паралельних програм для графічних прискорювачів на основі схем алгоритмів. Проблеми програ- мування. 2015. № 1. С. 19–28. 14. Doroshenko A., Zhereb K., Yatsenko O. Developing and optimizing parallel programs with algebra-algorithmic and term rewriting tools. Proc. 9th International Conference "ICT in Education, Research, and Industrial Applications" (ICTERI 2013), Revised Selected Papers, Kherson, Ukraine (19–22 June, 2013). Berlin: Springer, 2013. Vol. 412. P. 70–92. 15. Яценко Е.А. Средства параметрически управляемой генерации алгоритмов на ос- нове алгебры гиперсхем. Проблеми про- грамування. 2012. № 2–3. С. 219–227. 16. Акуловский В.Г., Дорошенко А.Е. Описа- ние параллелизма в алгоритмах информа- ционно-управляющих систем средствами алгебраического аппарата. Проблеми про- грамування. 2013. № 3. С. 13–21. 17. Акуловский В.Г., Дорошенко А.Е. Преоб- разование алгоритмов, записанных в виде композиционных схем. Кибернетика и си- стемный анализ. 2014. № 1. С. 151–159. 18. Акуловский В.Г., Дорошенко А.Е., Яцен- ко Е.А. Реализация средств проектирова- ния и генерации программ на основе ал- гебры алгоритмов с данными. Проблеми програмування. 2015. № 2. С. 41–51. 19. Оконський І.В., Дорошенко А.Ю., Же- реб К.А. Інструментальні засоби моде- лювання гетерогенних середовищ заснова- них на відеографічних прискорювачах. Проблеми програмування. 2013. № 1. С. 107–115. 20. Дорошенко А.Ю., Оконський І.В., Же- реб К.А., Бекетов О.Г. Використання засо- бів моделювання для визначення оптима- льних параметрів виконання програм на відеографічних прискорювачах. Проблеми програмування. 2013. № 2. С. 23–31. 21. Дорошенко А.Ю., Гнинюк М.В. Паралель- на розподілена реалізація моделювання паралельних обчислень. Проблеми програ- мування. 2014. № 1. С. 40–48. 22. Рухлис К.А., Дорошенко А.Е. К вопросу о производительности распределенных хра- нилищ объектов данных в памяти ОЗУ. Проблеми програмування. 2015. № 3. C. 33–38. 23. Тітов Д.С., Дорошенко А.Ю., Яценко О.А. Автоматизована розробка паралельної роз- поділеної системи обробки потокових даних. Проблеми програмування. 2016. № 2–3. С. 96–104. 24. Иваненко П.А., Дорошенко А.Е. Метод ав- томатической генерации автотьюнеров для параллельных программ. Кибернетика и системный анализ. 2014. № 3. С. 161–173. Методи та засоби програмної інженерії 28 25. Ivanenko P., Doroshenko A., Zhereb K. TuningGenie: Auto-tuning framework based on rewriting rules. Proc. 10th International Conference "ICT in Education, Research, and Industrial Applications" (ICTERI 2014), Revised Selected Papers, Kherson, Ukraine (9–12 June, 2014). Berlin: Springer, 2014. Vol. 469. P. 139–158. 26. Іваненко П.А., Дорошенко А.Ю. Автома- тична оптимізація виконання для задачі метеорологічного прогнозування. Пробле- ми програмування. 2012. № 2–3. С. 426– 434. 27. Дорошенко А.Ю., Бекетов О.Г., Яценко О.А, Вітряк Є.А., Павлючин Т.О. Розробка сервісно-орієнтованих засобів для запуску паралельних програм на мультипроцесор- ному кластері. Проблеми програмуван- ня. 2014. № 4. С. 3–14. 28. Дорошенко А.Ю., Іваненко П.А., Овдій О.М., Яценко О.А. Автоматизоване проек- тування програм для розв’язання задачі метеорологічного прогнозування. Пробле- ми програмування. 2016. № 1. С. 102–115. 29. Бекетов О.Г., Вітряк Є.А., Мироненко І.О., Овдій О.М. Розвиток Інтернет-порталу ме- теорологічного прогнозування на мульти- процесорній платформі. Проблеми програ- мування. 2016. № 2–3. С. 246–253. 30. Wilt N. The CUDA handbook. A comprehensive guide to GPU programming. Boston: Addison-Wesley, 2013. 528 p. 31. Sulistio A., Cibej U., Venugopal S., Robic B., Buyya R. A toolkit for modelling and simulating data Grids: an extension to GridSim. Concurrency and Computation: Practice & Experience. 2008. Vol. 20, N 13. P. 1591–1609. 32. Veentjer P. Mastering Hazelcast: the ultimate Hazelcast book. Palo Alto: Hazelcast, 2015. 232 p. References 1. Glushkov V.M. (1965) Automata theory and structural design problems of digital machines. Cybernetics. (5). P. 1–10. (in Russian). 2. Glushkov V.M., Tseitlin G.E. & Yushchenko E.L. (1980) Methods of symbolic multiprocessing. Kyiv: Naukova dumka. (in Russian). 3. Glushkov V.M., Tseitlin G.E. & Yushchenko E.L. (1989) Algebra. Languages. Programming. 3rd edition. Kyiv: Naukova dumka. (in Russian). 4. Kapitonova Yu.V. & Letichevsky A.A. (2003) Paradigms and ideas of academician V.M. Glushkov. Kyiv: Naukova dumka. (in Russian). 5. Kapitonova Yu.V. & Letichevsky A.A. (1993) Algebraic programming: methods and tools. Cybernetics. (3). P. 7–12. (in Russian). 6. Letichevsky A.A., Kapitonova Yu.V. & Konozenko S.V. (1993) Computations in APS. Theoretical computer science. 119. P. 145–171. 7. Andon P.I. et al. (2007) Algebra-algorithmic models and methods of parallel programming. Kyiv: Akademperiodika. (in Russian). 8. Andon P.I. et al. (2017) Methods of algebraic programming. Formal methods of parallel program development. Kyiv: Naukova dumka. (in Russian). 9. Doroshenko A. & Shevchenko R. (2006) A rewriting framework for rule-based programming dynamic applications. Fundamenta Informaticae. 72 (1–3). P. 95–108. 10. Andon P.I., Doroshenko A.Yu. & Zhereb K.A. (2011) Programming high-performance parallel computations: formal models and graphics processing units. Cybernetics and Systems Analysis. (4). P. 176–187. (in Russian). 11. Doroshenko A.Yu., Beketov O.G., Prusov V.A., Tyrchak Yu.M. & Yatsenko O.A. (2014) Formalized designing and generation of parallel program for numerical weather forecasting task. Problems in programming. (2–3). P. 72–81. (in Ukrainian). 12. Andon P.I., Doroshenko A.Yu., Beketov O.G., Iovchev V.O. & Yatsenko O.A. (2015) Software tools for automation of parallel programming on the basis of algebra of algorithms. Cybernetics and systems analysis. (1). P. 162–170. (in Russian). 13. Doroshenko A.Yu., Beketov O.G., Ivaniv R.B., Iovchev V.O., Myronenko I.O. & Yatsenko O.A. (2015) Automated generation of parallel programs for graphics processing units based on algorithm schemes. Problems in programming. (1). P. 19–28. (in Ukrainian). 14. Doroshenko A., Zhereb K. & Yatsenko O. (2013) Developing and optimizing parallel programs with algebra-algorithmic and term rewriting tools. In Proc. 9th International Conference "ICT in Education, Research, and Industrial Applications" (ICTERI 2013), Revised Selected Papers. Kherson, Ukraine, 19–22 June 2013. Berlin: Springer. 412. P. 70–92. Методи та засоби програмної інженерії 29 15. Yatsenko O.A. (2012) Facilities for parameter-driven generation of algorithms on the basis algebra of hyperschemes. Problems in programming. (2–3). P. 219–227. (in Russian). 16. Akulovskiy V.G. & Doroshenko А.Yu. (2013) Description of parallelism in the algorithms of the information/control systems with algebraic facilities. Problems in programming. (3). P. 13–21. (in Russian). 17. Akulovskiy V.G. & Doroshenko А.Yu. (2014) Transformation of algorithms written in the form of composition schemes. Cybernetics and Systems Analysis. (1). P. 151–159. (in Russian). 18. Akulovskiy V.G., Doroshenko А.Yu. & Yatsenko O.A. (2015) Implementation of tools for designing and generating of programs on the basis of algebra of algorithms with data. Problems in programming. (2). P. 41–51. (in Russian). 19. Оkonsky І.V., Doroshenko А.Yu. & Zhereb К.А. (2013) Instrumental means of simulation of heterogeneous environments based on graphics processing units. Problems in programming. (1). P. 107–115. (in Ukrainian). 20. Doroshenko А.Yu., Оkonsky І.V., Zhereb К.А. & Beketov О.G. (2013) Using means of simulation for determining optimal parameters for running programs on GPU. Problems in Programming. (2). P. 23–31. (in Ukrainian). 21. Doroshenko А.Yu. & Gnynjuk M.V. (2014) Parallel distributed implementation of simulation of parallel computation. Problems in programming. (1). P. 40–48. (in Ukrainian). 22. Rukhlis K.A. & Doroshenko А.Yu. (2015) On the performance of the in-memory data grids. Problems in programming. (3). P. 33–38. (in Russian). 23. Titov D.S., Doroshenko A.Yu. & Yatsenko O.A. (2016) Automated development of a parallel system for distributed streaming data processing. Problems in programming. (2-3). P. 96–104. (in Ukrainian). 24. Ivanenko P.A. & Doroshenko А.Yu. (2014) Method of automated generation of autotuners for parallel programs. Cybernetics and systems analysis. (3). P. 161–173. (in Russian). 25. Ivanenko P., Doroshenko A. & Zhereb K. (2014) TuningGenie: auto-tuning framework based on rewriting rules. In Proc. 10th International Conference "ICT in Education, Research, and Industrial Applications" (ICTERI 2014), Revised Selected Papers. Kherson, Ukraine, 9–12 June 2014. Berlin: Springer. 469. P. 139–158. 26. Ivanenko P.A. & Doroshenko А.Yu. (2012) Automatic optimization of execution for the meteorological forecasting problem. Problems in programming. (2–3). P. 426–434. (in Ukrainian). 27. Doroshenko A.Yu., Beketov O.G. Yatsenko O.A., Pavliuchyn T.O. & Vitriak Ie.A. (2014) Development of the service-oriented soft- ware for launching parallel programs on a multiprocessor cluster. Problems in programming. (4). P. 3–14. (in Ukrainian). 28. Doroshenko A.Yu., Ivanenko P.A., Ovdii O.M. & Yatsenko O.A. (2016) Automated program design for solution of weather forecasting problem. Problems in programming. (1). P. 102–115. (in Ukrainian). 29. Beketov O.G., Vitriak Ie.A., Myronenko I.O. & Ovdii O.M. (2016) Development of meteorological forecasting web portal on multiprocessor platform. Problems in programming. (2-3). P. 246–253. (in Ukrainian). 30. Wilt N. (2013) The CUDA handbook. A comprehensive guide to GPU programming. Boston: Addison-Wesley. 31. Sulistio A., Cibej U., Venugopal S., Robic B. & Buyya R. (2008) A toolkit for modelling and simulating data Grids: an extension to GridSim. Concurrency and Computation: Practice & Experience. 20 (13). P. 1591–1609. 32. Veentjer P. (2015) Mastering Hazelcast: the ultimate Hazelcast book. Palo Alto: Hazelcast. Одержано 12.06.2017 Про авторів: Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділу теорії комп’ютерних обчислень Інституту програмних систем НАН України, професор кафедри автоматики та управління в технічних системах НТУ України “КПІ”. Методи та засоби програмної інженерії 30 Кількість наукових публікацій в українських виданнях – понад 200. Кількість наукових публікацій в зарубіжних виданнях – понад 50. Індекс Хірша – 5. http://orcid.org/0000-0002-8435-1451. Бекетов Олексій Геннадійович, молодший науковий співробітник Інституту програмних систем НАН України. Кількість наукових публікацій в українських виданнях – 10. Кількість наукових публікацій в зарубіжних виданнях – 1. http://orcid.org/0000-0003-4715-5053. Жереб Костянтин Анатолійович, кандидат фізико-математичних наук, старший науковий співробітник Інституту програмних систем НАН України. Кількість наукових публікацій в українських виданнях – понад 30. Кількість наукових публікацій в зарубіжних виданнях – понад 10. http://orcid.org/0000-0003-0881-2284. Іваненко Павло Андрійович, молодший науковий співробітник Інституту програмних систем НАН України. Кількість наукових публікацій в українських виданнях – 16. Кількість наукових публікацій в зарубіжних виданнях – 4. http://orcid.org/0000-0001-5437-9763. Овдій Ольга Михайлівна, молодший науковий співробітник Інституту програмних систем НАН України. Кількість наукових публікацій в українських виданнях – 20. Кількість наукових публікацій в зарубіжних виданнях – 4. http://orcid.org/0000-0002-8891-7002. Шевченко Руслан Сергійович, директор ТОВ "Град-Софт". Кількість наукових публікацій в українських виданнях – 7. Кількість наукових публікацій в зарубіжних виданнях – 9. http://orcid.org/0000-0002-1554-2019. Яценко Олена Анатоліївна, кандидат фізико-математичних наук, старший науковий співробітник Інституту програмних систем НАН України. Кількість наукових публікацій в українських виданнях – 35. Кількість наукових публікацій в зарубіжних виданнях – 12. http://orcid.org/0000-0002-4700-6704. Місце роботи авторів: Інститут програмних систем НАН України, 03187, м. Київ, проспект Академіка Глушкова, 40. Тел.: (044) 526 3559. ТОВ "Град-Софт", 02068, Київ-068, вул. Ревуцького, 29, к. 240. Тел.: (044) 552 8259. E-mail: doroshenkoanatoliy2@gmail.com, beketov.oleksii@gmail.com, zhereb@gmail.com, paiv@ukr.net, olga.ovdiy@gmail.com, ruslan.s.shevchenko@gmail.com, oayat@ukr.net. mailto:oayat@ukr.net