Таким образом система Panorama может использоваться в трех различных режимах:
1. online работа из-под базового отладчика;
2. логирование;
3. replay-режим.
Механизмы визуализации
Для визуализации используются три инструмента: Processor Map view (диаграмма процессоров), Time Line view (временная диаграмма) и Array Map view(диаграмма массива).
Диаграмма массива (рис.1). используется для графического представления содержимого двумерного массива. Вводятся имя массива, минимальное и максимальное значения, процессоры, с которых собираются данные. Каждый элемент массива представляется точкой в области. При этом цвет точки отображает его значение: чем больше величина элемента, тем темнее точка. Если элемент не принадлежит заданному интервалу между минимальным и максимальным значением, он выделяется красным (если больше максимального) или синим (если меньше минимального) цветом. Линии, разделяющие область, показывают, как распределены данные между процессорами. При наведении курсора на конкретную точку можно посмотреть значение соответствующего элемента.

Рис.1: Диаграмма массива.
Временная диаграмма (рис.2) показывает, когда и между какими процессам происходят пересылки сообщений. Отправка сообщения обозначается красным кружочком, прием – зеленым квадратиком.
Для создания временной диаграммы нужны точные данные о времени отправки и приема сообщений. Для этого и необходим созданный ранее лог-файл. При этом он может быть использован как непосредственно, то есть без повторного запуска программы через отладчик. Тогда мы получим почти мгновенный результат. Второй вариант – запустить программу под управлением отладчика, но данные о времени для изображения брать из лога. Это позволяет отследить, как происходят изменения во временной диаграмме.

Рис.2: Временная диаграмма.
Диаграмма процессоров (рис.3) отображает логические связи между процессорами, а также статус очереди сообщений для каждой из связи. Зеленые прямоугольники изображают процессоры, серые прямоугольники поменьше – очереди, а число – это число сообщений, которые ожидают приема. В данном примере каждый процессор послал сообщения всем своим соседям. Процессоры с четными номерами приняли все сообщения, процессоры с нечетными – ни одного.

