Научная статья на тему 'ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ПОИСКА ЛЕЙТМОТИВОВ ВРЕМЕННОГО РЯДА ДЛЯ ГРАФИЧЕСКОГО ПРОЦЕССОРА'

ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ПОИСКА ЛЕЙТМОТИВОВ ВРЕМЕННОГО РЯДА ДЛЯ ГРАФИЧЕСКОГО ПРОЦЕССОРА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
66
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВРЕМЕННОЙ РЯД / ПОИСК ЛЕЙТМОТИВОВ / ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ / NVIDIA GPU / OPENACC / TIME SERIES / MOTIF DISCOVERY / PARALLEL ALGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Цымблер Михаил Леонидович, Краева Яна Александровна

Лейтмотив представляет собой пару подпоследовательностей временного ряда, наиболее похожих друг на друга. Задача поиска лейтмотивов встречается в широком спектре предметных областей: медицина, биология, предсказание погоды и др. В работе предложен новый параллельный алгоритм поиска лейтмотива во временном ряде на платформе графического процессора для случая, когда входные данные могут быть размещены в оперативной памяти. Предлагаемый алгоритм использует в качестве основы алгоритм MK, в котором применяется евклидово расстояние и неравенство треугольника для отбрасывания бесперспективных лейтмотивов без вычисления расстояния. MK позволяет сократить время поиска в разы по сравнению с другими последовательными алгоритмами, однако его производительность значительно снижается на временных рядах, имеющих длину от сотен тысяч элементов. Распараллеливание выполнено с помощью технологии программирования OpenACC. Разработаны матричные структуры данных, позволяющие эффективно распараллелить вычисления на графическом процессоре. Представлены результаты вычислительных экспериментов на реальных и синтетических наборах данных, подтверждающих высокую масштабируемость разработанного алгоритма.

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

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

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

PARALLEL ALGORITHM FOR TIME SERIES MOTIF DISCOVERY ON GRAPHIC PROCESSOR

A time series motif is a pair of subsequences of the series that are most similar to each other. The problem of motif discovery occurs in a wide range of subject areas: medicine, biology, weather prediction, etc. The paper proposes a novel parallel algorithm for time series motif discovery on GPU for the case when the input data fit in the main memory. The proposed algorithm is based on the MK algorithm, which exploits the Euclidean distance and the triangle inequality to prune clearly unpromised pairs of subsequences without computation of the distance. MK decreases the running time up to several orders of magnitude in comparison to the most serial algorithms. However, the performance of MK decreases significantly when the time series length is greater then hundreds of thousands of elements. We designed matrix data structures that ensure the efficient parallel computations on GPU, and paralleled the calculations through the OpenACC programming technology. The results of experimental evaluation on synthetic and real-world datasets confirmed the high scalability of the developed algorithm.

Текст научной работы на тему «ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ПОИСКА ЛЕЙТМОТИВОВ ВРЕМЕННОГО РЯДА ДЛЯ ГРАФИЧЕСКОГО ПРОЦЕССОРА»

УДК 004.272.25, 004.421, 004.032.24 DOI: 10.14529/cmse200302

ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ПОИСКА ЛЕЙТМОТИВОВ ВРЕМЕННОГО РЯДА ДЛЯ ГРАФИЧЕСКОГО ПРОЦЕССОРА*

© 2020 М.Л. Цымблер, Я.А. Краева

Южно-Уральский государственный университет (454080 Челябинск, пр. им. В. И. Ленина, д. 76) E-mail: mzym@susu.ru, kraevaya@susu.ru Поступила в редакцию: 26.07.2020

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

Ключевые слова: временной ряд, поиск лейтмотивов, параллельный алгоритм, NVIDIA GPU, ОрепАСС.

ОБРАЗЕЦ ЦИТИРОВАНИЯ

Цымблер М.Л., Краева Я.А. Параллельный алгоритм поиска лейтмотивов временного ряда для графического процессора // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2020. Т. 9, № 3. С. 17-34. DOI: 10.14529/cmse200302.

Введение

Лейтмотив временного ряда представляет собой пару подпоследовательностей этого ряда заданной длины, наиболее похожих друг на друга [20]. В настоящее время поиск лейтмотивов является актуальной задачей в широком спектре приложений обработки временных рядов: биоинформатика [3], обработка речи [2], прогнозирование природных катаклизмов [12], неврология [15] и др.

Поиск лейтмотива методом полного перебора подпоследовательностей временного ряда, очевидно, имеет временную сложность 0(п2), где п — длина ряда. В силу этого в работах [5, 13, 14, 22, 23] был предложен ряд алгоритмов поиска приближенного лейтмотива, имеющих меньшую временную сложность 0{п) и O(ralogn). Однако для ряда приложений, например, в сейсмологии [25], недопустима потеря точности результирующего лейтмотива, даже за счет выигрыша во времени поиска. Алгоритм МК [15] является одним из самых быстрых последовательных алгоритмов поиска точного лейтмотива и сокращает время

‘Статья рекомендована к публикации программным комитетом международной научной конференции «Параллельные вычислительные технологии (ПаВТ) 2020».

2020, т. 9, № 3

17

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

поиска в разы по сравнению с другими алгоритмами, однако его производительность значительно снижается на временных рядах, имеющих длину от сотен тысяч элементов [15].

Одной из тенденций развития современной процессорной техники является увеличение количества вычислительных ядер вместо тактовой частоты [7]. В настоящее время ускорители архитектур Intel MIC (Many Integrated Core) [6] и NVIDIA GPU [18] обеспечивают от сотен до тысяч процессорных ядер и значительно опережают традиционные процессоры по производительности. В соответствии с этим перспективным направлением исследований является разработка параллельных алгоритмов поиска лейтмотивов временного ряда на ускорителях архитектур Intel MIC и NVIDIA GPU.

В настоящей статье предлагается новый параллельный алгоритм поиска лейтмотивов временного ряда на графическом процессоре (GPU) для случая, когда входные данные могут быть размещены в оперативной памяти. Данная статья продолжает исследование авторов, начатое в работе [26], где представлен параллельный алгоритм поиска лейтмотивов на ускорителях Intel MIC с помощью технологии параллельного программирования ОреиМР [11]. В настоящем исследовании используются схожие базовые идеи, однако иная архитектура графического ускорителя и используемая в реализации соответствующая технология параллельного программирования ОрепАСС [8] требуют существенной переработки предложенных ранее технологических решений.

