Научная статья на тему 'Статистическое моделирование быстродействия программ'

Статистическое моделирование быстродействия программ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
307
69
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЫСТРОДЕЙСТВИЕ ПРОГРАММ / СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ / РЕГРЕССИОННАЯ МОДЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Карпенко А. П., Панков М. К.

При проектировании компьютерных систем, а также в процессе итеративной компиляции возникает задача оценки быстродействия программ на данной системе. Традиционным методом решения данной задачи является эмуляция исполнения программы на целевой системе. Современным альтернативным подходом к оценке быстродействия программы является подход, основанный на построении статистической модели быстродействия этой программы на исследуемом компьютере. Представляем статистический метод Velocitas моделирования быстродействия программ на компьютерах общего назначения. Даем описание метода и его программной реализации в виде инструментария Adaptor. Приводим результаты исследования эффективности метода и указанного инструментария, которые показывают достаточно высокую точность предсказания быстродействия программ.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Карпенко А. П., Панков М. К.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Статистическое моделирование быстродействия программ»

НАУЧНОЕ ИЗДАНИЕ МГТУ ИМ. Н. Э. БАУМАНА

НАУКА и ОБРАЗОВАНИЕ

Эл № ФС77 - 48211. Государственная регистрация №0421200025. ISSN 1994-0408

электронный научно-технический журнал

Статистическое моделирование быстродействия программ

# 01, январь 2014

DOI: 10.7463/0114.0679688

1 2 Карпенко А.П. , Панков М.К.

УДК 519.6

1 Россия, МГТУ им. Н.Э. Баумана [email protected] ООО «Исследовательский центр Самсунг» [email protected]

Введение

При проектировании компьютерных систем возникает задача оценки быстродействия программ на данной системе. Эта же задача возникает в процессе итеративной компиляции. Традиционным методом решения данной задачи является эмуляция исполнения программы на целевой системе [1]. У этого метода имеется несколько недостатков. Во-первых, он требует полной реализации алгоритма функционирования эмулируемого компьютера, что влечет за собой большие временные и денежные затраты. Во-вторых, скорость выполнения оцениваемой программы на эмуляторе меньше скорости выполнения на реальном компьютере в сотни и тысячи раз [2, 3].

Современным альтернативным подходом к оценке быстродействия программы является подход, основанный на построении статистической модели быстродействия этой программы на исследуемом компьютере. Известно значительное число работ, посвященных исследованию эффективности данного подхода. Так в работах [4, 5] представлены результаты статистического моделирования быстродействия программ для встраиваемых компьютерных систем. При этом использованы метод главных компонентов (Principal Component Analysis, PCA), метод k-средних (k-means) и метод машины опорных векторов (Support Vector Machine, SVM). В работе [6] исследована модель быстродействия программ для персональных компьютеров на основе эволюционного метода и набора тестовых программ SPEC2006. Достигнутая авторами ошибка предсказания составляет от 8 до 10%.

Целью работы является разработка нового метода построения статистических моделей быстродействия программ на компьютерах общего назначения, программная реализация метода в

составе инструментария анализа быстродействия и оценка эффективности указанных метода и инструментария на избранных программах из набора тестов Polybench/C [7]. В качестве меры быстродействия программы используем время исполнения программы (ВИП).

В первом разделе представляем постановку задачи и предлагаемый метод Velocitas построения регрессионной модели ВИП. Во втором разделе даем описание программной реализации метода в виде инструментария Adaptor. В третьем разделе приводим результаты исследования эффективности разработанного метода и программного инструментария. В заключении формулируем основные результаты работы и обрисовываем перспективы ее развития.

1. Постановка задачи и схема метода Velocitas

Время исполнения исследуемой программы y = T определяет |X| -мерный вектор

X = (xl5 x2,..., x|x| ) факторов, примерами которых являются тактовая частота используемого

процессора, размер его кэш-памяти, размерность входного вектора обрабатываемых программой данных и т.д. Функциональная зависимость y = f (X) неизвестна.

Выполнено |E| экспериментов по оценке времени T, результатами которых является набор

E = {(Xi, ), i е [1: |E|]}. Здесь Xi - вектор значений факторов в i -ом эксперименте, = Ti -оценка ВИП в этом эксперименте.

Ставится следующая задача: на основе набора E построить регрессионную модель f (X), аппроксимирующую функциональную зависимость f (X ).

Метод Velocitas включает в себя следующие основные шаги.

1) Проводим IE экспериментов и формируем набор E = {(Xi, ~yi), i е [1: |E|]}.

