Научная статья на тему 'Програмне забезпечення скінченно-елементної дискретизації 2D областей з використанням паралельних обчислень CUDA'

Програмне забезпечення скінченно-елементної дискретизації 2D областей з використанням паралельних обчислень CUDA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
201
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
обєктно-орієнтована модель / тріангуляція / скінченно-елементна дискретизація / k-d дерево / CUDA / объектно-ориентированная модель / триангуляция / конечно-элементная дискретизация / k-d дерево / CUDA

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

Здійснено програмну реалізацію скінченно-елементної дискретизації двовимірної області за допомогою алгоритму "прямої побудови". Програмне забезпечення для автоматизації скінченно-елементної дискретизації розроблено на платформі .NET Framework мовою програмування C# з використанням технологій паралельних обчислень CUDA. Проектування програмної системи здійснено за допомогою UML діаграм. Створений інтерфейс користувача дає змогу задавати параметри тріангуляції та розбивати параметри дискретизації у заданих областях.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Я. І. Соколовський, А. В. Нечепуренко, О. П. Герасимчук

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

Программное обеспечение конечно-элементной дискретизации 2D областей с использованием параллельных вычислений CUDA

Осуществлена программная реализация конечно-элементной дискретизации двумерной области с помощью алгоритма "прямой построения". Программное обеспечение для автоматизации конечно-элементной дискретизации разработано на платформе .NET Framework на языке программирования C# с использованием технологий параллельных вычислений CUDA. Проектирование программной системы осуществлено с помощью UML диаграмм. Созданный интерфейс пользователя позволяет задавать параметры триангуляции и разбивать параметры дискретизации в заданных областях.

Текст научной работы на тему «Програмне забезпечення скінченно-елементної дискретизації 2D областей з використанням паралельних обчислень CUDA»

УДК 004.42

ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ СК1НЧЕННО-ЕЛЕМЕНТНО1 ДИСКРЕТИЗАЦН 2D ОБЛАСТЕЙ З ВИКОРИСТАННЯМ ПАРАЛЕЛЬНИХ ОБЧИСЛЕНЬ CUDA Я.1. Соколовський1, А.В. Нечепуренко2, О.П. Герасимчук3

Здшснено програмну реал1защю скшченно-елементно'1 дискретизацй двовишрно!' област за допомогою алгоритму "прямо'1 побудови". Програмне забезпечення для авто-матизацн скшченно-елементно'1 дискретизацй' розроблено на платформ1 .NET Framework мовою програмування C# з використанням технологш паралельних обчислень CUDA. Проектування програмно'1 системи здшснено за допомогою UML д1аграм. Ство-рений штерфейс користувача дае змогу задавати параметри тр1ашуляцн та розбивати параметри дискретизацй' у заданих областях.

Ключовi слова: об'ектно-ор1ентована модель, тр1ангулящя, скшченно-елементна дискретизация, k-d дерево, CUDA.

Вступ. На сьогодш для отримання чисельного розв'язку задач тепло- та во-логоперенесення у катлярно-пористих матерiалах широкого застосування на-був метод сюнченних елементiв з уточнениям отково!' апроксимацл. Одним з основних етапiв скiнченно-елементного аналiзу е дискретизация розрахунково1 областi, вiд яко1 напряму залежить точнiсть розв'язкiв задачi. Окрш цього, роз-биття областi на скшченш елементи - доволi трудомкткий процес. Тому авто-матизацiя процесу дискретизацй' е актуальним завданням сучасних програмних комплексiв для скiиченно-елементних розрахунтв. Пошук ефективного вирь шення такого завдання зумовлюе впровадження техиологiй паралельних обчислень у процес дискретизацй' дослвджувано!' областi. У цьому напрямi перспек-тивним е застосування архнтектури паралельних обчислень CUDA (Compute Unified Device Architecture). Ц технологй' дають змогу iстотно збiльшити об-числювальну продуктивнiсть завдяки використанню графiчних процесорш, а саме, дае змогу оргашзовувати доступ до набору iнструкцiй графiчного приско-рювача i керувати його пам'яттю. Застосування цiеï архнтектури для розроблен-ня програмного забезпечення скшченно-елементного аналiзу дае змогу досягти високо1 продуктивностi процесу дискретизацiï областi, що, своею чергою, позитивно впливае на точнiсть отриманих ск^нченно-елементних розрахунюв.

