1. Титульный слайд Добрый день, меня зовут Вадим Зайцев, тема моей квалификационной работы: разработка интерактивной системы визуализации данных в физических моделях. 2. Содержание Сначала я сделаю краткое введение в предметную область, поставлю цель своей работы, далее будут сформулированы требования к системе, будет сделано обзор уже существующих систем, затем будет представлена архитектура разрабатываемой системы и в конце будут сделаны выводы. 3. Введение 1 Существует два базовых вида параллелизма: крупноблочный и мелкозернистый. Крупноблочный - это широко известный вид параллелизма, имеется несколько сложных, одновременно работающих вычислительных устройств, напр., ядра одного процессора, между которыми распределяется исполнение программы. Отличительная чертой МЗП является большое число простых параллельно выполняемых преобразований данных, распределенных в пространстве. 3. Введение 2 К широко известным классам алгоритмов с МЗП относятся классический клеточный автомат и его расширения (асинхронный КА, вероятностный КА), клеточно-нейронная сеть, системы Линденмайера. Исторически первым появился КА, в последующие десятилетия появились другие классы КА: асинхронный и вероятностный. Алгоритмы и структуры с МЗП используются для моделирования процессов из различных областей естественных наук: физики, химии, экологии. Класс имитационных моделей на основе алгоритмов с МЗП получил широкое распространение для описания физических процессов. 4. Цель. Целью работы является pазработка подсистемы пользовательского интерфейса и визуализации данных среды имитационного моделирования, позволяющей создавать, исполнять и отлаживать модели физических процессов МЗП . Качественная картина вместо микроуровня. Организует исполнение моделирующих программ на кластере. Актуальности системы заключается в том, что для МЗП моделей характерен большой объём обрабатываемых данных, под большим понимается объём, значительно превышающих размер памяти одного вычислительного узла. 5. Функциональные требования Первым этапом было формирование списка требований к системе. * В первую очередь, это адекватность проблемной области: система создаётся для изучения моделей с мелкозернистым параллелизмом и должна удовлетворять тем требованиям, которые предъявляет к ней исследователь в данной предметной области. - это поддержка различных режимов визуализации (под режимом визуализации понимается функция, отображающая объект данных в изображнеие, т.п. по сути то, что увидит пользователь). Напр., при изучении поведения модели будут удобен режим визуализации осреднённых плотностей, профиль волны, направление потоков, а для формирования целостной картины удобен 3D. - для исследования модели удобным будет не только запуск на счёт большого фиксированного кол-ва итераций с последующем просмотром результата, но и пошаговое исполнение, одной или небольшого кол-ва итераций * Работа с проектами и моделями - Под моделью в системе понимается непосредственно сама физическая модель и объект данных, над которым производится счёт. Например, для модели КА свойствами будут: правила, по которым осуществляются переходы, множество состояний ячеек, масса частиц, а объектом данных - многомерная решётка ячеек. - В процессе изучения модели требуется менять ей свойства и сравнить поведение исходной модели и модифицированной, так же возникает необходимость сравнивать поведение одной и той же модели на разном объектах данных. Т.е. работать одноврменно с несколькими моделями. такие модели было бы удобно объединить в один проект с возможностью сохранения и загрузки. * Поддержка больших объёмов данных, которые, как было отмечено ранее, являются характерными для МЗП моделей. 6. Нефункциональные требования. Особенностью проблемной области является ей динамичное развитие. Невозможно реализовать поддержку всех существующих классов моделей и предсказать, какие классы появятся в дальнейшем и система должна быть способна к поддержки новых классов моделей, т.к. требуется создание универсального инструмента, способного визуализировать различные классы моделей. Потому к ней предъявлено свойство открытости, которое включает в себя: * Раширяемость: система должна быть готова к изменениям, свзяанным с включением поддержки новых, ранее не предусмотренных, режимов визуализации, форматов данных, альтернативных способов коммуникации с вычислителем или поддержка новых графических библиотек. * Интероперабельность: способность компонентов системы взаимодействовать с окружением. В первую очередь, это взаимодействие с системой моделирования. * Переносимость: реализация модулей программы не должна быть привязана к какой-либо платформе. В системе допускается привязкам отдельных реализаций некоторых компонентов к определённым платформам или технологиям, но в целом система должна оставаться платформонезависимой. * Дружественность интерфейса: - Интерфейса пользователя: графический интерфейс должен быть простым и интуитивно понятным, при этом не в ущерб функциональности. Имитационное моделирование, а значит и необходимость в средствах моделирования и визуализации, существует уже достаточно давно, поэтому следующим этапом был обзор уже существующих систем. Систем существует достаточно много, хотя немалая часть из них уже не разрабатывает и не поддерживается. Я далее представлю две, наиболее понравившееся. 8. MCell Система моделирования КА моделей MCell. Из преищмуеств можно отметить удобный, интуитивно-понятный интерфейс. Расширяемость, есть возможность добавлять собственные реализации моделей через DLL, однако возможности расширения сильно ограничены. Имеет подробную документация. Не поддерживает большие объёмы данных; поддержка только Win-платформы. 9. Fluent Система моделирования потоков жидкостей и газов. Обладает богатыми возможностями для моделирования и визуализации, расширяема пользовательскими модулями. Однако не адекватна предметной области. Да и платная к тому же. 10. Т.о. существующие системы в полном объёме не удовлетворяют _всем_ предъявленным требованиям, потому было решено разработать собственную систему визуализации. 11. Следующим этапом разработки было проектирование архитектуры создаваемой системы в соответствие с предъявленными к ней требованиями. Рассмотрим по порядку существующие в системе модули/компоненты: * Модуль взаимодействия с системой моделирования. Был разработан интерфейс для обеспечения коммуникации с вычислителем и несколько различных реализаций данного интерфейса: для локального исполнения, напр., разделяемые бибилиотеки, для удалённого - сетевая реализация данного интерфейса. Это всё удовлетворяет свойству интерпоперабельности. * Поддержка различных режимов визуализации Модуль поддержки режимов визуализации. Он включает в себя интерфейс, через реализацию которого в систему добавляется поддержка новых режимов отображения. На данный момент реализовано несколько режимов визуализации, среди которых есть режимы осреднения плотностей, трёхмерный режим. Расширяемость. * Поддержка ралзичных графических библиотек Имеется возможность добавления в систему поддержки различных графически, которые затем используются режимами визуализации. На данный момент используются графическая бибилиотеки Qt, на которой реализован пользовательский интерфейс и которая используется для рисования двумерных изображнеий. И библиотека OpenGL для рисования трёхмерных изображений. Расширяемость. * Пользовательский интерфейс Представляет из себя MDI интерфейс. 12. Пример. Открыть модель. Открыть конфиг. Запустить на счёт. Разные режимы отображения. 13. Результаты.