Информационные системы



Скачать 140.64 Kb.
Дата09.05.2016
Размер140.64 Kb.

ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА

2012 Математика. Механика. Информатика Вып.3(11)



ИНФОРМАТИКА

ИНФОРМАЦИОННЫЕ СИСТЕМЫ

УДК 004

Система визуализации результатов

MPI-тестирования коммуникационной

среды вычислительных комплексов
П. С. Банников, А. Н. Сальников

Московский государственный университет им. М.В. Ломоносова

Россия, 119991 ГСП-1, Москва, Ленинские горы, 1

salnikov@cs.msu.ru; +7(916)4039044; +7(495)9391790


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

Введение


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

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

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


    1) работа с массивными данными;

    2) отображение двух матриц одновременно. Этот пункт подразумевает одновременную визуализацию матрицы задержек и матрицы дисперсий одинаковой размерности либо отображение сравнения матриц одинаковой размерности;



3) визуализация в режиме реального времени.

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


2. Подход к реализации

Представленные во введении проблемы, в сущности, сводятся к двум основным задачам: оптимизация количества потребляемой памяти и ускорение визуализации.


2.1. Потребление памяти


Как правило, входные файлы читаются один раз целиком в оперативную память. Этот способ обладает важным достоинством: значительное увеличение скорости работы по сравнению с чтением малых порций данных из файла по запросу. Однако ограниченность размера оперативной памяти – серьезный недостаток способа. Например, файл, содержащий трехмерную матрицу размерами 2048х2048х100 (3.2 ГБ) – достаточно провести тест со 100 различными длинами сообщений на суперкомпьютере с 2048 процессорами – не поместится в 2 ГБ оперативной памяти.

С учетом специфики задачи предлагается следующий способ: вместо массива чисел с двойной точностью в оперативной памяти хранится массив целых неотрицательных чисел, задающих цвета соответствующих ячеек матрицы. Из трех компонент RGB-представления нужно лишь две, что позволяет ещё больше экономить память. В итоге размер потребляемой памяти уменьшается в 4 раза по сравнению с первоначальным. Однако данные из входного файла "потеряны", и при надобности приходится читать весь файл заново. В защиту данного способа выступает то, что ситуация повторного чтения возникает относительно редко, т. е. время жизни "цветовых" данных достаточно велико. Главным достоинством способа является возможность использования видеокарт с небольшим количеством оперативной памяти, что расширяет пределы применимости всей системы визуализации.


2.2. Скорость и качество визуализации


В рассматриваемой задаче визуализируемый объем имеет регулярную структуру.

Каждая клетка исходной трехмерной матрицы отображается "точкой" – полупрозрачным объектом некоторой заданной формы и размеров.

Для качественной визуализации трехмерных матриц используется алгоритм рэйкастинга для объемов [1]. Выделяют следующие шаги алгоритма рэйкастинга:

1) "бросание" луча;

2) сэмплирование;

3) раскраска;

4) комбинирование цветов.

Заранее предполагается, что визуализируемый объем представлен в виде набора точек в узлах некоторой решетки и разбит на слои, выровненные по самому объему.

На шаге (1) лучи испускаются из позиции так называемой "камеры" до каждого пикселя конечного изображения. Ищется пересечение луча с примитивом, ограничивающим визуализируемый объем. Если пересечение найдено, ищется пересечение луча с ближайшим к "камере" слоем объема. Точка пересечения необязательно совпадает с какой-либо точкой слоя, поэтому на шаге (2) определяются точки объема, ближайшие к точке пересечения. На шаге (3) точке пересечения присваивается цвет, получившийся в результате интерполяции цветов ближайших соседей этой точки. Если используются источники света, на цвет раскрашиваемой точки оказывается влияние посредством выбранной локальной модели освещения. После этого луч движется дальше, и ищется его пересечение со следующим слоем объема. На шаге (4) цвета всех точек пересечения одного луча и слоёв объема комбинируются в порядке от ближней точки к дальней на основе определенной функции смешивания; вовлекается полупрозрачность элементов объема.

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

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

Для осуществления прохождения луча по трехмерной решетке используется алгоритм 3DDA [2]. К достоинствам алгоритма относятся численная устойчивость, относительная простота реализации и достаточно высокая скорость работы. Под численной устойчивостью понимается, главным образом, корректная работа алгоритма даже в тех случаях, когда аппаратура выдает исключения для чисел вещественной арифметики с плавающей запятой.




3. Реализация визуализатора

Система визуализации разрабатывается как расширение функциональности кроссплатформенной программы Network Viewer 2 [3], входящей в проект PARUS [4], на трехмерный случай. Здесь и далее система визуализации будет именоваться как "Network Viewer (2)".

Входные файлы с матрицами могут быть одного из двух форматов: бинарные (на основе NetCDF) и текстовые (структурированные определенным образом).