1. Аналiз наявних дослiджень

Дискретизащя розрахунково1 областi е невiд'емною частиною скiиченно-елементних розрахункiв. Вiд процесу побудови сюнченно-елементно1 сiтки та ïï якостi залежить як затрата ресурав i трудомiсткiсть майбутньо!' програми, так i певш похибки в результатах розрахунюв. Проте iснуе невелика кшьккть програмного забезпечення з вщкритим програмним кодом для проведення трiангу-ляцiï на основi критерда Делоне з використанням технологш паралельних обчислень. У деяких програмних комплексах не створеш вiзуальнi iнтерфейси або 1хш програмнi коди написанi на мовах програмування, що обмежуе iнварiан-тнiсть програм, використання готових компонент та можливу взаемодiю з iнши-

1 проф. Я.1. Соколовський, д-р техн. наук - НЛТУ Украши, м. Льв1в;

2 асист. А.В. Нечепуренко - НЛТУ Украши, м. Львгв;

3 асист. О.П. Герасимчук - НЛТУ Украши, м. Льв1в.

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

€ юлька видов алгоритмiв побудови трiангуляцií [7-12]. В основi ггера-цiйних алгоритмов закладено iдею поступового додавання вузлiв в частково по-будовану трiангуляцiю Делоне. Складшсть цього пiдходу полягае у трудомк-ткостi пошуку трикутника, в який на кожному наступному крощ додаеться ву-зол. Побудова нових трикутникiв, а також перебудова кнуючоо структури трь ангуляцл, отриманоо внаслвдок незадовшьних перевiрок пар сусiднiх трикутни-кiв на виконання умови Делоне, е доволi складними завданнями. Трудомк-ткiсть iтерацiйних алгоритмов в середньому становить 0(ЫШ).

