77305

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

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

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

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

Русский

2015-02-02

19 KB

0 чел.

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

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

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

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

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

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

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

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


 

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

34305. Революционный путь развития технологических процессов 29 KB
  Революционный путь развития технологических процессов Использование в производстве эвристических технических решений совершенствующих рабочие ходы технологического процесса представляет собой революционный путь его развития. Во 2ом варианте после перехода на технологию с более высоким уровнем не происходит одновременного снижения затрат живого и прошлого труда на единицу продукции а даже возможно временное повышение их что казалось бы позволяет сделать вывод об отсутствии какоголибо развития но если проследить за дальнейшим эволюционным...
34306. Модели и методы оценки технологических процессов 23.5 KB
  Модели и методы оценки технологических процессов В настоящее время можно выделить три основных подхода к изучению научнотехнического развития прва описанию технологий и их развития: экономический подход технократический или пифагорский подход системный подход. В рамках экономического подхода развивалось направление связанное с решение задач планирования научнотехнического развития прва для обеспечения заданного необходимого прироста объема выпуска продукции использование так называемых балансовых методов планирования. С целью...
34307. Понятие о системах технологических процессов 24 KB
  Понятие о системах технологических процессов. Система это целое составленное из отдельных частей ке находятся в тесном отношении между собой . Технологическая система это совокупность взаимосвязанных предметов производства исполнителей и направлено на выполнение отдельных операций и процессов в целом. Между операцией в технологическом процессе и системах можно считать условленным так как они имеют опред.
34308. Исторические этапы развития систем технологий 27.5 KB
  В своем развитии системы технологических процессов прошли ряд исторических этапов. Однако сознательная организация системы технологических процессов произошла в средневековье. Впервые организованная система технологических процессов проявила себя в цехах ремесленников. По структуре цехи ремесленников представляли собой систему параллельных технологических процессов.
34309. Классификационные признаки систем технологий 23 KB
  Важнейшим признаком характеризующим технологические системы является их структура. Механизированная отличается использованием различных механизмов для осуществления как рабочих так и вспомогательных процессов в элементах системы участок станков машиностроительного предприятия. Жесткая связь подсистем характеризуются немедленным прекращением функционирования технологической системы в целом при отказе хотя бы одной подсистемы. При нежесткой связи между элементами системы возможно непродолжительное функционирование системы в случае...
34310. Структура технологической системы производства 25.5 KB
  Структура технологической системы производства. Свойства элементарных технологических процессов распространяются и на технологические системы более высокого иерархического уровня которые образованы совокупностями технологических процессов. Таким образом технологическую систему производства образуют параллельные последовательные и комбинированные системы технологических процессов. Еще одним важным фактором в формировании технологических систем являются технологические связи между элементами системы а также их характер.
34311. Взаимосвязь технологических и организационных структур производства 26 KB
  Взаимосвязь технологических и организационных структур производства. Характер формирования систем технологических процессов а также связей между ними имеет определяющее значение для формирования управляющих воздействий. Поэтому можно четко проследить взаимосвязь технологических и организационных структур производства. Например ремесленный цех с его ярко выраженной параллельной системой технологических процессов на определенном этапе исторического развития видоизменился в мануфактуру с последовательными технологическими процессами.
34312. Специфика развития параллельных и последовательных технологических систем 26 KB
  Перевод слабых составляющих системы на более высокую ступень позволит улучшить характеристики системы так как в ней ликвидируются звенья которые обуславливали в наибольшей степени неудовлетворительное функционирование системы. Таким образом ориентация на два различных типа развития позволит ставить задачу определения предпочтительности одного из них применительно к составляющим элементам параллельной системы. Такое целенаправленное развитие дает больший эффект чем при одновременном развитии всех составляющих изза различной готовности...
34313. Основные закономерности и направления развития систем технологических процессов 23.5 KB
  При этом важной особенностью развития технологических систем является их тип параллельной или последовательной связи элементов системы. Технологические системы в общем случае развиваются как и технологические процессы эволюционным и революционным путем. Однако системы технологических процессов неоднородны по восприятию рационалистического и эвристического развития. Как и в случае развития технологических процессов необходимым и достаточным условием революционного развития является совершенствование рабочих процессов хотя бы в...