2. 2
Параллельные вычисления
Зачем применять?
• Темпы выпуска продуктов возрастают
• Некоторые задачи требуют ускорения
• Инфраструктура широко распространена
(многоядерные процессоры, GPU, кластеры)
9. 9
▪ Прототип на рабочем компьютере
(CPU, GPU)
▪ Интегрируется в существующую
инфраструктуру
▪ Доступ напрямую из MATLAB
Параллельные вычисления в MATLAB
Вычислительный кластер: достоинства
10. 10
▪ Некоторые тулбоксы автоматически
используют распараллеливание
▪ Параллельные циклы
parfor
▪ Вычисления на GPU
gpuArray
Параллельные вычисления в MATLAB
Как задействовать
12. 12
▪ Управление заданиями
batch, createJob, createTask
▪ Асинхронное выполнение (в фоне)
parfeval
Параллельные вычисления в MATLAB
Дополнительные возможности
13. 13
▪ Распределённые (глобальные) массивы
distributed
▪ Технология MapReduce (с/без Hadoop)
mapreduce
▪ «Высокие» массивы (Tall arrays)
tall
Параллельные вычисления в MATLAB
Работа с большими данными
14. 14
Демо моделирование стоимости опциона
Метод Монте-Карло
Задача: Моделирование стоимости
опциона через 2 года с учётом случайных
колебаний рынка
Ускорение (в разы):
Распараллеливание на ядра процессора
Замена for на parfor
Multi-core CPU
15. 15
Масштабирование parfor
Меняются настройки, а не алгоритм
MATLAB
Parallel Computing Toolbox MATLAB Distributed Computing Server
parpool(‘local’)
Multi-core CPU
parpool(<cluster>)
17. 17
Ускорение расчётов на GPU
Когда применять?
• Большое количество
параллельных или векторных
операций
• Сложные вычисления
18. 18
Ускорение расчётов на GPU
Поддерживаемые функции
➢ 300+ функций для GPU
➢ GPU поддерживают тулбоксы
• Neural Networks
• Statistics and Machine Learning
• Image Processing
• Communications System
• Phased Array Systems
• Signal Processing
19. 19
Ускорение расчётов на GPU
Использование CUDA кода
Ускорение поэлементных операций: arrayfun
Расчёты на GPU: задание массивов как gpuArray
Расчёты на многоядерном CPU
Расчёты на CPU
speed
GPU
21. 21
Пример: Моделирование стоимости опциона
Метод Монте-Карло
Задача: Моделирование стоимости
опциона через 2 года с учётом
случайных колебаний рынка
Ускорение (в десятки раз):
Обработка данных на GPU
gpuArray
GPU
22. 22
Максимальное ускорение
▪ Поддержка нескольких GPU на компьютерах и
кластерах
Parallel Computing Toolbox MATLAB Distributed Computing Server
Multi-core CPU
GPU
GPU
GPU
GPU
GPU
23. 23
Параллельные вычисления
Заключение
▪ Для ускорения вычислений не нужно быть
экспертом
▪ Распараллеливание требует минимального
изменения кода
GPU
Multi-core
CPU
GPU
Multi-core
CPU
26. 26
В чём заключается проблема?
Традиционные инструменты и подходы не
работают!
▪ Читать и обрабатывать данные сложно
▪ Алгоритмы выполняются на кластерах
▪ Приходится изучать новые инструменты
▪ Необходимо переписывать алгоритмы на более
низком уровне
!
27. 27
Анализ больших данных в MATLAB
ЧТЕНИЕ ДАННЫХ
которые не влезают в
память
МАСШТАБИРОВАНИЕ
на традиционные и Big Data
(Hadoop) кластеры
АНАЛИЗ ДАННЫХ
Разработка алгоритмов
для Big Data
2
1
3
29. 29
Доступ к Big Data
datastore
▪ Простой доступ к данным
▪ Поддерживаются любые форматы
− текстовые
− таблицы
− базы данных
− HDFS
− изображения, …
▪ Последовательное чтение блоками
▪ Автоматическое распараллеливание
30. 30
Работа с Big Data
Distributed
array
(R2006b)
Big Data по
нескольким
размерностям
Линейная алгебра,
фильтрация и т.д.
Tall array
(R2016b) «Высокие»
массивы
+ статистика и
машинное обучение
31. 31
tall arrays
▪ Параллельная обработка
(Parallel Computing Toolbox)
▪ Лёгкое масштабирование
(MDCS, Spark)
tall
Cluster of
Machines
Memory
Single
Machine
Memory
Single
Machine
Memory
Process
Single
Machine
Memory
Single
Machine
Memory
Single
Machine
Memory
Single
Machine
Memory
Process
Single
Machine
Memory
Process
Process
Process
32. 32
Работа с Tall arrays
MATLAB
MDCS (Spark +
Hadoop)
1 раз разработали – масштабируем
mapreducer(0)
ds = datastore(<folder>)
T = tall(ds);
Multi-core CPU
mapreducer(parpool.cluster.Hadoop))
ds = datastore(<HDFS>)
T = tall(ds);
Parallel Computing
Toolbox
mapreducer(parpool(‘local’))
ds = datastore(<folder>)
T = tall(ds);
Datastore
HDFS
34. 34
«Низкоуровневое» программирование
▪ SPMD
MPI-подобная параллельная обработка на
традиционных кластерах
▪ MapReduce
Работает на компьютере и на кластерах (в т.ч. Hadoop)
▪ MATLAB API for Spark
Использование Spark RDD API из MATLAB для создания
Spark приложений
36. 36
Развёртывание алгоритмов Big Data
MATLAB Compiler, MATLAB Compiler SDK
MATLAB
Production
Server
Компьютеры
Кластеры
(MDCS, Hadoop)
37. 37
MATLAB Production
Server
Сервер независимых
MATLAB-приложений
▪ Front-end решение
▪ Выполнение большого
количества MATLAB-программ на
предприятии или в облаке
MATLAB Distributed
Computing Server
Кластерная инфраструктура
для расчётов
▪ Back-end решение
▪ Ускорение ресурсоемких
вычислений на кластерах и
облачных серверах
vs
.
39. 39
Сильные стороны MATLAB для Big Data
• Легко начать
Быстрый доступ к файлам, БД и Hadoop
• Эффективный анализ
Функции MATLAB для анализа и визуализации
• Бесшовная масштабируемость
Алгоритмы с компьютера легко переносятся на
кластеры
• Использование в бизнесе
Развёртывание по нажатию кнопки
40. 40
Почему MATLAB
MATLAB – самая простая и продуктивная среда
для экспертов в области анализа данных,
позволяющая получать эффективные результаты
из бизнес и инженерных данных
43. 43
• Поставка MATLAB &
Simulink
• Обучение специалистов
• Настройка решений под
ключ
• Консалтинг
exponenta.ru
info@exponenta.ru
+7 (495) 009 65 85
Центр инженерных технологий
и моделирования