Оптимизация параллельной программы
10.8.2. Подготовка приложения для профилирования
Для того чтобы приложение можно было профилировать при помощи ITP, необходимо установить определенные настройки компиляции и компоновки проекта. Большинство из них установлены по умолчанию, но некоторые необходимо указывать самостоятельно.
- В меню Build выберите пункт Configuration Manager…, в открытом окне выберите режим Release.
- В меню Project выберите пункт Properties, в результате чего появится окно, представленное на рис. 10.7. В дереве слева выберите узел Configuration Properties C/C++ General. В открывшейся таблице справа для элемента с именем Debug Information Format, установите значение Program Database (/Zi). Нажмите кнопку Apply.
- В этом же окне настроек проекта необходимо убедиться в том, что для приложения генерируется отладочная информация. В дереве слева выберите узел Configuration Properties Linker Debugging. В открывшейся таблице справа для элемента с именем Generate Debug Info, необходимо установить значение Yes (/DEBUG). После этого нажмите кнопку Apply.
- Убедитесь, что используются потокобезопасные библиотеки. Для этого выберите узел Configuration Properties C/C++ Code Generation. В открывшейся таблице справа для элемента с именем Runtime library установите значение Multi-threaded DLL (/MD). Нажмите кнопку Apply.
- Убедитесь, что приложение компонуется с использование опции /fixed:no. В окне настроек проекта выберите узел Configuration Properties Linker Advanced. В открывшейся таблице справа для элемента с именем Fixed Base Address установите значение Generate a relocation section (/FIXED:NO). Нажмите кнопку Apply.
После выполнения данных процедур ваше приложение готово к профилированию.
10.8.3. Профилирование приложения
10.8.3.1. Создание проекта Intel Thread Profiler
- Запустите Intel® Thread Profiler. Найти его можно, например, по следующему пути: Start All programs Intel(R) Software Development Tools Intel(R) Thread Profiler 3.0 Intel(R) Thread Profiler.
- В открывшемся окне нажмите на кнопку New Project.
- В новом окне выберите Intel(R) Thread Profiler Wizard и нажмите кнопку OK.
- Ниже надписи Launch an application имеется строка, в которой необходимо указать имя профилируемого приложения. Нажмите кнопку […] и в открывшемся диалоговом окне укажите путь до приложения, подлежащего профилированию. В нашем случае это С:\ITPLab\Factorization\release\Factorization.exe.
- Нажмите кнопку Finish.
После этого ITP произведет инструментацию вашего приложения и немедленно начнет профилирование. Когда сбор трассы завершится, информация о ней появится на экране. Окно ITP содержит следующие элементы: панель инструментов, браузер результатов запусков ( Tuning Browser ), окно сообщений Output и окна Profile и Timeline (рис. 10.14). Последние два окна являются основными источниками информации о критическом пути приложения.
10.8.3.2. Профилирование
Профилирование приложения можно начать несколькими способами:
- Выбрать пункт меню Activity Run,
- Нажать F5,
- Нажать на панели инструментов кнопку с зеленой стрелкой.
Результаты каждого запуска сохраняются, и вы можете работать с несколькими профилями одновременно. Доступ к профилям осуществляется через пункт меню View Tuning Browser.