Для заданных операций с большим набором данных, есть ли способ определить, можно ли разложить данные на операции mapreduce? - PullRequest
0 голосов
/ 20 декабря 2011

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

Существует ли какой-либо математический тест, который можно применитьк набору операций, чтобы определить, могут ли данные, над которыми они работают, быть разложены?

Или, может быть, где-то есть список, говорящий о том, что можно и нельзя разложить?

Например, я не думалбыл способ разложить стандартное отклонение, но есть ...

редактировать: добавлены теги

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

Параллельные вычисления лучше всего подходят для задач, которые «смущают параллелью», то есть нет никакой зависимости между любыми двумя задачами. Пожалуйста, проверьте http://en.wikipedia.org/wiki/Embarrassingly_parallel

Кроме того, в случаях, когда операции являются коммутативными или ассоциативными, программы MapReduce можно легко оптимизировать для повышения производительности.

1 голос
/ 23 декабря 2011

Взгляните на эту бумагу: http://www.janinebennett.org/index_files/ParallelStatisticsAlgorithms.pdf.У них есть алгоритмы для решения многих распространенных статистических задач, и имеется открытый исходный код.

1 голос
/ 20 декабря 2011

Дисперсия, а также среднее значение могут быть рассчитаны онлайн (за один проход), см. wikipedia .Также есть параллельный алгоритм.

...