Анализ указателей в программах с вызовами библиотечных функций. Маркин, страница 2
Описание файла
PDF-файл из архива "Анализ указателей в программах с вызовами библиотечных функций. Маркин", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
На задаче 456.hmmer ускорение связано с тем, что все используемыебиблиотечные функции оказались в модели.Как и в SPEC-CPU2006 уменьшения расхода памяти почти не наблюдается — только назадаче 456.hmmer на 3%, что находится в пределах погрешности. Наибольшее увеличениерасхода памяти показала задача 462.libquantum на 82%. Также значительная разница междунаборами опций «full_lib» и «fast_lib» наблюдается на задачах 401.bzip2 и 433.milc.
Причинытаких разрывов те же, что и для задач 164.gzip и 256.bzip2.Замеры времени исполнения тестов не дали значимого результата, что свидетельствует онезначительном влиянии результата анализа библиотечных функций на эффективностьанализа указателей и, как следствие, скорость исполнения данных задач.Замеры времени исполненияДля оценки влияния внедрённой модели на общую скорость работы программ былипроизведены замеры времени исполнения задач из набора SPEC-CPU2000. Замерыпроизводились для сборок в помодульном режиме и в режиме «вся программа». Сравнениепроизводилось между тремя разными режимами, описанными выше: «black_box», «full_lib»,«fast_lib».
Погрешность измерений составила 0.44%, что объясняется малым влияниемвнешних факторов на среду исполнения.РезультатыможновидетьРис. 3.а Скорость исполнения задач в помодульномрежиме сборкина Рис. 3.б Скорость исполнения задач в режимеРис. сборки «вся программа»2 а,б.В помодульном режиме сборки разница в режимах «black_box» и «full_lib» отсутствует,что является закономерным следствием того, в обоих режимах отсутствует информация иликод библиотек. Режим «fast_lib» показал в среднем ускорение на 18%.
При этоммаксимальное замедление произошло в задаче 255.vortex на 2%, а максимальное ускорениепроизошло в задаче 173.applu на 295%, т. е. почти в три раза. Стоит отметить, что этоединичный выброс и ускорение на остальных задачах не превышает 50%.Для режима сборки «вся программа» наблюдаются схожие результаты. Средняя разницамежду режимами «black_box» и «full_lib» составляет 1%. Режим «fast_lib» показал среднееускорение на 19%, также с выбросом на задаче 173.applu, ускорившейся на 310%.
Ускоренияпо остальным задачам также не превышают 50%. Наибольшая деградация наблюдается назадаче 186.crafty, замедлившейся на 3%.ВыводыВ статье рассмотрено влияние использования модели поведения библиотечных функцийвместо анализа их кода. Результаты исследований показали, что использование такой моделизначительно уменьшает среднее время работы анализа указателей по сравнению с полныманализом содержимого библиотечных функций и сокращает расходы по памяти. Однакосокращение потребляемых ресурсов при анализе указателей не отразилось на времениисполнения задач.Замеры времени исполнения при использовании модели поведения библиотечныхфункций прочими оптимизациями показали в среднем ускорение работы программ как впомодульном режиме, так и в режиме сборки «вся программа», что делает использованиеподобной модели полезным для практического применения.Литература1.«Optimizing compilers for modern architectures», Randy Allen & Ken Kennedy2.«Interprocedural Dataflow Analysis in the Presence of Large Libraries», AtanasRountev, Scott Kagan, Thomas Marlowe3.http://www.spec.org/ [Электронный ресурс].