Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
4. 4
Параллельные вычисления
Зачем применять?
• Темпы выпуска решения возрастают
• Некоторые задачи требуют ускорения
• Инфраструктура широко распространена
(многоядерные процессоры, GPU, кластеры)
5. 5
Параллельные вычисления
Почему MATLAB?
• Поддерживается большое количество
«железа»
• Минимум изменений в коде
• Фокус на исследовании, а не на
программировании
Parallel Computing Toolbox
MATLAB Distributed Computer Server
10. 10
Прототип на рабочем компьютере
(CPU, GPU)
Интегрируется в существующую
инфраструктуру
Доступ напрямую из MATLAB
Параллельные вычисления в MATLAB
Вычислительный кластер: достоинства
11. 11
Некоторые тулбоксы автоматически
используют распараллеливание
Параллельные циклы
parfor
Вычисления на GPU
gpuArray
Параллельные вычисления в MATLAB
Возможности: распараллеливание
13. 13
Управление заданиями
batch, createJob, createTask
Асинхронное выполнение (в фоне)
parfeval
Параллельные вычисления в MATLAB
Возможности: управление
14. 14
Распределённые (глобальные)
массивы distributed
Технология MapReduce (с/без
Hadoop)
mapreduce
«Высокие» массивы (Tall arrays)
tall
Параллельные вычисления в MATLAB
Возможности: большие данные
15. 15
Пример: Моделирование стоимости опциона
Метод Монте-Карло
Задача: Моделирование стоимости
опциона через 2 года с учётом случайных
колебаний рынка
Ускорение (в разы):
Распараллеливание на ядра процессора
Замена for на parfor
Multi-core CPU
16. 16
User Story: управление портфелем хедж-фондов
EIM Group
Цель: Разработка инструментов для анализа и оптимизации портфеля хедж-
фондов
Сложности
Аналитическое решение невозможно из-за сложности модели
Симуляция Монте-Карло – 1000 точек для 700 хедж-фондов
портфеля каждого клиента
Почему параллельные вычисления?
Время симуляции уменьшилось на 80%
“Using Parallel Computing Toolbox, we easily parallelized our simulations without
modifying the underlying algorithms. By distributing the tasks across three servers, we
reduced the simulation time from 6 hours to 1.2 hours. Adding more processors would
further reduce our simulation time.”
Dr. Stéphane Daul, EIM Group
17. 17
Пример: Выбор оптимального расположения
базовых станций
Задача оптимизации
Задача: Оптимизация расположения
базовых станций для максимальной зоны
покрытия
Ускорение (в разы):
Распараллеливание на ядра процессора
Multi-core CPU
18. 18
Масштабирование parfor
Меняются настройки среды, а не код
MATLAB
Parallel Computing Toolbox MATLAB Distributed Computing Server
parpool(‘local’)
Multi-core CPU
parpool(<cluster>)
19. 19
Ускорение расчётов на GPU
Идеальный случай
• Большое количество параллельных или
векторных операций
• Сложные вычисления
• Алгоритмы содержат поддерживаемые функции
300+ функций для GPU
GPU поддерживают тулбоксы
• Neural Networks
• Image Processing
• Communications
• Signal Processing
20. 20
Ускорение расчётов на GPU
Использование CUDA кода
Ускорение поэлементных операций: arrayfun
Расчёты на GPU: замена массивов на gpuArray
Расчёты на CPU
speed
GPU
22. 22
Пример: Моделирование стоимости опциона
Метод Монте-Карло
Задача: Моделирование стоимости
опциона через 2 года с учётом случайных
колебаний рынка
Ускорение (в десятки раз):
Обработка данных на GPU
gpuArray
GPU
23. 23
User Story: ускорение анализа акустических данных на GPU
NASA Langley
Задача
Обработка записи звуков, производимых частями самолета во время исследований
в аэродинамической трубе
Сложности
Большой объём данных (126 микрофонов генерируют 4Гб в минуту)
«Раньше на анализ результатов одной продувки в аэродинамической трубе уходило
до 40 минут. С помощью MATLAB и GPU время вычисления стало меньше минуты.
Для перевода нашего MATLAB-кода на работу с GPU понадобилось 30 минут, т. к. не
требовалось низкоуровневого программирования на CUDA»
Кристофер Бар, инженер-исследователь отдела аэроакустики
из Исследовательского центра NASA Langley
24. 24
Максимальное ускорение
Поддержка нескольких GPU на компьютерах и
кластерах
MATLAB
Parallel Computing Toolbox MATLAB Distributed Computing Server
Multi-core CPU
GPU
GPU
GPU
GPU
GPU
25. 25
Заключение: параллельные вычисления
Для ускорения вычислений не нужно быть
экспертом
Распараллеливание требует минимального
изменения кода
GPU
Multi-core
CPU
GPU
Multi-core
CPU
27. 27
В чём заключается проблема?
Традиционные инструменты и подходы не
работают!
Читать и обрабатывать данные не просто
Алгоритмы выполняются на кластерах
Приходится изучать новые инструменты
Необходимо переписывать алгоритмы на более
низком уровне
!
28. 28
Анализ больших данных
ЧТЕНИЕ ДАННЫХ
которые не влезают в
память
МАСШТАБИРОВАНИЕ
на традиционные и Big Data
(Hadoop) кластеры
РАБОТА НА КОМПЬЮТЕРЕ
Разработка алгоритмов
для Big Data
2
1
3
30. 30
Доступ к Big Data
datastore
Простой доступ к данным
Поддерживается много форматов
− текстовые
− таблицы
− базы данных
− HDFS
− изображения, …
Последовательное чтение блоками
Распараллеливание
31. 31
Работа с Big Data
Distributed array
(R2006b)
Big Data по
нескольким
размерностям
Линейная алгебра,
фильтрация и т.д.
Tall array
(R2016b) «Высокие» массивы + статистика и машинное
обучение
32. 32
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
33. 33
Работа с Tall arrays
MATLAB
MDCS (Spark + Hadoop)
Develop applications once, change environment with mapreducer and datastore
mapreducer(0)
ds = datastore(<folder>)
tall(ds);
Multi-core CPU
mapreducer(parpool.cluster.Hadoop))
ds = datastore(<HDFS>)
tall(ds);
Parallel Computing Toolboxmapreducer(parpool(‘local’))
ds = datastore(<folder>)
tall(ds);
Datastore
HDFS
35. 35
«Низкоуровневое» программирование
SPMD
MPI-подобная параллельная обработка на традиционных
кластерах
MapReduce
Работает на компьютере и на кластерах (в т.ч. Hadoop)
MATLAB API for Spark
Использование Spark RDD API из MATLAB для создания
Spark приложений
37. 37
Сильные стороны MATLAB для Big Data
Легко начать
Быстрый доступ к распространённым типам файлов (БД
и Hadoop)
Эффективный анализ
Вся мощь MATLAB для анализа и визуализации
Бесшовная масштабируемость
Алгоритмы с компьютера легко переносятся на кластеры
Использование в бизнесе
Развёртывание по нажатию кнопки
38. 38
Почему MATLAB
MATLAB – самая простая и продуктивная среда
для экспертов в области анализа,
позволяющая получать эффективные результаты
из инженерных и бизнес данных
39. 39
• Поставка MATLAB & Simulink
• Обучение специалистов
• Настройка решений под ключ
• Консалтинг
exponenta.ru
info@exponenta.ru
+7 (495) 009 65 85
Центр инженерных технологий
и моделирования
42. 42
День вебинаров:
Методы анализа данных для
интернета вещей
18 мая
11:00 - Анализ данных в MATLAB для IoT
13:30 - Машинное обучение в MATLAB
16:00 - Параллельные вычисления и Big Data
подробнее