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

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

CC BY
183
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ДАННЫХ / ПОИСК АССОЦИАТИВНЫХ ПРАВИЛ / OPENMP / INTEL MANY INTEGRATED CORE / DATA MINING / FREQUENT ITEMSET COUNTING

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

Поиск ассоциативных правил предполагает нахождение устойчивых корреляций между наборами элементов в больших базах транзакционных данных и является одной из основных задач интеллектуального анализа данных. Ассоциативные правила генерируются на основе множества всех наборов, в которых элементы часто встречаются совместно. Алгоритм DIC (Dynamic Itemset Counting) является модификацией классического алгоритма Apriori поиска частых наборов. В отличие от предшественника DIC пытается сократить количество проходов по базе транзакций и сохранить при этом относительно небольшое количество наборов, поддержка которых подсчитывается в рамках одного прохода. В статье рассмотрена проблема ускорения алгоритма DIC на многоядерной архитектуре Intel Many Integrated Core (MIC) для случая, когда база транзакций помещается в оперативную память. Разработанная с помощью технологии OpenMP параллельная реализация алгоритма DIC использует битовое представление транзакций и наборов, что позволяет ускорить и векторизовать подсчет поддержки наборов, реализуемый посредством логических побитовых операций. Проведенные эксперименты с синтетическими и реальными данными подтвердили хорошую производительность и масштабируемость предложенного алгоритма.

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

PARALLEL FREQUENT ITEMSET MINING ON THE INTEL MIC ACCELERATORS

Association rule mining is one of the basic problems of data mining, which supposes finding strong correlations between itemsets in large transaction database. Association rules are generated from frequent itemsets (itemset is frequent if its items frequent occur together in transactions). The DIC (Dynamic Itemset Counting) algorithm is modification of the classical Apriori algorithm of finding frequent itemsets. DIC tries to reduce the number of passes made over the transaction database while keeping the number of itemsets counted in a pass relatively low. The paper addresses the task of accelerating DIC on the Intel MIC (Many Integrated Core) systems in the case when the transaction database fits into the main memory. The paper presents a parallel implementation of DIC based on OpenMP technology and thread-level parallelism. We exploit the bit-based internal layout for transactions and itemsets. This technique simplifies the support count via logical bitwise operation, and allows for vectorization of such a step. Experiments with large synthetic and real databases showed good performance and scalability of the proposed algorithm.

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

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

ПАРАЛЛЕЛЬНЫЙ ПОИСК ЧАСТЫХ НАБОРОВ НА МНОГОЯДЕРНЫХ УСКОРИТЕЛЯХ INTEL MIC

© 2019 М.Л. Цымблер

Юясно-Уральский государственный университет (454080 Челябинск, пр. им. В.И. Ленина, д. 76) E-mail: [email protected] Поступила в редакцию: 26.12.2018

Поиск ассоциативных правил предполагает нахождение устойчивых корреляций между наборами элементов в больших базах транзакционных данных и является одной из основных задач интеллектуального анализа данных. Ассоциативные правила генерируются на основе множества всех наборов, в которых элементы часто встречаются совместно. Алгоритм DIC (Dynamic Itemset Counting) является модификацией классического алгоритма Apriori поиска частых наборов. В отличие от предшественника DIC пытается сократить количество проходов по базе транзакций и сохранить при этом относительно небольшое количество наборов, поддержка которых подсчитывается в рамках одного прохода. В статье рассмотрена проблема ускорения алгоритма DIC на многоядерной архитектуре Intel Many Integrated Core (MIC) для случая, когда база транзакций помещается в оперативную память. Разработанная с помощью технологии ОрепМР параллельная реализация алгоритма DIC использует битовое представление транзакций и наборов, что позволяет ускорить и векторизовать подсчет поддержки наборов, реализуемый посредством логических побитовых операций. Проведенные эксперименты с синтетическими и реальными данными подтвердили хорошую производительность и масштабируемость предложенного алгоритма.

Ключевые слова: интеллектуальный анализ данных, поиск ассоциативных правил, ОрепМР, Intel Many Integrated Core.

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

Цымблер М.Л. Параллельный поиск частых наборов на многоядерных ускорителях Intel MIC // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2019. Т. 8, № 1. С. 54-70. DOI: 10.14529/cmsel90104.

Введение

Поиск ассоциативных правил (association rule mining) предполагает нахождение часто повторяющихся зависимостей в заданном наборе объектов. Наглядным примером применения ассоциативных правил является анализ рыночной корзины (market basket analysis), когда ставится задача нахождения наборов товаров в супермаркете, которые часто покупаются совместно. Ассоциативное правило представляет собой импликацию вида А -А В [support = х %, confidence = у %], где А и В — непустые и непересекающиеся наборы товаров, a support и confidence — меры полезности правила для аналитика. Поддержка (support) правила показывает, что в ж % от общего числа покупок наборы А и В присутствовали одновременно. Достоверность (confidence) правила показывает, что у % покупателей, которые приобрели набор А, приобрели также набор В. Поиск ассоциативных правил применяется в медицине (например, нахождение побочных эффектов лекарств), генной инженерии (поиск часто повторяющихся цепочек ДНК) и других предметных областях.

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

на основе найденных частых наборов [2]. Формальное определение задачи поиска всех

