Насколько эффективна вычислительная платформа с открытым исходным кодом, такая как Hadoop и т. Д.? - PullRequest
1 голос
/ 27 июля 2011

Насколько эффективны платформы распределенных вычислений с открытым исходным кодом, такие как Hadoop?Под эффективностью я подразумеваю циклы ЦП, которые можно использовать для «фактической работы» в задачах, которые в основном являются чисто вычислительными.Другими словами, сколько циклов ЦП используется для накладных расходов или тратится из-за того, что они не используются?Я не ищу конкретные цифры, просто грубая картина.Например, можно ли рассчитывать на использование 90% мощности процессора кластера?99%?99,9%?

Если говорить более конкретно, скажем, я хочу вычислить PI, и у меня есть алгоритм X. Когда я выполняю это на одном ядре в тесном цикле, скажем, я получаю некоторую производительность Y.Если я сделаю это вычисление распределенным способом, используя, например, Hadoop, какого снижения производительности я могу ожидать?

Я понимаю, что это будет зависеть от многих факторов, но какова будет приблизительная величина?Я имею в виду кластер с 10 - 100 серверами (всего 80 - 800 ядер ЦП), если это имеет значение.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 27 июля 2011

Технически hadoop имеет значительные накладные расходы в нескольких измерениях:
a) На каждую задачу накладные расходы, которые могут быть оценены от 1 до 3 секунд.
б) HDFS Затраты на чтение данных из-за передачи данных через сокет и вычисления CRC.Труднее оценить
Эти накладные расходы могут быть очень значительными, если у вас много небольших задач и / или если обработка ваших данных невелика.
В то же время, если у вас большие файлы (меньше задач) и обработка ваших данных тяжелая (скажем, несколько мегабит в секунду на ядро), тогда издержками Hadoop можно пренебречь.это переменные вещи, которые сильно зависят от характера обработки, которую вы делаете.

2 голосов
/ 27 июля 2011

Этот вопрос слишком широкий и расплывчатый, чтобы с пользой ответить на него.Существует множество различных платформ с открытым исходным кодом, которые очень сильно различаются по своему качеству.Например, некоторые ранние беовульфы были крайне расточительными, тогда как современный MPI2 довольно скудный.

Кроме того, «эффективность» означает разные вещи в разных областях.Это может означать количество накладных расходов ЦП, затрачиваемых на создание и передачу сообщений относительно рабочей нагрузки (в этом случае вы сравниваете MPI с Map / Reduce), или это может означать количество циклов ЦП, потраченных интерпретатором / ВМ,если есть (в этом случае вы сравниваете C ++ с Python).

Это также зависит от проблемы, которую вы пытаетесь решить.В некоторых доменах у вас есть много маленьких сообщений, летящих туда-сюда, и в этом случае стоимость ЦП для их создания очень важна (например, высокочастотная торговля).В других у вас есть относительно немного, но большие рабочие блоки, поэтому стоимость упаковки сообщений невелика по сравнению с вычислительной эффективностью математики внутри рабочего блока (например, Folding @ Home).

Итак, в общем, на этот вопрос вообще невозможно ответить, потому что нет единого ответа.Это зависит от того, что конкретно вы пытаетесь сделать с распределенной платформой и на каком оборудовании она работает.

1 голос
/ 27 июля 2011

MapR является одной из альтернатив для Apache Hadoop, и Srivas (технический директор и основатель MapR) сравнил MapR с Apache Hadoop.Представленная ниже презентация и видео имеют показатели, сравнивающие MapR и Apache Hadoop.Похоже, что оборудование неэффективно используется в Apache Hadoop.

http://www.slideshare.net/mcsrivas/design-scale-and-performance-of-maprs-distribution-for-hadoop

http://www.youtube.com/watch?v=fP4HnvZmpZI

Apache Hadoop в некоторых измерениях неэффективен, но естьМного активности в сообществе Apache Hadoop вокруг масштабируемости / надежности / доступности / эффективности.MapReduce следующего поколения, масштабируемость / доступность HDFS - вот некоторые из вещей, которые работают в настоящее время.Они будут доступны в версии Hadoop 0.23.

Некоторое время назад сообщество Hadoop казалось сосредоточено на масштабируемости, но теперь также смещается в сторону эффективности.

...