Диссертация (1149463), страница 12
Текст из файла (страница 12)
При работе с системой пользователь должен задать параметры равновесной частицы, т. е. массу, энергию, заряд, аномальный магнитный момент. После задания параметров пользователь создает структуру ускорителя, используя язык описания ускорителя, представленный в Приложении A. Для удобства пользователя также разработанмодуль подсветки синтаксиса языка описания ускорителя для библиотекиCodeMirror [51]. При помощи CodeMirror реализовано поле ввода структуры ускорителя, что позволяет использовать подсветку процедур и управляющих конструкций.
При создании структуры допускается использованиесвободных параметров элементов, например потенциал квадруполя можетбыть обозначен за Q_STRENGTH, который будет являться свободным параметром. Значение свободных параметров структуры указывается отдельно (см. рис. B.19).86Далее система позволяет вычислить параметры ускорителя в линейномприближении, такие как длину, бетатронные, синхротронные и спиновыечастоты, хроматичности и другие величины. Кроме того, может быть построен график зависимости какой-либо величины ускорителя в зависимости от свободного параметра, например, на рис. B.20 представлена зависимость бетатронных частот νx , νy от параметра Q_STRENGTH. Полученные графики могут быть использованы для выбора оптимальной структуры кольца.После подбора необходимых параметров система RSX позволяет провести моделирование движения частиц в созданном ускорителе.
Для этогопользователь задает начальное распределение частиц в пучке, а также параметры моделирования, такие как порядок нелинейности при построенииматричных отображений, количество оборотов, метод симплектификации.Для моделирования система RSX создает файл для COSY Infinity наязыке FOX и отправляет на выполнение свободному рабочему модулю. Вслучае, когда число частиц в начальном распределении превышает задаваемый пользователем максимум, система разбивает файл на несколькочастей и отправляет их разным рабочим модулям. Таким образом большиевычислительные задачи выполняются параллельно на нескольких рабочихмодулях.
Кроме того, COSY Infinity не позволяет моделировать большоеколичество частиц одновременно из-за ограничений, связанных с распределением памяти. В случае успешного завершения вычислительных процессов происходит обработка и визуализация данных, что рассматриваетсяв разделе 3.5.Более подробное описание интерфейса программы приводится в Приложении B, там же приведены снимки экрана работающей системы.Рабочий модуль. Непосредственно компьютерное моделирование выполняется при помощи рабочих модулей. Каждый модуль представляет из87себя программу на языке Python 2.6, которую можно установить на большинство компьютеров под управлением ОС GNU/Linux.
На рис. 3.3 представлена схема рабочего модуля.Рабочий модульБлок доступак файламСетевой интерфейсдоступа к файламFDSЛокальное файловоехранилищеИнтерфейсуправленияДиспетчерзадачПроцессчисленногомоделированияЯдро RSXПроцессчисленногомоделированияРис. 3.3. Схема рабочего модуля RSXРабочий модуль имеет сетевой интерфейс управления, через которыйпередаются вычислительные задачи, а также происходит обмен файлами.Сетевой интерфейс для обмена данными использует библиотеку RpyC [44],которая предоставляет протокол удаленного выполнения процедур (RemoteProcedure Call — RPC).
Полученные через интерфейс управления задачисодержат файлы на языке FOX, которые сохраняются в локальном файловом хранилище. После получения задач через сетевой интерфейс они обрабатываются диспетчером задач. Диспетчер задач управляет очередностьювыполнения полученных задач в зависимости от приоритета и запрошенного количества процессоров. При установке рабочего модуля указываетсямаксимальное разрешенное для использования количество процессоров, а88каждая задача запрашивает у диспетчера число потоков, которые она будет использовать.При наличии свободных процессоров рабочий модуль отправляет задачу на выполнение.
Для этого создается временная директория, в которую из локального файлового хранилища копируются интерпретаторCOSY Infinity, пакет cosy.fox, а также другие файлы при необходимости.Если требуемый файл отсутствует в локальном хранилище, то отправляется запрос на сервер распределения файлов и требуемый файл копируетсяпо сети. После создания директории со всеми требуемыми файлами запускается COSY Infinity. Результаты выполнения сохраняются в локальноехранилище, а временная рабочая директория удаляется.
Информация озавершении выполнения отправляется ядру комплекса RSX.Сервер распределения файлов. Если система содержит несколько рабочих модулей, то необходимо обеспечить доступ всех рабочих модулей к используемым файлам. Для хранения результатов моделирования идругих файлов используется сервер распределения файлов (File distributionservice — FDS). FDS представляет собой сервер, содержащий информациюо всех файлах и их местоположении в системе.Например, после окончания компьютерного моделирования файл с результатами хранится на модуле A.
Для использования этих результатовмодуль B запрашивает у FDS расположение файла и получает сетевой адрес интерфейса управления модулем A. После определения сетевого адресамодуль B копирует запрошенный файл в локальное хранилище.Один и тот же файл (например, исполняемый файл COSY Infinity) может храниться несколькими рабочими модулями. Файлы различаются поключевой сумме MD5.База данных.
Все структуры ускорителей, начальных распределенийчастиц, результатов выполнения задач, создаваемых пользователем, сохра89няются в единой базе данных. В качестве базы данных используется реляционная СУБД PostgreSQL [76].Перед анализом структуры ускорителя происходит проверка наличиятакой структуры в базе данных. Если структура анализировалась ранее,то повторный анализ не происходит, а система использует сохраненные ранее данные. Таким образом значительно ускоряется анализ ускорителя припоиске оптимальной структуры при помощи подбора свободных параметров.Также в базе данных содержатся ссылки сервера распределения файлов.3.4Параллельное выполнение процессовКомпьютерное моделирование длительной эволюции пучков в цикличе-ских ускорителях является сложной вычислительной задачей.
Вычислениематричных отображений с учетом нелинейности высоких порядков занимает длительное время. Например, вычисление матричного отображенияседьмого порядка электростатического ускорителя с включенным расчетомкраевых полей занимает более щести часов процессорного времени.COSY Infinity позволяет сохранять отображения в файл, и загружатьиз файла при необходимости. Таким образом для моделирования движенияпучков частиц с различными начальными распределениями можно избежать повторного построения отображения. Однако же при изучении спиновой динамики матрицы спинового отображения не могут быть сохраненыв файл и загружены. Для решения этой проблемы в пакет моделированиядинамики пучков cosy.fox были включены соответствующие процедуры работы с отображениями спина.
При моделировании спин-орбитальной динамики программный комплекс RSX сохраняет все полученные отображения90в базу данных и, при необходимости повторного использования (например,при моделировании движения разных пучков в одной и той же структуре),не строит матричное отображение заново. Таким образом многократно повышается скорость и удобство проведения компьютерных экспериментов,особенно при проведения моделирования с учетом высоких порядков нелинейности.Также COSY Infinity поддерживает параллельное выполнение на архитектурах MPI (Message Passing Interface) [30]. MPI является стандартом высокопроизводительных вычислений, различные реализации стандарта поддерживаются большинством суперкомпьютерных кластеров. MPI предоставляет набор процедур для передачи сообщений между вычислительными процессами, выполняющимися в гомогенной среде. Пакет COSY Infinityсодержит команду PLOOP.
. . END PLOOP для одновременного выполнения циклов на нескольких MPI-процессах. Эта команда может использоваться для параллельного вычисления матричных отображений. Для этого необходимо разбить задание структуры на части, которые будут выполняться разными процессами, и объединить полученные отображения вматричное отображение всего кольца. Например, код для параллельноговычисления отображения ФОДО-структуры, приведенной в конце Приложения 1, может выглядеть следующим образом:PLOOP I 1 NP;{ NP - количество процессов}IF I=1;{ код для выполнения процессом 1}UM; MQ 0.2 0.3 0.05;{ единичная матрица и квадруполь}DL 0.1;{ свободный промежуток}magnetic_bend 15 10 0.05;{ поворотный магнит}DL 0.1;{ свободный промежуток}SMM MAPS I;{ сохранить матрицу в MAPS(*,I)}ENDIF;91IF I=2;{ код для выполнения процессом 2}UM; MQ 0.4 -0.3 0.05;{ единичная матрица и квадруполь}DL 0.1;{ свободный промежуток}magnetic_bend 15 10 0.05;{ поворотный магнит}DL 0.1;{ свободный промежуток}MQ 0.2 0.3 0.05;{ квадруполь}SMM MAPS I;{ сохранить матрицу в MAPS(*,I)}ENDIF;ENDPLOOP MAPS;{ переменная MAPS доступна всем процессам }IF is_root=1; UM;LOOP I 1 NP;{ код для выполнения процессом 1}{ применение последовательно матриц }PMM 6 MAPS I; AMM MAPS I;{ частей структуры MAPS(*,i)}ENDLOOP;}{ и получение матрицы всего кольцаENDIF;Написание такого рода кодов вручную затруднительно, поэтому системаRSX позволяет автоматически создавать код для выполнения на MPI версиях COSY Infinity.