Алгоритм роста Fp с использованием CUDA - PullRequest
1 голос
/ 23 марта 2011

Мне нужно разработать алгоритм интеллектуального анализа данных с использованием CUDA. Я много искал и обнаружил, что большинство алгоритмов уже были реализованы, кроме FpGrowth.
Как вы думаете, это хорошая идея? Можете ли вы дать мне какие-либо идеи о том, как это реализовать?

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Я отвечу на ваш первый вопрос: «Это хорошая идея?».Ну, я думаю, что это хорошая идея, если вам это нужно.Но, если вы просто хотите сделать это, потому что это не было сделано, возможно, это не очень хорошая идея.

По второму вопросу убедитесь, что вы хорошо понимаете FPGrowth.Вы можете прочитать оригинальную статью с описанием FPGrowth.Также вы можете проверить книгу «Введение в интеллектуальный анализ данных».Он имеет простое для понимания описание FPGrowth.После того, как вы хорошо поймете FPGrowth, вы сможете увидеть, как реализовать его с помощью CUDA ... Это мое предложение.

0 голосов
/ 31 декабря 2011

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

Как идентифицировать частые шаблоны с использованием алгоритма дерева FP

0 голосов
/ 24 марта 2011

Я не знаю FpGrowth, но, думаю, вы читали статьи (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.162.1209&rep=rep1&type=pdf и т. Д.).Я думаю, вы новичок в CUDA, что делает реализацию чего-то такого сложного довольно сложной.

Ключ к хорошей производительности с CUDA - это массивный равномерный параллелизм и небольшая синхронизация.В CUDA Zone http://www.nvidia.com/object/cuda_apps_flash_new.html есть много хороших примеров того, что работает и как.Хорошей отправной точкой для изучения CUDA является руководство по программированию http://developer.download.nvidia.com/compute/cuda/3_2_prod/toolkit/docs/CUDA_C_Programming_Guide.pdf.

Часто задаваемый вопрос: «У меня есть этот C-код, как мне перенести его в CUDA».Ответ не!В CUDA нет указателей, строк, печати, файлов, и большинство того, что вы узнали об эффективном коде, неверно.

Более многообещающий подход заключается в более абстрактном подходе к основному алгоритму,Определите, что можно сделать параллельно, подумайте о хорошей структуре данных (возможно, с большими массивами), внедрите прототип.Возможно, будет проще полагаться на библиотеки CUDA, такие как Thrust http://code.google.com/p/thrust/, чтобы заработала первая версия.

Что касается FpGrowth, можно ли что-нибудь сделать параллельно?Построение динамических деревьев и обход деревьев, как правило, не очень легко реализуются в CUDA.

...