Статья организована следующим образом. В разделе 1 приводится формальная постановка задачи и кратко описан последовательный алгоритм МК. Раздел 2 содержит обзор работ по тематике исследования. В разделе 3 дано описание предлагаемого параллельного алгоритма. В разделе 4 представлены результаты вычислительных экспериментов по исследованию эффективности предложенного алгоритма. Заключение резюмирует результаты, полученные в рамках исследования.

1. Постановка задачи

1.1. Формальные определения и нотация

В данном разделе приводятся обозначения и определения используемых терминов в соответствии с работой [15].

Временной ряд представляет собой хронологически упорядоченную последовательность числовых значений: Т = (t\,... ,tn), U G M. Число п обозначается \Т\ и называется длиной временного ряда.

Подпоследовательность Ti^ m временного ряда Т представляет собой непрерывное подмножество Т, состоящее из m элементов и начинающееся с позиции г: T^m = (ti,..., U_|_m_i), — m + 1, m <^Ln.

Множество всех подпоследовательностей ряда Г, имеющих длину т, обозначается S™. Мощность указанного множества обозначим как N, N = \S™\ = п — т + 1.

В качестве функции расстояния между подпоследовательностями ряда возьмем неотрицательную симметричную функцию Dist : Мш х Мт —>■ М.

Пара подпоследовательностей {Т); т, Т); т} ряда Т называется лейтмотивом (motif), если

Va, Ъ, i,j Dist(Tj,m, Т/,ш) ^ Dist(Ta,TO, Гь,т),

I* — 31 ^ |а — Ъ\ ^ w, w > О,

где w — параметр, определяющий минимальный промежуток, на который должны отстоять

18

Вестник КУУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

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

В качестве функции расстояния между двумя подпоследовательностями X и Y нами будет использоваться евклидово расстояние, определяемое следующим образом:

ED(X, Y)

\

г= 1

Оi - Vif

(2)

Для корректного определения схожести подпоследовательностей временного ряда, имеющих разные амплитуды, в дальнейшем изложении предполагается, что перед вычислением расстояния каждая подпоследовательность подвергается z-нормализации, обеспечивающей среднее арифметическое и стандартное отклонение элементов подпоследовательности, равные нулю и единице, соответственно. Z-нормализация подпоследовательности С € 5™ представляет собой подпоследовательность С = (щ,... ,Ст), элементы которой вычисляются следующим образом:

с,; =

d - II

а

/'■ =

а =

т

1=1

N

1

т

г= 1

(з)

1.2. Последовательный алгоритм

Алгоритм МК [15] представляет собой один из самых быстрых последовательных алгоритмов для нахождения точного лейтмотива во временном ряде. Алгоритм сокращает пространство поиска лейтмотивов на основе введения т.н. опорных подпоследовательностей.

Опорная подпоследовательность представляет собой случайно выбранную подпоследовательность исходного ряда. Алгоритм вычисляет расстояние от каждой подпоследовательности ряда до опорной и упорядочивает все подпоследовательности в порядке возрастания вычисленных расстояний. Полученный порядок называется линейным. Затем используется следующее свойство: если два объекта конечномерного метрического пространства близки друг другу, то они также должны быть близки в линейном порядке (обратное утверждение неверно) [15]. В соответствии с неравенством треугольника расстояние между подпоследовательностями лейтмотива в линейном порядке является нижней границей расстояния между этими подпоследовательностями в пространстве Rm:

ED (ref, Д,т) - ED (re/, X/m) ^ ED (Ti)TO, 7/m), | г - j\^w, w > 0, (4)

где ref — опорная подпоследовательность, Tjt ш} — пара подпоследовательностей,

отличных от ref. Далее для того, чтобы различать два вышеупомянутых вида расстояний, расстояние между подпоследовательностями в пространстве Мш мы будем называть истинным расстоянием.

Переменная алгоритма bsf (best-so-far) представляет собой текущее минимальное истинное расстояние между подпоследовательностями лейтмотива, и обновляется алгоритмом, как только найдена пара подпоследовательностей, истинное расстояние между которыми меньше, чем bsf.

2020, т. 9, № 3

19

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

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

Действуя таким образом, алгоритм просматривает все возможные пары подпоследовательностей, которые отстоят друг от друга в линейном порядке на величину offsef (1 ^ offset ^ N — 1). Просмотр продолжается до тех пор, пока не будет достигнуто такое значение offset, для которого не существует пар подпоследовательностей, нижние границы которых больше, чем bsf, после чего алгоритм завершается.

Для получения более узких нижних границ, позволяющих отбрасывать больше бесперспективных пар подпоследовательностей, алгоритм использует более одной опорной подпоследовательности. Опорная подпоследовательность с наибольшим стандартным отклонением используется для сортировки по возрастанию расстояний между этой опорной подпоследовательностью и всеми прочими подпоследовательностями исходного ряда. Если хотя бы одна из нижних границ больше, чем bsf, то соответствующая пара подпоследовательностей отбрасывается. Алгоритм завершается, если все нижние границы всех пар подпоследовательностей, отстоящих друг от друга на величину offset, больше, чем bsf.

Число опорных подпоследовательностей берется существенно меньшим, чем количество подпоследовательностей в исходном ряде. Как показывают эксперименты [15], количество опорных подпоследовательностей в диапазоне от 5 до 60 обеспечивает стабильное сокращение времени поиска по сравнению с другими алгоритмами в 2-3 раза независимо от типа данных и длины временного ряда, а также длины искомого лейтмотива.

2. Обзор работ

Поскольку алгоритм поиска лейтмотива во временном ряде методом полного перебора имеет квадратичную временную сложность относительно длины временного ряда, в работах [5, 13, 14, 22, 23] были предложены алгоритмы поиска приближенного лейтмотива во временном ряде, которые имеют линейную или логарифмическую сложность.

В работе [24] Вилсон и др. представили алгоритм FLAME для нахождения точного лейтмотива в ДНК. Однако алгоритм FLAME является приближенным для дискретных временных рядов, значения которых представляют собой вещественные числа.

В работе [15] Муином, Кеогом и др. предложен алгоритм МК, который находит точный лейтмотив во временном ряде. Алгоритм МК основан на следующей идее. Рассмотрим подпоследовательности исходного ряда как конечное множество точек конечномерного метрического пространства. Выберем случайным образом некую точку данного множества и назовем ее опорной. Упорядочим точки исходного множества по возрастанию их расстояния до опорной точки и назовем такой порядок линейным. Для любой пары точек, отличных от опорной, верно следующее утверждение: если точки находятся близко друг к другу в исходном пространстве, то они также будут располагаться близко в линейном порядке (обратное утверждение неверно). Данное свойство вкупе с неравенством треугольника позволяет отбрасывать пары подпоследовательностей, заведомо не являющихся лейтмотивом, без вычисления расстояния. Для большего сокращения пространства поиска алгоритм использует

