SlideShare a Scribd company logo
Hadoop - через тернии к GPU
Dr. Дмитрий Ширяев
dmitri@unitingdata.com
JavaOne 2013
Hadoop
Большой комплекс Java приложений для аналитики
Больших Данных
Hadoop состоит из двух главных компонент
 Hadoop Distributed File System - HDFS
 Map Reduce
HDFS
 Основана на Google’s GFS (Google File System)
 Обеспечивает избыточное хранилище для
больших массивов данных
 Данные распределены по разным узлам
 Предположения:
 Высокая вероятность выхода из строя компонент
системы
 Умеренное (несколько миллионов) количество огромных
файлов
 Файлы - write once
 Большие потоки входных данных
MapReduce
 Записи из источника данных поступают в функцию
Мap в виде пар ключ/значение. Например (filename,
line).
 На Map-шаге происходит предварительная обработка
входных данных. Для этого один из компьютеров
(называемый главным узлом - master node) получает
входные данные задачи, разделяет их на части и
передает другим компьютерам (рабочим узлам -
worker node) для предварительной обработки.
MapReduce
T h e c a t s a t o n t h e m a t
T h e a a r d v a r k s a t o n t h e s o f a
T h e , 1
c a t , 1
s a t , 1
o n , 1
th e , 1
m a t , 1
T h e , 1
a a r d v a r k , 1
s a t , 1
o n , 1
th e , 1
s o f a , 1
M a p p e r I n p u t
M a p p in g
a a r d v a r k , 1
c a t , 1
m a t, 1
o n , 2
s a t , 2
s o f a , 1
t h e , 4
a a r d v a r k , 1
c a t , 1
m a t, 1
o n , 2
s a t , 2
s o f a , 1
t h e , 4
a a r d v a r k , 1
c a t , 1
m a t , 1
o n [ 1 , 1 ]
s a t [ 1 , 1 ]
s o fa , 1
th e [ 1 , 1 , 1 , 1 ]
S h u f fl in g R e d u c in g
F in a l R e s u lt
• После фазы Map все промежуточные значения для
данного ключа собираются в список
• На Reduce-шаге происходит свёртка предварительно
обработанных данных. Главный узел получает ответы
от рабочих узлов и на их основе формирует результат
— решение задачи, которая изначально
формулировалась.
Hadoop и GPU
Среднего размера гибридный CPU-GPU кластер
 Стоимость оборудования в 10 раз меньше
 Расход энергопотребления в 20 раз меньше
 Скорость обработки повышается до 500 раз.
MapReduce на GPU кластере
 Межпроцессорные связи затруднены т.к. графические
процессоры не могут напрямую взаимодействовать с
сетевым вводом/выводом - трудно поддерживать
динамичное и эффективное взаимодействие между
различными GPU процессорами.
 Графические процессоры не имеют виртуальной
памяти.
 Прямолинейная реализации GPU MapReduce
неэффективно использует вычислительные ресурсы
графического процессора и возможную оптимизацию.
 Mодель MapReduce плохо отображается на
присущую GPU архитектуру системы .
 MapReduce на разных GPUs
MapReduce на GPU кластере
 Обеспечить каждый доступный GPU
достаточным количеством вычислени
 скрыть задержки доступа к памяти
 скрыть задержки доступа к сети.
 Расширение возможностей планировщика задач
YARN для полноценного включения GPU как сервиса
предоставляющего вычислительные ресурсы на
кластерном уровне.
Эффективное использование GPU
 Снижение числа межпроцессорных коммуникаций
 Совмещение стадий межпроцессорных
коммуникаций и вычислений
 Перемещение данных между процессорами
 Управление данными находящимися на разных
процессорах
 Поддержание полного доступа к GPU, а также
изменения основного алгоритма MapReduce для
более эффективного использования GPU.
Эффективное использование GPU
 Улучшение использования ресурсов GPU с помощью
