Анализ производительности последовательного кода. Основы VTune™ Performance Analyzer ЛЕКЦИЯ №9, часть 2.

Slides:



Advertisements
Similar presentations
Выпускная квалификационная работа на тему: «Применение интернет-технологий как фактор повышения эффективности функционирования организации (на примере.
Advertisements

Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Help: настройка Visual Studio.Net для создания консоль-приложения на основе Intel C++ с применением OpenMP. Инструменты «Практическое параллельное программирование.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Схема распределения грантов городам-участникам программы Тасис (TCAS) Экологические гранты для муниципалитетов.
Поиск оптимального набора параметров оптимизаций компилятора Брусенцов Леонид Евгеньевич студент 4 курса ФИТ НГУ Руководители:Илья.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Системы с наследованием. Если систему можно представить в виде : Где - непрерывные функции, то такая система называется системой с наследованием. Математическое.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
ООО «Баркод Маркет».  Инвентаризация имущества – программная система, позволяющая организовать учет любого имущества компании.  Уменьшение неконтролируемых.
Астащенко Александр, 445 группа Научный руководитель: В.Г.Шистеров.
Тел. (495) Москва, а/я 212 Рабочая группа по реформе МВД Москва, 2010 Новикова Асмик, Фонд «Общественный вердикт»
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
ПРИНЦИПЫ РАЗРАБОТКИ СИСТЕМЫ КЛАССА LEARNING MANAGEMENT SYSTEM И ОПЫТ ЕЕ ИСПОЛЬЗОВАНИЯ НА ФАКУЛЬТЕТЕ МЕНЕДЖМЕНТА Афанасьева С.В. Кафедра бизнес-информатики.
Всевоволод Головизнин, MVC – паттерн проектирование, в котором бизнес - логика, управляющая логика и интерфейс разделены на три отдельных компонента.
Bank ownership and lending behavior Alejandro Micco, Ugo Panizza Politicians and banks: Political influences on government-owned banks in emerging markets.
Определение необходимого уровня запасов на складе.
Миллер Дмитрий, 545 группа Научный руководитель: д.ф.-м.н., профессор, А.Н.Терехов Рецензент: к.ф.-м.н, доцент, А.Н. Иванов.
Учитель математики Кулакова Т.М. МОУ ООШ №15 г.о Новокуйбышевск Самарской области Сентябрь 2011г.
Что за хулиган толкает пассажиров автобуса то вперед, то назад? Этот хулиган, вернее, хулиганка -
Российский государственный педагогический университет им. А.И. Герцена ИНСТИТУТ ДОВУЗОВСКОЙ ПОДГОТОВКИ Дистанционное обучение «Русский язык. Подготовка.
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
Обзор последних достижений биометрических методов аутентификации РусКрипто 2005.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Адаптивный метод распределения SPMD-заданий в грид Паньшенсков Михаил, 545 группа Научный руководитель: Лукичев А.С. Рецензент: Демьянович Ю.К июня.
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Демидов А.В г. Операционные системы Лекция 3 Процессы.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Оценка эффективности инвестиционных проектов. Показатели эффективности инвестиций. Критерии принятия инвестиционных решений.
Freelance: правила игры. КИРИЛЛ РЕЗНИЧЕНКО + СПЕЦИАЛИСТ В ОБЛАСТИ 3D ГРАФИКИ + КООРДИНАТОР ОБРАЗОВАТЕЛЬНОГО ЦЕНТРА КОМПАНИИ AUTODESK ПРИ ВГУ.
Работа выполнена в рамках проекта "Информационные технологии в управлении образованием" 1С: ХроноГраф 2.5 Последовательность создания в программе «1С:
1 Организация вычислительной системы ЛЕКЦИЯ №2 Калинина А.П.
Основы цифровой обработки речевых сигналов. Общая схема процесса речеобразования x[n] – дискретные отсчеты сигнала возбуждения y[n] – дискретные отсчеты.
Growing Neural Gas Method Нейросетевой метод построения неструктурированных адаптивных сеток.
Apache Harmony или как сделать курсовую работу в рамках этого проекта Фурсов Михаил.
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
1 Ребенок в Сети. Ребенок играет?
 Нужно много различных протоколов связи  Каждый из них может реализовываться на разных платформах Современные сети Много устройств, компьютеров и сетей.
Отладка и профилирование JavaScript/Ajax
"The European Molecular Biology Open Software Suite"
Практические рекомендации по распараллеливанию с помощью OpenMP и измерению ускорения. Ошибки при многопоточном программировании. Распределение заданий.
Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:
Поиск ошибок в многопоточном приложении (на примере Thread Checker) ЛЕКЦИЯ 9, часть 1.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Кураева Екатерина Анатольевна, заместитель директора по УВР, учитель математики сш № 29.
Проект «Безопасный браузер» Визовитин Николай Кадашев Дмитрий.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Проект «Безопасный браузер» Визовитин Николай Научный руководитель: Д.В. Иртегов.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Геоинформационные системы Чернышов Алексей Акимович.
Формализованы ли цели? Устраивает ли вас команда? Каковы этапы процесса? Изменение ИТ структуры? Нужны подрядчики? 1.
Обработка исключений Гудов А.М., Завозкин С.Ю
TMG Tel: 8 (495) Fax: 8 (477) Technology Management Group ООО «TMG» PayKeeper.
Классификация, кластеризация и поиск изображений на основе низкоуровневых характеристик Наталья Васильева Руководитель: Новиков Б. А.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
INFSO-RI Enabling Grids for E-sciencE Управление заданиями в GRID. Н. Клопов ПИЯФ, Гатчина.
R E F R I G E R A T I O N A N D A I R C O N D I T I O N I N G Блок мониторинга и централизованного управления АK-SM 350.
Multi-core Programming VTune Analyzer Basics. 2 Basics of VTune™ Performance Analyzer Topics What is the VTune™ Performance Analyzer? Performance tuning.
1 R E F R I G E R A T I O N A N D A I R C O N D I T I O N I N G Как обновить программное обеспечение в AK-SC 255.
Writing Friendly Letters A Write On Activity. Friendly letters have five parts: 1. The Heading 2. The Salutation (greeting) 3. The Body (some paragraphs)
Intel Software Development Products. ZJU-Intel Embedded Technology Center VTune ™ Performance Analyzer  Helps you identify.
СОСТАВЛЕНИЕ ОПТИМАЛЬНОГО ПЛАНА ПРОДАЖ НА ПРИМЕРЕ МНОГОКВАРТИРНОГО ДОМА ЖДАНОВА МАРИЯ 4 КУРС, НИУ ВШЭ СПБ, СПБШЭМ, ДЕПАРТАМЕНТ ЭКОНОМИКИ ГРУППА « АНАЛИТИЧЕСКАЯ.
Микропроцессорные системы Программирование INTEL 8086 Системная программа Debug.
Microsoft Developer Tour Технологическая экспедиция msdevtour.ru.
Внимание! Так как файлы с поддержкой макроса невозможно загрузить, необходимо через режим разработчика вставьте этот код (Файл-Параметры-Настройка Ленты-
Jokes Jokes Jokes Teacher: Where's your text book? Student: At home. Teacher: What's it doing there? Student: Having a.
SDL TRADOS 2006 Сокращение затрат и удвоение производительности: лингвистические технологии на основе баз данных от ведущей компании.
SCOM2007: Мониторинг работы Hyper-V, Terminal Services, App-V
Development of High Performance Computing Environment
Presentation transcript:

Анализ производительности последовательного кода. Основы VTune™ Performance Analyzer ЛЕКЦИЯ №9, часть 2

2 ЛИТЕРАТУРА 99% - по материалам тренинга Intel для преподавателей ВУЗов, апрель 2006, Нижний Новгород, «свободный перевод» Калининой А.П.

3 Цели и задачи Научиться: Понять предназначение и модели использования VTune™ Performance Analyzer. Выделять «узкие места» (hotspots) приложения, используя различные формы представления данных анализа (образцов, samples) при сэмплировании (sampling). Понять, каким образом организовано сэмплирование Использовать callgraph для поиска «узких мест»

4 Содержание Что такое VTune™ Performance Analyzer? Концепции измерения производительности Выявление системных событий (Using the sampling collector) Как «сэмплинг» (sampling) работает Сэмплирование во времени Call Graph

5 VTune™ Performance Analyzer Поможет вам выявить и решить задачи повышения производительности работы приложения с помощью: Сбора данных, характеризующих эффективность работы системы, на которой приложение выполняется. Организации представления данных анализа в различных взаимосвязанных формах, от системных данных (выполненные инструкции, промахи кэша и т.д.) до соответствующих им участков кода или ассемблерных инструкций. Выявить проблемные места и предложить потенциально возможные решения.

6 Поддерживает... Локальную и удаленную сборку данных Профилирует приложения, которые выполняются на той же системе, где установлен VTune Performance Analyzer Выполняет тестирование на других системах с помощью удаленного агента

7 Локальный анализ производительности Процессоры Intel ® IA-32 Microsoft Windows* Red Hat Linux* SuSE Linux Семейство процессоров Itanium ® Microsoft Windows Red Hat Linux SuSE Linux Версии поддерживаемых операционных систем смотреть в комментариях к релизу

8 Host/Target Environment VTune™ Performance Analyzer поддерживает удаленную сборку данных VTune™ Performance Analyzer устанавливается на «хост» -системе Удаленный агент устанавливается на исследуемой системе Host-система Windows* операционная система Управляет выполнением на исследуемой системе Просмотр результатов анализа Target- система Семейство процессоров IA-32 или Itanium ® Windows или Linux* Intel ® PXA2xx processors running Windows CE* LAN соединение

9 Обзор возможностей Сэмплинг (Sampling) Call graph

10 Sampling: сбор всех данных о производительности данной системы Возможности VTune™ Analyzer и модели использования

11 Вид «Sampling Over Time» показывает, как зависит от времени количество собранных образцов Возможности VTune™ Analyzer и модели использования

12 Вид «Sampling Source» показывает участки кода вместе с количеством собранных образцов Возможности VTune™ Analyzer и модели использования

13 Call Graph собирает и показывает информацию для потока выполнения программы – «критический путь» Возможности VTune™ Analyzer и модели использования

14 Что такое «узкое место» (hotspot)? Место («где») в приложении или системе, в котором наблюдается значительная активность Где = адрес в памяти=> процесс операционной системы=> поток операционной системы=> выполняемый файл или модуль=> функция пользователя => линия строки кода или ассемблерная инструкция для процессора Значительная: не = активность, проявляющаяся нерегулярно, вряд ли будет иметь большое влияние на производительность системы Активность = проведенное время или другое внутреннее событие процессора Примеры других событий: промахи кэша (Cache misses), непредсказание переходов (branch mispredictions), выполненная инструкция над числом с плавающей точкой (floating-point instructions retired), partial register stalls, and so on.

15 Сэмплирование (Sampling): статистический метод поиска «узких мест» (Hotspots) Собирает данные Периодические прерывания процессора Через определенные временные интервалы (Time-based) Когда произойдет определенное количество микроархитектурных событий (Event-based) Запоминает контекст Адрес выполнения в памяти (CS:IP) Процесс операционной системы и номер потока ID Выполняемый модуль, загруженный по данному адресу Если есть символьная информация для данного модуля, функция или метод, связанные с этим адресом, будут идентифицированы. Номер строки в символьном файле может непосредственно указать на соответствующую строку кода программы.

16 Сбор системных событий (Sampling Collector) Периодически прерывает процессор, чтобы получить контекст выполнения Режим «через временной промежуток» (Time-based sampling (TBS)) переключается посредством: Таймера операционной системы Каждые n процессорных «клоктиков» (clockticks) Режим «Через определенное количество событий» (Event- based sampling (EBS)) : прерывание, когда счетчик данного события стал равен определенной величине Частота и набор этих событий зависят от типа исследуемого процессора, например, промахи кэша второго уровня (L2 cache misses), непредсказанные переходы (branch mispredictions), выполненная инструкция над числом с плавающей точкой (floating-point instructions retired), и т.д.

17 Результаты сэмплирования для процесса операционной системы Этот процесс операционной системы собрал максимальное количество «клоктик»-образцов Отсортированы по количеству «клоктиков» Отсортированы по количеству «клоктиков» VTune™ Analyzer Sampling: сбор данных

18 Щелкнуть здесь: вид «процесс OS » Щелкнуть здесь: вид «процесс OS » Покажет данные только для образцов типа Clockticks VTune™ Analyzer Sampling: сбор данных Щелкните здесь для вывода временной развертки Щелкните здесь для вывода временной развертки

19 Этот «вид» покажет только один тип событий для процесса 1 VTune™ Analyzer Sampling: сбор данных Щелкните здесь, чтобы установить прерывания посредством CPU. Щелкните здесь, чтобы установить прерывания посредством CPU.

20 Вид «таблица»: показаны данные для выделенной строки. VTune™ Analyzer Sampling: сбор данных

21 Вид «Hotspot» («узкие места»): представляет один модуль во всех процессах и потоках OS : группировка «по функциям» VTune™ Analyzer Sampling: сбор данных

22 VTune™ Analyzer Sampling: сбор данных

23 Все для данной строки кода Активность для инструкции VTune™ Analyzer Samplin: сбор данных Щелкните здесь, чтобы увидеть код ассемблера Щелкните здесь, чтобы увидеть код ассемблера

24 Totals for Source Line Activity at Instruction Locations VTune™ Analyzer Sampling: сбор данных Красные промежутки – больше образцов. Zoom In Zoom Out Выбрать событие

25 Задание 1. Поиск «узких мест» (Hotspot) Научитесь это выполнять с помощью VTune™ analyzer.

26 Три главных достоинства сэмплинга Вы не должны изменять Ваш код. Но ВЫПОЛНЯТЬ compile/link с символьной информацией и номерами строк (отладочная информация). Убирать оптимизацию. Получаете характеристики работы всей системы (system- wide). Не только ВАШЕ приложение. Вы можете наблюдать активность кода операционной системы,включая драйвера. «Накладные расходы» («оверхед») для сэмплинга чрезвычайно малы. Высокая достоверность при малых изменениях.

27 Как работает Event-based Sampling (EBS) (Conceptual Diagram) Сигнал от выбранного события после n событий Контролер Прерываний § Прерывает CPU Как выбрать количество событий (“Sample After” number)?

28 Сколько образцов достаточно? Один миллион образцов для 5-секундной работы? Вы уверены, что для статистической обработки этого достаточно? А оверхед большой? А если всего 100 образцов? А если 1? И каково качество анализа? Около 1,000 образцов в секунду – хороший баланс между результатами и погрешностью

29 Как сделать: 1,000 образцов в секунду Как, например, это сделать для «клоктиков» (clockticks)? Зависит от частоты CPU ОТВЕТ: через частоту CPU в килогерцах (KHz) Если частота CPU = 1,400,000,000 Герц (Hz) То «сэмплировать» через 1,400,000 clockticks Как определить эту величину, например, для промахов чтения кэша второго уровня (L2 cache read misses)? Это зависит от того, как часто получается промах второго кэша (miss the L2 cache)! «Круговое определение»? Сделайте оценку! Насколько реже, чем «клоктики»? 10раз? 100раз? 1000 раз?

30 Калибровка Установите количество n «сэмплировать после n» таким, чтобы количество получаемых образцов было нормальным. ~1000 образцов в секунду для логического CPU Сбор требует двойного выполнения приложения Калибровка «вручную»: Убрать Calibrate Sample After С помощью диалога Advanced Activity Configuration Выполнить со значениями по умолчанию (оценочными) Выполнить тест Изменить число и опять выполнить тест Постарайтесь получить 1000 образцов в секунду для логического CPU

31 Sampling во времени Показывает распределение во времени системных событий для процессов, потоков, модулей Крупный-мелкий масштаб Нужен для: Определить стабильность производительности во времени Понимания поведения потоков

32 Модель применения Sampling Over Time Собрать данные Выбрать тип событий, интересный Вам для процесса, потока, модуля «Щелкнуть» Выделить нужный регион «Щелкнуть» «Щелкнуть», чтобы увидеть временную гистограмму для process/thread/address

33 Задание 2: сэмплирование во времени (Sampling Over Time) Получить временную диаграмму

34 Профилирование с помощью Call Graph Отслеживает точки входа и выхода в выполняемых функциях Вашего приложения во все время работы Использует бинарное инструментирование Использует собираемые данные, чтобы определить поток выполнения, критические функции и последовательности вызовов Не для всей системы (не system-wide): профилирует только путь вызовов в приложении (in Ring 3)

35 Что можно исследовать? Win32 applications Stand-alone Win32* DLLs Stand-alone COM+ DLLs Java applications.NET* applications ASP.NET applications Linux32* applications

36 Вид Call Graph Красная линия показывает критический путь- путь, где затрачено максимальное время. Использует собственное время работы функции (self time). Оранжевый цвет показывает функции с максимальным собственным временем. Фильтрация посредством self time

37 Окно навигации Call Graph Используйте окно навигации, чтобы увидеть локализацию точки входа call graph.

38 Переключение видов Call Graph: вид таблица вызовов (Call List)

39 Характеристики, определяемые Call Graph ХарактеристикаОписание Собственное время (Self Time) Полное время работы функции, исключая время работы функций, вызываемых ей самой (включая время ожидания). Полное время (Total Time) Время от точки входа до точки выхода функции Полное время ожидания (Total Wait Time) Время локализации в функции и подфункциях во время блокировки потока Время ожидания (Wait Time) Время локализации в функции (без подфункций) во время блокировки потока выполнения Количество вызовов (Calls) Сколько раз вызывалась функция

40 Задание 3: Call Graph Найдите «узкие места» (hotspot) в gzip, используя call graph.

41 Сравнение Sampling и Call Graph SamplingCall graph Низкий оверхедВысокий оверхед Характеристики всей системы (System- wide) Только Ring 3 в дереве вызовов вашего приложения Гистограммы всех событий системыПоказывает иерархию вызовов функции с подсчетом вызовов, времени. Показывает критический путь Чтобы получить уровень функции, нужна debug-информация Выполнить «линкование» (re-link) с /Fixed:no, автоматически инструментируется Сэмплирование на основе времени и других процессорных событий На основе времени

42 Counter Monitor: показания счетчиков операционной системы во времени VTune™ Analyzer: возможности и модели применения

43 The Tuning Assistant: дает совет на основе анализа производительности VTune™ Analyzer: возможности и модели применения

44 Intel® Tuning Assistant Находит «узкие места» для: Pentium® 4, Pentium M®, Itanium® 2, and Pentium® III процессоров. Использует данные EBS (режим калибровки «по событиям») и данные Counter Monitor.

45 Intel® Tuning Assistant

46 Intel® Tuning Assistant VTune™ analyzer автоматически выбирает события в сэмплинг - визарде

47 Подробнее: щелкните гиперссылку. Intel® Tuning Assistant

48 Интерфейс командной строки Windows* Можно собирать данные с помощью командной строки. Просмотр данных в VTune™ Performance Analyzer или экспорт как текстов ASCII. Включает “vtl”в командной строке.

49 Windows* Command Line Interface Создает скрытую структуру проекта Создать активность: vtl create [имя активности] +опции Выполнить активность: vtl run [имя активности] Просмотр: vtl show Просмотр результатов в определенной форме: vtl view [имя активности::result] [опции] Уничтожить проект: vtl delete –all Уничтожить активность: vtl delete

50 Windows* примеры команд Сбор образцов clockticks, instructions retired and launch app matrix.exe: vtl activity a1 –c sampling –app matrix.exe run Просмотр hotspots в matrix.exe: vtl view a1::r1 –hf –mn matrix.exe Просмотр samles в каждом модуле системы: vtl a1::r1 view –modules

51 Windows*: Help интерфейса командной строки Для любых аргументов командной строки: vtl –help Для сэмплинга: vtl –help –c sampling Подробнее: Start->Programs->Intel® VTune™ Performance Analyzer->Help for the Command Line

52 Call Graph: дополнительные возможности Установка уровня инструментирования. Контролировать оверхед Выбрать инструментируемые функции. Помогает контролировать оверхед

53 Call Graph Advanced Options Это уровень инструментирования модуля. «Щелк здесь» для установки уровня инструментирования.

54 Уровни инструментирования УровеньОписаниеНужна ли Debug- информация? All Functions (все функции) Каждая функция инструментируетсяДа Custom (заказанные функции) Только некоторые, выбранные функции инструментируются Да ExportEvery function in the module’s export table is instrumented. Нет MinimalThe module is instrumented but no data is collected for it. Нет

55 Опции дополнительных возможностей Call Graph Cache directory location Этот режим полезен при анализе долго работающих и «объемных» приложений. Если его не установить, работа с памятью может быть очень медленной. Allow call graph to instrument COM interfaces.

56 Выбор инструментируемой функции Здесь можно установить статуc «инструментируется» или «не инструментируется» для любой выбранной функции

57 Вместе: Sampling и Call Graph Примените sampling для выявления «тяжелых» функций. Примените call graph, чтобы понять, кто их вызывает.

58 Sampling и Call Graph показывают разные Hotspots? Собственное время Call Graph включает время в ожидании. Event-based sampling (EBS) и time-based sampling (TBS) не включает время ожидания в функциях (оно обычно проявляется в системных процессах). Hotspots должны быть теми же для (self time – wait time) (это – «non-blocked self time»).

59 Показатели эффективности последовательного кода Программа работает максимально быстро Должен быть «запас прочности» на случай «неблагоприятных условий» - эффективная работа процессора Должны быть возможности к распараллеливанию Оптимизация последовательного кода

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

61 Факторы, способствующие эффективной работе процессора при обработке данных чем меньше общее количество данных, участвующих в работе чем реже число обращений к ним чем больше степень повторного использования данных, находящихся в кэше… Но это далеко не все! Возникают вопросы: Какая из этих характеристик важнее? Как количественно определить роль того или иного фактора? А может быть, есть что-то еще, более важное? Оптимизация последовательного кода

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

63 Микроархитектура Netburst, используемая в микропроцессоре Intel Xeon Выбор количественных показателей эффективной работы процессора …

64 Что можно извлечь из диаграммы блоков процессора… пути обмена данными «оперативная память, шина, третий кэш, второй кэш, первый кэш» узел с максимальным числом связей - второй кэш, который связан и с первым кэшем, и с третьим кэшем, и с другими устройствами К тому же: не везде есть третий кэш, тогда второй кэш связан напрямую с шиной … Вопрос: можно ли ограничиться рассмотрением количества обращений во второй кэш как показателем эффективности? Ответ: нельзя, так как, хотя и обращение к другим уровням памяти бывает и реже, но требует больше времени… Каждый новый уровень иерархии обращения к памяти требует больше времени, как правило, на порядок… Выбор количественных показателей эффективной работы процессора…

65 Латентность при обращении к различным иерархическим уровням памяти. Пример: Origin2000 memory hierarchy Level Latency (cycles) register0 primary cache2..3 secondary cache8…10 local main memory & TLB hit 75 remote main memory & TLB hit 250 main memory & TLB miss2000 page fault10^6 Выбор количественных показателей эффективной работы процессора…

66 На что следует обратить внимание… Обращения во второй кэш Характеристики работы шины… А также другие события, входящие в группу «Memory events» VTune Sampling Analysis Группа: из-за особенности работы VTune: нечеткие события: при сложном событии на момент прерывания фиксируется то простое событие, которое произошло последним… Выбор количественных показателей эффективной работы процессора …

67 Выбор показателей эффективности работы процессоров для SMP – систем необходимо хотя бы в самом общем виде изучить схему симметричной мультипроцессорной машины. Выделить разделяемые узлы Иметь инструмент, чтобы наблюдать характер процесса… Оптимизация последовательного кода

68 Диаграмма блоков SMP – системы. Пример: IBM System 370 Выбор показателей эффективности работы процессоров для SMP – систем

69 Что можно извлечь из диаграммы SMP системы… Разделяемый ресурс – шина… Синхронизация доступа к памяти – на уровне 2-ого кэша процессоров… Вывод: те же нагруженные узлы, что и в случае одного процессора… Выбор показателей эффективности работы процессоров для SMP – систем

70 Методика выбора оптимальных последовательных вариантов при оптимизации работы с памятью Основные критерии выбора алгоритма программной реализации: - Время работы - минимально - CPI – минимально Возможность распараллеливания - чем выше, тем лучше. Дополнительные показатели: - События, выделяемые Tuning Assistant на основе группы событий, отвечающей за работу с памятью – позволяют выбрать направление для оптимизации Замечание. Если время работы различных вариантов имеет один порядок, то группа выбирается из категории «events», если временные отличия значительные, дополнительно нужно рассмотреть группу из категории «events ratio» Оптимизация последовательного кода