¿Cómo puede Bulk Synchronous Parallel relajar las contracciones de sincronización de superpasos?

Tendré que buscar Pregel, pero los pasos superiores y sus barreras son esenciales para BSP. Las sincronizaciones son necesarias porque BSP utiliza la comunicación unilateral, por lo que debe tener alguna forma de decir “ahora estoy seguro de que la comunicación se ha completado con éxito”. La comunicación unilateral hace que BSP sea mucho más fácil de programar que MPI (o productos similares) porque no tiene que preocuparse por el punto muerto y la orquestación precisa de su comunicación.

Por supuesto, BSP fue diseñado por un teórico. Una vez que las personas comenzaron a implementar la comunicación unilateral, se dieron cuenta de cuán malas eran las barreras. Esto, por ejemplo, condujo a que MPI (versión 2) tuviera 3 mecanismos diferentes para la comunicación unilateral. Primero está el mecanismo de “cerca”, que básicamente establece una barrera global al final de un episodio similar a BSP. No entraré en el tercer tipo (sincronización pasiva de objetivos), pero el segundo tipo intenta mitigar los malos efectos de las barreras.

Las llamadas de la ventana MPI post / wait / start / complete delinean un episodio de comunicación y, por lo tanto, hacen una barrera, pero solo en un grupo de procesos. Esto significa que si sabes con quién te estás comunicando (¡unilateralmente!) Solo necesitas sincronizar con ellos. Por supuesto, esto va en contra de BSP, que realiza una suscripción excesiva y una asignación aleatoria de tareas, por lo que no puede usar este mecanismo.

Suraj Menon ha preparado un buen artículo sobre la idea. Ya está en una Hama jira. https://issues.apache.org/jira/b … Hay mucho trabajo involucrado, pero la idea principal es tener diferentes barreras para diferentes superpasos.

debido al superespacio anidado, relajar las restricciones de sincronización ‘global’ es una forma factible

More Interesting

Deje G (V, E) ser un gráfico conectado, no dirigido, dar un algoritmo O (| V | + | E |) para calcular una ruta en G que atraviesa cada borde en E exactamente una vez en cada dirección?

¿Cuál es el enfoque algorítmico para encontrar los intervalos de tiempo libre de ambas personas para que puedan organizar una reunión, dado el conjunto de intervalos de tiempo ocupado de dos personas, como en un calendario?

¿Es 'Cracking the Coding Interview' una lectura obligatoria cuando se postula para ser un ingeniero front-end?

¿Cuál es el mejor curso para algoritmos y estructuras de datos?

¿Cuál es la forma lógica de resolver el problema SPOJ 'Palin'?

¿Cómo funciona el algoritmo de cubos de marcha?

¿Cuál es el problema si clasificamos los intervalos según su tiempo de finalización como el problema de programación de intervalos? ¿Por qué es necesario ordenar según la hora de inicio en el problema de partición de intervalos?

Cómo dominar algoritmos, estructuras de datos y desarrollar un enfoque de resolución de problemas

¿Es normal tener un título en CS y no ser capaz de implementar algoritmos simples?

¿Cuántas matemáticas necesito para aprender sobre estructuras de datos y algoritmos?

¿Utiliza el cerebro el algoritmo de propagación hacia atrás dado cómo se conectan las sinapsis secuencialmente?

¿Alguien puede enumerar las dosis de azufre homeopáticas en orden ascendente?

¿Por qué Python es realmente más lento en algunos cálculos que Java? Las profundidades recursivas también son limitadas.

¿Cómo puede un algoritmo RLS utilizar el filtro Wiener como bloque FIR (M-tap)?

¿Me pueden ayudar a aprender estructuras de datos y algoritmos?