объединения в блоки шагов Map и Reduce
 Добавление аккумуляции шагов Map
 Добавление шага Частичной Свертки
 Управление данными находящимися на разных
процессорах
 Создание конвейера MapReduce для достижения
большой степени перекрытия стадий
межпроцессорных коммуникаций и вычислений
Эффективное использование GPU
 Перемещение данных между процессорами
 Управление данными находящимися на разных
процессорах
 Поддержание полного доступа к GPU, а также
изменения основного алгоритма MapReduce для
более эффективного использования GPU.
Зеленый ЦОД
 Наше решение переводит неактивные сервера в
состояние ожидания для максимально эффективного
использования энергии
 Алгоритмы консолидации нагрузки позволяющие
временно отключать неактивные сервера.
Java & GPU (CUDA)
Для каждой функции разработчик должен сделать:
 Сериализовать состояние в память GPU
 Определить код ядра который будет выполняться
GPU
 Проконтролировать запуск ядра
 Десериализовать состояние обратно память CPU
Rootbeer компилятор (CUDA)
Поддерживает все возможности Java, dynamic method
invocation, reflection and native methods.
Поддерживает:
 single and multi-dimensional arrays of primitive and
reference types
 composite objects
 instance and static fields
 dynamic memory allocation
 inner classes
 synchronized methods and monitors
 strings
 exceptions that are thrown or caught on the GPU.
Проект Apache Bigtop
 Bigtop - построение канонического дистрибутива
Apache Hadoop
 Bigtop - сотрудничество компаний таких как Cloudera,
Hortonworks и EMC по подержки следующей волны
инноваций в Больших Данных
 Bigtop – место появления и стабилизации новейших
разработок дистрибутива Apache Hadoop
 Bigtop – делает для Apache то что Debian сделал для
Free Software Foundation
Платформа Uniting Data
 Энергоэффективная обработка Больших Данных на
гетерогенных многоядерных компьютерных кластерах
 Дистрибутив Hadoop основанный на
 Apache Bigtop (bigtop.apache.org)
 Следующем поколении планировщика Apache
Hadoop YARN
 Использует параллельные вычислительные
мощности GPU нового поколения средствами Java
 Зеленый ЦОД

More Related Content

PDF
Лекция 2. Основы Hadoop
PDF
Лекция 1. Введение в Big Data и MapReduce
PDF
Лекция 6. MapReduce в Hadoop (графы)
PDF
Hadoop presentation
PDF
Лекция 14. Hadoop в Поиске Mail.Ru
ODP
Apache Hadoop
PDF
HPC vs Big Data (Russian version)
PPTX
Лекция 2. Основы Hadoop
Лекция 1. Введение в Big Data и MapReduce
Лекция 6. MapReduce в Hadoop (графы)
Hadoop presentation
Лекция 14. Hadoop в Поиске Mail.Ru
Apache Hadoop
HPC vs Big Data (Russian version)

Viewers also liked (6)

PDF
Hadoop: Big Data Stacks validation w/ iTest How to tame the elephant?
PDF
Composite Applications with SOA, BPEL and Java EE
PDF
SOA Strategy and Architecture
PPTX
Reverse Engineering of an Oster Waffle Maker
PDF
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
PDF
Introduction and Advanced Concepts of BPEL
Hadoop: Big Data Stacks validation w/ iTest How to tame the elephant?
Composite Applications with SOA, BPEL and Java EE
SOA Strategy and Architecture
Reverse Engineering of an Oster Waffle Maker
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
Introduction and Advanced Concepts of BPEL
Ad

Similar to Uniting Data JavaOne2013 (20)