2) Фильтруем набор E путем исключения из него результатов экспериментов, которым соответствует ВИП, меньшее заданной величины Tmin :

E = E \{(Xi Д.)|~ < Tmm]}.

Подчеркнем, что для простоты записи за отфильтрованным набором E оставлено прежнее обозначение.

3) Опционально, выполняем процедуру извлечения признаков (feature extraction): на основе вектора http://technomag.bmstu.ru/doc/679688.html 189

X формируем дополнительные факторы x[, x2 ,...,x'r и расширенный вектор X' размерности E' = |E + r , где r - число дополнительных факторов.

4) Выполняем ранжирование факторов - оцениваем веса факторов и исключаем из числа компонентов вектора X' те из них, вес которых w не превышает заданную величину s :

X' = X' \{(x')|w(x') < s; i e [1: |X'|]}.

5) Случайным образом разделяем набор E" на обучающую Eleam и тестовую Etest выборки, так

что Elearn U Etest = E" и Elearn П Etest =null.

6) На основе выборки Eleam строим одну или несколько регрессионных моделей ВИП f (X") -осуществляем обучение этих моделей.

7) На основе выборки Etest проверяем качество построенных моделей ВИП - вычисляем значения критериев качества аппроксимации.

8) Визуализируем полученные результаты исследования и заканчиваем вычисления.

Рассмотрим детальнее представленные выше основные шаги метода Velocitas.

1) Формирование экспериментального набора E. Инструментарий Adaptor, реализующий метод Velocitas, поддерживает эксперименты по запуску программ, исходный код которых содержится в базе данных инструментария. Заметим, что для формирования репрезентативных наборов программ, база исходных кодов программ должна быть достаточно большой. Для того чтобы иметь возможность обнаружить «похожесть» исследуемых программ при изменении аппаратного обеспечения, указанные наборы должны включать в себя «похожие» программы.

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

При «внешнем» измерении ВИП на это время оказывают влияние также накладные расходы, обусловленные запуском программы из системы. Для исключения этих расходов измерение ВИП целесообразно производить из самой исследуемой программы (так называемое, «внутреннее» измерение времени) и выводить это время, например, в стандартный поток ошибок. Заметим, что таким образом организовано измерение времени в пакете тестирования производительности PolyBench [7].

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

Кроме отмеченных выше сложностей имеет место проблема измерения малого ВИП. Если это время составляет величину порядка 1 мс (таково временное разрешение системного вызова Unix gettimeofday), то даже при многократном запуске программы точность измерения ВИП оказывается недостаточной. Для решения данной проблемы используем оценку дисперсии ВИП, и запуски программы продолжаем до тех пор, пока эта дисперсия не станет меньше заданной величины.

Оценку точности измерения ВИП производим путём сравнения измеренного времени с временем, определенным с помощью таймера при вызове функции usleep стандартной библиотеки языка С из исследуемой программы. При этом, как отмечалось выше, имеют место ошибки, обусловленные временными расходами на запуск исследуемой программы из инструментальной системы. Для уменьшения влияния этих ошибок, по рассмотренной методике вычисляем время выполнения «пустой» программы, а затем вычитаем его из результатов измерения времени выполнения исследуемых программ (п.3.1).

2) Фильтрация набора E производится с целью удаления заведомо некорректных данных. К таким данным относятся результаты тех экспериментов, в результате которых для ВИП получено

значение, меньшее Tmui = 0,001 c (минимально измеримое системой время исполнения).

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

4) Ранжирование факторов. Инструментарий Adaptor использует для статистической обработки

данных систему Orange, которая поддерживает следующие алгоритмы ранжирования факторов: Relief F, MSE, Earth Importance и Random Forest Importance [8]. Эффективность этих алгоритмов исследована нами на исходных данных, используемых в третьей серии экспериментов (п. 3). Результаты исследования показали, что лучшие результаты обеспечивает алгоритм Earth Importance [9].

5) Формирование обучающей и тестовой выборок. Данная процедура заключается в случайном выборе П-ой части экспериментальных данных E и помещении этих данных в выборку ßleam;

П £ (0; 1). Оставшиеся данные образуют выборку Etest. Рекомендованное значение величины П равно 0,7.

6) Построение регрессионных моделей ВИП. Система Orange обеспечивает формирование следующих регрессионных моделей: kNN (k Nearest Neighbours), Random Forest, Earth Learner и Linear Regression [8]. Заметим, что квазиоптимальным значением параметра k для модели kNN является k = 30. Оптимизация этого параметра может быть выполнена путём сеточного поиска (grid search) [10].