частых наборов выглядит следующим образом. Пусть дано множество объектов I = • • • Ат}, любое непустое его подмножество называют набором. Набор из к объектов (1 ^ к ^ т) называют к-набором. Пусть имеется множество транзакций Т>, в котором каждая транзакция представляет собой пару (tid] I), где tid — уникальный идентификатор транзакции, I С I — набор. Поддержкой набора I С I является доля транзакций Т>, содержащих данный набор:

, х |{т е v 11 с т.пI

support(l) = ------|^j------. (1)

Наперед задаваемый порог поддержки minsup является параметром задачи. Набор, имеющий поддержку не ниже minsup, называют частым, иначе набор называют редким. Множество всех частых к-наборов обозначают С,/%. Решением задачи поиска частых наборов будет множество С = UгДе ктах — максимальное количество объектов в частом наборе.

В данной статье предлагается параллельный алгоритм поиска всех частых наборов для многоядерных ускорителей Intel Many Integrated Core (MIC) [10]. Ускорители Intel MIC основаны на архитектуре Intel x86 и поддерживают соответствующие модели и инструменты параллельного программирования. Устройства MIC обеспечивают большое количество энергоэффективных вычислительных ядер (до 72) с малой (относительно обычных многоядерных процессоров Intel) тактовой частотой, обладающих высокой пропускной способностью локальной памяти и 512-битными векторными регистрами. Системы MIC, как правило, дают наибольшую производительность в приложениях, предполагающих вычислительные операции над большими объемами данных (десятки миллионов элементов и более), векторизуемые компилятором [22]. Под векторизацией понимается замена нескольких скалярных операций в теле цикла с фиксированным количеством повторений на одну векторную операцию [3].

Остаток статьи организован следующим образом. В разделе 1 приведен обзор работ по тематике исследования. Описание последовательного алгоритма DIC приведено в разделе 2. Раздел 3 содержит описание предложенного параллельного алгоритма поиска частых наборов. Результаты экспериментального исследования разработанного алгоритма приведены в разделе 4. В заключении обсуждается область применения разработанного алгоритма и суммируются полученные результаты.

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

Классическим алгоритмом решения задачи поиска частых наборов является алгоритм Apriori [2]. Идея Apriori заключается в итеративной генерации множества кандидатов в частые наборы и последующем отборе кандидатов с подходящим значением поддержки. Итерация осуществляется по к, количеству объектов в наборах-кандидатах, начиная с 1. В алгоритме используется следующее свойство антимонотонности поддержки (принцип a priori), которое позволяет исключать из рассмотрения заведомо редкие наборы: если к-набор является редким, то содержащий его (к + 1)-набор также является редким.

Алгоритм Dynamic Itemset Counting (DIC) [5] является модификацией Apriori. В отличие от предшественника DIC пытается сократить количество проходов по множеству транзакций и сохранить при этом относительно небольшое количество наборов, поддержка которых подсчитывается в рамках одного прохода. Авторы отметили большой потенциал

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

Алгоритм DI С-ОРТ [19] является параллельной версией алгоритма DIC для вычислительных систем с распределенной памятью. Основная идея алгоритма заключается в том, что каждый вычислительный узел выполняет рассылку сообщений, содержащих значения поддержки наборов, всем остальным узлам по завершении обработки очередного блока из М транзакций. Авторы провели эксперименты на вычислительной системе из 12 узлов, где D 1C-ОРТ показал сублинейное ускорение.

В работе [8] представлен алгоритм АРМ, который является модификацией алгоритма DIC для SMP-систем. Процессоры SMP-системы динамически генерируют наборы-кандидаты независимо друг от друга и не требуют синхронизации. Транзакции распределяются по узлам системы. Эксперименты, проведенные на вычислительной системе Sun Enterprise 4000 из 12 узлов, показали, что АРМ опережает параллельные реализации классического алгоритма Apriori. Однако, ускорение АРМ постепенно снижается до 4, когда количество задействованных узлов больше четырех.

Алгоритм mcEclat [21] является параллельной версией Eclat [23] для сопроцессора Intel Xeon Phi. mcEclat использует представление транзакций в виде вертикальных битовых карт: tid всех транзакций, в которых присутствует данный объект, преобразуются в

битовую карту этого объекта, где в соответствующих позициях биты установлены в 1. Для вычисления поддержки набора над битовыми картами входящих в набор объектов выполняется логическая побитовая операция AND и затем подсчитывается количество битов результата, установленных в 1. Эксперименты показали ускорение алгоритма до 100 на 240 нитях сопроцессора, однако реализация не в полной мере использует возможности векторизации вычислений Xeon РЫ и не опережает себя на платформе двухпроцессорной системы Intel Xeon.

В работах [6,9, 14] предложены различные последовательные алгоритмы поиска частых наборов на основе использования битовых карт: MAFIA, BitTableFI и BitwiseDIC (версия алгоритма DIC [5]) соответственно.

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

Алгоритм DIC (см. алг. 1) разбивает множества транзакций Т> на логические блоки, I’D I

состоящие из [д/] транзакций, где число транзакций в блоке М (1 ^ М ^ \Т>\) является параметром алгоритма.

Обработан блок транзакций Обработаны все транзакции and I. supp > minsup Г““1 and I. supp > minsup Г

(___I >

Начало

подсчета поддержки I. supp <r- 0

>

I - неподтвержденный частый набор неподтвержденный редкий набор

/ - подтвержденный частый набор

/ - подтвержденный редкий набор

-------------------------------------------->

Обработаны все транзакции and I. supp < minsup

Рис. 1. Жизненный цикл набора в алгоритме DIC

Алгоритм 1 DIC(in V, rninsup, М, OUT С)

> Инициализация множеств наборов 1: SolidBox <— 0; SolidCircle <— 0; DashedBox <— 0; DashedCircle <— I 2: while DashedCircle U DashedBox Ф 0 do

> Чтение транзакций

3: Read(D, M, Chunk)

4: if EDF(D) then

5: Rewind(D)

6: for all T G Chunk do

> Подсчет поддержки наборов

7: for all I G DashedCircle U DashedBox do

8: if I С T then

9: Support (I) <— Support (I) + 1

> Генерация наборов-кандидатов

10: for all I G DashedCircle do

11: if support(I) ^ minsup then

12: DashedBox <— DashedBox U I

13: for all i G I do

14: C^IUi

15: if Vs С C s G SolidBox U DashedBox then

16: DashedCircle <— DashedCircle U C

> Проверка завершения полного прохода

17: for all I G DashedCircle U SolidBox do

18: if IsPassCompleted(I) then

19: switch Shape(I)

20: dashed: DashedBox <— DashedBox U I

21: solid: SolidBox SolidBox U I

22: L SolidBox

DIC различает четыре вида наборов, для названия которых используются метафоры: пунктирные окружности, пунктирные квадраты, сплошные окружности и сплошные квадраты. Жизненный цикл набора в алгоритме DIC представлен на рис. 1. Для «пунктирных» наборов необходимо выполнить подсчет поддержки, в то время как для «сплошных» наборов подсчет поддержки закончен. «Квадрат» соответствует частому набору, «окружность» — редкому. В соответствии с этим определяются четыре непересекающихся множества наборов: DashedCircle, DashedBox, SolidCircle и

SolidBox. Множества DashedCircle и DashedBox содержат неподтвержденные редкие и неподтвержденные частые наборы соответственно, а множества SolidCircle и SolidBox — подтвержденные редкие и подтвержденные частые наборы соответственно.

При инициализации множества DashedBox, SolidCircle и SolidBox полагаются пустыми, а множество Dashed Circle заполняется 1-наборами из множества объектов I. При обработке транзакций блока DIC вычисляет поддержку «пунктирных» наборов из множеств DashedCircle и DashedBox. По завершении обработки блока наборы, поддержка которых сравнялась или превысила порог minsup перемещаются из множества DashedCircle в DashedBox. В множество DashedCircle добавляется каждый набор, который является

надмножеством таких наборов из DashedBox, любое подмножество которых является «квадратом». После обработки последнего блока выполняется переход к первому блоку транзакций. Алгоритм завершается, когда множества DashedCircle и DashedBox становятся пустыми.

3. Поиск частых наборов на ускорителе Intel Хеоп РЫ

3.1. Проектирование структур данных

Параллельный алгоритм PhiDIC [24] использует битовое представление наборов и транзакций. Транзакция Т С Т> (набор I С X, соответственно) представляется в виде слова, в котором каждый {р — 1)-й бит установлен в 1, если элемент ip £ Т (ip £ I, соответственно), и остальные биты установлены в 0. Количество битов в слове W зависит от используемой системы программирования и определяется как W = \ s^eo/(b^e) 1 • В предлагаемой реализации используется система программирования СН—Ь, а набор и транзакция представлены значением типа данных unsigned long long int, таким образом, в данной реализации W = 8 и m = 64.

Введем функцию битовой маски BitMask : X —> N, которая возвращает натуральное число, являющееся битовым представлением указанной транзакции либо набора. Например, для набора {4,74,75} функция BitMask возвратит целое число 25, имеющее такое битовое представление, в котором 0-й, 3-й и 4-й биты установлены в 1, а остальные биты равны 0. Тогда битовой картой базы транзакций Т> назовем га-элементный одномерный массив В, где Bj = BitMask(Tj), 1 ^ j ^ п.

Использование битовых масок наборов и битовой карты базы транзакций упрощает подсчет поддержки наборов и обеспечивает векторизацию этой операции. Действительно, факт вхождения набора I в транзакцию Т (/ С Т), установление которого необходимо при подсчете поддержки данного набора, может быть определен с помощью одной логической побитовой операции BitMask(I) AND BitMask{T)=BitMask{I), а циклическое выполнение данной операции может быть автоматически векторизовано компилятором.

Набор, таким образом, реализуется как структура со следующими полями:

• mask — битовая маска набора;

• к — количество элементов в наборе;

• stop — счетчик части транзакций, в которых проверено наличие данного набора;

• supp — поддержка данного набора;

• shape — вид данного набора (BOX или CIRCLE, либо NULL).

Множество наборов реализуется с помощью класса vector из стандартной библиотеки классов СН—Ь (Standard Template Library) [16]. Данный класс реализует массив элементов, принадлежащих одному типу данных и обеспечивает операции добавления, удаления элементов, доступ к элементу по его индексу и итерацию элементов массива. Каждый из векторов DASHED и SOLID обеспечивает хранение двух множеств наборов: DashedCircle, DashedBox и SolidCircle, SolidBox соответственно. Хранение двух множеств в рамках одного вектора обеспечивает меньшие накладные расходы, чем выделение одного вектора на каждое множество элементов: для перемещения элемента из одного множества в другое достаточно изменить значение поля shape.

Алгоритм 2 PhiDIC(in £>, rninsup, М; OUT С)

1: SOLID.init(); DASНЕD,init()

2: for all i £ 0..m — 1 do

3: I.shape A- NIL; I.mask A- 0; I.mask A- SetBit(I.mask,i)

4: I.stop A- 0; I.supp A- 0; I.k A- 1

5: SOLI D .push _back(I)

6: к A- 1; stop A- 0; stopmax A- |"j|l 7: while not D ASH ED. empty () do 8: к А- к + 1; stop A- stop + 1

9: if stop > stopmax then

10: stop A- 1

11: first A- (stop — 1) • M; tost A- stop ■ M — 1

12: COUNTSUPPORT(L>AS'ii\E,L>)

13: Prune(DAS77EX>)

14: MakeCandidates(Z)AS'H£,P))

15: CheCKFULLPASS^AST^EX»)

16: £ {/ | I £ SOLID Л I.shape = BOX}

3.2. Распараллеливание поиска частых наборов

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

Реализация подсчета поддержки показана в алг. 3. Подсчет выполняется посредством двух вложенных циклов: внешний распараллеливается и выполняется

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

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

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

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

Алгоритм 3 CountSupport(in out DASHED)

1: if DASHED.size() ^ num_of _threads then 2: ^pragma omp parallel for

3: for all I £ DASHED do

4: Estop ■£- Estop + 1

5: for all T £ 13first •• 13last do

6: if Emask AND T = I.mask then

7: Esupp ■£- Esupp + 1

8: else

9: omp_set_nested(true)

10: ^pragma omp parallel for num _t\vreads(D AS H E D .size())

11: for all I £ DASHED do

12: Estop ■£- Estop + 1

13: ^pragma omp parallel for reduction(+:/.s'upp) num_threads(|~^ASH^Eb^zet) 1)

14: for all T £ 13first •• 13last do

15: if Emask AND T = Emask then

16: Esupp ■£- Esupp + 1

Алгоритм 4 Prune(in out DASHED) l: ^pragma omp parallel for

2: for all I £ DASH ED and Eshape = CIRCLE do

3: if Esupp ^ minsup then

4: Eshape £- BOX

5: else

6: SUppmax <- Esupp + M ■ (stopmax - Estop)

7: if suppmax < minsup then

8: Eshape ■£- NIL

9: for all J £ DASHED and J.shape = CIRCLE do

10: if I.mask AND J.mask = Emask then

11: J.shape £- NIL

12: DASHED.erase({I \ Eshape = NIL})

Алгоритм 5 CheckFullPass(in out DASHED) l: ^pragma omp parallel for 2: for all I £ DASHED do 3: if Estop = stopmax then

4: if Esupp ^ minsup then

5: Eshape £- BOX

6: SOLID.push_back(I)

7: Eshape ■£- NIL

8: DASHED.erase({I \ Eshape = NIL})

в соответствии с принципом a priori отбрасывается каждый набор-кандидат, который является надмножеством отброшенного набора.

По завершении отбрасывания подпрограмма MakeCandidates выполняет генерацию наборов-кандидатов для их обработки на следующей итерации алгоритма. Новые кандидаты получаются посредством применения логической побитовой операции DR к каждой паре наборов из множества DASHED, помеченных как BOX (частый). Финальным шагом обработки наборов-кандидатов является проверка завершения просмотра этих наборов по всей базе данных транзакций (см. алг. 5). Если просмотр завершен, набора перемещается в множество SOLID. Если при этом набор имеет поддержку не ниже порогового значения, он помечается как BOX (частый). Цикл обработки наборов-кандидатов распараллеливается с помощью директивы компилятора #pragma omp parallel for. По завершении обработки все искомые частые наборы будут перемещены в множество SOLID и помечены как BOX.

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

4.1. Цели, аппаратная платформа и наборы данных

Для исследования эффективности разработанного алгоритма были проведены вычислительные эксперименты на вычислительном узле кластерной системы «Торнадо ЮУрГУ» [13], характеристики которого приведены в табл. 1.

Таблица 1

Аппаратная платформа экспериментов

Характеристика Хост Сопроцессор

Модель, Intel Хеоп Х5680 Phi (KNC), SE10X

Количество физических ядер 2x6 61

Г иперпоточность 2 4

Количество логических ядер 24 244

Частота, ГГц 3,33 1Д

Размер VPU, бит 128 512

Пиковая производительность, TFLOPS 0,371 1,076

В работе [24] были проведены эксперименты, показавшие, что при поиске частых наборов в базах из сотен тысяч транзакций масштабируемость PhiDIC деградирует, поскольку такие объемы не обеспечивают достаточную вычислительную нагрузку на ускоритель при подсчете поддержки. В данной статье в качестве наборов данных для экспериментов использовались базы из десятков миллионов транзакций, представленные в табл. 2.

Наборы данных для экспериментов

Таблица 2

Набор данных Вид Транзакции Частые наборы (при minsup = 0.1)

п т Ср. длина Количество U •ьmax

20М Синтетический 2- 107 64 40 4 606 6

Tornado20M Реальный 2- 107 64 15 346 4

Синтетический набор данных 20М подготовлен с помощью генератора IBM Quest Data Generator [12], использованного в экспериментах с оригинальным алгоритмом DIC [5]. В итоге набор данных 20М содержит 4 606 частых набора, самый длинный из которых состоит из 6 элементов.

Набор Tornado20M представляет собой журнал с показаниями датчиков напряжения в вычислительных узлах суперкомпьютера «Торнадо ЮУрГУ» [13], снятых в течение одного месяца. Данный журнал используется для нахождения устойчивых ассоциативных правил, связующих вычислительные шкафы, полки, узлы суперкомпьютера и опасные значения напряжения. «Торнадо ЮУрГУ» состоит из 8 шкафов, каждый шкаф состоит из 8 полок, каждая полка состоит из 6 узлов. Рассматривается 4 возможных значения измеряемого напряжения, для каждого из которых различают 4 статуса («меньше нормы», «норма», «больше нормы», «ошибка измерения»). В соответствии с этим транзакция журнала может быть закодирована с помощью 64 бит (8 бит на номер шкафа, 8 бит на номер полки, 48 бит на 6 узлов, где каждая пара битов отражает статус измеренного напряжения). В итоге набор данных Tornado20M содержит 340 частых наборов, самый длинный из которых состоит из 4 элементов.

В экспериментах в качестве порога поддержки взято значение minsup = 0,1 как наиболее типичное. В качестве параметра количества транзакций в блоке взято значение М = [п/2], которое минимизирует накладные расходы на создание нитей для подсчета поддержки.

В экспериментах исследовались производительность, ускорение и параллельная эффективность алгоритма PhiDIC. Под производительностью понимается время работы алгоритма без учета времени загрузки данных в память и выдачи результата. Ускорение и параллельная эффективность параллельного алгоритма [1], запускаемого на к нитях, вычисляются как s(k) = |^ и е{к) = соответственно, где t\ и — время работы алгоритма на одной и к нитях соответственно.

4.2. Результаты и обсуждение

Результаты экспериментов по исследованию ускорения и параллельной эффективности алгоритма PhiDIC представлены на рис. 2. На платформе Intel Хеоп РЫ алгоритм PhiDIC показывает ускорение, близкое к линейному и параллельную эффективность, близкую к 100 %, когда количество нитей, на которых запущен алгоритм, совпадает с количеством физических ядер процессора. Если при запуске алгоритм использует более одной нити на физическое процессорное ядро, то ускорение становится сублинейным (его значение уменьшается до 88 и 108 соответственно для наборов данных 20М и Tornado20M), а параллельная эффективность снижается соответствующим образом (до 37 % и 45 % для соответствующих наборов данных). На платформе вычислительного узла с двумя процессорами Intel Хеоп наблюдается схожая картина, хотя и с несколько более скромными результатами для набора данных Tornado20M. Ускорение и параллельная эффективность алгоритма в экспериментах на наборе данных Tornado20M уменьшаются до значений 8 и 35 % соответственно, когда алгоритм запускается на максимальном количестве физических ядер.

Результаты экспериментов по исследованию производительности алгоритма PhiDIC представлены на рис. 3. Можно видеть, что алгоритм PhiDIC работает до полутора раз быстрее на платформе многоядерного процессора Intel Хеоп РЫ, чем на платформе

а) Платформа 2 х Intel Хеоп

б) Платформа Intel Хеоп РЫ

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

а) Набор 20М б) Набор Tornado20M

