Comments 8
достойная экспертиза, спасибо за материал..
Вижу картинки из таксономии Флинна, но не вижу упоминания о ней
Очень хотелось бы, чтобы кто то написал ещё и более общую статью. Про использование расспараление на верхнем уровне, например rayserve. Со всеми auto scaling и прочими вещами. Я использую его, но там ещё думаю много скрытых моментов, которые не использовал и не изучал. Вдруг на Хабре есть эксперты, кто вдоль поперёк на них распаралеливал задачи обучения. И описал бы нюансы, а их там не мало (от настройки до ограничений пропускного канала и других мелочей).
А можете ещё подсветить разницу, между Гибридным параллелизмом (Hybrid Parallelism, HP) и Многоуровневым параллелизмом (Multilevel Parallelism, MP)? Пока выглядит так, что втрое есть расширение первого...
Если кратко, то гибридный параллелизм - это часть многоуровневого.
То есть на уровне гибрида - вы выбираете слои для оптимизации.
К примеру, на уровне данных распределить задачу между нодами.
На уровне модели между узлами того же HGX.
Также конвейер(pipeline) может провести задачу по разным вычислителям.
А многоуровневый параллелизм - это некая мета-модель, те модель моделей, которая описывает все уровни возможности работы - те от уровня инструкций xPU до уровня инфраструктуры вычислений, например сетевого слоя.
Поэтому - гибрид - это решение целевой задачи, к примеру, если не помещаемся в одну GPU.
А многоуровневый - это своеобразный НИР/НИОКР для комплексного решения всего ландшафта.
Типы и архитектуры параллельных вычислений: какие они бывают?