Научная статья на тему 'Застосування графічного процесора для підвищення швидкодії процесу сортування великих масивів даних'

Застосування графічного процесора для підвищення швидкодії процесу сортування великих масивів даних Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
390
55
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
паралельне сортування / графічний процесор / комплексний підхід / потоковий граф / злиття / parallel sorting / graphics processor / comprehensive approach / flow graph / merge

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — І Г. Цмоць, Я П. Кісь, В Я. Антонів

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Application of Graphic Processor to Improve Sorting Performance of Large Data Sets

Some methods and algorithms for parallel sorting data sets and architectural features of graphics processor GPU are analysed. We suggest software development for parallel sorting data sets using graphics processor GPU and programming model CUDA based on a comprehensive approach, which includes the following: research and development of methods and algorithms for parallel sorting large data sets; graph models of algorithms for parallel sorting data sets; architecture of graphics processor GPU and programming model CUDA. We have also developed the concretized flow graph of algorithm of merge sort that provides parallelism detection and the ability to manage it. The complexity of algorithm of parallel merge sort and its performance are determined.

Текст научной работы на тему «Застосування графічного процесора для підвищення швидкодії процесу сортування великих масивів даних»

17. Хомицька 1.Ю. Моделювання статистичних структур функщональних стиив англшсь-ко! мови / 1.Ю. Хомицька // Науков1 записки. - Сер.: Фшолопчш науки (мовознавство). - Крово-град : РВВ КДПУ iм. В. Винниченка. - 2015. - Вип. 136. - С. 209-213.

18. Хомицька 1.Ю. Статистичний анал1з англшських поетичних текспв / 1.Ю. Хомицька, В.М. Теслюк // Науковий вюник НЛТУ Украши : зб. наук.-техн. праць. - Львш : РВВ НЛТУ Украши. - 2015. - Вип. 25.2. - С. 350-356.

19. Хомицька 1.Ю. Модель статистичного анал1зу процесу функцiонування груп англшсь-ких приголосних фонем у систем1 функцiональних стилш / 1.Ю. Хомицька, В.М. Теслюк // Науковий вюник НЛТУ Украши : зб. наук.-техн. праць. - Львш : РВВ НЛТУ Украши. - 2015. - Вип. 25.3. - С. 364-369.

Хомицкая И.Ю., Теслюк В.Н. Метод статистического анализа функциональных стилей английского языка на фонологическом уровне

Проанализирована степень действия стилевого и языкового факторов при дифференциации художественного, разговорного, газетного и научного функциональных стилей английского языка на фонологическом уровне. Доказано, что критерием дифференциации стилей можно считать средние частоты групп согласных фонем. Предложена модель определения существенных и несущественных различий между сравниваемыми текстами, репрезентирующие исследуемые стили. Определена зависимость стилераз-граничительной способности групп согласных фонем от позиции фонемы в слове (фонема в начале слова, фонема в конце слова).

Ключевые слова: средняя частота групп согласных фонем, статистические характеристики стилей, позиция фонемы в слове.

Khomytska I. Yu., Teslyuk V.M. The Method of Statistical Analysis of English Functional Styles on the Phonological Level

The degree of the effect of style and language factors while differentiating belles - lettres, colloquial, newspaper and scientific styles of the English language on the phonological level has been analyzed. It has been proved that style differentiation criterion can be considered to be mean frequencies of occurrence of groups of consonant phonemes. A model has been suggested to determine essential and unessential differences between the compared texts representing the styles under study. The dependence of style differentiating power of groups of consonant phonemes on the position of a phoneme in a word such as phoneme at the beginning of a word, phoneme at the end of a word is defined.

Keywords: mean frequency of occurrence of groups of consonant phonemes, statistical characteristics of styles, position of a phoneme in a word.

УДК 621.518 Проф. 1.Г. Цмоць, д-р техн. наук; доц. Я.П. Юсь,

канд. техн. наук; астр. В.Я. Антоше1 - НУ '^Miecbrn полтехтка"