20 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

несколько опорных точек. Эксперименты показывают, что алгоритм МК позволяет в разы ускорить поиск лейтмотива полным перебором [15].

В работе [17] Наранг и др. предложили параллельный алгоритм Par-МК для точного обнаружения лейтмотива на SMP системах для случая, когда данные полностью помещаются в оперативную память. Для распараллеливания Par-МК использует нити стандарта POSIX [19]. Каждая нить обрабатывает часть отсортированного массива, содержащего расстояния до опорной подпоследовательности. Алгоритм также распараллеливает цикл просмотра пар подпоследовательностей, отстоящих друг от друга в линейном порядке, выполняемый по величине этого отступа. Нити, которые обрабатывают разные значения отступа, но одну и ту же часть массива расстояний, выполняются на ядрах, которые разделяют кэш второго уровня.

Для устранения дисбаланса загрузки нитей из-за непредсказуемого и неравномерного количества подпоследовательностей, отбрасываемых различными нитями, авторы предложили две версии своего алгоритма: Par-MK-SLB и Par-MK-DLB (соответственно статическая и динамическая балансировка нагрузки). В вычислительных экспериментах на реальном временном ряде длины |Т| = 1,8 • 105 при длине лейтмотива т = 200, лучшая версия алгоритма продемонстрировала сверхлинейное ускорение на 32 ядрах благодаря динамической балансировке нагрузки в сочетании с превосходной производительностью кэша второго уровня. Однако на синтетическом временном ряде длины |Т| = 5 • 101 при длине лейтмотива т = 1024 ускорение лучшей версии уменьшилось более чем в 8,5 раза из-за снижения производительности кэша за счет большей длины лейтмотива. В своей дальнейшей работе авторы планировали модернизировать алгоритм для многоядерных ускорителей, но это исследование не было проведено.

Данная работа продолжает исследования авторов настоящей статьи [1, 10, 26, 27], посвященные разработке параллельных алгоритмов решения различных задач интеллектуального анализа временных рядов для современных многоядерных ускорителей. В работе [26] авторами представлен параллельный алгоритм поиска лейтмотивов на ускорителях Intel MIC для случая, когда входные данные могут быть размещены в оперативной памяти. Алгоритм использует набор матрично-векторных структур данных для хранения и индексации временного ряда и лейтмотивов, обеспечивающих эффективную векторизацию вычислений на платформе Intel MIC. Реализация выполнена на основе технологии параллельного программирования ОрепМР [11]. Эксперименты показали высокую масштабируемость параллельного алгоритма и его более высокую производительность при исполнении на многоядерном ускорителе, чем на узле, состоящем из двух многоядерных процессоров Intel. Механический перенос данной разработки на графический ускоритель, однако, невозможен, как в силу существенных различий как между архитектурами Intel MIC и GPU, так и ввиду отсутствия реализации технологии параллельного программирования ОрепМР для GPU. Технология параллельного программирования ОрепАСС [8], хотя и является идеологическим аналогом ОрепМР для GPU, помимо разницы в синтаксисе, имеет ряд существенных семантических отличий, которые обуславливают переработку имеющегося решения.

3. Параллельный поиск лейтмотивов на GPU

В данном разделе описан подход к распараллеливанию описанного выше алгоритма МК [15] для графического процессора. Ниже в разделе 3.1 изложены особенности данной аппаратной платформы и применяемой технологии параллельного программирования. В

2020, т. 9, № 3

21

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

разделах 3.2 и 3.3 приводится описание структур данных и реализации параллельного алгоритма соответственно.

3.1. Аппаратно-программная платформа

Графический процессор (Graphics Processing Unit, GPU) компании NVIDIA [18] представляет собой один из наиболее популярных в настоящее время многоядерных ускорителей. GPU имеет иерархическую архитектуру и состоит из симметричных потоковых мультипроцессоров (Streaming Multiprocessor, SM). Каждый мультипроцессор, в свою очередь, состоит из симметричных ядер, называемых CUDA-ядрами (Compute Unified Device Architecture, CUDA — вычислительная унифицированная архитектура устройства). Современные GPU насчитывают тысячи CUDA-ядер, способных опередить по производительности центральные процессоры на задачах, допускающих массивно-параллельные вычисления в сочетании с векторной обработкой данных.

Параллельное приложение запускается на GPU как набор нитей, где каждая нить исполняется отдельным CUDA-ядром и предусмотрена следующая иерархия нитей. Верхним уровнем иерархии, соответствующим всем нитям, является сетка нитей (grid), которая состоит из одномерного или двумерного массива симметричных блоков нитей. Блок нитей (thread block) представляет собой d-мерный (1 ^ d ^ 3) массив нитей. Внутри блока нити логически разделяются на группы по 32 нити — варпы (warp). Нити варпа исполняются в режиме SIMT (Single Instruction Multiple Threads), когда каждая нить выполняет одну и ту же инструкцию над собственной порцией общих данных.

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

В настоящее время для графических процессоров разработаны технологии параллельного программирования CUDA [4], OpenCL [16] и ОрепАСС [8], последняя из которых применена в данном исследовании. ОрепАСС представляет собой открытый стандарт параллельного программирования для создания гетерогенных параллельных программ, задействующих как центральный, так и графический процессоры. Стандарт включает библиотеку функций, переменные окружения и директивы компилятора для определения участков исходного кода программы, которые необходимо выполнить на графическом процессоре.

Модель исполнения ОрепАСС-приложения предусматривает иерархию нитей и соответствующие уровни параллелизма. Одна или более нитей составляют бригаду (gang), исполняемую на одном потоковом мультипроцессоре. В рамках бригады определяется одна или более симметричных групп нитей — рабочих (worker). Внутри рабочего нити исполняются в режиме SIMT, обеспечивая еще один, векторный (vector) уровень параллелизма.

Одной из основных директив компилятора в технологии ОрепАСС является #pragma асе parallel loop, которая распараллеливает цикл с фиксированным количеством повторений, равномерно распределяя итерации цикла между нитями бригад для исполнения (при отсутствии между итерациями цикла зависимостей по данным). Указанная директива может быть дополнена одним или несколькими ключевыми словами gang, worker, vector, которые обяжут компилятор применить в данном цикле соответствующие уровни параллелизма.

22 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

3.2. Реализация структур данных

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