7) Проверка качества моделей ВИП. Для оценки качества построенных на предыдущем шаге регрессионных моделей ВИП могут быть использованы следующие критерии, поддерживаемые системой Orange: среднеквадратическая ошибка (Root Mean Square Error, RMSE), относительное среднеквадратичное отклонение (Root Relative Squared Error, RRSE), коэффициент детерминации

(determination factor) R = R2 [8].

8) Визуализация результатов исследования. Для визуализации результатов используются библиотека matplotlib языка программирования Python [11].

2. Программная реализация инструментария Adaptor

В качестве основного языка реализации инструментария Adaptor использован язык Python [12]. Для удобной работы рекомендуется интерпретатор ipython, который предоставляет собой графическую оболочку этого языка, позволяющую строить графики, сохранять информацию о сессиях использования интерпретатора и т.д.

Как отмечалось выше, статистическую обработку результатов исследования выполняем средствами система Orange [8], для визуализации результатов используем библиотеку matplotlib языка программирования Python [11].

Репозиторий кодов исследуемых программ реализован на основе сервера известной распределённой

системы контроля версий Git. База данных для хранения результатов экспериментов функционирует под управлением СУБД CouchDB, которая ориентирована на использование в распределённых системах, что позволяет обеспечить многопользовательский режим эксплуатации Adaptor.

Инструментарий Adaptor поддерживает формирование сценариев исследований с помощью таких функций, как «собрать программу», «запустить программу с измерением времени», «построить зависимость ВИП от используемого компилятора» и т. д. Сценарий можно сформировать интерактивно или задать в исходном файле в виде функции языка программирования Python с использованием средств API. Кроме того, инструментарий Adaptor предоставляет интерфейс для применения Adaptor в качестве модуля языка Python другими пользователями.

2.1. Архитектура инструментария Adaptor

Инструментарий Adaptor построен по клиент-серверной архитектуре (рисунок 1). Здесь серверный компонент «Представления данных» обеспечивает доступ клиентских компонентов к базе данных. Основные функции клиентских компонентов рассмотрены ниже.

Рисунок 1 - Архитектура инструментария Adaptor

Система взаимодействия с базой данных реализует сохранение данных о проведённых экспериментов в локальной или удалённой базе данных. Система предоставляет клиенту высокоуровневый программный интерфейс к базе данных, выполняет преобразование кодов исследуемых программ в документы базы данных, при необходимости запускает локальный сервер базы данных СоиеИПБ для промежуточного хранения результатов вычислительного

эксперимента.

Система сборки программ. Исследуемые программы на языке программирования С находятся в базе данных инструментария Adaptor. Система осуществляет сборку этих программ в исполняемые файлы. Заметим, что параметры сборки могут меняться в процессе работы системы (например, вследствие изменения размерность входных данных). Система также управляет настройками компилятора, включая используемый уровень оптимизации.

Система проведения экспериментов осуществляет запуск исследуемых программ и измерение времени их исполнения; выполняет калибровку результатов измерения ВИП, для чего производит измерение времени исполнения простейшей («пустой») программы; адаптивно управляет числом запусков исследуемой программы для достижения заданной дисперсии ВИП; запускает систему сбора информации о программной и аппаратной платформе; передаёт результаты экспериментов в систему взаимодействия с базой данных.

Система сбора информации выполняет сбор информации о программно-аппаратной платформе, на которой исполняется исследуемая программа, а также о самой этой программе. Об используемом процессоре собирается следующая основная информация: название; тактовая частота; объём кэшпамяти верхнего уровня; наличие поддержки расширений набора инструкций (SSE). Относительно компилятора накапливаются следующие данные: название; используемые настройки оптимизации. Программу идентифицируют, прежде всего, ее название и размерность вектора входных данных.

Система анализа данных выполняет обработку экспериментальных данных с целью выявления зависимости производительности программно-аппаратной платформы от ее характеристик. Система получает данных из базы данных и записывает их в CSF-файлы для ввода в программу Orange; осуществляет визуализацию результатов исследования с помощью библиотеки matplotlib языка программирования Python; поддерживает построение простейших однофакторных регрессионных моделей ВИП, а также более сложных трех-пяти факторных моделей.

2.2. Пример использования инструментария Adaptor

Приведем в качестве примера реализацию с помощью инструментария Adaptor следующего вычислительного эксперимента.

1) Сборка исследуемой программы с определёнными настройками сборки.

2) Запуск программы в контролируемом аппаратном и программном окружении. Измерение ВИП.

