Балансировка вычислений в библиотеке Threading Building Blocks Дипломная работа Вьюшковой К.А., 544 гр. Научный руководитель: Вахитов А.Т. Рецензент: Немнюгин С.А.
Введение
Постановка задачи В рамках дипломной работы изучаются возможности применения итеративных алгоритмов оптимизации для балансировки нагрузки при многоядерных вычислениях с использованием библиотеки Intel Threading Building Blocks на примере задач линейной алгебры. Осуществляется подбор оптимального размера блока для алгоритма подбора размера блока simple_partitioner Актуальность: настройка эффективности конкретного компьютера
Эксперименты Рис.1 График зависимости времени работы программы от размера блока
Алгоритмы оптимизации Метод увеличения размера блока в два раза Псевдоградиентный метод θ n+1 = θ n α n g n (θ n ), где g n (θ n ) - псевдоградиент g n (θ n ) = F (θ n +ß) -F (θ n -ß)
Выигрыш во времени Метод увеличения размера блока Псевдоградиентный метод Задача умножения вектора на число 30,35%29,19% Задача перемножения векторов 22,1%22,56% Задача умножения матриц 17,91%17,16% Таблица 1. Выигрыш во времени у алгоритма подбора размера блока auto_partitioner
Сходимость методов Метод увеличения размера блока Псевдоградиентный метод Задача умножения вектора на число 213 Задача перемножения векторов 213 Задача умножения матриц 106 Таблица 2. Количество шагов, за которые сходятся методы оптимизации
Результаты Подтверждена возможность подстройки оптимального размера блока Предложено два метода подбора размера блока Результат: Правильный подбор размера блока позволяет достичь выигрыша от 17 до 30% метод увеличения размера блока является более универсальным псевдоградиентный метод сходится быстрее