Трехмерные матрицы визуализируются в виде трехмерных решеток, в узлах которых расположены "точки". Значение в клетке матрицы однозначно соответствует прозрачности "точки". Поддерживаются несколько форм "точек":

• куб как естественно получающаяся при визуализации трехмерной решетки фигура;

• шар с постоянной интенсивностью;

• шар с интенсивностью, максимальной в центре и квадратично убывающей к границе.

Для обеспечения отображения в реальном времени привлекаются ресурсы графических процессоров (GPU). Визуализация на GPU проходит с использованием технологии OpenCL. Однако если видеокарта не поддерживает указанную технологию, визуализация автоматически переходит на центральный процессор (CPU). В этом случае задействуется многоядерность CPU с помощью технологии OpenMP. Таким образом, результаты визуализации можно просмотреть практически на любом персональном компьютере.

Network Viewer 2 работает в одном из следующих режимов:

Визуализация только матрицы задержек.



Матрицей задержек назовем матрицу, содержащую усредненные значения задержек при передаче MPI сообщений.

Значения в клетках матрицы отображаются на спектр одного цвета.

Визуализация матрицы задержек и матрицы дисперсий (с одинаковыми размерностями).

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

Матрицы комбинируются друг с другом и визуализируются как одна матрица. Величины задержек отображаются на спектр одного цвета, величины отклонений – на спектр другого цвета. Если величина отклонения превышает величину задержки, данная клетка рисуется только цветом для отклонений.

Визуализация сравнения двух матриц задержек одинаковых размерностей.

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

Для обеспечения наглядности визуализации разработан дополнительный функционал:

• перемещение, поворот, масштабирование трехмерного объекта;

• установка так называемой "камеры" как внутри, так и за границами трехмерного объекта;

• отображение в цветовое пространство только тех значений, которые попали в заданный пользователем диапазон;

• визуализация оболочек трехмерного объема задаваемой толщины (также служит для ускорения визуализации);

• построение объемов "2-го уровня": визуализация только тех клеток матрицы, которые попали в заданный пользователем диапазон значений.

Реализация на GPU выполнена через "ядра". В спецификации OpenCL "ядро" определяется как функция, работающая на устройстве (в данном случае – на видеокарте). На текущий момент написано 6 "ядер": 3 "ядра" для реализации построения оболочек объема и 3 "ядра" для реализации построения объемов "2-го уровня". Каждое из трех "ядер" соответствует определенной форме "точки" объёма. Большое количество "ядер" объясняется намерением минимизировать количество команд потока управления (например, ветвлений), которые отрицательно сказываются на производительности. За выбор и запуск "ядер" отвечает центральный процессор.

Реализация на CPU выполнена через функции языка С++ с использованием технологии OpenMP. Количество функций совпадает с количеством OpenCL-"ядер" по той же причине, что и в реализации на GPU. Выбор активной функции осуществляется через указатели на функции.



4. Сравнение результатов с аналогами

Проводится сравнение качества получившегося изображения и скорости работы программы Network Viewer 2 с существующими кросс-платформенными программами, разработанными для схожих целей: ParaView 3.14.1 [5] и VisIt 2.4.2 [6]. Данные программы являются свободно распространяемыми, с открытым исходным кодом; обладают богатым функционалом для обеспечения наглядности визуализации, а также работают в режиме реального времени.



Машина, на которой проводились сравнения, имеет 4-ядерный процессор AMD Phenom II с 2 ГБ оперативной памяти и видеокарту NVIDIA GeForce GT240 с 1 ГБ памяти.

Всем трем программам на вход подавался NetCDF-файл, содержащий матрицу с результатами теста коммуникационной среды суперкомпьютера "Ломоносов", установленного в МГУ им. М.В.Ломоносова. В тесте производился обмен MPI-сообщениями между 500 процессорами со 100 различными длинами сообщений (матрица 500х500х100).

Результаты работы программ Network Viewer, ParaView и VisIt представлены на рис. 1, 2 и 3 соответственно:



Рис. 1. "Ломоносов", 500х500х100. Network Viewer



Рис. 2. "Ломоносов", 500х500х100. ParaView 3.14.1



Рис. 3. "Ломоносов", 500х500х100. VisIt 2.4.2
VisIt 2.4.2 распознавал во входном файле не трёхмерную структуру, а двумерную, поэтому для корректности результатов сравнения было решено воспользоваться встроенными средствами самого VisIt 2.4.2: к двумерной структуре применялось геометрическое преобразование "Extrude" размером 100. В частности, это объясняет ярко выраженные полосы на рис. 3. Результаты работы программ сведены в следующую таблицу:

Таблица 1. Результаты теста с суперкомпьютера "Ломоносов", 500х500х100





ParaView 3.14.1

VisIt 2.4.2

Network Viewer 2

OpenMP

OpenCL

Отрисовка

(1 раз), FPS



1

60

11

37