Рис. 3. Производительность алгоритма

вычислительного узла, состоящего из двух обычных процессоров Intel Хеоп. Алгоритм PhiDIC на платформе многоядерного процессора Intel Хеоп РЫ опережает в два раза лучшие результаты последовательных алгоритмов-конкурентов (Apriori [2], Eclat [23] и FP-Growth [11] в реализации [4]) на платформе процессора Intel Хеоп.

В табл. 3 представлены результаты экспериментов с набором данных Tornado20M, показывающих выгоду векторизации вычислений. Можно видеть, что производительность алгоритма PhiDIC на платформе Intel Хеои РЫ увеличивается в два раза, если обеспечивается векторизация вычислений.

Таблица 3

Влияние векторизации на производительность

Платформа Время выполнения алгоритма, с

векторизация включена векторизация отключена

Intel Хеои РЫ 4,00 10,36

Intel Хеои 6,95 8,55

На рис. 4 показано влияние порога minsup на ускорение алгоритма. На обеих платформах и для обоих наборов данных ускорение алгоритма ожидаемо страдает от уменьшения значения minsup, поскольку это существенно увеличивает количество наборов-кандидатов для вычисления поддержки. Алгоритм PhiDIC все еще показывает лучшее ускорение, когда задействованы только физические ядра, и лучшее ускорение на платформе Intel Хеои РЫ, чем на двухпроцессорной системе Intel Хеои.