1ншим пiдходом до дискретизацп обласп множиною трикутникiв е алго-ритми трiангуляцií злиттям [10, 11]. Вони передбачають розбиття вихщноо мно-жини точок на кшька пiдмножин. На наступному кроцi проводиться трiангуля-щя цих пiдмножин, шсля чого вiдбуваеться процес злиття кшькох трiангуляцiй в одну. Трудомiсткiсть таких алгоршшв у середньому сягае 0(Ы

Описанi вище алгоритми мають одну особливiсть, а саме - перебудову структури трiангуляцií на певних етапах. При побудовi трiангуляцií тративни-ми алгоритмами або алгоритмами злиття, шсля побудови кожного нового трикутника повинна проводитись перевiрка на виконання умови Делоне для цього трикутника. О^м цього, доводиться проводити описану вище перевiрку ще для трьох сусiднiх трикутников. Якщо перевiрка виявила не вiдповiднiсть трiан-гуляцп критерою Делоне, то потрiбно проводити перебудову трикутниюв i нову серда перевiрок на вiдповiднiсть. На практищ, доволi багато часу займають саме перевiрки виконання умови Делоне та перебудови трикутниюв.

Для спрощення роботи iтерацiйних алгоритмiв та алгоршшв трiангуляцií злиттям можна на першому етапi будувати трiангуляцiю, iгноруючи перевiрку виконання умови Делоне. На другому еташ проводиться перевiрка трiангуляцií на виконання умови Делоне та за потреби проводяться перебудови. Такий шд-хвд реалiзовано у двопрохвдних алгоритмах трiангуляцií. Трудомiсткiсть двопрохвдних алгоритмов в середньому становить 0(NlogN).

Ще одшею групою алгоритмiв трiангуляцií е алгоритми прямоо побудови [11, 12]. 1х суть полягае в тому, щоб вiдразу будувати тiльки таи трикутники, якi вiдповiдають критерою Делоне i не потребують перебудови. Протягом три-валого часу цей пвдхвд рiдко реалiзовувався на практицi у програмних продуктах для сюнченно-елементних розрахунюв, оскшьки е доволi трудомктким та становить 0(М2). Проте розвиток технологш паралельних обчислень дав новий поштовх у практичному застосуваннi алгоршшв прямоо побудови.

У роботi розглянуто паралельну реалiзацiю алгоритму "прямоо побудови" трiангуляцií Делоне у контекстi реалiзацií методу скiнченних елементiв за допо-могою архнтектури паралельних обчислень CUDA, що дае змогу iстотно збшь-шити обчислювальну продуктивнiсть за рахунок використання потужностi гра-

фiчного процесора (GPU). Платформа паралельних обчислень CUDA забезпе-чуе набiр розширень для мов програмування C i С ++, що дають змогу вислов-лювати як паралелiзм даних, так i паралелiзм завдань на рiвнi дрiбних i великих структурних одиниць[4-6].

2. Алгоритмiчнi аспекти методу "Прямо!" побудови" трiангуляцГí областей

Дослщжувану двовимiрну прямокутну область визначено декартовим до-бутком [xbХ2]х[yi,y2] де xе [xbХ2] i ye [y,y2]. Для розмiщення Ni вузлiв з координатами (х{, yi) на площинi використовуемо генератор випадкових чисел. На множинi згенерованих вузлiв будуеться структура k-d дерева [12]. Суть побудови дерева полягае у роздшенш площини на двi пiвплощини прямою, паралель-ною однiй iз координатних осей, наприклад осi OY. Надалi, кожна з цих тв-площин може роздшятися повторно прямою, паралельною шшш координатнiй осi. Цi ди повторюються, змiнюючи на кожному кроцi напрям лши розд1лення. Лiнii, що роздшяють площину, вибираються за принципом просто!' дихотомп, тобто, керуючись отриманням приблизно рiвного числа вузлiв по кожну сторону вiд лши роздшення (рис. 1). Такий принцип е основою ще'! методу багатови-мiрного двiйкового дерева [12].

Рис. 1. Ыюстращя методу пошуку з допомогою двовuмiрного двткового дерева: а) схемароздыення площини на тдплощини; Ь) к-й дерево, сформоване з вузл1в площини, зображених на а)

Отримавши к-6 дерево, застосовуеться метод "Прямо! побудови" для проведения трiаигулящi на дослщжуванш области Для цього на першому крощ ви-бираеться базова лшя АВ з координатами (Хь7ьХ2,Г2) (рис. 2), яка е стороною початкового трикутника V з вершинами (Х1Ь Гц; Х21, Г21; Х31,Г31). Наступним кро-ком е побудова уявного квадрата К, дiагональ якого е стороною АВ трикутника VI. Далi вщбираються вузли С (х0к, у0к), якi потрапили в побудований квадрат. Якщо у квадрат не потрапило жодного вузла, то розмiри квадрата зб1льшуються доти, поки хоча б один вузол не потрапить в нього. При потраплянш вузла С (х0к, у0к) у квадрат К, будуеться уявний трикутник Жк з вершинами (Х0к,Г0к; Х1, Г1; Х2, Г2), одиiею стороною якого буде базова лшя АВ, а iишi сторо-ни будуються зв'язуванням кiицiв ще! лши з вибраним вузлом С. Для кожно! ново! побудови уявного трикутника Жк проводиться перевiрка виконання умо-

а)

ви Делоне i вдаидаються тi трикутники, для яких умова не справджуеться. Серед таких Шк, ят пройшли перевiрку, вибираеться трикутник з мшшальним ра-дiусом К, шсля чого щ трикутники вносяться в структуру попередньо збудова-но1 трiангуляцií. При побудовi кожного наступного трикутника Ук, з вершинами (Х\к,У\к; X 2к,^2к, Хзк,Узк) базова лiнiя змiнюеться та повторно проводиться пе-ревiрка умови Делоне для вузлiв, якi потрапили у новий квадрат, побудований вщносно ново1 базово1 лiнií. Вибiр сторони трикутника, яка буде виступати ба-зовою лiнiею, проводиться за допомогою пошуку вузлiв в к-ё дерев! З к-ё дерева вибираеться два вузли, для яких сума вiдповiдних координат буде максимальною {Хтах,Утах} = тах{Х1к + X2к;У1к + У2к}. Мiж цими вузлами будуеться ль

