Научная статья на тему 'Обработка и визуализация пространственных данных на гибридном вычислительном кластере'

Обработка и визуализация пространственных данных на гибридном вычислительном кластере Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
468
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
УДАЛЕННАЯ ВИЗУАЛИЗАЦИЯ / МНОГОУРОВНЕВЫЙ ПАРАЛЛЕЛИЗМ / CUDA / MPI / OPENGL / VIRTUALGL / UNIX / X11 / VISUALIZATION / MULTI-LEVEL PARALLELISM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бобков В. А., Черкашин А. С.

В работе анализируются особенности программирования графических приложений с обработкой и визуализацией больших объемов данных на высокопроизводительных гибридных вычислительных кластерных системах. Рассмотрена гибридная архитектура вычислительного кластера, с помощью которой возможна реализация параллелизма с применением технологий CUDA и MPI на трех уровнях: узлы кластера, многоядерность и графические процессоры видеоплаты. Предложен подход к организации гибридного параллелизма и получена оценка его эффективности на примере реализации на гибридном кластере программного комплекса визуализации синоптических данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бобков В. А., Черкашин А. С.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Spatial data processing and visualization using hybrid computing cluster

The paper presents the analysis of features of programming graphical applications for processing and visualization of large amounts of data with high-performance hybrid computing cluster systems. Considered hybrid architecture of computing cluster, allow to implement of parallelism using CUDA and MPI at three levels: the cluster nodes, multicore and GPU video cards. The approach is proposed to organization of hybrid parallelism estimated its effectiveness by implementing of software complex of visualization synoptic data using hybrid cluster.

Текст научной работы на тему «Обработка и визуализация пространственных данных на гибридном вычислительном кластере»

№ 4 (52) 2014

journal of appued informatics

В. А. Бобков, докт. техн. наук, зав. лабораторией Института автоматики и процессов управления ДВО РАН,

г. Владивосток, [email protected] А. С. Черкашин, аспирант Института автоматики и процессов управления ДВО РАН,

г. Владивосток, [email protected]

обработка и визуализация пространственных данных на гибридном вычислительном кластере1

В работе анализируются особенности программирования графических приложений с обработкой и визуализацией больших объемов данных на высокопроизводительных гибридных вычислительных кластерных системах . Рассмотрена гибридная архитектура вычислительного кластера, с помощью которой возможна реализация параллелизма с применением технологий CUDA и MPI на трех уровнях: узлы кластера, многоядерность и графические процессоры видеоплаты . Предложен подход к организации гибридного параллелизма и получена оценка его эффективности на примере реализации на гибридном кластере программного комплекса визуализации синоптических данных .

Ключевые слова: удаленная визуализация, многоуровневый параллелизм, CUDA, MPI, OpenGL, VirtualGL, UNIX, X11 .

введение

Для приложений, связанных с обработкой больших объемов данных, трудоемкими вычислениями и необходимостью работы в интерактивном и реальном режимах времени, необходимо применение аппаратного ускорения вычислений. В частности, для графических приложений с обработкой и визуализацией больших объемов пространственных данных требуется высокий уровень аппаратной производительности для работы в интерактивном режиме. Перспективными являются исследования по разработке технологий массового параллелизма. В последнее время актуально использование гибридных вычислительных архитектур, благодаря которым возможна организация многоуровневого параллелиз-

1 Работа выполнена при финансовой поддержке Программ Президиума РАН (проекты 12-1-П15-04 и 12-1-П18-03).

ма. Наиболее распространенными архитектурами гибридного параллелизма являются сочетания следующих подходов [1-3]:

• MPI-параллелизм между узлами кластера;

• MPI-параллелизм между ядрами одного центрального процессора (CPU);

• GPU-параллелизм между ядрами одного графического процессора.

Первые два подхода реализуют «крупнозернистый» параллелизм, при котором число параллельных потоков невелико, но каждый поток обладает высокой производительностью. GPU-параллелизм является «мелкозернистым», что означает возможность создания множества параллельных потоков, каждый из которых обладает малой вычислительной производительностью. Комбинирование разных подходов позволяет более гибко адаптировать вычислительные ресурсы кластера под нужды конкретной задачи. Использование GPU-параллелизма для обработки пространственных данных особен-