а) Платформа 2 х Intel Хеои

б) Платформа Intel Хеои РЫ

Рис. 4. Влияние параметра minsup на ускорение алгоритма (слева — набор Tornado20M, справа — набор 20М)

Заключение

В статье предложен параллельный алгоритм решения задачи поиска частых наборов PhiDIC для многоядерного ускорителя архитектуры Intel MIC. Алгоритм предполагает битовое представление транзакций и наборов. Использование битовых масок наборов и битовой карты базы транзакций упрощает подсчет поддержки наборов и обеспечивает векторизацию этой операции.

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

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

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

Битовое представление наборов и транзакций, используемое в алгоритме PhiDIC, означает, что каждые набор и транзакция, представляемые целым положительным числом, не могут состоять из более чем 64 объектов. Данное ограничение, очевидно, неприемлемо для поиска частых наборов в транзакциях покупок в супермаркете [5], ДНК-микрочипов [7] и др. Однако алгоритм PhiDIC потенциально применим для поиска шаблонов в медицинских данных, что подтверждается следующими научными публикациями. В работе [15] описан поиск шаблонов риска заболевания у пациентов клиники, где количество атрибутов не превышает 30. В работах [17, 18] описан механизм трансформации данных медицинских карт в формат транзакций для последующего поиска частых наборов. В экспериментах авторы взяли не более 25 атрибутов из более чем 100 атрибутов медицинской карты пациента, поскольку выбранные атрибуты могут дать полную картину течения болезни. Кроме того, опыт авторов показал, что шаблоны, в которые входит более чем пять медицинских атрибутов, трудно поддаются интерпретации врачами. В работе [20] описан поиск шаблонов в базе данных больницы с более чем 2,5 млн. транзакций с данными пациентов, включая атрибуты, касающиеся демографии, диагностики и употребления лекарств.

Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (грант № 17-07-00^63), Правительства РФ в соответствии с

