RUS | UKR | ENG || ДонНТУ > Портал магистров ДонНТУ Магистр ДонНТУ Морозов Роман Николаевич

Морозов Роман Николаевич

Тема выпускной работы:

Распределенные алгоритмы решения задач высокой размерности на вычислительном кластере

Научный руководитель: к.т.н. доцент Ладыженский Юрий Валентинович


Материалы по теме выпускной работы: Об авторе | Библиотека | Ссылки | Отчет о поиске | | Индивидуальный раздел

Автореферат

Введение

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

        Вычислительные кластеры (High Performance Computing Cluster) обеспечивают повышение производительности целевых приложений, если функции этих приложений — ресурсоемкие вычисления. Рост производительности напрямую связан с распределением одного вычислительного процесса по всем доступным узлам кластера.

        Свою версию кластера в 2005 году выпустила компания Microsoft. Этот продукт получил название Microsoft Windows Compute Cluster Server 2003 (WCCS 2003).Технологически Microsoft Windows Compute Cluster Server 2003 [8] базируется на стандартной версии Microsoft Windows Server 2003. В поставку продукта входят: модифицированная версия Windows Server 2003 x64 Standard Edition и пакет, называемый Compute Cluster Pack.

        Модифицированная версия Windows Server 2003 позволяет существенно снизить стоимость конечного узла, поскольку ограничивает возможность работы только в роли узла вычислительного кластера. Компоненты, входящие в Compute Cluster Pack [8], — это набор сервисов, утилит и протоколов. Этот набор представляет собой роль «вычислительный кластер» для установки на базовую операционную систему. Для специально разработанных вычислительных задач пользователи могут применять стандартную поставку WCCS 2003.

        Встроенным средством программирования на кластере является MS MPI. Message Passing Interface (MPI) — один из стандартов разработки приложений HPC.

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

Актуальность темы

       Исследование параллельного многосеточного метода Федоренко на вычислительном кластере Microsoft Windows Compute Cluster Server 2003 актуально, так как такие исследования еще не проводились.

Цель и задачи разработки и исследования

Цель работы

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

Основные задачи разработки и исследования

Главными задачами исследований является:

Предмет разработки и исследования

Предметом исследований являются технологии параллельного решения уравнений в частных производных на вычислительном кластере Microsoft Windows Compute Cluster Server 2003 с применением многосеточных методов.

Научная новизна

Данные исследования выполняются впервые в указанных условиях.

Практическое значение полученных результатов

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

Апробация работы

По результатам выполненных исследований автором сделан доклад, на международной научно-технической конференции "Информатика и компьютерные технологии" 12-15 мая 2009 состоявшейся в г. Донецке в стенах Донецкого Национального Технического Университета

Основное содержание работы

Параллельные вычисления

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

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

Одним из наиболее эффективных подходов к решению дифференциальных уравнений в частных производных является многосеточный подход. Главной особенностью является то, что решение производится сначала на грубой(крупной) сетке, а затем переносится на более мелкую сетку. Начальное решение для сетки NxN, где N – количество узлов, строится посредством аппроксимирующей сетки (N/2)x(N/2), получаемой сохранением каждого второго узла исходной сетки NxN. Более грубая сетка (N/2)х(N/2), в свою очередь, аппроксимируется сеткой (N/4)х(N/4) и так далее. Затем в частной области погрешность представляется как сумма синусоид с различными частотами. Тогда работа, выполняемая на конкретной сетке, уменьшает половину частотных компонент погрешности, для которых уменьшение не было достигнуто на более грубых сетках. Поэтому работа, производимая для усреднения решения в каждом узле сетки, делает приближенное решение глаже, что эквивалентно подавлению высокочастотных компонент погрешности.

Приближенный алгоритм решения рассмотрим на сеточном уравнении Пуассона:

Рассмотрим сеточное уравнение Пуассона на пятиточечном шаблоне разностной схемы "крест"[10]:

Формула1

и, кроме того, уравнение

Формула2

где

Формула3

Формула4

h – шаг по координатам,

u – искомое решение,

u' – приближенное решение (1),

r — невязка,

e — погрешность решения.

Если известно приближенное решение первой задачи, то, решая вторую, можно найти решение исходной системы по формуле Формула4,

но решение задачи (2) по сложности точно такое же, как и решение исходной задачи.

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