Пусть вари графического процессора состоит из sizewarp нитей. Если длина искомого лейтмотива т не кратна sizewarp, то подпоследовательность выравнивается посредством дополнения фиктивными нулевыми элементами. Выравнивание данных позволяет избежать простаивания нитей в варпе, снижающего производительность вычислений. Обозначим количество фиктивных элементов через pad = sizewarp — (jn mod sizewarp), тогда выровненная подпоследовательность Tt: гп определяется следующим образом:

{tit ii-\-1; ■ ■ ■ ■ l? О,..., 0, if т mod sizewarp "> О

pad, (5)

tit ti+l t • • • tti-\-m—lt Otherwise.

Все выровненные подпоследовательности ряда хранятся в матрице подпоследовательностей S™ £ ]^Nx(m+pad) ^ КОТОрая определяется следующим образом:

Sf(hj) = ii+j-1- (6)

Обозначим количество опорных подпоследовательностей за г (0 < г <С N). Тогда матрица опорных подпоследовательностей Ref £ Мrx(m+pad) определяется следующим образом:

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

Ref (г, •) = ТДт : Tlk.m £ S™, 1 ^ к ^ г, гк = random,(1..N), Mp^qip^ iq. (7)

Индекс опорных подпоследовательностей Inef £ Nr для каждой опорной подпоследовательности хранит позицию ее начала во временном ряде.

Матрица расстояний D £ WxN предназначена для хранения истинного расстояния между каждой опорной подпоследовательностью и каждой подпоследовательностью ряда и определяется следующим образом:

D(i,j) =ED (TlRef^;m,Tj>m). (8)

Вектор стандартных отклонений представляет собой массив SD £ Мг, который для каждой опорной подпоследовательности содержит стандартное отклонение ее истинного расстояния до каждой подпоследовательности ряда.

Индекс стандартных отклонений представляет собой массив I$d £ Nr, содержащий уникальные числа в диапазоне от 1 до г, где числа соответствуют номерам опорных подпоследовательностей в Ref, упорядоченных по убыванию их стандартного отклонения.

Индекс подпоследовательностей Is £ представляет собой массив, который содержит позиции подпоследовательностей в матрице S™, упорядоченные по возрастанию их истинных расстояний до опорной подпоследовательности, имеющей наибольшее стандартное отклонение.

Индекс лейтмотива 1м £ NNx2 предназначен для хранения позиций двух подпоследовательностей в матрице SJf, которые являются потенциальным лейтмотивом и в индексе подпоследовательностей Is отстоят друг от друга на величину offset.

2020, т. 9, № 3

23

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

Матрица нимсних границ LB G МгхЛГ содержит значения нижних границ между каждой опорной подпоследовательностью и каждым возможным лейтмотивом и в соответствии с (4) вычисляется следующим образом:

LB(i,j) = \D{lsD(i),IMU,l))-D{lsD(i),lMU,2))l (9)

Битовая карта представляет собой массив булевых значений В Е MN, в котором для каждого потенциального лейтмотива хранится результат конъюнкции проверок превышения текущим значением порога bsf каждой из нижних границ. Если элемент битовой карты равен FALSE, то соответствующий лейтмотив отбрасывается без вычисления истинного расстояния между парой подпоследовательностей. Битовая карта определяется следующим образом:

B(i) = /\rj=1(LB(i,j)<bsf). (10)

3.3. Реализация алгоритма

Предлагаемая параллельная реализация поиска лейтмотива временного ряда представлена в алг. 1. Входными данными алгоритма являются временной ряд Т, длина искомого лейтмотива т, минимальный промежуток между подпоследовательностями лейтмотива w и количество опорных подпоследовательностей г. Алгоритм возвращает найденный лейтмотив в виде кортежа, состоящего из двух подпоследовательностей и величины расстояния между ними.

Алгоритм выполняется следующим образом. Сначала на центральном процессоре формируются основные структуры данных: матрицы выровненных подпоследовательностей S™ и опорных подпоследовательностей Ref, а также их индексы 1д и 4де/ соответственно, — а затем с помощью директивы OpenACC #pragma асе data передает их на графический процессор. Затем выполняются фазы предварительной обработки данных и нахождения лейтмотива, рассматриваемые ниже в разделах 3.3.1 и 3.3.2 соответственно.

3.3.1. Предварительная обработка данных

Фаза предварительной обработки данных предполагает z-нормализацию строк матрицы подпоследовательностей S™ и вычисление на ее основе структур данных, описанных выше в разделе 3.2: матрица расстояний D, вектор стандартных отклонений SD и индекс стандартных отклонений Isd, а также вычисление начального значения порога bsf и генерация индексов левых частей предполагаемых лейтмотивов 1м(', 1)-

Z-нормализация (см. алг. 2) реализуется с помощью двух вложенных циклов. Внешний цикл по строкам матрицы подпоследовательностей распараллеливается на уровне бригады с помощью директивы #pragma асе parallel loop gang. Внутренние циклы по элементам подпоследовательностей, выполняющие вычисление среднего арифметического и стандартного отклонения в соответствии с (3) и обновление элементов подпоследовательностей нормализованными значениями, распараллеливаются на уровне вектора с помощью директивы #pragma асе parallel loop vector.

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

24

Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

Алг. 1 MotifDiscovery(in Т, т, w, г; out motif)

> Инициализация

1: Ref А- г случайно выбранных подпоследовательностей из S™

2: /де/ А- г индексов элементов в Ref

3: ^pragma асе data create(L.B, SD, В, Im) copying™, D, I Ref, Is, N, m, w, r) copyout (motif)

4: {

> Фаза предварительной обработки данных

5: Srp A- ZNORMALIZE(S^)

6: D A- CALCULATEDlSTANCES(Sj?, I Ref)

7: SD a- CalculateStdDev(D)

8: ISD <- Sort(S’D); Is a- Sort(D(/sd(1), •))

9: bsf ^ InitBSF(Z), I Ref; bsf)

10: /м(-, 1) a- GeneratePairs(/s, offset)

> Фаза поиска лейтмотива

11: for all offset € 1..JV do

12: abandon A- FALSE

13: /м(-,2) A- GeneratePairs(/s, offset)

14: LB A- CaLCULATELOWERBOUNDS(L>, /де/, /М, 6s/)

15: abandon A- Verify(LB, /m, bsf, B, abandon)

16: if abandon then

17: break

18: else

19: bsf A- UpdateBSF(S'™, B, Im, bsf, motif)

20: }

21: return motif

Алг. 2 Znormalize(in out S™)