№ 4 (52) 2014

но выгодно в случае, когда результаты вычислений каждого потока не зависят друг от друга. Когда необходимо выполнять обмен данными между потоками, а также совершать длительные итеративные операции, выгоднее применять MPI. Распределение расчетов между уровнями параллелизма позволяет достичь высокого уровня производительности, что подтверждается опытом существующих программных систем гибридного параллелизма [4-6].

В настоящее время разработка программных систем, использующих в качестве вычислительной платформы гибридный параллелизм, ведется по многим прикладным направлениям. В качестве примера можно привести библиотеку для матричных вычислений CUPLSS, в которой используется два уровня параллелизма: CUDA и MPI [4]. Другой пример — система GpuJsparse, применяемая для решения разреженных систем линейных алгебраических уравнений. Гетерогенный параллелизм также активно применяется при решении задач моделирования физических процессов. Например, система моделирования гидродинамики сглаженных частиц (SPH) реализована на гетерогенных CPU-GPU кластерах с использованием технологий OpenMP-MPI-CUDA [6]. Приведенные примеры свидетельствуют о возможности эффективного использования гибридного параллелизма в различных приложениях.

Однако при разработке высокопроизводительных систем с использованием гибридного параллелизма сохраняются трудности, для преодоления которых требуются дальнейшие исследования. Основной проблемой является высокая степень зависимости алгоритмов программной реализации от аппаратной архитектуры кластера. Реализация, выполненная для одного вычислительного кластера, в большинстве случаев не будет эффективна в той же степени на вычислительных кластерах с другой архитектурой. Более того, некоторые прикладные задачи не могут быть эффективно решены на определенных архитектурах гибридных класте-

ров, так как существует взаимозависимость между программной реализацией и аппаратной архитектурой на гибридном кластере. Поэтому на сегодняшний день не существует универсальной методологии, описывающей подходы оптимального использования гетерогенных кластеров для решения прикладных задач различных типов.

В статье предлагается подход к реализации гибридного параллелизма в приложениях с обработкой и визуализацией больших объемов пространственных данных. Его эффективность демонстрируется на примере «параллельной» реализации системы визуализации синоптических данных [7-9] на вычислительном кластере SMH11, эксплуатируемом в ИАПУ ДВО РАН.

Гибридный вычислительный кластер

Реализация алгоритмов обработки данных на гетерогенных вычислительных комплексах тесно связана с их архитектурой. Поскольку на сегодняшний день не существует единой универсальной методологии организации параллельных вычислений на гибридных архитектурах, можно говорить о поиске оптимальных решений применительно к определенным классам задач и определенным типам архитектур. В данной работе, как было сказано, анализируется подход к реализации параллелизма в приложениях с обработкой и визуализацией больших объемов данных применительно к гибридным вычислительным кластерам на примере вычислительного кластера SMH11, эксплуатируемого ИАПУ ДВО РАН. Рассмотрим подробнее его архитектуру и аппаратные возможности организации параллельных вычислений (рис. 1).

Кластер представляет собой вычислительную систему из множества разнотипных узлов, различающихся аппаратными ресурсами. Существует три типа узлов.

1. Простые узлы (17 штук) для MPI вычислений (Standard):

• процессор: 4 х CPU AMD 12-Core Opteron 6164HE;

• частота процессора: 1,7 ГГц;

№ 4 (52) 2014

• кэш L1: 12 x 64 КБ для команд + 12 x 64 КБ для данных;

• кэш L2: 12 x 512 КБ;

• кэш L3: 2 x 6 МБ;

• FSB: 3200 МГц (Hyper Transport links);

• память: 64 Гб оперативной памяти DDR3-1333 МГц ECC Reg;

• диск: SSD SATA 2.5» 96 Гб MLC Chip;

• управляющая сеть: Ethernet 1 Гб;

• MPI сеть: Infiniband 4 x QDR (40 Гб/s) + Ethernet 1 Гб.