3) Сохранение данных об эксперименте в базе данных для последующего анализа и обработки.

Конвейер обработки данных, реализующий указанный вычислительный эксперимент, представлен на рисунке 2.

О

[□К—

1, File

3. Select Attributes Data'

\ \

t'H

4. Distributions

5. Scatterplot

S

D^ta

I \

• y

L ¿á¡| И1, Test Learners (1)

J

Predictions

/1

В

13. k Nearest 17. Predictions - kNN (1) 20. Save - kNN (1.) Neighbours Regres^ffner

7b) /

a

fi

píest jLe. Predictions - RF (1) 19, Save - RF (1)

2. Attribute Statistics

Da^»-

6. Feature Constructor

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Data^T^njáMflp^ Is.F

I / y Rfegressien (1.) itñ/^iruáfirtiaininf' _ /1

If/, ©

S

Matdiirjg-Data'C

.educed Da'

íeduc

'¡fJrS

Лк

ÖPredictions 1_¡1

и

15. Predictions - Earth IB. Save - Earth И

.ampie j^j

(1)

Matching Data 8l Rank(l) У Data Sampler (1) 10. Linear Regression (1)

7, Select Data

induced Da

21. Rank (2) 22.

Date Sample

Data Sampler MD, | ..^»щ^кяоп fa

Dat^ ^an-.pfeerriäip: ^^^

\ 4

Prfciitírr J ■evLfr

*\Г (-J

Predictions ---Ci

В

ЦрДадй&й

uV\ ч

* с

\

Data Sq Remaii..

28. Predictions - Earth 31. Save - Earth (2]

И

Horn jpSedictions^j^j^j

25. Rancbm Forestea Й&. Predictions - RF (2) 32. Save - RF (2) Regression (2) \ :

\ \l

_\ Til ____

* y,J kf-J^a^er0^^DPredictionsQ^ ^dictions - kf

II!

26. k Nearest ЪеаЙйг Predictions - kNN (2) 33. Save - kNN (2) Neighbours Regression

я

27, Test Learners (2)

Рисунок 2 - Конвейер обработки данных

Конвейер включает в себя несколько подчиненных конвейеров. Рассмотрим эти конвейеры. Конвейер предварительной обработки данных реализует предварительную обработку данных перед

построением модели ВИП (рисунок 3).

Рисунок 3 - Конвейер обработки данных: предварительная обработка

Компонент 1. Обработка данных начинается с чтения результатов вычислительного эксперимента в формате CSV из файла, который содержит следующие основные данные: id - идентификатор эксперимента, datetime - время его проведения, time - ВИП, programname - название исследуемой программы, compiler - название используемого компилятора, width=M, height=N - числа столбцов и строк в обрабатываемой матрице (п. 3.2 ), cpuname - название процессора, на котором исполнялась программа, cpu_mhz — частота процессора, cpucache — объём кэш-памяти третьего уровня процессора.

Компонент 2 предназначен для вычисления и визуализации статистических характеристик результатов эксперимента.

Компонент 3 выполняет анализ набора входных данных - определяет, какие параметры эксперимента являются исходными данными для построения модели ВИП (факторами), а какие - выходными данными (значениями ВИП). На рисунке 3 все результаты эксперимента, кроме параметра time, являются факторами. Последний параметр являются выходным параметром эксперимента - ВИП.

Компонент 4 отображает распределения значений параметров эксперимента в виде гистограмм.

Компонент 5 строит точечные графики зависимости ВИП от факторов.

Компонент 6 используется для создания дополнительных факторов эксперимента на основе факторов, присутствующих во входном наборе данных. На рисунке 3 этот компонент продуцирует фактор size = height • width, имеющий смысл числа элементов обрабатываемой программой symm матрицы

A (п. 3.2).

Компонент 7 используется для фильтрации входных данных.

Конвейеры построения регрессионной модели ВИП. Компоненты с номерами 8 - 20 и 21 - 33

(рисунок 2) полностью аналогичны. Первый конвейер (компоненты 8-20) реализует построение однофакторных моделей ВИП, второй конвейер (компоненты 21-33) - построение аналогичных модели на основе четырёх и пяти факторов. Часть первого из указанных конвейеров, отвечающая за ранжирование факторов и формирование обучающей и тестовой выборок, представлена на рисунке 4.

Рисунок 4 - Конвейер обработки данных: ранжирование факторов и формирование обучающей и

тестовой выборок

Компонент 8 и его аналог компонент 21 выбирают X' наиболее значимых факторов из набора

входных данных (|X= 1 для компонента Rank (1), |X= 4 или |X'| = 5 для компонента Rank (2)). В качестве алгоритма ранжирования в обоих случаях используется алгоритм Earth Learning.

Компоненты 9, 22 производят случайный отбор п -часть данных из входного набора в обучающую выборку, а (1 — п) -ю часть остальных данных — в тестовую выборку.

Части конвейера, осуществляющие собственно построение модели ВИП, иллюстрирует рисунки 5, 6. Первая из этих частей (компоненты 10-20) получает данные от компонента 9, а вторая (компоненты 23-33) - от компонента 22.

Компоненты 10, 23 осуществляют построение простейшей модели ВИП - линейной регрессионной модели. Результаты прогнозирования, полученные компонентами 10, 23, передаются компонентам 14 и 27 соответственно, которые выполняют их сравнение с результатами другими моделей (см. ниже).

fa,

ш

На)

От компонента 9 1 'Ф*' Te3t Learners {1)

_ / I

* ifata^

Predictions

«В

/ / XL

15. k Nearest 17. Predictions - kNN (1) 2D. Save - kNN (1) Neighbours Regressi&fii"",el' I /(1) /

I

Data SaH RemainS

I

)ata фг^ФшМ Fo|.est U P|.edictions . RF ш Savs . RF (i) Regression (1)