ЗАСТОСУВАННЯ ГРАФ1ЧНОГО ПРОЦЕСОРА ДЛЯ ПЩВИЩЕННЯ ШВИДКОДН ПРОЦЕСУ СОРТУВАННЯ ВЕЛИКИХ МАСИВ1В ДАНИХ

Проанал1зовано методи та алгоритми паралельного сортування масивгв даних та особливост архггектури граф1чних процесор1в GPU. Запропоновано розробку програм-них засоб1в паралельного сортування масив1в даних з використанням граф1чного проце-сора GPU та програмно! модел1 CUDA здшснювати на основ1 комплексного шдходу, який охоплюе: дослщження, розроблення метсдав та алгорштшв паралельного сортування великих масив1в даних; графов1 модел1 алгорштшв паралельного сортування ма-сив1в даних; арх1тектуру граф1чного процесора GPU та програмну модель CUDA. Роз-роблено конкретизований потоковий граф алгоритму сортування методом злиття, який

1 Наук. кергвник: проф. 1.Г. Цмоць, д-р техн. наук

забезпечуе виявлення паралелiзму та можливiсть управляти ним. Визначено складшсть паралельного алгоритму сортування злиттям та його швидкодiю.

Ключов1 слова: паралельне сортування, графiчний процесор, комплексний пiдхiд, потоковий граф, злиття.

Постановка проблеми. Основним шляхом шдвищення швидкодп про-цесу сортування великих масивш даних е розпаралелювання процесу сортування та використання масово-паралельних обчислюваних засобiв i3 великим обся-гом пам'ятi. До таких засобш належать графiчнi процесори (GPU - Graphics Processing Unit), ят е процесорами класу SIMD (Single Instruction Multiple Data). Особливктю SIMD процесорш е те, що в них одна операция використовуеться одночасно для опрацювання множини незалежних даних. Для розроблення про-грамного забезпечення сортування великих масивш даних, частина якого пра-цюе на CPU (центральний процесор), а частина на GPU доцшьно використати кросплатформову систему комшляцп та виконання програм CUDA.

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

Аналiз останшх дослiджень i публiкацiй. Задачi розроблення паралельних методiв, алгоршшв i програмних засобiв для сортування великих ма-сивiв даних з використанням графiчних процесорiв GPU розглядануто у працях [1-3]. Аналiз методiв паралельного сортування масивiв даних показуе [3-9], що для реалiзацiï графiчних процесорiв GPU найб1льше пiдходять методи сортування чисел шдрахунком, виткненням, вставкою та злиттям. Порiвняння цих методiв показуе, що алгоритми паралельного сортування даних злиттям е стру-ктурованими, однорiдними та орiентованими на паралельно-конвеерну.

З публiкацiй [1-3, 10, 11] випливае, що для ефективного сортування великих масивiв даних за допомогою графiчних процесорiв GPU потрiбно розро-бити моделi паралельного сортування масивш даних у виглядi графiв. Проте у цих публжащях не висвiтлено питання розроблення моделей паралельного сортування масивiв даних у виглядi графiв i 1х оцiнювання.

Невирiшенi частини проблеми. У публшащях i дослiдженнях недос-татньо уваги придшено питанням комплексного шдходу до розроблення програмних засобiв сортування великих масивш даних на графiчних процесорах GPU.

Метою до^дження е розроблення з використанням комплексного шдходу програмних засобш для швидкого сортування великих масивiв даних на базi графiчного процесора GPU та програмно1 моделi CUDA.

Основнi результата дослщження. Розробку високоефективних програмних засобiв паралельного сортування масивiв даних з використанням гра-фiчного процесора GPU та програмно1 моделi CUDA можна забезпечити ком-плексним шдходом, який охоплюе:

• дослiдження, розроблення методiв i алгоритмiв паралельного сортування великих MacrniB даних;

• грaфовi моделi aлгоритмiв паралельного сортування мacивiв даних;

• aрхiтектуру грaфiчного процесора GPU;