2. Узлы с увеличенной оперативной памятью (Extended, 10 штук):

• процессор: 4 x CPU AMD 12-Core Opteron 6164HE;

• частота процессора: 1,7 ГГц;

• кэш L1: 12 x 64 КБ для команд + 12 x x 64 КБ для данных;

• кэш L2: 12 x 512 КБ;

• кэш L3: 2 x 6 МБ;

• FSB: 3200 МГц (Hyper Transport links);

• память: 128 Гб оперативной памяти DDR3-1333 МГц ECC Reg;

• диск: 4 x SSD SATA 2.5» 96 Гб MLC Chip.

3. Гибридные узлы (gpgpu, 8штук):

• процессор: 2 x CPU Xeon L5506 4.8 GTsec;

• частота процессора: 2.13 ГГц;

• кэш L1: 64 КБ;

• кэш L2: 1024 КБ;

• кэш L3: 4 МБ;

• FSB: 4.8 GT/s QPI (2400 МГц);

• графический чип: 2 x NVIDIA Tesla M2050 GPU вычислительных процессоров — 3 ГБ;

• память: 32 Гб оперативной памяти DDR3-1333 МГц ECC Reg;

• диск: SATA DOM 32 Гб;

• управляющая сеть: Ethernet 1 Гб, MPI-сеть: Infiniband 4 x QDR (40 Гб/с) + Ethernet 1 Гб.

Доступ к ресурсам GPU может быть получен только в рамках того узла, к которому эти видеокарты подключены, поэтому на каждом T-узле мы имеем доступ к двум GPU. Узлы типа S и X позволяют распараллеливать расчеты только между узлами и ядрами CPU.

Т(дрдри)-узлы

<ч <ч <ч

ZD

CL CL CL CL CL CL

О О О О О О

T1

TS

S(standard)-узлы

S1 (Главный узел)

S14

X(exted

X1

5d)-узлы

X..

X14

Рис. 1. Схема кластера SMH11 ИАПУ ДВО РАН

Также имеется файловое хранилище, доступ к которому осуществляется с любого узла.

Запуск многопоточных программ на кластере производится с главного узла S1 при помощи SLURM-планировщика. В качестве основных параметров для него указывается путь до программы, необходимые ресурсы и тип узлов: standard, extended, gpgpu.

На кластере установлены две MPI-реали-зации: OpenMPI и mpich2. Однако для возможности использования нескольких узлов применяется SLURM, который настроен для работы с mpich2.

Для использования GPU (NVIDIA Tesla M2050) параллелизма на T-узлах установлены специальные драйверы, а также CUDA-инструментарий, позволяющие выполнять параллельные вычисления с помощью технологии CUDA.

визуализация 3D данных

Особенности визуализации на удаленном кластере напрямую связаны со специ-

72

T

S

№ 4 (52) 2014

фикой аппаратного и программного обеспечения кластера. На рассмотренном выше кластере используется UNIX операционная система Gentoo2. На UNIX системах рендеринг осуществляется с помощью библиотек OpenGL. Это позволяет переносить алгоритмическую базу визуализации прикладных программ, базирующихся на OpenGL.

Выполнение графических приложений на UNIX системах осуществляется при помощи технологии X Window System, обеспечивающей базовые функции графической среды визуализации и взаимодействие с устройствами ввода (такими как, например, мышь и клавиатура). Данная система работает по принципу клиент-сервер на основе X-протокола, где X-сервером выступает специальный сервис (такой как, например, Xorg), а клиентом — графическое приложение, которое может выполняться на другой машине в сети.

X Window System является клиент-серверной технологией, где графические приложения могут выполняться на другой машине в сети, а их графический интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя (в случае, если это разрешено в настройках). Термины «клиент» и «сервер» в контексте X Window System имеют значения:

• «Сервер» — локальный дисплей (дисплейный X-сервер). Локальный дисплей предоставляет услуги отображения графики программам и потому выступает в роли сервера. Удаленные программы используют эти услуги и потому играют роль клиентов. X-сервер — это программный сервис (существует несколько реализаций, например Xorg);