1: ^pragma acc parallel loop gang 2: for all i € l..iV do

3: mean A- 0; std A- 0

4: ^pragma acc loop vector reduction(+: mean, std)

5: for all j G l..m do

6: mean A- mean + S™(i, j)

7: std <—std + S™(i, j)2

8: mean A- m^n; A- А- у/(std — mean2)

9: ^pragma acc loop vector

10: for all j G l..m do

11: SJp{i,j) A- ST{.m)~mean

большую степень параллелизма: свертка указанных циклов в один, выполняемая добавлением в директиву распараллеливания внешнего цикла атрибута collapse(2).

Вычисление вектора стандартных отклонений (см. алг. 4) организуется как два вложенных цикла: внешний — по опорным подпоследовательностям, внутренний — по элементам

2020, т. 9, № 3

25

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

Алг. 3 CALCULATEDlSTANCES(lN S™. IRef; OUT D) 1: ^pragma acc parallel loop gang collapse(2)

2: for all i G l..r do 3: for all j G 1..JV do

4: d G- 0

5: ^pragma acc loop vector reduction(+: d)

6: for all к G l..m do

7: d G- d + к) - SJp{IRef{l), к))2

8: D(i,j) G- \/d

матрицы расстояний. Поскольку количество опорных подпоследовательностей существенно меньше, чем количество нитей, запущенных на графическом процессоре (см. раздел 1.2), распараллеливанию подвергается только внутренний цикл, на бригадном и векторном уровнях.

Алг. 4 CalculateStdDev(in D\ out SD)

1: for all i G l..r do

2: mean G- 0; std G- 0

3: ^pragma acc parallel loop gang vector reduction(+: mean, std)

4: for all j G 1..N do

5: mean G- mean + D{i, j)

6: std <— std + D(i,j)2

7: mean <— G-

8: SD{i) y/(std — mean2)

В инициализации порога bsf минимумом матрицы расстояний D (см. алг. 5) применяется двухуровневое распараллеливание вычислений (бригадное и векторное), а также прием свертки циклов, рассмотренный выше.

Алг. 5 InitBSF(in D, IRef] out bsf)

1: bsf <—boo

2: ^pragma acc parallel loop gang vector collapse(2) reduction(min: bsf)

3: for all i G l..r do 4: for all j G 1..N do

5: if |j - IRef(i) | > w then

6: bsf G- min(bsf, D(i,j))

3.3.2. Поиск лейтмотива

Фаза поиска лейтмотива представляет собой просмотр пар подпоследовательностей, отстоящих друг от друга на offset позиций и реализуется с помощью цикла по указанной переменной. На каждой итерации цикла индекс лейтмотива 1м{•, 2) заполняется индексами подпоследовательностей из правой части возможного лейтмотива, которые смещены на offset позиций относительно индекса 1м{ь 1) в индексе Is-

Затем в соответствии с неравенством треугольника осуществляется параллельное вы-

26

Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

числение нижних границ потенциальных лейтмотивов и заполнение матрицы нижних границ LB (см. алг. 6), выполняемые с помощью двухуровневого распараллеливания и свертки циклов.

Алг. 6 CalculateLowerBounds(in D, IRef, IM, out LB)

1: ^pragma acc parallel loop gang vector collapse(2)

2: for all i € l..r do

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

3: for all j £ 1..N — offset — 1 do

Далее осуществляется проверка потенциальных лейтмотивов путем вычисления битовой карты и нахождение условия останова поиска лейтмотива abandon (см. алг. 7). Если дизъюнкция всех элементов битовой карты дает в результате TRUE (все нижние границы для всех пар подпоследовательностей, отстоящих друг от друга на offset позиций, больше, чем текущее значение порога bsf), то результирующий лейтмотив найден, а остальные кандидаты могут быть отброшены. Проверка реализуется посредством двух вложенных циклов: внешний — по потенциальным лейтмотивам и внутренний — по элементам матрицы нижних границ. Внешний цикл распараллеливается на уровнях бригад и вектора, а с помощью конструкции reduction обеспечивается нахождение условия останова поиска лейтмотива abandon. Поскольку каждая порождаемая внешним циклом нить вычисляет несколько элементов битовой карты, для корректного результата внутренний цикл должен исполняться последовательно, что обеспечивается директивой компилятора #pragma acc parallel seq.

Алг. 7 Verify(in LB, IM, bsf-, in out B, abandon)

9: abandon ■£- not abandon

Если описанная выше процедура проверки не выявила лейтмотив, то выполняется обновление порога bsf следующим образом (см. алг. 8). Вычисляется истинное расстояние между подпоследовательностями в каждом потенциальном лейтмотиве, для которого соответствующий элемент битовой карты равен TRUE. Порог обновляется вычисленным значением истинного расстояния, если оно меньше текущего значения bsf. Цикл, выполняющий вычисление истинного расстояния, распараллеливается на уровнях бригады и рабочего и дополнен конструкцией reduction для свертки операции нахождения минимума bsf среди значений, вычисленных запущенными нитями.

4:

1: ^pragma acc parallel loop gang vector reduction(OR: abandon) 2: for all i € 1..N — offset — 1 do 3: B(i) <r- TRUE

4: if \1м{г, 1) — 1м(г, 2)| ^ w then

5: ^pragma acc loop seq

6: for all j € l..r do

7: B(i) ■£- B(i) and (LB(j,i) < bsf)

8: abandon abandon or B(i)

2020, t. 9, № 3

27

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

Алг. 8 UpdateBSF(in S™, В, IM] in out bsf; out motif) 1: ^pragma acc parallel loop gang worker reduction(min: bsf) 2: for all i G 1..JV — offset — 1 do 3: if B(i) and \1м(г, 1) — Гм(*> 2)| ^ w then

4: d <- 0

5: ^pragma acc loop vector reduction(+: d)

6: for all j € l..m do

7: d^d+ - S?(IM(i,2),j))2

8: if bsf > \fd then

9: bsf y/d,

10: motif <r- {/м(*, 1);1м(г, 2 );bsf}

4. Вычислительные эксперименты

Для исследования эффективности разработанного алгоритма нами были проведены вычислительные эксперименты на графическом процессоре NVIDIA GeForce RTX 2080 Ti1 со следующими характеристиками: количество ядер — 4362 (68 мультипроцессоров), частота ядра — 1,35 ГГц, память — 11 Гб, пиковая производительность — 11 TFLOPS.

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

