насколько быстро работает Google App Engine MapReduce? - PullRequest
0 голосов
/ 31 марта 2011

Сколько выигрыша в вычислительных ресурсах можно ожидать от GAE MapReduce?Интересующий меня сценарий требует значительных вычислительных ресурсов, например: умножение триллиона случайных чисел в одноядерном приложении.Затем представьте, что 1000 работников MapReduce умножают по миллиарду случайных чисел на каждого и объявляют «закончили», когда все работники закончили.Предположим, биллинг включен, если это имеет значение.(Возможно, нет).

Редактировать: комментатор попросил разъяснений. Название было изменено.Если задача занимает 50000 секунд в однопоточном режиме и в альтернативной реализации задействовано 1000 рабочих MapReduce, которые завершают работу через 500 секунд, то увеличение производительности в 100 раз.1000 рабочих: рост в 100 раз, только немного разочаровывает, но так и будет в этом примере. Как я могу закончить раньше?Могу ли я попросить 10000 работников?Этот вопрос может иметь отношение к ограничениям и квотам.Примите адекватный бюджет.Ускоряет ли MapReduce интенсивную обработку вычислений асимптоту, и если да, то каково увеличение производительности этой асимптоты? В комментарии также содержалась информация о том, что MapReduce подходит для больших объемов данных, сгенерированных URL, обращенным к пользователю, однако,Мой вопрос не касается производительности приложения, интенсивно использующего хранилище данных, по сравнению с тем же приложением, переписанным для MapReduce.В этом ресурсоемком сценарии активность хранилища данных будет минимальной.Я понимаю, что в любом приложении MapReduce всегда будет какое-то действие с хранилищем данных, но, поскольку это сценарий с интенсивными вычислениями, действие хранилища данных и размер сущностей хранилища данных не окажут большого влияния на вычисляемый прирост производительности.Задача будет использовать хранилище данных менее 1% прошедшего времени.Сценарий также не предусматривает большой пропускной способности связи (кроме минимума, необходимого для попадания в URL-адреса в очереди задач, которые использует MapReduce).Вопрос заключается в том, чтобы сравнивать затраченное время однопоточной задачи, не связанной с MapReduce, с интенсивными вычислениями, с затраченным временем той же задачи в MapReduce, которое по своей сути является многопоточным, учитывая наличие нескольких рабочих.Я использую слово «задача» в общем, другими словами, «задача означает работу».Прибыль может (но не обязательно) зависеть от количества работников, поэтому в примере я упомянул 1000 работников.

1 Ответ

2 голосов
/ 31 марта 2011

Не совсем понятно, о чем вы здесь спрашиваете. Вы спрашиваете, насколько это эффективно? Как дешево это? Как быстро это?

В общем, App Engine предназначен для обслуживания сайтов, ориентированных на пользователя, и для этого существует API mapreduce App Engine, который обрабатывает большие объемы данных, генерируемых сайтом, ориентированным на пользователя. Если у вас большой объем данных, размещенных вне App Engine, и вы хотите выполнить какую-то крупномасштабную обработку данных на нем, вероятно, App Engine вам не подойдет.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...