• «Клиент» — приложение (программа), которое использует дисплейный сервер (может выполняться на удаленной машине).

2 Материалы электронной справочной документации OpenGL, URL: http://www.opengl.org/resources/ libraries/.

GLX-расширение X Window System обеспечивает интерфейс соединения с OpenGL и состоит из трех частей:

1) программный интерфейс, с помощью которого можно использовать OpenGL функции в приложении X Window System;

2) расширение, с помощью которого можно посылать команды 3D визуализации X-серверу;

3) расширение, с помощью которого можно получать команды визуализации и передавать их в OpenGL библиотеку.

Как уже упоминалось, графическое приложение может быть отображено на удаленной машине пользователя в сети при помощи X Window System. Однако в этом случае все графические расчеты будут выполняться на машине пользователя. Также пользователю будут постоянно пересылаться пространственные данные для визуализации, которые могут иметь большой размер, что нежелательно. Поэтому использования только технологии X Window System для удаленной визуализации на кластере недостаточно. В рамках данной работы мы будем опираться на технологию VirtualGL3, с помощью которой обеспечивается удаленный аппаратный рендеринг, а также транспортировка результатов визуализации конечному пользователю в виде сжатого изображения. Суть предлагаемого подхода заключается в том, чтобы перенести все вычисления, связанные с данными, а также процесс их визуализации на удаленный вычислительный кластер. Такой подход позволяет:

1) исключить затраты на передачу пространственных данных между кластером и машиной пользователя по сети, так как нет необходимости пересылать данные для рендеринга. В этом случае машина пользователя получает только результат визуализации в виде сжатого изображения;

3 Материалы электронной справочной документации VirtualGL, URL: http://svn.code.sf.net/p/virtualgl/code/ vgl/tags/2.3.3/doc/index. html.

№ 4 (52) 2014

journal of appued informatics

2) использовать мощные вычислительные ресурсы гибридного кластера как для обработки данных, так и для рендеринга.

Ниже излагается детализация подхода с акцентом на вопросах визуализации больших объемов данных.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Прямой и косвенный рендеринг

Реализация удаленной визуализации средствами OpenGL в среде UNIX имеет свои особенности, которые необходимо учитывать. Удаленная пространственная визуализация с аппаратным ускорением, как правило, требует применения косвенного рендеринга. Косвенный рендеринг использует GLX-расширение X Window System (X11 или Х), чтобы включить команды OpenGL внутри протоколов и архитектуры X Window System и передать их от приложения к X-дисплею. Как правило, приложение выполняется на удаленном сервере приложений, а X-дисплей запускается на локальной машине пользователя. В этом случае все команды OpenGL и сама визуализация осуществляются пользователем на его локальной машине. Это означает, что видеокарта и ее драйвера на машине пользователя должны поддерживать необходимые расширения. Такой подход ограничивает тип машин, которые могут дистанционно визуализировать 3D-приложения. Косвенный рендеринг годится для использования, если выполняется ряд условий: сеть достаточно быстрая (например, Gigabit Ethernet); приложению не надо изменять геометрию объекта динамически; приложение использует списки отображения; приложение не использует много текстур. Однако во многих случаях задача обработки пространственных данных не соответствует этим условиям. Например, при обработке синоптических данных объем данных зачастую слишком велик, что неизбежно влечет высокие накладные расходы при передаче данных.

Выполнение OpenGL визуализации на сервере приложений позволяет решить проблемы, обусловленные косвенным рен-

дерингом, так как приложениям предоставляется быстрый и прямой доступ к аппаратной пространственной визуализации. Когда визуализация происходит на сервере приложений, только двухмерные изображения отправляются локальному X-серверу пользователя. Изображения могут быть доставлены с необходимой частотой кадров, независимо от того, насколько большой объем 3D-данных был использован для их генерации. Также все проблемы пространственной визуализации и производительного 3D-вы-вода преобразуются в проблемы двухмерного отображения, так как задача визуализации теперь сводится к доставке результата визуализации пользователю в виде двухмерного изображения. Тем не менее проблема передачи данных возникает, как только появляется поток графических данных с большим разрешением или высокой частотой кадров. Но в этом случае она менее выражена и зависит в большей степени от инфраструктуры и пропускной способности сети, а не от объемов визуализируемых данных, как в случае с косвенным рендерингом.