if t / 3atc.- Sam'Rennainjp'

Predictions

HyA<r

„—~— ~— ^dgfl^fernaiijge^ ш 15 P|.edjctions . Earth ид, Save . Ea|1h a]

,_. (33

■b^Sipje

10, Linear Regression (1)

Рисунок 5 - Конвейер обработки данных - построение регрессионной модели ВИП на основе одного

фактора

Data Sampje _

\VjS ^ D i> "

1 . & idi&ltMf»®*0" [2) Vi \\ X. i

и \\

Dat^amtiAmjal^i .^L i Pied!:; LJ

\\ L^J Ö

Data ЦД^Ы* Ж P'ediC^nS "Еа|Ж 31 " Eal1h Й

\ \

- И_( -_< I_

25. Random Forestea Predictions - RF (2) 32. Save - RF (2) Regression (2) .

• * »

Predictions

О

26. к Nearest Predictions - kNN (2) 33. Save - kNN (2)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Neighbours Regression (2)

От компонента 22

27. Test Learners {2)

Рисунок 6 - Конвейер обработки данных - построение регрессионной модели ВИП на основе четырех

или пяти факторов

Компоненты 11 - 13, 24 - 26 реализуют построение моделей Earth Learner, Random Forest и kNN для ветвей (8-20) и (21-33) соответственно. После обучения моделей полученные с их помощью результаты прогнозирования ВИП передаются в компоненты 14, 27. Кроме того, эти результаты используются для построения прогнозирующих моделей в компонентах 15- 17 и 28- 30 соответственно. Все результаты прогнозирования сохраняются в файлах типа CSV с помощью компонентов 18- 20 и 31- 33 соответственно.

3. Оценка эффективности инструментария Adaptor

Рассматриваем две следующие группы экспериментов:

• эксперименты по проверке точности измерения ВИП;

• эксперименты по моделированию и предсказанию производительности программы из набора Polybench.

Исследование выполнено на следующей аппаратно-программной платформе:

• - процессоры Intel

- Core 2 QuadQ8200 2,33 ГГц, кэш 2МБ,

- Core i5 M460 2,53 ГГц, кэш 3МБ,

- Xeon E5430 2,66 ГГц, кэш 6МБ;

• - операционная система Ubuntu 12.04;

• - компиляторы gcc, llvm.

3.1. Проверка точности измерения ВИП

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

Аргументами этой функции являются числа от 10° до 106, так что «реальное» время исполнения указанных программ Tpecm = T меняется от 1 мкс до 1000000 мкс=1 с. Результаты эксперимента

представлены на рисунке 7а, где TBHn = T - измеренное ВИП.

Т,с

101

Тщп

+-н—" * т реал

<ч о а г> а с а. -I S § g 8 Л » л S S « м а а. | X 3 \г Ч! V 3 # V 3 Л я. о о программа о 1 тН 1 а Ф £

б) скорректированное Tвип Рисунок 7 - Измеренное Tвип и «реальное» Tреал времена исполнения совокупности калибровочных

■ реал

программ

Рисунок 7а показывает, что при уменьшении времени Tpem измеренное ВИП TBMn асимптотически

приближается к некоторому значению (в данном случае равному примерно 0,005 с). Из этого факта следует вывод о том, что существуют постоянные накладные расходы на запуск программы и точность измерений можно повысить, вычитая это время из результатов измерения ВИП. Скорректированные таким образом данные, представленные на рисунке 7а, иллюстрирует рисунок 7б.

В инструментарии Adaptor реализован рассмотренный метод измерения ВИП. Метод, как следует из рисунка 7б, обеспечивает измерение ВИП с ошибкой, не превышающей 10%, для программ, исполняющихся 10 мс и более.

3.2. Прогнозирование ВИП

Исследование выполнено для программы symm из набора Polybench/С, которая реализует матричную операцию

D = aAB + PC,

где A - (N х M)-матрица; B, C - (M x 1)-векторы; a, в - вещественные числа. Данная операция выбрана, исходя из следующих соображений.

• Исследуемая программа должна быть выполнена статистически значимое число раз (по крайней мере, 100). Время выполнения этого числа запусков программы при всех рассматриваемых размерах входных данных не должно быть слишком велико.

• Для обеспечения высокой точности измерения ВИП это время при всех рассматриваемых размерах входных данных должно быть не слишком мало. Так, для достижения 99% точности измерения ВИП не должно быть менее одной секунды (п. 3.1).

Выполнено три следующие серии экспериментов по прогнозированию времени исполнения указанной программы.

Серия 1. Размерности матрицы M, N равны и принимают значения в интервале [2:4096] по правилу M = N = 2х, х е [1:12].

Серия 2. Величины M, N также равны, но принимают значения из интервала [2 : 4096] по правилу M = N = rand (2, 4096), где rand (•) - случайное целое число, равномерно распределенное в указанном интервале.

Серия 3. Величины M, N принимают значения по правилам M = rand (2, 2048), N = rand (2, 2048).

В каждой серии экспериментов производится обучение моделей kNN, Random Forest, Linear Regression, Earth Learner и последующее прогнозирование времени исполнения программы symm на различных аппаратных платформах и при различных размерах входных данных. Использованы простейшие однофакторные модели и более сложные четырех- и пятифакторные модель.

Построение прогнозирующих моделей ВИП и прогнозирование ВИП выполнено с помощью Orange-конвейера с ветвлениями (п. 2.2).

Серия экспериментов 1. Результаты сравнения эффективности рассмотренных моделей ВИП иллюстрирует рисунок 8.

а) однофакторные модели