Постановлением № 211 от 16.03.2013 (соглашение № 02.А03.21.0011) и Министерства образования и науки РФ (государственное задание 2.7905.2017/8.9).

Литература

1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. 608 с.

2. Agrawal R., Srikant R. Fast Algorithms for Mining Association Rules in Large Databases // VLDB’94, Proceedings of 20th International Conference on Very Large Data Bases, September 12-15, 1994, Santiago de Chile, Chile. 1994. P. 487-499.

3. Bacon D.F., Graham S.L., Sharp O.J. Compiler Transformations for High-Performance Computing // ACM Computing Surveys. 1994. Vol. 26, No. 4. P. 345-420. DOI: 10.1145/197405.197406.

4. Borgelt C. Frequent Item Set Mining // Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. 2012. Vol. 2, No. 6, P. 437-456. DOI: 10.1002/widm.l074.

5. Brin S., Motwani R., Ullman J.D., Tsur S. Dynamic Itemset Counting and Implication Rules for Market Basket Data // SIGMOD 1997, Proceedings ACM SIGMOD International Conference on Management of Data, May 13-15, 1997, Tucson, Arizona, USA. 1997. P. 255-264. DOI: 10.1145/253260.253325.

6. Burdick D., Calimlim M., Flannick J. et al. MAFIA: A Maximal Frequent Itemset Algorithm // IEEE Transactions on Knowledge and Data Engineering. 2005. Vol. 17, No. 11. P. 1490-1504. DOI: 10.1109/TKDE.2005.183.

