Платформа GPUDigitalLab o_gubanov's blog / 28.10.2016 Вас приветствует коллектив компании «Аксиома». Меня зовут Губанов Олег Игоревич, и в данный момент я занимаю должность Технического Директора и возглавляю отдел по разработке наукоемкого программного обеспечения. Основана наша компания была в 2011 году, и основной ее деятельностью была веб-разработка. В 2013 году был открыт отдел по разработке ПО в области компьютерной графики и визуализаци. Партнерами нашей компании являются ведущие образовательные и научно-исследовательские институты Уральского Федерального Округа, в частности Уральский Федеральный Университет, где мы активно работаем со специалистами Физико-Технического Института и Института Радиоэлектроники и Информационных Технологий.Самой новой разработкой нашего научно-технического коллектива является платформа математического моделирования общего назначения под названием GPUDigitalLab. Это высоко-технологичный распределенный программно-аппаратный комплекс, созданный на основе Windows Server 2012 Data-Centre, и состоящий из вычислительного центрального процессора, который отвечает за управление всеми внутренними подсистемами, а также за выполнение математических алгоритмов и моделей с заданными параметрами на Графическом Процессоре. Для работы с графическими процессорами мы используем современное решение от компании Microsoft, а именно технологию Microsoft DirectCompute. Она позволяет использовать графический процессор для решения задач связанных с выполнением вычислительных операций и операции по обработке больших данных. Алгоритмы, исполняемые на данной системе, представлены в виде вычислительных шейдеров. Шейдер – это программная конструкция, которая описывает набор операций в виде программ, исполняемых на графическом процессоре. Данная конструкция состоит из основной процедуры, которая еще именуется точкой входа и набора вспомогательных функций. Основное назначение шейдеров - это создание трехмерного изображения, выводимого на экран. Вычислительный Шейдер используется для других целей: он позволяет выполнять математические алгоритмы на графическом процессоре. Основной новизной и уникальным изобретением является то, что мы открыли возможность использования данной технологии для создания системы, где на графическом процессоре реализованы почти все основные функции программного продукта - от скоростного исполнения математических алгоритмов до создания механизмов хранения и архивации промежуточных данных.Задача поступает на выполнение нашим процессором через одни из заданных протоколов: HTTP ТСP/UDP COM Named Pipes Cloud API (REST) Программа в реальном времени отслеживает потоки данных, проходящих через указанные протоколы. При получении задачи программа принимает необходимые данные через защищенный канал связи. При передаче - данные сжимаются и передаются на внутренний уровень системы для обработки в виде архивов. Менеджер Архивов периодически получает запросы на создание и распаковку данных, а также за пересылку данных между внутренними подсистемами. Основными видами, принимаемыми для исполнения системой, являются Вычислительные Алгоритмы и Математические Модели. Вычислительный Алгоритм – это внутренняя программная конструкция, которая состоит из программы, представленной в виде вычислительного шейдера и источника данных, содержащего входные параметры для выполнения операции. Эта операция может быть как математической – выполнение вычисления, так и системной – обработка и анализ данных. Результат выполненного алгоритма сохраняется в буфер памяти и передается основному программному модулю в виде защищенного архива.Математические модели представляют собой программные конструкции, состоящие из набора вычислительных алгоритмов и набора 3D моделей, на основе которых создается визуальное представление определенного процесса. Они передаются в виде архива на модуль Математический Менеджер и разделяются на алгоритмическую и графическую часть. Алгоритмы и входные параметры к ним передаются на уровень Менеджера Алгоритмов и исполняются для генерации выходного массива. Графические модели и спецэффекты передаются нашей внутренней системе 3D визуализации Imagine3D. На выходе мы должны получить трехмерную сцену со статическими объектами и данные, необходимые для программирования трехмерной анимации. Система программирует трехмерную анимацию путем настройки процесса изменения графического изображения в зависимости от приходящих численных параметров, выполняет рендер и продакшен видео материала и представляет результат эксперимента пользователю системы.Для моделирования сложных процессов и систем мы разработали технологию вычислительных агентов. Вычислительный агент – это встроенная в основную программу разработанноая нами служба Windows, которая позволяет выполнить набор операций в отдельном защищенном процессе Win32 и передать результаты работы агента в виде массива. Windows Service или служба Windows - это закрытая программная конструкция, которая используется ОС для выполнения операций во внешнем от основной программы процессе и передает результаты основному программному модулю. Менеджер Агентов создает и уничтожает агентов по запросу, Модуль Хранения Агента отвечает за временное хранения необходимых для работы агента данных, Обработчик Событий Агента информирует основной программный модуль о состоянии запущенной операции и передает ему результаты в виде архива. Данная технология позволяет нашей системе моделировать сложные эксперименты для научно технической сферы.Развитие данной технологии мы видим в 2-х направлениях. Первый - это создание Интернет Портала, который будет предоставлять доступ к инструментам для выполнения вычислительных и экспериментальных операций за указанную стоимость. Пользователь регистрируется на портале проекта и настраивает свою панель управления путем выбора предметной области. Далее ему предоставляется линейка программных инструментов, которая позволяет решить широкий спектр научно-технических и утилитарных задач. Пользователь выбирает задачу из предоставленного списка, через специальный интерфейс заносит входные параметры и отправляет данные на обработку. После завершения операции он получает квитанцию о стоимости выполненной услуги и методах оплаты. После оплаты он получает результат вычисления в виде выходного файла заданного расширения.Вторым и основным направлением развития проекта мы видим в создании центра научно-технического моделирования. Мы являемся почетными резидентами Технопарка Высоких Технологий Свердловской Области и собираемся открыть собственный исследовательский центр, задачей которого будет создание платформы для сотрудничества научно-исследовательских институтов и промышленных предприятий региона. Данный центр будет состоять из серверной лаборатории и зала компьютерной визуализации, где визуализации проведенных экспериментов будут выводиться на плазменные панели, оснащенные датчиками захвата движения для управления объектами. Это будет высокотехнологичный комплекс, где для студентов можно будет организовывать экскурсии и лабораторные работы, а для промышленных предприятий это будет выставка достижений наших научных сотрудников. Своей же задачей мы видим поддержание данного центра в рабочем состоянии, а также разработку наукоемкого ПО. GPUDigitalLab Аксиома графика математика