Исследование и реализация эффективных методов анализа производительности параллельных программ

Исследование и реализация эффективных методов анализа производительности параллельных программ

Автор: Андреев, Никита Евгеньевич

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2011

Место защиты: Кемерово

Количество страниц: 136 с. ил.

Артикул: 4989135

Автор: Андреев, Никита Евгеньевич

Стоимость: 250 руб.

Исследование и реализация эффективных методов анализа производительности параллельных программ  Исследование и реализация эффективных методов анализа производительности параллельных программ 

1.1. Цикл анализа, производительности
1.2. Программные модели параллельного программирования
1.2.1. Модель передачи сообщений
1.2.2. Модель общей памяти
1.2.3. Модель разделенного глобального адресного пространства
1.3. Языки
1.3.1. ii С.
1.3.2. Со .
1.3.3. ii
1.4. Инструменты анализа производительности
1.4.1.
1.4.2.
1.4.3. i
1.5. Методы автоматизированного анализа
1.5.1. I2
1.5.2. Подход V
1.5.3.
1.5.4. i.
1.5.5. X.
ГЛАВА 2. НАБОР ШАБЛОНОВ НЕЭФФЕКТИВНОГО
ПОВЕДЕНИЯ
2.1. Основа метода.
2.1.1. Типы событий.
2.1.2. Состояния и атрибутыуказатели
2.2. Описание шаблонов .
2.2.1. Шаблон Конкуренция за блокировку.
2.2.2. Шаблон Синхронизация на входе в коллективную операцию
2.2.3. Шаблон Синхронизация на выходе из коллективной операции.
2.2.4. Шаблон Ожидание в барьере .
2.2.5. Шаблон Завершение барьера
2.2.6. Шаблон Поздняя рассылка
2.2.7. Шаблон Ранняя сборка.
2.2.8. Шаблон Ранняя префиксная редукция
2.2.9. Шаблон Синхронизация на входе в коллективную
операцию многие ко многим.
2.2 Шаблон Синхронизация на выходе из коллективной операции многие ко многим
2.2 Шаблон Ожидание внутри коллективной операции . .
2.2 Шаблон Ожидание в операции динамического выделения памяти.
ГЛАВА 3. РЕАЛИЗАЦИЯ ИНСТРУМЕНТА
3.1. Инфраструктура пакета .
3.2. Интерфейс
3.3. Формирование трассы I.
3.4. Реализация.
3.4.1. Трассировка
3.4.2. Выборочное измерение.
3.4.3. Анализ фаз программы.
3.4.4. Слияние и конвертация трассы.
3.4.5. Синхронизация времени
3.4.6. Анализ.
3.4.7. Визуализация.
ГЛАВА 4. ПРИМЕРЫ АНАЛИЗА И ОПТИМИЗАЦИИ
ПРОГРАММ
4.1. Сравнение эффективности и I
4.1.1. Результаты тестирования
4.1.2. Обсуждение результатов.
4.2. Сравнение накладных расходов.
4.3. Сортировка целых чисел
4.3.1. Корректировка инструментовки.
4.3.2. Анализ полученных данных
4.3.3. Обсуждение результатов.
4.4. Быстрое преобразование Фурье.
4.4.1. Корректировка инструментовки.
4.4.2. Анализ полученных данных
4.4.3. Обсуждение результатов.
4.5. Итерационный метод Якоби.
4.5.1. Анализ полученных данных
4.5.2. Обсуждение результатов.
Заключение
Список иллюстраций
1.1. Расхождение теоретической и реальной производительности . .
1.2. Цикл анализа и оптимизации программы.
1.3. Модель передачи сообщений
1.4. Модель общей памяти
1.5. Модель разделенного глобального адресного прва
1.6. Составное событие поздняя отправка неправильный порядок .
2.1. Иерархия типов событий.
2.2. Шаблон Конкуренция за блокировку .
2.3. Шаблоны Синхронизации на входе в коллективную операцию
и Синхронизация на выходе из коллективной операции
2.4. Шаблоны Поздняя рассылка и Ранняя сборка .
2.5. Шаблоны Ранняя префиксная редукция и Ожидание внутри коллективной операции.
3.1. Алгоритм работы пакета
3.2. Высокоуровневая организация приложения, выполняющегося в реализации.
3.3. Диаграммы отношений для мест вызовов и структуры кластера
3.4. Модель архитектуры программного средства.
3.0. Алгоритм трассировки инструмента .
3.6. Расширенный алгоритм трассировки.
3.7. Схема работы модуля слияния и конвертации
3.8. Взвешенное дерево в свернутом и развернутом состояниях .
3.9. Внешний вид визуализатора
4.1. Сравнение I и на тесте
4.2. Сравнение I и на тесте ЕР
4.3. Сравнение I и на тесте
4.4. Сравнение I и на тесте I.
4.5. Сравнение I и на тесте .
4.6. Сравнение накладных расходов для тестов
4.7. Накладные расходы на инструментовку I
4.8. Результаты анализа I.
4.9. Разбаласировка нагрузки I .
4 Результаты оптимизации I
4 Накладные расходы на инструментовку .
4 Результаты анализа
4 Разбалансировка нагрузки
4 Результаты оптимизации
4 Результаты анализа метода Якоби
4 Результаты оптимизации метода Якоби
Список таблиц
4.1. Характеристики вычислительных узлов кластеров I и СКИФ i.
4.2. Принадлежности ядер к определенному классу
4.3. Сравнение I и на тесте .
4.4. Сравнение I и на тесте ЕР .
4.5. Сравнение I и на тесте
4.6. Сравнение I и на тесте I
4.7. Сравнение I и на тесте
4.8. Сравнение размеров файлов трасс для тестов
4.9. Сравнение с неоптимизированной версией I.I
4 Сравнение с неоптимизированной версией
4 Сравнение с неоптимизированной версией метода Якоби
Список листингов
3.1. Структура уведомлений о событиях вАЭР.
3.2. Пример выборочного измерения
3.3. Интерфейс прикладных программ для пользовательских событий
3.4. Пример анализа фаз программы
3.5. Функция для сравнения узлов дерева мест вызовов.
3.6. Описание шаблона Поздняя рассылка.
4.1. Отключение измерения функции .
4.2. Обмен данными в 1Б
4.3. Оптимизированный обмен данными в 1Э.
4.4. Обмен данными в РТ
4.5. Оптимизированный обмен данными в РТ.
4.6. Описание функции ТгуСе1
4.7. Описание функции СоруУак.
4.8. Оптимизированная функция СоруУаЬ
Введение


