Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators

We examine a new method for constructing parallel hierarchical systems of fuzzy logic inference using multi-tier parallel form of algorithms based on Nvidia GPU accelerators and CUDA technology. The efficiency of application of hierarchical systems of fuzzy inference for development of diagnostic in...

Повний опис

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

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-306
record_format ojs
resource_txt_mv ppisoftskievua/88/9531592920d0330c9f5707b46365b588.pdf
spelling pp_isofts_kiev_ua-article-3062024-04-28T11:45:30Z Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators Метод разработки параллельных систем нечеткого логического вывода на основе графических ускорителей Метод побудови паралельних систем нечіткого логічного виведення на основі графічних прискорювачів Yershov, S.V. Ponomarenko, R.N. intelligent system; multi-tier parallel form of computing; GPU ace­lerators; fuzzy logic; Takagi – Sugeno system; CUDA UDC 681.3.06 интеллектуальная система; ярусно-параллельная форма вычислений; графические ускорители; нечеткая логика; система Такаги – Сугено; CUDA УДК 681.3.06 інтелектуальна система; ярусно-паралельна форма обчислень; графічні прискорювачі; система Такагі – Сугено; нечітка логіка; CUDA УДК 681.3.06 We examine a new method for constructing parallel hierarchical systems of fuzzy logic inference using multi-tier parallel form of algorithms based on Nvidia GPU accelerators and CUDA technology. The efficiency of application of hierarchical systems of fuzzy inference for development of diagnostic intelligent system is substantiated. We characterize the organization of efficient computations on graphic accelerators with the aim of achieving maximum degree of parallelism in fuzzy hierarchical systems. In particular, the above organization relies on parallelization of rules inside each block of fuzzy rules. An intelligent software system for assessing the quality of startups based on parallel inference architecture that contains Takagi – Sugeno blocks of fuzzy rules is developed. The experiment is conducted to demonstrate acceleration estimates for developed intellectual system for assessing the quality of startups as well as for more complex systems with randomly generated dependencies between blocks of rules. We compare characteristics of the obtained acceleration estimates with corresponding estimates for hierarchical fuzzy systems based on the distributed computing technology and MPI message exchange. The advantages of developed method for construction of parallel fuzzy inference based on GPU are substantiated. Problems in programming 2017; 4: 003-015 Разработан и обоснован метод построения параллельных иерархических систем нечеткого логического вывода с использованием ярусно-параллельной формы алгоритмов на основе графических ускорителей Nvidia и технологии CUDA. Обоснована эффективность применения иерархических систем нечеткого логического вывода для построения диагностических интеллектуальных систем. Рассматриваются способы организации эффективных вычислений на графических ускорителях с целью распараллеливания нечетких иерархических систем. Разработана интеллектуальная система оценивания качества стартапов на основе иерархии блоков нечетких правил Такаги – Сугено. Получены оценки ускорения для разработанной интеллектуальной системы оценивания качества стартапов, а также для нечетких систем, зависимости между блоками правил которых сгенерированы случайным образом. Представлена сравнительная характеристика полученных оценок ускорения и оценок ускорения вариантов нечетких систем на основе технологии MPI. Обоснованы преимущества разработанного метода распараллеливания систем нечеткого логического вывода на основе графических ускорителей.Problems in programming 2017; 4: 003-015 Розроблено та обґрунтовано метод побудови паралельних систем нечіткого логічного виведення Такагі – Сугено на основі графічних прискорювачів Nvidia. Розроблено інтелектуальну систему оцінювання якості стартапів на основі ієрархічних систем нечіткого логічного виведення Такагі – Сугено. Встановлено оцінки прискорення систем нечіткого виведення, що побудовані за зазначеним методом, здійснено порівняльну характеристику з варіантами нечітких систем, що реалізовані на базі технології паралельного програмування MPI.Problems in programming 2017; 4: 003-015  Інститут програмних систем НАН України 2018-11-15 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/306 10.15407/pp2017.04.003 PROBLEMS IN PROGRAMMING; No 4 (2017); 3-15 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2017); 3-15 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2017); 3-15 1727-4907 10.15407/pp2017.04 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/306/300 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:45:30Z
collection OJS
language Ukrainian
topic intelligent system
multi-tier parallel form of computing
GPU ace­lerators
fuzzy logic
Takagi – Sugeno system
CUDA
UDC 681.3.06
spellingShingle intelligent system
multi-tier parallel form of computing
GPU ace­lerators
fuzzy logic
Takagi – Sugeno system
CUDA
UDC 681.3.06
Yershov, S.V.
Ponomarenko, R.N.
Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators
topic_facet intelligent system
multi-tier parallel form of computing
GPU ace­lerators
fuzzy logic
Takagi – Sugeno system
CUDA
UDC 681.3.06
интеллектуальная система
ярусно-параллельная форма вычислений
графические ускорители
нечеткая логика
система Такаги – Сугено
CUDA
УДК 681.3.06
інтелектуальна система
ярусно-паралельна форма обчислень
графічні прискорювачі
система Такагі – Сугено
нечітка логіка
CUDA
УДК 681.3.06
format Article
author Yershov, S.V.
Ponomarenko, R.N.
author_facet Yershov, S.V.
Ponomarenko, R.N.
author_sort Yershov, S.V.
title Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators
title_short Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators
title_full Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators
title_fullStr Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators
title_full_unstemmed Method of construction of parallel systems for fuzzy logical inference based on GPU accelerators
title_sort method of construction of parallel systems for fuzzy logical inference based on gpu accelerators
title_alt Метод разработки параллельных систем нечеткого логического вывода на основе графических ускорителей
Метод побудови паралельних систем нечіткого логічного виведення на основі графічних прискорювачів
description We examine a new method for constructing parallel hierarchical systems of fuzzy logic inference using multi-tier parallel form of algorithms based on Nvidia GPU accelerators and CUDA technology. The efficiency of application of hierarchical systems of fuzzy inference for development of diagnostic intelligent system is substantiated. We characterize the organization of efficient computations on graphic accelerators with the aim of achieving maximum degree of parallelism in fuzzy hierarchical systems. In particular, the above organization relies on parallelization of rules inside each block of fuzzy rules. An intelligent software system for assessing the quality of startups based on parallel inference architecture that contains Takagi – Sugeno blocks of fuzzy rules is developed. The experiment is conducted to demonstrate acceleration estimates for developed intellectual system for assessing the quality of startups as well as for more complex systems with randomly generated dependencies between blocks of rules. We compare characteristics of the obtained acceleration estimates with corresponding estimates for hierarchical fuzzy systems based on the distributed computing technology and MPI message exchange. The advantages of developed method for construction of parallel fuzzy inference based on GPU are substantiated. Problems in programming 2017; 4: 003-015
publisher Інститут програмних систем НАН України
publishDate 2018
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/306
work_keys_str_mv AT yershovsv methodofconstructionofparallelsystemsforfuzzylogicalinferencebasedongpuaccelerators
AT ponomarenkorn methodofconstructionofparallelsystemsforfuzzylogicalinferencebasedongpuaccelerators
AT yershovsv metodrazrabotkiparallelʹnyhsistemnečetkogologičeskogovyvodanaosnovegrafičeskihuskoritelej
AT ponomarenkorn metodrazrabotkiparallelʹnyhsistemnečetkogologičeskogovyvodanaosnovegrafičeskihuskoritelej
AT yershovsv metodpobudoviparalelʹnihsistemnečítkogologíčnogovivedennânaosnovígrafíčnihpriskorûvačív
AT ponomarenkorn metodpobudoviparalelʹnihsistemnečítkogologíčnogovivedennânaosnovígrafíčnihpriskorûvačív
first_indexed 2024-09-16T04:07:46Z
last_indexed 2024-09-16T04:07:46Z
_version_ 1818568244515045376
fulltext Моделі та засоби паралельних і розподілених програм © С.В. Єршов, Р.М. Пономаренко, 2017 ISSN 1727-4907. Проблеми програмування. 2017. № 4 3 УДК 681.3.06 С.В. Єршов, Р.М. Пономаренко МЕТОД ПОБУДОВИ ПАРАЛЕЛЬНИХ СИСТЕМ НЕЧІТКОГО ЛОГІЧНОГО ВИВЕДЕННЯ НА ОСНОВІ ГРАФІЧНИХ ПРИСКОРЮВАЧІВ Розроблено та обґрунтовано метод побудови паралельних систем нечіткого логічного виведення Та- кагі – Сугено на основі графічних прискорювачів Nvidia. Розроблено інтелектуальну систему оціню- вання якості стартапів на основі ієрархічних систем нечіткого логічного виведення Такагі – Сугено. Встановлено оцінки прискорення систем нечіткого виведення, що побудовані за зазначеним методом , здійснено порівняльну характеристику з варіантами нечітких систем, що реалізовані на базі техноло- гії паралельного програмування MPI. Ключові слова: інтелектуальна система, ярусно-паралельна форма обчислень, графічні прискорювачі, система Такагі – Сугено, нечітка логіка, CUDA. Вступ У даний час нечітка логіка широко застосовується у багатьох сферах при створенні інтелектуальних програмних систем та технологій, а саме, діагностич- них систем, систем розпізнавання образів, інтелектуальних мультиагентних систем, що забезпечують підтримку прийняття складних рішень в умовах невизначеності [1, 2]. Методи нечіткого виведення, що використовуються у різних інтелектуаль- них системах, грунтуються на базах знань, які задаються у вигляді сукупності нечіт- ких предикатних правил. Запропоновано кілька методів нечіткого логічного виве- дення, які відрізняються операторами за- стосування та композиції нечітких мно- жин, що містяться у правилах, методами приведення отриманих нечітких значень до чітких чисел, таких як методи Мамдані, Ларсена, Такагі – Сугено та інші [2]. Зок- рема, нечіткий метод Такагі – Сугено ґру- нтується на базі знань, що представляється наборами правил «якщо-то», які можуть бути узагальнені наступним чином: татаякщо: 2211 jjj AxAxR  ),,...,,(тота 21 njnjn xxxgyAx  ,,...,2,1 Nj  де jg – чітка функція від ix . Проте, при побудові інтелектуаль- них систем існує проблема, що заважає будувати нечіткі системи великої розмір- ності, а саме, при збільшенні кількості вхі- дних значень у системі значно збільшуєть- ся кількість правил. Система з нечіткими правилами (СНП) з n вхідними змінними та l лінгвістичними термами на одну змінну містить nl правил [3]. Очевидно, що побудувати та перевірити таку кіль- кість правил для систем, що мають кілька десятків вхідних змінних, не під силу на- віть досвідченим експертам. Тому для ви- рішення задач великої складності та розмі- рності запропоновані ієрархічні системи нечіткого логічного виведення, що покли- кані зменшити число правил системи та відповідно збільшити складність систем логічного виведення на основі нечіткої математики. Запропоновано різні варіанти вве- дення ієрархічних структур для систем з нечіткими правилами [3–7]. Правила або змінні можуть бути розподілені на різних рівнях відповідно до їх специфічності, де- талізації, релевантності тощо. Визначення ієрархічних нечітких систем як методу вирішення задач нечіткого логічного виве- дення з вищим рівнем складності, ніж ті, для яких зазвичай призначені звичайні СНП, базується на застосуванні певного способу декомпозиції, що породжує ієрар- хію систем нижчої складності [3]. Перший метод побудови ієрархіч- них структур визначає такі структури на основі пріоритетності правил таким чином, Моделі та засоби паралельних і розподілених програм 4 що правила з неоднаковим рівнем специ- фічності отримують неоднаковий пріори- тет. При цьому, правила, що мають більш високий пріоритет, є більш специфічними [4, 5]. Загальне правило застосовується лише в тих випадках, коли не існує відпо- відного специфічного правила. У цьому випадку ієрархія утворюється в результаті застосування конкретного механізму ім- плікації, який застосовує правила, беручи до уваги їх пріоритет. Для розробки ієрар- хічних СНП правила мають бути згрупо- вані за певними рівнями пріоритетів. Інший варіант полягає у тому, щоб розглянути ієрархію розбиття вхідного простору змінних з різною деталізацією [6]. Нечіткі розбиття описують набори лін- гвістичних термів, пов’язаних з кожною змінною в лінгвістичних правилах, а та- кож функції належності, що визначають семантику зазначених лінгвістичних тер- мів. З цієї точки зору, СНП може бути структуровано за шарами, де кожен шар містить нечіткі розбиття з окремою деталі- зацією, а також правила, що використову- ють ці нечіткі розбиття. Зазвичай, кожне розбиття у певному шарі має однакове чи- сло нечітких термів. У цьому випадку пра- вила, що належать до різних шарів мають різний рівень деталізації, що певним чи- ном пов’язано з вищезазначеною ідеєю специфічності. Зовсім інший метод – це введення декомпозиції на рівні змінних. У цьому випадку вхідний простір розбивається на підпростори нижчої розмірності, і кожна вхідна змінна розглядається тільки на пев- ному рівні ієрархії. Результатом є каскадна структура СНП, в якій, крім підмножини вхідних змінних, вихід кожного рівня роз- глядається як один з можливих входів на- ступного рівня [7]. У результаті нечітка система розкладається на скінчене число підсистем зменшеної складності, усуваючи необхідність застосування надскладної машини логічного виведення. Така деком- позиція зазвичай виражається як спосіб усунути проблеми, що виникають внаслі- док так званого зростання розмірності, тобто експоненціального зростання кіль- кості правил, пов’язаних з кількістю змін- них нечіткої системи. У такому підході до ієрархічних СНП змінні (і правила) поділяються на різні рівні таким чином, що найбільш впливові змінні обрані як вхідні змінні на першому рівні, наступні найбільш важли- ві змінні вибираються як вхідні змінні на другому рівні тощо. Вихідні змінні окре- мих рівнів вводяться як вхідні змінні на наступному рівні. З такою структурою правила на першому рівні СНП мають структуру ана- логічну будь-якій СНП типу Такагі – Су- гено або Мамдані, але на k -му рівні ( k > 1), правила містять як вхід вихідні значення попереднього рівня IF XNk+1=LTNk+1 and . . . and XNk+nk=LTNk+nk and Ok-1=LTOk-1 THEN Ok=LTOk, де значення kN визначає кількість вхідних змінних, що розглядаються на попередніх рівнях     1 1 k t tk nN , де tn – кількість змінних системи, засто- сованих на рівні t . Змінна Ok представляє вихідне значення k -го рівня ієрархії. Всі вихідні значення – це проміжні змінні, за винятком виходу останнього рівня Y (загальне вихідне значення нечіткої системи). За допомогою зазначеної структури показано [7], що кількість правил у повній базі правил може бути представлена як лінійна функція від числа змінних, тоді як у звичайних (неієрархічних) СНП до- статня кількість правил визначається експоненціальною функцією від числа змінних. Однак, застосування вищезазначе- ного підходу представлено в [2] тільки для систем нечіткого виведення, для яких кількість рівнів не перевищує 2–3, а кіль- кість вхідних змінних – не більше кількох десятків відповідно. Подальше збільшен- ня складності ієрархічних систем нечітко- го виведення вимагає розв’язання про- блеми, що пов’язана із значним збільшен- ням часу виконання логічного виведення Моделі та засоби паралельних і розподілених програм 5 в складних моделях з великою кількістю ієрархічних нечітких систем. Для подолання зазначеної проблеми запропоновано методи паралельної роботи нечітких ієрархічних систем для зменшен- ня часу їх виконання з використанням тех- нології MPI [8, 9]. Метою даної роботи є розробка ме- тоду побудови паралельних алгоритмів нечіткого логічного виведення на базі су- часної архітектури графічних прискорюва- чів та технології CUDA для отримання суттєво більшого прискорення, ніж на ос- нові MPI, та встановлення показників ефе- ктивності складних ієрархічних систем нечіткого логічного виведення Такагі – Сугено, побудованих на основі ярусно- паралельних моделей обчислень. Ярусно-паралельна модель обчислень У роботах [8, 9] розроблено та об- грунтовано алгоритми ярусно-паралельної схеми обчислень для ієрархічних систем нечіткого логічного виведення. В даній роботі для здійснення нечі- ткого логічного виведення на графічних прискорювачах, за основу було взято саме ярусно-паралельну форму обчислень, про- те, як буде показано далі, в даній модифі- кації буде реалізовано внутрішній парале- лізм кожної окремої вершини графа зале- жностей ієрархічної системи. Побудова графа залежностей є ос- новою аналізу паралельних алгоритмів. Будь-який паралельний алгоритм можна представити у вигляді орієнтованого ацик- лічного мультиграфа ),( EVG  , де V – множина вершин, а E – множина ребер графа. Вершини представляють множину операцій алгоритму, кожна операція алго- ритму має власні вхідні аргументи, та не може бути виконана до моменту виконан- ня всіх операцій-постачальників аргумен- тів для неї. Нехай u та v – пара вершин графа. Наприклад, припустимо, що вершина v має постачати обчислені аргументи вер- шині u . Тоді існує ребро графа від вер- шини v до вершини u . Якщо ж вершина v не постачає аргументів (змінних) для вершини u , то дугу не проводимо. Вер- шини, що не мають вхідних (вихідних) дуг називаються вхідними (вихідними) вершинами відповідно, а весь граф – гра- фом алгоритму. У випадку, коли дуги (за- лежності між операціями) відсутні, аргу- менти операцій постачаються із вхідних даних. Під операцією розуміємо множину логічно взаємозв’язаних інструкцій про- грами [10]. Введемо поняття ярусу паралельної форми алгоритму. Нехай задано орієнто- ваний ациклічний граф, який має n вер- шин. Кожну вершину даного графа можна помітити таким числом, меншим за n, що якщо з вершини з індексом i іде дуга з індексом j, то i < j [10]. Група вершин, які мають однаковий індекс, називається яру- сом паралельної алгоритму, а число вер- шин i -ї групи – шириною ярусу. Наступ- ний ярус не розпочне роботу до тих пір, поки не закінчиться виконання останньої операції попереднього ярусу, тобто не буде проведена ярусна синхронізація. Паралельні алгоритми, які дослі- джуються в даній роботі, відповідають ярусно-паралельній формі алгоритмів [10] (рис. 1). У даному випадку N=7, 3s . Алгоритм ярусно-паралельної форми ви- конується наступним чином: 1) обчислюються результати вер- шин першого ярусу ( i =1) до тих пір, поки не відпрацюють всі до останньої вершини даної групи, тобто не буде проведена син- хронізація роботи вершин ярусу 1; 2) попередній ярус відкидається, повторюються операції з першого пункту, але вже для ярусу i = i +1; 3) повторюється (2) до тих пір, поки si  . При досягненні значення si  процес обчислень за ярусно-паралельною формою вважається завершеним. Процес синхронізації за ярусами є обов’язковою умовою ярусно-паралельної форми обчислень. Проте, якщо блоки пра- вил у вершинах графа залежностей мають приблизно однаковий час роботи, на прис- корення всієї ієрархічної системи синхро- нізація суттєво не впливає. Моделі та засоби паралельних і розподілених програм 6 Рис. 1. Схема ярусно-паралельного алгоритму Паралельний метод нечіткого логічного виведення Такагі – Сугено на основі архітектури CUDA Технологія CUDA [11] – це техно- логія, що дозволяє використовувати відео- карту як обчислювальний пристрій з ме- тою прискорення виконання обчислень. Керування всією програмою залишається за процесором, на GPU виконуються тіль- ки окремі функції, команду до запуску яких надає центральний процесор. Заван- таження та вивантаження даних із пам’яті GPU до оперативної пам’яті також покла- дено на неї. Серед труднощів роботи з техноло- гією CUDA можна виділити обмеження розмірності вкладених циклів. Методи ус- унення даної проблеми запропоновано в [12]. Паралельний метод нечіткого логі- чного виведення Такагі – Сугено грунту- ється на ярусно-паралельній схемі обчис- лень. Побудова ярусно-паралельної схеми обчислень. Першим етапом є побу- дова ярусно-паралельної схеми обчислень для ієрархічної нечіткої системи. У випад- ку ієрархічних нечітких систем множиною вершин вважатимемо множину нечітких блоків правил. Зв’язки між вершинами (залежності між нечіткими блоками пра- вил, елементарними системами нечіткого виведення), або ребра графу залежностей задаються на етапі введення вхідних да- них. Ярусно-паралельна схема містить наступні етапи обчислень ( i – номер яру- су, s – кількість ярусів, n – кількість вер- шин у графі залежностей): 1) знаходимо всі вершини, що не мають дуг (висячі), та записуємо їх індекси до списку групи вершин першого ярусу (i=1). Змінну s інкрементуємо на одиницю; 2) відкидаємо з графу вершини, знайдені на попередньому етапі та шукає- мо за попереднім принципом вже нову групу вершин, але індексуємо дану групу як i=i+1 та s= s+1; 3) повторюємо операцію (2) доти, поки n > 0, тобто поки не будуть помічені всі вершини графу. В глобальну пам’ять відеокарти мають бути скопійовані наступні дані:  кількість вершин графа N;  одномірний масив об’єктів ве- ршин графа 𝑉 = {𝑣𝑖}, 𝑖 = 1, 𝑁̅̅ ̅̅ ̅. У даному випадку вершинами є об’єкти, що моде- люють поведінку кожної елементарної системи нечіткого логічного виведення Такагі – Сугено;  кількість ярусів графа s;  одномірний масив значень ши- рини кожного ярусу 𝐿 = {𝑙𝑖}, 𝑖 = 1, 𝑠̅̅ ̅̅ ;  одномірний масив номерів ве- ршин у тому порядку, в якому вони були розділені на групи M = {𝑚𝑖}, 𝑖 = 1, 𝑁̅̅ ̅̅ ̅ , як показано на рис. 2. i=2 4 5 6 7 2 3 1 i=1 i=3 Синхронізація по ярусам Моделі та засоби паралельних і розподілених програм 7 Рис. 2. Масив послідовності номерів вершин у порядку слідування груп Індексація вершин графу. Для ко- піювання вхідних даних в пам’ять GPU, об’єкти-вершини ярусно-паралельної схе- ми зберігаються в одномірному масиві. Тому виникає проблема індексації вершин з урахуванням номеру яруса. Далі предста- влено метод індексації вершин у масивах, в яких зберігаються графи залежностей блоків правил нечітких систем та, відпо- відно, спосіб визначення індексів вершин кожного ярусу. Нехай N – кількість вершин графа (кількість блоків правил в ярусі), s – кіль- кість ярусів. Тоді, якщо кількість систем в 𝑖-му ярусі – il , 𝑖 = 1, 𝑠̅̅ ̅̅ , то маємо наступне співвідношення:    s i i Nl 1 . Нехай V – масив вершин, 𝑀 – ма- сив номерів вершин. Визначимо для кож- ного ярусу 𝑖 групу вершин 𝐷𝑖 = = {𝑑𝑝 (𝑖) }, 𝑝 = 1, 𝑙𝑖 ̅̅ ̅̅ ̅ у масиві V . Тоді кожна вершина i-го ярусу в масиві V індексуєть- ся за наступною формулою: 𝑑𝑝 (𝑖) = 𝑀 𝑧𝑝 (𝑖) , 𝑧𝑝 (𝑖) = 𝑝 + ∑ 𝑙𝑘 𝑖 𝑘=1 , де 𝑖 – номер ярусу, 𝑝 – номер вершини в 𝑖- му ярусі, 𝑧𝑝 (𝑖) – індекс номера вершини 𝑝 𝑖- го ярусу в масиві M . )(i pz M – це обчисле- ний індекс вершини )(i pd в масиві V . Внутрішній паралелізм. Кожна вершина (елементарна нечітка система) містить множину об’єктів для здійснення нечіткого виведення за певною множиною вхідних значень. Особливістю обчислення кожного правила є можливість їх активіза- ції у будь-якій послідовності, тобто вихідні значення правил можуть обчислюватися незалежно одне від одного. Таким чином, обчислення значень за всіма правилами в межах кожної елементарної нечіткої систе- ми (кожної вершини) можна виконувати паралельно. В цьому випадку кожна вер- шина 𝑣𝑖 являє собою окремий підграф, а кожне правило можна розглядати як окре- му вершину підграфа 𝑣𝑖. Нехай кожна 𝑣𝑖 вершина графа 𝐺 – орієнтований ацикліч- ний мультиграф 𝑅 = {𝐻, 𝑌}, де 𝐻 – множи- на вершин, а 𝑌 – множина ребер графа 𝑅. 𝐻 = {ℎ𝑗}, 𝑗 = 1, 𝑀𝑖 + 1̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅, де iM – кількість правил і-ї вершини графа G , а 𝑀𝑖 + 1 вер- шиною є функція нечіткого логічного вво- ду. 𝑌 = {𝑦𝑑}, 𝑑 = 1, 𝑀𝑖 ̅̅ ̅̅ ̅̅ , де iM – кількість правил і-ї вершини графа G . У кожному графі 𝑅 від кожної вершини ℎ𝑗 … ℎ𝑀𝑖 про- ведені дуги до вершини ℎ𝑀𝑖+1 (рис. 3). Та- кий граф має назву канонічної паралельної форми [10] і відповідно значення правил у вершинах ℎ𝑗 … ℎ𝑀𝑖 можуть бути обчислені паралельно в межах одного ярусу. Рис. 3. Представлення графа 𝑅 Паралельне виведення в ієрархі- чних нечітких системах. Найважливішим етапом є здійснення обчислень результую- чих значень ієрархічної системи на графі- чних прискорювачах Nvidia. Графічний процесор складається з сітки Grid, яка по- діляється на блоки (blocks). Кожний блок, у свою чергу містить нитки (threads). Роз- поділ обчислень в ієрархічних нечітких системах між блоками та нитками показа- но на рис. 4. 4 5 5 6 7 2 3 1 s = 3 1 ярус (𝑙1 = 4) 2 ярус (𝑙2 = 2) 3 ярус (𝑙3 = 1) N = 7 ........... 1 𝑀𝑖+1 2 𝑀𝑖 3 Моделі та засоби паралельних і розподілених програм 8 Рис. 4. Схема розподілу обчислень в ієрархічних нечітких системах на основі GPU Основна ідея застосування техноло- гії CUDA при побудові ієрархічних систем нечіткого логічного виведення полягає у тому, що результуюче значення кожної елементарної нечіткої системи (кожної вершини 𝑣𝑖 графа G ) обчислюється окре- мим блоком правил, у якому, в свою чергу, обробка кожного правила (кожної верши- ни ℎ𝑗 графа 𝑅) системи розподіляється за нитками зазначеного блоку. Таким чином, для досягнення біль- шого прискорення логічного виведення в ієрархічних нечітких системах Такагі – Сугено ефективно реалізовано як парале- льне обчислення результатів блоків пра- вил, так і можливість внутрішнього пара- лелізму за правилами в кожному окремому блоці (рис. 4). Відеокарта архітектури 6.1. Pascal, яка використовувалась для експеримента- льних обчислень побудованої програмної системи, має 768 процесорних ядер, що обчислюють виділені блоки та нитки в них, що дозволяє ефективно реалізувати внутрішній паралелізм при нечіткому ви- веденні. Внутрішній паралелізм, у свою чергу, мінімізує втрати процесорних ресу- рсів, максимально навантажуючи ядра графічного процесора. Залучення великої кількості проце- сорів на CPU вимагає залучення супер- комп’ютера, проте має суттєві обмеження, що пов’язані з відсутністю спільної пам’яті та додатковими витратами часу на обмін даними між процесорами розподіле- ної системи. Оцінка прискорення нечіткого логічного виведення в ієрархічних сис- темах. При використанні графічних прис- корювачів досягається значне прискорення обчислень для ієрархічних нечітких сис- тем, яке набагато більше ніж для парале- льних обчислень таких саме систем на ос- нові MPI (рис. 5). Такий результат отрима- но саме за рахунок масового паралелізму, використання загальної пам’яті, а особли- во за рахунок розпаралелювання всередині кожної системи за правилами, тобто внут- рішнього паралелізму. Зазначений резуль- тат експериментально підтверджено для ієрархічних нечітких систем, залежності входів-виходів між окремими блоками правил якого задаються графом великої розмірності (N=1000 блоків) та генерують- ся випадковим чином. Кількість ребер 𝑞 задається як 𝑞 = 4 ∗ 𝑛, де 𝑛 – кількість зге- нерованих вершин графа. Очевидно, що зі збільшенням кі- лькості систем збільшується і приско- рення (рис. 5). Для ієрархічних нечітких систем, що складаються із 1000 елемен- тарних систем, прискорення на основі технології CUDA – більше ніж у 500 ра- зів у порівнянні з послідовним варіантом. Варіант програми на базі MPI на 24 про- цесорах прискорює нечітке виведення не більше, ніж у 20 раз, але в 25 разів менше за GPU. 2 3 1 4 5 6 7 Block 4 Threads 1, 2, 3, … , 𝑀𝑖 Thread 1 ........... 1 𝑀𝑖+1 2 𝑀𝑖 3 Block 2 ярус 2 ярус 3 ярус 1 Block 4 Block 1 Block 3 Block 1 Block 1 Block 2 Моделі та засоби паралельних і розподілених програм 9 Рис. 5. Прискорення нечіткого виведення для ієрархічних нечітких систем Побудова інтелектуальної системи оцінки привабливості стартапів на основі ієрархічної нечіткої системи Метою даної інтелектуальної сис- теми є аналіз та оцінювання якості ста- ртапів за різними показниками та отри- мання комплексної оцінки привабливості даних стартапів. Під привабливістю ста- ртапу часто розуміють доцільність його подальшого запуску, фінансування та ро- боти над ним [13]. На сьогоднішній день вищезазначе- на задача є дуже актуальною. Невеликі інноваційні проекти все більше займають місце в малому бізнесі, проте виникає не- обхідність попередньої оцінки проекту на предмет прибутковості та зменшення ри- зиків для потенційних інвесторів та розро- бників таких проектів. Базу знань у вигляді нечітких пра- вил розробляє експерт або група експертів з даної предметної області. Програмна си- стема ґрунтується на лінгвістичних прави- лах, таких як, if x is high then y is good. Спеціальний програмний модуль системи обробляє лінгвістичні вирази, переводить їх до представлення у вигляді нечітких множин. Всього ієрархічна нечітка система оцінки привабливості стартапів містить 162 правила. Враховуючи, що кожна з 15 вхідних змінних може бути представлена одним з трьох лінгвістичних значень, по- будова відповідної повної бази для систе- ми без ієрархії вимагає створення 315 нечі- тких правил. Очевидно, що побудувати та перевірити таку кількість правил для ана- логічної, але однорівневої системи не під силу навіть досвідченим експертам. Зазначимо, що розробка ієрархіч- них систем нечіткого логічного виведення дозволяє значно збільшити кількість фак- торів, що впливають на оцінку привабли- вості стартапів, дозволяючи прийняти більш об’єктивне рішення щодо подаль- шого фінансування. При цьому кількість правил, які має написати експерт, за ра- хунок декомпозиції, значно зменшується. Граф залежностей між блоками нечітких правил, їх вхідні та вихідні змінні показа- но на рис. 6. На рис. 7 показано лінгвістичні те- рми (Високий, Середній, Низький) та від- повідні функції належності, які викорис- товуються в інтелектуальній системі оці- нки привабливості стартапів. Використані трикутні функції належності на інтервалі можливих значень від одного до п’яти (рис. 7). Моделі та засоби паралельних і розподілених програм 10 Рис. 6. Граф залежностей між блоками нечітких правил в інтелектуальній системі оцінки привабливості стартапів Для побудови нечіткої ієрархічної системи оцінки привабливості необхідно визначити простір вхідних факторів 𝑋 = {𝑥𝑖}, 𝑖 = 1, 𝑛̅̅ ̅̅ ̅ (табл. 1), та простір вихід- них значень системи 𝑌 = {𝑦𝑗}, 𝑗 = 1, 𝑚̅̅ ̅̅ ̅̅ (табл. 2), що являють собою різні показ- ники проекту. На основі критеріїв, що представлені в табл. 1, можна визначити вхідні змінні, що необхідні для нечіткого виведення в інтелектуальній системі. Представлена система є ієрархіч- ною (рис. 6), тобто всі вхідні змінні зада- ються користувачем до початку нечіткого виведення, а інші змінні обчислюються з попередньо визначених змінних нечітких блоків правил від яких вони залежать. Для здійснення нечіткого виведення користу- вачу необхідно задати наступні фактори: x23 – стійкість проектних рішень (чи змінюються рішення під впливом зовніш- ніх факторів); x24 – менеджмент проекту (якість керування проектом); x25 – мож- ливість виводу коштів у разі провалу про- екту або за власним бажанням; x26 – тех- нічний ризик; x13 – стартовий капітал (наявність власних коштів для започатку- вання справи); x14 – подальше власне фі- нансування (чи є можливість у подальшо- му підтримувати стартап власними кош- тами); x15 – досвід керівника за темати- кою подібних проектів; x16 – рівень осві- ти керівника; x17 – готовність команди працювати повний робочий день (суміс- x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x11 (y11) x23 x24 x25 x26 x12 (y12) x27 x4 (y5) x5 (y6) x6 (y7) x7 (y8) x8 (y9) x9 (y10) x10 x1 (y2) x2 (y3) x3 (y4) Y (оцінка привабливості) Моделі та засоби паралельних і розподілених програм 11 ники або штатні працівники); x18 – якість колективної праці (результативність робо- ти); x19 – масштаб інновацій (рівень ви- знання інновацій); x20 – тип інновацій (оригінальність проектних рішень); x21 – пріоритет ринку (обмеження за типом споживачів продукції стартапу); x22 – розмір ринку (обмеження за кількістю споживачів продукції стартапу); x10 – ступінь розробки (на якій стадії знахо- диться розробка даного проекту). Резуль- туюча змінна у є остаточною оцінкою рейтингу стартапу на основі результатів обчислень підсистем нижчих рівнів та кінцевої обробки цих даних. Змінна у мо- же приймати такі лінгвістичні значення: схвалити стартап, схвалити після доробки або відхилити. Таблиця 1 Специфікація вхідних змінних інтелектуальної системи (фрагмент) Змінна Найменування фактору Значення Зміст x1 Фінансування Низьке (Н) Недостатнє фінансування для даного проекту Середнє (С) Фінансування проекту пов'язане з деякими труднощами Високе (В) Фінансування повністю покриває вартість проекту x2 Кадри Низьке (Н) Кадри є профнепридатними Середнє (С) Потрібна додаткова професійна підготовка Високе (В) Кадри повністю задовольняють вимогам проекту x3 Проект Низький (Н) Проект приречений на провал, вимагає повного перегляду Середній (С) Має слабкі сторони, вимагає деякої переробки Високий (В) Проект може зайняти гідне місце на ринку x4 Інвестиції Низькі (Н) Відсутні перспективи інвестування Середні (С) Деякі інвестори готові почати співпрацювати Високі (В) Присутні один або більше інвесторів, з перспективою подальшого капіталовкладення … … … … x24 Менеджмент проекту Низький (Н) Слабке планування або відсутність планування і моніторингу Середній (С) Планування і моніторинг з виконання завдань Високий (В) Планування системи і моніторинг процесів проводяться своєчасно x25 Можливість виводу коштів Низька (Н) Виведення коштів з проекту неможливий Середня (С) Виведення коштів можливий тільки з певним відсотком втрат Висока (В) Можливість повного виведення коштів x26 Технічний ризик Низький (Н) Вимоги до проекту відсутні Середній (С) Вимоги до проекту сформульовані нечітко Високий (В) Вимоги до проекту чітко сформульовані Моделі та засоби паралельних і розподілених програм 12 Таблиця 2 Специфікація результуючих та проміжних змінних інтелектуальної системи (фрагмент) Змінна Найменування фактору Значення Зміст Y Оцінка привабливості Низька (Н) Не варто займатися даним проектом Середня (С) Проект має ризик провалу Висока (В) Проектом варто займатися y2 Фінансування Низьке (Н) Не варто займатися даним проектом Середне (С) Проект має ризик провалу Високе (В) Проектом варто займатися … … … … y11 Ефективність інвестицій Низька (Н) Потенційний прибуток інвестора 10 % в рік Середня (С) Потенційний прибуток інвестора 50 % в рік Висока (В) Потенційний прибуток інвестора 100 % в рік y12 Безпека Низька (Н) 90 і більше відсотків, що інвестор втратить капітал Середня (С) До 60 відсотків ймовірності збереження капіталу Висока (В) Імовірність збереження капіталу понад 95 відсотків Рис. 7. Графічне представлення функцій належності Моделі та засоби паралельних і розподілених програм 13 В табл. 3 представлено отримані рішення інтелектуальної системи для різ- них факторів у п’яти різних випадках. Очевидно, що проекти стартапів № 1–3 рекомендовано відправити на доробку, стартап № 5 визнаний привабливим для інвестування, а стартап № 4 вимагає пов- ного перегляду та для інвестування не ре- комендований. Зазначимо, що така ієрархічна ін- телектуальна система паралельно обчис- лює результуючі значення вершин графа залежностей (елементарних нечітких сис- тем) в межах кожного ярусу. Завдяки вну- трішньому паралелізму обробка всіх пра- вил кожної вершини виконується також паралельно, для досягнення більш висо- ких показників прискорення. Наприклад, вершина графу залежностей (блок пра- вил), що розраховує остаточну оцінку привабливості стартапу, містить наступні правила: if x1 is low and x2 is average and x3 is low then y1 is low if x1 is low and x2 is average and x3 is average then y1 is average ……………………. if x1 is average and x2 is high and x3 is high then y1 is high, де low, average, high відповідають значен- ням Низький, Середній, Високий відповід- но. Обробку кожного правила в межах всього блоку можна проводити незалежно одне від одного. Саме за рахунок цього кожний блок правил виконується парале- льно, тобто обчислення кожного правила розпочинається одночасно окремою нит- кою (thread) графічного процесору відео- карти (рис. 4). Прискорення нечіткого логічного виведення для інтелектуальної системи оцінки привабливості стартапів на основі технологій MPI та CUDA у порівнянні з однопроцесорним варіантом такої систе- ми, представлено на рис. 8. Зазначимо, що технологія CUDA дає прискорення приб- лизно в 100 разів порівняно з послідовним варіантом, а MPI дає прискорення, для цієї системи нечіткого виведення тільки в 3 рази. Для ієрархічної нечіткої системи з 12 блоками правил технологія CUDA дає прискорення більше, ніж в 30 разів, порі- вняно з технологією MPI на однакових вхідних даних. Це пов’язано, в першу чергу, з використанням внутрішнього па- ралелізму. Таблиця 3 Результати роботи інтелектуальної системи за різних вхідних даних Ста- ртап № Вхідні фактори стартапів для оцінки привабливості Y Порядкові номери вхідних змінних ієрархічної системи (X) 23 24 25 26 13 14 15 16 17 18 19 20 21 22 10 27 1 3 2 4 5 1 3 2 3 5 2 2 1 2 4 3 5 3,0001 С 2 3 4 3 1 4 2 2 3 2 3 2 5 4 2 3 3 3,0007 С 3 3 4 4 4 3 4 2 2 4 5 5 4 3 4 3 4 3,0005 С 4 1 2 2 1 3 3 3 3 2 1 4 3 1 1 1 2 1,5986 Н 5 4 5 5 5 5 4 3 4 5 5 5 5 4 5 4 5 4,7320 В Моделі та засоби паралельних і розподілених програм 14 Рис. 8. Прискорення нечіткого виведення для MPI та CUDA Висновки В роботі розглянуто метод розпара- лелювання систем нечіткого логічного ви- ведення на основі багатопотокового про- грамування графічних прискорювачів Nvidia CUDA. Обґрунтовано переваги да- ного методу, встановлено оцінки приско- рення систем нечіткого виведення, що по- будовані за зазначеним методом, здійснено порівняльну характеристику з варіантами нечітких систем, що реалізовані на базі технології паралельного програмування MPI. В роботах [3,4] для побудови нечіт- ких систем застосовувалася технологія паралельного програмування MPI, що має такі переваги, як відносна простота вико- ристання та висока переносимість коду. Дослідження та експерименти, проте, ви- явили ряд обмежень технології MPI при розпаралелюванні ієрархічних систем не- чіткого логічного виведення. Зокрема, це необхідність налагоджувати механізми передачі даних між процесами, що ускладює код програми та уповільнює ро- боту програми за наявності великих обся- гів даних, що передаються. Суттєвим є обмеженість процесорними ресурсами, які водночас є досить дорогими, оскільки для отримання кількох десятків паралельних процесів потрібно задіювати супер- комп’ютер або розподілену комп’ютерну мережу. Для подолання зазначених обме- жень авторами розроблено та обгрунтова- но метод нечіткого логічного виведення на основі багатопотокового програмування Nvidia CUDA. Застосування апаратної ар- хітектури останнього покоління Pascal 6.1 надає у розпорядження досить велику кі- лькість потоків для паралельної обробки нечітких правил, що повністю задовольняє потреби при нечіткому виведенні для сис- тем дуже великої розмірності (кількість вхідних та вихідних змінних). Однією з головних переваг розробленого метода на основі графічних прискорювачів CUDA є можливість застосувати внутрішнє розпа- ралелювання за правилами для кожного блоку нечітких правил, що неможливо ефективно здійснити з використанням тех- нології MPI через необхідність створення та координації великої кількості потоків. Це дозволяє отримати вагомі оцінки прис- корення нечіткого логічного виведення у сотні разів (для окремих графів залежнос- тей) у порівнянні з MPI. Розроблено програмну систему оці- нки привабливості стартапів на основі іє- рархічних систем нечіткого логічного ви- ведення Такагі – Сугено. На базі ярусно- паралельної форми обчислень та з викори- станням технології CUDA 8.0 в середовищі програмування Visual Studio 2012 побудо- вано програмну систему для оцінки при- вабливості стартапів. 1. Парасюк И.Н., Ершов С.В. Мультиагент- ные модели на основе нечеткой логики высшего типа для высокопроизводитель- ной среды. Проблеми програмування. 2012. № 2-3. С. 260–269. 2. Штовба С.Д. Проектирование нечетких систем средствами MATLAB. М.: Горячая линия. Телеком. 2007. 288 с. 3. Torra V. A. review of the construction of hierarchical fuzzy systems. Int. J. Intell. Syst. 2002. N 17. P. 531–543. 4. Yager R.R. On a hierarchical structure for fuzzy modeling and control. IEEE Trans. Syst. Man Cybern. 1993. N 23. P. 1189–1197. 5. Yager R.R. On the construction of hierarchical fuzzy systems models. IEEE Trans. Syst. Man Cybern. 1998. N 28. P. 55–66. 6. Cordon O., Herrera F., Zwir I. Linguistic modeling by hierarchical systems of linguistic rules. IEEE Trans. Fuzzy Syst. 2002. N 10. P. 2–20. Моделі та засоби паралельних і розподілених програм 15 7. Raju G.V.S., Zhou J., Kisner R.A. Hierarchical fuzzy control. Int. J. Control. 1991. N 54. P. 1201–1216. 8. Єршов С.В., Пономаренко Р.М. Паралельні моделі багаторівневих нечітких систем Та- кагі – Сугено. Проблеми програмування. 2016. № 1. С. 141–149. 9. Єршов С.В., Пономаренко Р.М. Ярусно- паралельна модель обчислень для логічно- го виведення у нечітких багаторівневих системах. Комп’ютерна математика. 2016. № 1. С. 28–36. 10. Воеводин В.В. Параллельные вычисления. СПб: БХВ-Петербург. 2002. 608 с. 11. http://www.nvidia.com.ua/object/cuda- parallel-computing-ru.html 12. Дорошенко А.Ю., Бекетов О.Г. Метод па- ралелізації циклів сіткових обчислюваль- них задач для графічних прискорювачів. Проблеми програмування. 2017. № 1. С. 59–66. 13. Киселева Е.М., Притоманова О.М., Жура- вель С.В. Оценка инвестиционной привле- кательности стартапов на основе нейроне- четких технологий. Проблемы управления и информатики. 2016. № 5. С. 123–143. References 1. Parasyk I.N, Yershov S.V. (2012) Multilevel models base on fuzzy logic of the highest type for high-performance environment // Problems in programming. – N 2-3. P. 260–269. 2. Shtovba S.D. (2007) Fuzzy systems design by MATLAB mean // M.: Goryachaya liniya – Telecom – 288 p. 3. Torra V. (2002) A review of the construction of hierarchical fuzzy systems // Int. J. Intell. Syst. – Vol.17, N 5. – P. 531–543 . 4. Yager R.R. (1993) On a hierarchical structure for fuzzy modeling and control // IEEE Trans. Syst. Man Cybern. – Vol. 23, N 4. – P. 1189–1197. 5. Yager R.R. (1998) On the construction of hierarchical fuzzy systems models // IEEE Trans. Syst. Man Cybern. – Vol. 28, N 1. – P. 55–66. 6. Cordon O., Herrera F., Zwir I. (2002) Linguistic modeling by hierarchical systems of linguistic rules // IEEE Trans. Fuzzy Syst. – N 10. – P. 2–20. 7. Raju G.V.S., Zhou J., Kisner R.A. (1991) Hierarchical fuzzy control // Int. J. Control. – Vol. 54, N 5. – P. 1201–1216. 8. Yershov S.V., Ponomarenko R.M. (2016) Parallel models for Takagi-Sugeno’s fuzzy multilevel systems // Problems in programming. – N 1. – P. 141–149. 9. Yershov S.V., Ponomarenko R.M. (2016) Tier parallel computing model for logical inference on fuzzy multilevel systems // Mathematic for computers. – N 1. – P. 28–36. 10. Voevodin V.V. (2002) Parallel inference // SPb: BHV-Peterburg. – 608 p. 11. Nvidia CUDA. – http://www.nvidia.com.ua/object/cuda- parallel-computing-ru.html. 12. Doroshenko A.U., Beketov O.G. (2017) The cycle paralellization method of the mesh tasks for graphic accelerator // Problems in programming. – N 1. – P. 59–66. 13. Kiseleva E.M., Prytomanova O.M., Zhuravel S.V. (2016) Evaluation of the start-ups investment attractiveness base on the neuro- fuzzy technologies // Problems in management and informatics. – N 5. – P. 123–143. Одержано 04.10.2017 Про авторів: Єршов Сергій Володимирович, доктор фізико-математичних наук, завідувач відділу інтелектуальних програмних систем Інституту кібернетики імені В.М. Глушкова НАН України. Кількість наукових публікацій в українських виданнях – 67. Кількість наукових публікацій в зарубіжних виданнях – 9. http://orcid.org/0000-0002-9895-777X Пономаренко Роман Миколайович, аспірант Інституту кібернетики імені В.М. Глушкова НАН України, Кількість наукових публікацій в українських виданнях – 3. http://orcid.org/0000-0001-9681-2297 Місце роботи авторів: Інститут кібернетики імені В.М. Глушкова НАН України, проспект Академіка Глушкова, 40, Київ, 03187, Україна. Тел.: (044) 526 41 78. E-mail: sershv@ukr.net. Тел.: (044) 526 64 22. E-mail: ponomarenko_roman@ukr.net mailto:sershv@ukr.net mailto:ponomarenko_roman@ukr.net