Алгоритм из Челябинска ускорил анализ данных в 27 раз
Алгоритм StreaMP, разработанный в Южно-Уральском государственном университете, обрабатывает потоковые данные на графических процессорах и при тестировании на суперкомпьютере «Торнадо-ЮУрГУ» показал прирост скорости в 1,5–27 раза по сравнению с аналогом SCAMP.
В Южно-Уральском государственном университете создан алгоритм StreaMP, предназначенный для обработки потоковых данных в режиме реального времени. Проверка на суперкомпьютере «Торнадо-ЮУрГУ» подтвердила: разработка превосходит по скорости известный аналог в 1,5–27 раз.
Авторами алгоритма выступили доктор физико-математических наук Михаил Цымблер и аспирант вуза Александр Валиулин. StreaMP ориентирован на обнаружение аномалий и повторяющихся паттернов в крупных массивах информации. Среди возможных применений — контроль за нарушениями сердечного ритма у пациентов и своевременное выявление избыточной нагрузки на промышленное оборудование.
Принцип работы основан на вычислении матричного профиля временного ряда. Алгоритм сопоставляет отдельные фрагменты поступающих данных, обнаруживает похожие участки и фиксирует отклонения от типичной картины.
Вычислительные операции выполняются на графических процессорах, которые благодаря тысячам ядер способны параллельно обрабатывать большое количество однотипных задач.
Ключевая особенность решения челябинских исследователей — возможность повторного использования результатов ранее выполненных вычислений. В отличие от существующих подходов, алгоритму не требуется заново обрабатывать весь накопленный массив данных.
Эффективность StreaMP оценивалась в сравнении с GPU-алгоритмом SCAMP. В ходе экспериментов задействовались временные ряды протяженностью от десятков тысяч до десятков миллионов точек, вычисления проводились на графическом процессоре NVIDIA Tesla V100. В зависимости от объема информации StreaMP оказался быстрее в 1,5–27 раз. При этом длительность обработки определяется размером нового фрагмента, а не всего ранее накопленного потока.
Итоги исследования опубликованы в журнале Lobachevskii Journal of Mathematics. Исходный код StreaMP выложен в открытом репозитории Gitverse.