Алгоритм:

  1. Делаем несколько итераций, для нахождения решения, вычисляем невязку

    Формула4

    на мелкой сетке.
  2. На крупной сетке решаем специальное уравнение (2) для невязки в узлах, совпадающих с узлами мелкой сетки.
  3. Выполняем интерполяцию невязки на узлы мелкой сетки.
  4. Переходим на пункт 1.

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

Пример реализации много сеточного метода на трех сетках приведен на анимационном рисунке 1.

Реализации много сеточного метода

Рис1. Многосеточный метод на трех сетках (анимированный рисунок состои из 12 кадров, задержка 1,5 сек.(после последнего кадра 3 сек), сделан в Adobe ImageReady CS2 и размер 27 КВ)

Обозначения приведенного на анимированном рисунке примера:

h – шаг сетки(расстояние между двумя соседними узлами).

стрелки - решение полученных уравнений.

стрелки - интерполяция полученных значений на более мелкую сетку.

стрелки - перенос, полученных при решении, значений на более крупную (мелкую) сетку.

Описание приведенного на анимированном рисунке примера:

  1. Делаем несколько итераций на мелкой сетке h.
  2. Переносим невязку на более грубую сетку.
  3. Решаем на сетке 2h уравнение для невязки.
  4. Полученную невязку на сетке 2h переносим на сетку 4h.
  5. Решаем полученные уравнения.
  6. Переносим полученные значения на более мелкую сетку.
  7. Интерполируем значения на более мелкую сетку.
  8. Решаем на сетке 2h полученные уравнения.
  9. Переносим полученные значения на сетку с шагом h.
  10. Интерполируем полученные значения.
  11. Решаем полученные уравнения на сетке h.

Типичные топологии связей

Для реализации многосеточных методов на вычислительном кластере можно использовать несколько типичных топологий связей:

Для удобной реализации программной системы решения многосеточных методов необходимо использовать объектно-ориентированный подход. В данной программной системе основными объектами будут являться сеточные уровни, то есть каждая сетка – отдельный объект. Такое представление делает легким реализацию связей в пределах одной сетки. А переход от грубой сетки к более подробной (или наоборот) будет возможен за счет того, что все объекты являются наследниками одного класса, который содержит полное описание объектов. Система содержит несколько взаимосвязанных подсистем. Подсистемы приведены на рисунке 7.

подсистем

Рис. 7. Подсистемы программой системы

Подсистема ввода информации – предназначена для ввода информации, необходимой для решения.

Необходимо ввести:

Подсистема обработки данных:

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

Подсистема параллельных вычислений:

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

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

Подсистема вывода результатов – отвечает за удобное для изучения представление полученных результатов.

Необходимо вывести:

Такая структура обеспечивает управление данными, полученными на каждой итерации в процессе решения задачи.

Выводы

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

Список используемой литературы

  1. Гергель В.П. Теория и практика параллельных вычислений. – СПб.: Бином, 2007. – 424с.: ил.
  2. Шпаковский Г.И. Программирование для многопроцессорных систем в стандарте MPI. – СПб.: Минск, 2002. – 323с.: ил.
  3. Антонов А.С. Введение в параллельные вычисления. – СПб.: Москва, 2002. – 69с.: ил.
  4. Федоренко Р. П. Введение в вычислительную физику: Учеб. Пособие: Для вузов. — М.: Изд-во Моск. Физ.-техн. Ин-та, 1994. — 528 с.
  5. Hackbusch V., Trottenberg U. Multigrid Methods. - Lecture Notes in Math. 960, Springer Verlag, 1982., Сайт - http://torrents.ru/forum/viewtopic.php?t=1500630
  6. Бахвалов Н.С. Численные методы – Изд.:Лаборатория Базовых Знаний, 2003.– 632 с.
  7. Забродин А.В., Луцкий А.Е. Параллельные вычисления при решении современных задач науки и техники, Сайт - http://compmech.math.msu.su/kaf_paral.php
  8. Windows HPC Server 2008 , Сайт - http://www.microsoft.com/windowsserver2003/ccs/
  9. PCWeek Review №3 (3) 2008 , Сайт - http://pcweek.com.ua
  10. Лобанов А.И., Петров И.Б. Численное решение уравнений в частных производных эллиптического типа на примере уравнений Лапласа и Пуассона [Электронная лекция], Сайт - http://www.intuit.ru/department/calculate/nmdiffeq/6

ДонНТУ > Портал магистров ДонНТУ >|| Автореферат | Библиотека | Автобиография | Ссылки | Отчет о поиске | Индивидуальное задание