Передача результатов визуализации пользователю

Одним из существующих решений для выполнения прямого рендеринга на удаленном UNIX-сервере является сервис VirtualGL, который использует GLX-распределение, чтобы вынести OpenGL-рендеринг на сервер приложений. Приложения OpenGL для Unix (Linux), как правило, отправляют на X-дисплей два типа команд:

• GLX X11 — команды OpenGL внутри протоколов и архитектуры X Window System;

• стандартные X11 команды, необходимые для обеспечения работы оконного интерфейса X Window System.

Команды GLX используются для связывания контекста рендеринга OpenGL с контекстом для конкретного X Window, для получения списка цветовых форматов,

№ 4 (52) 2014

которые поддерживает X-дисплей, и т. д. VirtualGL использует преимущества Unix и Linux платформ, с помощью которых можно предварительно загрузить библиотеку в приложение. Библиотека выступает посредником и позволяет перехватывать вызовы определенных функций. После того как VirtualGL подключается к Unix OpenGL приложению, он перехватывает вызовы функции GLX от приложений и переформатирует их таким образом, что соответствующие GLX команды перенаправляются X-дисплеем на сервер приложений с аппаратным 3D-ускорителем. Таким образом, VirtualGL предотвращает отправку GLX-ко-манд по сети к пользователю X-дисплея. В процессе переформатирования GLX-запроса VirtualGL также перенаправляет OpenGL рендеринг во внеэкранные буфера пикселов (P-буфер). Между тем остальные функции, вызываемые из приложений, в том числе обычные X11 команды, использующиеся для разработки пользовательского интерфейса приложений, проходят через VirtualGL без изменений.

VirtualGL также поддерживает карты окна для P-буферов, связку визуальных атрибутов между назначенным X-дисплеем и X-дисплеем, на котором будет происходить 3D-рендеринг, а также выполняет ряд других функций хеширования, чтобы обеспечить корректное перенаправление GLX. После того как OpenGL контекст устанавливается в X-дисплей сервера приложений, VirtualGL будет обеспечивать беспрепятственный проход всех последующих команд OpenGL с сервера приложений в графическое оборудование. Таким образом, приложение может автоматически использовать любые функции OpenGL и расширений, которые поддерживаются оборудованием сервера и драйверами.

Помимо перенаправления GLX-команд и управления P-буферами, VirtualGL также считывает отображенные пикселы в подходящий момент (как правило, путем мониторинга glXSwapBuffers или glFinish), а затем выполняет отображение этих пикселей

в X-окно. Так как VirtualGL выполняет перенаправление GLX-команд от 2D Х-серве-ра, он может быть использован для предотвращения косвенного OpenGL рендеринга при использовании удаленного X-дисплея (рис. 2).

особенности запуска системы на MPI

Наиболее серьезной проблемой в использовании технологий визуализации и передачи данных на основе технологии X11 является необходимость перенаправления потока данных. Как правило, на кластерных вычислительных системах присутствует главный узел, из которого производится запуск MPI-программ. Для того чтобы отправить результат визуализации пользователю, главный узел должен выполнять роль X11 прокси-сервера. Однако это не всегда представляется возможным ввиду аппаратных/программных особенностей. Подобная проблема возникла в процессе реализации приложения, о котором говорится в разделе 4. Кластер SMH11, на котором проводилось тестирование, имеет главный узел s1, с которого происходит запуск или постановка в очередь MPI задач посредством SLURM планировщика. Таким образом, если мы будем использовать несколько узлов, то для одного из них должна быть настроена переадресация команд X11 на главный узел s1. Тогда узел s1 должен выступать в качестве прокси-сервера для команд X11. Однако настоящая версия SULRM не поддерживает переадресацию команд X11, поэтому текущая конфигурация кластера SMH11 не позволяет пользователю получить результаты визуализации MPI-программ через SLURM, который является единственной системой для использования мультиузлового параллелизма на SMH11. Поэтому в рамках рассматриваемой реализации мы ограничились вариантом гибридного параллелизма, где на первом уровне реализован параллелизм в рамках восьмиядерного CPU T-узла, а на втором уровне применяется GPU-па-раллелизм (Tesla M2050).

