- •Введение
- •1 Средства для решения задач нелинейных алгебраических уравнений в распределенной вычислительной среде
- •1.1 Понятие распределенных вычислений как способа решения трудоёмких вычислительных задач с использованием нескольких компьютеров
- •1.2 Распределенные вычисления на основе стека
- •1.3 Понятие клиент-серверных систем
- •1.4 Методы и их модификации для решения систем нелинейных уравнений
- •2 Алгоритмы и методы для решения нелинейных алгебраиеских уравнений на основе метода натуральных градиентов
- •2.1 Техническое задание для написания программы для решения систем нелинейных алгебраических уравнений методом натуральных градиентов
- •2.2 Aлгоритм метода натуральных градиентов
- •2.3 Алгоритмы линейного и распределенного решения
- •2.4 Алгоритм синтаксического анализатора, разработанного на основе обратной польской записи
- •2.5 Математическая модель распределенного вычисления Якобиана отображения
- •2.6 Описание основных функций клиент-серверного приложения
- •3 Программный комплекс для решени нелинейных алгебраических уравнений методом натуральных градиентов
- •3.1 Руководство пользователя
- •3.2 Результат исследование зависимости времени нахождения решения от размерности системы и способа решения
- •Заключение
- •Список использованных источников
- •Приложение а
- •Код сервеной части
- •Приложение б
- •Код клиенткой части
- •Приложение в
- •Данные из тестовых файлов
- •Приложение г
СОДЕРЖАНИЕ
1 Средства ДЛЯ решения задач нелинейных алгебраических уравнений в распределенной вычислительной среде 5
1.1 Понятие распределенных вычислений как способа решения трудоёмких вычислительных задач с использованием нескольких компьютеров 5
1.4 Методы и их модификации для решения систем нелинейных уравнений 12
2 алгоритмы и методы для решения нелинейных алгебраиеских уравнений на основе метода натуральных градиентов 14
2.1 Техническое задание для написания программы для решения систем нелинейных алгебраических уравнений методом натуральных градиентов 14
2.2 Aлгоритм метода натуральных градиентов 14
2.3 Алгоритмы линейного и распределенного решения 15
2.4 Алгоритм синтаксического анализатора, разработанного на основе обратной польской записи 16
2.5 Математическая модель распределенного вычисления Якобиана отображения 18
2.6 Описание основных функций клиент-серверного приложения 20
3 Программный комплекс для решени нелинейных алгебраических уравнений методом натуральных градиентов 23
3.1 Руководство пользователя 23
3.2 Результат исследование зависимости времени нахождения решения от размерности системы и способа решения 28
Введение
Решение нелинейных уравнений является актуальной темой, так как находит применение повсеместно в нелинейной оптике, физике плазмы, теории сверхпроводимости и физике низких температур.
Решение многих задач сводится к поиску большого количества неизвестных, описывающих тот или иной процесс. Ускорить вычислительные процессы, можно лишь разделив задачу на более мелкие подзадачи, которые можно решить параллельно, то есть распределить решение на несколько компьютеров.
Необходимость разработать программу для решения нелинейных алгебраических уравнений на основе метода натуральных градиентов возникла ввиду необходимости автоматизирования процесса решения заданным методом. В открытом доступе, в интернете, достаточно онлайн-сервисов для решения нелинейных уравнений, но отсутствуют сервисы и программные средства для решения нелинейных уравнений методом натуральных градиентов.
Исходя из того, что необходимых программных средств нет, было принято решение разработать клиент-серверное приложение, которое будет предусматривать возможность ввода из текстового файла, обеспечивать решение системы уравнений большого количества неизвестных, будет иметь возможность задания ip-адресов вычислительных узлов в файле, а так же давать актуальную информацию о скорости распределенного и последовательного (линейного) решения. Для коммуникации использовались средства TCP/IP. Разработка велась на языке программирования C#.
1 Средства для решения задач нелинейных алгебраических уравнений в распределенной вычислительной среде
1.1 Понятие распределенных вычислений как способа решения трудоёмких вычислительных задач с использованием нескольких компьютеров
Распределённые вычисления – это способ решения трудоёмких вычислительных задач с использованием нескольких компьютеров, чаще всего объединённых в параллельную вычислительную систему. Распределённые вычисления применимы также в распределённых системах управления.
Последовательные вычисления в распределённых системах выполняются с учётом одновременного решения многих задач. Особенностью распределённых многопроцессорных вычислительных систем, в отличие от локальных компьютеров, является возможность неограниченного наращивания производительности за счёт масштабирования.
Слабосвязанные, гетерогенные вычислительные системы с высокой степенью распределения выделяют в отдельный класс распределённых систем – грид (форма распределённых вычислений, в которой «виртуальный компьютер» представлен в виде кластеров, соединённых с помощью сети, слабосвязанных гетерогенных компьютеров, работающих вместе для выполнения огромного количества заданий).
Грид является географически распределённой инфраструктурой, объединяющей множество ресурсов разных типов (процессоры, долговременная и оперативная память, хранилища, базы данных, сети), доступ к которым пользователь может получить из любой точки, независимо от места их расположения.
Распределённые, или грид-вычисления, в целом являются разновидностью параллельных вычислений, которое основывается на обычных компьютерах (со стандартными процессорами, устройствами хранения данных, блоками питания и так далее), подключенных к сети (локальной или глобальной) при помощи обычных протоколов, например Ethernet. В то время как суперкомпьютер содержит множество процессоров, подключенных к локальной высокоскоростной шине.
Поскольку в качестве узлов системы могут выступать процессы, под приведенное определение подпадают также и программные системы, представляющие собой совокупность взаимодействующих процессов, выполняемых на одном и том же вычислительном устройстве. В этой ситуации каналы взаимодействия, осуществляющие передачу сообщений между процессами, реализуются с помощью разделяемой памяти вместо сети связи.
Однако в большинстве случаев в распределенной системе все же содержится несколько процессоров, взаимосвязанных друг с другом при помощи средств коммуникации.