Falcon – система онлайн мониторинга для параллельных и распределенных программ ( (Falcon – On-line Monitoring of Parallel and Distributed Programs)

College of Computing, Georgia Institute of Technology

Обзор Falcon

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

В системе Falсon основным инструментом сбора информации о выполнение программы являются буферы событий (event buffers), в которых накапливается информация о действиях, выполненных каждым из процессов. Для непосредственного сбора данных Falсon создает дополнительный процесс – local monitor, который выполняется независимо от основной программы.

Такой механизм может породить два нежелательных эффекта. Первый связан с тем, что он не обеспечивает сохранения правильного порядка следования событий, происходящих на всех процессах. Если в каждый отдельный буфер события складываются в порядке их выполнения, то нет гарантии, что он будет сохранен при их сборке и мониторинге. Эта проблема решается в Falсon с помощью так называемого упорядочивающего фильтра (ordering filter), который «установлен» между локальным монитором и системой графического отображения. Фильтр хранит информацию обо всех возможных событиях и правила их следования. Алгоритм его работы очень прост: фильтр исследует каждое поступающее на него событие, определяет его тип и проверяет выполнение всех правил следования для соответствующего типа. Если нет нарушений, событие пропускается через фильтр, иначе отбрасывается назад, пока все правила не будут соблюдены. Такой подход не требует больших затрат системных ресурсов и обеспечивает отображение информации о ходе выполнения программы с вполне приемлемым приближением к ее реальной работе.

НЕ нашли? Не то? Что вы ищете?

Второй нежелательный эффект – это переполнение буфера событий. В результате процесс, стремясь не потерять информацию о событиях, блокируется. Это вызывает серьезные нарушения в нормальном ходе работы программы. Для обозначения таких ситуаций создатели Falсon вводят понятие события пертурбации (perturbation events). В случае, когда событий пертурбации не удается избежать, они отслеживаются в ходе мониторинга и отображаются наравне с событиями, которые предусмотрены исполняемой программой.

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

Рис.7

Общее впечатление

При разработке системы Falсon создатели обратили внимание на основные проблемы, возникающие при он-лайн мониторинге. Для решения такой проблемы, как нарушение порядка событий, предложен интересный и эффективный способ. Но основной вопрос – как минимизировать вмешательство системы анализа программы в ее исполенние, так и остался нерешенным. Однако система Falсon позволяет увидеть это вмешательство, что несомненно может оказать помощь при последующем решении этой задачи.

Системы визуального программирования

Проблема создания систем визуального программирования на данный момент не решенна.

Для анализа подобных программ было выбрано несколько продуктов. Основная проблема в установке этих продуктов состоит в том, что это узкоспециализированные программы, даже установка которых требует больших навыков работы с операционной системой Unix like. В результате длинных поисков не было найдено ни одной программы, которая могла бы работать на Windows-системах. Также стоит заметить, что последние доступные версии рассмотренных программ датируются 2002 годом. Более свежих версий продуктов найдено не было.

Очень многие из найденных продуктов используют технологию PVM.

PVM это набор библиотек и программ контроля

Системы, в ко[LA1] торых сущности, относящиеся к параллелизму, программируется отдельно от последовательного наполнения. В качестве базового языка системы используют в основном диаграмматические[LA2]  языки, основанные на парадигме посылки сообщений между процессами (Message-passing paradigm). Программирование последовательного наполнения может осуществляться по-разному. Авторы ряда систем настойчиво проводят следующую линию: все, что не относится к параллелизму нужно продолжать описывать на одном из стандартных языков последовательного программирования. Другие предлагают специальный язык визуального программирования для последовательного наполнения. Но главное, мы теперь можем произвести декомпозицию задачи на уровне алгоритма распараллеливания, не отвлекаясь на описание последовательного наполнения. И наоборот, для программирования последовательного блока нам предоставляется отдельная область, отстраненная от описания параллельных сущностей.

В качестве примера можно привести системы VPE, Trapper, Grapnel, CODE, HeNCE, Visper.

CODE

Продукт предназначен для разработки программ как в системах с общей памятью, так и с распределенной, включающей в себя сети и рабочие станции. Последняя версия программы (released 8/4/2002) поддерживает передачу сообщений при помощи механизмов MPI и PVM. Программа работает на платформах IBM, Cray, Solaris, Linux.

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

Рис.8

Рис.9

TRAPPER

Коммерческий продукт, разработка немецкой компании GENIAS.

Графическая среда программирования, поддерживающая все стадии жизненного цикла программных систем. Содержит компоненты построения параллельного ПО, конфигурирования аппаратных средств, распределения процессов по процессорам (process mapping), графической отладки и мониторинга производительности. Система содержит 4 основных модуля:

·  The Design Tool. Построение параллельного приложения из отдельных процессов, обменивающихся сообщениями. Модульная структура, иерархическая организация процессов (процесс может состоять из нескольких "подпроцессов"), автоматическая генерация "шаблонов" программ.

·  The Configuration Tool. Графическое определение конфигурации виртуальной машины Генерация Make-файлов, отображение процессов на процессоры (Graphical Process Mapping)

·  The Visualization Tool. Графическое изображение поведения процессов и взаимодействий (Software Analysis), графическая отладка (позволяет отлавливать deadlock'и и другие ошибки распараллеливания)

·  The Performance Tool. Позволяет обнаружить критические для производительности секции кода (bottlenecks), а также собирать статистику и отображать в виде диаграмм.

[LA3] Поддерживаются следующие хост-платформы: x86/Linux, PowerPC/AIX, RS6000/AIX, HP/HP-UX, SGI, DEC/OSF1, SUN/Solaris(SunOS) WinNT (планируется). Целевые платформы/системы программирования: транспьютеры/Inmos toolset, Parsytec MultiCluster, сети и MPP/PVM3.3 или MPI 1.1.

DEEP

DEEP (DEvelopment Environment for Parallel Programming) - интегрированная среда для параллельного программирования.

Коммерческий продукт; разработка компании Pacific-Sierra Research.

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

Поддерживаются языки Fortran (77, 90, 95) и C (а также смешанные программы на Фортране и Си).

Платформы: UNIX и Windows NT.

Модели программирования: общая память (автоматическое распараллеливание циклов или OpenMP), параллелизм по данным (HPF, Data Parallel C), передача сообщений (MPI)

[LA4] 

Converse

Converse - среда (framework) для поддержки много-языкового параллельного программирования (взаимодействие модулей, написанных на разных языках). Поддерживаются парадигмы обмена сообщениями, объектно-ориентированного программирования, многопоточности.

Поддерживаемые платформы: IBM SP, Cray T3E, Origin2000, Exemplar, сети рабочих станций (на базе HP-UX 10, Solaris/SunOS, RS/6000, SGI IRIX, Linux/x86). Доступны двоичные файлы для всех поддерживаемых платформ.

Разработано в Parallel Programming Laboratory (PPL), University of Illinois at Urbana-Champaign.

[LA5] 

Heterogeneous Network Computing Environment (HENCE)

Исследовательский проект; разработчики - Adam Beguelin, Jack Dongarra, G. A. Geist, Robert Manchek, Keith Moore, Peter Newton, Vaidy Sunderam и др.

Система графического создания параллельных программ. HENCE представляет интерфейс для создания, выполнения, отладки параллельных программ которые исполняются с помощью PVM библиотек. Данные программы могут выполняться в гетерогенных системах построенных на основе Unix.

Исследовательский проект; разработчики - Adam Beguelin, Jack Dongarra, G. A. Geist, Robert Manchek, Keith Moore, Peter Newton, Vaidy Sunderam и др.

Графическая среда (UNIX/X-Window), разработанная для помощи в разработке параллельных программ, работающих на сети рабочих станций (в модели PVM). Предназначено для вычислителей, желающих эффективно использовать имеющуюся сеть рабочих станций, не вдаваясь в подробности параллельного программирования.

Программа описывается в виде направленного ациклического графа (DAG), в котором вершины соответствуют процедурам, а дуги - зависимостям (зависимости расставляет пользователь). Включает средства графического конфигурирования гетерогенного PVM-кластера для запуска программы.

Рис.10

Язык данной программы содержит такое понятие как узлы (nodes).

Рис.11 Рис.12

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5