77284

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

Научная статья

Информатика, кибернетика и программирование

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

Русский

2015-02-02

662 KB

1 чел.

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

Васёв П.А., ИММ УрО РАН

Введение

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

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

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

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

С ростом вычислительных мощностей, а особенно – с появлением параллельной техники, вырос и объём результатов счёта, что сделало невозможным непосредственный контроль программы пользователем. Другой проблемой оказался тот факт, что в рамках библиотек поддержки параллельных вычислений – PVM, MPI – оставлены без внимания как вопросы оперативного управления программами, так и визуализация состояния выполняющихся программ. Соответственно, чтобы «вернуть» прикладным программистам контроль над задачами, требуется разработка специальных технологий в дополнение к имеющимся системам параллельного программирования.

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

Представлена простая и удобная система онлайн-визуализации общего назначения. Система предназначена для наблюдения и управления задачами малого и среднего размеров, но при этом поддаётся масштабированию.

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

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

Варианты размещения данных и системы рендеринга

С технической точки зрения визуализация включает в себя этапы загрузки данных, преобразования этих данных в визуальные сущности, их рендеринг (то есть процесс перевода трёхмерной модели в двумерное изображение) и отображение на дисплее или другом устройстве [1]. Это относится как к онлайн-визуализации, так и к визуализации после счёта. В связи с наличием этих этапов для архитектуры системы визуализации существенными являются следующие вопросы.

  1.  Расположение данных – локальное или удалённое. Локальное расположение подразумевает наличие файлов на компьютере пользователя. Под удалённым размещением понимается такая ситуация, когда данные невозможно или неэффективно целиком передать на машину пользователя для визуализации.
  2.  Расположение системы рендеринга – локальное или удалённое. Локальный рендеринг задействует мощности компьютера пользователя. Удалённое расположение системы рендеринга – на внешних компьютерах (или даже на самом вычислителе) – может быть оправдано в различных случаях, например, когда процесс рендеринга требует вычислительных мощностей, превышающих возможности машины пользователя.

Обратимся к рассмотрению различных вариантов комбинации этих решений.

  1.  Данные и рендеринг – локальные. Этот случай самый простой и удобный для работы, если считать, что время чтения и визуализации данных приемлемо. Плюсом этого подхода является относительная простота реализации системы визуализации.
  2.  Данные удалённые, рендеринг  локальный. Возникает необходимость создания технических средств для удалённого чтения и передачи данных или их части. Например, это может быть программа, запущенная на компьютере, содержащем данные, которая по команде считывает и передает часть данных на машину пользователя. Команды на чтение и передачу, соответственно, инициируются системой рендеринга в зависимости от текущего вида и параметров отображения [2]. При этом локальный рендеринг обеспечивает оперативность взаимодействия с системой – например, поворот трёхмерной сцены с помощью мыши может выглядеть непосредственным и плавным.

Важной задачей, которую приходится решать в случае удалённых данных и локального рендеринга, является выбор правил передачи данных. Например, в широком спектре задач при визуализации расчётных сеток успешным является подход, когда данные огрубляются без потери когнитивности на удалённой машине, что позволяет передать их по сети и отобразить на локальной машине [3].  

  1.  Данные и рендеринг – удалённые. В этом случае изображения создаются на специальном компьютере и передаются по сети на компьютер исследователя. Исследователь может управлять визуализацией, влияя на процесс создания изображений, которые немедленно появляются на его компьютере. Актуальной является ширина канала между ресурсом, содержащим данные, и системой рендеринга. Если этот канал обладает достаточной пропускной способностью, то система передачи данных может оказаться достаточно простой. Еще одним плюсом такого подхода является то, что система рендеринга может быть распределённой. При этом требования к ширине канала между этой системой и машиной пользователя в общем случае являются фиксированной величиной, определяемой интенсивностью графического обмена для данной задачи.

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

Способы поддержки онлайн-визуализации

Рассмотрим различные способы, которые позволяют наблюдать и управлять  вычислительной задачей [4]. В настоящий момент наиболее распространено пакетное исполнение программ, которое, с одной стороны, накладывает свои ограничения на визуализацию, а с другой стороны – требует особенного подхода. Способы визуализации призваны, в первую очередь, «вытащить» данные из программы и показать их.

Интеграция с параллельными программами

