Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Удк використання мови cuda для olap технологій та для оброблення запитів до баз даних

Скачати 56.41 Kb.

Удк використання мови cuda для olap технологій та для оброблення запитів до баз даних




Скачати 56.41 Kb.
Дата конвертації21.05.2017
Розмір56.41 Kb.

УДК

ВИКОРИСТАННЯ МОВИ CUDA ДЛЯ OLAP ТЕХНОЛОГІЙ ТА ДЛЯ ОБРОБЛЕННЯ ЗАПИТІВ ДО БАЗ ДАНИХ

Романюк О.Н., Приймак Н.В

Вступ

Аналіз накопиченої інформації є актуальною задачею для багатьох дослідних і прикладних завдань. Оскільки обсяги різноманітних баз даних значно зросли в останні роки, то послідовна обробка всіх необхідних даних стає не можливою або займає багато часу. Для того щоб скоротити час формування користувацького подання даних і їх аналізу можна використовувати технологію CUDA, призначену для розробки додатків, що виконуються на графічних процесорах.

Дана робота присвячена аналізу можливих застосувань технології CUDA для OLAP технологій та для оброблення запитів до баз даних.
Огляд технології CUDA

GPU (графічний процесор) є дискретним графічним пристроєм, що працює на персональному комп'ютері, робочій станції або ігровій консолі [1].

Ігрова консо́ль (або Ігрова приста́вка) - це спеціалізований електронний пристрій, розроблений і створений для того, щоб грати у відеоігри. Найчастіше пристроєм виводу є телевізор або, рідше, комп'ютерний монітор.

Робоча станція Робоча станція (англ. workstation) - комплекс апаратних і програмних засобів, призначених для вирішення певного кола завдань.

Сучасні графічні процесори ефективно маніпулюють і відображають комп'ютерну графіку, а паралельна структура робить їх більш ефективними ніж процесори загального призначення для ряду складних алгоритмів.

Технологія CUDA – це середовище розробки на мові програмування С, яка дозволяє програмістам і розробникам писати програмне забезпечення для вирішення складних обчислювальних задач за короткий проміжок часу завдяки багатоядерній обчислювальній потужності графічних процесорів.

Інтегроване середовище розробки (ІСР, англ. Integrated development environment або англ. IDE) - комплексне програмне рішення для розробки програмного забезпечення. Зазвичай, складається з редактора початкового коду, інструментів для автоматизації складання та відлагодження програм.

Програмне забезпечення Програ́мне забезпе́чення (програ́мні за́соби) (ПЗ; англ. software) - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм.

Специфіка обчислювальних пристроїв, побудованих на базі графічних процесорів, полягає в тому, що програма для свого виконання залучає як центральний процесор (CPU), так і графічні процесори (GPU).

Центральний процесор Центральний процесор, ЦП (англ. Central processing unit, CPU) - функціональна частина комп'ютера, що призначена для інтерпретації команд.

Код додатка, розробленого за технологією CUDA, складається як з послідовних, так і з паралельних частин. Послідовна частина виконується на CPU, а паралельна частина оформляється у вигляді функції ядра і виконується на графічному процесорі. Для прискорення роботи програми необхідно оптимізувати роботу з пам'яттю [2].

CUDA дає розробникові можливість на свій розсуд організовувати доступ до набору інструкцій графічного прискорювача та управляти його пам'яттю, організовувати на ньому складні паралельні обчислення.

Паралельні обчислення - це форма обчислень, в яких кілька дій проводяться одночасно. Ґрунтуються на тому, що великі задачі можна розділити на кілька менших, кожну з яких можна розв'язати незалежно від інших.

Графічний процесор з підтримкою CUDA є потужною програмованою відкритою архітектурою подібною до сучасних центральних процесорів.

Відкрита архітектура - архітектура комп'ютера, периферійного пристрою або програмного забезпечення, на яку опубліковані специфікації, що дозволяє іншим виробникам розробляти додаткові пристрої до систем з такою архітектурою.


Аналіз способів використання технології CUDA для OLAP технологій та для оброблення запитів до баз даних