а) четырехфакторные модели

Рисунок 8 - Сравнение эффективности моделей ВИП: серия 1

Рисунок 8а показывает, что в первой серии экспериментов все рассматриваемые однофакторные модели обеспечивают примерно одинаково высокие значения критерия R2, равное примерно 0,99. Модели kNN, Random Forest дают значения критерия RRSE, равные приблизительно 0,05, что означает очень высокую точность прогнозирования. Из-за внутренней ошибки системы Orange оценить эффективность однофакторной модели Earth Learner не удалось.

Рисунок 8б иллюстрирует тот факт, что четырехфакторная модель Earth Learner превосходит остальные рассматриваемые модели по критериям RRSE, R2 и обеспечивает R2 ~ 0,91, что следует признать хорошим результатом.

Эффективность лучшей модели Earth Learner иллюстрируют рисунки 9а - 9в. Рисунки показывают хорошее согласие экспериментальных и модельных данных.

Т,с

2000

а) тактовая частота процессора равна 2333 МГц

Т,с

3000

б) тактовая частота процессора равна 2527 МГц

т, С

1000

в) тактовая частота процессора равна 2667 МГц Рисунок 9 - Экспериментальные (•) и модельные (х) данные: серия 1;

модель Earth Learner

Серия экспериментов 2. Результаты сравнения эффективности рассматриваемых моделей ВИП представлены на рисунке 10.

а) однофакторные модели

Test Learners

Validation method

Wed Apr 24 13, 00:21:40

Method: Test on test data

Data

Examples: 177S

Attributes-: 5 [size, ;pu_Eache, cpu_mhz, width, cpu_name) Meta attributes: 2 (da te time, id] Class; time

Results

RMSE RRSE R2

kNN 7 .39 LO 0.4905 0.7595

Random Forest 7 .7749 0.5159 0.7333 Earth Learner S.7156 0.5784 0.6655 Linear degression 9.5941 0.6366 0.5947

б) четырехфакторные модели

Рисунок 10 - Сравнение эффективности моделей ВИП: серия 2

