Обновления программного обеспечения замедляют работу?


Мы все разделяем разочарование — обновления программного обеспечения, которые предназначены для ускорения работы наших приложений, непреднамеренно приводят к прямо противоположному результату. Эти ошибки, которые в области информатики называют ухудшением производительности, требуют много времени для исправления, поскольку для обнаружения ошибок программного обеспечения обычно требуется существенное вмешательство человека.

Чтобы преодолеть это препятствие, исследователи из Техасского университета A&M в сотрудничестве с компьютерными специалистами из Intel Labs разработали полностью автоматизированный способ определения источника ошибок, вызванных обновлениями программного обеспечения. Их алгоритм, основанный на специальной форме машинного обучения, называемой глубоким обучением, не только готов, но и позволяет быстро находить ошибки производительности за несколько часов, а не дней.

«Обновление программного обеспечения может иногда отвлекать вас, когда появляются ошибки и вызывают замедление. Эта проблема еще более усугубляется для компаний, которые используют крупномасштабные программные системы, которые постоянно развиваются», — сказал д-р Абдулла Музахид, доцент кафедры Департамент компьютерных наук и инженерии. «Мы разработали удобный инструмент для диагностики снижения производительности, совместимый с целым рядом программного обеспечения и языков программирования, что значительно расширило его полезность».

Исследователи описали свои выводы в 32-м выпуске журнала «Достижения в системах обработки нейронной информации» из материалов декабрьской конференции «Системы обработки нейронной информации».

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

«Счетчики производительности дают представление о состоянии выполнения программы», — сказал Музахид. «Таким образом, если какая-то программа не работает должным образом, эти счетчики обычно имеют явный признак аномального поведения».

Однако новые настольные компьютеры и серверы имеют сотни счетчиков производительности, что делает практически невозможным отслеживать все их состояния вручную, а затем искать аномальные шаблоны, указывающие на ошибку производительности. Вот тут-то и пригодится машинное обучение Музахида.

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

Когда их алгоритм был готов, исследователи проверили, сможет ли он найти и диагностировать ошибку производительности в коммерчески доступном программном обеспечении для управления данными, используемом компаниями для отслеживания своих чисел и цифр. Во-первых, они обучили свой алгоритм распознаванию обычных данных счетчика, запустив старую версию программного обеспечения для управления данными без сбоев. Затем они запустили свой алгоритм на обновленной версии программного обеспечения с понижением производительности. Они обнаружили, что их алгоритм обнаружил и диагностировал ошибку в течение нескольких часов. Музахид сказал, что этот тип анализа может занять много времени, если его проводить вручную.

Помимо диагностики снижения производительности программного обеспечения, Музахид отметил, что их алгоритм глубокого обучения имеет потенциальное применение и в других областях исследований, таких как разработка технологии, необходимой для автономного вождения.

«Основная идея снова та же — возможность обнаружить аномальный образец», — сказал Музахид. «Беспилотные автомобили должны уметь определять, находится ли перед ними автомобиль или человек, и затем действовать соответственно. Итак, это снова форма обнаружения аномалий, и хорошая новость заключается в том, что наш алгоритм уже предназначен для этого . «

Среди других участников исследования доктор Мейбах Алам, доктор Джастин Готчлих, доктор Несиме Татбул, доктор Хавьер Турек и доктор Тимоти Маттсон из Intel Labs.


Добавить комментарий