7. Chang Y., Chen J., Tsai Y. Mining Subspace Clusters from DNA Microarray Data Using Large Itemset Techniques // Journal of Computational Biology. 2009. Vol. 16, No. 5. P. 745-768. DOI: 10.1089/cmb.2008.0161.

8. Cheung D.W., Hu K., Xia S. An Adaptive Algorithm for Mining Association Rules on Shared-Memory Parallel Machines // Distributed and Parallel Databases. 2001. Vol. 9, No. 2. P. 99-132. DOI: 10.1023/A:1018951022124.

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

9. Dong J., Han M. BitTableFI: An Efficient Mining Frequent Itemsets Algorithm // Knowledge-Based Systems. 2007. Vol. 20, No. 4. P. 329-335. DOI: j.knosys.2006.08.005.

10. Duran A., Klemm M. The Intel Many Integrated Core Architecture // 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.

11. Han J., Pei J., Yin Y. Mining Frequent Patterns without Candidate Generation // Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, May 16-18, 2000, Dallas, Texas, USA. P. 1-12. DOI: 10.1145/342009.335372.

12. IBM Quest Synthetic Data Generator. URL: https://ibmquestdatagen.sourceforge.io/ (дата обращения: 03.11.2018).

13. Kostenetskiy P., Safonov A. SUSU Supercomputer Resources // PCT’2016, International Scientific Conference on Parallel Computational Technologies, Arkhangelsk, Russia, March 29-31, 2016. CEUR Workshop Proceedings. Vol. 1576, CEUR-WS.org, 2016. P. 561-573.

14. Kumar P., Bhatt P., Choudhury R. Bitwise Dynamic Itemset Counting Algorithm // Proceedings of the ICCIC 2015, IEEE International Conference on Computational Intelligence and Computing Research, December 10-12, 2015, Madurai, India. 2015. P. 1-4. DOI: 10.1109/ICCIC.2015.7435752.