PDF
О.В.Сухорослов "MapReduce"
PDF
Работа с Big Data
ODP
Кластер БГУИР: расширенные возможности
PDF
Параллельные и распределенные вычисления
PPTX
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
PPTX
#PostgreSQLRussia в банке Тинькофф, доклад №1
PDF
Машины баз данных: концентрированное обозрение
PPTX
Что такое Postgresql (Максим Богук)
PPTX
Death And Resurrection Of Yandex Statistics Pavel Aleshin
PDF
Максим Богук. Postgres-XC
PDF
Hadoop > cascading -> cascalog (short version)
PPT
Пути увеличения эффективности реализации алгоритмов машинного обучения
PDF
Big data algorithms and data structures for large scale graphs
PDF
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
PDF
08 - Hadoop. Алгоритмы на графах в MapReduce
PPTX
DBD lection 4. Big Data, NoSQL. In Russian.
PPT
ADD2010: Обработка большого объема данных на платформеApache Hadoop
PPT
"Лавриненко Ярослав" HPC GPU CUDA
PDF
Архитектура и программирование потоковых многоядерных процессоров для научных...
О.В.Сухорослов "MapReduce"
Работа с Big Data
Кластер БГУИР: расширенные возможности
Параллельные и распределенные вычисления
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
#PostgreSQLRussia в банке Тинькофф, доклад №1
Машины баз данных: концентрированное обозрение
Что такое Postgresql (Максим Богук)
Death And Resurrection Of Yandex Statistics Pavel Aleshin
Максим Богук. Postgres-XC
Hadoop > cascading -> cascalog (short version)
Пути увеличения эффективности реализации алгоритмов машинного обучения
Big data algorithms and data structures for large scale graphs
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
08 - Hadoop. Алгоритмы на графах в MapReduce
DBD lection 4. Big Data, NoSQL. In Russian.
ADD2010: Обработка большого объема данных на платформеApache Hadoop
"Лавриненко Ярослав" HPC GPU CUDA
Архитектура и программирование потоковых многоядерных процессоров для научных...
Ad

