Тезисы: Очень популярной техникой для улучшения производительности скомилированного кода относительно стандартных настроек сегодня стал итеративный перебор параметров оптимизаций компилятора. Большинство подходов используют для параметризации всё приложения целиком, в данной же статье описывается работа модифицированного компилятора, с которым ведётся параллельный поиск наилучшего набора оптимизаций для каждой функции по-отдельности. Для самого поиска мы выбрали и реализовали шесть наиболее известных алгоритмов и сравнили результаты их работы. Для измерения производительности мы использовали стандартный набор тестов SPEC CPU2000, компьютеры на базе процессоров Intel® Core 2TM, Microsoft Windows* 2003 и модифицированный компилятор Intel® Compiler версии 10.1. Мы выбрали шесть опций компилятора, влияющие на производительность получаемого кода наибольшим образом.

В результате мы получили максимальный прирост производительности на отдельном тесте 14.5%, а на всей сюите в сумме – 2.2%. Сравнение алгоритмов показало, что различные алгоритмы добиваются в конечном счёте очень близких результатов, в пределах 2% друг от друга, но некоторым для этого достаточно было только 40 итераций, тогда как другие добивались сходного результата ближе к 100 итерациям (мы выставляли ограничение на 100 итераций максимум).