Идея заключается в том, чтобы внедрить в исходный код параллельной программы несколько специальных вызовов функций, которые и будут связывать программу с системой онлайн-визуализации. Особенность рассматриваемого подхода — минимизация необходимых изменений, которые потребуется внести в исходный код существующего проекта. Именно поэтому данный подход достаточно распространён. В частности, он реализован в системе pV3 [5], которая является параллельной версией стандартного модуля визуализации для пакета ANSYS CFD. В качестве другого примера можно привести систему CUMULVS [6], которая не только позволяет визуализировать состояние программы, но и содержит в себе поддержку контрольных точек.

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

Вычислительные среды

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

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

Сервисы поддержки вычислений

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

Кроме выполнения рутинных операций по чтению-записи сеток, другая основная цель сервисов промежуточного уровня – замена обычного режима взаимодействия различных компонент системы (генератор сеток, разбиение на домены, счёт, визуализатор). В этом случае  взаимодействие реализуется не через промежуточные файлы, а с помощью сетевых обменов. Такова, например, основная идея в системе Hercules [7].

Другой полезной функцией сервисов поддержки вычислений является возможность специализированного хранения и архивирования данных. Такой подход применяется в средах обеспечения вычислений некоторых ведущих научных центров России.

Новая система онлайн-визуализации

Идея предлагаемого решения близка к идеям, предложенным в уже упоминавшемся проекте Окриджской национальной лаборатории CUMULVS [6]. Остановимся более подробно на модификациях, внесённых в предлагаемый коллегами подход и некоторых аспектах его программной реализации, осуществленной в ИММ УрО РАН.

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

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

Рис. 1. Архитектура предлагаемой системы

Все запросы основаны на именах. Каждая параллельная программа при запуске регистрируется у посредника со своим уникальным именем. А точнее, каждый её процесс указывает это имя и свой порядковый номер. Затем каждый вычислительный процесс регистрирует у посредника свои ресурсы – данные или коммуникационные примитивы. Этот этап назван «публикацией данных». Например, процесс параллельной программы «CALC_1» может опубликовать в системе массив чисел с плавающей точкой и дать ему имя «DNA_DATA». Чтобы прочитать данные этого массива, программа визуализации должна будет указать имя задачи «CALC_1» и идентификатор данных «DNA_DATA».

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

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

Запросы на данные могут содержать обращения к распределённым данным. Так, например, несколько вычислительных узлов могут опубликовать какой-либо массив с одинаковым именем, но с указанием различных участков этого массива. Это распределение становится известным сервису-посреднику, и запрос на «обобщённые» данные распределяется им между узлами-участниками. Затем посредник посылает программе визуализации уже объединённые результаты.

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

В рамках системы существует два программных интерфейса. Один предоставляется вычислительным узлам, а другой – программам визуализации. Интерфейс для параллельных программ – это набор высокоуровневых вызовов, реализованных в специальной библиотеке. Для программ визуализации предоставляется интерфейс SOAP. Сама же система внутри полностью ориентирована на применение этого сетевого протокола. При этом интерфейс для параллельного программиста, подчеркнём, это не SOAP, а функции Си или Фортран.

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

* Некоторые данные программы

     dimension *x(117), *x0(117)

* Подключение системы онлайн-визуализации

     call iv_init( 'TASK_CALC_XG',myrank )

* Публикация данных

     call iv_publish( 'CALC_X',x,117 )

     call iv_publish( 'CALC_X0',x0,117 )

     ....

* Параметры вычислительного алгоритма

     alfa = 1.E-11

     mu = 0.01

* Публикация параметров

     call iv_parameter( 'CALC_ALPHA',alfa )

     call iv_parameter( 'CALC_MU',mu )

* Далее следуют вычисления. Данные будут прочитаны и/или записаны асинхронно.

Рис. 2. Пример вызовов программного интерфейса в параллельной программе

После оснащения параллельной программы упомянутыми вызовами функций системы любой сетевой клиент может присоединиться к посреднику с помощью протокола SOAP и запросить содержимое ресурса «CALC_X», который, по сути, является в данном случае массивом x(17), расположенным в оперативной памяти конкретного узла. В дополнение, сетевой клиент может изменить содержимое этого массива или, например, переменной alfa, выполнив соответствующий запрос на запись.