Отрисовка, FPS

31

67

105

Подготовка

(1 раз), с



8

?

1.39

Подготовка, с

0.28

?

0.68

Потребление памяти, МБ

200+

?

50+

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

Как видно из таблицы, Network Viewer 2 требует в 4 раза меньше памяти, чем ParaView 3.14.1, а визуализация на GPU в Network Viewer 2 проходит в 1.7-3 раза быстрее, чем в ParaView и VisIt. Реализация на CPU, однако, уступает обеим программам в 3-6 раз.

В следующем тесте программам ParaView и VisIt на вход подавался один NetCDF-файл, содержащий матрицу с результатами теста коммуникационной среды суперкомпьютера "Европа". Размеры матрицы – 2048х2048х25. Программе Network Viewer 2 на вход подавалось два файла такого размера и задавался режим работы "матрица задержек + матрица дисперсий". Ввиду того, что ни ParaView 3.14.1, ни VisIt 2.4.2 не поддерживают режим комбинирования матриц, представлен только результат работы Network Viewer 2 на рис. 4.




Рис. 4. "Европа", 2048х2048х25. Network Viewer 2

При работе в VisIt 2.4.2 снова было применено преобразование "Extrude" размером 25.

Результаты работы программ сведены в следующую таблицу:

Таблица 2. Результаты теста с суперкомпьютера "Европа", 2048х2048х25





ParaView 3.14.1

VisIt 2.4.2

Network Viewer 2

OpenMP

OpenCL

Отрисовка

(1 раз), FPS



-

37

6.5

5

Отрисовка, FPS

-

64

135

Подготовка

(1 раз), с



19

?

27.2

Подготовка, с

15

?

25.7

Потребление памяти, МБ

800+

?

200+

Комментарии те же, что и к первой таблице, с той лишь разницей, что в ParaView 3.14.1 не удалось получить изображение. Возросшее число кадров в секунду при реализации на OpenCL (135 против 105) объясняется малой "толщиной" матрицы в направлении взгляда.


Заключение


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

В статье предложена реализация системы визуализации, работающей в режиме реального времени и обеспечивающей наглядность отображаемых данных. Проведено сравнение работы созданного визуализатора с работой существующих программ: ParaView и VisIt. Показано, что реализация, опирающаяся на работу с видеокартой, превосходит по скорости и ParaView, и VisIt. Однако визуализация на центральном процессоре уступает обеим программам. Также стоит отметить, что самое качественное (с позиции зрительного восприятия) изображение генерируется ParaView, но изображение, полученное ParaView, уступает по наглядности (уровню детализированности) изображениям, полученным VisIt и Network Viewer 2.


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





  1. Pawasauskas J. "Volume Visualization With Ray Casting" // CS 563 - Advanced Topics in Computer Graphics, 1997. [Электронный ресурс]. URL:

    http://web.cs.wpi.edu/~matt/courses/cs563/talks/powwie/p1/ray-cast.htm



  2. Алгоритм 3DDA // [Электронный ресурс]. URL: http://www.ray-tracing.ru/

    articles182.html



  3. Сальников А.Н., Андреев Д.Ю., Лебедев Д.Ю. Инструментальная система для анализа характеристик коммуникационной среды вычислительного кластера на основе функций стандарта MPI // Вестн. Моск. ун-та. 2012. №1. С.39–48.

  4. Salnikov A.N. PARUS: A Parallel Programming Framework for Heterogeneous Multiprocessor Systems // Lecture Notes in Computer Science. 2006. Vol.4192. P.408–409.

  5. ParaView // [Электронный ресурс]. URL: http://www.paraview.org/paraview/project/about.html.

  6. VisIt // [Электронный ресурс]. URL: https://wci.llnl.gov/codes/visit/about.html.


Software for visualizing information about interconnections in computing clusters provided by MPI benchmarks
P. S. Bannikov, A. N. Salnikov

Moscow State University, Russia, 119991, GSP-1, Moscow, Leninsky Gory, 1



salnikov@cs.msu.ru; +7(916)4039044; +7(495)9391790
Effective program should take care of hardware and interconnections of computing cluster for which it was written. However clarification of hardware may be a problem for program developer. Documentation for cluster can often give only superficial knowledge. Therefore one approach to clarify hardware and interconnections is proposed in the article. This approach is based on synthetical benchmarks. To demonstrate results of benchmarks visualization software was developed. The software represents data graphically in real-time operation mode and provides useful auxiliary functionality. Also developed software is compared with existing systems which have similar purposes.

Key words: supercomputer; interconnections’ benchmarks; MPI; visualization.

Работа проводится при поддержке грантов РФФИ: 11-07-00756-а, 11-07-00614-а и госконтрактов по ФЦП "Научные и научно-педаго-гические кадры инновационной России": П873,П1258, П1317.
© Банников П. С., Сальников А. Н., 2012

80


База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница