Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 24(152)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3

Библиографическое описание:
Жуков М.П. СИСТЕМА УДАЛЕННОГО АНАЛИЗА И ВИЗУАЛИЗАЦИИ ДАННЫХ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ С ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА // Студенческий: электрон. научн. журн. 2021. № 24(152). URL: https://sibac.info/journal/student/152/220206 (дата обращения: 29.12.2024).

СИСТЕМА УДАЛЕННОГО АНАЛИЗА И ВИЗУАЛИЗАЦИИ ДАННЫХ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ С ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА

Жуков Марк Петрович

студент магистратуры, факультет дизайна и программной инженерии, Казанский Национальный Исследовательский Технологический Университет,

РФ, г. Казань

Зайцева Ольга Николаевна

научный руководитель,

канд. пед. наук, Казанский Национальный Исследовательский Технологический Университет,

РФ, г. Казань

АННОТАЦИЯ

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

 

Ключевые слова: поcтобработка, ParaView, компьютерное моделирование.

 

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

Для обработки данных, объем которых исчисляется в терабайтах требуются соответствующие вычислительные мощности, которые достигаются на кластерах.

Кластеры разделяют на несколько типов, мной используется вычислительный кластер. Для кластеров такого типа существенными показателями являются:

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

Вычислительные кластеры позволяют значительно сократить время расчетов       по сравнению с одиночным компьютером. Задача разбивается на потоки, которые выполняются параллельно и обмениваются данными через связующую сеть.

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

На данный момент задача постобработки данных имеет следующее решение. Происходит подключение к кластеру и выполнение поставленной задачи напрямую.

Выделяются три способа подключения:

  1. X11-Forwarding - удалённое подключение к кластеру средствами Linux. Проблема данного метода в том, что из-за огромного потока данных появляются лаги отображения и происходит потеря скорости всей сети, для работы потребуется широкий канал связи.
  2. Unihub - удалённое подключение к кластеру через браузер. Такой метод не рассчитан на передачу требуемого потока данных.
  3. Teamviewer - удаленное подключение средствами проприетарного программного обеспечения. Проблема данного метода в том, что не обеспечивается   безопасность данных.

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

Средства постобработки научных данных.

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

Python [2] - имеет широкое применение и отлично подходит для задач визуализации с использованием библиотек для визуализации: Seaborn [3], Matplotlib[4]. Это мощная библиотека, написанная на Python и, предоставляющая длинный список функциональных возможностей, охватывающих потребности базовой визуализации, 2D-диаграмм рассеяния для информации о контурах частиц и обычного линейного графика.

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

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

Язык, инструментарий и встроенные математические функции позволяют исследовать различные подходы и получать решение быстрее, чем с использованием электронных таблиц или традиционных языков программирования, таких как C/C++ или Java. Matlab широко используется для решения задач постобработки изображений. Также Matlab предоставляет набор встроенных функций построения 2D и 3D графиков, а также функции объемной визуализации. Можно использовать эти функции для визуализации и как средство представления обрабатываемой информации. Графики могут быть созданы как интерактивно, так и программно. Однако Matlab является проприетарный программным обеспечением с закрытым исходным кодом.

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

ParaView [6] - это мощный, широко используемый в академических кругах и научном сообществе инструмент постобработки с открытым исходным кодом, созданный на основе библиотеки VTK [7].

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

Кодовая база ParaView разработана таким образом, чтобы все ее компоненты можно было повторно использовать для быстрой разработки вертикальных приложений. Такая гибкость позволяет разработчикам ParaView быстро разрабатывать приложения, которые имеют определенные функциональные возможности для конкретной проблемной области. ParaView работает на распределенной и совместно используемой памяти параллельных и однопроцессорных систем. Он был успешно развернут на Windows, Mac OS X, Linux, SGI, IBM Blue Gene, Cray и различных рабочих станциях Unix, кластерах и суперкомпьютерах. Параллельно ParaView использует Visualization Toolkit (VTK) в качестве механизма обработки и рендеринга данных и имеет пользовательский интерфейс, написанный на Qt [8], изображен на рисунке 1. Преимуществам ParaView являются возможность импортировать готовые проекты после вычисления в специальных средах, таких как OpenFoam.

 

Рисунок 1. Графический интерфейс ParaView

 

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

ParaView имеется встроенная в графический интерфейс командная строка python и python библиотека, которая является надстройкой над ядром Paraview, написанным на C++ [9]. Данная библиотека работает с внутренними переменными Paraview, которые не известны пользователю. В командной строке нет возможности редактировать код, и нет возможности корректно отобразить ошибки запускаемого кода.

Инструменты для визаулизаций и реализация системы удалённого доступа.

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

Было решено использовать программные продукты с открытым исходным кодом и активным комьюнити, которые часто обновляются. Как средствами постобработки решено использовать Paraview и Python, так как данные продукты способны подменять друг друга.

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

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

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

Для удаленного доступа было решено использовать IPython Jupyter [10]. Это интерактивная среда разработки, набравшая свою популярность после добавления Jupyter NoteBook и возможности создания собственных компиляционных ядер. Это позволило создавать kernels, так называемые блоки кода, содержащие инструкции по компиляции кода. То есть стало возможным создавать и запускать скрипты не только на python, но и на любом другом языке.

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

Интеграция Paraview в Jupyter NoteBook была осуществлена на базе проекта компании Kitware. В феврале 2020 года на gitlab [11] появилась демо версия ядра, которое содержит инструкции работы c Paraview через jupyter notebook. Для создания взаимодействия между сервером ядром используется Xeos. Таким образом при запуске кода в jupyter он отправляется на сервер Paraview, где запущена командная строка.

Удаленный доступ с Jupyter реализуется средствами ВПН [12]. Для подключений кластеру необходимо через ВПН сервер войти в сеть, в которой находится кластер и ввести в браузере адрес и порт, на котором на кластере запущен Jupyter NoteBook.

Как уже было сказано выше, ParaView обладает лишь командной строкой и нуждается в интерфейсе, с помощью которого будет происходить взаимодействие с пользователем. Было решено написать библиотеку, с помощью которой можно управлять Paraview, и получать доступ к внутренним переменным. Для написания библиотеки было решено использовать Python, для подключения к Python-надстройки в Paraview, и через неё осуществлять доступ. Данная библиотека должна содержать методы по управлению основными функциями Paraview, которые используются в аэрогидромеханике и повседневными функциями управления источниками и отображениями. Все переменные и методы должны иметь привычные имена, как в графическом интерфейсе, для повышения удобства использования. Также в библиотеку добавлен функционал, расширяющий возможности Paraview. Сама библиотека может быть расширена и дополнена пользовательскими скриптами.

Заключение

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

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

 

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

  1. Ross Bonallo Post-processing Techniques for Smoothed Particle Hydrodynamics      Master Thesis - 2015
  2. Python Software Foundation. Python reference. http://www.python.org - 2020
  3. Data visualization library. Seaborn reference. https://seaborn.pydata.org - 2020
  4. D. Hunter. Matplotlib: A 2d graphics environment. Computing In Science & Engineering, 9(3):90–95 - 2007
  5. MATLAB. version 9.8.0 (R2020a). The MathWorks Inc., Natick, Massachusetts - 2020
  6. U. Ayachit. The ParaView Guide: A Parallel Visualization Application. Kitware -2020
  7. W. Schroeder, K. Martin, B. Lorensen. The Visualization Toolkit (4th ed.). Kitware - 2006
  8. Graphics view framework. Qt reference. https://www.qt.io - 2020
  9. Programming language. C++ reference. https://isocpp.org -2020
  10. Jupiter Lab. Jupyter reference. https://jupyter.org - 2020
  11. Software lifecycle axelerator. Gitlab reference. https://gitlab.com - 2020
  12. Numerical computing with Python. Numpy reference. https://numpy.org/about/ - 2020

Комментарии (1)

# Диас Бидахметов 22.11.2021 13:25
Спасибо.

Оставить комментарий