Источник: Інформатика та комп'ютерні технології — 2009 / Матеріали V науково-технічної конференції молодих учених та студентів. — Донецьк, ДонНТУ — 2009, с. 106-108.
Вычислительные кластеры (High Performance Computing Clusters) обеспечивают повышение производительности целевых приложений, если функции этих приложений — ресурсоемкие вычисления. Рост производительности напрямую связан с распределением одного вычислительного процесса по всем доступным узлам кластера.
Свою версию кластера в 2005 году выпустила компания Microsoft. Этот продукт получил название Microsoft Windows Compute Cluster Server 2003 (WCCS 2003).Технологически Microsoft Windows Compute Cluster Server 2003 [1] базируется на стандартной версии Microsoft Windows Server 2003. В поставку продукта входят: модифицированная версия Windows Server 2003 x64 Standard Edition и пакет, называемый Compute Cluster Pack.
Модифицированная версия Windows Server 2003 позволяет существенно снизить стоимость конечного узла, поскольку ограничивает возможность работы только в роли узла вычислительного кластера. Компоненты, входящие в Compute Cluster Pack [1], — это набор сервисов, утилит и протоколов. Этот набор представляет собой роль «вычислительный кластер» для установки на базовую операционную систему. Для специально разработанных вычислительных задач пользователи могут применять стандартную поставку WCCS 2003.
Встроенным средством программирования на кластере является MS MPI. Message Passing Interface (MPI) — один из стандартов разработки приложений HPC.
В задачи MPI входит создание набора процессов и их сессий, обеспечение передачи данных и сигналов между ними для разделения кода приложения на потоки согласно имеющимся вычислительным ресурсам с целью достижения максимальной производительности.
Дифференциальным уравнением в частных производных, является дифференциальное уравнение, содержащее функции нескольких переменных и их частные производные. Часто такие уравнения называют уравнениями математической физики из-за сферы их применения.
Дифференциальные уравнения в частных производных [2] представляют собой широко применяемый математический аппарат при разработке моделей в самых разных областях науки и техники. Как известно, явное решение этих уравнений в аналитическом виде оказывается возможным только в частных простых случаях. Поэтому основные возможность анализа математических моделей, построенных на основе дифференциальных уравнений, обеспечиваются при помощи приближенных численных методов решения. Объем выполняемых при этом вычислений является значительным. Поэтому эффективным является использование высокопроизводительных вычислительных систем для данной области вычислительной математики. В настоящее время проблематика численного решения дифференциальных уравнений в частных производных является предметом интенсивных исследований.
Одним из наиболее эффективных подходов к решению дифференциальных уравнений в частных производных является многосеточный подход. Главной особенностью является то, что решение производится сначала на грубой(крупной) сетке, а затем переносится на более мелкую сетку. Начальное решение для сетки NxN, где N – количество узлов, строится посредством аппроксимирующей сетки (N/2)x(N/2), получаемой сохранением каждого второго узла исходной сетки NxN. Более грубая сетка (N/2)х(N/2), в свою очередь, аппроксимируется сеткой (N/4)х(N/4) и так далее. Затем в частной области погрешность представляется как сумма синусоид с различными частотами. Тогда работа, вы¬полняемая на конкретной сетке, уменьшает половину частотных компонент погрешности, для которых уменьшение не было достигнуто на более грубых сетках. Поэтому работа, производимая для усреднения решения в каждом узле сетки, делает приближенное решение гла¬же, что эквивалентно подавлению высокочастотных компонент погрешности.
Дополнительно многосеточный подход использует несколько методов решения сеточных уравнений. Главным критерием оценки метода решения уравнений является количество выполняемых итераций, в зависимости от количества узлов сетки N[4]:
Для реализации многосеточных методов на вычислительном кластере можно использовать несколько типичных топологий связей:
Для удобной реализации программной системы решения многосеточных методов необходимо использовать объектно-ориентированный подход. В данной программной системе основными объектами будут являться сеточные уровни, то есть каждая сетка – отдельный объект. Такое представление делает легким реализацию связей в пределах одной сетки. А переход от грубой сетки к более подробной (или наоборот) будет возможен за счет того, что все объекты являются наследниками одного класса, который содержит полное описание объектов. Система содержит несколько взаимосвязанных подсистем: ввода информации, обработки исходных данных, стратегии параллельных вычислений, балансировки вычислительной нагрузки, вывода результатов. Такая структура обеспечивает управление данными, полученными на каждой итерации в процессе решения задачи.
Использование программной системы позволит оценить эффективность и точность параллельного решения задач в частных производных многосеточным методом.