77305

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

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

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

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

Русский

2015-02-02

19 KB

0 чел.

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

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

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

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

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

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

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

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


 

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

11614. Решение задач в MatLab 324.86 KB
  Лабораторная работа №2. Решение задач в MatLab Цель лабораторной работы – закрепление практических навыков решения задач в среде математического пакета MatLab необходимых для выполнения лабораторных работ по дисциплине ТИПиС. Этап I. Решение уравнений в пакете MatLa...
11615. Создание собственных функций на MatLa 147.39 KB
  Создание собственных функций Необходимо создать программу на MatLab. При этом все операции с матрицами должны производиться без использования стандартных функций. Создание функции сложения матриц: function C=addmAB d1=sizeA; d2=sizeB; if d11==d21||d12==d22 n=d11; m=d12; ...
11616. ПЕРЕХОДНЫЕ ПРОЦЕССЫ В ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЯХ С СОСРЕДОТОЧЕННЫМИ ПАРАМЕТРАМИ 2.14 MB
  Лабораторная работа №7 ПЕРЕХОДНЫЕ ПРОЦЕССЫ В ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЯХ С СОСРЕДОТОЧЕННЫМИ ПАРАМЕТРАМИ Целью работы является исследование переходных процессов в линейных электрических цепях содержащих сопротивления индуктивность и емкость при действии и...
11617. Изучение рентгеновских трубок и аппаратов 629.5 KB
  ЛАБОРАТОРНАЯ РАБОТА №1. Изучение рентгеновских трубок и аппаратов. РЕНТГЕНОВЧСКИЕ ТРУБКИ. Рентгеновская трубка является источником рентгеновских лучей возникающих в ней в результате взаимодействия быстро летящих электронов с атомами анода установленного...
11618. Мерология. Лабораторный практикум 1.36 MB
  Мерология. Лабораторный практикум Учебнометодическое пособие для студентов приборостроительного факультета Лабораторный практикум предназначен для использования в высших учебных заведениях при подготовке инженеров по специальности Метрология стандартизация и...
11619. Исследование напряженно-деформированного состояния стержня при кручении 405.5 KB
  ЛАБОРАТОРНАЯ РАБОТА ПО МЕХАНИКЕ СПЛОШНЫХ СРЕД № 2 Тема: Исследование напряженно-деформированного состояния стержня при кручении Задание Для заданной упругой системы рис. 1 исследовать напряженнодеформированное состояние при растяжениисж
11620. Исследование напряженно-деформированного состояния стержня переменного сечения при растяжении-сжатии 632.5 KB
  ЛАБОРАТОРНАЯ РАБОТА ПО МЕХАНИКЕ СПЛОШНЫХ СРЕД № 1 Часть 1 Механика деформируемого твердого тела Тема Исследование напряженно-деформированного состояния стержня переменного сечения при растяжении-сжатии Задание Для заданной упругой системы рис. 1...
11621. Исследование напряженно-деформированного состояния стержня при поперечном изгибе 570.5 KB
  ЛАБОРАТОРНАЯ РАБОТА ПО МЕХАНИКЕ СПЛОШНЫХ СРЕД № 3 Тема:Исследование напряженно-деформированного состояния стержня при поперечном изгибе Задание Для заданной упругой системы рис. 1 исследовать напряженно-деформированное состояние при поперечном изг...
11622. Особенности разработки диаграмм вариантов использования в среде IBM Rational Rose 2003 249 KB
  Лабораторная работа №1 Особенности разработки диаграмм вариантов использования в среде IBM Rational Rose 2003 Работа над моделью в среде IBM Rational Rose начинается с общего анализа проблемы и построения диаграммы вариантов использования которая отражает функциональное назначение...