Корзина - ЦЫМБЛЕР Михаил Леонидович
Корзина - ЦЫМБЛЕР Михаил Леонидович
Корзина - ЦЫМБЛЕР Михаил Леонидович
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Международная научная конференция<br />
«Параллельные вычислительные технологии 2010»<br />
(29 марта – 2 апреля 2010 г., Уфа)<br />
Решение задачи<br />
анализа рыночной корзины<br />
на процессорах Cell<br />
К.С. Пан, М.Л. Цымблер<br />
Южно-Уральский государственный университет (Челябинск)<br />
Работа выполнена при финансовой поддержке РФФИ (проект 09-07-00241-а).
Задача анализа рыночной корзины<br />
� Нахождение всех наборов<br />
товаров, которые часто<br />
приобретаются совместно.<br />
� <strong>Корзина</strong> – набор товаров,<br />
приобретенных совместно.<br />
2<br />
� B – множество анализируемых корзин<br />
� I – множество всех товаров I � b<br />
� Опорное число – количество корзин,<br />
содержащих данный набор товаров.<br />
�<br />
� s min – минимальное опорное число<br />
� Найти множество<br />
�<br />
b�B<br />
� �<br />
support( c, B) � card b� B : c � b<br />
�l � I : support(<br />
l, B s �<br />
L � ) �<br />
min<br />
Анализ рыночной корзины на процессорах Cell<br />
{�, �, �}<br />
Корзины<br />
{�, �, �, �}<br />
{�, �, �, �, �}<br />
{�, �, �}<br />
Частые наборы (s min=3)<br />
{�}, {�}, {�}, {�}<br />
{�,�}, {�,�}, {�,�}, {�,�}<br />
{�, �,�}<br />
Товары<br />
{�,�,�,�,�}<br />
ПаВТ'2010, 1-апр-10
Последовательный алгоритм apriori<br />
3<br />
Анализ рыночной корзины на процессорах Cell<br />
� Антимонотонность опорного<br />
числа:<br />
�� � с support( �,<br />
B) � support( c, B)<br />
support({�}) ≥ support({�, �, �})<br />
� Кандидат – набор с, для<br />
которого проверяется условие<br />
.<br />
с�L � Формирование C i<br />
(множества кандидатов)<br />
� на 1 шаге – из I (множества товаров)<br />
� на k шаге – из L k-1 (множество часто<br />
встречающихся наборов длины k-1)<br />
ПаВТ'2010, 1-апр-10
Последовательный алгоритм apriori<br />
4<br />
Корзины<br />
{�, �, �}<br />
{�, �, �, �}<br />
{�, �, �, �, �}<br />
{�, �, �}<br />
s min=3<br />
L 3<br />
{�, �,�}<br />
С 3<br />
С 1<br />
{�}<br />
{�}<br />
{�}<br />
{�}<br />
{�}<br />
support<br />
{�, �,�} 3<br />
support<br />
Анализ рыночной корзины на процессорах Cell<br />
2<br />
4<br />
3<br />
3<br />
3<br />
L 1<br />
{�}<br />
{�}<br />
{�}<br />
{�}<br />
L 2<br />
{�,�}<br />
{�,�}<br />
{�,�}<br />
{�,�}<br />
С 2<br />
{�,�}<br />
{�,�}<br />
{�,�}<br />
{�,�}<br />
{�,�}<br />
{�,�}<br />
support<br />
3<br />
3<br />
3<br />
2<br />
2<br />
3<br />
ПаВТ'2010, 1-апр-10
Распараллеливание алгоритма apriori<br />
{� �} {� �} {��} …<br />
5<br />
Count Distribution<br />
(CDapriori)<br />
…<br />
…<br />
Анализ рыночной корзины на процессорах Cell<br />
{� �} {� �} …{��}<br />
Data Distribution<br />
(DDapriori)<br />
…<br />
…<br />
ПаВТ'2010, 1-апр-10
Параллельный алгоритм DDC-apriori<br />
6<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
7<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
8<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
9<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
10<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
11<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
12<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Использование SIMD-функций<br />
13<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Эксперименты: ускорение<br />
14<br />
Анализ рыночной корзины на процессорах Cell<br />
Процессор 2 x PowerXCell 8i<br />
(16 ядер, 3.2 GHz)<br />
Данные 10 6 корзин<br />
(Тест msnbc.com)<br />
ПаВТ'2010, 1-апр-10
Эксперименты: DDapriori vs CDapriori<br />
15<br />
Анализ рыночной корзины на процессорах Cell<br />
Процессор 2 x PowerXCell 8i<br />
(16 ядер, 3.2 GHz)<br />
Данные 10 6 корзин<br />
(Тест msnbc.com)<br />
ПаВТ'2010, 1-апр-10
Эксперименты: SIMD vs SISD<br />
16<br />
Анализ рыночной корзины на процессорах Cell<br />
Процессор 2 x PowerXCell 8i<br />
(16 ядер, 3.2 GHz)<br />
Данные 10 6 корзин<br />
(Тест msnbc.com)<br />
ПаВТ'2010, 1-апр-10
Эксперименты: влияние длины корзины<br />
17<br />
Анализ рыночной корзины на процессорах Cell<br />
t<br />
t<br />
SISD<br />
SIMD<br />
ПаВТ'2010, 1-апр-10
Эксперименты: Cell vs Intel, ускорение<br />
18<br />
Анализ рыночной корзины на процессорах Cell<br />
Процессор 2 x PowerXCell 8i<br />
(16 ядер, 3.2 GHz)<br />
2 x Intel Xeon E5472<br />
(8 ядер, 3.0 GHz)<br />
Данные 10 6 корзин<br />
(Тест msnbc.com)<br />
ПаВТ'2010, 1-апр-10
Эксперименты: Cell vs Intel, время<br />
19<br />
Анализ рыночной корзины на процессорах Cell<br />
Процессор 2 x PowerXCell 8i<br />
(16 ядер, 3.2 GHz)<br />
2 x Intel Xeon E5472<br />
(8 ядер, 3.0 GHz)<br />
Данные 10 6 корзин<br />
(Тест msnbc.com)<br />
ПаВТ'2010, 1-апр-10
Спасибо за внимание<br />
� Вопросы?<br />
�Константин Сергеевич Пан<br />
kpan@mail.ru<br />
�<strong>Михаил</strong> <strong>Леонидович</strong> Цымблер<br />
mzym@susu.ru<br />
20<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Дополнительные слайды<br />
� DDC-apriori (без упрощений)<br />
� DDC-apriori (детали реализации)<br />
21<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
Параллельный алгоритм DDC-apriori<br />
22<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10
DDC-apriori: детали реализации<br />
� Язык программирования: С<br />
� Библиотеки: IBM Cell Broadband Engine SDK<br />
� Объем исходных текстов: 1 тыс. строк<br />
23<br />
Анализ рыночной корзины на процессорах Cell<br />
ПаВТ'2010, 1-апр-10