№ 4 (52) 2014

Машина пользователя

2D X сервер

Ж

События X11 (например, сигналы клавиатуры и мыши)

Поток - несжатых -изображений

Клиент УИыаЮ!.

Стандартные X11 команды

Уда

ленный UNIX сервер

Приложение

- Xlib

VGL Транспорт (возможно сжатие изображений)

libGL

VirtualGL

Изображения

(результат визуализации)

OpenGL команды

1

Графический драйвер

О

GLX команды

Т

3D X сервер

Рис. 2. Организация передачи потока изображений с помощью VirtualGL

Практическая реализация

Предлагаемый подход был применен при адаптации программного комплекса визуализации синоптических данных [7-9] к рассмотренному выше гибридному вычислительному кластеру. Начальная версия комплекса функционировала на локальной машине пользователя и поддерживала одновременную обработку разнотипных наборов данных разными алгоритмами и их одновременную визуализацию несколькими методами. Все эти возможности обеспечиваются модульной архитектурой, с помощью которой можно добавлять в систему по мере необходимости новые методы получения/обработки/визуализации синоптических данных. Система функционирует на клиентской машине пользователя и соответственно имеет ограничения по аппаратным ресурсам.

Реализация для гибридного кластера сохраняет основной архитектурный принцип исходной версии — модульность, основанную на трех видах плагинов в виде динамически подключаемых библиотек. Локальная версия системы позволяла создавать модули, способные выполнять расчеты на удаленном кластере. Однако опыт эксплуатации показал, что затраты на постоянную передачу синоптических данных между клиентской машиной и кластером чрезмерно велики и сводят на нет любую выгоду от использования кластерного параллелизма. Поэтому решать проблему повышения производительности полноценно можно только полным переносом/адаптацией системы для работы на вычислительном кластере. Следует отметить, что в исходной версии системы использовался GPU-параллелизм для повышения производительности в модулях обработки данных. В настоящей версии сис-

№ 4 (52) 2014

темы реализован гибридный параллелизм, основанный на двух уровнях: GPU (CUDA) и CPU (MPI).

Реализация программного комплекса визуализации синоптических данных на гибридном кластере представляет собой модульное приложение, которое может быть выполнено как в одном потоке, так и с использованием гибридного параллелизма (OpenMPI+CUDA). Основная часть приложения построена на системе унифицированных C++ макросов, с помощью которых можно запускать систему с любым количеством потоков и узлов. Для инициализации используется макрос MPI_TOOLSJNIT, после которого весь код будет выполняться только для одного последнего потока. Часть программы, в которой необходимо задействовать MPI-параллелизм, заключается в скобки MPI_SINGLE_THREAD_END и MPI_SINGLE_ THREAD_BEGIN. Такой подход в рамках этой системы удобен тем, что большая часть исходного кода основной программы (в том числе создание графического контекста OpenGL, а также визуализация) и большинства модулей выполняются в одном потоке. Выполнение программы заканчивается макросом MPI_TOOLS_FINALIZE.

Необходимость в эффективном параллелизме в системе визуализации синоптических данных возникает на этапе предварительной обработки, где основная вычислительная трудоемкость связана с массовым применением оператора Собеля. Исходные данные представлены в виде трехмерной скалярной решетки. Для каждого элемента сетки выполняется свертка с ядром Собе-ля выбранного размера. Поскольку операция свертки состоит из множества простых арифметических операций, она может быть эффективно выполнена с помощью мелкозернистого параллелизма GPU. В свою очередь, сетка может быть разделена по вертикальным уровням (по оси Z), что позволяет увеличить производительность за счет независимого расчета каждого уровня в параллельном потоке MPI. Такой подход — классическая задача для MPI-операторов

