Лекция 1. - Студенческая исследовательская лаборатория Intel в

advertisement
Студенческая исследовательская
лаборатория Intel в МГУ
ТЕХНОЛОГИИ ИНТЕЛ ДЛЯ РАЗРАБОТКИ
ПАРАЛЛЕЛЬНЫХ ПРОГРАММ.
Лекция 1.
Глазкова Е. А.
katrin-elinor@yandex.ru
План лекции
n
n
n
n
n
Оптимизация производительности параллельных
программ
Профилирование
Сбор трасс
Основные метрики
Краткий обзор средств и технологий Интел для
параллельного программирования и
высокопроизводительных вычислений
n
n
n
Компиляторы и анализаторы производительности
Высокопроизводительные и многонитевые библиотеки
Технологии для кластеров
Студенческая исследовательская
лаборатория Intel в МГУ
2
Почему нужно анализировать
производительность приложений?
n
В HPC - это высокая
стоимость приобретения и
содержания
суперкомпьютерной системы.
n
Цели:
решать
быстрее и точнее
n
Те же цели преследуют и
разработчики приложений
для устройств меньшего
размера
больше,
Студенческая исследовательская
лаборатория Intel в МГУ
3
Цикл оптимизации
производительности программы
Студенческая исследовательская
лаборатория Intel в МГУ
4
Профилирование
n
Профилирование – это создание таблиц, которые
обобщают поведение программы:
n
n
n
n
сколько раз была вызвана функция;
время выполнения функции;
дерево или граф вызовов в программе;
значения аппаратных счетчиков и т.п.
Студенческая исследовательская
лаборатория Intel в МГУ
5
Профилирование
n
n
n
Помогает определить "узкие места" и "горячие точки" в программе
"Принцип 80/20" - 80% времени выполнения программы
соответствует 20% кода
Не нужно тратить время на оптимизацию того кода, который
незначительно влияет на производительности.
n
Профилирование имеет низкие накладные расходы со сбором
трасс.
n
Реализуется через:
n
n
Семплирование – периодические прерывания ОС или прерывания по
значению аппаратных счетчиков
Инструментирование – вставка в программу кода, измеряющего
производительность
Студенческая исследовательская
лаборатория Intel в МГУ
6
Total time и Self time
Total time для main:
100 сек.
n Self time для main:
100–20–50–20 = 10 сек.
n
Аналогично для другим
метрик: аппаратных
счетчиков, объема
сообщений и т.п.
Студенческая исследовательская
лаборатория Intel в МГУ
7
Сбор трасс
n
Сбор трасс подразумевает запись потока событий:
n
n
n
n
n
n
вход/выход в участок кода (функцию, цикл…);
взаимодействие процессов (нитей) - приемы/передачи
сообщений и т. д.
Запись того, где и когда случилось каждое событие.
Событие обычно записывается в виде метки, номера
процесса (нити), типа события и данных о событии.
Трасса позволяет анализировать производительность и
корректность программы.
Профиль программы может быть восстановлен по ее
трассе. Обычно требует инструментирования кода.
Студенческая исследовательская
лаборатория Intel в МГУ
8
Сбор трасс
Студенческая исследовательская
лаборатория Intel в МГУ
9
Визуализация трассы
Студенческая исследовательская
лаборатория Intel в МГУ
10
Средства и технологии Интел для
параллельного программирования и
высокопроизводительных вычислений
n
Компиляторы и
анализаторы
производительности:
n
n
n
n
Intel C++ Compiler
Intel Fortran Compiler
Intel VTune Performance Analyzer
Высокопроизводительные и
многонитевые библиотеки:
n
n
n
n
Intel Math Kernel Library
Intel Integrated Performance
Primitives
Intel Threading Building Blocks
Intel Thread Checker
Студенческая исследовательская
лаборатория Intel в МГУ
11
Средства и технологии Интел для
параллельного программирования и
высокопроизводительных вычислений
n
Технологии для кластеров:
n Intel Cluster Toolkit:
n
n
n
n
n
Intel MPI Library
Intel MPI Benchmarks
Intel Trace Analyzer and
Collector
Intel Math Kernel Library
Intel Cluster Toolkit Compiler
Edition:
n
То же самое + компиляторы, TBB, IPP и отладчик
Студенческая исследовательская
лаборатория Intel в МГУ
12
Технологии Интел для кластеров
Студенческая исследовательская
лаборатория Intel в МГУ
13
Intel® Math Kernel Library (Intel®
MKL)
n
Intel® MKL – библиотека
потокобезопасных,
высоко
оптимизированных
математических функций
для инженерных,
научных и финансовых
приложений.
Студенческая исследовательская
лаборатория Intel в МГУ
14
Intel® Math Kernel Library (Intel®
MKL)
Студенческая исследовательская
лаборатория Intel в МГУ
15
Intel® Integrated Performance
Primitives (Intel® IPP)
n
n
Intel IPP – библиотека функций для
обработки мультимедиа.
Содержит несколько сотен высоко
оптимизированных функций,
которые могут применяться для
следующих задач:
n
n
n
n
n
n
n
n
n
кодирование и декодирование
аудио, видео;
машинное зрение;
криптография;
сжатие данных;
обработка изображения;
трассировка лучей/визуализация;
обработка сигналов;
распознавание речи;
векторная/матричная математика;
Поддерживает расширенные наборы инструкций MMX и SSE.
Студенческая исследовательская
лаборатория Intel в МГУ
16
Intel MPI Library
n
Поддерживаются:
n
n
n
n
n
n
n
–Shared memory
–InfiniBand (via DAPL)
–Myrinet(via DAPL)
–Quadrics (via DAPL)
–AmmassoRNIC
AmmassoRNIC (via DAPL)
–Dolphin
Dolphin SCI (via sockets)
–Ethernet
Ethernet (via sockets and DAPL)
Студенческая исследовательская
лаборатория Intel в МГУ
17
Intel® Trace Analyzer and Collector
n
n
n
Trace Analyzer – сбор трасс
Trace Collector – визуализация трасс
Поддерживаемые языки:
n
n
Поддерживаются технологии:
n
n
n
C/C++, Fortran, Java
MPI, OpenMP, MPI+OpenMP
ОС: Linux, Microsoft Windows
Архитектуры: IA32, Intel64, IPF
Студенческая исследовательская
лаборатория Intel в МГУ
18
Intel® Trace Analyzer and Collector
Студенческая исследовательская
лаборатория Intel в МГУ
19
Intel® Trace Analyzer and Collector
n
Позволяет определять дисбаланс
нагрузки в программе.
n
Можно симулировать поведение
программы при различных
условиях, например, при очень
медленных коммуникациях.
n
Позволяет определить тупики в
MPI-программе и ошибки в
использовании MPI типов данных,
буферов, коммуникаторов,
операций точка-точка и
коллективных операций.
Студенческая исследовательская
лаборатория Intel в МГУ
20
Intel® VTune Performance Analyzer
n
Intel® VTune - приложение
для анализа
производительности
программ.
n
Дерево вызовов
обеспечивает графическое
представление потока
исполнения приложения.
Поиск «критического пути».
Строится на основе
инструментирования
двоичных исполняемых
файлов.
Студенческая исследовательская
лаборатория Intel в МГУ
21
Intel® VTune Performance Analyzer
n
Семплирование
n
Семплирование
на
основе
событий
обнаруживает места в
программе,
где
происходят
промахи
кэши,
ошибочные
предсказания
перехода
и
т.п.
Семплирование
на
основе событий имеет
очень
низкие
накладные расходы обычно меньше 5%.
nРезультаты
семплирования
отображаются построчно на
исходный код.
Студенческая исследовательская
лаборатория Intel в МГУ
22
Download