Uniting Data JavaOne2013

  • 1. Hadoop - через тернии к GPU Dr. Дмитрий Ширяев dmitri@unitingdata.com JavaOne 2013
  • 2. Hadoop Большой комплекс Java приложений для аналитики Больших Данных Hadoop состоит из двух главных компонент  Hadoop Distributed File System - HDFS  Map Reduce
  • 3. HDFS  Основана на Google’s GFS (Google File System)  Обеспечивает избыточное хранилище для больших массивов данных  Данные распределены по разным узлам  Предположения:  Высокая вероятность выхода из строя компонент системы  Умеренное (несколько миллионов) количество огромных файлов  Файлы - write once  Большие потоки входных данных
  • 4. MapReduce  Записи из источника данных поступают в функцию Мap в виде пар ключ/значение. Например (filename, line).  На Map-шаге происходит предварительная обработка входных данных. Для этого один из компьютеров (называемый главным узлом - master node) получает входные данные задачи, разделяет их на части и передает другим компьютерам (рабочим узлам - worker node) для предварительной обработки.
  • 5. MapReduce T h e c a t s a t o n t h e m a t T h e a a r d v a r k s a t o n t h e s o f a T h e , 1 c a t , 1 s a t , 1 o n , 1 th e , 1 m a t , 1 T h e , 1 a a r d v a r k , 1 s a t , 1 o n , 1 th e , 1 s o f a , 1 M a p p e r I n p u t M a p p in g a a r d v a r k , 1 c a t , 1 m a t, 1 o n , 2 s a t , 2 s o f a , 1 t h e , 4 a a r d v a r k , 1 c a t , 1 m a t, 1 o n , 2 s a t , 2 s o f a , 1 t h e , 4 a a r d v a r k , 1 c a t , 1 m a t , 1 o n [ 1 , 1 ] s a t [ 1 , 1 ] s o fa , 1 th e [ 1 , 1 , 1 , 1 ] S h u f fl in g R e d u c in g F in a l R e s u lt • После фазы Map все промежуточные значения для данного ключа собираются в список • На Reduce-шаге происходит свёртка предварительно обработанных данных. Главный узел получает ответы от рабочих узлов и на их основе формирует результат — решение задачи, которая изначально формулировалась.
  • 6. Hadoop и GPU Среднего размера гибридный CPU-GPU кластер  Стоимость оборудования в 10 раз меньше  Расход энергопотребления в 20 раз меньше  Скорость обработки повышается до 500 раз.
  • 7. MapReduce на GPU кластере  Межпроцессорные связи затруднены т.к. графические процессоры не могут напрямую взаимодействовать с сетевым вводом/выводом - трудно поддерживать динамичное и эффективное взаимодействие между различными GPU процессорами.  Графические процессоры не имеют виртуальной памяти.  Прямолинейная реализации GPU MapReduce неэффективно использует вычислительные ресурсы графического процессора и возможную оптимизацию.  Mодель MapReduce плохо отображается на присущую GPU архитектуру системы .  MapReduce на разных GPUs
  • 8. MapReduce на GPU кластере  Обеспечить каждый доступный GPU достаточным количеством вычислени  скрыть задержки доступа к памяти  скрыть задержки доступа к сети.  Расширение возможностей планировщика задач YARN для полноценного включения GPU как сервиса предоставляющего вычислительные ресурсы на кластерном уровне.
  • 9. Эффективное использование GPU  Снижение числа межпроцессорных коммуникаций  Совмещение стадий межпроцессорных коммуникаций и вычислений  Перемещение данных между процессорами  Управление данными находящимися на разных процессорах  Поддержание полного доступа к GPU, а также изменения основного алгоритма MapReduce для более эффективного использования GPU.
  • 10. Эффективное использование GPU  Улучшение использования ресурсов GPU с помощью объединения в блоки шагов Map и Reduce  Добавление аккумуляции шагов Map  Добавление шага Частичной Свертки  Управление данными находящимися на разных процессорах  Создание конвейера MapReduce для достижения большой степени перекрытия стадий межпроцессорных коммуникаций и вычислений
  • 11. Эффективное использование GPU  Перемещение данных между процессорами  Управление данными находящимися на разных процессорах  Поддержание полного доступа к GPU, а также изменения основного алгоритма MapReduce для более эффективного использования GPU.
  • 12. Зеленый ЦОД  Наше решение переводит неактивные сервера в состояние ожидания для максимально эффективного использования энергии  Алгоритмы консолидации нагрузки позволяющие временно отключать неактивные сервера.
  • 13. Java & GPU (CUDA) Для каждой функции разработчик должен сделать:  Сериализовать состояние в память GPU  Определить код ядра который будет выполняться GPU  Проконтролировать запуск ядра  Десериализовать состояние обратно память CPU
  • 14. Rootbeer компилятор (CUDA) Поддерживает все возможности Java, dynamic method invocation, reflection and native methods. Поддерживает:  single and multi-dimensional arrays of primitive and reference types  composite objects  instance and static fields  dynamic memory allocation  inner classes  synchronized methods and monitors  strings  exceptions that are thrown or caught on the GPU.
  • 15. Проект Apache Bigtop  Bigtop - построение канонического дистрибутива Apache Hadoop  Bigtop - сотрудничество компаний таких как Cloudera, Hortonworks и EMC по подержки следующей волны инноваций в Больших Данных  Bigtop – место появления и стабилизации новейших разработок дистрибутива Apache Hadoop  Bigtop – делает для Apache то что Debian сделал для Free Software Foundation
  • 16. Платформа Uniting Data  Энергоэффективная обработка Больших Данных на гетерогенных многоядерных компьютерных кластерах  Дистрибутив Hadoop основанный на  Apache Bigtop (bigtop.apache.org)  Следующем поколении планировщика Apache Hadoop YARN  Использует параллельные вычислительные мощности GPU нового поколения средствами Java  Зеленый ЦОД