Online Analytical Processing (OLAP, аналітична обробка в реальному часі) є важливим аспектом бізнес-аналітики, де для підтримки прийняття рішень застосовуються запити до багатовимірних кубів даних [3]. Через великі розміри кубів даних, сучасні реалізації вимагають повільних та вартісних розрахункових формул для підвищення швидкодії он-лайн запитів. В результаті запити користувачів працюють із неактуальними даними. Крім того, куби даних постійно зростають у розмірах, збільшуючи час розрахунку. Основою OLAP-технології є побудова багатовимірних представлень даних. Можна виділити наступні кроки при роботі з даними під час використання OLAP:

1. Вихідні дані представляються у реляційному нормалізованому вигляді, і до них забезпечується доступ за технологією OLTP (online transaction processing);

2. Користувацьке багатовимірне подання даних, що реалізує технологію OLAP, забезпечується інструментарієм, який перетворює вихідні дані в гіперкуб.

3. Користувацьке подання далі використовується для аналізу даних.

Вихідні́ відо́мості - відомості, що містять довідкову інформацію про друковане видання, ідентифікують і класифікують його. Залежно від характеру видання вони розташовані на обкладинці, палітурці, титульному аркуші, поєднаному титульному аркуші, першій сторінці, останній сторінці, кінцевий сторінці видання.

Аналіз даних - розділ математики, що займається розробкою методів обробки даних незалежно від їх природи.

В [4] описано переваги створення OLAP-кубів та їх оброблення з використанням GPU. Серед основних переваг такого підходу можна виділити наступні:



  • лічильник на GPU працює набагато швидше ніж на СPU;

  • масштабованість для різних пристроїв (бінарний код автоматично масштабується до необхідних сутностей);

  • зростання швидкості обробки даних;

  • менші витрати енергії на обробку даних.

В [5] описано дослідження, що показали в скільки разів зменшується час обробки багатовимірних масивів з використанням GPU. Коли дані зберігаються на GPU, мінімальний час обробки багатовимірного масиву було скорочено до 107X, а максимальний до 144X, а це означає, що швидкість обробки такого типу даних може бути підвищена принаймні в 2 рази.

GPU може обробляти динамічні масиви зі швидкістю, що рівна обробці в режимі реального часу.

Обро́бка да́них - систематична цілеспрямована послідовність дій над даними. Обробка даних містить в собі множину різних операцій.

Тип даних - характеристика, яку явно чи неявно надано об'єкту (змінній, функції, полю запису, константі, масиву тощо). Тип даних визначає множину припустимих значень, формат їхнього збереження, розмір виділеної пам'яті та набір операцій, які можна робити над даними.

Реальний час - режим роботи автоматизованої системи обробки інформації і керування, при якому враховуються обмеження на часові характеристики функціювання.

Тривалість застосування SDLS перетворення та зменшення масиву даних з використанням GPU займає 15 мс. Це досить швидко, щоб плавно анімувати зміни, внесені в параметри обробки. Передбачається, що для підтримки зв'язку з бізнес-аналітиками та для аналізу "if-then", корисні модулі обробки даних будуть реалізовані з використанням GPU. Це дозволить аналітикам побачити ефект зміни керованих змінних у режимі реального часу та зробить можливим інтерактивний " if-then " аналіз у системах OLAP [5].

Оскільки пропускна здатність відеопам'яті приблизно в 3 рази перевищує середню швидкість роботи з оперативною пам'яттю, виникає питання ефективності не тільки обробки, а й розміщення бази даних безпосередньо в графічній пам'яті. На сьогоднішній день на ринку доступні гібридні обчислювальні сервери з об'ємом відеопам'яті до 24 Гб. Таких обсягів пам'яті зазвичай достатньо для ефективного зберігання та обробки більшості баз даних. Для збільшення обсягу збереженої у відеопам'яті бази даних, окремі сервери можуть бути об'єднані в обчислювальні кластери.

В [6] описано методи обробки найбільш поширених типів запитів до баз даних – JOIN і SELECT. Методи були реалізовані у вигляді програмного емулятора СУБД, що дозволяє моделювати паралельне виконання запитів до бази даних на багатоядерних прискорювачах, які підтримують технологію CUDA та на багатоядерному центральному процесорі.