Рис.3: Диаграмма процессоров
Совместимость
Для работы системы Panorama необходимы следующие аппаратные компоненты:
· параллелный компьютер, где будет непосредственно выполняться программа;
· последовательный компьютер, работающий под операционной системой Unix с графическим интерфейсом, поддерживающим X Windows;
· сетевое соединение, позволяющее пользователю на последовательной машине подключиться к параллельному компьютеру.
Что касается программной части, то помимо самой системы Panorama, также необходимы установленный пакет языка Tcl/Tk на рабочей станции и, конечно, параллельный базовый отладчик.
Как видно, Panorama не предъявляет жестких требований ни к аппаратной, ни к программной части параллельной системы, и потому претендует на универсальность. С другой стороны, она была успешно протестирована разработчиками лишь на нескольких системах: nCube/2, Intel iPSC/860 и Intel Paragon. Однако открытость исходного кода позволяет адаптировать Panoram’у к практически любой параллельной системе, а ориентированность на общие принципы работы базовых отладчиков сводит вносимые в код изменения к минимуму.
Общее впечатление
Систему Panorama нельзя назвать онлайн системой в полном смысле, так как она дает действительно правдивые результаты при повторном проигрывании ранее созданных трасс. Хотя система позиционируется как универсальная и независящая от архитектуры, в то же время ее создатели гарантируют ее непосредственное использование только на нескольких системах, на которых она была тестирована. Тем не менее, Panorama представлена как гибкая отрытая система, что означает возможность адаптировать ее к конкретной системе, возможность подключения дополнительных средств визуализации (таких как Polka или Pablo), внесения изменения в имеющиеся инструменты.
Paradyn – средство для анализа больших параллельных программ (Paradyn Parallel Performance Tool for measuring the performance of large-scale parallel programs)
Paradyn Project Computer Sciences Department University of Wisconsin
Обзор Paradyn и порядок использования
Paradyn позволяет динамически анализировать программу в процессе ее выполнения. Так как анализ программы происходит динамически, заранее неизвестно не только когда выбирать данные для детального исследования, но и какие это будут данные. Можно детально изучать отдельные участки кода и их характеристики, определяемые как самим пользователем (Dynamic instrumentation), так и средствами Paradyn (Paradyn’s Performance Consultant).
Первый способ означает, что пользователь сам выбирает, какие метрики работы программы (например, загруженность каждого процессора или время блокировки) будут визуализироваться, а Paradyn вставляет соответствующие инструменты сбора данных в приложение. Такой метод позволяет напрямую динамически контролировать накладные расходы на сбор информации, и не «платить» за то, что не использется.
Paradyn’s Performance Consultant умеет выявлять те части программы, которые могут иметь тенденцию к возникновению «узких мест», определять тип проблемы и выделять отдельные, связанные с ней, компоненты программы. При этом анализ начинается на высоком уровне – Paradyn ищет, где и какие ресурсы могут быть перегружены и приведут, например, к блокировке синхронизации, блокировке ввода-вывода или задержки памяти. Когда основная проблема выявлена, начинается более детальное исследование потенциально проблемных фрагментов. Такой подход делает систему Paradyn масштабируемой. Это означает, что для того, чтобы исследовать большие программы, длящиеся часы или даже дни на больших параллельных машинах, нам не обязательно брать большие объемы данных. Для отладки удобнее использовать небольшие объемы и на некоторых фрагментах кода. При этом мы можем быть уверены, что программа будет также работать при значительном увеличении объема данных и самой программы. Предсказать, какие ресурсы будут испытывать чрезмерную нагрузку, т. е. где возникнет «узкое место», крайне трудно, но Paradyn обходит эту проблему, используя описанный выше динамический анализ.
Чтобы проанализировать программу с помощью Paradyn, не нужно вносить в нее какие-то изменения или заново ее компилировать. Более того, Paradyn может быть подключен к уже запущенной программе.
Механизмы визуализации
Paradyn для сбора, связи, анализа и представления данных использует две основные абстракции: метрические матрицы (metric-focus grids) и временные гистограммы (time histograms).
Метрические матрицы строятся на основе двух векторов (списков). Первый вектор – это список различных метрик выполнения программы: время работы процессора, время блокировки, ранги сообщений, число активных процессов. Второй вектор – это список отдельных компонентов программы, например некоторые процедуры или каналы передачи сообщений. На основе двух этих векторов строится матрица, определяющая конкретные характеристики для конкретных компонентов программы. Элементами матрицы могут быть как отдельные значения (текущее значение характеристики, среднее или сумма), так и временные гистограммы, отображающие изменение метрики с течением времени.
Эти абстрактные структуры используются как источник информации о работе программы в процессе визуализации. Для представления данных Paradyn использует стандартный набор средств визуализации: временные диаграммы(рис.4), столбчатые диаграммы(рис.5) и таблицы(рис.6).
Временная диаграмма отображает изменение различных метрик во времени. При этом на одной диаграмме могут быть изображены различные метрики, измеренные для различных частей программы. На рис. 4 изображены графики загрузки процессора для всей программы(желтая линия), для отдельной ее компоненты(желтая линия), а также кривая вызова процедур для всей программы(красная линия).

Рис.4: Временная диаграмма
Столбчатая диаграмма(рис.5) позволяет изобразить в реальном времени сразу большое количество метрик работы программы или отдельных ее частей. Например, на рис.5 показано, как на столбчатой диаграмме отображаются сразу 7x2=14 различных метрик. Но, в отличие от временной диаграммы, мы уже не можем проследить как менялись эти метрики во времени.

Рис.5: Столбчатая диаграмма
Еще большее количество метрик может быть собрано в таблицах(рис.6). Столбцы соответсвуют метрикам, строки – компонентам программы. Как и столбцовые диаграммы, таблицы отображают данные в реальном времени, однако не дают общее картины об их изменениях.

Рис.6: Таблица
Совместимость
Paradyn поддерживает языки высокого уровня, различных платформ и операционных систем:
· Unix и Unix-like операционные системы, а также WindowsNT и IBM AIX
· C++, Fortran
· MPICH 1.2.0, 1.2.2
Свидетельством открытости системы Paradyn является тот факт, что она может быть переконфигурирована для исследования в принципе любых данных об исполнении программы. Например, может появиться необходимость отслеживать промахи КЭШа или сетевой трафик. Чтобы использовать новые источники данных достаточно лишь внести небольшие изменения в файл конфигурации. Имеется возможность подключения к Paradyn сторонних средств визуализации (например, ParaGraph или Pablo), что является несомненным плюсом, так как сам Paradyn не обладает богатыми визуальными средствами.
Общее впечатление
Paradyn представляет собой достаточно удобное средство для онлайн анализа параллельных программ. Но в то же время, представляя самые различные данные о выполнении программы, такой инструмент не может не повлиять на сам ход ее выполнения, так как сбор таких данных ведет как к изменениям в самой программе, так и к дополнительным затратам системных ресурсов. Именно на эту проблему было обращено внимание создателей следующей системы.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


