Pregunta

Entonces, las preguntas son: 1. ¿Es MapReduce Overhead demasiado alto para el siguiente problema? ¿Alguien tiene una idea de cuánto tiempo lleva cada ciclo de mapa/reducción (en discoteca, por ejemplo) para un trabajo muy ligero? 2. ¿Existe una mejor alternativa a MapReduce para este problema?

En los términos de reducción de mapas, mi programa consta de 60 fases de mapas y 60 fases reducen, todas las cuales juntas deben completarse en 1 segundo. Uno de los problemas que necesito resolver de esta manera es una búsqueda mínima con aproximadamente 64000 variables. La matriz de Hessian para la búsqueda es una matriz de bloques, 1000 bloques de tamaño 64x64 a lo largo de una diagonal y una fila de bloques en el extremo derecho e inferior. La última sección de: Algoritmo de inversión de matriz de bloque muestra cómo se hace esto. Cada uno de los complementos de Schur S_A y S_D se puede calcular en un paso MapReduce. El cálculo del inverso toma un paso más.

Desde mi investigación hasta ahora, MPI4PY parece una buena apuesta. Cada proceso puede hacer un paso de cálculo e informar al cliente después de cada paso, y el cliente puede informar con nuevas variables de estado para que el ciclo continúe. De esta manera, el estado del proceso no se pierde el cálculo se puede continuar con cualquier actualización.http://mpi4py.scipy.org/docs/usrman/index.html

Este wiki tiene algunas sugerencias, pero ¿alguien tiene una dirección en la solución más desarrollada:http://wiki.python.org/moin/parallelprocessing

Gracias !

¿Fue útil?

Solución

MPI es un protocolo de comunicación que permite la implementación del procesamiento paralelo al pasar mensajes entre nodos de clúster. El modelo de procesamiento paralelo que se implementa con MPI depende del programador.

No he tenido ninguna experiencia con MapReduce, pero me parece que es un modelo de procesamiento paralelo específico y está diseñado para ser fácil de implementar. Este tipo de abstracción debería ahorrarle tiempo de programación y puede o no proporcionar una solución adecuada a su problema. Todo depende de la naturaleza de lo que está tratando de hacer.

El truco con el procesamiento paralelo es que la solución más adecuada es a menudo específica del problema y, sin saber más detalles sobre su problema, es difícil hacer recomendaciones.

Si puede contarnos más sobre el entorno en el que está ejecutando su trabajo y dónde encaja su programa Taxonomía de Flynn, Podría proporcionar algunas sugerencias más útiles.

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