Лучше построить или купить вычислительную платформу Grid? - PullRequest
4 голосов
/ 26 марта 2010

Я хочу сделать довольно грубую обработку грубой силы для сопоставления строк. Я запустил свой прототип в многопоточной среде и сравнил производительность с реализацией, использующей Gridgain с парой узлов (также многопоточных).

Производительность, которую я наблюдал, заключалась в том, что моя реализация Gridgain работала медленнее, чем моя многопоточная реализация. Возможно, в моей реализации gridgain был недостаток, но это был всего лишь прототип, и я подумал, что результаты показательны. Итак, мой вопрос таков:

Каковы преимущества необходимости изучать, а затем создавать реализацию для конкретной грид-платформы (hadoop, gridgain или EC2, если она будет размещена - другие предложения приветствуются), когда можно довольно легко собрать легкую вычислительную платформу Grid гораздо более мелкая кривая обучения? ... т.е. что мы получаем бесплатно с этими облачными / сеточными платформами, которые стоит внедрить / сложно?

(Обратите внимание, мне не нужна сетка данных)

Приветствия

-Джеймс

(p.s. Рады сделать это сообщество вики, если нужно)

1 Ответ

1 голос
/ 26 марта 2010

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

  • не перегружая ни одного хоста
  • распространение нового сервисного кода
  • обнаружение, когда хост не отвечает, и не отправка ему новой работы, а также повторная отправка того, с чем он работал
  • возможно, работает в разных ОС и архитектурах (маленькая или большая последовательность)
  • экономия энергии - отключение хостов при низкой нагрузке и восстановление их при высокой нагрузке
  • масштабирование - если завтра вы добавите 100 узлов в свою сетку, сколько времени потребуется, чтобы подключить их и работать?
  • надежность - некоторые службы могут фактически выполнять вычисления на 2-3 разных хостах и ​​возвращать только тот ответ, с которым согласны все хосты

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

...