Scatter и Gather, отвечающих за распределение данных между потоками.

Изначально трехмерные синоптические данные считываются из хранилища главным потоком, затем внутри модуля обработки данных вызывается стандартная операция MPI один-каждому (Scatter) для распределения участков данных между потоками. Затем каждый поток, получив свой массив данных, обрабатывает его на GPU соответствующим алгоритмом. На заключительном этапе данные собираются процедурой каждый-одному (Gather) и передаются для визуализации выбранным методом. Отметим, что в конечной реализации вместо обычных Scatter/ Gather использовались векторные аналоги ScatterV, GatherV, позволяющие задавать размер и расположение данных для каждого потока.

Запуск приложения на гибридном кластере SMH11 с последующим отображением результатов визуализации на локальной машине пользователя осуществляется в несколько этапов (рис. 3).

1. На машине пользователя запускается 2DX-сервер.

2. На машине пользователя запускается SSH (технология для получения удаленного доступа к UNIX системам) клиент с возможностью передачи X11 команд на запущенный сервер.

3. Пользователь заходит на главный узел вычислительного кластера SMH11 через SSH клиент.

4. Пользователь переходит на свободный T-узел, одновременно организуя перенаправление X11 через S1-узел с помощью команды vglconnect (одно из приложений пакета VirtualGL).

5. На T-узле пользователь запускает 3DX-сервер Xorg, который необходим для аппаратной визуализации OpenGL.

6. Пользователь запускает программный комплекс комбинацией команды vglrun (приложение из пакета VirtualGL, которое организует передачу результатов визуализации) и команды mpirun (OpenMPI реализация MPI). Например: vglrun mpirun./app.

№ 4 (52) 2014

Машина пользователя

2D X Сервер

Рис. 3. Схема передачи видеоданных на SMH11

Тестирование системы проводилось с использованием реальных синоптических данных скалярного поля распределения температуры внутри тропического циклона «Мелор» за 10.03.2009 (рис. 4), а также данных WRF модели Приморгидромета скалярного поля распределения температуры за 25.04.2012 (рис. 5). Построение изо-поверхностей на приведенных иллюстраци-

ях осуществлялось методом марширующих кубиков.

Отметим, что для данной реализации узким местом является пропускная способность сетевой инфраструктуры между клиентской машиной и кластером. Так как клиентская программная часть получает только растровое изображение, ключевыми параметрами для теста являются «Разрешение

Рис. 4. Визуализация изоповерхности, Рис. 5. Визуализация изоповерхности

построенной по данным WRF модели распределения температуры внутри

Приморгидромета тропического циклона «Мелор»

№ 4 (52) 2014

экрана» и «Количество кадров в секунду». Тестирование проводилось с целью получения скорости визуализации синоптических данных (построение изоповерхностей методом марширующих кубиков) при различных условиях предобработки (кадров/с). В процессе тестирования оценивалась зависимость скорости визуализации от трудоемкости предварительной обработки пространственных данных и от используемого разрешения отображаемых изображений. Результаты тестирования приведены в табл. 1.

Как видно из таблицы, повышение объема вычислений за счет увеличения размера ядра Собеля не оказывает существенного влияния на скорость визуализации благодаря реализованной схеме параллелизма. В то же время увеличение разрешения экрана приводит к понижению скорости вывода, поскольку пропускная способность канала передачи данных ограничена величиной 100 Мбит/с. Таким образом, результаты тестирования показали, что эффективное использование ресурсов гибридного кластера позволяет выполнять трудоемкую предварительную обработку данных без существенной потери скорости визуализации.

Заключение

В работе представлен подход к оперативной обработке и визуализации больших объемов пространственных данных с использованием гибридного кластерного па-

