© Георгиевский Анатолий, Барышков Дмитрий, 10.07.2007

Отображение графической информации. Визуализация

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

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

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

Терминология

Всё что в Виндовс называется окошками называется Икc-окошками в среде GNU/Linux, X-Window System, X11, или просто "Иксы". Окошки в unix-linux имеют не менее продолжительную историю, что и микрософтовые, но от рождения отличаются не столько внешним видом, сколько идеей взаимодействия с аппаратурой. Если микрософтовые окошки создавались изначально для персональных компьютеров, то "иксы" предназначались для использования на больших вычислительных машинах с множеством пользователей и удаленных терминалов. Отсюда и идея взаимодействия. Иксовые окошки должны отображаться на удаленном терминале и эта возможность была заложена изначально. В основе "иксовых" окошек лежит "Икс-сервер" - приложение, которое обеспечивает отображение информации на монитор, т.е. это самое терминальное устройство. При этом, приложение, для которого отображается окошко называется "икс-клиент".

Если использовать терминологию виндовс, то можно это выразить так: клиетнское-икс-приложение использует системную-иск-службу для отображения на икс-монитор через директ-икс-интерфейс, или что-то в этом роде.

Клиента можно удалить от сервера на большое расстояние и связать через локальную или глобальную сеть по протоколу обмена. "Иксы" - это прозрачный протокол обмена который с одинаковым успехом может поддерживать вывод графической информации на локальном компьютере или передавать содержимое на удаленный компьютер. Чтобы переназначить вывод графики можно определить переменную в окружении:
export DISPLAY=[адрес сервера в сети]:[номер дисплея]
Номер дисплея обычно равен нулю, в качестве адреса указывается IP адрес или сетевое имя пользовательского компьютера с установленным X-сервером.

Настройка Х сервера на Windows

Нашим пользователям мы рекомендуем использовать приложение Xming для вывода графики на компьютеры под управлением Windows. Приложение устанавливается автоматически и не требует дополнительной настройки. Для отображения трехмерной графики OpenGL может использоваться сборка Хming-mesa. Интеграция с виндовыми окошками поразителная, окна с удаленного компьютера отображаются на десктопе наравне с окошками приложений виндовс.

На рисунке показан снимок экрана при запуске приложения "xterm", графического терминала, и окна с динамической трехмерной моделью из пакета gtkGLExt. Оба окна проирисованы на персональном Windows компьютере c установленным пакетом Xming-mesa, программы запускались на вычислительном кластере.

Настройка Х сервера для работы через интернет

Тут есть несколько требований на соединение. Во-первых, работа через интернет должна учитывать секретность информации, т.е. всякое частное соединение хорошо бы шифровать от посторонних глаз. Во-вторых, далеко не всегда можно четко определить адрес Икс-сервера, т.е. вашего персонального компьютера. В большинстве случаев провайдер интернет не предоставляет фиксированного IP-адреса, адрес назначается динамически, только на время работы в сети. Кроме того, хочется иметь возможность работы с удаленным компьютером (вычислительным кластером, в нашем случае) с разных компьютеров. Все эти задачи можно решить путем организации туннеля для протокола X11 forwarding, средствами ssh (PuTTY). При использовании соединения с удаленным компьютером по ssh в конфигурации PuTTY надо выбрать опцию X11 forwarding, в разделе X11. Никаких дополнительных настроек переменных окружения не требуется. Сразу после установки соединения, графический вывод будет перенаправляться на ваш компьютер.

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

Ссылки

  • Xming X-сервер для Windows
  • X-Window System

    ()

  •