Ускорение и параллельная эффективность параллельного алгоритма, запускаемого на к блоках мультипроцессоров, вычисляются как s(k) = и е(к) = соответственно, где fi и Д — время работы алгоритма на одном и на к мультипроцессорах соответственно. При измерении времени работы не учитывалось время, затрачиваемое алгоритмом на загрузку данных в память графического процессора и на выдачу результата.

В экспериментах использовались синтетический и реальный временные ряды, состоящие из 105 элементов. Генерация синтетического временного ряда осуществлена на основе модели случайных блужданий (Random Walk) [21]. Реальный временной ряд взят из работы [9] и представляет собой сигналы ЭКГ, снятые с дискретизацией 128 Гц. Количество опорных подпоследовательностей в экспериментах взято г = 10.

Результаты экспериментов представлены на рисунке. Можно видеть, что разработанный параллельный алгоритм демонстрирует ускорение, близкое к линейному, и параллельную эффективность от 50 до 100 процентов (в зависимости от длины искомого лейтмотива). При этом лучшие показатели ожидаемо наблюдаются при больших значениях длины искомого лейтмотива, обеспечивающих алгоритму большую вычислительную нагрузку.

Заключение

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

Спецификации видеокарты GeForce RTX 2080 Ti

28

Вестник КУУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

а) синтетический ряд Random Walk {п = 105)

б) реальный ряд ЭКГ (п = 105)

Рис. Ускорение и параллельная эффективность алгоритма

Разработан новый параллельный алгоритм поиска лейтмотива временного ряда на графическом процессоре для случая, когда временной ряд может быть размещен в оперативной памяти. Предложенный алгоритм является параллельной версией последовательного алгоритма МК [15]. Распараллеливание выполнено с помощью технологии программирования ОрепАСС. Разработаны матричные структуры данных, позволяющие эффективно распараллелить и векторизовать вычисления на графическом процессоре. Представлены результаты вычислительных экспериментов, показывающие высокую масштабируемость алгоритма.

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

Авторы благодарят Ксению Юрьевну Никольскую за помощь в проведении вычислительных экспериментов.

Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (грант № 20-07-00140) и Министерства образования и науки РФ (государственное задание FENU-2020-0022).

2020, т. 9, № 3

29

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

Литература

1. Цымблер М.Л. Параллельный алгоритм поиска диссонансов временного ряда для многоядерных ускорителей // Вычислительные методы и программирование: Новые вычислительные технологии. 2019. Т. 20, № 3. С. 211-223. DOI: 10.26089/NumMet.v20r320

2. Balasubramanian A., Wang J., Prabhakaran В. Discovering Multidimensional Motifs in Physiological Signals for Personalized Healthcare // J. Sel. Topics Signal Processing. 2016. Vol. 10, no. 5. P. 832-841. DOI: 10.1109/JSTSP.2016.2543679.

3. Brown A., Yemini E., Grundy L., Jucikas T., Schafer W. A Dictionary of Behavioral Motifs Reveals Clusters of Genes Affecting Caenorhabditis Elegans Locomotion // Proceedings of the National Academy of Sciences of the United States of America. 2012. Vol. 110, no. 2. P. 791-796. DOI: 10.1073/pnas.l211447110.

4. Cheng J., Grossman M., McKercher T. Professional CUDA C Programming. 1st Edition. Wrox, 2014. 528 p.

5. Chiu B.Y., Keogh E.J., Lonardi S. Probabilistic Discovery of Time Series Motifs // Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’03 (Washington, D.C., USA, August, 24-27, 2003). ACM, 2003. P. 493-498. DOI: 10.1145/956750.956808.

6. Duran A., Klemm M. The Intel Many Integrated Core Architecture // Proceedings of the 2012 International Conference on High Performance Computing and Simulation, HPCS 2012 (Madrid, Spain, July, 2-6, 2012). 2012. P. 365-366. DOI: 10.1109/HPCSim.2012.6266938.

7. Fang J., Varbanescu A.L., Sips H.J. Sesame: A User-Transparent Optimizing Framework for Many-Core Processors // Proceedings of the 13th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing, CCGrid 2013 (Delft, Netherlands, May, 13-16, 2013). 2013. P. 70-73. URL: 10.1109/CCGrid.2013.79.

8. Farber R. Parallel Programming with OpenACC. 1st Edition. Morgan Kaufmann, 2016. 326 p.

9. Goldberger A., Amaral L., Glass L., Hausdorff J., Ivanov P., et al. PhysioBank, Physio Toolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals // Circulation. 2000. Vol. 101, no. 23. P. 215-220. DOI: 10.1161/01.CIR.101.23.e215.

10. Kraeva Ya., Zymbler M. Scalable Algorithm for Subsequence Similarity Search in Very Large Time Series Data on Cluster of Phi KNL // 20th International Conference on Data Analytics and Management in Data Intensive Domains, DAMDID/RCDL 2018 (Moscow, Russia, October, 9-12, 2018), Revised Selected Papers. Communications in Computer and Information Science. 2019. Vol. 1003. P. 149-164. DOI: 10.1007/978-3-030-23584-0_9

11. Mattson T. S08 - Introduction to OpenMP // Proceedings of the ACM/IEEE SC2006 Conference on High Performance Networking and Computing (Tampa, FL, USA, November, 11-17, 2006). 2006. P. 209. DOI: 10.1145/1188455.1188673.

12. McGovern A., Rosendahl D.H., Brown R.A., Droegemeier K. Identifying Predictive Multidimensional Time Series Motifs: an Application to Severe Weather Prediction // Data Min. Knowl. Discov. 2011. Vol. 22, no. 1-2. P. 232-258. DOI: 10.1007/sl0618-010-0193-7.

13. Meng J., Yuan J., Hans M., Wu Y. Mining Motifs from Human Motion // Proceedings of the Eurographics 2008 - Short Papers (Crete, Greece, April, 14-18, 2008). Eurographics Association, 2008. P. 71-74. DOI: 10.2312/egs.20081024.

30

Вестник КУУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

14. Minnen D., Isbell C.L., Essa I.A., Starner T. Discovering Multivariate Motifs using Subsequence Density Estimation and Greedy Mixture Learning // Proceedings of the 22nd AAAI Conference on Artificial Intelligence (Vancouver, British Columbia, Canada, July, 22-26, 2007). AAAI Press, 2007. P. 615-620.

15. Mueen A., Keogh E.J., Zhu Q., Cash S., Westover M.B. Exact Discovery of Time Series Motifs // Proceedings of the SIAM International Conference on Data Mining, SDM 2009 (Sparks, Nevada, USA, April, 30 - May, 2, 2009). SIAM, 2009. P. 473-484. DOI: 10.1137/1.9781611972795.41.