• програмну модель CUDA.

Переважна частина методш сортування масив1в даних грунтуеться на од-нотипних базових елементарних операцях пор1вняння двох чисел та !'х перестановки в1дпов1дно до формули:

Г0, коли а\ < а2 Г ab коли y = 1 iah коли y = 0

У = Ь ' b = 1 n' b2 = 1 (1)

[1, коли а > a2 [a2, коли y = 0 [a2, коли y = 1

де: y - результат пор1вняння двох чисел; а\, а2 - числа, ят пор1внюються; b\, b2 - виходи бшьшого та меншого вщсортованих чисел. Обчислювальна склад-нкть методш сортування масив1в чисел може бути в межах вщ R (O)=N2 до R (O)=Nlog2N елементарних базових операцш, де N - кшьккть чисел у масив! Сортування великих масивш даних вимагае виконання велико!' кшькосп елементарних базових операцш та значного часу сортування. Основним шляхом зменшення часу сортування великих масив1в даних е розпаралелювання та кон-вееризащя процесу сортування даних.

Виявити паралел1зм i використати його при реал1зацц на комп'ютерних засобах забезпечуе графiчне вiдображення алгоритму сортування даних у виг-лядi потокового графу ^=(Ф, Г), де Ф={Ф\, Ф2,..., Ф^..., Фп} - множина функщ-ональних операторiB' Г - закон ввдображення зв'язкiв мiж функцiональними операторами. Для ввдображення алгоритмiв сортування використовуються фун-кцiональнi оператори Фь якi ввдповщають базовим елементарним операцiям по-ршняння та перестановки згiдно з формулою (1). При ввдображенш алгоритму сортування у виглядi потокового графу здшснюеться розподш на всiх функщ-ональних Ф;- за ярусами отже, що в k-му ярусi розмiщенi функщональш оператори, якi залежать ввд операторiв попереднiх ярусiв i не залежать вiд операторш наступних яруав. У серединi кожного ярусу функщональш оператори мiж собою не мають з'еднань.

Для реалiзацií сортування великих масивш даних пропонують використати графiчний процесор GPU, який мае р конвееризованих обчислювальних ядер [1, 3]. Ефективне використання графiчного процесора GPU передбачае розбиття масиву даних на блоки розмiром 2р, яш будуть опрацьовуватися об-числювальними ядрами паралельно.

Методи сортування, що грунтуються на базових елементарних операщях порiвняння двох чисел та !'х перестановки вiдрiзняеться один вiд одного способом вибору пар даних для виконання базових елементарних операцш. Особли-вктю графiчного процесора GPU е те, що вш орiентований на виконання одше!' команди над 2р даними, якi одночасно надходять на р обчислювальних ядер. Для ефективного сортування масивiв даних на базi графiчного процесора GPU необидно вибрати методи сортування, структура яких орiентована на паралель-но-конвеерну реалiзацiю. Таким методом е сортування злиттям.

В основi алгоритма сортування методом злиття лежить базова операця

об'еднання двох упорядкованих масивiв [a^]2.^ та {a2i}2=^ в один упорядкова-ний масив bt,. На початку сортування вхiдний масив чисел {a}^ розби-ваеться на N/2 упорядкованих масивiв довжиною одиниця. Внаслiдок виконан-

ня першо'1 базово'1 операцп* формуються N/4 впорядкованих масивiв довжиною два. Кiлькiсть титв базових операцiй, необхiдних для сортування масиву i3 N чисел, визначають за формулою

k=log2N. (2)

Кожна (г'+1)-та базова операц1я (z'=1, ..., k) паралельного алгоритму сортування злиттям реалiзуeться на базi трьох i-х базових операцiй. Кiлькiсть еле-ментарних операцiй порiвняння двох чисел та ïx перестановки для сортування масиву iз N дорiвнюe

k N

R0) = Iзг_1 N. (3)

г=1 2

Для ефективно'1 реалiзацiï алгоритму сортування великих масивiв даних методом злиття на графiчному процесорi GPU необхщно цей алгоритм подати у виглядi конкретизованого потокового графу. Особливiстю конкретизованого потокового графу сортування великих масивiв даних методом злиття e його орieнтацiя на арxiтектуру графiчного процесора GPU.

Розроблення конкретизованого потокового графу сортування великих масивiв даних методом злиття можна розбити на таю чотири етапи:

• декомпозищя алгоритму сортування на 6a30Bi та елементарш операцп (функщ-онaльнi оператори);

• проектування комунiкaцiй (обмiнiв даними) мiж функцiонaльними операторами;

• укрупнення функцюнальних оперaторiв;

• планування процесу сортування.

Результатом першого етапу e потоковий граф алгоритму сортування даних методом злиття. Внаслщок виконання трьох наступних етапiв отримуeмо конкретизований потоковий граф алгоритму сортування злиттям, який e ль ншною проекцieю потокового графу на горизонтальну вiсь Х. У цьому випадку укрупнення операцш здiйснюeться об,eднанням каналiв передачi даних, визна-чаються затримки, перестановки та формуeться управлiння процесом сортування. Розроблений конкретизований потоковий граф для графiчного процесора GPU наведено на рис. 1, де ФМЗП - макрооператор затримки та перестановки, ФМУ - макрооператор управлшня, Ф1, Фр - функцiональнi оператори попарного порiвняння та перестановки даних.

Рис. 1. Конкретизований потоковий граф сортування масиву даних

Конкретизований потоковий граф сортування орieнтований на архитектуру графiчного процесора GPU. За допомогою макрооператора затримки та перестановки Фмзп та макрооператора управлшня Фму, визначаються величини затримок, перестановки даних i здiйснюeться планування процесу сортування.

Реалiзацiя конкретизованого потокового графу сортування масиву даних методом злиття вiдбуваeться по тактам, кшьккть яких визначають за формулою

T = (N - 1)N, (4)

2p

де: N - кшьккть даних у масив^ р - кiлькiсть обчислювальних ядер у процесор!

Для сортування даних методом злиття використано багатоядерний гра-фiчний процесор Nvidia GT 610 з шдтрпмкою архнтектури i програмно!' моделi CUDA. Графiчний процесор Nvidia GT 610 мае таю характеристики:

• кшьюсть ядер - 48;

• тактова частота графiчного процесора - 1620;

• тактова частота процесора - 810 МГц;

• швидкод1я пам'яи - 1,8 Гбгг/с;

• об'ем пам'ятi - 1024 Мб;

• штерфейс пам'ятi - 64-би- DDR3;

• максимальна смуга пропускания пам'яи - 14,4;

• програмне середовище - CUDA

• шина - PCI-E 2.0.

Для розроблення програмного забезпечення використовували програмш середовища розробки Nvidia CUDA 5.5, MS Visual Studio 2010 та MS SQL Server Management Studio 2012. Особливктю CUDA е те, що вона дае розробниковi можливкть на свiй розсуд оргашзовувати доступ до набору iнструкцiй графiч-ного процесора GPU й управляти його пам'яттю, оргашзовувати на ньому скла-днi паралельнi обчислення. Графiчний процесор з пiдтримкою CUDA стае по-тужною програмованою вiдкритою архитектурою подiбно до сьогоднiшнiх цен-тральних процесорiв.

Мовами реалiзацií сортування великих масивш даних на графiчному процесорi Nvidia GT обрано С/С++, яка е мовою програмування високого ршня з пiдтримкою кшькох парадигм програмування: об'ектно-оркнтовано!', узагаль-нено!' та процедурно!'. Особливостями мови C/C++ е: швидкодiя; масштабова-нiсть; можливiсть роботи на низькому рiвнi з пам'яттю, адресами, портами; створення узагальнених алгоритмiв для рiзних тишв даних, !'хня спецiалiзацiя та обчислення на етапi комшляцп з використанням шаблонiв; пiдтримка рiзних стплгв та технологй' програмування.

Для розроблення програми сортування великих масивiв даних на графiч-ному процесорi Nvidia GT обрано модульне програмування, яке передбачае ре-алiзацiю складних програм за iерархiчним принципом на базi невеликих прог-рамних блоков чи модулiв. Програмнi засоби складаються з таких модулiв: по-переднього оброблення даних transfortData; пiдготовки даних для сортування preparationData; сортування даних parallelSearchGPU i parallelSortGPU; збере-ження даних SaveData.

На рис. 2 наведено користувацький штерфейс доступу до модулгв, яю реалiзують технологда паралельного сортування даних.

Використання для сортування великих масивгв даних методом злиття гра-фiчного процесора Nvidia GT 610 забезпечуе зменшення часу сортування приб-лизно у 10 разiв, поршняно з використанням т1льки центрального процесора CPU.

Input d

Sorting methods | ▼ Parameter | ▼ Order dy т

Search methods | ▼ Parameter т Values

Performance Analysis

ID Name City Code -

1 MB Bendigo 4323fcfYnfG32

10586 FPS Darlirtghurst 2hftdsn42hfYU

7565 Microsoft Cambridge 2534123fsdßBMd и

464756 Google Ottawa 363hFDY5h2123

The result

ID Name City Code n

У

Рис. 2. Користувацький ттерфейс доступу до Modyuie паралельного сортування даних

Висновки:

1. Розробку програмних 3aco6ÍB паралельного сортування MacrnÍB даних з ви-користанням графiчного процесора GPU та програмно'1 моделi CUDA мож-на забезпечити комплексним ом який охоплюе: досладження, розроблення методiв та алгорштшв паралельного сортування великих масивiв даних; графовi моделi алгоритмiв паралельного сортування масивiв даних; архь тектуру графiчного процесора GPU та програмну модель CUDA.

2. Сортування масивiв даних методом злиття Грунтуеться на однотипних ба-зових елементарних операщях порiвняння двох чисел та 1х перестановки,

k —

к1льк1сть яких дорiвнюе R(0) = ^ 31-1 —.

1=1 2'

3. Для розроблення програмних засобiв паралельного сортування масивiв даних з використанням графiчного процесора GPU та програмно'1 моделi CUDA алгоритм сортування необхщно подати у виглядi потокового графу, який забезпечить виявлення паралелiзму та можливiсть управляти ним для знаходження оптимальних просторово-часових ршень.

4. Кiлькiсть тактiв, необхiдних для сортування масивiв даних методом злиття

в графiчному процесорi GPU, дорiвнюе T = (N -1)—.

Лггература

1. Боресков А.В. Параллельные вычисления на GPU / А.В. Боресков и др. // Архитектура и программная модель CUDA. - М. : Изд-во Московского ун-та, 2012. - 336 с.

2. Воеводин В.В. Параллельные вычисления / В.В. Воеводин, Вл.В. Воеводин. - СПб. : Изд-во "БХВ-Петербург", 2002. - 608 с.

3. Гергель В.П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем / В.П. Гергель. - М. : Изд-во Московского ун-та, 2010. - 544 с.

4. Кнут Д. Искусство программирования. - Т. 3: Сортировка и поиск / Д. Кнут. - Изд. 2-ое, [перераб. и доп.]. - М. : Изд-во "Наука". 2000. - 832 с.

5. Кормен T. Алгоритмы: построение и анализ : пер. с англ. / T. Кормен, Ч. Лейзерсон, Р. Ривест; под ред. А. Шеня. - М. : МЦНМО БИНОМ. Лаборатория знаний, 2004. - 960 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Левитин А.П. Алгоритмы: введение в разработку и анализ : пер. с англ. / А.П. Левитин. -М. : Изд. дом "Вильямс", 2006. - 576 с.

7. Лорин Г. Сортировка и системы сортировки / Г. Лорин. - М. : Изд-во "Мир". 1983. - 384 с.

8. Макконелл Дж. Основы современных алгоритмов / Дж. Макконелл. - Изд. 2-ое, [пере-раб. и доп.]. - М. : Изд-во "Техносфера", 2004. - 368 с.

9. Мельничук А.С. Аналiз методов сортування масиву чисел / А.С. Мельничук, С.П. Луце-нко, Д.С. Громовий, К.В. Трофимова // Технологический аудит и резервы производства : сб. науч. тр. - 2013. - № 4/1(12). - С. 37-40.

10. Немнюгин С.А. Параллельное программирование для многопроцессорных систем / С. А. Немнюгин, О. Л. Стесик. - СПб. : Изд-во "БХВ-Петербург", 2002. - 400 с.

11. Prots'ko I. Algorithm of efficient computation DST using cyclic convolutions / I. Prots'ko, V. Teslyuk // Wseas transactions on signal processing. - 2014. - Vol. 10. - Pp. 278-288.

Цмоць И.Г., Кись Я.П., Антонив В.Я. Применение графического процессора для повышения быстродействия сортировки больших массивов данных

Проанализированы методы и алгоритмы параллельной сортировки массивов данных и особенности архитектуры графических процессоров GPU. Предложено разработку программных средств параллельной сортировки массивов данных с использованием графического процессора GPU и программной модели CUDA осуществлять на основе комплексного подхода, который включает: исследования, разработку методов и алгоритмов параллельной сортировки больших массивов данных; графовые модели алгоритмов параллельной сортировки массивов данных; архитектуру графического процессора GPU и программную модель CUDA. Разработан конкретизированный потоковый граф алгоритма сортировки методом слияния, который обеспечивает обнаружение параллелизма и возможность управлять им. Определены сложность параллельного алгоритма сортировки слиянием и его быстродействие.

Ключевые слова: параллельная сортировка, графический процессор, комплексный подход, потоковый граф, слияние.

Tsmots I. G, Kis Уа.Р, Antoniv V. Уа. Application of Graphic Processor to Improve Sorting Performance of Large Data Sets

Some methods and algorithms for parallel sorting data sets and architectural features of graphics processor GPU are analysed. We suggest software development for parallel sorting data sets using graphics processor GPU and programming model CUDA based on a comprehensive approach, which includes the following: research and development of methods and algorithms for parallel sorting large data sets; graph models of algorithms for parallel sorting data sets; architecture of graphics processor GPU and programming model CUDA. We have also developed the concretized flow graph of algorithm of merge sort that provides parallelism detection and the ability to manage it. The complexity of algorithm of parallel merge sort and its performance are determined.

Keywords: parallel sorting, graphics processor, comprehensive approach, flow graph, merge.

УДК 681.3.05:004.056.5 Проф. Ю.1. Грицюк, д-р техн. наук - НУ "Львiвська полiтехнiка "; здобувач П.Ю. Грицюк, магктр - НЛТУ Украти, м. Львiв

МЕТОДИ I ЗАСОБИ ГЕНЕРУВАННЯ ф-МАТРИЦЬ Ф1БОНАЧЧ1 -КЛЮЧ1В ДЛЯ РЕАЛ1ЗАЦН КРИПТОГРАФ1ЧНИХ ПЕРЕТВОРЕНЬ

Розглядаються особливост ефективного генерування £р-матриць Фiбоначчi, яю можуть використовуватися як клкга (де)шифрування для багатораундово! матрично! криптографiчноl системи перетворення шформацп. З'ясовано, що основна проблема ба-гатораундово! матрично! Афшно! криптосистеми полягае у генеруванш множини зви-чайних i обернених матриць - ключгв (де)шифрування шформацп, елементами яких мають бути дш числа. Розроблено процедуру генерування множини £р-матриць Фiбо-начч^ яка за вщомими значеннями степеш матриц (и) та р-чисел Фiбоначчi дае змогу отримувати вщповщну множину клкгав (де)шифрування шформацп, здшснювати !хне

i Надоели баннеры? Вы всегда можете отключить рекламу.