logo
Диалоговая оболочка отладчика MPI-программ

1. Введение

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

Grand challenges - это фундаментальные научные или инженерные задачи с широкой областью применения, эффективное решение которых возможно только с использованием мощных (суперкомпьютерных) вычислительных ресурсов [1].

Вот лишь некоторые области, где возникают задачи подобного рода:

· Предсказания погоды, климата и глобальных изменений в атмосфере

· Науки о материалах

· Построение полупроводниковых приборов

· Сверхпроводимость

· Структурная биология

· Разработка фармацевтических препаратов

· Генетика человека

· Квантовая хромодинамика

· Астрономия

· Транспортные задачи

· Гидро- и газодинамика

· Управляемый термоядерный синтез

· Эффективность систем сгорания топлива

· Разведка нефти и газа

· Вычислительные задачи наук о мировом океане

· Распознавание и синтез речи

· Распознавание изображений

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

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

Параллельная программа не обязательно должна быть параллельной версией какой-либо последовательной программы, она также может реализовывать алгоритмы, которые невыгодно использовать на последовательных ЭВМ.

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

· Возрастает сложность программирования, а, следовательно, возрастает и вероятность совершения ошибок;

· Появляются новые виды ошибок, специфичные для параллельных программ: взаимная блокировка (deadlock), условия гонок (race conditions), и другие.

Эти ошибки сложны для обнаружения и вызывают недетерминированное поведение программы.

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

Данная работа посвящена созданию диалоговой оболочки разрабатываемого в ИПМ им. Келдыша РАН отладчика MPI-программ, который войдет в состав системы автоматизации разработки параллельных программ (DVM-системы). В ней рассмотрены основные подходы к параллельному программированию и к отладке параллельных программ. Приведены примеры уже существующих средств визуализации. Описаны теоретические и практические вопросы и задачи, связанные с разработкой средств визуализации. Приводится описание реализованного прототипа, результаты его тестирования и рекомендации к применению.