Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища

Розглядається процес створення авто-тюнера для задачі чисельного моделювання з використанням модифікованого адитивно- усередненого розщеплення з покоординатною декомпозицією області. Наведені результати роботи авто-тюнера на декількох різних платформах....

Full description

Saved in:
Bibliographic Details
Date:2010
Main Authors: Іваненко, П.А., Дорошенко, А.Ю., Суслова, Л., Черниш, Р.І.
Format: Article
Language:Ukrainian
Published: Інститут програмних систем НАН України 2010
Subjects:
Online Access:https://nasplib.isofts.kiev.ua/handle/123456789/14644
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Cite this:Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища/ П.А. Іваненко, А.Ю. Дорошенко, Л. Суслова, Р.І. Черниш// Пробл. програмув. — 2010. — № 2-3. — С. 202-208. — Бібліогр.: 9 назв. — укр.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id nasplib_isofts_kiev_ua-123456789-14644
record_format dspace
spelling nasplib_isofts_kiev_ua-123456789-146442025-02-23T18:31:58Z Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища Automatically adjustable parallel algorithm for solving multidimensional problem of environmental modeling Іваненко, П.А. Дорошенко, А.Ю. Суслова, Л. Черниш, Р.І. Паралельне програмування. Розподілені системи і мережі Розглядається процес створення авто-тюнера для задачі чисельного моделювання з використанням модифікованого адитивно- усередненого розщеплення з покоординатною декомпозицією області. Наведені результати роботи авто-тюнера на декількох різних платформах. This article describes construction of auto-tuner for numeric solving multidimensional problem of environmental modeling parallel algorithm and provides analysis of results of auto-tuner execution on two different computing systems. 2010 Article Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища/ П.А. Іваненко, А.Ю. Дорошенко, Л. Суслова, Р.І. Черниш// Пробл. програмув. — 2010. — № 2-3. — С. 202-208. — Бібліогр.: 9 назв. — укр. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/14644 681.3 uk application/pdf Інститут програмних систем НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Ukrainian
topic Паралельне програмування. Розподілені системи і мережі
Паралельне програмування. Розподілені системи і мережі
spellingShingle Паралельне програмування. Розподілені системи і мережі
Паралельне програмування. Розподілені системи і мережі
Іваненко, П.А.
Дорошенко, А.Ю.
Суслова, Л.
Черниш, Р.І.
Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
description Розглядається процес створення авто-тюнера для задачі чисельного моделювання з використанням модифікованого адитивно- усередненого розщеплення з покоординатною декомпозицією області. Наведені результати роботи авто-тюнера на декількох різних платформах.
format Article
author Іваненко, П.А.
Дорошенко, А.Ю.
Суслова, Л.
Черниш, Р.І.
author_facet Іваненко, П.А.
Дорошенко, А.Ю.
Суслова, Л.
Черниш, Р.І.
author_sort Іваненко, П.А.
title Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
title_short Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
title_full Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
title_fullStr Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
title_full_unstemmed Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
title_sort автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища
publisher Інститут програмних систем НАН України
publishDate 2010
topic_facet Паралельне програмування. Розподілені системи і мережі
url https://nasplib.isofts.kiev.ua/handle/123456789/14644
citation_txt Автоматично налагоджуваний паралельний алгоритм чисельного розв’язання багатовимірної задачі моделювання навколишнього середовища/ П.А. Іваненко, А.Ю. Дорошенко, Л. Суслова, Р.І. Черниш// Пробл. програмув. — 2010. — № 2-3. — С. 202-208. — Бібліогр.: 9 назв. — укр.
work_keys_str_mv AT ívanenkopa avtomatičnonalagodžuvanijparalelʹnijalgoritmčiselʹnogorozvâzannâbagatovimírnoízadačímodelûvannânavkolišnʹogoseredoviŝa
AT dorošenkoaû avtomatičnonalagodžuvanijparalelʹnijalgoritmčiselʹnogorozvâzannâbagatovimírnoízadačímodelûvannânavkolišnʹogoseredoviŝa
AT susloval avtomatičnonalagodžuvanijparalelʹnijalgoritmčiselʹnogorozvâzannâbagatovimírnoízadačímodelûvannânavkolišnʹogoseredoviŝa
AT černišrí avtomatičnonalagodžuvanijparalelʹnijalgoritmčiselʹnogorozvâzannâbagatovimírnoízadačímodelûvannânavkolišnʹogoseredoviŝa
AT ívanenkopa automaticallyadjustableparallelalgorithmforsolvingmultidimensionalproblemofenvironmentalmodeling
AT dorošenkoaû automaticallyadjustableparallelalgorithmforsolvingmultidimensionalproblemofenvironmentalmodeling
AT susloval automaticallyadjustableparallelalgorithmforsolvingmultidimensionalproblemofenvironmentalmodeling
AT černišrí automaticallyadjustableparallelalgorithmforsolvingmultidimensionalproblemofenvironmentalmodeling
first_indexed 2025-11-24T10:25:44Z
last_indexed 2025-11-24T10:25:44Z
_version_ 1849667033960022016
fulltext Паралельне програмування. Розподілені системи і мережі © П.А. Іваненко, А.Ю. Дорошенко, Л. Суслова, Р.І. Черниш, 2010 202 ISSN 1727-4907. Проблеми програмування. 2010. № 2–3. Спеціальний випуск УДК: 681.3 АВТОМАТИЧНО НАЛАГОДЖУВАНИЙ ПАРАЛЕЛЬНИЙ АЛГОРИТМ ЧИСЕЛЬНОГО РОЗВ’ЯЗАННЯ БАГАТОВИМІРНОЇ ЗАДАЧІ МОДЕЛЮВАННЯ НАВКОЛИШНЬОГО СЕРЕДОВИЩА П.А. Іваненко, А.Ю. Дорошенко, Л. Суслова, Р.І. Черниш Інститут програмних систем НАН України, проспект Академіка Глушкова, 40. Київ, тел: 050 58064-13 paiv@ukr.net Український гідрометеорологічний інститут, Київ, проспект Науки, 37, chernysh@uhmi.org.ua Національний технічний університет України «КПІ», Київ, проспект Перемоги, 32, корпус 18. Розглядається процес створення авто-тюнера для задачі чисельного моделювання з використанням модифікованого адитивно- усередненого розщеплення з покоординатною декомпозицією області. Наведені результати роботи авто-тюнера на декількох різних платформах. This article describes construction of auto-tuner for numeric solving multidimensional problem of environmental modeling parallel algorithm and provides analysis of results of auto-tuner execution on two different computing systems. Вступ У зв’язку з тим, що подальше нарощення тактової частоти процесорів стало технічно неможливим, перехід до багатоядерної архітектури процесорів з використанням «енергоефективних» процесорів меншої частоти став джерелом для подальшого нарощування обчислювальних потужностей. Цей перехід дав новий поштовх розвитку паралельних обчислень в цілому. Тому зараз індустрія інформаційних технологій та розробники прикладного програмного забезпечення роблять акцент на концепціях паралельних та розподілених обчислень. Однією з головних проблем при розробці програм, орієнтованих на багатоядерні середовища, було й залишається ефективність виконання на різних багатоядерних архітектурах. Незначні на перший погляд відмінності, такі як кількість одночасно виконуваних потоків, розмір кеша та час доступу до пам’яті, у сукупності дають значну різницю у швидкодії паралельних програмних додатків у різних середовищах. Потенційним вирішенням цієї проблеми є так звані «авто-тюнери» [1]. Основною ідеєю їх підходу є те, що параметри, які впливають на швидкодію програм (такі як кількість потоків, «зернистість» декомпозиції даних, тощо), потрібно зробити налагоджуваними і їх оптимальні значення автономно знайде «авто-тюнер» у цільовому середовищі. Іноді навіть є доцільним створення декількох різних реалізацій алгоритмів, якщо вони в залежності від архітектури платформи можуть забезпечити значну різницю у швидкодії. У даній роботі на прикладі паралельної реалізації багатовимірної задачі моделювання навколишнього середовища буде показано процес створення «авто-тюнера» й проаналізовано перспективність використання такого підходу в цілому. Постановка задачі Об’єктом оптимізації авто-тюнера було обрано паралельну реалізацію спрощеного алгоритму короткотермінового прогнозування стану навколишнього середовища. Спрощення полягало в тому, що розглядався двовимірний варіант задачі, й обраховувався тільки один параметр – швидкість вітру. Повне формулювання задачі, а також алгоритм розв’язку можна знайти в [2, 3]. Далі розглядається обране спрощення. Розглядаємо задачу на ізобаричній поверхні :                                         u a u a h a gu a uu a v t u 22 coscoscos +          sin2 a tgu v , (1)                                         v a v a h a gv a uv a v t v 22 coscos          sin2 a tgu u , (2) mailto:paiv@ukr.net mailto:chernysh@uhmi.org.ua Паралельне програмування. Розподілені системи і мережі 203 де: ,  – довгота та широта, рад; ,u v – горизонтальні складові швидкості вітру, м/с; h – висота геопотенціалу, м;  – густина повітря, кг/куб. м; -5107.292 – кутова швидкість обертання Землі, рад/с; 6106.373a м – усереднений радіус Землі; 2/.819 смg  – прискорення вільного падіння. Розщеплена за напрямками задача має вигляд               h a gu a u a u t u h coscoscos           1 2 11 2 1 , (3)                             sin2 2 1 2 2 22 a tgu v u a u a v t u h , (4)                               sin2 2 1 1 2 11 a tgu u v a v a u t v h coscos (5)             h a gv a v a v t v h           2 2 22 2 1 , (6) де          222222 0 cos08.0 dch DDaks  ,     a vtg a v a u Dc          cos ,     a utg a u a v Dd          cos , смk /105 24 0  – стала величина; s – параметр варіації рівня дисипації в моделі, (3,…, 4), Метод розщеплення Використовувалася модифікована схема розщеплення [4, 5]. Нехай обрано часовий крок для розв’язання задачі NT , де T – загальний час визначення задачі, N – загальна кількість кроків. Вважатимемо, що число N не є простим: mQN  . Тоді розв’язання задачі зводиться до послідовності Q штук m -циклів, що мають таку структуру: 1. Ставимо початкові умови для (3), (5) та (4), (6): qmqmqm uuu   0 2 0 1 , qmqmqm vvv   0 2 0 1 . Також задаємо крайові умови та коефіцієнти для моменту часу qmt  (момент початку поточного m -циклу) і вважаємо їх сталими протягом наступних m кроків (таке припущення є справедливим в силу повільності процесів щодо часового кроку m ). 2. Розв’язуємо задачі (3), (5) та (4), (6) на проміжку    mqqm 1;  із кроком  (перший етап m -циклу), тобто mqm k mqm k qm k qm k uuuu   110 ... , (7) mqm k mqm k qm k qm k vvvv   110 ... . (8) 3. Усереднюємо отримані результати для кожної функції (другий етап):   2 211 mqmmqm mq uu u     ,   2 211 mqmmqm mq vv v     . (9) Цикл завершено. Слід зауважити, що збільшення значення параметра m призводить, з одного боку, до зменшення часу розв’язання задачі, а з іншого – до втрати точності розв’язку. Рекомендований діапазон вибору m є 1, ..., 10. Геометрична декомпозиція області Окрім розпаралелення задачі за рівняннями та координатними напрямками існує можливість розпаралелення за підобластями (геометричне розпаралелення). Паралельне програмування. Розподілені системи і мережі 204 Було використано декомпозицію на рис. 1, а для рівнянь (3) та (5), а декомпозицію на рис. 1, б – для рівнянь (4) та (6). Такий підхід [6] дозволив уникнути проблеми постановки крайових умов для підобластей всередині області визначення задачі (де немає крайових умов) та здійснити незалежний розрахунок в межах першого та другого етапів. Цілком природно вибрати 21 sss  , тоді кількість задіяних процесорів становитиме s4 . а б Рис. 1. Декомпозиція, що залежить від координатного напрямку рівняння  1 2,x x   . Схематично для одного рівняння розпаралелювання буде виглядати наступним чином (рис. 2). Рис. 2. Структура розпаралелення розрахунків у m -циклі Алгоритм (згідно з рис. 2). 1. Маємо відомі значення nu та nv , де qmn  , Qq ,...,1 – номер поточного m -циклу. Обчислюємо значення усіх коефіцієнтів рівнянь (3), (5) та (4), (6). 2. Ставимо крайові умови для моменту часу mqn )1(  та початкові умови. Всі обчислені умови та коефіцієнти на кроках 1, 2 вважаємо сталими впродовж усього m -циклу. 3. ( m -цикл – перший етап). У кожній із s підобластей здійснюємо m послідовних переходів (обчислень) за ланцюгами (7) та (8) – тут результат попереднього переходу є початковою умовою для наступного. 4. ( m -цикл – другий етап). У кожній із s підобластей результат останнього m -го переходу mnr ku ),( та mnr kv ),( (де sr ,...,1 – номер підобласті, 2,1k ) усереднюємо за формулою середнього арифметичного (9) для u та v . У результаті отримуємо значення mnru ),( та mnrv ),( . 5. (Крок не обов’язковий). Поєднуємо результат кроку 4 в одну просторову область, одержуємо mnu  та mnv  . Перехід на крок 1 при  mqn 1 . Автоматичне налагодження паралельних програм Дуже часто оптимізацію паралельної програми виконують на етапі розробки. Такий підхід майже ніколи не дозволяє створити ефективну для будь-якої обчислювальної платформи реалізацію, оскільки дуже часто оптимізація для окремої обчислювальної машини призводить до сповільнення програми на інших машинах. Також слід зважати на час, який затрачується на оптимізацію в «ручному режимі». 1 2 3 4 5 Паралельне програмування. Розподілені системи і мережі 205 Досить тривалий час популярною альтернативою було використання паралельних компіляторів. Цей підхід є достатньо ефективним і дає добрі результати, проте подальший розвиток таких компіляторів затрудняється великою різноманітністю архітектур паралельних середовищ. Розширення компіляторів оптимізаційними стратегіями під кожну окрему платформу становиться майже нездійсненною задачею, тому нещодавно був запропонований альтернативний підхід [1] – використання авто-тюнерів. Авто-тюнери є перспективним систематичним підходом, за яким паралельні програми створюються максимально універсальними й портативними, при цьому їх швидкодія залишається на рівні оптимізованих «вручну» програм. Авто-тюнер – бібліотека чи незалежний програмний додаток, який динамічно виконує параметризовану програму декілька разів і систематично досліджує область пошуку параметрів. Він намагається на цільовій платформі підібрати найбільш оптимальну конфігурацію параметрів. Підхід, який пропонують авто-тюнери, є ефективним, коли швидкодія паралельної програми суттєво залежить від декількох параметрів та є гарною альтернативою «ручному» перебору цих параметрів, особливо, коли оптимальна конфігурація не є інтуїтивно-очевидною. У загальному випадку роботу авто-тюнера відображає діаграма на рис. 3. Рис. 3. Цикл роботи авто-тюнера У процесі підбору параметрів у найпростішому випадку виконується повний перебір значень параметрів з допустимого діапазону, а також перевіряються всі доступні варіації алгоритмів. Параметри й алгоритми, з використанням яких були отримані найкращі результати швидкодії, зберігаються й використовуються надалі як оптимальні. Така методика підпадає в категорію «авто-тюнери як бібліотеки» [7]. Проте повний перебір параметрів займає багато часу, і в багатьох випадках простір пошуку можна мінімізувати з використанням евристик [1, 7, 8]. При проектуванні й реалізації будь-якого паралельного алгоритма доцільним є використання так званих «патернів» паралельного програмування [9] – певних параметричних шаблонів проектування, що дозволяють використовувати вдалі рішення типових задач у специфічному контексті. Застосування патернів у більшості випадків дозволяє зекономити час на створенні власного рішення. Далі будуть присутні посилання на назви використаних патернів, інформацію про які можна знайти у [9]. Для обраної задачі, як вже було вказано, найоптимальнішим є одночасне використання операторного й геометричного розщеплення (надалі називатимемо цей алгоритм скорочено А1), за якого для обчислень необхідно 4*S процесорів (S – кількість підобластей у геометричній декомпозиції області обчислень). Для реалізації геометричної декомпозиції області доцільно використати класичний структурний патерн Geometric decomposition pattern [9]. Цей патерн створений для вирішення проблеми організації роботи алгоритмів з вхідними даними, які було розбито на підобласті для паралельної обробки. Він дуже добре підходить для А1, схема якого для одного рівняння вже була проілюстрована на рис. 2, оскільки вхідні дані зберігаються у вигляді масивів й використання модифікованого адитивно-усередненого розщеплення дозволило позбутися будь-яких залежностей по даним між підобластями. Тобто в межах одного m -циклу не потрібно організовувати жодних операцій обміну. Одним з основних аспектів цього патерну є підбір «зернистості» розбиття, а саме має бути присутньою можливість зміни розмірності підобластей на етапі виконання для емпіричного пошуку оптимального варіанта на цільовій обчислюваній системі. Ця задача була доручена авто-тюнеру. Проте А1 не може претендувати на загальність, оскільки кількість одночасно незалежно виконуваних процесів у системі може бути не кратною 4. Тому доцільним є створення варіації алгоритму, яка б не мала такого обмеження. Для цього зручно використати патерн The Shared Queue pattern [9], який вирішує проблему паралельної обробки спільної черги (структура даних) й добре працює с патерном Master/Worker [9]. У цій реалізації декомпозицією області, а також обчисленням крайових умов буде займатися один головний процес (Master). Він буде заповнювати чергу готовими для обчислень підобластями, після чого усі процеси (Workers) будуть незалежно оброблювати цю чергу (надалі називатимемо цей алгоритм скорочено А2). Як і для А1, задачею авто-тюнера буде підбір розмірності розбиття таким чином, щоб кількість підобластей була більшою за кількість обчислювальних процесів, але достатньо великої розмірності, щоб витрати на синхронізацію окупилися. Паралельне програмування. Розподілені системи і мережі 206 Чисельний експеримент Паралельна реалізація задачі була створена засобами OpenMP. Експериментальні значення параметрів: 1. Величина часового кроку 5.0t с. 2. Значення m-параметра для методу розщеплення було взято рівним 10, оскільки при більших значеннях величина похибки обчислень виходить за межі 5 %. 3. Обчислення проводилися на сітці розмірністю 240*240. Експеримент було проведено на двох ЕОМ: 1. Гомогенна ЕОМ з двома Quad Core Intel Xeon E5405 із частотою 2 ГГц та архітектурою Intel EM64T. Загальний обсяг оперативної пам’яті становить 16 ГБайт. Доступ до спільної пам’яті однорідний. 2. Гомогенна ЕОМ з 24 процесорами Dual Core Intel Itanium 2 Series 9000 із частотою 1.6 ГГц та архітектурою IA64. Система доступу до пам’яті NUMAlink 4, топологія доступу fat-tree, загальний обсяг оперативної пам’яті становить 96 ГБайт. Мультипроцесорне прискорення 1( ) / ,kW k T T де T1 й Tk – час обчислень на одному і k процесорах відповідно. Коефіцієнт ефективності паралельного алгоритму ( ) ( ) . проц W k E k N  На першій обчислювальній системі авто-тюнер знайшов наступні оптимальні параметри: Алгоритм, № Кількість задіяних процесорів Кількість підобластей обчислення Прискорення Ефективність, % 1 8 2 5,45 68 2 8 8 4,87 61 Тобто, як видно з результатів, обидва алгоритми показали найкращі результати прискорення й ефективності при використанні усіх наявних процесорів. Часові затрати вийшли приблизно рівними: А1 виконав обчислення на 4 % швидше. Слід зауважити, що при цих же параметрах часові затрати на обчислення були мінімальними, чого не трапилося на другій ЕОМ. Розглянемо детальніше результати роботи авто-тюнера на другій ЕОМ (рис. 4, А1). а б в Рис. 4 Паралельне програмування. Розподілені системи і мережі 207 Найменший час обчислень було отримано при використанні максимальної кількості процесорів (на рисунках точка № 2) (для тестування було обмежено 24) і, відповідно геометричної декомпозиції на 6 підобластей. Проте з точки зору ефективності оптимальний параметр авто-тюнер визначив інший – обчислення на 4 процесорах (на рисунках точка № 1). Значення коефіцієнта ефективності більше 1 (> 100 %) у цій точці пояснюється тим, що алгоритм А1, як було зазначено раніше, не є ефективним при використанні кількості процесорів, не кратної 4. Падіння ефективності при використанні 24 процесорів пояснюється тим, що при зменшенні «зернистості» підобластей обчислення затрати на породження та синхронізацію потоків значно зменшили виграш від паралелізму. Схожі результати було отримано для А2. Нагадаємо, що для нього проводився пошук оптимальної розмірності обчислення за фіксованої кількості процесорів. а г б д в е Рис. 5 На рис. 5, а, б, в показані результати обчислень на 8 процесорах. У цій серії тестів була досягнута максимальна ефективність (78 %) А2 у точці, що відповідає геометричній декомпозиції на 8 підобластей. На рис. 5, г, д, е показані результати обчислень на 24. У точці, що відповідає геометричній декомпозиції на 22 підобластях, алгоритм показав найбільшу швидкодію. У цілому для другої ЕОМ А2 виконувався швидше (на 24 %), ніж А1. З результатів видно, що для отримання вищої ефективності на більшій кількості процесорів потрібно проводити обчислення на області більшої розмірності. Паралельне програмування. Розподілені системи і мережі 208 Висновки Було розглянуто ключові моменти процесу створення авто-тюнера для прикладної задачі. На прикладі реалізації паралельного алгоритму для обраної задачі було використано поєднання алгоритмічного розщеплення задачі за просторовими напрямками із покоординатною декомпозицією області. Це дозволило отримати сукупність підзадач, які не потребують жодних узгоджень розв’язків через обміни даними на межах підобластей, що значно підвищило ефективність обчислень. Наведено результати роботи авто-тюнера на двох різних ЕОМ. Той факт, що для них оптимальними виявилися різні алгоритми розв’язання задачі, додатково ілюструє доцільність створення авто-тюнерів. Їх використання для програм, які плануються виконувати на ЕОМ з різними архітектурами, дозволяє значно зекономити час на етапі оптимізації. 1. K. Asanovic et al. The Landscape of Parallel Computing Research: A View From Berkeley. Technical Report, University of California, Berkeley, 2006. 2. Белов П.Н. Практические методы численного прогноза погоды / Белов П.Н. – Л.: Гидрометеорологическое изд-во, 1967. – 336 с. – (Математическое моделирование в метеорологии). 3. Белов П. Н. Численные методы прогноза погоды / Белов П. Н., Борисенков Е. П., Панин Б. Д. – Л. : Гидрометеоиздат, 1989. – 376 с. 4. Прусов В.А., Дорошенко А.Е., Черныш Р.И. Выбор параметра модифицированного аддитивно-усредненного метода // Кибернетика и системный анализ. – 2009. – № 4. – С. 98–105. 5. Прусов В.А., Дорошенко А.Е., Черныш Р.И. Метод численного решения многомерной задачи конвективной диффузии // Кибернетика и системный анализ. – 2009. – № 1. – С. 100–107. 6. Черниш Р. І. Покоординатна декомпозиція області для еволюційних задач математичної фізики / Р .І. Черниш. // Вісник Київ. нац. ун-ту імені Тараса Шевченка: Сер. Фізико-математичні науки. – 2008. – № 4. – С. 191–194. 7. Thomas Karcher, Christoph Schaefer, Victor Pankratius. Auto-Tuning Support for Manycore Applications - Perspectives for Operating Systems and Compilers, Technical Report, University of Karlsruhe, Karlsruhe, Germany, 2009. 8. C. A. Schaefer, V. Pankratius, and W. F. Tichy. Atune-IL: An instrumentation language for auto-tuning parallel applications. Technical Report, University of Karlsruhe, 2009. 9. T. Mattson, B. Sanders, B.Massingill. Patterns for Parallel Programming. Addison-Wesley Professional, Reading, MA, 2004.