Среди примитивов синхронизации в системе представлены точки сбора (joins) и так называемые барьеры. Точка сбора – это именованное место в узлах параллельной программы. Когда процесс приходит в точку сбора, то его выполнение приостанавливается до тех пор, пока в точке сбора не окажется определённое число таких процессов. Барьер – это также место в коде программы с указанием имени переменной-счётчика. Когда процесс подходит к барьеру, анализируется значение упомянутого счётчика. Если значение положительно, то оно уменьшается на единицу, а процесс продолжает свою работу. Если значение равно нулю, то процесс переходит в режим ожидания – до тех пор, пока кто-то извне (например, программа визуализации) не увеличит значение счётчика. Барьеры и точки сбора показали свою полезность при интерактивном управлении вычислениями.

Относительно создания сетевых клиентов можно сказать следующее. Для каждой вычислительной программы необходима разработка собственной клиентской программы визуализации. Теоретически, любая среда с поддержкой SOAP для этого подходит. Нами успешно реализован ряд клиентов в средах Borland C++, Adobe Flex 2 и HTML/JavaScript.

Когда все подготовительные работы завершены, исследователь обычно работает в следующем порядке. Он запускает параллельную программу, а затем по мере необходимости открывает программу визуализации. Эта программа подключается к вычислительной задаче, отображает её состояние и позволяет исследователю управлять задачей. На следующем рисунке приведен пример такой программы [8].

Рис. 3. Пример работы системы

Здесь показано содержимое результатов работы программы трёхмерного моделирования течения вязкой жидкости при определённых воздействиях [8]. В памяти узлов параллельной программы формируется трёхмерный массив. Пользователь работает с клиентским приложением, выбирает значение для построения изоповерхности, и соответствующий запрос на построение такой поверхности обрабатывается в процессах задачи. Справедливо будет подчеркнуть, что передача изоповерхностей без специального прореживания (которое возможно - [3]) оказалась очень длительной по времени. Другим примером может послужить применение системы для проведения численных экспериментов при решении некоторых одномерных задач, которое более подробно описано ниже.

Система показала свою работоспособность и расширяемость. Среди плюсов можно отметить возможность работать в любой среде параллельного исполнения, с языками С/C++ и Фортран, поддержку Windows и Linux.

Веб-интерфейс для системы онлайн-визуализации

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

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

Рис. 4. Пример веб-интерфейса пользователя

В данном случае имеет место серия вычислительных экспериментов. На графиках показано состояние основной вычисленной функции, а также некоторые важные производные и история последних шагов счёта.

Разрабатывается новая версия данного интерфейса, которая позволяет отображать не только одномерные массивы, но и результат операций над ними – например, разности двух массивов или их совмещение. Также внедряется поддержка изменения любых параметров, опубликованных в программе. Этот подход успешно опробируется в частности на решении ряда криптографических задач [10].

Отдельный интерес представляет поддержка отображения не только одномерных данных, но двумерных и трёхмерных. Двумерные данные можно передавать и в графическом, и в исходном виде (возможно, с применением фильтрации) и растеризовать локально на компьютере пользователя. С трёхмерными данными дело обстоит несколько сложнее. В настоящее время технологии уровня Flash/Silverlight уже поддерживают аппаратный рендеринг трёхмерных сцен, однако проблема сообразной компрессии данных для передачи по сети [3] сохраняется.

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

Поддержка удалённой визуализации

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

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

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

В первую очередь, хотелось бы упомянуть существующие технологические решения, которые позволяют осуществлять удалённую визуализацию. Нами исследованы возможности систем Windows Terminal Services 2008, Citrix XenApp, решений VNC и XWindows, а также ряда менее известных систем. Анализ показывает, что ведущие разработчики этих решений только приступают к поддержке программ с аппаратной трёхмерной графикой. Так, в пресс-релизах компаний Microsoft и Citrix 2008 года заявлено, что следующие версии их продуктов будут непосредственно поддерживать приложения, использующие DirectX и OpenGL. Безусловно, данные заявления вселяют определённую уверенность и желание применить эти широко используемые технологии, однако в настоящий момент единственно возможный путь – рассмотрение альтернативных решений.

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