шя, яка буде базовою. Вибiр вузлiв буде здiйснюватись доти, доки сторона нового побудованого трикутника не буде належати верхнш границ дослiджуваноí прямокутно1 областi. Шсля чого умова вибору вузлiв базово!' лiнií з к-ё дерева змшюеться на протилежну.

А(Х1;У1]

Рис. 2. Схема алгоритму "ПрямоI побудови "

Трiангуляцiею Делоне е така трiангуляцiя, в якiй в радiус описаного кола навколо будь-якого елемента не потрапляе жоден шший вузол цiеí трiангуляцií [11]. Основна щея алгоритму перевiрки умови Делоне полягае у знаходженш центра (а; Ь) i радiуса К описаного кола:

АВ = д/( Х2 - Х1)2 + (У2 - У1)2

ВС =у1(Х3 - Х2)2 + (У3 - У2)2. (1)

АС = ^(Хз - Х1)2 + (Уз - У1)2

Знайшовши сторони трикутникiв розбиття та скориставшись формулою Герона, обчислимо радiус описаного кола:

АВ + ВС + АС

Р = -

5 =д/рЬс ■(р - АВ)(р - ВС)(р - АС) АВ ■ ВС ■ АС

(2)

К =

45

2

Отримавши рaдiус, пiдставляeмо його в рiвняння кола:

(х1 - а )2 + (> - Ь )2 = К2 (х2 - а )2 + (>2 - Ь )2 = К2. (х3 - а)2 + (>3 - Ь)2 = К2

(3)

Знаходимо координати центра кола:

а=Ь

>2 - >1

>1

->2

х1 + х2

х1 - х2 2(х - х2) 2

Ь=

Б = 4

(, (

I >2 - >1 | х3 -

1

х1 - х2 ) V

/ / 2

>1

->2

х1 + х2

2 ( х1 - х2 ) 2

|| )) | +>1 ) + 4 4Б

>2 - >1 х1 - х2

+1

>2 - >1

х1 - х2

хз -

>1

" >2

х1 + х2

-4

V

>2 - >1 | х1 - х2 )

V

2 (х1 - х2) 2

+ >1 -

+1

