Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах

Розглядаються паралельні алгоритми для розв’язування лінійних систем з наближеними даними на cуперкомп’ютерах з графічними процесорами. Обговорюються проблеми розв’язування задач з наближеними даними, а також особливості створення алгоритмів для гібридних комп’ютерів. Наводяться результати експериме...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2020
Автори: Хіміч, О.М., Полянко, В.В., Чистякова, Т.В.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут кібернетики ім. В.М. Глушкова НАН України 2020
Назва видання:Кібернетика та комп’ютерні технології
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/173143
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах / О.М. Хіміч, В.В. Полянко, Т.В. Чистякова // Кібернетика та комп’ютерні технології: Зб. наук. пр. — 2020. — № 2. — С. 53-66. — Бібліогр.: 26 назв. — укр.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-173143
record_format dspace
spelling irk-123456789-1731432020-11-24T01:26:25Z Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах Хіміч, О.М. Полянко, В.В. Чистякова, Т.В. Математичне моделювання та чисельні методи Розглядаються паралельні алгоритми для розв’язування лінійних систем з наближеними даними на cуперкомп’ютерах з графічними процесорами. Обговорюються проблеми розв’язування задач з наближеними даними, а також особливості створення алгоритмів для гібридних комп’ютерів. Наводяться результати експериментальних досліджень. Цель работы. Разработать новые параллельные алгоритмы решения систем линейных алгебраических уравнений с приближенными данными на суперкомпьютерах с графическими процессорами, для автоматической настройки алгоритма на эффективную архитектуру компьютера и выявленные в компьютере математические свойства задачи, а также ее решение с оценками достоверности полученных результатов. Результаты. Описана методология создания параллельных алгоритмов для суперкомпьютеров с графическими процессорами, реализующих исследование математических свойств линейных систем с приближенными данными и решение с анализом достоверности полученных результатов. Приведены результаты вычислительных экспериментов на суперкомпьютере СКИТ-4. The purpose of the article is to develop new parallel algorithms for solving systems of linear algebraic equations with approximate data on supercomputers with graphic processors that implement the automatic adjustment of the algorithms to the effective computer architecture and the mathematical properties of the problem, identified in the computer, as well with estimates of the reliability of the results. Results. A methodology for creating parallel algorithms for supercomputers with graphic processors that implement the study of the mathematical properties of linear systems with approximate data and the algorithms with the analysis of the reliability of the results are described. The results of computational experiments on the SKIT-4 supercomputer are presented. 2020 Article Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах / О.М. Хіміч, В.В. Полянко, Т.В. Чистякова // Кібернетика та комп’ютерні технології: Зб. наук. пр. — 2020. — № 2. — С. 53-66. — Бібліогр.: 26 назв. — укр. 2707-4501 DOI:10.34229/2707-451X.20.2.6 http://dspace.nbuv.gov.ua/handle/123456789/173143 519.6 uk Кібернетика та комп’ютерні технології Інститут кібернетики ім. В.М. Глушкова НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Ukrainian
topic Математичне моделювання та чисельні методи
Математичне моделювання та чисельні методи
spellingShingle Математичне моделювання та чисельні методи
Математичне моделювання та чисельні методи
Хіміч, О.М.
Полянко, В.В.
Чистякова, Т.В.
Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
Кібернетика та комп’ютерні технології
description Розглядаються паралельні алгоритми для розв’язування лінійних систем з наближеними даними на cуперкомп’ютерах з графічними процесорами. Обговорюються проблеми розв’язування задач з наближеними даними, а також особливості створення алгоритмів для гібридних комп’ютерів. Наводяться результати експериментальних досліджень.
format Article
author Хіміч, О.М.
Полянко, В.В.
Чистякова, Т.В.
author_facet Хіміч, О.М.
Полянко, В.В.
Чистякова, Т.В.
author_sort Хіміч, О.М.
title Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
title_short Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
title_full Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
title_fullStr Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
title_full_unstemmed Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
title_sort паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах
publisher Інститут кібернетики ім. В.М. Глушкова НАН України
publishDate 2020
topic_facet Математичне моделювання та чисельні методи
url http://dspace.nbuv.gov.ua/handle/123456789/173143
citation_txt Паралельні алгоритми розв’язування лінійних систем на гібридних комп’ютерах / О.М. Хіміч, В.В. Полянко, Т.В. Чистякова // Кібернетика та комп’ютерні технології: Зб. наук. пр. — 2020. — № 2. — С. 53-66. — Бібліогр.: 26 назв. — укр.
series Кібернетика та комп’ютерні технології
work_keys_str_mv AT hímíčom paralelʹníalgoritmirozvâzuvannâlíníjnihsistemnagíbridnihkompûterah
AT polânkovv paralelʹníalgoritmirozvâzuvannâlíníjnihsistemnagíbridnihkompûterah
AT čistâkovatv paralelʹníalgoritmirozvâzuvannâlíníjnihsistemnagíbridnihkompûterah
first_indexed 2025-07-15T09:40:41Z
last_indexed 2025-07-15T09:40:41Z
_version_ 1837705401654575104
fulltext МАТЕМАТИЧНЕ МОДЕЛЮВАННЯ ТА ЧИСЕЛЬНІ МЕТОДИ ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 53 КІБЕРНЕТИКА та КОМП'ЮТЕРНІ ТЕХНОЛОГІЇ Розглядаються паралельні алгоритми для розв’язування лінійних систем з наближени- ми даними на cуперкомп’ютерах з графічни- ми процесорами. Обговорюються проблеми розв’язування задач з наближеними даними, а також особливості створення алгоритмів для гібридних комп’ютерів. Наводяться ре- зультати експериментальних досліджень. Ключові слова: системи лінійних алгебраїч- них рівнянь, наближені дані, паралельні комп’ютери, графічні процесори, оцінки до- стовірності комп’ютерних результатів.  О.М. Хіміч, В.В. Полянко, Т.В. Чистякова, 2020 УДК 519.6 DOI:10.34229/2707-451X.20.2.6 О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ НА ГІБРИДНИХ КОМП’ЮТЕРАХ Вступ. У наш час в науці та інженерії постійно з’явля- ються нові обчислювальні задачі з великими обсягами даних, для розв’язування яких необхідно використо- вувати потужні суперкомп’ютери. Більшість таких за- дач зводиться до розв’язування систем лінійних алгебраїчних рівнянь (СЛАР). Головні проблеми розв’язування задач на ком- п’ютері – це отримання вірогідних розв’язків при мінімальних витратах обчислювальних ресурсів. Задача, яка розв’язується на комп’ютері, завжди має наближені дані щодо вихідної задачі (через похиб- ку вихідних даних, через похибку введення числових даних в комп’ютер тощо). Отже, властивості комп’ютерної задачі можуть істотно відрізнятися від властивостей вихідної задачі. Виникає необхідність розв’язувати задачі з урахуванням наближених даних та аналізом отримуваних комп’ютерних результатів. Незважаючи на значні результати досліджень в об- ласті лінійної алгебри, роботи в напрямку подолання існуючих проблем комп’ютерного розв’язування задач з наближеними даними, які ще більше поглиб- люються при використанні сучасних суперкомп’ю- терів, не втрачають своєї значущості та потребують подальшого розвитку На сьогодні одними з найпродуктивніших супер- комп’ютерів є багатоядерні MIMD-комп’ютери з гра- фічними процесорами (гібридні комп’ютери), які протягом останніх років займають чільні позиції у сві- товому рейтингу Top500 [1]. Архітектурні та техноло- гічні особливості цих комп’ютерів дають можливість значно підвищити ефективність розв’язування задач великих обсягів, у тому числі задач лінійної алгебри, при відносно невеликих енерговитратах. У роботі розглядаються паралельні алгоритми ме- тодів Гаусса та Холецького для розв’язування СЛАР на гібридних комп’ютерах. Стан проблеми. На сьогоднішній день створенню ефективного програмного забезпечення для розв’я- зування задач лінійної алгебри на різних паралельних архітектурах приділяється велика увага, адже біль- шість задач математичного моделювання зводиться до розв’язування саме цього класу задач. https://doi.org/10.34229/2707-451X.20.2.6 О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 54 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 Найвідоміші бібліотеки алгоритмів та програм розв’язування задач лінійної алгебри на пара- лельних комп’ютерах (у тому числі гібридної архітектури) розробляються під керівництвом профе- сора Донгарри (Jack Dongarra, Electrical Engineering and Computer Science Department, University of Tennessee) в США. Цією групою дослідників на основі бібліотеки математичних операцій над мат- рицями та векторами BLAS, та бібліотеки програм блочних алгоритмів розв’язування задач лінійної алгебри LAPACK розробляється програмно-алгоритмічне забезпечення для різних комп’ютерних архітектур [2]. Зокрема створено для розв’язування СЛАР на комп’ютерах MIMD-архітектури − бібліотеку ScaLAPACK [2], для багатоядерних комп’ютерів − бібліотеки програм: Core Math Library AMD (оптимізована під процесори компанії AMD) [3], Intel Math Kernel Library (оптимізована під процесори компанії Intel) [4]. З появою у 2007 році першої версії програмно-апаратної архітектури CUDA (Compute Unified Device Architecture) [5] паралельних обчислень з використанням графічних процесорів компанією NVIDIA були адаптовані бібліотеки математичних операцій: cuBLAS [6] − для щільних матриць та cuSPARSE [7] для розріджених матриць. На основі цих бібліотек під керівництвом Донгарри створено бібліотеки паралельних алгоритмів та програм для розв’язування СЛАР із щільними матрицями: CULA [8] − з використанням одного графічного прискорювача, MAGMA [9] − з вико- ристанням декількох графічних прискорювачів. Високоефективна також бібліотека програм CUSP [10], яка реалізує розв’язування розріджених лінійних систем ітераційними методами на гібридних комп’ютерах та деякі інші. Також активно використовуються для розв’язування задач обчислювальної математики на різ- них паралельних платформах, у тому числі СЛАР, високопродуктивні пакети програм комп’ютерної математики MathCAD [11], Maple [12], Mathematica [13], Matlab [14]. Ці пакети програм мають інтерфейси для спілкування з користувачами за допомогою спеціальних символь- них мов, а також засоби графічної візуалізації даних та результатів обчислень. Проте, як відзначають спеціалісти, великий набір існуючого програмного забезпечення не вирішує у достатній мірі проблем достовірності комп’ютерних результатів розв’язування задач з наближеними даними [15 – 20]. Реалізація чисельних алгоритмів базується на точно заданих даних, аналіз достовірності комп’ютерних результатів покладається на користувачів. Тому при ви- користанні цих програмних продуктів можуть виникати проблеми достовірності комп’ютерних результатів, а для їх аналізу необхідно володіти відповідними знаннями з математики. Крім того, математичні моделі фізичних процесів можуть мати природні похибки в результаті вимірювань, спостережень, припущень, гіпотез і т. п. Надалі при дискретизації математичної моделі ці похибки трансформуються в похибки коефіцієнтів рівнянь, які підлягають роз- в’язуванню. Вихідні дані математичних моделей можуть бути задані точно в числовому вигляді або представлені математичними формулами. Але заокруглення при введенні чисел у комп’ютер та обчисленні формул також призводять до машинних моделей з наближеними даними. Оригінальними для гібридних алгоритмів, що пропонуються, є комп’ютерне дослідження математичних властивостей СЛАР з урахуванням наближеного характеру даних та розв’язування з аналізом достовірності отримуваних комп’ютерних розв’язків при ефективному використанні обчислювальних пристроїв гібридного комп’ютера. Деякі особливості створення паралельних алгоритмів для гібридних комп’ютерів. Гібри- дні комп’ютери поєднують MIMD- і SIMD-архітектури тобто поєднуються багатоядерні центральні процесори (Central Processor Unit – CPU) з розподіленою пам’яттю та масивно-паралельні приско- рювачі обчислень − графічні процесори (Graphics Processing Unit – GPU). Кожна архітектура дає можливість здійснювати різного рівня розпаралелення, проте без урахування архітектурних від- мінностей CPU і GPU, а також різних систем розпаралелення обчислень, які на них використову- ються, неможливо забезпечити високу швидкодію гібридних алгоритмів та програм. https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ ... ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 55 Для забезпечення ефективного розв’язування задачі на гібридному комп’ютері при створенні алгоритмів необхідно передбачити автоматичне виконання таких кроків: − побудова ефективної віртуальної топології з оптимальної кількості обчислювальних еле- ментів CPU для конкретної задачі; − розділення задачі на окремі частини алгоритму (підзадачі) та їх розпаралелення між обчис- лювальними елементами CPU при використанні графічних процесорів для виконання однотипних математичних операцій з великими обсягами даних; − дослідження математичних властивостей комп’ютерної задачі та її розв’язування з аналізом достовірності результатів. Розділення задачі на окремі підзадачі здійснюється з метою визначення: пріоритетів підзадач, на яких обчислювальних ресурсах їх краще реалізовувати за часом виконання, які підзадачі можна виконати паралельно, в якій послідовності їх треба виконувати тощо. При цьому враховуються архітектурні особливості процесорів CPU та GPU, відмінності в організації пам’яті, системи розпа- ралелення. Розпаралелення підзадач, які не потребують великого часу, краще виконувати на CPU за допо- могою MPI (Message Passing Interface) – інтерфейсу передачі повідомлень [21]. В цьому випадку підзадачі розпаралелюються між процесорами CPU на окремі MPI-процеси, що виконуються незалежно. При цьому швидкодію виконання алгоритмів на CPU можна значно підвищити, якщо розробляти їх з урахуванням наявної досить великої кеш-пам’яті. З цією метою розроблено блочно- циклічні гібридні алгоритми, що дає можливість узгоджувати розмір блоку матриці з розміром кеш-пам’яті. На ефективність реалізації паралельного алгоритму впливає використання різних способів обміну даними між процесами. Тому важливо передбачити в алгоритмах побудову топології з оп- тимальної кількості MPI-процесів, яка забезпечуватиме виконання взаємозв’язків між процесами при мінімальних затратах обчислювальних ресурсів. На основі теоретичних та експериментальних досліджень в представлених алгоритмах це здійснюється автоматично. На відміну від CPU, на графічних процесорах система CUDA організує 6 видів пам’яті, кожна з яких має своє призначення. В розпаралеленні обчислень на GPU здебільшого використовуються глобальна пам’ять (global-memory) та розподілена пам’ять (shared-memory). Global-пам’ять призна- чена для встановлення зв’язків між процесорами CPU та GPU, а також для збереження даних на GPU. Вона досить велика, повільна і не кешується. Shared-пам’ять  це швидка пам’ять GPU, яка використовується для паралельного виконання обчислень. Проте ця пам’ять дуже мала у порівнянні з кеш-пам’яттю CPU. На один GPU-процесор доступно всього 16 кбайт розподіленої пам’яті. На shared-пам’яті за допомогою CUDA може вико- нуватися паралельно величезна кількість обчислювальних потоків. При цьому кожному потоку ставиться у відповідність один елемент матриці або компонента вектора. Тому в гібридних алгори- тмах на процесорах GPU доцільно виконувати математичні операції над векторами та матрицями (скалярні добутки, перемноження вектора на скаляр, матричні операції), які потребують найбіль- ших затрат комп’ютерного часу. Копіювання даних з пам’яті CPU в global-пам’ять GPU і назад відноситься до найбільших об- числювальних витрат, що суттєво збільшують час виконання алгоритму. Тому в гібридних алгори- тмах передбачено синхронне виконання копіювання даних між CPU та GPU та деякі обчислення на GPU, які можна виконувати незалежно, наприклад, матрично-векторні операції. Головна частина паралельної програми, що реалізує гібридний алгоритм, виконується на CPU і керує обчисленнями на GPU таким чином: − виділяється пам’ять на GPU для збереження матриці та вектора; − копіюються дані з пам’яті CPU у виділену пам’ять GPU; О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 56 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 − запускається ядро (kernel–програма) на GPU; − по закінченню обчислень вектор розв’язку копіюється з пам’яті GPU у пам’ять CPU; − звільняється виділена пам’ять GPU. Схема зберігання та розподіл даних між процесорними пристроями гібридного комп’ю- тера. Дослідження гібридних алгоритмів розв’язування СЛАР із щільними матрицями показали, що найбільш ефективними є блочні алгоритми як з погляду ефективного використання кеш- пам’яті на CPU, так і з погляду швидкодії виконання арифметичних операцій на shared-пам’яті. На процесах CPU розмір блоку матриці узгоджується з розміром кеш-пам’яті, а на процесорах GPU вихідний масив вектора або матриці ділиться на блоки так, щоб його довжина відповідала ро- зміру блоку shared-пам’яті. Як правило, розмір блоку матриці на GPU є кратним 16. В гібридних алгоритмах, що розглядаються, використовується двовимірний блочно-циклічний розподіл вихідної щільної матриці A порядку n між p-процесами у вигляді [17]. Будемо вважати, що матриця A порядку n розділена на квадратні блоки розміру s s . Не втрачаючи загальності міркувань, вважатимемо, що /n s – ціле число. Крім того, введемо наступні блочні представлення матриці ( )ijA A , , 1,...i j l , /l n s : * * * 11 12 1 * * * 21 22 2 * * * 1 2 ... ... ... ... ... ... ... p p q q qp A A A A A A A A A A            , де             * * * * * * 1 1* 1 1 1 1 ... ... ... ... ... ... ... ij ij p ij p p i pj i pj p i pj p p ij i q pj i q pj p i q pj p p A A A A A A A A A A                             . Тут ijA – блок елементів матриці A розміру ss , q* = n\sq, p* = n\sp. Нехай, 8n  , 2s  , 2p  , 2q  . Тоді для матриці 11 12 18 21 22 28 81 82 88 ... ... ... ... ... ... ... a a a a a a A a a a          блочне представлення має вигляд 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 , A A A A A A A A A A A A A A A A A             де 2 1,2 1 2 1,2 2 ,2 1 2 ,2 . i j i j ij i j i j a a A a a             ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ ... ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 57 В цьому випадку блочно-циклічний розподіл матриці A матиме вигляд * * 11 12 * * 21 22 A A A A A        , де 11 13* 11 31` 33 A A A A A      , 12 14* 12 32` 34 A A A A A      , 21 23* 21 41` 43 A A A A A      , 22 24* 22 42` 44 A A A A A      . Отже, в кожному процесі ijP містяться елементи матриці * ijA , а також відповідні блоки матриці правих частин. Кожний вектор правих частин розподіляється циклічно блоками розміру p q між процесами першого стовпчика «процесорної решітки». Отже, 1kP містить елементи з номерами ,ks 1ks , 2ks ,..., 1ks s  , ( )k p s , ( ) 1k p s  , ( ) 2k p s  , ..., ( ) 1k p s s   ,..., де s – розмір блоку, що дорівнює відповідній величині в розподілі матриці. Комп’ютерне дослідження математичних властивостей СЛАР з наближеними даними та аналіз достовірності результатів розв’язування. Розглядаємо розв’язування системи лінійних рівнянь із щільною невиродженою матрицею та наближеними даними Ax b . (1) Тобто елементи матриці A та вектора правої частини b мають деякі збурення щодо вихідної задачі Ax b , (2) що визначаються формулами: AA A A E A    , bb b b E b    . (3) При цьому передбачається, що структура матриці вихідної задачі (2) і збуреної задачі (1), (3) не змінюється, тобто, якщо вихідна матриця є симетричною, то й збурена залишається симетрич- ною, якщо вихідна  стрічкова, то й збурена  стрічкова і т. д. Отже, при розв’язуванні СЛАР з наближеними вихідними даними необхідно розглядати цілий клас систем рівнянь (1), (3), що мають досить широку множину формально допустимих розв’язків. Отримуючи результати розв’язування задачі (1), необхідно оцінити збурення розв’язку в за- лежності від збурення вихідних даних (3). Не завжди близькість елементів матриць A і A та пра- вих частин b і b забезпечує достатню близькість розв’язків. Наприклад, при деякому збуренні в межах точності елементів матриці і/або правої частини несумісної точної системи (2) збурена система (1), яку отримано в комп’ютері, може виявитися сумісною і навпаки – сумісна СЛАР може перетворитися на несумісну [16, 17, 22 – 25]. Похибку розв’язку x x x   , пов’язаною з наближеним наданням вихідних даних, називають спадковою. Її значення залежить як від похибок вихідних даних (3), так і від властивостей матриць вихідної (2) та збуреної (1) систем. Розв’язок x системи рівнянь (1), що отримується на комп’ютері, будемо називати комп’ю- терним розв’язком задачі, який (через похибки заокруглень даних, методу розв’язування і комп’ютерних обчислень) відрізняється від точного (математичного) її розв’язку. Різниця цих розв’язків x x x    обчислювальна похибка. Таким чином, розв’язування СЛАР з наближеними вихідними даними на комп’ютері полягає в дослідженні математичних властивостей задачі (1), (3), визначенні одного з допустимих розв’язків цієї задачі та в оцінці похибок (спадкової і обчислювальної) отриманого розв’язку [16, 17, 22]. О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 58 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 Дослідження властивостей СЛАР загалом базується на оцінці числа обумовленості матриці, значення якого обчислюється в процесі факторизації матриці одним з прямих методів, наприклад, LU -факторизації методом Гаусса за такою схемою [17]: A LU , (4) 1 j 1 max n ij i A a    , (5) TU w e , (6) TL y w , (7) Lv y , (8) Uz v , (9) 1 1 1 cond /A A z y , (10) 1 j 1 max n ij i A a    , 1 1 n i i z z   , 1 1 n i i y y   . (11) Обчислення відповідних норм можна реалізувати на CPU. В кожному MPI-процесі на CPU вибирається максимальна з наявних у ньому векторних норм, після цього за допомогою відповід- них MPI-функцій вибирається їх максимальна величина з усіх процесів. Для розв’язування системи (6) існує спеціальний алгоритм, який враховує стратегію вибору компонент вектора e при розв’язуванні системи [17]. Наведемо його. 1. Покладемо 1 1e  , 1 111w u . 2. Для 2,...,k n обчислюємо 1 1 k j ij i i t u w     , ,...,j k n . 3. Для двох можливостей вибору ke покладаємо sign( )k ke t   , k ke e   . 4. Обчислюємо два розв’язки:   /k k k kkw e t u   ,   /k k k kkw e t u   . 5. Для вибору одного розв’язку із  kw та  kw обчислюємо: k k kt e t   , k k kt e t   , j j kj kt t u w    , 0j kj kt u w    , 1,...,j k n  . 6. Обчислюємо величини n j j k t   та n j j k t   і порівнюємо їх. Якщо перша величина більша за другу, то покладаємо k kw w , у протилежному випадку k kw w . При рядковій схемі зберігання матриці TU обчислення величин , ,j j jt t t  легко розпаралелю- ються між процесами CPU. Якщо ж TU зберігається у відповідності зі стовпчиковою схемою, то реалізація описаного алгоритму породжує послідовну програму. Ситуація дещо покращується, якщо обчислення величин , ,j j jt t t  , ( 1,..., )j k n  виконувати одночасно на двох процесах CPU. Розв’язування систем (7) – (9), з огляду на спосіб зберігання матриці, також ефективніше можна реалізувати на CPU. ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ ... ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 59 Після визначення числа обумовленості за формулами (10), (11) в процесі реалізації того чи іншого прямого методу здійснюється перевірка коректності постановки задачі та обчислюється оцінка успадкованої похибки. Якщо значення condA в комп’ютері задовольняє умові: 1.0 1 cond 1.0A  , (12) то матриця вважається виродженою у межах машинної точності. Якщо матриця не класифікується за (12) як вироджена, але cond 1AE A  , то задача вважається некоректно поставленою при заданій точності елементів матриці, тому не можна гарантувати достовірність обчисленого розв’язку. Верхня межа “відносної” успадкованої похибки розв’язку визначається за формулою: cond , 1 A b b x x E E E A x E       1bE  , де х  точний розв’язок системи (2), x  точний розв’язок системи (1), (3), AE , bE  максима- льні відносні похибки елементів матриці та правої частини відповідно. Як правило, їх вказує кори- стувач. В іншому випадку A bE E macheps  , де macheps  найменше в комп’ютері число з пла- ваючою комою, для якого виконується умова: 1 1macheps  . Оцінка обчислювальної похибки виконується за ідеєю ітераційного уточнення отриманого розв’язку [17], один крок якого реалізується способом накопичення скалярного добутку за схемою: (0)x x , ( ) ( )s sr b A x   , ( ) ( )s sA x r  , ( 1) ( ) ( ) ,s s sx x x   0,1, 2, ...s  . Оцінка обчислювальної похибки розв’язку визначається за формулою 1 (0) (1) 1 /E A r x  , де (1)x – наближення точного розв’язку, яке отримано за один крок ітераційного уточнення. Гібридний алгоритм LU-факторизації методом Гаусса. Алгоритм LU -факторизації матриці системи виду (1) приводить матрицю A до вигляду A PLU , де P – вектор перестановок, L – нижня трикутна матриця (з одиницями на головній діагоналі), U – верхня трикутна матриця. Коротко опишемо звичайний блочний алгоритм LU -факторизації з вибором максимального елемента (для однопроцесорного комп’ютера) [17]. Будемо вважати, що матриця A порядку n ро- зділена на квадратні блоки розміру s s . Не втрачаючи загальності міркувань, вважатимемо, що /n s – ціле число. На k-ому кроці алгоритму ( 1,2,...k  ) підматрицю ( )kA (діагональний блок матриці A ) поряд- ку ( 1) ,r n k s   яка містить останні r рядків і r стовпчиків матриці A , представимо у вигляді: 11 12 11 11 12 11 11 11 12 21 22 21 22 22 21 11 21 12 22 22 0 0 A A L U U L U L U P P A A L L U L U L U L U                         , де блок 11A має розмір s s , блок 12A – розмір ( )s r s  , блок 21A – розмір ( )r s s  , блок 22A – ( ) ( )r s r s   . О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 60 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 Спочатку проводимо послідовність гауссових перетворень [22] над частиною матриці (рис. 1), яка складається з блоків 11A та 21A , за формулами: im im mm a l a  , ij ij im mjl a l a  , (13) де 1,i s , 1,m s , 1,j m r  . РИС. 1. Cхема реалізації блочного алгоритму LU -факторизації Таким чином, отримаємо дві підматриці 11L та 21L . Далі обчислюємо підматриці 11U та 22A (остання записується на місце 22A ): 1 12 11 12( )U L A , (14) 22 22 21 12 22 22A A L U L U   . (15) Обчислення повторюються, збільшуючи значення k на одиницю та розглядаючи блок 22A як підматрицю ( )kA . Розглянемо реалізацію гібридного алгоритму LU -факторизації на архітектурі g CPU + g GPU (g – кількість обчислювальних пристроїв). Розташуємо матрицю у CPU гібридного комп’ютера та- ким чином, щоб * ij ijA P , де i та j − декартові координати на решітці комп’ютерної топології, ро- зміру p q . Не втрачаючи загальності, припускатимемо, що ( )m n spq  ціле число ( s s – розмір блоку матриці, n – кількість MPI-процесів). Двовимірний блочний алгоритм LU -факторизації матриці для гібридного комп’ютера вико- нується в такому порядку: 1) в MPI-процесі на CPU провідного стовпчика процесорів решітки виконується модифікація блоків 11A та 21A (рис. 1) за формулою (13). Проводиться пошук максимального елемента (обмін рядків у випадку, якщо максимальний елемент виявився не у провідному процесі); 2) провідним процесом на CPU обчислюється обернена підматриця 11L . Оскільки блок 11A повністю розташований в одному процесі, обмінів з іншими процесами не відбувається; 3) обернена підматриця 11L розсилається всім процесам провідного рядка процесорів CPU; 4) у процесорах GPU провідного рядка паралельно виконуються операції над блоками матриць 1 11L та 12A за формулою (14), отримуючи блок 12U (рис. 1); 5) процеси на CPU провідного рядка розсилають процесам вертикально (вниз і вверх) блоки 12U , а процеси провідного стовпчика – горизонтально (вправо і вліво) блоки 21L (рис. 1); 6) у процесорах GPU проводиться модифікація частин 22A згідно формули (15). Обчислення проводяться після того, як кожен процес CPU скопіював на GPU відповідні частини масивів 22A , 21L , 12U ; 7) після виконання обчислень порції 22A копіюються з GPU у відповідні процеси на СPU. ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ ... ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 61 Для ефективного виконання операцій над матрицями та векторами на CPU використано відпо- відні програми бібліотеки програм Intel MKL [4], а на GPU – бібліотеки програм cuBLAS [6]. Гібридний алгоритм LLT-факторизації методом Холецького. При розв’язуванні СЛАР ви- ду (1) з симетричною додатно означеною матрицею алгоритм TLL -факторизації зводить матрицю A до виду TA LL , де L – нижня трикутна матриця, TL – верхня трикутна матриця. Розглянемо блочний алгоритм TLL -факторизації для однопроцесорного комп’ютера. При цьому будемо вважати, що матриці A та L порядку n розділені на квадратні блоки розміром s s . На k-ому кроці алгоритму ( 1,2,...)k  підматрицю ( )kA (діагональний блок матриці A ) поряд- ку ( 1)r n k s    , яка містить останні r рядків та r стовпчиків матриці A , запишемо у вигляді 1111 21 11 21 11 11 11 21 21 2221 22 22 21 11 21 21 22 22 0 0 T T T T T T T T LA A L L L L L L L LA A L L L L LL L                     , де блок 11A має розмір ss , блок 12A – )sr(s  , блок 21A – ( )r s s  , блок 22A – ( ) ( )r s r s   . Для реалізації звичайного блочного алгоритму на кожному k-кроці необхідно виконати наступні дії [22]: − TLL -факторизація підматриці 11A , отримуючи підматрицю 11L : 11 11 11 TA L L ; (16) − модифікація підматриці 21L :   1 112121   TLLL ~ ; (17) − обчислення підматриці 22A : 22 22 21 21 22 22 T TA A L L L L   . (18) Таким чином, на k-ому кроці ( 1, 2, ...)k  отримуємо модифіковану частину матриці L . На наступний крок переходимо з підматрицею 22A (рис. 2). РИС. 2. Cхема реалізації блочного алгоритму TLL -факторизації Розглянемо реалізацію гібридного алгоритму TLL -факторизації на архітектурі g CPU + g GPU після блочно-циклічного розподілу матриці системи між процесами на CPU таким чином, щоб * ij ijA P , де i та j − декартові координати на решітці комп’ютерної топології розміру p q . На кожному k-ому кроці алгоритму ( 1,2,...)k  виконується така послідовність дій: 1) провідний MPI-процес на CPU, що містить підматрицю (блок) 11A , виконує її факторизацію за формулою (16), одержуючи підматрицю 11L ; О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 62 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 2) провідний процес розсилає обернену підматрицю   1 11 TL  всім процесам по вертикалі; 3) всі процесори GPU провідного стовпчика незалежно один від одного модифікують відпо- відні частини матриці 21L (панель 21L на рис. 2) за формулою (17). Обчислення проводяться після того, як кожен процес на CPU скопіював відповідну частину 21L на GPU. Отримані в результаті обчислень порції 21L копіюються з процесорів GPU назад до процесів СPU; 4) процеси на CPU провідного стовпчика розсилають всім процесам по горизонталі блоки ма- триці 21L та незалежно виконують їх транспонування, одержуючи 21 TL ; 5) кожен процесор GPU незалежно один від одного виконує модифікацію своїх порцій підма- триці 22A за формулою (18), отримуючи 22A . Обчислення проводяться після того, як кожен про- цес CPU скопіював на процесор GPU відповідні частини масивів 22A , 21L , 22L . Отримані в резуль- таті обчислень порції 22A копіюються з процесорів GPU у відповідні процеси СPU. У програмах, що реалізують гібридний алгоритм TLL -факторизації, для виконання матрично- векторних операцій використані програми Intel MKL та cuBLAS. Алгоритми розв’язування трикутних систем. Для розв’язування СЛАР виду (1) прямим методом, після проведення факторизації вихідної матриці, необхідно розв’язати дві системи з три- кутними матрицями. Наприклад, після LU -факторизації матриці розв’язуються такі системи: − Ly b з нижньою трикутною матрицею L (цю задачу часто називають прямою підстанов- кою або прямим ходом); − Ux y з верхньою трикутною матрицею U (зворотній хід). Кількість операцій, що затрачається для розв’язування трикутних систем значно менша, ніж для факторизації матриці, тому ці задачі ефективно можна реалізувати, розпаралелюючи обчис- лення лише на CPU гібридного комп’ютера. В програмах, що реалізують дані гібридні алгоритми, розв’язування трикутних систем виконується за допомогою відповідних програм бібліотеки Intel MKL. Експериментальне дослідження гібридних алгоритмів. Апробацію запропонованих гібрид- них алгоритмів проведено на суперкомп’ютері гібридної архітектури СКІТ-4, використовуючи різну кількість процесорних вузлів СPU та графічних прискорювачів з такими технічними характе- ристиками [26]: CPU – Intel(R) Xeon(R) CPU E5-26700, тактова частота 2.60 GHz, швидкість 8 GT/s, кеш-пам’ять 20 MB, у вузлі: 2 CPU по 8 ядер + Hyperthrefding = 32 ядра, Max Memory Size 384 GB; GPU – Nvidia Tesla M2050, пам’ять 3 GB, пікова продуктивність 515 Gflops. На графіках (рис. 3) показано прискорення розробленого гібридного алгоритму LU-факто- ризації при розв’язуванні на різній гібридній архітектурі g CPU + g GPU (g – кількість обчислю- вальних елементів) лінійних систем із щільними матрицями різного порядку (8192, 10240, 16374). Як видно з графіків, для задачі невеликого порядку (8192) прискорення обчислень дещо спадає при збільшенні кількості процесорів до 4 та 8. Це пояснюється недостатнім заповненням GPU-процесорів при виконанні матрично-векторних операцій та збільшенням комунікаційних зв’язків між CPU та GPU. Але з ростом порядку матриці прискорення суттєво зростає при збіль- шенні кількості процесорів. При розв’язуванні СЛАР порядку 16374 на архітектурі 8CPU 8GPU отримано прискорення приблизно в 6 раз у порівнянні з прискоренням на архітектурі GPU1CPU1  . ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ ... ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 63 РИС 3. Прискорення гібридного блочного алгоритму LU -факторизації на СКІТ-4 Аналогічні результати отримуємо і при розв’язуванні СЛАР гібридним алгоритмом TLL -факторизації на СКІТ-4. Висновки. У роботі запропоновано нові гібридні двовимірні блочно-циклічні алгоритми для розв’язування СЛАР із щільними невиродженими матрицями на багатоядерних комп’ютерах MIMD-архітектури з графічними прискорювачами, які передбачають комп’ютерне дослідження математичних властивостей задачі з наближеними даними та оцінку достовірності результатів. Розроблені гібридні алгоритми увійшли до складу бібліотеки програм з обчислювальної мате- матики Inparlib_G, що функціонує на суперкомп’ютері СКІТ-4 та використовується при розв’язуванні прикладних задач. У подальшому передбачається створення інтелектуальної системи комп’ютерної математики для автоматичного вибору ефективного алгоритму, топології паралельного комп’ютера, а також розв’язування лінійних систем з різною структурою матриць на гібридних комп’ютерах, викори- стовуючи програми з бібліотеки програм Inparlib_G. Список літератури 1. TOP 500 supercomputers 2019. http://www.top500.org/lists/2019/11/. 2. NetLib. https://www.netlib.org/. 3. AMD math LibM. http://developer.amd.com/amd-aocl/amd-math-library-libm/. 4. Math Kernel Library. https://software.intel.com./en-us/mkl/. 5. Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. М.: Пресс, 2010. 232 с. 6. cuBLAS. https://developer.nvidia.com/cublas/. 7. cuSparse Library. https://developer.nvidia.com/cusparse/. 8. CULA. https://developer.nvidia.com/em-photonics-cula-tools 9. MAGMA Software. https://icl.cs.utk.edu/magma/. 10. CUSP. https://developer.nvidia.com/cusp/. 11. MathCAD. https://www.ptc.com/ru/products/mathcad/. 12. Maple. https://www.maplesoft.com/products/Maple/. 13. Mathematica. https://www.wolfram.com/mathematica/. 14. Matlab. https://www.mathworks.com/help/matlab/. 15. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. 608 с. http://www.top500.org/lists/2019/11/ https://www.netlib.org/ http://developer.amd.com/amd-aocl/amd-math-library-libm/ https://software.intel.com./en-us/mkl/ https://developer.nvidia.com/cublas/ https://developer.nvidia.com/cusparse/ https://developer.nvidia.com/em-photonics-cula-tools https://icl.cs.utk.edu/magma/ https://developer.nvidia.com/cusp/ https://www.ptc.com/ru/products/mathcad/ https://www.maplesoft.com/products/Maple/ https://www.wolfram.com/mathematica/ https://www.mathworks.com/help/matlab/ О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 64 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 16. Химич А.Н., Молчанов И.Н, Мова В.И. и др. Численное программное обеспечение MIMD-компьютера Инпар- ком. Киев: Наукова думка, 2007. 222 с. 17. Химич А.Н., Молчанов И.Н., Попов А.В., Чистякова Т.В., Яковлев М.Ф. Параллельные алгоритмы решения за- дач вычислительной математики. Киев: Наукова думка, 2008. 247 с. 18. Сергиенко И.В., Молчанов И.Н., Химич А.Н. Интеллектуальные технологии высокопроизводительных вычис- лений. Кибернетика и системный анализ. 2010. Т. 46, № 5. С. 164–176. 19. Ильин В.П. О некоторых проблемах «облачного» математического моделирования. Вестник Южно- Уральского государственного университета. Серия вычислительная математика и информатика. 2014. Т. 3, Вып. 1. С. 68–79. 20. Тарнавский Г.А., Алиев А.В. Математичеcкое моделирование: Основные сегменты, их особенности и пробле- мы. Вычислительные методы и программирование. 2007. Т. 8. С. 297–310. 21. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных си- стем. СПб.: БХВ-Петербург, 2002. 400 с. 22. Молчанов И.Н. Машинные методы решения прикладных задач. Алгебра, приближение функций. Киев: Науко- ва думка, 1987. 288 с. 23. Wilkinson J.H. Rounding Errors in Algebraic Processes. London: H.W. Staat. Off, 1963. 161 p. 24. Уилкинсон Дж.Х., К Райнш. Справочник алгоритмов на языке Алгол. Линейная алгебра. М.: Машиностроение, 1976. 389 с. 25. Воеводин В.В. Ошибки округлений и устойчивость в прямых методах линейной алгебры. М.: Изд. ВЦ МГУ, 1969. 153 с. 26. Головинський А.Л., Маленко А.Л., Сергієнко І.В., Тульчинський В.Г. Енергоефективний суперкомп’ютер СКІТ-4. Вісник НАН України. 2013. № 2. С. 50–59. Одержано 19.03.2020 Хіміч Олександр Миколайович, доктор фізико-математичних наук, професор, заступник директора Інституту кібернетики імені В.М. Глушкова НАН України, Київ, https://orcid.org/0000-0002-8103-4223 Полянко Віктор Володимирович, кандидат фізико-математичних наук, науковий співробітник Інституту кібернетики імені В.М. Глушкова НАН України, Київ, Чистякова Тамара Василівна, кандидат фізико-математичних наук, старший науковий співробітник Інституту кібернетики імені В.М. Глушкова НАН України, Київ. tamara.chistjakova@gmail.com УДК 519.6 А.Н. Химич, В.В. Полянко, Т.В. Чистякова Параллельные алгоритмы решения линейных систем на гибридных компьютерах Институт кибернетики имени В.М. Глушкова НАН Украины, Киев Переписка: tamara.chistjakova@gmail.com Введение. В настоящее время в науке и инженерии постоянно появляются новые вычислительные задачи с большими объемами данных, для решения которых необходимо использовать мощные супер- компьютеры. Большинство таких задач сводится к решению систем линейных алгебраических уравне- ний (СЛАУ). Главными проблемами решения задач на компьютере является получение достоверных решений при минимальных затратах вычислительных ресурсов. Однако задача, которая решается https://orcid.org/0000-0002-8103-4223 mailto:tamara.chistjakova@gmail.com mailto:tamara.chistjakova@gmail.com ПАРАЛЕЛЬНІ АЛГОРИТМИ РОЗВ’ЯЗУВАННЯ ЛІНІЙНИХ СИСТЕМ ... ISSN 2707-4501. Cybernetics and Computer Technologies. 2020, No.2 65 на компьютере, всегда имеет приближенные данные по отношению к исходной задачи (из-за погрешно- сти исходных данных, из-за погрешности ввода числовых данных в компьютер и т. п.). Таким образом, математические свойства компьютерной задачи могут существенно отличаться от свойств исходной за- дачи. Возникает необходимость решать задачи с учетом приближенных данных, а также анализировать получаемые компьютерные результаты. Несмотря на значительные результаты исследований в области линейной алгебры, работы в направлении преодоления существующих проблем компьютерного реше- ния задач с приближенными данными, еще больше усугубляются при использовании современных суперкомпьютеров, не теряют своей значимости и требуют дальнейшего развития. На сегодня самые высокопроизводительные суперкомпьютеры – это параллельные компьютеры с графическими процес- сорами. Архитектурные и технологические особенности этих компьютеров дают возможность значительно повысить эффективность решения задач больших объемов при относительно небольших энергозатратах. Цель работы. Разработать новые параллельные алгоритмы решения систем линейных алгебраиче- ских уравнений с приближенными данными на суперкомпьютерах с графическими процессорами, для автоматической настройки алгоритма на эффективную архитектуру компьютера и выявленные в компьютере математические свойства задачи, а также ее решение с оценками достоверности получен- ных результатов. Результаты. Описана методология создания параллельных алгоритмов для суперкомпьютеров с графическими процессорами, реализующих исследование математических свойств линейных систем с приближенными данными и решение с анализом достоверности полученных результатов. Приведены результаты вычислительных экспериментов на суперкомпьютере СКИТ-4. Выводы. Созданы параллельные алгоритмы для исследования и решения линейных систем с при- ближенными данными на суперкомпьютерах с графическими процессорами. Численные эксперименты при использовании новых алгоритмов показали существенное ускорение вычислений с гарантией достоверности получаемых результатов. Ключевые слова: системы линейных алгебраических уравнений, гибридный алгоритм, прибли- женные данные, достоверность результатов, компьютеры с графическими процессорами. UDC 519.6 A. Khimich, V. Polyanko, T. Chistyakova Parallel Algorithms for Solving Linear Systems on Hybrid Computers V.M. Glushkov Institute of Cybernetics of the NAS of Ukraine, Kyiv Correspondence: tamara.chistjakova@gmail.com Introduction. At present, in science and technology, new computational problems constantly arise with large volumes of data, the solution of which requires the use of powerful supercomputers. Most of these prob- lems come down to solving systems of linear algebraic equations (SLAE). The main problem of solving prob- lems on a computer is to obtain reliable solutions with minimal computing resources. However, the problem that is solved on a computer always contains approximate data regarding the original task (due to errors in the initial data, errors when entering numerical data into the computer, etc.). Thus, the mathematical properties of a computer problem can differ significantly from the properties of the original problem. It is necessary to solve problems taking into account approximate data and analyze computer results. Despite the significant results of research in the field of linear algebra, work in the direction of overcoming the existing problems of computer solving problems with approximate data is further aggravated by the use of contemporary supercomputers, do not lose their significance and require further development. Today, the most high-performance supercomputers are parallel ones with graphic processors. The architectural and technological features of these computers make it possible to significantly increase the efficiency of solving problems of large volumes at relatively low energy costs. mailto:tamara.chistjakova@gmail.com О.М. ХІМІЧ, В.В. ПОЛЯНКО, Т.В. ЧИСТЯКОВА 66 ISSN 2707-4501. Кібернетика та комп'ютерні технології. 2020, № 2 The purpose of the article is to develop new parallel algorithms for solving systems of linear algebraic equations with approximate data on supercomputers with graphic processors that implement the automatic ad- justment of the algorithms to the effective computer architecture and the mathematical properties of the prob- lem, identified in the computer, as well with estimates of the reliability of the results. Results. A methodology for creating parallel algorithms for supercomputers with graphic processors that implement the study of the mathematical properties of linear systems with approximate data and the algorithms with the analysis of the reliability of the results are described. The results of computational experiments on the SKIT-4 supercomputer are presented. Conclusions. Parallel algorithms have been created for investigating and solving linear systems with ap- proximate data on supercomputers with graphic processors. Numerical experiments with the new algorithms showed a significant acceleration of calculations with a guarantee of the reliability of the results. Keywords: systems of linear algebraic equations, hybrid algorithm, approximate data, reliability of the results, GPU computers.