16. Munshi A., Gaster B.R., Mattson T.G., Fung J., Ginsburg D. OpenCL Programming Guide. 1st Edition. Addison-Wesley, 2011. p. 646.

17. Narang A., Bhattacherjee S. Parallel Exact Time Series Motif Discovery // Proceedings of the 16th International Euro-Par Conference (Ischia, Italy, August, 31 - September, 3, 2010). Part II. Lecture Notes in Computer Science. Vol. 6272. Springer, 2010. P. 304-315. DOI: 10.1007/978-3-642-15291-7_28.

18. Owens J. GPU Architecture Overview // Proceedings of the International Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’07 (San Diego, California, USA, August, 5-9, 2007). ACM, New York, NY, USA. DOI: 10.1145/1281500.1281643.

19. Padua D.A. POSIX Threads (Pthreads) // Encyclopedia of Parallel Computing. Springer, 2011. P. 1592-1593. DOI: 10.1007/978-0-387-09766-4_447.

20. Patel P., Keogh E.J., Lin J., Lonardi S. Mining Motifs in Massive Time Series Databases // Proceedings of the 2002 IEEE International Conference on Data Mining, ICDM 2002 (Maebashi City, Japan, December, 9-12, 2002). IEEE Computer Society, 2002. P. 370-377. DOI: 10.1109/ICDM.2002.1183925.

21. Pearson K. The Problem of the Random Walk // Nature. 1905. Vol. 72, no. 294. DOI: 10.1038/072342a0.

22. Shieh J., Keogh E.J. iSAX: Indexing and Mining Terabyte Sized Time Series // Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (Las Vegas, Nevada, USA, August, 24-27, 2008). ACM, 2008. P. 623-631. DOI: 10.1145/1401890.1401966.

23. Tanaka Y., Iwanroto K., Uehara K. Discovery of Time-Series Motif from Multi-Dimensional Data Based on MDL Principle // Machine Learning. 2005. Vol. 58, no. 2-3. P. 269-300. DOI: 10.1007/ sl0994-005-5829-2.

24. Wilson D.R., Martinez T.R. Reduction Techniques for Instance-based Learning Algorithms // Machine Learning. 2000. Vol. 38, no. 3. P. 257-286. DOI: 10.1023/A:1007626913721.

25. Yoon C.E., O’Reilly O., Bergen K.J., Beroza G.C. Earthquake Detection through Computationally Efficient Similarity Search // Science Advances. 2015. Vol. 1, no. 11. P. 1-13. DOI: 10.1126/sciadv. 1501057.

26. Zynrbler M.L., Kraeva Ya.A. Discovery of Time Series Motifs on Intel Many-Core Systems // Lobachevskii Journal of Mathematics. 2019. Vol. 40, no. 12. P. 2124-2132. DOI: 10.1134/S199508021912014X.

27. Zynrbler M., Polyakov A., Kipnis M. Time Series Discord Discovery on Intel Many-Core Systems // 13th International Conference, PCT 2019 (Kaliningrad, Russia, April, 2-4, 2019).

2020, t. 9, № 3

31

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

Revised Selected Papers. Communications in Computer and Information Science. Springer, 2019. Vol. 1063. P. 168-182. DOI: 10.1007/978-3-030-28163-2_12.

Цымблер Михаил Леонидович, к.ф.-м.н., доцент, кафедра системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация)

Краева Яна Александровна, преподаватель, кафедра системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация)

DOI: 10.14529/ cmse200302

PARALLEL ALGORITHM FOR TIME SERIES MOTIF DISCOVERY ON GRAPHIC PROCESSOR

© 2020 M.L. Zymbler, Ya.A. Kraeva

South Ural State University (pr. Lenina 76, Chelyabinsk, 454080 Russia)

E-mail: mzym@susu.ru, kraevaya@susu.ru Received: 26.07.2020

A time series motif is a pair of subsequences of the series that are most similar to each other. The problem of motif discovery occurs in a wide range of subject areas: medicine, biology, weather prediction, etc. The paper proposes a novel parallel algorithm for time series motif discovery on GPU for the case when the input data fit in the main memory. The proposed algorithm is based on the MK algorithm, which exploits the Euclidean distance and the triangle inequality to prune clearly unpromised pairs of subsequences without computation of the distance. MK decreases the running time up to several orders of magnitude in comparison to the most serial algorithms. However, the performance of MK decreases significantly when the time series length is greater then hundreds of thousands of elements. We designed matrix data structures that ensure the efficient parallel computations on GPU, and paralleled the calculations through the OpenACC programming technology. The results of experimental evaluation on synthetic and real-world datasets confirmed the high scalability of the developed algorithm. Keywords: time series, motif discovery, parallel algorithm, NVIDIA GPU, OpenACC.

FOR CITATION

Zymbler M.L., Kraeva Ya.A. Parallel Algorithm for Time Series Motif Discovery on Graphic Processor. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2020. vol. 9, no. 3. pp. 17-34. (in Russian) DOI: 10.14529/cmse200302.

This paper is distributed under the terms of the Creative Commons Attribution-Non Commercial 3.0 License which permits non-commercial use, reproduction and distribution of the work without further permission provided the original work is properly cited.

References

1. Zymbler M.L. A Parallel Discord Discovery Algorithm for Time Series on Many-core Accelerators. Numerical methods and programming. 2019. Vol. 20, no. 3. P. 211-223. DOI: 10.26089/NumMet.v20r320

2. Balasubramanian A., Wang J., Prabhakaran B. Discovering Multidimensional Motifs in Physiological Signals for Personalized Healthcare. J. Sel. Topics Signal Processing. 2016.

32

Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

М.Л. Цымблер, Я.А. Краева

Vol. 10, по. 5. Р. 832-841. DOI: 10.1109/JSTSP.2016.2543679.

3. Brown A., Yemini Е., Grundy L., Jucikas Т., Schafer W. A Dictionary of Behavioral Motifs Reveals Clusters of Genes Affecting Caenorhabditis Elegans Locomotion. Proceedings of the National Academy of Sciences of the United States of America. 2012. Vol. 110, no. 2. P. 791-796. DOI: 10.1073/pnas. 1211447110.

4. Cheng J., Grossman M., McKercher T. Professional CUDA C Programming. 1st Edition. Wrox, 2014. 528 p.

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

5. Chiu B.Y., Keogh E.J., Lonardi S. Probabilistic Discovery of Time Series Motifs. Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’03 (Washington, D.C., USA, August, 24-27, 2003). ACM, 2003. P. 493-498. DOI: 10.1145/956750.956808.

