Пархоменко С.С.
ФГБОУ ВПО «Воронежский государственный университет», аспирант 1-го года обучения по специальности «Теоретические
основы информатики» [email protected]
Об оценке времени выполнения приложения в распределённых вычислительных сетях
1. Введение
Добровольные вычисления - распределенные вычисления с использованием предоставленных добровольно вычислительных мощностей. Идея родилась в связи с бурным развитием Интернета, который вбирает в себя огромные вычислительные ресурсы. Современные вычислительные системы для добровольных вычислений строятся на базе GRID-систем. В качестве их ключевых особенностей можно выделить слабосвязанность, гетерогенность компьютеров.
Автор в [1] отмечает, что использование исторической базы в планировании хорошо изучено и доказана её эффективность. Однако проблема организации исторической базы данных пока остаётся открытой. Для каждой отдельной задачи прогнозирования подбирается конкретный, оптимальный для неё, способ сбора статистических данных. В случае с добровольными вычислениями, за основу можно взять проблему составления прогноза для нового участника сети: на чём основать прогноз для участника, который ещё не принимал участия в решении задач? Один из способов решения проблемы описан в пункте 2 статьи.
После сбора данных необходимо провести их обработку и подобрать алгоритм, по которому из них выводится оценка. Например, в [2] определяется степень подобия запускаемой и ранее выполнявшихся программ по ряду параметров, которые фигурируют в соответствующей метрике «близости». В силу того, что в сети добровольных вычислений участники постоянно сменяют друг друга (или просто уходят на время), необходимо получить и обработать сведения о времени выполнения приложений на ограниченном парке машин таким образом, чтобы иметь возможность получить оценку для широкого множества оборудования. Для решения этой проблемы можно воспользоваться возможностями нейронных сетей выводить сложные функции по обучающей выборке и находить новые значения полученной функции с помощью интерполяции.
Данная статья преследует определённую цель - получить оценку времени выполнения приложения. Сформулируем для этого математическую задачу: пусть существует некоторое множество машин W, параметров Р, и временная шкала T = (0, <х>). Пусть каждую машину weü
можно описать с помощью некоторого вектора X = {p1,p2,.,Pm},Pm еP, причём Vw(m = const). Предположим, что в некоторый момент времени в сети присутствуют машины w ',\w\=n,'=1, n,wt eQ с наборами параметров X' = {p1,p2,...,p'm}, где n - некоторое малое число (в данной статье условно примем 10 < n < 100), m - количество наблюдаемых параметров. Пусть $F,VX(X —г). Стоит отметить, что F - не обязательно является математической функцией. В общем случае это может быть абсолютно любое сюръективное преобразование вектора X в шкалу Т. Необходимо найти для wk ¿w значение F ° Xk = t, где t е Т - оценка времени выполнения приложения.
2. Анализ способов составления исторической базы
Сформулируем и проверим гипотезу 1: использование постоянных характеристик вычислительной аппаратуры даёт однозначную прогнозируемую оценку.
Для наглядности в качестве постоянной характеристики примем частоту процессора. Для этого будем ориентироваться на очевидную зависимость: чем выше частота процессора, тем меньше время, затраченное на выполнение приложения.
Формально эту зависимость можно представить в виде правила: если v1 > v2, то t1 < t2, где t1,t2 - время выполнения приложения на компьютерах с частотой процессора v1 и v2 соответственно.
Для проверки гипотезы был проведён вычислительный эксперимент, суть которого заключается в определении времени выполнения некоторой тестовой программы 25 участниками-компьютерами с известной частотой процессора. Тестовая программа была разработана так, чтобы влияние остальных характеристик компьютера (например, объём памяти, частота шины и прочие) оказывали минимальное влияние на её время работы. На основе полученных данных G1 = {(vn, tn )}^=1 составлен график (рис. 1).
Проанализировав график на рис. 1, отметим, что данные имеют высокую степень зашумлённости. Из этого следует, что оценка времени выполнения приложения тоже будет приближенной. Среди данных G1 , можно отметить появление нескольких компьютеров с одинаковой частотой процессора, но разным временем выполнения приложения, что приводит к неопределённой ситуации, в которой f : G1 ^ t,$v1,v2 : f (v1 ) = f (v2),v1 * v2; её можно обобщить и записать в виде утверждения:
VG(P(3(f : £ ^ t(£ * £ a f £ )))) > 0), где G1 = {(£n,tn)}П=1 - данные, представленные в виде набора из k точек с координатами (£, t), £ - значение некоторого параметра, t - значение времени, P(A) - вероятность выполнения события A, т. е. функция зависимости времени работы приложения от одного фактора в общем
случае является многозначной.
Пунктиром выделены графики функции степенной регрессии.
/ 18 сек.
16 14 12 10 8 6 4 2 О
1500 1750 2000 2250 2500 2750 3000 3250 3500 3750
У МГц
Рис. 1. График зависимости времени выполнения от частоты процессора. По графику визуально можно выделить две группы данных. Первая группа g1 е G1 лежит в промежутке t1 е [7.674,15.211], а вторая g2 е G1 - в t2 е [0.893,1.152]. Найдём функции степенной регрессии для каждой группы и наложим их графики на полученные данные. Для группы g1 функция имеет вид: R1 (u)= 3167.82u~072 ; для R2(u)= 312.09u~072. С помощью этих функций, можно грубо представить зависимость времени выполнения приложения от частоты процессора, и в общем, подтвердить зависимость, но образование 2-х разных групп данных ставит под сомнение исследуемую гипотезу.
Причина образования группы g2 проста: некоторые участники эксперимента использовали новую версию компилятора.
Чтобы более полно учитывать факторы, влияющие на работу приложений, можно воспользоваться дополнительными тестовыми приложениями, собирающими информацию о производительности отдельных частей компьютера. Например, в качестве оценочных задач для набора тестов SPEC'92 для оценки производительности коммерческих систем используются: задача сжатия информации, задача упрощения булевой функции, проецирование лучей через оптическую систему и прочие [3]. Таким образом, замеряется скорость работы с целыми, дробными, логическими переменными, работа с памятью и внешними ЗУ Тестовые приложения позволяют учитывать не только аппаратную составляющую компьютера, но и программную. Время их работы и будем считать относительным параметром. Совокупность относительных параметров позволяет снизить степень неопределённости, поскольку множество неучтенных факторов влияют на работу не только контрольного приложения, но и тестовых. Это значит, что найти
* ♦
* * ^ • ♦
- ►
* * т *
* т -t. *
* ш. щ
'г ♦
- - . - .. ■f____
♦ * - >. г---
* ♦
__ --
— > —
компьютеры с одинаковым временем выполнения тестового приложения сложнее, чем с одинаковым процессором.
Основываясь на вышесказанном, построим гипотезу 2: использование относительных параметров позволяет получить более точную оценку. Соответственно, ожидаемую зависимость можно сформулировать следующим образом: чем меньше время выполнения тестового (замерочного) приложения, тем меньше прогнозируемое время контрольного.
Проверим эффективность применения относительных параметров для оценивания времени выполнения приложения. Согласно условию эксперимента имеется ограниченное число компьютеров разной мощности и задача численного интегрирования (шаг, функция и промежуток не меняются). Программа компилируется на разных компьютерах разными компиляторами и опциями и запускается несколько раз. Для сравнения, были найдены величины среднеквадратичной ошибки для функций степенной регрессии, построенные для G2 = {(ип ,ип )}6= ( RGг (и)-543360116.14^075 , рис.2) и Gз = {(Г3„, tn )£ (RGз (Т3)« 21.823-[гз]0"734 ), где
Т3 - время выполнения тестовой программы по замеру скорости проведений операций над целыми числами. В результате получено:
=44093604 нс, в то время как Еящ =2686117 52 нс, погрешность
снизилась на 39%.
? 18 сек.
16 14 12 10 8 6 4 2 0
400 600 800 1000 1200 1400 1600 1800 2000 2200 2400
V МГц
Рис. 2. График зависимости времени выполнения от частоты процессора. Пунктиром выделены графики функции степенной регрессии.
Проверим гипотезу 3: повышение размерности функции отображения / за счёт увеличения числа тестовых приложений, позволяет повысить точность прогноза. Предположим, что существует некоторая
I
♦
♦
<
► ♦
*
\ ♦
! К
' N * ф
*
\ Г' * - • . < ►
1 \ - • . - - т ! * т ....... -1 1
-4- ♦ ~т- *
функция
Time(T\, T 2, T 3, T 4, T 5, T 6, T 7) = t.
Для поиска сложной многомерной функции воспользуемся многослойным перцептроном [4]. Он обладает свойством универсальной аппроксимации и способен решать задачи интерполяции. Его скрытые слои выделяют статистические зависимости высокого порядка. Это позволяет применять функцию Time для большего количества компьютеров, чем то, которое было использовано при обучении нейросети.
3. Вычислительный эксперимент
Пусть имеется 7 тестовых приложений для замера относительной мощности компьютера и некая контрольная задача (выше упомянутая задача интегрирования; область интегрирования, функция и шаг считаются постоянными). Тестовые приложения замеряют скорость работы генератора случайных чисел (T1), скорость
выделения/заполнения/очистки большого участка памяти (T2), выполнения арифметических операций с различными типами данных (T3 -T6), скорость вычисления сложной функции (T7). Они скомпилированы тем же компилятором и с теми же опциями, что и контрольная задача. Имеется 17 компьютеров, на которых проведены замеры тестовых приложений и контрольной задачи (всего 66 замеров, в среднем - 3.88 замера на компьютер).
В таблице 1 приведена часть полученных данных (в наносекундах):
Табл. 1.рРезультаты замеров (в нс.)
T1 T2 T3 T4 T5 T6 T7 R
1258446 835494 6164579 8897774 1292405 8 6126578 7553222 5746288
1258446 835494 6164579 8897774 1292405 8 6126578 7553222 5632924
988033 68416 4234466 4243164 4148505 4135107 6459890 1576530
517369 193213 2031133 2047022 2048443 2062096 3082111 535604
517369 193213 2031133 2047022 2048443 2062096 3082111 533015
517369 193213 2031133 2047022 2048443 2062096 3082111 826273
6499735 10789480 29580576 4089941 9 4270878 6 3098283 2 2644260 8 6496516
699185 676030 6651103 6652607 6651999 6653769 6589381 635932
Таким образом, обучающая выборка имеет вид {(Т1, Т2 i,..., Tni, Я)}П=Г66,
где Тп - независимая входная переменная, (в данном случае, время выполнения тестового приложения), Я - зависимая выходная переменная (время выполнения контрольного приложения).
Используем полученные данные как обучающую выборку для нейросети с семью входными, пятью скрытыми и одним выходным нейронами с сигмоидальными активационными функциями. Для обучения используем метод Левенберга-Марквардта [5-7], поскольку более эффективен, в отличие от классического метода обратного распространения ошибки. В процессе обучения редко достигается
некоторое минимальное значение ошибки (если оно очень мало), поскольку справедливо утверждение 1, поэтому используется ограничение на количество итераций, чтобы гарантировать завершение обучения за разумный срок. В этом эксперименте проведено 2000 итераций обучения. Величина среднеквадратичной ошибки получилась E « 953311 нс.
Пусть необходимо сделать прогноз времени выполнения контрольной задачи для нового компьютера. Оценим его мощность с помощью тестовых программ и найдём T1 - T7. После подачи данных на вход нейросети был получен прогноз t = 2055935 нс. Реальное время выполнения приложения составило t ' = 2299611 нс. Для сравнения:
RGi (1600)« 1948593 нс., Я0з (3589236)« 1411130 нс.
В ходе многих экспериментов, точность оценок не всегда была удовлетворительной. Метод обучения Левенберга-Марквардта очень чувствителен к начальным значениям весовых коэффициентов. Сказывается недостаточность исходных данных для многомерной функции. Из этого следует, что для повышения точности прогнозирования необходимо постоянно обеспечивать нейросеть новыми данными и применять методы очищения данных от шумов.
В ходе различных экспериментов ставилась задача получения максимально точной оценки времени выполнения линейного алгоритма. Благодаря исследованиям была установлена эффективность определения мощности компьютера через различные оценочные тесты и была проанализирована их взаимосвязь с временем выполнения реальных приложений.
4. Вывод
В результате исследований получен способ достаточно достоверного прогнозирования времени выполнения линейного алгоритма на широком спектре оборудования. Для этого была подобрана совокупность параметров, формирующих историческую базу данных и учитывающую как программную, так и аппаратную составляющую вычислительного устройства. Высокая адаптивность системы позволяет применять её в динамичных средах, таких как сети добровольных вычислений.
В статье предложен способ обработки данных исторической базы, направленный на получение прогнозов с помощью нейронных сетей.
Для подтверждающего эксперимента были собраны данные с различного оборудования и проведены сравнительные вычисления.
Литература
1. Gibbons R. A historical application profiler for use by parallel schedulers // In Job Scheduling Strategies for Parallel Processing. Springer Verlag, 1997. P. 58-77.
2. Resource selection using execution and queue wait time predictions: Rep.; Executor: Warren Smith, Parkson Wong: 2002.
3. Conte T. M., Menezes K. N. P., Sathaye S. W. A technique to determine power-efficient, high-performance superscalar processors / / Proceedings of the 28th Annual Hawaii International
Conference on System Science / Computer Architecture Research Laboratory, Department of Electrical and Computer Engineering University of South Carolina. Columbia, South Carolina 29208, 1995.
4. Хайкин С. Задачи обучения // Нейронные сети. М.: Издательский дом «Вильямс», 2006. С. 56.
5. Wikipedia. Levenberg-marquardt algorithm — wikipedia, the free encyclopedia. 2011. [Online, accesse 5-April-2011]. URL: http://en.wikipedia.org/wiki/Lavanberg-Marquardt_algorithm.
6. Sousa C. Neural network learning by the levenberg-marquardt algorithm with Bayesian regularization (part 1). 2009. URL: http://crsouza.blogspot.com/2009/11/neural-network-learning-by-levenberg_18.html.
7. Sousa C. Neural network learning by the levenberg-marquardt algorithm with Bayesian regularization (part 2). 2009. URL: http://crsouza.blogspot.com/2009/11/neural-network-learning-by-levenberg.html.