77305

Анализ подходов к отладке параллельных вычислений

Научная статья

Информатика, кибернетика и программирование

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

Русский

2015-02-02

19 KB

0 чел.

Анализ подходов к отладке параллельных вычислений

А.Ю. Байдалин. ИММ УрО РАН, Екатеринбург

Отладка правильности и производительности параллельных программ и ее визуализация — весьма актуальная задача для всех, кто занят разработкой соответствующего программного обеспечения. В 80-ых и 90-ых годах XX прошлого столетия ей уделялось большое внимание в самых серьезных исследовательских центрах. Был разработан целый ряд мощных отладочных средств. В тоже время в целом эта проблема так и не была разрешена, а в настоящее время в этом плане наблюдается определенный застой.

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

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

Интересно, что собственно визуальные отладчики были реализованы весьма давно в отладчике Voyeur, где использовались средства создания образов для представления параллельных программ.Характерным для этого отладчика является пример отладки программы, моделирующей поведение хищных и нехищных рыб типа «хищник-жертва». «Мир», в котором они живут представляет собой сетку, состоящую из квадратов, где находятся рыбы, поведение которых рассчитывается на различных процессорах вычислительной системы. Один из 16 процессоров управляет частью сетки из 4*4 квадратов. При отладке применялось естественное представление модельных объектов. Использование визуального отладчика позволило одновременно увидеть несколько участков «мира» и составить представление о ходе работы программы сразу на нескольких процессорах. Важно, что в этом случае была четко сформулирована и реализована в визуальном видемодель правильного и неправильного выполнения программы. Удалось найти четкое и яркое визуальное представление для самой компьютерной модели и модели правильности. Однако обобщить эти идеи не удается. Отметим, что в общем случае отсутствует и модель эффективности параллельных программ, что препятствует разрабоке эффективных отладчиков производительности.

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

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


 

А также другие работы, которые могут Вас заинтересовать

492. Поляризация диэлектриков 286.5 KB
  Ионно-релаксационная поляризация. Классификации диэлектриков. Спонтанная (сегнетоэлектрическая), дипольно-релаксационная, миграционная (межслоевая), остаточная (электретная) поляризация.
493. Газоснабжение и горячее водоснабжение жилого 6-и этажного здания 206.5 KB
  Гидравлический расчет подающих трубопроводов. Газоснабжение жилого здания. Гидравлические расчет систем горячего водоснабжения. Анализ циркуляционных трубопроводов.
494. Статистические оценки параметров распределения. Несмещенные, эффективные и состоятельные оценки 157.5 KB
  Несмещенные, эффективные и состоятельные оценки. Числовые характеристики вариационных рядов. Выборочная дисперсия и выборочное среднее квадратическое отклонение. Исправленная выборочная дисперсия. Обычные, начальные и центральные эмпирические моменты.
495. Актуальные проблемы реформы местного самоуправления 909 KB
  Конституция Российской Федерации и проблемы развития компетенционных возможностей местного самоуправления. Реформа местного самоуправления: проблемы реализации. Проблемы законодательного обеспечения реформы местной власти.
496. Разработка и анализ алгоритма сортировки посредством выбора на основе разработки шаблона функции C++ 186 KB
  Основные классы методов сортировки. Исследование метода сортировки посредством выбора на основе шаблона функций C++. Анализ результатов тестирования рассматриваемого алгоритма, вывод о приоритетах и недостатках данного алгоритма и методах его реализации.
497. Водоснабжение и водоотведение 206 KB
  Водопровод жилого здания включает следующие элементы: ввод и водомерный узел, водопроводную сеть, запорную, водоразборную, регулирующую и предохранительную арматуру.
498. Фирма как несовершенный конкурент 233 KB
  Несовершенная конкуренция. Максимизация прибыли монополией. Олигополия. Модель ломаной кривой спроса. Монополия и ценовая дискриминация.
499. Мой мобильный телефон Nokia N8 245 KB
  Возможности предоставляемые Symbian. Типичная картонная упаковка синего цвета без каких-либо дизайнерских штрихов. Герметичность корпуса (пыль). Возможность просмотра видео без предварительного конвертирования.
500. Водоснобжение 5- этажного жилого дома 209 KB
  Гарантированный напор в точке подключения ввода составляет 30м. Расстояние от стены здания до водопроводной линии составляет 25 метров. Глубину промерзания грунта для Новгорода принимаем равной 1,3м.