Так, наприклад, алгоритм виконання запиту SELECT на графічному прискорювачі складається з наступних кроків [6] :

  1. генерація вхідного відношення R в оперативній пам'яті;

  2. виділення пам'яті графічного прискорювача під масив для результатів;

  3. копіювання відношення R з оперативної пам'яті в пам'ять графічного прискорювача;

  4. логічне розбиття відношення R на фрагменти (кількість фрагментів дорівнює кількості потоків CUDA);

  5. виконання вибірки з відношення R на графічному прискорювачі (кожен потік обробляє один фрагмент, запис результатів проводиться в створений раніше масив у пам'яті графічного прискорювача);

  6. копіювання результату з пам'яті графічного прискорювача в оперативну пам'ять.

Під час проведення дослідження було доведено, що викорисатнн технології CUDA для запиту типу JOIN є не ефективним. А швидкість обробки запиту SELECT зросла в 33 рази в порівнянні з обробкою на центральному процесорі [6].
Висновки:

Технологія CUDA являє собою програмно-апаратну архітектуру паралельних обчислень, яка дозволяє збільшити обчислювальну продуктивність завдяки використанню графічних процесорів Nvidia. Дана технологія може бути застосована до будь-яких областей науки, досліджень, бізнесу і тому подібне, де використовується та необхідна обробка великих баз даних.

Дана технологія може бути використана при створенні та обробці гіперкубів, що використовуються в OLAP технології. Проведені дослідження підтверджують доцільність та актуальність розробки алгоритмів для роботи з таким поданням даних з використанням технології CUDA, оскільки зростає швидкодія аналізу інформації. Також технологія CUDA може бути застосована для формування та обробки запитів до реляційних баз даних, що в результаті зменшує час обробки запиту.

Враховуючи різке збільшення кількості даних та необхідність їх швидкого оброблення, використання технології CUDA для оброблення баз даних є досить важливою та необхідною задачею в сучасному інформаційному просторі.

Інформаці́йний про́стір (англ. Information space) - сукупність результатів семантичної діяльності людства.


Список використаної літератури:

  1. Сандерс, Дж. Технология CUDA в примерах: введение в программирование графических процессоров / Дж. Сандерс, Э. Кэндрот. – М. : ДМК Пресс, 2011. – 232 с.

  2. Боресков, А. В. Основы работы с технологией CUDA / А. В. Боресков, А. А. Харламов. – М. : ДМК Пресс, 2010. – 232 с.

  3. Зыкин, С. В. Формирование гиперкубического представления реляционной базы данных / С. В. Зыкин // Программирование. – 2006. – № 6. – С. 71–80.

  4. Kaczmarski K. Comparing CPU and GPU in OLAP Cube Creation [Електронний ресурс]. – Режим доступу: www.researchgate.net/publication/221512608_Comparing_GPU_and_CPU_in_OLAP_Cubes_Creation

  5. Neumann A.B. Parallel Reduction of Multidimensional Arrays for supporting Online Analytical Processing (OLAP) on a Graphics Processing Unit (GPU) [Електронний ресурс].

    Графічний процесор (англ. Graphics Proccesing Unit, GPU) - окремий пристрій персонального комп'ютера або ігрової приставки, виконує графічний рендеринг. Сучасні графічні процесори дуже ефективно обробляють і зображують комп'ютерну графіку, завдяки спеціалізованій конвеєрній архітектурі вони набагато ефективніші в обробці графічної інформації, ніж типовий центральний процесор.

    – Режим доступу:http://undergraduate.csse.uwa.edu.au/year4/Current/Students/Files/2008/AdamNeumann/CorrectedDissertation.pdf

  6. Костенецкий П.С. Hазработка методов обработки запросов к базе данных на многоядерных ускорителях, поддерживающих технологию CUDA/ П.С. Костенецкий, А.И. Семенов – С.-Пб.: Пресс, 2014. – 45 с.


Скачати 56.41 Kb.

  • Огляд технології CUDA
  • Аналіз способів використання технології CUDA для OLAP технологій та для оброблення запитів до баз даних
  • Список використаної літератури
  • Graphics Processing Unit