Автотюнінг паралельних програм із використанням статистичного моделювання та машинного навчання - Дорошенко, А.Ю.; Іваненко, П.А.; Новак, О.C.; Яценко, О.А. (Проблеми програмування, 2018)
Автотюнінг для складних і нетривіальних програмних систем зазвичай вимагає багато часу внаслідок емпіричного оцінювання великої множини варіантів значень параметрів вхідної паралельної програми у цільовому середовищі виконання. У даній роботі запропоноване вдосконалення методу автотюнінгу на основі використання статистичного моделювання та нейромережевих алгоритмів, що дозволяє суттєво звузити простір можливих значень параметрів, що аналізуються. Застосування підходу продемонстроване на прикладі автотюнінгу паралельної програми сортування, яка комбінує декілька методів сортування, на основі автоматичного навчання нейромережевої моделі на результатах “традиційних” циклів тюнінгу з подальшою заміною частини запусків автотюнера оцінкою зі статистичної моделі. Автотюнинг для сложных и нетривиальных программных систем обычно требует много времени вследствие эмпирического оценивания большого множества вариантов значений параметров входной параллельной программы в целевой среде выполнения. В данной работе предложено усовершенствование метода автотюнинга на основе использования статистического моделирования и нейросетевых алгоритмов, что позволяет существенно сузить пространство возможных значений параметров, которые анализируются. Применение подхода продемонстрировано на примере автотюнинга параллельной программы сортировки, комбинирующей несколько методов сортировки, на основе автоматического обучения нейросетевой модели на результатах “традиционных” циклов тюнинга с дальнейшей заменой части запусков автотюнера на оценку из статистической модели. Auto-tuning for complex and nontrivial parallel systems is usually time-consuming because of empirical evaluation of huge amount of combinations of parameter values of an initial parallel program in a target execution environment. This paper proposes the improvement of the auto-tuning method using statistical modeling and neural network algorithms that allow to reduce significantly the space of possible combinations of parameters values to analyse. The resulting optimization is illustrated by an example of tuning of parallel sorting program, that combines several sorting methods, by means of automatic training of a neural network model on results of “traditional” tuning cycles with subsequent replacement of some auto-tuner calls with an evaluation from the statistical model.