Pregunta

Estoy buscando para hacer algo de procesamiento fuerza bruta bastante intensivo del procesador de coincidencia de cadenas. He corrido mi prototipo en un entorno multiproceso y comparado el rendimiento de una aplicación usando Gridgain con un par de nodos (también multihilo).

El rendimiento que observé fue que mi aplicación Gridgain realiza más lento para mi aplicación multiproceso. Podría ser el caso que había un defecto en mi aplicación gridgain, pero fue sólo un prototipo, y pensé que los resultados eran indicativos. Así que mi pregunta es la siguiente:

¿Cuáles son las ventajas de tener que aprender y luego construir una implementación de una plataforma de rejilla en particular (hadoop, gridgain, o EC2 Si el ir alojada - otras sugerencias son bienvenidos), en que se podía bastante fácilmente armar una plataforma de red informática ligera con una curva de aprendizaje más superficial mucho? ... es decir, ¿qué obtenemos gratis con estas plataformas de nube / cuadrícula que están teniendo pena / difíciles de implementar?

(Tenga en cuenta, no tiene ninguna necesidad de una cuadrícula de datos)

Saludos,

-James

(p.s. Feliz a hacer que este wiki de la comunidad si needbe)

¿Fue útil?

Solución

¿Qué tipo de rejilla que está tratando? Una docena de hosts que ejecutan el mismo sistema operativo sería bastante sencillo de ejecutar una rejilla para - todo lo que realmente tiene que tratar es el envío de trabajos a cada host, tal vez un poco de equilibrio de carga, tal vez tomar en cuenta qué hacer si un host se cae, tal vez tratar de distribuir nuevo código de servicio a los anfitriones cuando actualiza su servicio, pero si no se ocupan de cualquiera de los que no es un gran problema ya que la red es un tamaño manejable. Si usted está tratando con 1000 de los anfitriones, o con un servicio que nunca debe estar abajo o tienen errores debidos a máquinas concretas va hacia abajo y luego de repente tiene que preocuparse de:

  • no sobrecargar cualquier host solo
  • distribuir nuevo código de servicio
  • detectar cuando un host no responde y no enviarlo nuevo trabajo, así como volver a enviar todo lo que estaba trabajando en
  • posiblemente trabajando a través de diferentes sistemas operativos y arquitecturas (poco contra gran endian)
  • ahorro de energía - el cierre de los ejércitos durante la carga baja y traerlos de vuelta para la alta carga
  • escalamiento - si se agrega 100 hosts a su parrilla de mañana cuánto tiempo se tarda en conseguir conectados y funcionando
  • fiabilidad - algunos servicios puede realmente realizar cálculos con 2-3 anfitriones diferentes y sólo devolver una respuesta que todos los anfitriones están de acuerdo en

Esto es una breve lista de cosas que la mayoría del software de rejilla debe hacer por usted si lo necesita. Si estás trabajando en algo pequeño o no crítica entonces por todos los medios, hágalo usted mismo. Si estás trabajando en algo que tiene que trabajar, o es lo suficientemente grande que tenga los pasos manualmente en un proceso de implementación sería una pesadilla para el mantenimiento, entonces probablemente quiera ir con algo que ya existe.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top