Организация программной системы PRADIS//FRONT

Программная система PRADIS//FRONT состоит из серверной и клиентской частей. Серверная часть системы реализует следующие основные функции:

 инициализация приложения;

 поддержка файлов, с помощью которых осуществляется обмен данными с клиентской частью;

 поддержка очереди заданий для клиентов;

 синхронизация работы;

 выдача клиентам заданий для расчета;

 прием от клиентов результатов расчета;

 реализация генетического алгоритма;

 формирование файла результата.

Клиентская часть системы реализует следующие функции:

 поддержка работы программного комплекса PRADIS;

 запуск PRADIS для расчета;

 получение от PRADIS результатов расчета;

 прием от серверной части заданий на расчет;

 передача серверной части результатов расчета.

В системе PRADIS//FRONT определено два типа сообщений. Сообщения, посылаемые сервером и принимаемые клиентами, имеют формат

<Номер задачи для расчета>,

а сообщения, посылаемые клиентами и принимаемые сервером, - формат

<Номер рассчитанной задачи> + <ID процессора> + <Результаты расчета>.

Для синхронизации серверной и клиентских частей перед началом обмена сообщениями используется барьерная синхронизация (с помощью вызова MPI_Barrier (MPI_COMM_WORLD)).

6.1. Серверная часть системы. Сервер назначает задания клиентам по одному. Благодаря этому, при сбое в работе одного из клиентов пропадает лишь то задание, которое данный клиент обрабатывал в момент сбоя.

Для формирования заданий, сервер использует шаблон задания, в котором варьируемые параметры заменены специальными символами. Формирование заданий в серверной части системы выполняет функция replaceFiles(). Функция формирует необходимое количество заданий, сохраняя каждое из них в отдельном файле. Имена файлов формируются следующим образом: к имени файла, в котором находится шаблон задания, добавляется постфикс «_multi_» и <номер задания>. Если, например, имя файла шаблона есть test_multi.psl, то идентификатор файла задания номер 97 выглядит как test_multi_multi_97.psl.

После того как все файлы с заданиями сформированы, сервер начинает выполнять только диспетчерские функции: раздает номера заданий клиентам; получает от них результаты расчетов и сохраняет их в буфере FunctionValues.

После завершения обработки клиентами всех заданий и приема сервером всех результатов обработки, сервер с помощью функции SetMainObject осуществляет обработку данных из буфера FunctionValues: отбрасывает номера заданий и ID процессоров, упорядочивает результаты расчета в соответствии с номерами заданий и записывает результаты в массив funcSets, представляющий собой поле класса FunctionStudy. Затем сервер реализует одну итерацию генетического алгоритма.

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

В памяти каждого клиента содержится объект многовариантного анализа FunctionStudyMPI, у которого есть поля параметров и поля результатов расчета.

Запуск PRADIS осуществляет функция системы RunSingle(int n), где n – номер задания для расчета. В первую очередь функция RunSingle(…) формирует имя соответствующего файла задания. Сформированное имя файла служит аргументом для вызова функции решателя solver->Run(filename).

Программный комплекс PRADIS дает возможность использовать задания, написанные на языках PSL, PPL (Python), а также задания в формате схем предпроцессора Qucs. Для каждого из способов требуется запускать свою часть решателя. Функция solver->Run(filename) автоматически запускает требуемый решатель (в зависимости от расширения имени файла, указанного в ее аргументе). В настоящей версии программной системы PRADIS//FRONT реализован запуск заданий только на языке PSL.

Результаты своей работы PRADIS записывает в выходной файл. Для примера, рассмотренного в п. 6.1, этот файл имеет имя test_multi_multi_97.psl.dat.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: