Архитектура системы обработки больших объемов изображений с автоматическим

реклама
Архитектура системы
обработки больших объемов
изображений с
автоматическим
распараллеливанием
Созыкин А.В. (avs@imm.uran.ru)
Гольдштейн М.Л.
Институт математики и механики УрО РАН
г.Екатеринбург
Международная суперкомпьютерная конференция
Научный сервис в сети Интернет: поиск новых решений
17 - 22 сентября 2012 года, Абрау-Дюрсо
Актуальность

При проведении научных
исследований часто создаются
изображения:



Астрономия, медицина,
физические эксперименты и др.
Объем изображений очень
большой (терабайты)
Обрабатывать изображения в
последовательном режиме
нерационально
18.09.12
2
Проблемы
Параллельные вычисления трудны для
освоения предметниками
 Работа с данными большого объема:

 Перемещать
данные для обработки
сложно
 Системы хранения отличаются высокой
стоимостью
18.09.12
3
Используемые подходы

Автоматизация распараллеливания
обработки больших объемов
изображений

Перемещение вычислений к данным
18.09.12
4
Выбор технологии
MPI
OpenMP
MapReduce
Автоматическое
распараллеливание
Нет
Есть
(Директивы
компилятора)
Есть
Распределенная файловая
система
Нет
Нет
Есть
Архитектура оборудования
SMP,
кластер,
MPP
SMP
SMP,
кластер
Нет
Нет
Есть
Любой
Любой
MapReduce
Механизмы восстановления в
случае отказов оборудования
Алгоритм
18.09.12
5
Основы MapReduce

Функции:
список  список
 Reduce: список  значение
 Map:
Обработка данных ведется независимо
 Одна фаза коммуникации
 Популярная реализация: Hadoop

18.09.12
6
Примеры использования

Определение положения снимка местности


Обработка пространственных данных


A. Cary. et al. Conference on Scientific and Statistical Database Management.
2009.
Обработка астрономических наблюдений


J. Hays, A. A. Efros. IEEE Conf. on Computer Vision and Pattern Recognition
(CVPR), 2008.
K. Wiley, et al. Astronomical Data Analysis Software and Systems, 2010.
Обработка данных дистанционного
зондирования

18.09.12
Mohamed H. Almeer. Journal of Emerging Trends in Computing and Information
Sciences 2012.
7
Проблемы

Hadoop не имеет встроенной поддержки
изображений. Необходимо писать код для:
 Загрузки
изображений
 Преобразования во внутренний формат Hadoop
 Запись обработанных изображений

Требуется разбираться во внутреннем
устройстве Hadoop и MapReduce
18.09.12
8
Предлагаемое решение

Изоляция от прикладного программиста
деталей внутреннего устройства Hadoop:
 Прикладной
программист пишет
последовательную программу, обрабатывающую
одной изображение
 Применение программы к большому числу
изображений в параллельном режиме
выполняется автоматически

Ограничение: изображения (группы
изображений) обрабатываются независимо
18.09.12
9
Логическая архитектура
18.09.12
10
Архитектура для пользователя
Image Java API – интерфейс для
запуска программ на Java
 Image C API – интерфейс для запуска
программ на С
 Image Processing Library – набор
готовых обработчиков изображений

18.09.12
11
Как использовать?


Реализовать ПОСЛЕДОВАТЕЛЬНУЮ
функцию обработки ОДНОГО изображения
Пример из Java API:
public abstract class JavaImageProcessor {
public abstract HIIntImage processImage(HIIntImage img);
}

HIIntImage – внутреннее представление
изображения, массив пикселей
18.09.12
12
Как запускать?

Пример из командной строки:
$hadoop jar hadoopimage.jar MyImageProcessor input output

Параметры:
hadoopimage.jar – запустить систему
обработки изображений
 MyImageProcessor – класс, в котором реализован
обработчик изображения
 input – каталог входных изображений
 output – каталог для обработанных изображений
 jar
18.09.12
13
Процесс обработки
Задача
JobTracker
Image Record Reader
Map
Обработчик
пользователя
Map
Обработчик
пользователя
Image Record Writer
Image Record Writer
HDFS
HDFS
Узел 1
18.09.12
Image Record Reader
Узел 2
14
Текущая реализация
Средства работы с изображениями в
Hadoop
 Java Image API
 Представление изображения:

 Формат
RGB
 Массив int или float
 Java BufferedImage
18.09.12
15
Тестирование

Кластер из 4-х серверов:
 Fujitsu-Siemens
RX330
 2 процессора AMD Opteron 285, 2 ядра, 2.8
ГГц
 8 ГБ памяти
 Жесткий диск 250 ГБ
Hadoop 1.03
 Scientific Linux 6.2

18.09.12
16
Particle Image Velocimetry

Источник данных: проект PIV Challenge
 http://www.pivchallenge.org/
18.09.12
17
Результаты тестирования


Объем изображений 500 ГБ, формат BMP
Количество экспериментов для каждого числа серверов – 10 шт.
18.09.12
18
Направления дальнейшего
развития
Реализация C API и готовых
обработчиков изображений
 Сравнение производительности с MPI

 Текущую
реализацию на Java сравнивать с
MPI не имеет смысла

Обеспечение поддержки GPU для
обработки изображений
18.09.12
19
Заключение

Представлена архитектура системы
обработки изображений:
 Автоматическое
распараллеливание
 Перемещение вычислений к данным


Текущая реализация и тестирование
подтвердили работоспособность и
масштабируемость
Работа поддержана грантом УрО РАН № 12П-1-1029
18.09.12
20
Спасибо за внимание!
18.09.12
21
Скачать