6. Duran A., Klemm M. The Intel Many Integrated Core Architecture. Proceedings of the 2012 International Conference on High Performance Computing and Simulation, HPCS 2012 (Madrid, Spain, July, 2-6, 2012). 2012. P. 365-366. DOI: 10.1109/HPCSim.2012.6266938.

7. Fang J., Varbanescu A.L., Sips H.J. Sesame: A User-Transparent Optimizing Framework for Many-Core Processors. Proceedings of the 13th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing, CCGrid 2013 (Delft, Netherlands, May, 13-16, 2013). 2013. P. 70-73. DOI: 10.1109/CCGrid.2013.79.

8. Farber R. Parallel Programming with OpenACC. 1st Edition. Morgan Kaufmann, 2016. 326 p.

9. Goldberger A., Amaral L., Glass L., Hausdorff J., Ivanov P., et al. PhysioBank, Physio Toolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals. Circulation. 2000. Vol. 101, no. 23. P. 215-220. DOI: 10.1161/01.CIR.101.23.e215.

10. Kraeva Ya., Zymbler M. Scalable Algorithm for Subsequence Similarity Search in Very Large Time Series Data on Cluster of Phi KNL. 20th International Conference on Data Analytics and Management in Data Intensive Domains, DAMDID/RCDL 2018 (Moscow, Russia, October, 9-12, 2018), Revised Selected Papers. Communications in Computer and Information Science. 2019. Vol. 1003. P. 149-164. DOI: 10.1007/978-3-030-23584-0_9

11. Mattson T. S08 - Introduction to OpenMP. Proceedings of the ACM/IEEE SC2006 Conference on High Performance Networking and Computing (Tampa, FL, USA, November, 11-17, 2006). 2006. P. 209. DOI: 10.1145/1188455.1188673.

12. McGovern A., Rosendahl D.H., Brown R.A., Droegemeier K. Identifying Predictive Multidimensional Time Series Motifs: an Application to Severe Weather Prediction. Data Min. Knowl. Discov. 2011. Vol. 22, no. 1-2. P. 232-258. DOI: 10.1007/sl0618-010-0193-7.

13. Meng J., Yuan J., Hans M., Wu Y. Mining Motifs from Human Motion. Proceedings of the Eurographics 2008 - Short Papers (Crete, Greece, April, 14-18, 2008). Eurographics Association, 2008. P. 71-74. DOI: 10.2312/egs.20081024.

14. Minnen D., Isbell C.L., Essa I.A., Starner T. Discovering Multivariate Motifs using Subsequence Density Estimation and Greedy Mixture Learning. Proceedings of the 22nd AAAI Conference on Artificial Intelligence (Vancouver, British Columbia, Canada, July, 22-26, 2007). AAAI Press, 2007. P. 615-620.

15. Mueen A., Keogh E.J., Zhu Q., Cash S., Westover M.B. Exact Discovery of Time Series Motifs. Proceedings of the SIAM International Conference on Data Mining, SDM

2020, t. 9, № 3

33

Параллельный алгоритм поиска лейтмотивов временного ряда для графического...

2009 (Sparks, Nevada, USA, April, 30 - May, 2, 2009). SIAM, 2009. P. 473-484. DOI: 10.1137/1.9781611972795.41.

16. Munshi A., Gaster B.R., Mattson T.G., Fung J., Ginsburg D. OpenCL Programming Guide. 1st Edition. Addison-Wesley, 2011. p. 646.

17. Narang A., Bhattacherjee S. Parallel Exact Time Series Motif Discovery. Proceedings of the 16th International Euro-Par Conference, (Ischia, Italy, August, 31 - September, 3, 2010). Part II. Lecture Notes in Computer Science. Vol. 6272. Springer, 2010. P. 304-315. DOI: 10.1007/978-3-642-15291-7_28.

18. Owens J. GPU Architecture Overview. Proceedings of the International Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’07 (San Diego, California, USA, August, 5-9, 2007). ACM, New York, NY, USA. DOI: 10.1145/1281500.1281643.

19. Padua D.A. POSIX Threads (Pthreads). Encyclopedia of Parallel Computing. Springer, 2011. P. 1592-1593. DOI: 10.1007/978-0-387-09766-4_447.

20. Patel P., Keogh E.J., Lin J., Lonardi S. Mining Motifs in Massive Time Series Databases. Proceedings of the 2002 IEEE International Conference on Data Mining, ICDM 2002 (Maebashi City, Japan, December, 9-12, 2002). IEEE Computer Society, 2002. P. 370-377. DOI: 10.1109/ICDM.2002.1183925.

21. Pearson K. The Problem of the Random Walk. Nature. 1905. Vol. 72, no. 294. DOI: 10.1038/072342a0.

22. Shieh J., Keogh E.J. iSAX: Indexing and Mining Terabyte Sized Time Series. Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (Las Vegas, Nevada, USA, August, 24-27, 2008). ACM, 2008. P. 623-631. DOI: 10.1145/1401890.1401966.

23. Tanaka Y., Iwamoto K., Uehara K. Discovery of Time-Series Motif from Multi-Dimensional Data Based on MDL Principle. Machine Learning. 2005. Vol. 58, no. 2-3. P. 269-300. DOI: 10.1007/ sl0994-005-5829-2.

24. Wilson D.R., Martinez T.R. Reduction Techniques for Instance-based Learning Algorithms. Machine Learning. 2000. Vol. 38, no. 3. P. 257-286. DOI: 10.1023/A:1007626913721.

25. Yoon C.E., O’Reilly O., Bergen K.J., Beroza G.C. Earthquake Detection through Computationally Efficient Similarity Search. Science Advances. 2015. Vol. 1, no. 11. P. 1-13. DOI: 10.1126/sciadv. 1501057.

26. Zymbler M.L., Kraeva Ya.A. Discovery of Time Series Motifs on Intel Many-Core Systems. Lobachevskii Journal of Mathematics. 2019. Vol. 40, no. 12. P. 2124-2132. DOI: 10.1134/S199508021912014X.

27. Zymbler M., Polyakov A., Kipnis M. Time Series Discord Discovery on Intel Many-Core Systems. 13th International Conference, PCT 2019 (Kaliningrad, Russia, April, 2-4, 2019). Revised Selected Papers. Communications in Computer and Information Science. Springer, 2019. Vol. 1063. P. 168-182. DOI: 10.1007/978-3-030-28163-2_12.

34

Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

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