Сравнение I и на тесте . Сравнение I и на тесте ЕР . Сравнение с неоптимизированной версией I. Структура уведомлений о событиях вАЭР. Функция для сравнения узлов дерева мест вызовов. Описание шаблона Поздняя рассылка. Отключение измерения функции . Оптимизированный обмен данными в 1Э. Оптимизированный обмен данными в РТ. Описание функции СоруУак. Современные высокопроизводительные кластеры преодолели рубеж в петафлопс, а количество ядер, которое насчитывают такие системы, десятков и сотен тысяч. Но если взглянуть на эффективность параллельных приложений на подобных системах, то оказывается, что по разным оценкам она не превышает или даже от пиковой производительности. Чтобы эффективно использовать потенциал дорогостоящих вычислительных установок, сообществу специалистов в области высокопроизводительных вычислений необходимы инструменты анализа производительности. С одной стороны, они помогают увеличить эффективность и масштабируемость параллельных программ, а с другой позволяют ученому сконцентрироваться на научной составляющей своего приложения, нежели на кропотливом процессе оптимизации. Сегодня суперкомпыотерная индустрия ставит перед собой рубеж в экзафлопс. Разработка комплексов параллельных программ для таких систем является невероятно сложной задачей. Суперкомпьютеры могут иметь разную архитектуру и коммуникационную сеть , существует ряд алгоритмов распараллеливания , а также технологий и средств для написания параллельных программ . Стандартом дефакто среди таких средств на сегодня является I . Несмотря на сравнительно высокую производительность Iпрограмм, процесс разработки приложений с использованием данной библиотеки трудоемок и подвержен ошибкам. Ограничения программной модели передачи сообщений широко признаны, а саму библиотеку I иногда называют ассемблером параллельного программирования. Альтернативой I является набирающая популярность модель программирования ii разделенное глобальное адресное пространство . В модели используются односторонние коммуникации, где при передаче данных нет необходимости в явном отображении на двухсторонние пары и iv трудоемкий, подверженный ошибкам процесс, серьезно влияющий на продуктивность программиста. Обычное присвоение значения переменной массива хг а автоматически порождает необходимые коммуникации между узлами кластера. I версии, и имеют сравнительную или даже более высокую производительность . К группе относятся такие языки как ii С , , ii 9, , I X , . Язык является наиболее взрослым представителем модели. Компиляторы для языка разработаны всеми основными вендорами суперкомпьютерного рынка. Существуют реализации от компаний I , II , , I . Компания Vi ведущий разработчик в области отладки параллельных приложений поддерживает язык . Компания I включила поддержку языка в интегрированную среду разработку i . Но ввиду относительной молодости модели параллельного программирования , для нее существует не так много инструментальных средств. Такие известные инструменты, как I , , i и другие, работают с ограниченным набором программных моделей, преимущественно моделью передачи сообщений. Те инструменты, которые на данный момент существуют, в частности для языка , такие как , , обладают ограниченной функциональностью, i, позволяет получить лишь статистические данные о работе программы. В результате разработчики, использующие новые модели параллельного программирования, зачастую вынуждены вручную выполнять трудоемкий анализ в процессе оптимизации своей программы. Также необходимо заметить, что большинство существующих инструментов используют ручной метод анализа, где пользователь должен самостоятельно выполнять поиск узких мест производительности приложения на основе представленных диаграмм, графиков, таблиц и методов манипулирования ими масштабирование и поиск. Представление информации о производительности программы в графическом виде может быть мощным приемом, но без сложных методов фильтрации объем отображаемых данных может быть чрезвычайно большим, что сильно снижает полезность подобных инструментов.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.271, запросов: 244