Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка_ПСП_Градиентный спуск C# Клиент-Сервер.docx
Скачиваний:
23
Добавлен:
03.02.2019
Размер:
477.82 Кб
Скачать

3 Программный комплекс для решени нелинейных алгебраических уравнений методом натуральных градиентов

3.1 Руководство пользователя

3.1.1 Сервер. Корректное содержимое файла ip_address.xml для задания ip-адресов вычислительных компьютеров, показано на рисунке 3.1. Из рисунка видно, что ip-адреса заключены в тэги ip, а значения портов – в тэги port.

Рисунок 3.1 – Корректные данные из xml-файлa с IP-адресами

Запуск серверной части выполняется через исполняемый файл server.exe. После чего на экране открывается окно, которое показано на рисунке 3.2. Окно содержит элементы управления: кнопки для решения линейным и распределенным способом нелинейных алгебраических уравнений методом натуральных градиентов, подписи, поясняющие назначение полей, поле ввода точности приближенного решения eps, поле для вывода невязки, поле для вывода промежуточных решений x, поле для отчета в правой части окна.

Рисунок 3.2 – Запущенное приложение серверной части (server.exe)

Для загрузки системы нелинейных уравнений в программу необходимо выполнить пункт меню Файл → Открыть и выбрать текстовый файл, содержащий систему нелинейных уравнений, как показано на рисунке 3.3.

При выборе файла неверного формата система уведомит пользователя об этом. Файл, содержащий систему нелинейных уравнений, должен быть в формате txt.

Риуснок 3.3 – Загрузка тестового решения из текстового файла

После открытия в окне отчёта отобразится выбранный текстовый файл. В каждой строчке которого содержаться слагаемые члены выражения, составляющие нелинейное уравнение, как показано на рисунке 3.4.

При большом количестве переменных, данные в полном объеме можно посмотреть с помощью опускания вниз полосы прокрутки.

Рисунок 3.4 – Вывод в форму загруженных для решения уравнений

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

Кнопка «Решить (линейно)» служит для получения решения, которое вычисляется локально на одном компьютере, применяя последовательные вычисления. После нажатия на эту кнопку произойдет решение системы нелинейных уравнений методом натуральных градиентов в соответствии с входными параметрами (тестовым файлом, предварительно сгенерированным и загруженным в программу). Помимо вычисления неизвестных х так же выводится невязка функции (сходимость).

Так же индикатор, свидетельствующий о статусе решения изменяется в зависимости от результата: на экран будет выведено уведомление о том, что решение найдено или с какой итерации началось расхождение.

Подпись «Время работы: 7 мс» показывает время выполнения последовательного расчета системы нелинейных уравнений методом натуральных градиентов. Поле, где отображается время, засекаемое при распределенном решении, в этот момент остается без изменений.

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

Результат последовательного решения показан на рисунке 3.5.

Рисунок 3.5 – Вывод результата решения нелинейных уравнений последовательно в приложении server

Для распределенного решения необходимо:

− запустить два клиентских приложения на различных компьютерах (либо для тестирования запустить два клиентских приложения локально на одном компьютере) и переключить их в режим ожидания получения данных для произведения решения нелинейных алгебраических уравнений методом натуральных градиентов. После чего необходимо также загрузить систему нелинейных уравнений из xml-файла в программу, либо использовать уже загруженную задачу:

− обеспечить правильное задание ip-адресов и портов передачи данных в xml-файле;

− нажать кнопку «Решить (распределено)».

В ходе решения программа составляет отчёт о передаче/получении информации при обмене с клиентами.

В разработанном приложении для вычисления значений функции в системе нелинейных алгебраических уравнений методом натуральных градиентов распараллеливается расчет Якобиана, в собранном виде который передаётся в поле отчёта, которое располагается справа.

Так же в поле отчёта записывается сама система нелинейных алгебраических уравнений, загруженная из txt-файла. Файл так же, как и при линейном решении, может состоять из неизвестных переменных и тригонометрических функций, записанных через пробел. Отчет, составленный программой в результате решения изображен на рисунке 3.6.

Рисунок 3.6 – Вывод результата решения нелинейных уравнений распределенно

3.1.2 Клиент. После запуска приложения client.exe, открывается окно, которое изображено на рисунке 3.7. Окно содержит: поле для ввода номера порта связи (по умолчанию в поле записан номер порта 11000); кнопку «Готов» (нажатие которой переводит клиент в режим ожидания и получения задания от сервера); поле «Данные» (содержащее отчётную информацию о работе клиента).

Рисунок 3.7 – Запущенное приложение клиентской части (client.exe)

После подключения сервера к клиенту, приложение получает:

− размерность системы;

− систему нелинейных уравнений;

− промежуточное решение (вектор неизвестных).

В зависимости от номера порта, сервер делит размер матрицы на две равные или неравные части. Первому клиенту достается равная или меньшая часть матрицы для расчета. Второму клиенту достается равная или большая часть матрицы для расчета – это зависит от четности размерности матрицы. Из рисунка 3.8 видно, что первому клиенту досталась меньшая часть матрицы, а точнее одна строка w0 для расчета.

Риуснок 3.8 – Вывод результата решения в клиентской части программного комплекса (построения части матрицы Якобиана)