77309

СОВРЕМЕННЫЕ ТЕНДЕНЦИИ В РАЗРАБОТКЕ СРЕДСТВ ВИЗУАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ

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

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

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

Русский

2015-02-02

33 KB

0 чел.

СОВРЕМЕННЫЕ ТЕНДЕНЦИИ В РАЗРАБОТКЕ СРЕДСТВ ВИЗУАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ

В.Л. Авербух, М.О. Бахтерев, П.А. Васёв, А.П. Уросов

ИММ УрО РАН, УрФУ, г. Екатеринбург

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

визуальные языки параллельного программирования;

визуальные отладчики правильности параллельных программ;

визуальные средства отладки и настройки эффективности параллельных программ.

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

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

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

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

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

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

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

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

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

Работа выполнена в рамках Программы фундаментальных исследований Президиума РАН № 14 "Интеллектуальные информационные технологии, математическое моделирование, системный анализ и автоматизация" при поддержке УрО РАН, проект  09-П-1-1003.


 

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

4823. Основы программирования на языке Turbo Pascal 246 KB
  Основы программирования Цель: Дать студентам основы программирования. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить правильно применять константы и переменные. Развивающая: развитие вним...
4824. Создание первой программы на языке Turbo Pascal 184 KB
  Создание первой программы. Цель: Показать студентам пример создания программы. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимательности. Пл...
4825. Создание первой программы в языке Turbo Pascal 94.5 KB
  Создание первой программы. Цель: Показать студентам управление программой при помощи меню. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимат...
4826. Отладка программ на языке Pascal 185 KB
  Отладка программ Цель: Дать студентам понятие ошибки, причины их возникновения. Задачи: Воспитательная: любая программа несовершенна, всегда находятся ошибки, исправить которые требует время. Учебная: обнаруживать ошибки и вовремя исправлять их. Раз...
4827. Управляющие структуры Object Pascal 273.5 KB
  Управляющие структуры ObjectPascal. Цель: Повторение со студентами управляющих структур Pascal. Задачи: Воспитательная: необходимость повторения. Учебная: повторение управляющих структур и их применение в среде разработки ObjectPascal. Р...
4828. Символы и строки в среде разработки Object Pascal 80 KB
  Символы и строки. Цель: Повторение со студентами записи символов и строк. Задачи: Воспитательная: необходимость повторения. Учебная: повторение записи символов и строк в среде разработки ObjectPascal. Развивающая: развитие внимательности. План...
4829. Консольное приложение. Создание приложения под DOS 87.5 KB
  Консольное приложение. Цель: Создание консольного приложения. Задачи: Воспитательная: необходимость повторения. Учебная: создание приложения под DOS. Развивающая: развитие внимательности. План занятия. Организационный момент. Изучение но...
4830. Массивы. И работа с ними в языке Pascal 446.5 KB
  Массивы. Цель: Научить студентов использовать массивы при написании программы. Задачи: Воспитательная: необходимость повторения. Учебная: создание приложений для работы с массивами. Развивающая: развитие внимательности. План занятия. Организац...
4831. Процедуры и функции в программировании на языке Pascal 151 KB
  Процедуры и функции. Цель: Научить студентов избегать дублирования кода в программе. Задачи: Воспитательная: работа над собой. Учебная: создание приложений. Развивающая: развитие внимательности. План занятия. Организационный момент. Изуч...