г ( хз -

>1

" >2

V

х1 + х2 2

2

(4)

+ >12 - К2

V2(х1 - х2)

Тодi умова Делоне для трикутника з вершинами (Х1,Г1), (Х2,Г2), (Х3,Г3) бу-де виконуватись тод^ коли для будь-якого шшого вузла (X 0,Г0) трiангуляцií бу-де справджуватись нерiвнiсть

(X о - а )2 + (Го - Ь)2 > К2. (5) Якщо тaкi вузли кнують, то з них вибираеться новий С (х3, >3). Ця процедура виконуеться доти, доки будуть вузли, що задовольняють умову (5).

3. Аспекти програмно! реашзацп розпаралелювання алгоритму трiан-гуляци "прямо! побудови"

На першому етaпi програмно1 реaлiзaцií трiaнгуляцií на основi алгоритму "прямо!' побудови" здiйснено проектування майбутньо!' системи за допомогою иЫЬ дiaгрaм. Дiaгрaмa прецедентiв дае змогу подати функцюнальш можливос-тi проектованого програмного забезпечення. Користувач може здiйснювaти ге-нерування вузлiв у дослiджувaнiй двовишрнш прямокутнiй облaстi, а також вь дображати результати трiaнгуляцií (рис. 3).

Структуру моделi системи в термшологн класш об'ектно-орiентовaного програмування представлено на дiaгрaмi класш (рис. 4). Клас "Engeen" е основ-ним компонентом програми. У ньому мiстяться методи для формування списку вузлiв (Сгеа1еРот1з), перевiрки виконання умови Делоне (СЬеекБе1опе), побудови трикутникiв та 1х сторiн (CreateTriang1e, RegisterSide). Метод для формування вузлiв "CreatePoints" зв'язаний з класом "КБТгее" та "KDNode". За допомогою класу "KDNode" формуеться k-d дерево. Своею чергою, у клас

г

2

2

2

г

г

\

\

"KDTree" використовуються методи "Insert", "Delete", "Search", "Nearest", як максимально розширюють спектр роботи з деревом. У клас "Side" мктяться конструктор побудови сторони трикутника та методи, якi потрiбнi на промiж-них розрахунках побудови трiангуляцií. Одним i3 таких методiв е "CrossSide", який перевiряе чи перетинае побудований трикутник сусiднi. Клас "Triangle" аналопчно класу "Side", мiстить конструктор побудови трикутника та методи для визначення плошд трикутника (GetSquare), центр описаного навколо три-кутника кола (CentreCircle), та чи попала точка в середину описаного кола (IsIn-Circle). Класи "Triangle" та "Side" зв'язанi з класом "Point2D" та мiстять об'екти цього класу.

Рис. 3. Дгаграма eapianmie використання

Ä «С* class* kandid...Епдееп

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

В Attributes

+ DelonePoints: KDTr. + Elements : List<Tri... + Points: KDTree + Sides: List<Side>

- Ev: Del -Height: Double -Length: Double

В Operations

+ AddSide(side:Side,.. +ЫаЫаЫаО

+ CheckDe!oney(eieni. + CreatePoints(haght.. + Engeenf) + NearesEPoint(side:... + Regis t erSide s(tria n... +Test(side:Side,poL + Triangu!ate(triangle.. -AddPoint(point: Poi...

- CreaEeTriang!e(nevvP..

- CrossSdes(sidei: S.. -DeletePoint(point: P.. -DeletePoints(side: S.. -TriangulationAreaO

kandid... KDTree

В Attributes

- m_count: Integer

- m_K: Integer

- m_rcrat: KDNode В Operations

+ dcneO: Object + delete(key : Double... f InCircle(ob : Del):... +■ insert(key : Dotib)e[.. + KDTreefk: Integer) +■ nearest(key : Doubt... + nearest(key : Doubi.. +■ range{lowk: Doubl... +■ search(key : Double.. + ToList(lowk: Doubl... +- toStringO : String

Ä «CJF class» kandid...oint 2D

В Attributes

+ IsBoundary: Bot + X: Double + Y: Double

В Operations

+ CloneO: Object 4-Equals(point: Point.. +-Point2D(x: Double,.. fPoint2D(x: Double,.. + Point2DO + ToStringO: String

Ä «С* class» kandid. ..t::Side

В Attributes

+ Center: Point2D + Lenght: Double + pointl: Point2D + point2:Point2D + Triangles : List<Tri,,, S Operations

+■ AddTriangle(tñangí... +■ AreCrossmg(aossS.. -I-Equals (side: Side):. -MsBoundary(lengtfi:.. -l-Side(pointl: Point2.. -GetCenterfpoiníl i P.. -GetLengthfpointi: P. -VectorMu!t(ax: Don...

Side"

к

¿enter

}

¿enter

Triangle Triangle

^ «CS class» kandid...riangle

a Attributes

+ Center: Point2D + i i Point2D + j : Point2D + k : Point2D +■ Radius: Double Э Operations + CirdeCenterO + GetSquareQ: Double + IsInQrde(p : Point2.. +■ ToStringO : String +- Triangle{vl: Point2..

A class» A «C# class»

kandi...DNode kandi ...Forml

В Attributes B Attributes

+■ deleted: Boolean - bitmap: Bitmap

+ к: HPoint -buttonl: Button

+ v: Point2D - components : ICo...

# left: KDNode - label l: Label

# right: KD Node - Iabe)2: Label

О Operations - Iabei3: Label

+■ ClofieC): Object - Iabel4: Label

+ deleteikev : HPoi... - labels: Label

+■ InCirclefob ! Del)... - listBaxl : ListBox

+ insfkev : HPoint... - panell: Pane!

+ nnbrfkd : KDNod .. - panel2: Pane!

+ rsearchflowk: H... - paneB : Pane!

+■ srchtkev : HPoint... - paneW: Pane!

+ toString^depth : I... - pictureBaxl : Pict...

- hocoovfho src : H... - richTextBc«l ; Ric..

- hrcoovihr src : H.. - tabControll : Tab...

- KDNode{key: Wo... -tabPagel: TabPage

- oadfn : Inteaef) :... -tabPage2: TabPage

-tabPageB : TabPage

- textBoxl: TextBox - txBl: TartBox

- txB2 : TextBax

B Operations

+ Form 10

- button l_dick(sen.

- InrtjafizeCompone...

* CSspose(disposin

Рис. 4. Д1аграма класв

У зв'язку з тим, що реалiзацiя алгоритму "прямо!' побудови" е доволi трудо-мiсткою, використано технологií паралельних обчислень CUDA для багаторазо-вих перевiрок виконання умови Делоне. Кiлькiсть паралельних потоюв, вико-ристаних у програмнш реалiзацií, дорiвнюе кiлькостi операцiй, яку вимагае алгоритм перевiрки умови Делоне (обчислення центра i радауса описаного навко-ло трикутника кола). Ввдповвдно, кожен потiк блоку вщповдае за певну опера-щю, необхвдну для обчислення крнтерда Делоне трикутника з вершинами (Хок,7ок;Х\,У\;X2,72). Зокрема, Ь1оак(0; 0) вiдповiдае за обчислення (рис. 5) крнтерда Делоне для трикутника Шо (Хо,7о; ХьГь Х2,72) i т. д.

Рис. 5. Схема потоюв паралельного виконання операций nepeeipKU умови Делоне

Основною мовою програмування в apxiTeKTypi CUDA е С. Але для програ-мування у середовишд Visual Studio мовою C# з використанням GPGPU вико-ристовуеться CUDAfy[11]. Модуль, який виконуе перетворення вхiдних потоков у вихвдш, е ядром (kernel). Окремi ядра можуть сполучатися мiж собою, що призводить до утворення досить складних схем оброблення потокiв вх1дних да-них. Виклик модуля проводиться з тша програми (метод findrightP), а його оброблення ввдбуваеться в методi kernel, де i визначаеться кiлькiсть потокiв, на якi розбиваеться завдання. У цьому випадку потоков буде така ж кiлькiсть, як i вyзлiв, на яких буде проводитись трiaнгyляцiя.

Фрагменти виконання трiaнгyляцií облaстi за допомогою архиектури паралельних обчислень наведено в такому кодг [Cudafy]

public static void kernel (GThread thread, List<Point> AnalizeP, List<Point> AnalizePI, double AB, double b) { int tid = thread.blockldx.x;

for (int i = 0; i < AnalizeP.Count; i++) {

if (tid < AnalizeP.Count && AnalizeP[tid].X > b - AB && AnalizeP[tid].Y < AB) { AnalizeP1.Add(AnalizeP[tid]); }}}

public static List<Point> findrightP(double AB, double b, List<Point> AnalizeP) { CudafyModule km = CudafyTranslator.Cudafy();

GPGPU gpu = CudafyHost.GetDevice(CudafyModes.Target, CudafyModes.Deviceld);

gpu.LoadModule(km);

List<Point> AnalizePI = new List<Point>();

// launch add on AnalizeP.Count threads gpu.Launch(AnalizeP.Count, 1).kernel(AnalizeP, AnalizeP1, AB, b); return AnalizeP1; }

На рис. 6 представлено штерфейс користувача головного вшна програми. Перед тим як здiйснити трiашулящю, потрiбно задати геометричш розмiри дос-лiджуваноí обласп, кiлькiсть вузлiв та вид ix зосередження.

Рис. 6.1нтерфейс користувача програми

Перед тим як провести трiангуляцiю, здiйснюeться аналiз розташування вузлiв та послiдовно обираеться оптимальний вузол для побудови нового три-кутника. Даш про таю вузли i послвдовну побудову трикутникiв прошюстрова-но на рис. 7.

Рис. 7. Параметри побудованог трiангуляцu

На 0CH0Bi геометричних napaMeTpiB трiангуляцií будуеться матриця у контекста застосування методу сюнченних елементав i3 значень функцш форми симплекс-eлeмeнтiв. Ця матриця буде використовуватися для побудови системи ршнянь, потpiбних для розв'язку зaдaчi нестащонарного тепломасоперенесення у двовимipнiй облaстi.

Висновки. Розроблено прикладне програмне забезпечення для автоматиза-цií процесу тpiaнгуляцií двовимрних областей з використанням архнтектури па-ралельних обчислень CUDA. Створений гpaфiчний iнтepфeйс дае змогу задати геометричш параметри дослiджувaноí обласп, а також отримувати кiлькiснi характеристики тpiaнгуляцií для оцiнки eфeктивностi роботи алгоршшв.

Паралельна peaлiзaцiя алгоритму тpiaнгуляцií "прямо! побудови" дае змогу зменшити час, потpiбний для проведения дискретизацп дослщжувано! облaстi, та зменшити затрати пам'яп, завдяки використанню ресурсов гpaфiчного проце-сора. Це програмне забезпечення буде штегровано до програмного комплексу для скшченно-елементного розрахунку тепломасоперенесення у кашлярно-по-ристих мaтepiaлaх.

Лiтература

1. Ильин В.П. Методы и технологии конечных элементов / В.П. Ильин. - Новосибирск. -2007. - С. 370-376.

2. [Електронний ресурс]. - Доступний з http://kniga.scienceontheweb.net/variant-ispolzovaniya

3. [Електронний ресурс]. - Доступний з http://www. uk.wikipedia.org.

4. [Електронний ресурс]. - Доступний з http://www.nvidia.ru/object/cuda-parallel-computing-ru.html

5. [Електронний ресурс]. - Доступний з http://www.nvidia.ru/object/cuda-openacc-online-course-ru.html

6. [Електронний ресурс]. - Доступний з http://vk.com/nvidiacuda.

7. Яненко Н.Н. О вариационном методе построения сеток // Численные методы механики сплошной среды // Яненко Н.Н., Данаев Н.Т., Лисейкин В.Д. - Новосибирск. - 1987. - Т. 8, № 4. - С. 157-163.

8. Копысов С.П. Сравнение r- и h-версий МКЭ на примере задач теории упругости / С.П. Копысов, А.К. Новиков // Актуальные проблемы прикладной математики и механики : матер. Междунар. науч.-техн. конф. 3-7 фев., 2003 г. - Екатеринбург, 2003. - С. 44-45.

9. Новиков А.К. Параллельная h-версия МКЕ в решении двухмерных задач теории упругости / А.К. Новиков. - Ижевск, 2004. - С. 6-18.

10. Скворцов А.В. Обзор алгоритмов триангуляции Делоне / А.В. Скворцов // Вычислительные методы и программирование : сб. науч. тр. - 2002. - Т. 3. - С. 14-39.

11. Скворцов А.В. Триангуляция Делоне и её применение / А.В. Скворцов. - Томск : Изд-во Томского ун-та, 2002. - С. 128.

12. Скворцов А.В. Эффективнее алгоритмы построения триангуляции Делоне / А.В. Скворцов, Ю.Л. Костюк // Геоинформатика. Теория и практика : сб. науч. тр. - Томкс : Изд-во Томского ун-та. - 1998. - Вып. 1. - С. 22-47.

13. Яненко Н.Н. О вариационном методе построения сеток / Н.Н. Яненко, Н.Т. Данаев, В.Д. Лисейкин // Численные методы механики сплошной среды : сб. науч. тр. -Новосибирск : Изд-во "Наука". - 1987. - Т. 8, № 4. - С. 157-163.

14. DSP Hybrid. CUDAfy user manual / Hybrid DSP // CUDAfy user manual. - USA. - 2015. -С. 45-48.

15. Препарата Ф. Вычеслительная геометрия / Ф. Препарата, М. Шеймос. - USA. - 1989. -С. 94-97.

16. Соколовський Я.1. Програмний комплекс автоматизаци скшченно-елементно! дискретизацл двовишрних областей / Я.1. Соколовський, О.П. Сикала // Фiзико-математичне моделювання та шформацшш технологи. - Л^в : Вид-во Центру математичного моделювання ш-ту прикладних проблем мехашки i математики ш. Я.С. Шдстригача НАН Украши. - 2014. -Вип. 19. - С. 176-188.

Надтшла доредакцп 15.09.2016р.

Соколовский Я.И., Нечепуренко А.В., Герасимчук О.П. Программное обеспечение конечно-элементной дискретизации 2D областей с использованием параллельных вычислений CUDA

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

Осуществлена программная реализация конечно-элементной дискретизации двумерной области с помощью алгоритма "прямой построения". Программное обеспечение для автоматизации конечно-элементной дискретизации разработано на платформе .NET Framework на языке программирования C# с использованием технологий параллельных вычислений CUDA. Проектирование программной системы осуществлено с помощью UML диаграмм. Созданный интерфейс пользователя позволяет задавать параметры триангуляции и разбивать параметры дискретизации в заданных областях.

Ключевые слова: объектно-ориентированная модель, триангуляция, конечно-элементная дискретизация, k-d дерево, CUDA.

Sokolovskyy Y.I., Nechepurenko A.V., Gerasymchuk O.P. Software Finite-Element Sample 2D Domains Using CUDA Parallel Computing

Software implementation of finite-element two-dimensional sampling area using the direct construction algorithm is made. Software for automation of finite-element sample is developed on the .NET Framework programming language C # using technologies of parallel computing CUDA. Design software system is implemented using UML diagrams. Created user interface allows you to set parameters triangulation and break options sampling in specified areas.

Keywords: object-oriented model, triangulation, finite-element sampling, k-d tree, CUDA.

УДК 621.3

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

е.Н. Федорчук1, Ю.€. Федорчук2

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

Проаналiзовано ефектившсть тдходу до обчислення кластеров у базах даних на ос-оптишзацшних критерпв. Шдхщ грунтуеться на зведенш дискретно! задачi опти-мiзацii до неперервно! задач! Така апроксимаЦя забезпечуе швидкий пошук кластерiв з контрольованою похибкою. Проаналiзовано два алгоритми виршення задач! Перший -на основi розбиття област обмежень. Другий - на основi иерацшних алгоритмов. Практична реалiзацiя алгоритмов використовуе двi групи операцiй. Перша група виконуе обчислення елеменпв кластера в областi неперервних обмежень. Друга група виконуе уточнения елементгв кластера в област дискретних обмежень для бази даних. Наведено алгоритм, технологвд i результати пошуку кластеров для бази даних.

Ключовi слова. кластер, задача кластеризации оптимiзацiйний критерш, дискретна задача оптимiзацii, розбиття област обмежень, база даних, бiзнес-процес.

Вступ. У задачах пошуку кластеров у БД, призначених для шдтримки тех-нолопчних б13нес-процес1в, часто використовують умовш поняття для назв кластер1в. Це можуть бути: конфкуращ! комп'ютер1в [1], набори товар1в (про-дуктовий кошик) [2], послуг, банк1вськ1 портфел1, лопстичш транспортш клас-тери [3]. Основною характеристикою таких кластеров часто е таю найбшьш по-ширеш види ощнок-критерив:

1 доц. €.Н. Федорчук, канд. техн. наук - НУ " Львгвська Полггехнка";

2 acnip. Ю.€. Федорчук - Льв1вський торговельно-економ1чний ун1верситет.

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