раллелизма. Предлагаемая в рамках данного подхода технология и система визуализации обеспечивает удаленную обработку данных и удаленную аппаратную визуализацию с использованием вычислительных ресурсов гибридного кластера (CUDA + MPI), а также транспортировку результатов визуализации в машину пользователя в реальном режиме времени. Эффективность подхода подтверждается результатами, полученными при реализации и тестировании программного комплекса визуализации синоптических данных на конкретном гибридном вычислительном кластере, оснащенном несколькими типами вычислительных узлов и графическими платами. Дальнейшие исследования в этом направлении связаны с развитием и реализацией предложенного подхода на гибридном кластере применительно к трудоемким по вычислениям графическим приложениям с более сложной алгоритмической обработкой разноплановых структур данных.

Список литературы

1. Pawliczek Piotr, Dzwinel Witold, Yuen David A. Visualization of large multidimensional data sets by using multi-core CPU, GPU and MPI cluster // University of Texas, Department of Biochemistry and Molecular Biology, Houston, TX 77030, USA, University of Texas, 2012. — 25 p.

2. Fan Lei. Investigation of Parallel Computation — MPI, CUDA and Parallel Visualization // Department of Computer Science, University of Wisconsin-La Crosse, La Crosse, 2011. Магистерская диссертация. — 88 p.

Таблица 1

Предобработка Разрешение экрана

480 х 640 800 х600 1024 х720

X 4,53 3,84 3,12

Оператор Собеля, размер ядра = 3 4,27 3,80 3,09

Оператор Собеля, размер ядра = 5 4,28 3,62 3,10

Оператор Собеля, размер ядра = 7 4,15 3,77 3,15

Скорость визуализации синоптических данных

№ 4 (52) 2014

3. Клименко В. П., Ледянкин Ю. Я. Вычислительные системы. Тенденции развития архитектуры гетерогенных структур // ММС. 2013. № 2. С. 19-31.

4. Oancea Bogdan, TudorelAndrei. Developing a High Performance Software Library with MPI and CUDA for Matrix Computations // Computational Methods in Social Sciences (CMSS), «Nicolae Titulescu» University of Bucharest, Faculty of Economic Sciences. 2013. V ol. 1 (2). Р. 5-10.

5. Domínguez J. M., Crespo A. J. C., Valdez-Bal-deras D., Rogers B. D, Gómez-Gesteira M. New multi-GPU implementation for Smoothed Particle Hydrodynamics on heterogeneous clusters // Computer Physics Communications, 184: 1848-1860. Doi: 10.1016/j. cpc. 2013.03.008.

6. Lam Siu Kwan. Scaling CUDA for Distributed Heterogeneous Processors // San Jose State University, Master's Theses. Paper 4143, Washington Sq, San Jose, 2012. — 73 p.

7. Мельман С. В. Визуализация объемов в задачах анализа физических полей синоптических объектов // Информационные технологии. 2008. № 1. С. 62-66.

8. Бобков В. А., Мельман С. В. Система визуализации пространственных полей синоптических объектов // Тр. междунар. конф. по компьютерной графике ГРАФИКОН-2007. М.: МГУ, 2007. С. 264-268.

9. Melman S, Bobkov V, May V. The system for visualization of synoptic objects // Scientific Visualization, Issue Year: 2011. Quarter: 4. V. 3. № 4. Р. 2-9.

V. Bobkov, Dr of Technique, Head of computer graphics laboratory of Institute of Automation and Control Processes of Far Eastern Branch of Russian Academy of Sciences, Vladivostok, [email protected]

A. Cherkashin, Graduate Student, Institute of Automation and Control Processes of Far Eastern Branch of Russian Academy of Sciences, Vladivostok, [email protected]

Spatial data processing and visualization using hybrid computing cluster

The paper presents the analysis of features of programming graphical applications for processing and visualization of large amounts of data with high-performance hybrid computing cluster systems. Considered hybrid architecture of computing cluster, allow to implement of parallelism using CUDA and MPI at three levels: the cluster nodes, multicore and GPU video cards. The approach is proposed to organization of hybrid parallelism estimated its effectiveness by implementing of software complex of visualization synoptic data using hybrid cluster. Keywords: visualization, multi-level parallelism, CUDA, MPI, OpenGL, VirtualGL, UNIX, X11.

80j

i Надоели баннеры? Вы всегда можете отключить рекламу.