15. Li J., Fu A.W., Fahey P. Efficient Discovery of Risk Patterns in Medical Data // Artificial Intelligence in Medicine. 2009. Vol. 45, No. 1. P. 77-89. DOI: 10.1016/j.artmed.2008.07.008.

16. Lischner R. STL Reference: Containers, Iterators, and Algorithms. O’Reilly, 2003. 120 p.

17. Ordonez C., Ezquerra N.F., Santana C.A. Constraining and Summarizing Association Rules in Medical Data // Knowledge and Information Systems. 2006. Vol. 9, No. 3. P. 1-2. DOI: 10.1007/sl0115-005-0226-5.

18. Ordonez C., Santana C.A., de Braal L. Discovering Interesting Association Rules in Medical Data // 2000 ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery, Dallas, Texas, USA, May 14, 2000. 2000. P. 78-85.

19. Paranjape-Voditel P., Deshpande U. A DIC-based Distributed Algorithm for Frequent Itemset Generation // Journal of Software. 2011. Vol. 6, No. 2. P. 306-313. DOI: 10.4304/jsw.6.2.306-313.

20. Pattanaprateep O., McEvoy M., Attia J., Thakkinstian A. Evaluation of Rational Nonsteroidal Anti-inflammatory Drugs and Gastro-protective Agents Use; Association Rule Data Mining Using Outpatient Prescription Patterns // BMC Medical Informatics and Decision Making. 2017. Vol. 17, No. 1. P. 96:1-96:7. DOI: 10.1186/sl2911-017-0496-3.

21. Schlegel B., Karnagel T., Kiefer T., Lehner W. Scalable Frequent Itemset Mining on Many-core Processors // Proceedings of the 9th International Workshop on Data Management on New Hardware, DaMoN 2013, New York, NY, USA, June 24, 2013. 2013. P. 3. DOI: 10.1145/2485278.2485281.

22. Sokolinskaya I., Sokolinsky L. Revised Pursuit Algorithm for Solving Non-stationary Linear Programming Problems on Modern Computing Clusters with Manycore Accelerators // Supercomputing. RuSCDays 2016. Communications in Computer and Information Science.

2016. Vol. 687. P. 212-223. DOI: 10.1007/978-3-319-55669-7_17.

23. Zaki M.J. Scalable Algorithms for Association Mining // IEEE Transactions on Knowledge and Data Engineering. 2000. Vol. 12, No. 3. P. 372-390. DOI: 10.1109/69.846291.

24. Zymbler M. Accelerating Dynamic Itemset Counting on Intel Many-core Systems // Proceedings of the 40th International Convention on Information and Communication Technology, Electronics and Microelectronics, MIPRO’2017, Opatija, Croatia, May 22-26,

2017. IEEE, 2017. P. 1575-1580. DOI: 110.23919/MIPRO.2017.797363.

Цымблер Михаил Леонидович, к.ф.-м.н., доцент, кафедра системного

программирования, Южно-Уральский государственный университет (национальный

исследовательский университет) (Челябинск, Российская Федерация)

DOI: 10.14529/cmsel90104

PARALLEL FREQUENT ITEMSET MINING ON THE INTEL MIC ACCELERATORS

© 2019 M.L. Zymbler

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

E-mail: [email protected] Received: 26.12.2018

Association rule mining is one of the basic problems of data mining, which supposes finding strong correlations between itemsets in large transaction database. Association rules are generated from frequent itemsets (itemset is frequent if its items frequent occur together in transactions). The DIC (Dynamic Itemset Counting) algorithm is modification of the classical Apriori algorithm of finding frequent itemsets. DIC tries to reduce the number of passes made over the transaction database while keeping the number of itemsets counted in a pass relatively low. The paper addresses the task of accelerating DIC on the Intel MIC (Many Integrated Core) systems in the case when the transaction database fits into the main memory. The paper presents a parallel implementation of DIC based on OpenMP technology and thread-level parallelism. We exploit the bit-based internal layout for transactions and itemsets. This technique simplifies the support count via logical bitwise operation, and allows for vectorization of such a step. Experiments with large synthetic and real databases showed good performance and scalability of the proposed algorithm.

Keywords: data mining, frequent itemset counting, OpenMP, Intel Many Integrated Core.

FOR CITATION

Zymbler M.L. Parallel Frequent Itemset Mining on the Intel MIC Accelerators. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2019. vol. 8, no. 1. pp. 54-70. (in Russian) DOI: 10.14529/cmsel90104.

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. Voevodin V.V., Voevodin VI.V. Parallellnye vachisleniya [Parallel Computing]. SPb: BHV-Petersburg, 2002. 608 p.

2. Agrawal R., Srikant R. Fast Algorithms for Mining Association Rules in Large Databases. VLDB’94, Proceedings of 20th International Conference on Very Large Data Bases, September 12-15, 1994, Santiago de Chile, Chile. 1994. pp. 487-499.

3. Bacon D.F., Graham S.L., Sharp O.J. Compiler Transformations for High-Performance Computing. ACM Computing Surveys. 1994. vol. 26, no. 4. pp. 345-420. DOI: 10.1145/197405.197406.

4. Borgelt C. Frequent Item Set Mining. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. 2012. vol. 2, no. 6, pp. 437-456. DOI: 10.1002/widm.l074.