Рассмотрим возможные альтернативные варианты решения вопроса удалённой визуализации, включая задачи рендеринга трёхмерных сцен с результатами расчётов. Среди флагманов настоящего времени можно отметить Paraview Enterprise Edition, Sun Visualization System, HP Scalable Visualization Array, Mental Images Reality Server и StreamMyGame. Подчеркнём, что большинство из этих решений ориентированы на пользовательский интерфейс, базирующийся на веб-технологиях. Среди представленных систем отдельно хотелось бы выделить следующие.

  •  Paraview Enterprise Edition – содержит веб-интерфейс к системе визуализации Paraview для организации удалённой визуализации. Paraview является распространенным инструментом для визуализации научных данных, включая результаты различных расчётов. Среди плюсов программы – богатый набор видов отображения и различные варианты конфигурации распределённого рендеринга. Минус – необходимость конвертации данных в формат Paraview.
  •  Программный комплекс RealityServer является серверной платформой для создания 3D-веб-приложений. Система содержит инфраструктуру для рендеринга трёхмерных сцен, передачи изображений в веб-интерфейс, и приём команд от пользователя веб-интерфейса с последующей обработкой их на сервере. Существует возможность как настройки веб-интерфейса, так и программирования серверной логики. Среди плюсов программы можно отметить поддержку аппаратного рендеринга. Среди минусов – закрытость разработки. Кроме того, отдельной проблемой является необходимость конвертации данных в формат сцен «.m», применяющихся в RealityServer.


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

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

Рис. 5. Общая схема системы удалённой визуализации

Пользователь взаимодействует с системой через веб-интерфейс, в котором представлены элементы управления для модуля визуализации. В основе этого интерфейса – сгенерированное визуальное представление данных. Исследователь может оказывать, например, с помощью мыши, воздействие на изображение, а также на элементы управления. При воздействии веб-интерфейс направляет соответствующие команды сервису-посреднику (на рисунке он представлен системным модулем) с помощью протокола HTTP (Ajax). Посредник, в свою очередь, транслирует эти команды конкретному процессу модуля визуализации. Это могут быть запросы на изменение тех или иных параметров либо на перерисовку изображения. В случае запроса на перерисовку в модуле визуализации вызывается функция рендеринга, упоминавшаяся  в предыдущем абзаце. После отработки этой функции изображение сжимается в определённый формат и передаётся через сервис-посредник в браузер пользователя.

Правилам сжатия изображений требуется уделить особое внимание. На текущий момент они упаковываются в формат PNG по следующей схеме. При первом запросе на кадр система высылает изображение, уменьшенное в 4 раза. В случае, если пользователь не проявляет какой-либо активности в течение нескольких секунд, посылается улучшенная копия изображения с коэффициентом уменьшения 2. Если в течение последующих секунд пользователь не проявляет управляющей активности, то передаётся и показывается исходное изображение. Этот подход позволяет уменьшить объём данных, передаваемых по сети. Действительно, если пользователь с помощью мыши вызывает интерактивное вращение трехмерной сцены, то с точки зрения восприятия важно показать результат быстро, пусть и огрублённым. Для одного конкретного приложения, которое будет приведено ниже, размер изображения PNG с разрешением 640x480 в среднем составляет 60 Кб, а уменьшенного в 4 раза – 5 Кб. Соответственно, при поворотах сцены передаётся 10-50 изображений размера всего в 5 Кб. Это позволяет сократить время отклика системы.

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

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

Рис. 6. Пример использования системы удалённой визуализации

На представленной иллюстрации показан один из шагов расчёта процесса определённого воздействия на сечение трубы нефтепровода [11]. Пользователь может нажать кнопку мыши на изображении и перемещать её, при этом изображение будет немедленно обновляться, показывая вращение объекта. Рендеринг осуществляется на удалённом сервере визуализации аппаратно специальной программой с применением технологии DirectX. В локальной сети 10 Мбит удалось достичь скорости работы 15 кадров в секунду. В эксперименте с визуализацией через Интернет по каналу Екатеринбург-Москва-Челябинск система показала приблизительно 3 кадра в секунду.

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

Заключение

Система показала работоспособность и расширяемость; работает с любой средой параллельного исполнения, с языками С/C++ и Fortran, поддерживает Windows, Linux и переносима на другие операционные системы. Веб-интерфейс не зависит от браузера и подразумевает наличие технологии Flash. Поддержка удалённой визуализации, при этом, не требует наличия Flash и ориентирована на браузеры с включённым интерпретатором JavaScript.

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

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

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

