При разработке сложных программных продуктов приходится жертвовать оптимальностью конечного кода в пользу упрощения всего процесса их создания. Всё большие надежды возлагаются на оптимизирующие компиляторы, особенно это связано с распространением и постоянным обновлением многоядерных архитектур микропроцессоров. Компьютерные технологии проникли во все аспекты нашей жизни, производительность устройств очень важна, и может быть существенно улучшена с помощью оптимизации заложенных программ.
Оптимизирующие компиляторы очень сложны, рассчитаны на многие архитектуры процессоров, поэтому требуется тонкая настройка. В данной работе рассматривается статистический анализ возможностей автоматической оптимизации на множестве заданных исходных кодов приложений и предлагается способ грубой оценки границы оптимизации для произвольного кода на основе полученных данных. Конечно, при этом не берётся в рассмотрение алгоритмическая составляющая.
Для анализа используются данные об исходном коде программы, получаемые с помощью эмулятора процессора PIN 2.6 и модифицированного компилятора Intel® Compiler 12.1, а также результаты профилировки с помощью Intel® PTU 3.2 на процессоре Intel® Core 2 Duo. В работе также предлагаются вероятностные модели для основных узких мест современных архитектур.
Full text file: | Брусенцов.pdf |