Участница:OvsyannikovaSA/Программная реализация стохастического градиентного спуска: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 29: Строка 29:
Слабая масштабируемость ограничивается временем глобальных операций. При очень больших <math>P</math> накладные расходы на редукцию и коммуникацию начинают увеличиваться, вызывая медленный, но стабильный рост общего времени выполнения.
Слабая масштабируемость ограничивается временем глобальных операций. При очень больших <math>P</math> накладные расходы на редукцию и коммуникацию начинают увеличиваться, вызывая медленный, но стабильный рост общего времени выполнения.


Реализация выполнена с помощью OpenMP на суперкомпьютере "Ломоносов-2".
Реализация выполнена с помощью OpenMP на суперкомпьютере "Ломоносов-2". Число объектов в выборке <math>N=200000</math>, размерность признаков <math>m=20</math>, число эпох <math>E=30</math>, learning rate <math>\alpha=0.005</math>.
[[Файл:Ускорение параллельного SGD в зависимости от числа потоков и размера батча.png]]
[[Файл:Ускорение параллельного SGD в зависимости от числа потоков и размера батча.png]]


==Динамические характеристики и эффективность реализации алгоритма==
==Динамические характеристики и эффективность реализации алгоритма==
==Результаты прогонов==
==Результаты прогонов==

Версия от 11:54, 9 декабря 2025

Ссылки

Локальность данных и вычислений

Масштабируемость алгоритма и его реализации

Теоретическая масштабируемость алгоритма

Масштабируемость алгоритма SGD определяется его структурой и необходимостью синхронизации на каждом шаге.

Масштабируемость самого алгоритма SGD (не зависимо от платформы) ограничена его последовательной природой в цикле обновления весов.

На каждом шаге SGD происходят следующие критические операции, которые ограничивают масштабируемость:

1. Вычисление частных градиентов: массово параллельный этап. Потоки работают независимо на своих частях мини-батча.

2. Редукция: после вычисления частных градиентов все потоки должны выполнить редукцию для получения общего градиента. Эта операция является точкой барьерной синхронизации, т.к. ни один поток не может перейти к обновлению весов, пока не получен окончательный градиент.

3. Обновление весов: последовательный по времени этап, но параллельный по координатам вектора весов.

Максимальное ускорение [math]\displaystyle{ S_{max} }[/math] на одном шаге SGD ограничено законом Амдала, где последовательная часть — это время, затраченное на глобальную редукцию и, в меньшей степени, на векторное обновление. На практике масштабируемость ограничивается эффективностью редукции при росте числа процессоров.

Масштабируемость реализации

Сильная масштабируемость SGD хорошая до определенного предела. При увеличении [math]\displaystyle{ P }[/math] рабочая нагрузка на один процессор [math]\displaystyle{ B/P }[/math] уменьшается, что приводит к сокращению времени вычисления градиента.

Когда [math]\displaystyle{ P }[/math] становится близким к [math]\displaystyle{ B }[/math], уменьшение времени вычисления градиента замедляется. При дальнейшем росте [math]\displaystyle{ P }[/math] время, затрачиваемое на синхронизацию, начинает доминировать над временем полезных вычислений. Это приводит к падению эффективности и остановке роста ускорения.

[math]\displaystyle{ S_{max} }[/math] достигается, когда [math]\displaystyle{ P \approx B }[/math] или [math]\displaystyle{ P \approx d }[/math] (зависит от того, что больше; [math]\displaystyle{ d }[/math] - размерность вектора весов).

Слабая масштабируемость SGD очень хорошая. При одновременном увеличении общего размера данных [math]\displaystyle{ N }[/math] и числа процессоров [math]\displaystyle{ P }[/math] время вычисления градиента (самая затратная часть) остается примерно постоянным, поскольку нагрузка на один процессор неизменна.

Слабая масштабируемость ограничивается временем глобальных операций. При очень больших [math]\displaystyle{ P }[/math] накладные расходы на редукцию и коммуникацию начинают увеличиваться, вызывая медленный, но стабильный рост общего времени выполнения.

Реализация выполнена с помощью OpenMP на суперкомпьютере "Ломоносов-2". Число объектов в выборке [math]\displaystyle{ N=200000 }[/math], размерность признаков [math]\displaystyle{ m=20 }[/math], число эпох [math]\displaystyle{ E=30 }[/math], learning rate [math]\displaystyle{ \alpha=0.005 }[/math].

Динамические характеристики и эффективность реализации алгоритма

Результаты прогонов