В заключении автор хотел бы выразить искреннюю благодарность и признательность В.Л. Авербуху за научное руководство; С.В. Шарфу, Д.В. Манакову и М.В. Якобовскому за конструктивные обсуждения проблематики; М.О. Бахтереву и А.Ю. Казанцеву за содействие в продумывании и реализации изложенных идей; а также уважаемым коллегам из Сарова (РФЯЦ-ВНИИЭФ) и Челябинска (ЮУрГУ) за поддержку и плодотворный обмен идеями.

Литература

  1.  Авербух В.Л., Манаков Д.В, Васёв П.А., Комаровский И.А., Мухачёв А.А., Шинкевич А.Н. (ИММ УрО РАН, Екатеринбург), Подходы к реализации средств on-line визуализации параллельных вычислений // Супервычисления и математическое моделирование: Тезисы международного семинара, г. Саров, ВНИИЭФ-РФЯЦ, 2003. Стр. 14-16.
  2.  Потехин А.Л., Тарасов В.И., Фирсов С.А., Логинов И.В., Никитин В.А., Кузнецов М.Г., Попова Н.В., Деманова А.К., Козачек Ю.В. ScientificView - система параллельной постобработки результатов, полученных при численном моделировании физических процессов // Труды Международной Конференции по Компьютерной Графике и Визуализации «Графикон», 2008. Стр. 65-69.
  3.  Якобовский М.В. Решение сеточных задач на распределенных системах // Параллельные вычислительные технологии / Труды научной конференции. Челябинск. Издательство ЮУрГУ, 2007. Том 2. Стр. 201-211.
  4.  Васёв  П.А., Манаков Д.В., Шинкевич А.Н. Основные направления развития визуальных супервычислений // Параллельные вычислительные технологии / Труды научной конференции, Санкт-Петербург, – Челябинск: издательство ЮУрГУ, 2008. Стр. 328-331.
  5.  Haimes R. A Tractable Approach to Understanding the Results from Large-Scale 3D Transient Simulations. AIAA Paper No. 2001-0918, Reno, NV, Jan. 2001.
  6.  Geist G. A., Kohl J. A., Papadopoulos P. M. CUMULVS: Providing Fault-Tolerance, Visualization and Steering of Parallel Applications // International Journal of High Performance Computing Applications, Volume 11, Number 3, August 1997, pp. 224-236.
  7.  Tu T., Yu H., Ramirez-Guzman L., Bielak J., Ghattas O., Ma K.-L., O’Hallaron D. R, From mesh generation to scientific visualization — an end-to-end approach to parallel supercomputing // SC2006, Tampa, FL, November 2006. Article No. 91.
  8.  Короткий А.И., Цепелев И.А. Трехмерное моделирование прямых и обратных задач Рэлея-Бенара и Рэлея-Тейлора // Вопросы атомной науки и техники. Серия: Математическое моделирование физических процессов. 2002. N3. Стр.22-32.
  9.  Васин В.В., Шарф С.В., Серёжникова Т.И., Васёв П.А.  (ИММ УрО РАН), О распараллеливании и визуализации при решении некорректных задач методами регуляризации и итерационной аппроксимации на вычислительном комплексе МВС-1000 // Труды Международной научной конференции «Параллельные вычислительные технологии», Челябинск, издательство ЮУрГУ, 2008. Стр. 227-233.
  10.  Albrekht I., Some methods for DLP solving and time estimation; Proceedings of Information Security Conference in Yekaterinburg, Russia, 2005, pp. 35-36.
  11.  Радченко Г.И., Дорохов В.А., Насибулина Р.С., Соколинский Л.Б., Шамакина А.В. Технология создания виртуальных испытательных стендов в грид-средах // Вторая Международная научная конференция "Суперкомпьютерные системы и их применение" (SSA'2008): доклады конференции (27-29 октября 2008 года, Минск). -Минск: ОИПИ НАН Беларуси. -2008. -Стр. 194-198.


 

А также другие работы, которые могут Вас заинтересовать

20609. Простой генератор кода 37 KB
  Данные вычисленные результаты находятся в регистрах как можно дальше и перенос их в память осуществляется только при необходимости использовать этот регистр. a:= bc b в регистр Ri c в регистр Rj. 2 b в регистр Ri c в памяти ADD Ri с.
