Современные информационные технологии/ 3.
Программное
обеспечение
д. т. н. Романюк О.Н.,
Приймак Н.В
Вінницький
національний технічний університет
ВИКОРИСТАННЯ
ТЕХНОЛОГІЇ CUDA ДЛЯ OLAP ТЕХНОЛОГІЙ ТА ОБРОБЛЕННЯ ЗАПИТІВ ДО БАЗ ДАНИХ
Вступ
Аналіз інформації є актуальною задачею
для багатьох дослідних і прикладних завдань. Оскільки обсяги різноманітних баз
даних значно зросли в останні роки, то обробка всіх необхідних даних займає багато
часу [1]. Для того щоб скоротити час формування
користувацького подання даних і їх аналізу можна використовувати технологію CUDA, призначену для розробки
додатків, що виконуються на графічних процесорах.
Дану роботу присвячено аналізу можливих застосувань
технології CUDA для OLAP технологій та для оброблення запитів до баз даних.
Огляд
технології CUDA
GPU (графічний процесор) є дискретним
графічним пристроєм, що працює на персональному комп'ютері, робочій станції або
ігровій консолі [2]. Сучасні графічні процесори ефективно маніпулюють і
відображають комп'ютерну графіку, а паралельна структура робить їх більш
ефективними ніж процесори загального призначення для ряду складних алгоритмів.
Технологія CUDA – це середовище розробки
на мові програмування С, яка дозволяє програмістам і розробникам писати
програмне забезпечення для вирішення складних обчислювальних задач за короткий
проміжок часу завдяки багатоядерній
обчислювальній потужності графічних процесорів. Специфіка обчислювальних
пристроїв, побудованих на базі графічних процесорів, полягає в тому, що
програма для свого виконання залучає як центральний процесор (CPU), так і
графічні процесори (GPU). Код додатка, розробленого за технологією CUDA,
складається як з послідовних, так і з паралельних частин. Послідовна частина
виконується на CPU, а паралельна частина оформляється у вигляді функції ядра і
виконується на графічному процесорі. Для прискорення роботи програми необхідно
оптимізувати роботу з пам'яттю [3].
CUDA дає
розробникові можливість організовувати реконфігурований доступ до набору
інструкцій графічного прискорювача та управляти його пам'яттю, організовувати
на ньому складні паралельні обчислення. Графічний процесор з підтримкою CUDA є
потужною програмованою відкритою архітектурою подібною до сучасних центральних
процесорів.
Аналіз способів
використання технології CUDA для OLAP технологій та для оброблення запитів до
баз даних
Online Analytical Processing [4] (OLAP, аналітична обробка в реальному часі) є важливим
аспектом бізнес-аналітики, де для підтримки прийняття рішень застосовуються
запити до багатовимірних кубів даних [4]. Сучасні реалізації вимагають
трудомістких розрахункових формул для
підвищення швидкодії он-лайн запитів. У результаті запити користувачів працюють
із неактуальними даними. Крім того, куби даних постійно зростають у розмірах,
збільшуючи час розрахунку. Основою
OLAP-технології є побудова багатовимірних представлень даних. Можна виділити
такі кроки при роботі з даними під час використання OLAP:
1. Вихідні дані задаються у реляційному
нормалізованому вигляді, і до них забезпечується доступ за технологією OLTP
(online transaction processing);
2. Користувацьке
багатовимірне подання даних, що реалізує технологію OLAP, забезпечується
інструментарієм, який перетворює вихідні дані в гіперкуб.
3. Користувацьке подання далі
використовується для аналізу даних.
В [5] описано переваги
створення OLAP-кубів та їх оброблення з використанням GPU. Серед основних
переваг такого підходу можна виділити такі:
-
лічильник
на GPU працює набагато швидше ніж на СPU;
-
масштабованість
для різних пристроїв;
-
зростання
швидкості обробки даних;
-
менші
витрати енергії на обробку даних.
В [6] подано результати
дослідження, які підтвердили високу ефективність обробки багатовимірних масивів
з використанням GPU. Зокрема, коли дані зберігаються на GPU, мінімальний час
обробки багатовимірного масиву було скорочено до 107X, а максимальний до 144X,
а це означає, що швидкість обробки такого типу даних може бути підвищена
принаймні в 2 рази.
GPU може обробляти динамічні масиви в
режимі реального часу. Тривалість застосування SDLS перетворення та зменшення
масиву даних з використанням GPU достатньо швидке, щоб плавно анімувати зміни,
внесені в параметри обробки. Передбачається, що для підтримки зв'язку з бізнес-аналітиками та для аналізу
"if-then", корисні модулі обробки даних будуть реалізовані з
використанням GPU. Це дозволить аналітикам побачити ефект зміни керованих
змінних у режимі реального часу та зробить можливим інтерактивний " if-then
" аналіз у системах OLAP [6].
Оскільки пропускна здатність відео
пам’яті приблизно в 3 рази перевищує середню швидкість роботи з оперативною
пам'яттю, виникає питання ефективності не тільки обробки, а й розміщення бази
даних безпосередньо в графічній пам'яті. На сьогоднішній день на ринку доступні
гібридні обчислювальні сервери з об'ємом відео пам’яті якого зазвичай достатньо
для ефективного зберігання та обробки більшості баз даних. Для збільшення
обсягу збереженої у відео пам’яті бази даних, окремі сервери можуть бути
об'єднані в обчислювальні кластери.
В [7] описано методи обробки
найбільш поширених типів запитів до баз даних – JOIN [7] і SELECT
[7].
Методи були реалізовані у вигляді програмного емулятора СУБД, що дозволяє
моделювати паралельне виконання запитів до бази даних на багатоядерних
прискорювачах, які підтримують технологію CUDA та на багатоядерному
центральному процесорі.
Так, наприклад, алгоритм виконання запиту
SELECT на графічному прискорювачі складається з таких кроків [7] :
1) генерація
вхідного відношення R в оперативній пам'яті;
2) виділення
пам'яті графічного прискорювача під масив для результатів;
3) копіювання
відношення R з оперативної пам'яті в пам'ять графічного прискорювача;
4) логічне розбиття
відношення R на фрагменти (кількість фрагментів дорівнює кількості потоків
CUDA);
5) виконання
вибірки з відношення R на графічному прискорювачі;
6) копіювання
результату з пам'яті графічного прискорювача в оперативну пам'ять.
Під час проведення дослідження було
доведено, що використання технології CUDA для запиту типу JOIN є не ефективним.
А швидкість обробки запиту SELECT зросла в 33 рази порівняно з обробкою на
центральному процесорі [7].
Висновки:
Технологія CUDA являє
собою програмно-апаратну архітектуру паралельних обчислень, яка дозволяє
збільшити обчислювальну продуктивність завдяки використанню графічних
процесорів. Дана технологія може бути застосована до будь-яких галузей науки,
досліджень, бізнесу і т.д., де необхідна обробка великих баз даних.
Дана технологія може
бути використана при створенні та обробці гіперкубів, що використовуються
в OLAP технології.
Проведені наукові дослідження підтверджують доцільність та актуальність
розробки алгоритмів для роботи з таким поданням даних з використанням
технології CUDA, оскільки зростає швидкодія
аналізу інформації. Також технологія CUDA може бути застосована для формування
та обробки запитів до реляційних баз даних, що в результаті зменшує час обробки
запиту.
Враховуючи різке
збільшення кількості даних та необхідність їх швидкого оброблення, використання
технології CUDA для оброблення баз даних є досить важливою та необхідною
задачею в сучасному інформаційному просторі.
Література:
1. Романюк О.Н.
Організація баз даних та знань/ О.Н. Романюк, Т.О. Савчук. – Вінниця:
УНІВЕРСУМ, 2003.
2. Сандерс, Дж. Технология CUDA в примерах: введение в
программирование графических процессоров / Дж. Сандерс, Э. Кэндрот. – М. : ДМК
Пресс, 2011. – 232 с.
3. Боресков, А. В.
Основы работы с технологией CUDA / А. В. Боресков, А. А. Харламов. – М. : ДМК
Пресс, 2010. – 232 с.
4. Зыкин, С. В.
Формирование гиперкубического представления реляционной базы данных / С. В.
Зыкин // Программирование. – 2006. – № 6. – С. 71–80.
5. Kaczmarski K.
Comparing CPU and GPU in OLAP Cube Creation [Електронний ресурс]. – Режим
доступу: www.researchgate.net/
/221512608_Comparing_GPU_and_CPU_in_OLAP_Cubes_Creation
6. Neumann A.B.
Parallel Reduction of Multidimensional Arrays for supporting Online Analytical
Processing (OLAP) on a Graphics Processing Unit (GPU) [Електронний ресурс]. –
Режим доступу: http://undergraduate.csse.uwa.edu.au/year4/Current/Students/Files/2008/AdamNeumann/CorrectedDissertation.pdf
7. Костенецкий П.С.
Hазработка методов обработки запросов к базе данных на многоядерных
ускорителях, поддерживающих технологию CUDA/ П.С. Костенецкий, А.И. Семенов –
С.-Пб.: Пресс, 2014. – 45 с.