ОБЧИСЛЮВАЛЬНІ СИСТЕМИ
УДК 519.6
О.М. ХІМІЧ*, О.В. ЧИСТЯКОВ*, В.М. БРУСНІКІН**
ГІБРИДНИЙ АЛГОРИТМ УЗАГАЛЬНЕНОГО МЕТОДУ СПРЯЖЕНИХ ГРАДІЄНТІВ ДЛЯ ПРОБЛЕМИ ВЛАСНИХ ЗНАЧЕНЬ З СИМЕТРИЧНИМИ РОЗРІДЖЕНИМИ МАТРИЦЯМИ
Інститут кібернетики ім. В.М. Глушкова НАН України, Київ, Україна Інститут проблем математичних машин і систем НАН України, Київ, Україна * 1
Анотація. Розглянуто гібридний алгоритм узагальненого методу спряжених градієнтів для розв’язання часткової проблеми власних значень для розріджених симетричних додатно визначених матриць. Досліджено ефективність розробленого гібридного паралельного алгоритму та подано результати апробації алгоритму на комп ’ютері гібридної архітектури. Використання графічних процесорів дало змогу значно підвищити швидкодію гібридного алгоритму у порівнянні з послідовною його версією.
Ключові слова: комп’ютери гібридної архітектури, алгебраїчна проблема власних значень, розріджена матриця, технології програмування CUDA та MPI.
Аннотация. Рассмотрен гибридный алгоритм обобщенного метода сопряженных градиентов для решения частичной проблемы собственных значений для разреженных симметричных положительно определенных матриц. Исследована эффективность разработанного гибридного параллельного алгоритма и представлены результаты апробации алгоритма на компьютере гибридной архитектуры. Использование графических процессоров позволило значительно повысить быстродействие гибридного алгоритма по сравнению с последовательной его версией.
Ключевые слова: компьютеры гибридной архитектуры, алгебраическая проблема собственных значений, разреженная матрица, технологии программирования CUDA и MPI.
Abstract. We consider a hybrid algorithm of generalized method of conjugate gradients for solving the partial eigenvalue problem of symmetric sparse positive definite matrices. The efficiency of the developed parallel algorithm and results of its testing on hybrid computer are shown. Using GPUs has allowed to improve significantly the performance of the hybrid algorithm compared to its sequential version. Keywords: сomputers of hybrid architecture, algebraic problem of eigenvalues, sparse matrix, CUDA and MPI programming technology.
1. Вступ
Велика кількість наукових та практичних задач, зокрема, при дослідженні стійкості конструкцій, розрахунку динаміки напружено-деформованого стану об’єктів різної природи та ін., зводяться до розв’язання часткової алгебраїчної проблеми власних значень з симетричними додатно визначеними матрицями розрідженої структури великої розмірності [1]. Такі задачі можуть бути ефективно розв’язані за допомогою однокрокових та двокрокових ітераційних методів. У статті [2] розглядаються явні та неявні однокрокові ітераційні методи для часткової проблеми власних значень, серед яких метод найшвидшого спуску, метод обернених ітерацій, степеневий метод та поперемінно-трикутний метод. Також висвітлено ряд питань щодо вибору параметрів та передобумовлювачів для підвищення швидкодії методів, доведено збіжність представлених методів. У роботі [3] розглянуто практичні аспекти розробки високоефективних паралельних однокрокових алгоритмів для MIMD-комп’ютерів та комп’ютерів гібридної архітектури, приведено результати обчислювальних експериментів на інтелектуальній робочій станції гібридної архітектури Інпарком_G.
© Хіміч О.М., Чистяков О.В., Бруснікін В.М., 2015 ISSN 1028-9763. Математичні машини і системи, 2015, № 3
3
У роботах Савинова В.Г. [4, 5] розглядаються двокрокові схеми на прикладі узагальненого методу спряжених градієнтів. Для даного методу доводиться збіжність, подаються рекомендації щодо вибору ітераційних параметрів, а також пропонується використовувати регуляризатор на основі методу симетричної верхньої релаксації для розв’язання систем лінійних алгебраїчних рівнянь.
У прикладному програмному забезпеченні бібліотечного виду Lis (Library of Iterative Solvers for Linear Systems) [6] реалізовано паралельні алгоритми для розв’язання на MIMD-комп’ютерах задач на власні значення з розрідженими матрицями з використанням прямих методів, що базуються на методах Крилова, Ланцоша, Арнольді, а також ітераційних методів, що базуються на степеневому методі та методі простої ітерації. Бібліотека паралельних програм SLEPc (Scalable Library for Eigenvalue Problem) [7] для розв’язування задач на власні значення надає інтерфейси до таких програмних засобів, як ARPACK та BLOPEX.
Велика розмірність розріджених матриць у задачах на власні значення, які виникають при математичному моделюванні практичних задач, та їх обчислювальна складність потребують використання потужних комп’ютерів для їх розв’язування. Гібридні комп’ютери з багатоядерними процесорами (CPU) та графічними процесорами (GPU -graphics processing units), а також технології GPGPU (General-purpose graphics processing units - GPU загального призначення) дають можливість значно зменшити час розв’язування таких задач.
У даній роботі розглядається задача на власні значення:
Ах-Ах, (1)
де А - симетрична розріджена додатно визначена матриця порядку п, Я та х - власне значення і відповідний власний вектор.
Для розв’язання алгебраїчної часткової проблеми власних значень для симетричних додатно визначених розріджених матриць на комп’ютерах гібридної архітектури пропонується неявний гібридний алгоритм спряжених градієнтів. Досліджено ефективність розробленого алгоритму та подано результати його апробації на комп’ютері гібридної архітектури.
Для знаходження мінімального власного значення використовується узагальнений метод спряжених градієнтів [4]:
Тут ми маємо
.к+1
Р /
Р
а, = +оо,
>’ к
х + акр ,к Ф N -1, 2 N -І,..., х ~акР k = N-\,2N-\,...
хк -акрк
Р =B{xk)f{xk)-(ikp«-\
іг-1
0,
k = 0,2N,....; ак_х=+ со,
Pk=\(B(xk)f(xk),[A- р(хк)Црк~1)
(рк-\[А-р(х*)Цр^)
к \ п _к-1 >
f(x) = \A-ц(х)ї\х/ х , Кх) =
к = 1,2,3,.... (Ах, х)
(х, х)
2
(2)
4
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
B( xk) - деяка матриця, яка вибирається із умов прискорення збіжності ітераційного процесу, N - момент відновлення, параметр ак може бути вибраний як точка локального мінімуму функціоналу р(хк - арк).
Ітераційний процес закінчується за критерієм
р(кп)-р(к)
М
(k)
< eps.
Для узагальненого методу спряжених градієнтів справедлива така теорема [4]. Теорема. Якщо m 1МІ2 - (В(Х)У’У) -М|МІ2’ Х’УЄКп> 0 < т < М < -ко та N < -ко з то ітераційний процес збігається для будь-якого початкового наближення х°, причому: 1ІШ И(хк) = Д > 1ІШ хк = vi> Де К’ vі ~ одне із власних значень та відповідний йому влас-
к—> со к—
ний вектор матриці А.
Зазначимо, що при практичній реалізації методу через помилки заокруглення процес буде збігатися до Хг, v.
При створенні ефективного паралельного алгоритму методу спряжених градієнтів необхідно враховувати, що виконання ітерацій методу здійснюється послідовно, тому доцільно розглядати математичні операції, які можуть бути розпаралелені на кожній ітерації. Аналіз послідовного варіанта алгоритму (2) показує, що найбільш трудомісткими операціями (підзадачами) на кожній ітерації за затратами обчислювальних ресурсів і часом виконання є множення розрідженої матриці на вектор та розв’язання систем лінійних алгебраїчних рівнянь (СЛАР) з трикутними матрицями. Саме ці підзадачі і підлягають розпарале-ленню з урахуванням архітектурних особливостей обчислювального середовища гібридного комп’ютера.
Для ефективного виконання гібридного алгоритму необхідно забезпечувати:
• ефективні способи збереження розріджених матриць для виконання матрично-векторних операцій на CPU і GPU;
• розв’язування підзадач, які потребують найбільших затрат комп’ютерного часу на
GPU;
• рівномірне завантаження процесів, що використовуються при розв’язуванні задачі (балансування навантаження);
• синхронізацію обмінів між процесами CPU;
• мінімізацію обмінів між процесами CPU та між CPU і GPU.
2. Приведенення матриці до блочно-діагонального вигляду з обрамленням
З метою підвищення ефективності розв’язання задачі з розрідженими матрицями великих розмірностей була використана ідея попереднього приведення вхідної розрідженої матриці А за допомогою методу паралельних перерізів до блочно-діагональної матриці з обрамленням [8]. Такий підхід дає змогу використовувати більш природний підхід до розпаралелен-ня обчислень на гібридному комп’ютері. Представлення розрідженої матриці у вигляді блочно-діагональної з обрамленням дає можливість ефективно виконувати матрично-векторні операції як на CPU, використовуючи, наприклад, бібліотеку обчислювальної математики Intel MKL [9], так і на GPU, з використанням бібліотек програм матрично-векторних операцій cuBLAS [10] та cuSPARSE [11].
Схематично матриця, приведена до блочно-діагонального вигляду з обрамленням, має вигляд:
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
5
A=PTAP =
'Ц 0 0 . .. 0 Бі
0 А 0 . .. 0 б2
О 0 А 0 Бз
'• о 0 0 А-1 БР-
1Б1 Б2 Бз . .. Бр-1 Цр
де P - матриця перестановок, а блоки Ц і Бг зберігають розрідженість.
Блочно-діагональна матриця може бути представлена як А = І — L —ІІ, а матриця L є нижньою трикутною блочно-діагональною матрицею з обрамленням. Матриця L складається з трикутних матриць Ц на діагоналі та розріджених матриць довільної структури C в обрамленні, а саме:
L =
f L Л
Li
А-1
LP
А
о
о
о
C
о
Ц
о
C
о
о
Ц
о
C
о
о
о
Ц
C
P-1
P-1
о
о
о
о
Ц
(3)
pj
Таким чином, початкова задача зводиться до такої еквівалентної:
Ay = Лу.
о
3. Неявний ітераційний гібридний алгоритм методу спряжених градієнтів
Для покращання швидкості збіжності ітераційного процесу використовується оператор (регуляризатор) В( х), який можна вибирати на основі методу верхньої симетричної релаксації для розв’язання систем лінійних алгебраїчних рівнянь [4].
У цьому випадку:
A (х)
1
1- /i(x)
(А(х) - p(x)I) = I - L(x) -L(x),
Б(х) = m(2-m)(I -mL (x))-1(I -mL (x))-1,
1
L(x) = -—~L(x),
1 - p(x)
де со - параметр релаксації, со є (1;2).
/V ... ^
З огляду на структуру L(x) реалізується такий розподіл блоків (підматриць) L(x)
/V л
по процесах CPU: процеси з номерами 0 < і < р зберігають блоки Dt(x) та Сі(х), а процес з номером р-1 зберігає блок Д^.Тут р - загальна кількість процесів.
6
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
Паралельна реалізація алгоритму в основному визначається блочно-трикутною
/V
структурою матриць ]]. (x) при розв’язанні системи:
(I - mL (x))(I -mL (x))w = r(x), r(x)=m(2 - m)f(x), w* = Pk ~ PkPk~l ■
Алгоритм розв’язання нижньої трикутної системи (I - mL (x))y = r зводиться до одночасного та незалежного розв’язування трикутних систем на окремих процесах гібридного комп’ютера з використанням GPU:
/V
(I-CODq(x))yq=rq, \<q<p,
та наступного обчислення yq = Cq (x)y , 0<q<p, де q - номер процесу.
Далі всі процеси надсилають yq в останній процес, в якому обчислюється yp,
/У
розв’язуючи систему (I - mDp (x))y
r
p-1
£ yq-
q-1
Аналогічно розв’язується система (I - mL(x))w = y, де p -й процес розв’язує сис-
yv
тему (I - mL(x))wp = y , а потім розсилає компоненти wp іншим процесам, які незалежно розв’язують системи (I - mL (x))wq = yq -Cq (x)w .
4. Оцінки ефективності неявного гібридного алгоритму спряжених градієнтів
Розглядаючи розроблений гібридний алгоритм, зазначимо, що основними за складністю арифметичними операціями є множення розрідженої матриці на щільний вектор та розв’язання двох трикутних систем.
Для однієї операції множення розрідженої матриці на щільний вектор кількість опе-
п
рацій дорівнює М = ^ //, операцій. Для розв’язання однієї трикутної системи справедлива
г= 1
я 1J2
така оцінка складності послідовного алгоритму: N ~ —
7-1
Для визначення оцінок ефективності гібридного алгоритму, в якому всі арифметичні операції в основному виконуються на GPU, введемо такі позначення: p - загальна кількість графічних процесів, п - розмірність матриці, - кількість ненульових елементів в і -му рядку нижньої трикутної матриці, к0 - кількість арифметичних операцій, що виконуються на одному GPU одночасно, t - час виконання однієї арифметичної операції на GPU, t0 - час обміну одним блоком між GPU, tj - час обміну одним блоком між CPU та GPU. Загальний час розсилки даних можна оцінити як t0 log2 p.
■Пі
операцій.
2
Позначимо T - час виконання алгоритму на одному GPU, а T - алгоритму з використанням p GPU. Тоді маємо такі наближені співвідношення:
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
7
Tx=q
2l_
V^o
(M + N) + tj
b, T=q
2---r + max
pk о
2У
\Pko
t, 10 l0g2 P
b
і
де q - емпіричний коефіцієнт, що залежить від рівномірності навантаження на обчислювальний пристрій, від формату даних, що оброблюються, та архітектурних особливостей обчислювальної системи, q є (0,8; 1,2), b - кількість ітерацій.
Провівши грубе заокруглення, отримаємо оцінки прискорення та ефективності алгоритму:
S
p
TP
N ^ л
P, ^t0l°g2P,
Pk0
2t (M + N) p + trpk0 N
2Mtp + t0pk0 log2 p + t^pk^’ pk0
t
< t0log2P,
Ep=-
p
1,
N
pk0
2t(M^ + N) + tfi0
Пі tolog2P, N
2Mt + t0k0log2 p
t1k0
pk0
t < t0log^p-
Отримані оцінки дають змогу стверджувати, що розроблений гібридний алгоритм забезпечує високе прискорення, оскільки наявність у дільниках комунікаційних складових величини n2 сприяє зменшенню частки часу, необхідного на обміни та синхронізацію процесів при великих порядках системи.
5. Особливості програмної реалізації гібридного алгоритму спряжених градієнтів для розв’язування часткової проблеми власних значень з розрідженими матрицями
5.1. Формати збереження розріджених матриць
При створенні алгоритмів розв’язування задач з розрідженими матрицями велике значення має вибір способів задання та збереження ненульових елементів. Ці способи визначаються насамперед структурою (розміщенням ненульових елементів) розрідженої матриці, вимогами алгоритму, який використовується, а також архітектурою гібридного комп’ютера.
Складність ефективної обробки розріджених матриць привела до створення великої кількості форматів їх збереження в комп’ютері, наприклад, CSR (compressed sparse row), CSC (compressed sparse column), COO (coordinate) та ін. Проте не можна рекомендувати єдиний, близький до оптимального, формат зберігання даних. Це у великій мірі залежить від виду розрідженої матриці. У працях багатьох авторів, наприклад [8], проведено аналіз різних форматів збереження розріджених матриць, який показав, що формат CSR, що відноситься до найбільш універсальних і дозволяє легко реалізувати оптимальний алгоритм множення розрідженої матриці на вектор на CPU, не завжди забезпечує таку продуктивність для цієї операції на GPU. У ряді випадків виявляється, що переваги мають модифіковані формати, які враховують розрідженість матриці, архітектурні особливості гібридного комп’ютера та організацію пам’яті на GPU.
Оскільки розріджені матриці великої розмірності потребують великих об’ємів обчислювальних ресурсів для їх збереження в комп’ютері та витрат часу на їх обробку, виникає потреба у виконанні великої кількості додаткових операцій при їх переформатуванні або переіндексації для забезпечення масштабованості обчислювального процесу. Тому був розроблений комбінований формат збереження матриць, що базується на CSR форматі та
8
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
враховує особливості представлення блочно-діагональної розрідженої матриці з обрамленням. Схематично комбінований формат представлено на рис. 1.
Зі схеми на рис. 1 видно, що блочно-діагональна матриця з обрамленням зберігається у class CSR::BD::Matrix у масивах вказівників на діагональні блоки та блоки з обрамленням. Тобто кожен блок є окремою підматрицею, збереженою у модифікованому форматі CSR (class CSR::Matrix).
Такий підхід дозволяє маніпулювати кожним блоком незалежно та забезпечувати можливість розпаралелення обчислень як на MIMD-комп’ютерах, так і на комп’ютерах гібридної архітектури.
Class CSR::BD::Matrix зберігає інформацію про вхідну матрицю class MatrixInfo, а
саме:
• розмірність матриці, кількість ненульових елементів та її розрідженість;
• кількість заданих перерізів при перетворенні матриці;
• кількість отриманих блоків у діагоналі та в обрамленні;
• характеристики матриці, такі як симетричність, представлення матриці у трикутному вигляді та місце розташування трикутника (над чи під головною діагоналлю);
• базис матриці (нульовий чи одиничний).
class MatrixInfo
matrix_size_type matrix_size; int NZ;
double sparsity;
int cuts_number;
int blocks_in_diagonal;
int blocks_in_border;
vector <int> block_size;
matrix_range_type matrix_range;
bool sym_matrix_flag;
bool triang_flag;
bool lower_block_flag;
class CSR::Matrix
int Matrix_size; vector<double> Value; vector<int> Columns; vector<int> RowIndex; vector<int> PointerB; vector<int> PointerE;
MatrixInfo csr bd matrix info
class CSR::BD::Matrix
vector<CSR::Matrix*>
vector<CSR::Matrix*> border blocks
MatrixInfo csr bd matrix info
Рис. 1. Комбінований формат збереження блочно-діагональної розрідженої матриці з обрамленням
У свою чергу class CSR::Matrix зберігає підматриці у модифікованому форматі CSR, тобто поєднує у собі 3- та 4-векторний формат збереження, а саме зберігаються такі масиви:
• vector<double>Value - ненульові елементи матриці;
• vector<int>Columns - позиція ненульового елемента у рядку;
• vector<int>RowIndex - кількість ненульових елементів у кожному рядку;
• vector<int>PointerB - кількість ненульових елементів у кожному попередньому
рядку;
• vector<int>PointerE - кількість ненульових елементів у кожному наступному рядку;
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
9
• MatrixInfo csr_bd_matrix_info - містить інформацію про кожну окрему підматрицю та її розташування у блочно-діагональній матриці з обрамленням.
Таким чином, отримано уніфікований 5-рядковий формат збереження розрідженої матриці, що дозволяє використовувати відомі високопродуктивні бібліотеки обчислювальної математики. Крім того, якщо у процесі обчислень додаткові масиви не потрібні, то вони видаляться автоматично, тим самим досягається більш оптимальне використання оперативної пам’яті.
Такий формат є ефективним як для використання на CPU, так і на GPU. Він дає змогу, наприклад, застосовувати до блоків матриць в одній і тій же програмі, без проведення переіндексації їх елементів, як функції розпаралелення системи MPI, так і програми матрично-векторних операцій з бібліотеки Intel MKL. Тим самим забезпечуються більш ефективне використання обчислювальних ресурсів та висока масштабованість гібридних алгоритмів. Серед переваг обраного формату можна також зазначити прозорий підхід до проведення обчислень, передачі повідомлень між обчислювальними процесами, зменшення витрат часу на розробку, відлагодження та тестування гібридних програм.
5.2. Налаштування гібридних алгоритмів та програм на обчислювальні ресурси гібридного комп’ютера
В сучасних гібридних комп’ютерах відмічається постійне оновлення типів обчислювальних вузлів та відеокарт, розробляються нові версії систем паралельного програмування MPI та CUDA, а також бібліотек програм обчислювальної математики, наприклад, Intel MKL, NVidia CuBLAS, CuSparse тощо. Використання найновіших розробок програмно-технічного устаткування сприяє підвищенню ефективності гібридних алгоритмів та програм. Тому необхідно передбачити такий спосіб їх розробки, щоб можна було легко вносити відповідні зміни зі змінами в обчислювальних ресурсах гібридного комп’ютера.
З цією метою при створенні гібридного алгоритмічно-програмного засобу для розв’язування часткової проблеми власних значень для розріджених матриць ітераційними алгоритмами було використано концепцію «функцій-обгорток» [12]. «Обгортка» (англ. Wrapper) - це функція, яка є проміжною ланкою між прикладними функціями або програмами та іншою бібліотекою чи програмним інтерфейсом, а також може модифікувати або узагальнювати інтерфейси прикладних програм. При цьому реалізується модульний принцип програмування, який дає можливість при оновленні програмного забезпечення вносити поправки лише в окремі програмні модулі. Комбінований формат збереження блочно-діагональної розрідженої матриці з обрамленням дозволяє ефективно використовувати концепцію «функцій-обгорток».
До «обгорток» винесені службові функції для роботи з графічним прискорювачем, наприклад, cusparseCreate(...), cudaMemcpy(...) та ін.
Блок-схему функціонального складу розробленого алгоритмічно-програмного засобу представлено на рис. 2, до якого входять:
• Data structures - модуль, що відповідає за структури збереження даних та їх обробку;
• Wrappers function - модуль, в якому реалізовуються «функції-обгортки»;
• Hight performance computing libraries - зовнішні високопродуктивні бібліотеки та інтерфейси паралельного програмування;
• Statistics functions - модуль, що відповідає за збір, збереження та обробку статистичних даних, підвищення ефективності обчислювального процесу, а також за обробку виключних та помилкових ситуацій;
• Computing methods functions - модуль, в якому реалізовано обчислювальні алгоритми (для своєї роботи цей модуль використовує вищенаведені модулі);
• External user interface - модуль, що реалізує інтерфейс користувача.
10
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
Data structures Statistics functions
1 t ^ t
Wrappers function —► ◄— Computing methods functions —► ◄— External user interface
+ t
Hight performance computing libraries
MKL cuSparse MPI
Рис. 2. Блок-схема гібридного алгоритмічно-програмного засобу
Такий підхід до розробки гібридного алгоритмічно-програмного засобу дозволяє отримати такі переваги:
• розширюваність - за рахунок малої залежності між модулями можна легко додавати нові функціональні можливості, наприклад, підтримку нових високопродуктивних бібліотек або структур збереження даних;
• зручне налагодження алгоритмічно-програмного засобу на гібридні комп’ютери з різними математичними та технічними характеристиками;
• зменшення часу на відлагодження та супровід програмного засобу - відлагоджен-ня модулів відбувається лише один раз і в разі повторного використання повторне тестування не потрібно проводити.
6. Апробація гібридного алгоритму спряжених градієнтів
Для експериментального дослідження гібридного алгоритму, що розглядається, було використано матриці з колекції Флоридського університету [13] (табл. 1).
аблиця 1. Набір тестових матриць з Флоридської колекції розріджених матриць
Назва задачі Проблемна область Порядок матриці Кількість ненульових елементів
Bmwcra 1 Structural problem 148,770 10,641,602
Bone010 Model reduction problem 986,703 47,851,783
Emila 923 Structural problem 923,136 40,373,538
Обчислювальні експерименти проводилися на інтелектуальній робочій станції гібридної архітектури Інпарком-G [14] з такими технічними характеристиками: чотири вузли з двома 4-ядерними Intel Xeon E5606 процесорами, оперативна пам’ять: 3 Гб на одне фізичне обчислювальне ядро. Програми, які реалізують гібридні алгоритми, написано на мові програмування C++ з використанням системи розпаралелювання MPI, бібліотеки Intel MKL для MIMD-комп’ютера, а також технології розпаралелення CUDA та бібліотек програм cuBLAS, cuSPARSE на GPU [15].
У табл. 2 приведено порівняльну характеристику знаходження найменшого власного значення на Інпарком-G однокроковим гібридним поперемінно-трикутним алгоритмом [3] та гібридним алгоритмом узагальненого методу спряжених градієнтів при використанні різної кількості ядер CPU та процесорів GPU.
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
11
Таблиця 2. Порівняльна часова характеристика (сек) гібридних алгоритмів
Гібридний алгоритм узагальненого методу спряжених градієнтів
Задача CPU CPU + GPU
1 Core 8 Core 16 Core 32 Core 1GPU 2GPU 4 GPU 8 GPU
Bone010 155,37 22,32 11,93 8,39 23,29 14,32 7,92 4,52
Bmwcra 1 306,55 43,18 24,48 13,24 43,18 24,27 13,73 8,06
Emilia 923 489,74 69,47 38,08 20,53 66,09 35,28 22,41 13,41
Гібридний алгоритм неявного методу скорішого спуску
Bone010 423,80 55,76 31,68 18,00 67,05 29,47 17,86 11,90
Bmwcra 1 820,74 115,27 62,64 34,04 117,41 56,02 30,78 18,76
Emilia 923 1185,52 173,06 90,13 46,94 161,07 77,99 44,31 26,06
З табл. 2 видно, що за неявним гібридним алгоритмом методу спряжених градієнтів на MIMD-комп’ютері найбільше прискорення обчислень при використанні 32 процесів у порівнянні з послідовною версією програми одержано від 18 до 23 разів. Використання одного GPU дає прискорення обчислень в 6,5 - 7,5 разів, а при масштабуванні гібридної системи до восьми GPU - в 34 - 38 разів у порівнянні з послідовною версією програми.
За гібридним алгоритмом поперемінно-трикутного методу на MIMD-комп’ютері найбільше прискорення обчислень при використанні 32 процесів у порівнянні з послідовною версією програми одержано від 22 до 25 разів. При використанні одного GPU прискорення обчислень складає 6,3 - 7,3 разів, а при використанні восьми GPU - в 35 - 45 разів у порівнянні з послідовною версією програми.
Отже, порівнюючи часи виконання задач при однакових вхідних даних та критеріях закінчення ітераційного процесу двокроковий неявний гібридний алгоритм методу спряжених градієнтів забезпечує прискорення у 2,0 - 2,8 разів у порівнянні з однокроковим гібридним алгоритмом поперемінно-трикутного методу.
7. Висновки
Обчислення власних значень та відповідних їм векторів для розріджених матриць великих розмірностей потребують значних обчислювальних ресурсів. У роботі запропоновано високопродуктивний двокроковий неявний гібридний алгоритм методу спряжених градієнтів для розв’язання алгебраїчної часткової проблеми власних значень для симетричних додатно визначених розріджених матриць на гібридних комп’ютерах.
Створений алгоритм забезпечує суттєве скорочення часу обчислень, тобто відмічається пропорціональне зменшення часу розв’язування задачі зі збільшенням кількості процесорних ядер MIMD-комп’ютера та кількості графічних прискорювачів на гібридних обчислювальних системах.
Програма, що реалізує розроблений гібридний алгоритм, входить до алгоритмічно-програмного забезпечення інтелектуальної робочої станції Інпарком-G і може використовуватися для розв’язання науково-технічних задач.
СПИСОК ЛІТЕРАТУРИ
1. Приказчиков В.Г. Прототипы итерационных процессов в задаче на собственные значения / В.Г. Приказчиков // Дифференциальные уравнения. - 1980. - Т. 16, № 9. - C. 1688 - 1697.
2. Приказчиков В.Г. Итерационные методы решения задач устойчивости и колебания пластин и оболочек / В.Г. Приказчиков, А.Н. Химич // Прикладная механика. - 1984. - Т. 20, № 1. - C. 88 -94.
12
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
3. Хіміч О.М. Паралельні однокрокові ітераційні методи розв’язання алгебраїчної проблеми власних значень для розріджених матриць / О.М. Хіміч, О.В. Чистяков // Компьютерная математика. -2014. - № 2. - C. 81 - 88.
4. Савинов Г.В. Исследование сходимости одного обобщенного метода сопряженных градиентов для определения экстремальных собственных значений матрицы / Г.В. Савинов // Записки научных семинаров ЛОМИ. - 1980. - Т. 111. - С. 145 - 150.
5. Савинов Г.В. Обобщенный метод сопряженных градиентов для решения линейных систем / Г.В. Савинов // Записки научных семинаров ЛОМИ. - 1978. - Т. 80. - С. 181 - 188.
6. Lis (Library of Iterative Solvers for Linear Systems) [Електронний ресурс] / Akira Nishida. Japan. -Режим доступу: http://www.ssisc.org/lis/index.en.html.
7. SLEPc (Scalable Library for Eigenvalue Problem Computations) [Електронний ресурс] / Universitat Politecnica de Valencia (Spain). - Режим доступу: http://slepc.upv.es.
8. Писсанецки С. Технология разреженных матриц / Писсанецки С. - М.: Мир, 1988. - 411 с.
9. Intel Maths Kernel Library [Електронний ресурс] / Intel. - Режим доступу:
http: //software.intel .com/en-us/intel-mkl.
10. cuSPARSE (The NVIDIA CUDA Sparse Matrix library) [Електронний ресурс] / NVIDIA. - Режим доступу: http://docs.nvidia.com/cuda/cusparse.
11. cuBLAS (The NVIDIA CUDA Basic Linear Algebra Subroutines) [Електронний ресурс] / NVIDIA. - Режим доступу: http://developer.download.nvidia.com/CUBLAS Library.pdf
12. Wrapper function [Електронний ресурс] / Olaf Davis. - Режим доступу:
http://en.wikipedia.org/wiki/Wrapper function.
13. The University of Florida Sparse Matrix Collection. [Електронний ресурс] / University of Florida. -Режим доступу: http://www.cise.ufl.edu/research/sparse/matrices.
14. Численное программное обеспечение MIMD-компьютера Инпарком / А.Н. Химич, И.Н. Молчанов, В.И. Мова [и др.]. - Киев: Наукова думка, 2007. - 222 с.
15. Боресков А.В. Основы работы с технологией CUDA / А.В. Боресков, А.А. Харламов. - М.: Пресс, 2010. - 232 с.
Стаття надійшла до редакції 02.07.2015
ISSN 1028-9763. Математичні машини і системи, 2015, № 3
13