20610. Распределение и назначение регистров. Счетчики использования регистров 52.5 KB
  Пример: Переменная Регистр b R0 d R1 a R2 e R3 B0: MOV R0b MOV R1d MOV R2a MOV R3e B1: MOV R2 R0 ADD R2c SUB R1 R0 MOV R3 R2 ADD R3f B2: SUB R2 R1 MOV f R2 B3: MOV R0 R1 ADD R0f MOV R3 R2 SUB R3c B4: MOV R0 R1 ADD R0c.
20611. Оптимизация базовых блоков c помощью дагов 88 KB
  1 t1:=4i t2:=a[t1] t3:=4i t4:=b[t3] t5:=t2t4 t6:=prodt5 prod:=t6 t7:=i1 i:=t7 i =20 goto1 Поочередно рассматривается каждая инструкция блока. e:=ab f:=ec g:=fd n:=ab i:=ic j:=ig = e:=ab f:=ec g:=fd i:=ic j:=ig Локальная оптимизация устранение лишних инструкций MOV R0a MOV a R0 устранение недостижимого кода if а = 1 goto L1 goto L2 L1: L2: = if а = 1 goto L2 goto L1 L1: goto L2 = goto L2 3.
20612. Использование динамического программирования при генерации кода 137.5 KB
  Пример: Пусть дана инструкция вида: add R1 R0 она может быть представлена в виде: R1:= R1 R0 Алгоритм динамического программирования разделяет задачу генерации оптимального кода для некоторого выражения на подзадачи генерации оптимального кода для подвыражений из которых состоит выражение Ei. Если E:=E1 E2 то генерация кода E разбивается на генерацию кода E1 и генерацию кода E2. Композиция получаемых элементов кода осуществляется в зависимости от типа вхождения подвыражений в основное выражение.
20613. Устранение общих подвыражений 92 KB
  2 Удаление бесполезного кода Допустим имеем следующую последовательность инструкций 3 Оптимизация циклов Пример 1: Пусть имеем цикл while i n2 Возможно модернизировать в следующую последовательность инструкций t:=n2 while i t Пример 2: while i t a:=b2 при условии что b не изменяется в теле цикла данную последовательность инструкций можно заменить на: a:=b2 while i t Метод перемещения кода заключается в выносе перед циклом выражений не изменяющихся в процессе его выполнения. 4 Переменные индукции и снижение стоимости 5 Оптимизация...
20614. Разработка компилятора 208.5 KB
  Параметры: S – исходный язык I – язык реализации компилятора на котором написан T – целевой язык генерация кода для целевой машины Т. Если взять связку 3х компиляторов то получим еще один компилятор: Использование возможностей языка для компиляции его самого называется раскруткой. Кросскомпилятор LSN создан для нового языка Lна языке реализации S с генерацией кода для машины N.
20615. Анализ потока 121.5 KB
  Управление распределением памяти и сборка мусора Задачи решаемые компиляторами: выделение памяти инициализация выделенной памяти некоторыми начальными значениями предоставление возможности программисту использования этой памяти при прекращении использования памяти ее освобождение обеспечение повторного использования освобождающей памяти. Проблемы управления памятью: ограниченность памяти ошибки явного управления памятью особенности возникновения ошибок при работе с памятью труднонаходимость проблема освобождения ресурсов...
20616. Фазы трансляции 328 KB
  Группы символов соответствующие элементам языка называются токенами. Контекстносвободная грамматика имеет 4 компоненты: множество токенов терминальных символов множество нетерминальных символов множество продукций где слева всегда нетерминал а справа последовательность терминалов нетерминалов указание одного из нетерминалов в качестве стартового символа грамматики. На вход лексического анализатора поступает цепочка символов. Каждый шаг переключение автомата состоит в том что при нахождении в определенном состоянии при...
20617. Магазинные автоматы 86.5 KB
  I – входная строка I – текущий символ входной строки M – стек M – символ в вершине стека pushM – операция записи в стек popM – операция выталкивания из стека M=0 – проверка стека на пустоту I=0 – проверка на пустоту входной строки nextI – переход к следующему символу в строке {Si} – множество состояний конечного автомата Текущее состояние автомата описывается тремя системами: Si M I При переводе автомата в новое состояние получим Si M ISj . Если текущий символ строки совпадает с символом в вершине...