Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles

The paper defines the notion of distributed problems with bounded input components. Particle Swarm Optimization problem is shown to be an example of such a class. Such a problem's implementation based on the Map-Reduce model (implemented on the Spark framework) and an implementation based on an...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2021
Автори: Larin, V.O., Provotar, O.I.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2021
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/451
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-451
record_format ojs
resource_txt_mv ppisoftskievua/4e/316bcc86afd2344571c3027fa2a2ef4e.pdf
spelling pp_isofts_kiev_ua-article-4512024-04-26T22:25:02Z Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles Порівняння ефективності підходів Map-Reduce і акторної моделі при розв’язанні завдань з високою зв'язністю вхідних даних на прикладі задачі оптимізації рою часток Larin, V.O. Provotar, O.I. actor model; map-reduce; particle swarm optimization; parallel shared memory systems UDC 004.434:004.75 акторна модель; Map-Reduce; оптимізація методом рою частинок; паралельні системи із загальною пам'яттю УДК 004.434:004.75 The paper defines the notion of distributed problems with bounded input components. Particle Swarm Optimization problem is shown to be an example of such a class. Such a problem's implementation based on the Map-Reduce model (implemented on the Spark framework) and an implementation based on an actor model with shared memory support (implemented on Strumok DSL) is provided. Both versions' performance assessment is conducted. The hybrid actor model is shown to be an order of magnitude more effective in time and memory efficiency than Map-Reduce implementation. Additional optimization for the hybrid actor model solution is proposed. The prospects of using the hybrid actor model for other similar problems are given. Problems in programming 2021; 1: 49-55 Показані приклади класу розподілених паралельних задач зі зв'язаними компонентами вхідних даних в рамках моделі Map-Reduce. Виконано порівняння ефективності подібної задачі на прикладі задачі рою часток в рамках моделі Map-Reduce (на основі фреймворку Spark) і акторної моделі з підтримкою спільної пам'яті (на основі Strumok DSL). Оцінено перспективи використання гібридної акторної моделі для інших подібних задач.Problems in programming 2021; 1: 49-55  Інститут програмних систем НАН України 2021-04-23 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/451 10.15407/pp2021.01.049 PROBLEMS IN PROGRAMMING; No 1 (2021); 49-55 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 1 (2021); 49-55 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 1 (2021); 49-55 1727-4907 10.15407/pp2021.01 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/451/455 Copyright (c) 2021 PROBLEMS IN PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2024-04-26T22:25:02Z
collection OJS
language Ukrainian
topic actor model
map-reduce
particle swarm optimization
parallel shared memory systems
UDC 004.434:004.75
spellingShingle actor model
map-reduce
particle swarm optimization
parallel shared memory systems
UDC 004.434:004.75
Larin, V.O.
Provotar, O.I.
Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
topic_facet actor model
map-reduce
particle swarm optimization
parallel shared memory systems
UDC 004.434:004.75
акторна модель
Map-Reduce
оптимізація методом рою частинок
паралельні системи із загальною пам'яттю
УДК 004.434:004.75
format Article
author Larin, V.O.
Provotar, O.I.
author_facet Larin, V.O.
Provotar, O.I.
author_sort Larin, V.O.
title Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
title_short Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
title_full Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
title_fullStr Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
title_full_unstemmed Comparison of the effectiveness of the Map-Reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
title_sort comparison of the effectiveness of the map-reduce approach and the actor model in solving problems with high connectivity of inp data on the example of the optimization problem for a swarm of particles
title_alt Порівняння ефективності підходів Map-Reduce і акторної моделі при розв’язанні завдань з високою зв'язністю вхідних даних на прикладі задачі оптимізації рою часток
description The paper defines the notion of distributed problems with bounded input components. Particle Swarm Optimization problem is shown to be an example of such a class. Such a problem's implementation based on the Map-Reduce model (implemented on the Spark framework) and an implementation based on an actor model with shared memory support (implemented on Strumok DSL) is provided. Both versions' performance assessment is conducted. The hybrid actor model is shown to be an order of magnitude more effective in time and memory efficiency than Map-Reduce implementation. Additional optimization for the hybrid actor model solution is proposed. The prospects of using the hybrid actor model for other similar problems are given. Problems in programming 2021; 1: 49-55
publisher Інститут програмних систем НАН України
publishDate 2021
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/451
work_keys_str_mv AT larinvo comparisonoftheeffectivenessofthemapreduceapproachandtheactormodelinsolvingproblemswithhighconnectivityofinpdataontheexampleoftheoptimizationproblemforaswarmofparticles
AT provotaroi comparisonoftheeffectivenessofthemapreduceapproachandtheactormodelinsolvingproblemswithhighconnectivityofinpdataontheexampleoftheoptimizationproblemforaswarmofparticles
AT larinvo porívnânnâefektivnostípídhodívmapreduceíaktornoímodelíprirozvâzannízavdanʹzvisokoûzvâznístûvhídnihdanihnaprikladízadačíoptimízacííroûčastok
AT provotaroi porívnânnâefektivnostípídhodívmapreduceíaktornoímodelíprirozvâzannízavdanʹzvisokoûzvâznístûvhídnihdanihnaprikladízadačíoptimízacííroûčastok
first_indexed 2024-09-16T04:08:43Z
last_indexed 2024-09-16T04:08:43Z
_version_ 1818568483252731904
fulltext Теоретичні та методологічні основи програмування © В.О. Ларін, О.І. Провотар, 2021 ISSN 1727-4907. Проблеми програмування. 2021. № 1 49 УДК 004.434:004.75 https://doi.org/10.15407/pp2021.01.049 В.О. Ларін, О.І. Провотар ПОРІВНЯННЯ ЕФЕКТИВНОСТІ ПІДХОДІВ MAP-REDUCE І АКТОРНОЇ МОДЕЛІ ПРИ РОЗВ’ЯЗАННІ ЗАДАЧ ІЗ ВИСОКОЮ ЗВ'ЯЗНІСТЮ ВХІДНИХ ДАНИХ НА ПРИКЛАДІ ЗАДАЧІ ОПТИМІЗАЦІЇ РОЮ ЧАСТОК Показані приклади класу розподілених паралельних задач зі зв'язаними компонентами вхідних даних в рамках моделі Map-Reduce. Виконано порівняння ефективності подібної задачі на прикладі задачі рою часток в рамках моделі Map-Reduce (на основі фреймворку Spark) і акторної моделі з підтримкою спі- льної пам'яті (на основі Strumok DSL). Оцінено перспективи використання гібридної акторної моделі для інших подібних задач. Ключові слова: акторна модель, Map-Reduce, оптимізація методом рою частинок, паралельні системи із загальною пам'яттю. Вступ В даний час модель Map-Reduce, набула широкого поширення в різних об- ластях – бізнес аналітика, розподілені об- числення, обробка даних для прикладних задач (медицина, комерція, фінанси і т. д.). В основі цієї моделі лежить прин- цип паралельної обробки і агрегації ліній- них масивів даних. Для обробки масиву даних необхідно задати дві функції: map, яка для кожного вхідного елемента співс- тавить від 0 до n вихідних пар ключ- значення, і reduce, яка агрегує всі значен- ня, що відповідають одному ключу [1–3]. При цьому допускається що дана модель – це універсальний примітив паралельних обчислень [4]. Альтернативний підхід – це модель акторів, винайдена в 1973 році, представляючи математичну модель, яка трактує поняття «актор» як універсальний примітив для паралельних обчислень: у відповідь на повідомлення, які він отри- мує, актор може змінити свій локальний стан, створити нові актори, і відправити повідомлення тим акторам яких він знає [5]. Дана модель залишалася в обмежено- му застосуванні до появи фреймворків Akka [6], Akka .NET, Orleans, які значно спростили її практичне використання. При більшій гнучкості моделі акторів (контроль життєвого циклу кожного акто- ра; маршрутизації повідомлень; контро- льований супервізор для нештатних ситу- ацій) залишається питання – наскільки доцільно застосування набагато більш комплексного підходу при вирішенні прикладних задач. Далі розглядатимемо обмеження моделі map-reduce і представ- лені рішення як для моделі акторів (на основі раніше запропонованої предметно- орієнтованої мови Strumok [7]), так і у вигляді ациклічно направленого графа з серій викликів map-reduce використовую- чи фреймворк Apache Spark на прикладі задачі оптимізації методом рою часток. Задачі зі зв'язаними компонентами вхідних даних і визначення їх в термінах Map-Reduce і акторів Структура підходу map-reduce пе- редбачає наявність всіх вхідних параметрів перед викликом безпосередньо map-reduce алгоритму. Але не для кожного завдання таке визначення всіх вхідних елементів є можливим. Припустимо, у нас є задача, задана в такий спосіб: 𝑆 = 𝐹(𝑉), 𝑉 = {𝑣𝑖}(𝑖=1) 𝑁 . В даному вираженні 𝑉 вектор вели- кої розмірності ℛ𝒩. Нехай 𝑂(𝑓) ≫ 𝑂(𝐹), тобто основна обчислювальна складність полягає у знаходженні 𝑉, знаючи який по- шук 𝑆 = 𝐹(𝑉) не складає великої обчис- лювальної складності. Масив компонент V Теоретичні та методологічні основи програмування 50 представлений функціонально залежними елементами, які можна обчислити ітера- ційно: 𝑣𝑖 = {𝑎(𝑖,𝑗)} (𝑗=0) 𝑀 , 𝑎(𝑖,𝑘+1) = 𝑓(𝑎(𝑖,𝑘)), 𝑎(𝑖,0) = 𝑎𝑖, де 𝑓: ℛ → ℛ. Така ітерація не може бути предста- влена одним викликом map-reduce, так як кожен наступний елемент ітерації зале- жить від попереднього, що в свою чергу порушує головну вимогу операції map – незалежність вхідних елементів один від одного. Але водночас, ми можемо її реалі- зувати як серію викликів окремих map- reduce підзадач. Таким чином, в разі якщо обчис- лення 𝑓 може бути представлено як неза- лежне обчислення кожної компоненти век- тора 𝑎(𝑖,𝑘) з простору ℛℳ, то задача знахо- дження S у цілому зводиться до ацикліч- ного направленого графу (дерева) глибини 𝑁, де елемент буде являти собою задачу map-reduce вигляду 𝑎(𝑖,𝑘+1) = 𝑓(𝑎(𝑖,𝑘)), ∀𝑖 = 1. . 𝑁 для вершин із ступенем 1, і 𝑆 = 𝐹(𝑉) для крайньої вершини. Задача оптимізації рою часток (Particle Swarm Optimization) як приклад класу задач з пов'язаними компонентами вихідних даних Метод рою часток (МРЧ) – метод чисельної оптимізації, для використання якого не потрібно знати точного градієнта функції що оптимізується [8–10]. МРЧ спочатку призначався для імітації соціа- льної поведінки [11, 12]. Алгоритм був спрощений, і було помічено, що він при- датний для виконання оптимізації. МРЧ оптимізує функцію, підтримуючи популя- цію можливих рішень, які називаються частками, і переміщує ці частинки в прос- торі рішень згідно простої формули. Пе- реміщення підкоряються принципу най- кращого знайденого в цьому просторі по- ложення, яке постійно змінюється при знаходженні частками більш вигідних положень. Розглянемо структуру обчис- лень в цьому алгоритмі. Ітераційно онов- люється набір часток – «рій», які посту- пово наближаються до екстремумів дослі- джуваної функції рухаючись з певною швидкістю щодо своїх минулих позицій. Неважко помітити, що така структура співвідноситься з обчисленням масиву залежних елементів і поданням його як ациклічного дерева обчислень у моделі map-reduce. Але, додатково до цього «рій» частинок вносить ще один елемент опти- мізації – швидкість руху частинок, а та- ким чином і кількість ітерацій, залежить від поточного кращого знайденого екст- ремуму. Це, в свою чергу, створює додат- ковий вид залежності між вхідними дани- ми (в рамках ітерацій). Спробуємо пред- ставити даний параметр апроксимовано нашій моделі. Припустимо наявність зов- нішнього для системи параметра L, який дозволяє знайти відразу наступний еле- мент ітерації: 𝑎(𝑖,𝑘+2) = 𝑓(𝑎(𝑖,𝑘)), 𝑎(𝑖,𝑘) < L. З цього співвідношення видно, що при хорошій оцінці глобального екстре- муму L, рішення може бути знайдено при дворазовому скороченні кількості ітера- цій. Таким чином для отримання оптима- льної паралельної ефективності методу важливо якомога швидше оновлювати значення L. В реальних задачах рою час- тинок прискорення залежить від значення параметрів функції швидкості частинки і впливає на стабільність алгоритму. Розг- лянемо додавання параметра L у систему ациклічного графа map-reduce і акторної моделі. В процесі ітерацій рою часток кожне обчислення 𝑎(𝑖,𝑘) дозволяє оновити оцінку L. Оцінимо час синхронізації па- раметра в різних моделях. У разі акторної моделі, параметр L може бути негайно оновлений для всіх акторів, які займаються ітеруванням час- ток. Розглянемо конфігурацію з одним обчислювальним вузлом. Витрати скла- дуть час на доставку й обробку повідом- лення будь-кому акторам. Цей час можна оцінити як час обробки одного значення 𝑎(𝑖,𝑘) кожним актором. При додаванні спі- льної пам'яті (Strumok) час оновлення стає Теоретичні та методологічні основи програмування 51 дуже малим і можна говорити про негайне оновлення, так як інші актори будуть без- печно звертатися до області загальної па- м'яті, значення в якій можна оновити за кілька тактів процесорного часу. У разі розподіленої конфігурації час оновлення складатиме часу затримки все- редині кластера, і механізм спільної пам'я- ті дозволить зменшити кількість трафіку що пересилається, і прискорити оновлення в рамках кожного вузла кластера. У моделі map / reduce, в свою чер- гу, кожен елемент map повинен зберігати всі дані необхідні для обчислення, таким чином оновлення параметра L можливо тільки між ітераціями, і, крім того, в роз- поділеної конфігурації час затримки клас- тера також накладається на швидкість оновлення, тому для подальшого порів- няння цей параметр можна опустити, при цьому потенційно акторна модель дозво- ляє максимально оптимізувати кластер- ний трафік. Загальний час оновлення необхід- ний системі на map-reduce можна оцінити в залежності від співвідношення кількості пар паралельних вузлів / процесорів до кількості часток в ітерації. Якщо співвід- ношення наближається до рівності (тобто при невеликій кількості часток у популя- ції) час оновлення map reduce стає відпо- відним з акторною моделлю. Водночас, при великій кількості часток, раннє онов- лення L при перших обчисленнях 𝑎(𝑖,𝑘) не відбудеться до повного завершення ітера- ції, що, по суті, робить оновлення параме- тра неефективним для більшості часток в ітерації, і призводить до втрати приско- рення, яке досягається оновленням L (дво- разове в апроксимованому випадку). Реалізація задачі рою частинок використовуючи підходи map-reduce (Spark) і акторної моделі (Strumok / Akka) Тепер розглянемо практичну реалі- зацію даної задачі в рамках акторної моде- лі. Залежно від величини 𝒩 можна делегу- вати по одному актору на кожен елемент 𝑣𝑖, або ж у разі великих значень 𝒩 кожен актор може обробляти певний сегмент значень 𝑣𝑖 . . 𝑣(𝑖+𝑙) заданий при конфігуру- ванні акторної моделі. У першому (більш тривіальному) випадку логіку акторів мо- жна визначити наступним псевдокодом: Message “Update”: If k == K then send “Compute S” to root with Ai and i Else Ai = f(Ai); k = k + 1; send “Update” to self Даний псевдокод дозволяє відразу звернути увагу що проміжне значення 𝑎(𝑖,𝑘) зберігається всередині актора, завдя- ки чому для виконання кожній ітерації досить лише порожнього повідомлення- тригера, пересилати додаткові дані, в тому числі між кластером (в разі розподіленої архітектури) не потрібно. Крім того, кожен актор оновлюється асинхронно, додатко- вий бар'єр на очікування однієї повної іте- рації 𝑉𝑘 не потрібен. У той же час в пара- дигмі Map-Reduce, запуск кожної ітерації вимагає копіювання вхідних даних, ініціа- лізації завдання на виконавчих вузлах (executors), а також блокування сесії до повного завершення ітерації. При використанні предметно орієн- тованої мови Strumok завдання оптимізації методом рою часток можна представити таким чином: package strumok.pso; import strumok.pso.TestFunction; actor Particle { actorref GMinimum handler local double minimum local double x local double value local double velocity message update() { var approxG = ~handler.g if (approxG<=handler.threshold) { return } Теоретичні та методологічні основи програмування 52 var rp = Random.value var rg = Random.value velocity = velocity * 0.3 + 0.7 * rp * (minimum - value) + 1.3 * rg * (approxG - value) x += velocity value = TestFunction(x) if (value < minimum) { minimum = value } if (value < approxG) { handler.updateMinimum(value) } update() } } actor GMinimum { actorref Swarm swarm shared double g shared double threshold message updateMinimum(double newValue) { if (newValue < g) { g = newValue if (g <= threshold) { swarm.complete(g) } } } } actor Swarm { @AkkaRoutedPool(strategy = RoutingStrategy.RoundRobin, size = 1000) actorref Selection<Particle> swarm actorref GMinimum handler Swarm() { handler = new GMinimum() broadcast swarm.initialize(handler) broadcast swarm.update() } message complete(double result) { println("Result is " - result); } } Даний лістинг визначає 3 класи ак- торів: Swarm – керуючий, GlobalMinimum – зберігає поточний глобальний екстре- мум (параметр L у моделі), Particle – клас обчислювача в рамках ітерації. Частки розміщуються в акторному пулі (розміром 1000), який ініціалізується початковими значеннями часток, а потім оновлює їх ітераційно до досягнення зазначеного threshold (оцінки глобального мінімуму). val minX = 0 val maxX = 10 val amount = 1000000 val startTime = System.currentTimeMillis() var particles = sc.parallelize(generateParticles(minX, maxX, amount)).repartition(8) val globalMinimumValue: Double = parti cles.map(_.localMinimum).min() val globalMinimum = new Minimum sc.register(globalMinimum, "minimum") globalMinimum.add(globalMinimumValue) def iterate() = { val g = sc.broadcast(globalMinimumValue) particles = particles.map(p => { val rp = r.nextDouble() val rg = r.nextDouble() var velocity = p.velocity * 0.7 + 0.7 * rp * (p.localMinimum - p.current) + 0.3 * rg * (g.value - p.current) //handle out of bounds.. if (p.x < minX && velocity < 0 || p.x > maxX && velocity > 0) { Теоретичні та методологічні основи програмування 53 velocity = -velocity } val x = p.x + velocity val current = f(x) val minimum = if (current < p.localMinimum) current else p.localMinimum if (current < g.value) globalMinimum.add(current) Particle(x, velocity, current, minimum) }).localCheckpoint() particles.foreach(_ => {}) globalMinimum.value } Лістинг вище визначає реалізацію ітерації методу рою часток для map-reduce фреймворка Apache Spark. Дана ітерація визначає глобальний лічильник globalMinimum, який оновлюється між ітераціями, і ітерацію map-reduce, де в map частини оновлюється значення частки, а reduce частина опущена (в реальному ал- горитмі може бути вибір максимуму, реа- лізація якого тривіальна і може бути опу- щена в тестовій реалізації). Отриманий проміжний екстремум повертається назов- ні для повторних ітерацій. Оцінка впливу зв'язності компонентів вхідних даних на ефективність Map-Reduce в порівнянні з акторним підходом Для кожної версії реалізації задачі була проведена оцінка ефективності робо- ти. Зважаючи на велику чутливість алго- ритму МРЧ до параметрів і недетерміно- ваного характеру алгоритму в цілому, за основу оцінки було взято час обчислення 10 мільйонів часток при збільшенні сумар- ної кількості ітерацій. Більш складні задачі вимагають більшої кількості ітерацій для вирішення, таким чином ефективність на великих кількостях ітерацій дозволяє оці- нити продуктивність системи в реальних умовах. З характеристиками стендової ма- шини: Intel Core i7 3770K 3.5GHz, 16GB 2133 MHz RAM, 128 GB SSD на десяти тестових прогонах отримані наступні усе- реднені результати (шкали логарифмічні) (рисунок). Рисунок Теоретичні та методологічні основи програмування 54 Як видно з графіку, Apache Spark дуже важко працює з довгими ациклічни- ми графами виконання (на значеннях іте- рацій в 1000 і вище, прискорення акторної моделі стає більш ніж на 2 порядки). Ак- торна модель реалізована на Strumok / Akka спочатку локально прискорюється (заповнюючи вільні обчислювальні потоки тестової машини), а після цього зберігає продуктивність і при високих розмірах задачі, а при використанні оптимізованої версії (коли кожен актор зберігає відразу кілька часток для поновлення) швидкість роботи зберігається стабільною при будь- якому зростанні ітерацій, які були в рам- ках експерименту. Висновки Перетворення над масивами неза- лежних наборів даних добре вирішуються в підході map-reduce, але при цьому при появі залежності між вхідними даними альтернативи, такі як модель акторів, а також модель акторів із спільною пам'ят- тю дозволяють отримувати вкрай істотні прирости в ефективності паралельних об- числень. Клас задач з пов'язаними вхід- ними даними добре представлений зада- чами глобальної оптимізації. Поведінка і ефективність такого класу задач були роз- глянуті на прикладі задачі оптимізації методом рою часток. На окремих конфі- гураціях прискорення може досягати де- сятків і сотень разів, що доводить значи- мість альтернативних підходів для подан- ня паралельних обчислень. Крім того, за- лишається важливим вивчення залежнос- тей в даних для кроку reduce, що так само може виявити клас задач, які ефективно вирішуються в рамках акторної моделі або подібних альтернатив, але при цьому помітно втрачають в ефективності в рам- ках map-reduce парадигми. Література 1. Борис Т.В., Алєксєєв М.О. Порівняльний аналіз технології паралельного обчислення великих масивів даних MapReduce. Proceedings of Second International Conference "Cluster Computing". Lviv , 2013. C. 54–57. 2. Гладкий М.В. Модель распределенных вычислений MapReduse. Труды БГТУ. 2016. Т. № 6. С. 194–198. 3. MapReduce – краткое руководство: веб- сайт. URL: https://coderlessons.com/ tutorials/bolshie-dannye-i-analitika/izuchit- kartu-umenshit/mapreduce-kratkoe- rukovodstvo (дата звернення 15 07 2020). 4. Mateu Zaharia. An Architecture for Fast and General Data Processing on Large Clusters. Association for Computing Machinery and Morgan & Claypool. 2016. P. 89. 5. Глибовець М.М., Зінчук С.О. Використан- ня моделі акторів для реалізації розподіле- них обчислень. Системні дослідження та інформаційні технології. 2015. № 2. С. 16–25. 6. Akka: веб-сайт. URL: https://akka.io/ (дата зверненя 19.07.2020). 7. Ларін В.О., Бантиш О.В., Галкін О.В., Провотар О.І. Предметно-ориентиро- ванный язык Strumok для описания актор- ных систем с общей памятью. Киберне- тика и системный анализ. 2018. Т. 54. С. 170–180. 8. Карпенко А.П, Селиверстов Е.Ю. Обзор методов роя частиц для задачи глобальной оптимизации (Particle Swarm Optimization). Наука и образование: электрон. науч.-тех. изд. URL: http://www.technomag.edu.ru (дата звернення 04 08 2020). 9. Курейчик В.В., Запорожец Д.Ю. Роевой алгоритм в задачах оптимизации. Извес- тия Южного федерального университета. Технические науки. 2010 p. № 7. С. 28–32. 10. Kennedy J., Eberhart R. Particle Swarm Optimization. Proceedings of the IEEE International Conference on Neural. NJ : IEEE Press, 1995. P. 1942–1948. 11. Олійник О.О., Субботін С.О. Оптимізація на основі колективного інтелекту рою ча- сток з керуванням зміною їхньої швидко- сті. Радіотехніка. Інформатика. Управ- ління. 2009. № 2. С. 96–101. 12. Hoorfar A. Evolutionary programming in electromagnetic optimization: a review. IEEE Trans. Antennas Propag. 2007. Vol. 55. Iss. 3. P. 523–537. https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/izuchit-kartu-umenshit/mapreduce-kratkoe-rukovodstvo https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/izuchit-kartu-umenshit/mapreduce-kratkoe-rukovodstvo https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/izuchit-kartu-umenshit/mapreduce-kratkoe-rukovodstvo https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/izuchit-kartu-umenshit/mapreduce-kratkoe-rukovodstvo https://akka.io/ Теоретичні та методологічні основи програмування 55 References 1. Boris T.V., Alekseev M.O., Comparative analysis of MapReduce - technology for parallel computation of large data sets. Proceedings of the Second International Conference "Cluster Computing". Lviv, 2013. P. 54–57. 2. Gladkiy M.V., Model of distributed calculations MapReduse. Proceedings of BSTU. 2016. N 6. P. 194–198. 3. MapReduce – a quick guide: a website. URL: https://coderlessons.com/tutorials/bolshie- dannye-i-analitika/izuchit-kartu- umenshit/mapreduce-kratkoe-rukovodstvo (accessed 15 07 2020). 4. Matthew Zechariah, An Architecture for Fast and General Data Processing on Large Clusters. Association for Computing Machinery and Morgan & Claypool. 2016. P. 89. 5. Hlybovets M.M., Zinchuk S.O., Using the model of actors for the implementation of distributed computing. System research and information technology. 2015. N 2. P. 16–25. 6. Akka: website. URL: https://akka.io/ (accessed 19 July 2020). 7. Larin V.O., Bantysh O.V., Galkin O.V., Provotar O.I., Object-oriented Strumok language for describing actor systems with shared memory. Cybernetics and systems analysis. 2018. Vol. 54. P. 170–180. 8. Karpenko A.P. and Seliverstov E.Y. “Review of particle swarm methods for the global optimization problem (Particle Swarm Optimization),” Nauka i obrazovanie: digital scientific and technical ed. URL: http://www.technomag.edu.ru (access date 04 08 2020). 9. Kureychik V.V., Zaporozhets D.Yu. Swarm algorithm in optimization problems. Izvestiya Yuzhnogo federalnogo universiteta. Technical sciences. 2010. Vol. 7. P. 28–32. 10. Kennedy J., Eberhart R. Particle Swarm Optimization. Proceedings of the IEEE International Conference on Neural. NJ: IEEE Press, 1995. P. 1942–1948. 11. Oliynyk O.O., Subbotin S.O., Optimization on the basis of collective intelligence of a swarm of particles with control of change of their speed. Radiotechnics. Informatics. Management. 2009. Vol. 2. P. 96–101. 12. Hoorfar A. Evolutionary programming in electromagnetic optimization: a review. IEEE Trans. Antenna Propag. 2007. Vol. 55. Iss. 3. P. 523–537. Одержано 24.02.2021 Про авторів: Провотар Олександр Іванович, доктор фізико-математичних наук, професор, завідувач кафедри інтелектуальних програмних систем. Кількість наукових публікацій в українських виданнях – 150. Кількість наукових публікацій в зарубіжних виданнях – 45. Н-індекс – 5, http://orcid.org/0000-0002-6556-3264, Ларін Владислав Олегович, аспірант. Кількість наукових публікацій в українських виданнях – 4. Кількість наукових публікацій в зарубіжних виданнях – 1. Тел.: +380972712208. E-mail: vlarinmain@gmail.com. Місце роботи авторів: Київський національний університет імені Тараса Шевченка, 03187, Київ-187, Проспект Академіка Глушкова, 4д. Факультет комп’ютерних наук та кібернетики.