Введение

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

В мире существует большое количество способов построения распределённых моделей для решения вышеперечисленных задач. Это такие, как GRID-технологии, кластерные системы, параллельные программы с использованием библиотек MPI и OpenMP, а так же такие технологии от Microsoft как COM и DCOM, CORBA, OLE и ActiveX.

В магистерской работе сделана ставка на DCOM и решение дифференциальных уравнений.

Постановка задачи (актуальность, цели)

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

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

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

Анализ задачи

Имеется уравнение вида:

y' = f(x, y)
y(x0) = y0

Это простое дифференциальное уравнение первого порядка с одним начальным условием. Под его численным решением имеется ввиду определение кривой через её производную в координатной плоскости XY. В общем случае уравнению удовлетворяет семейство кривых, а начальное условие позволяет выбрать из семейства кривых лишь одну кривую, которая проходит через заданную точку. Решением будет функция вида y=f(x), а численное значение функции определяется выбором аргумента и нахождением численного значения функции.

Существует два широких класса методов решения:

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

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

Программная модель

Программная модель представлена в виде DCOM архитектуры. Главный процесс (выполняется на сервере), принимает исходные данные от пользователя, предварительно обработав их. Затем он создаёт заданное пользователем количество дочерних процессов или клиентов, которые будут решать поставленную задачу, будь то целое дифференциальное уравнение или его часть, всё зависит от степени зернистости, выбранной пользователем. Главный процесс пересылает исходные данные, дочерние процессы производят операции и возвращают результат. По полученному результату вычисляется точность решения, если метод позволяет сделать такую оценку, и при необходимости процесс вычислений повторяется. Результат вычислений визуализируется в программной оболочке сервера.

На рисунке 1 приведена такая модель решения задачи.

Рис. 1. Модель распараллеливания задачи
Рис. 1. Модель распараллеливания задачи (10 кадров, 17 сек (3 + 1,25*8 + 4), анимация)

Реализация компонентной системы происходит за счёт open-source библиотеки GALA для среды разработки в Delphi.

Выполненные и планируемые разработки и исследования

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

На настоящий момент готово следующее:

Планируется проводить следующие разработки и исследования:

Заключение

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

В дальнейшем можно продолжить разработку этого проекта и перенести её на другие платформы, такие как UNIX, Macintosh. Этим занимаются иностранные производители, например фирма The Open Group.

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

Литература

  1. Э. Таненбаум, М. ван Стеен.
    Распределенные системы. Принципы и парадигмы.
  2. Решение систем обыкновенных дифференциальны уравнений.
  3. В.П. Гергель, Р.Г. Стронгин.
    Основы параллельных вычислений для многопроцессорных вычислительных систем. Учебное пособие. Нижний Новгород, 2003 г.
  4. Елманова, Трепалин, Тендер.
    Delphi и технология COM.
  5. Электронный справочник по интерфейсам, структурам и функциям, используемым в технологии COM.
  6. А.И. Миков , Е.Б. Замятина.
    Распределенные системы и алгоритмы.
    Курс, посвящённый распределённым алгоритмам, решающих задачи для распределённых систем.
  7. В.А. Крюков.
    Операционные системы распределенных вычислительных систем (распределенные ОС).
  8. William Woolsey Johnson.
    A treatise on ordinary and partial differential equations.