5. Brin S., Motwani R., Ullman J.D., Tsur S. Dynamic Itemset Counting and Implication Rules for Market Basket Data. SIGMOD 1997, Proceedings ACM SIGMOD International Conference on Management of Data, May 13-15, 1997, Tucson, Arizona, USA. 1997. P. 255-264. DOI: 10.1145/253260.253325.

6. Burdick D., Calimlim M., Flannick J. et al. MAFIA: A Maximal Frequent Itemset Algorithm. IEEE Transactions on Knowledge and Data Engineering. 2005. vol. 17, no. 11. pp. 1490-1504. DOI: 10.1109/TKDE.2005.183.

7. Chang Y., Chen J., Tsai Y. Mining Subspace Clusters from DNA Microarray Data Using Large Itemset Techniques. Journal of Computational Biology. 2009. vol. 16, no. 5. pp. 745-768. DOI: 10.1089/cmb.2008.0161.

8. Cheung D.W., Hu K., Xia S. An Adaptive Algorithm for Mining Association Rules on Shared-Memory Parallel Machines. Distributed and Parallel Databases. 2001. vol. 9, no. 2. pp. 99-132. DOI: 10.1023/A:1018951022124.

9. Dong J., Han M. BitTableFI: An Efficient Mining Frequent Itemsets Algorithm. Knowledge-Based Systems. 2007. vol. 20, no. 4. pp. 329-335. DOI: j.knosys.2006.08.005.

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

11. Han J., Pei J., Yin Y. Mining Frequent Patterns without Candidate Generation. Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, May 16-18, 2000, Dallas, Texas, USA. pp. 1-12. DOI: 10.1145/342009.335372.

12. IBM Quest Synthetic Data Generator. URL: https://ibmquestdatagen.sourceforge.io/ (accessed: 03.11.2018).

13. Kostenetskiy P., Safonov A. SUSU Supercomputer Resources. PCT’2016, International Scientific Conference on Parallel Computational Technologies, Arkhangelsk, Russia, March 29-31, 2016. CEUR Workshop Proceedings, vol. 1576, CEUR-WS.org, 2016. pp. 561-573.

14. Kumar P., Bhatt P., Choudhury R. Bitwise Dynamic Itemset Counting Algorithm. Proceedings of the ICCIC 2015, IEEE International Conference on Computational Intelligence and Computing Research, December 10-12, 2015, Madurai, India. 2015. pp. 1-4. DOI: 10.1109/ICCIC.2015.7435752.

15. Li J., Fu A.W., Fahey P. Efficient Discovery of Risk Patterns in Medical Data. Artificial Intelligence in Medicine. 2009. vol. 45, no. 1. pp. 77-89. DOI: 10.1016/j.artmed.2008.07.008.

16. Lischner R. STL Reference: Containers, Iterators, and Algorithms. O’Reilly, 2003. 120 p.

17. Ordonez C., Ezquerra N.F., Santana C.A. Constraining and Summarizing Association Rules in Medical Data. Knowledge and Information Systems. 2006. vol. 9, no. 3. pp. 1-2. DOI: 10.1007/sl0115-005-0226-5.

18. Ordonez C., Santana C.A., de Braal L. Discovering Interesting Association Rules in Medical Data. 2000 ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery, Dallas, Texas, USA, May 14, 2000. 2000. pp. 78-85.

19. Paranjape-Voditel P., Deshpande U. A DIC-based Distributed Algorithm for Frequent Itemset Generation. Journal of Software. 2011. vol. 6, no. 2. pp. 306-313. DOI: 10.4304/jsw.6.2.306-313.

20. Pattanaprateep O., McEvoy M., Attia J., Thakkinstian A. Evaluation of Rational Nonsteroidal Anti-inflammatory Drugs and Gastro-protective Agents Use; Association Rule Data Mining Using Outpatient Prescription Patterns. BMC Medical Informatics and Decision Making. 2017. vol. 17, no. 1. pp. 96:1-96:7. DOI: 10.1186/sl2911-017-0496-3.

21. Schlegel В., Karnagel Т., Kiefer Т., Lehner W. Scalable Frequent Itemset Mining on Many-core Processors. Proceedings of the 9th International Workshop on Data Management on New Hardware, DaMoN 2013, New York, NY, USA, June 24, 2013. 2013. pp. 3. DOI: 10.1145/2485278.2485281.

22. Sokolinskaya I., Sokolinsky L. Revised Pursuit Algorithm for Solving Non-stationary Linear Programming Problems on Modern Computing Clusters with Manycore Accelerators. Supercomputing. RuSCDays 2016. Communications in Computer and Information Science.

2016. vol. 687. pp. 212-223. DOI: 10.1007/978-3-319-55669-7_17.

23. Zaki M.J. Scalable Algorithms for Association Mining. IEEE Transactions on Knowledge and Data Engineering. 2000. vol. 12, no. 3. pp. 372-390. DOI: 10.1109/69.846291.

24. Zymbler M. Accelerating Dynamic Itemset Counting on Intel Many-core Systems. Proceedings of the 40th International Convention on Information and Communication Technology, Electronics and Microelectronics, MIPRO’2017, Opatija, Croatia, May 22-26,

2017. IEEE, 2017. pp. 1575-1580. DOI: 110.23919/MIPRO.2017.797363.

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