Диссертация (1149463), страница 11
Текст из файла (страница 11)
По выбранным начальным параметрам и заданной структуре, программный комплекс создает корректный исходный файлна языке FOX для COSY Infinity и добавляет его в очередь на выполнение.Диспетчер процессов выбирает из очереди готовые к выполнению задачи ипередает на конкретный вычислительный узел для выполнения; в случаеуспешного завершения процесса данные сохраняются в базе данных.После моделирования движения в ускорителе программный комплекспредоставляет средства анализа данных, траектории движения могут бытьграфически представлены в виде фазового портрета, часто используется Фурье анализ для частотного анализа данных.
Пользователь, изучивпроанализированные данные, может поменять параметры ускорителя (из80Задание параметров равновесной частицымасса заряд энергия гиромагнитное соотношениеРазработка структуры ускорителявычисление характеристик частот хроматичностейЗадание начального распределения пучка частицВычисление траекторий движения частиц в пучкеАнализ данных визуализация фазового пространства,нахождение частот, вычисление SCTОценка полученных результатов вручную илиавтоматически по заданным критериямИзменение параметров структурыПолучение оптимизированнойструктурыРис.
3.1. Схема вычислительного экспериментаменить силу квадруполей, секступолей, частоту ВЧ-станции и т.п.) и повторить эксперимент. Кроме того, система RSX позволяет изменять параметры структуры ускорителя и проводить анализ данных автоматически,графически представляя зависимость полученных данных от измененного параметра. Автоматический подбор параметров используется для оптимизации структуры, максимизации или минимизации требуемых величин.Например при разработке структуры электростатического ускорителя дляэксперимента по поиску ЭДМ требуется повысить время декогеренции спи81на SCT, что может быть сделано подбором секступольных компонент вповоротных дефлекторах.Схема проведения вычислительного эксперимента при разработке структуры ускорителя представлена на рис. 3.1.ПользовательВеб интерфейсЯдроДиспетчер задачБлок анализаданныхБаза данныхFDSБлоки численного моделированияРабочиймодульРабочиймодульРабочиймодульРис.
3.2. Структура комплекса RSXСтруктура вычислительного комплекса. Пользователь взаимодействует с программным комплексом при помощи веб-браузер через графический веб-интерфейс. Веб-интерфейс разработан с использованием современных технологий, таких как Django, XHTML, CSS, AJAX, jQuery. В качестве веб-сервера может быть использован любой сервер с поддержкойWSGI, например lighttpd. Веб-интерфейс взаимодействует с ядром программного комплекса по распространенной модели взаимодействия ModelView-Controller.
Далее приведено подробное описание структуры разработанного комплекса программ. Структура программного комплекса представлена на рис. 3.2.82Ядро системы состоит из диспетчера задач, блока анализа данных и сервера распределения файлов (File Distribution Service — FDS). Каждое действие пользователя, требующее численного моделирования, является задачей (task) ядра, диспетчер задач сортирует задачи по приоритету и распределяет задачи по рабочим модулям (engine). Рабочими модулями могутявляться любые машины, на которые установлен специальный сервис обработки задач. При первом обращении к рабочему модулю происходит компиляция из исходных кодов COSY Infinity — вычислительного ядра, затемкомпиляция пакета для моделирования динамики пучков COSY.bin.
Послекомпиляции вычислительного ядра рабочий модуль готов к выполнениюзадач, состоящих из исходного FOX-файла и метаданных, описывающихтребуемое для выполнения количество процессоров, входные и выходныеданные.Рабочий модуль при завершении вычислительной задачи отправляетрезультаты выполнения диспетчеру задач, диспетчер проверяет корректность выполнения и добавляет результат в базу данных. Все выполненныезадачи сохраняются для последующей обработки и предоставляются по запросу пользователя. Если виртуальный эксперимент был проведен ранее,то при необходимости результаты эксперимента будут извлечены из базыданных, без проведения повторного численного моделирования.После проведения численного моделирования данные, полученные отрабочего модуля, могут быть обработаны.
Обработка данных заключаетсяв фильтрации и анализе данных. Фильтрация требуется чтобы исключитьиз рассмотрения нестабильные частицы с траекториями не попадающимив физическую апертуру канала. После фильтрации данные анализируютсятребуемым образом в зависимости от эксперимента, например проводится частотный анализ с целью поиска орбитальных или спиновых частот.Обработка данных и численное моделирование в некоторых случаях могутвыполняться одновременно.83В качестве языка программирования выбран Python [84] — высокоуровневый язык программирования, широко используемый для многих задач,таких как анализ данных, разработка веб-сайтов и графических интерфейсов. Язык имеет простой синтаксис, поддерживает объектно-ориентированную парадигму программирования (ООП), большое количество стороннихбиблиотек для анализа и визуализации данных.
Python входит в большинство дистрибутивов Linux, поэтому рабочие модули не требуют установкидополнительного программного обеспечения.Интерфейс программного комплекса. Для унификации доступак системе был разработан веб-интерфейс, предоставляющий пользователю возможность использовать комплекс RSX при помощи современныхбраузеров.
Такой подход позволяет одинаково поддерживать все операционные системы, в т.ч. Microsoft Windows, GNU/Linux, Apple MacOS, приналичии браузера с поддержкой XHTML и JavaScript. Для разработкивеб-приложений на языке программирования Python существует множество инструментариев, например Pylons [83], TurboGears [106], Zope [113],Twisted [65], CherryPy [27], Django [35] и многие другие. С учетом специфики требований комплекса RSX для разработки был выбран инструментарий Django. Этот инструментарий является одним из самых популярныхсредств разработки веб-сайтов для языка Python, он представляет собой реализацию концепции Model-View-Controller (MVC), имеет встроенный интерфейс управления пользователями, абстрагирует доступ к базе данных,поддерживает кэширование запросов, хорошо документирован.Концепция Model-View-Controller была предложена в 1979 году [85];она часто используется при разработке программ с графическим интерфейсом и заключается в разделении модели данных приложения (Model),пользовательского интерфейса (View) и взаимодействия с пользователем(Controller).
Контроллер модели MVC соответствует представлению (View)84модели Django, логика представления модели MVC соответствует шаблонам (Template) модели Django. Каждая страница интерфейса, с которойвзаимодействует пользователь, является отображением шаблона Django.Например, пучок частиц является моделью Django, а страница с визуализацией фазового пространства есть отображение шаблона.Встроенный интерфейс управления пользователями позволяет обеспечить разделение рабочих пространств пользователей, чтобы каждый пользователь имел доступ только к своим виртуальным экспериментам. Крометого, администратор системы имеет возможность добавить дополнительные вычислительные узлы в систему, ограничить количество используемыхпроцессоров пользователями.В Django реализована технология Object-relational-mapping (ORM, объектно-реляционное отображение), связывающая объекты языка Python иих представление в базе данных.
Таким образом, разработчик, использующий методы объектно-ориентированного программирования, получает возможность сохранять объекты ООП в базе данных без затрат на написаниекода. Каждая модель Django (структура ускорителя, пучок, начальное распределение частиц, виртуальный эксперимент) является классом Python,что значительно упрощает разработку системы.Страницы интерфейса RSX используют XHTML 1.0 [107] в качествеязыка разметки, а интерактивные элементы, такие как формы, ползунки,кнопки, разворачивающиеся списки, для работы используют библиотекуjQuery [105].
Библиотека jQuery используется для разработки интерактивных веб-страниц на языке JavaScript, предоставляя функции, не привязанные к конкретному браузеру и платформе. Таким образом обеспечивается кросс-платформенность интерактивных элементов интерфейса, чтоподтверждается проведенным тестированием на различных браузерах дляразличных операционных систем.85Для обмена данными между браузером пользователя и веб-серверомприменяется технологии Ajax (Asynchronous JavaScript and XML — асинхронный JavaScript и XML) — фоновый обмен данными с сервером безперезагрузки страницы. Этот подход позволяет повысить скорость работыинтерфейса и уменьшает количество данных, передаваемых по сети. В качестве примера использования данной технологии можно привести страницу с подбором параметра структуры ускорителя в линейном приближении:при переборе параметра (длины свободного промежутка, градиента квадруполя) в пределах от a до b с интервалом (b − a)/N клиентская частьотправляет в фоновом режиме N запросов и, при получении результатоврасчетов, представляет пользователю зависимость характеристики ускорителя (бетатронные частоты, хроматичности, и т.д.) в реальном времени безперезагрузки страницы.Для использования системы пользователь должен быть успешно аутентифицирован, аутентификация пользователя происходит на первом шаге работы с системой.