Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Профилирование приложений в Oracle Solaris Studio.




Для профилирования в OSS разработаны 2 многопоточных приложения на языке С с использованием библиотеки pthread.h.

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

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

Для быстрого анализа приложения в OSS встроены компоненты: Monitor Main Project – для отслеживания ресурсов ЦП, памяти и состояние потоков, и Data Races and Deadlocks. На рисунке 4 представлен быстрый анализ приложений (слева для первого, справа для второго).

Рисунок 4.

В первой программе анализ показал, что работает 9 потоков, в среднем 5 из них находятся в состояние ожидания, выделено 40 байт памяти (10 элементов массива типа int) и найдено 2 гонки за ресурсы. Во второй программе работает 3 потока, найдено 1 дедлок и 2 гонки за ресурсы. Нажав «details» для дедлока, OSS указывает в какой части кода происходит захват ресурса и где его запрашивает другой поток.

Произведем детальный анализ с помощью Performance Analyzer. Для первого приложения перед профилированием выберем настройки по умолчанию (с графиком времени работы потоков, с деревом вызовов, использование памяти и др.). На рисунке 5 представлен анализ приложения.

Рисунок 5.

Из обзора видно, что потоки 58% времени тратили на User Lock Time (время ожидания освобождения ресурсов), 17% времени простаивали, 22% ждали ЦП и 2% выполнялись на ЦП. Было выделено 40 байт памяти. На временном графике видно, в каком состояние находились потоки в разные моменты времени. Дерево вызовов показывает сколько ресурсов ЦП ушло на вызов функций и структуру вызовов. Во вкладке Threads можно увидеть количество потоков и распределение ресурсов ЦП.

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

Рисунок 6.

Из обзора видно, что 30% времени ушло на User Lock Time, 30% времени потоки простаивали, 12% ждали ЦП и 22% выполнялись на ЦП. Обнаружено: 2 дедлока и 2 гонки за ресурсы, с подробным описанием (в какой функции, в какой строчке коде).

Для выявления типичных ошибок и поверхностного анализа при многопоточном программирование достаточно воспользоваться внутренними средствами OSS. Для подробного анализа производительности и эффективности многопоточных и распределенных приложений необходимо обратится к компоненту Performance Analyzer.

Заключение

В ходе работы были даны понятия параллельной и распределенной вычислительной системы, рассмотрена архитектура данных систем, представлены средства для разработки высокопроизводительных приложений на языках С, С++, рассмотрены 2 класса высокопроизводительных приложений: многопоточные и распределенные, а также, предъявляемые критерии для разработки многопоточных и распределённых приложений в ИСР.

В результате исследования Oracle Solaris Studio IDE показала себя как мощный и эффективный набор инструментов для разработки высокопроизводительных приложений с удобным графическим интерфейсом. В ее состав входят основные библиотеки для программирования: Pthread, OpenMP и MPI. OSS поддерживает высокопроизводительные языки С, С++ и HPF. Также, в ее состав входит внутренний профилировщик – в виде компонентов Monitor Main Project и Data Races and Deadlocks для быстрого анализа многопоточных приложений, и профилировщик Performance Analyzer, представленный как отдельная программа. При помощи Performance Analyzer можно произвести детальный анализ многопоточных и распределенных приложений и получить ответы на различные вопросы, относящиеся к производительности и эффективности параллельного кода.

Основной недостаток OSS – это поддержка только ОС Oracle Solaris, Oracle linux и Red Hat Linux.


 





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 456 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2613 - | 2287 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.