Рисунок 10показывает, что в этой серии экспериментов результаты прогноза значительно хуже, чем в серии экспериментов 1. Так, значения критерия эффективности R2 достигают только величины ~ 0,51 для однофакторных моделей и ~ 0,76 - для пятифакторных моделей. Это объясняется тем, что эксперимент выполняется на виртуальном сервере (см. ниже). Заметим, что с помощью однофакторных моделей ни по одному из критериев не получен прогноз, лучший прогноза, полученного с помощью линейной регрессионной модели Linear Regression.

Эффективность модели kNN иллюстрирует рисунок 11.

а) тактовая частота процессора равна 2333 МГц

Т,с

1000

в) тактовая частота процессора равна 2667 МГц Рисунок 11 - Экспериментальные (•) и модельные (х) данные: серия 2;

модель kNN

Рисунки 11 показывают удовлетворительное качество прогнозирования модели kNN для рассматриваемых процессоров Intel Xeon с тактовыми частотами 2,33 и 2,53 ГГц. Ошибка прогнозирования для процессора Intel Xeon 2,66 ГГц оказывается неприемлемо большой, начиная уже с размера матрицы 400*400. Объясняется данный эффект большим разбросом экспериментальных данных (рисунок 11в), что обусловлено выполнением эксперимента на виртуальном сервере, который может не иметь эксклюзивного доступа к аппаратному обеспечению физического сервера, на котором он запущен. В конечном счете, проблема заключается в том, что системе сбора информации (п. 2.1) сообщаются данные о реальном сервере, а не о текущих доступных ресурсах, и нет простого способа распознать использование виртуализации.

Серия экспериментов 3. Сравнительную эффективность рассматриваемых моделей ВИП для данной серии экспериментов иллюстрирует рисунок 12.

а) однофакторные модели

б) четырехфакторные модели Рисунок 12 - Сравнение эффективности моделей ВИП: серия экспериментов 3

В данной серии экспериментов качество прогноза ВИП оказалось самым низким. Результаты прогноза всех однофакторных моделей оказалась хуже, чем те же результаты, полученные с помощью линейной регрессионной модели Linear Regression, которая показала неудовлетворительный с практической точки зрения результат R2 = 0,2336. В классе пятифакторных моделей лучшее качество прогноза снова обеспечила модель kNN со значениями критериев эффективности RRSE = 0,62, R2 = 0,61. Такое качество прогноза следует признать удовлетворительным, особенно учитывая, что в данном эксперименте фильтрация шумов измерений не производилась.

Эффективность модели kNN иллюстрирует рисунок 13.

Т,с

1000

а) тактовая частота процессора равна 2333 МГц

Т,с

- 50

Í40 30

1000

б) тактовая частота процессора равна 2527 МГц

Т,с

1000

в) тактовая частота процессора равна 2660 МГц Рисунок 13 - Экспериментальные (•) и модельные (х) данные: серия 3;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

модель kNN

Заключение

В работе предложен метод Velocitas оценки времени исполнения программ на заданном процессоре. Метод является более простым и быстрым по сравнению с эмуляцией этого процессора. Осуществлена программная реализация метода Velocitas в составе инструментария Adaptor. Выполнено

экспериментальное исследование эффективности метода Velocitas и его программной реализации на примере избранных программ из набора Polybench/C. Исследование показало возможность эффективно решать задачу прогнозирования ВИП с помощью инструментария Adaptor. В ходе исследования в ряде случаев удалось выполнить прогнозирование ВИП с ошибкой около 5%.

Разработанный метод и программное обеспечение могут быть использованы для оценки быстродействия проектируемого компьютера, а также при оценке быстродействия программы в процессе итеративной

компиляции.

Список литературы

1. del Barrio V.M. Study of the techniques for emulation programming. Boston, MA, USA: Computer Science Engineering, 2001. 152 p.

2. Full System Simulation of Embedded Systems. Available at: http://www.irisa.fr/archi09/joloboff.pdf , accessed 04.11.2013.

3. Speeding up the Android Emulator on Intel R Architecture. Available at: http:// software .intel.com/en-us/articles/speeding-up-the-android-emulator-4 , accessed 04.11.2013.

4. Dubach C., Jones T.M., Bonilla E.V., Fursin G., O'Boyle M.F.P. Portable compiler optimization across embedded programs and micro architectures using machine learning // Proceedings of the 42nd Annual IEEE/ACM International Symposium on Micro architecture. MICRO 42. New York, NY, USA. ACM, 2009. P. 78-88. DOI: 10.1145/1669112.1669124

5. Dubach C., Jones T.M., O'Boyle M.F.P. Exploring and predicting the architecture/optimizing compiler co-design space // Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems. CASES '08. New York, NY, USA. ACM, 2008. P. 31-40. DOI: 10.1145/1450095.1450103

6. Weidan W., Lee B.C. Inferred Models for Dynamic and Sparse Hardware Software Spaces // Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Micro architecture. MICRO'12. Washington, DC, USA. IEEE Computer Society, 2012. P. 413-424. DOI: 10.1109/MICRQ.2012.45

7. PolyBench/C the Polyhedral Benchmark suite. Available at: http://www.cs.ucla.edu/~pouchet/software/polybench/, accessed 01.12.2013.

8. Orange. Open source data visualization and analysis for novice and experts . Available at: http://orange.biolab.si/, accessed 01.12.2013.

9. Variable importance. Available at: http://caret.r-forge.r-project.org/varimp.html , accessed 03.06.2013.

10. Grid Search: setting estimator parameters. Available at: http://scikit-learn.org/0.13/modules/grid_search.html , accessed 19.03.2013.

11. Matplotlib. Available at: http://matplotlib.org/, accessed 01.12.2013.

12. Python Programming Language - Official Website. Available at: http://www.python.org , accessed 01.12.2013.

SCIENTIFIC PERIODICAL OF THE BAUMAN MS TU

SCIENCE and EDUCATION

EL № FS77 - 48211. №0421200025. ISSN 1994-0408

electronic scientific and technical journal

Statistical modeling of program performance

# 01, Januare 2014

DOI: 10.7463/0114.0679688

Karpenko A.P.1, Pankov M.K.2

1 Bauman Moscow State Technical University, 105005, Moscow, Russian Federation

[email protected] Ltd. "Samsung Research Center" [email protected]

A task of evaluation of program performance often occurs in the process of design of computer systems or during iterative compilation. A traditional way to solve this problem is emulation of program execution on

the target system. A modern alternative approach to evaluation of program performance is based on statistical modeling of program performance on a computer under investigation. This statistical method of modeling program performance called Velocitas was introduced in this work. The method and its implementation in the Adaptor framework were presented. Investigation of the method's effectiveness showed high adequacy of program performance prediction.

Publications with keywords: program's performance, statistical modeling, regression model Publications with words: program's performance, statistical modeling, regression model

References

1. del Barrio V.M. Study of the techniques for emulation programming. Boston, MA, USA, Computer Science Engineering, 2001. 152 p.

2. Full System Simulation of Embedded Systems. Available at: http://www.irisa.fr/archi09/joloboff.pdf , accessed 04.11.2013.

3. Speeding up the Android Emulator on Intel R Architecture. Available at: http://software.intel. com/en-us/articles/speeding-up-the-android-emulator-4 , accessed 04.11.2013.

4. Dubach C., Jones T.M., Bonilla E.V., Fursin G., O'Boyle M.F.P. Portable compiler optimization across embedded programs and micro architectures using machine learning. Proceedings of the 42nd Annual IEEE/ACM International Symposium on Micro architecture. MICRO 42, New York, NY, USA. ACM, 2009, pp. 78-88. DOI: 10.1145/1669112.1669124

5. Dubach C., Jones T.M., O'Boyle M.F.P. Exploring and predicting the architecture/optimizing compiler co-design space. Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems. CASES '08, New York, NY, USA. ACM, 2008, pp. 31-40. DOI: 10.1145/1450095.1450103

6. Weidan W., Lee B.C. Inferred Models for Dynamic and Sparse Hardware Software Spaces. Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Micro architecture. MICRO '12, Washington, DC, USA. IEEE Computer Society, 2012, pp. 413-424. DOI: 1Q.n09/MICRQ.2012.45

7. PolyBench/C the Polyhedral Benchmark suite. Available at: http://www.cs.ucla.edu/~pouchet/software/polybench/, accessed 01.12.2013.

8. Orange. Open source data visualization and analysis for novice and experts. Available at: http://orange.biolab.si/, accessed 01.12.2013.

9. Variable importance. Available at: http://caret.r-forge.r-project.org/varimp.html , accessed 03.06.2013.

10. Grid Search: setting estimator parameters. Available at: http://scikit-learn.org/0.13/modules/grid_search.html , accessed 19.03.2013.

11. Matplotlib. Available at: http://matplotlib.org/, accessed 01.12.2013.

12. Python Programming Language - Official Website. Available at: http://www.python.org , accessed 01.12.2013.

i Надоели баннеры? Вы всегда можете отключить рекламу.