He realizado varios proyectos en este sentido, pero al final siempre acababan siendo soluciones a medida que básicamente
- separar el problema en cuadrículas
- hizo el procesamiento en cada nodo individual y copió el resultado a una tabla temporal / almacén de datos
- fusionó todas las soluciones en una sola tabla de resultados y manejó opcionalmente las condiciones de contorno. El manejo de las condiciones de contorno sólo era necesario para los casos en que las características debían ser cosidas o masajeadas (por ejemplo, cuando se construye una topología de manera distribuida, se desea que las características de contorno se ajusten).
Es curioso que cada vez que resolví un problema de este tipo, utilicé una tecnología diferente, sobre todo porque era la moda del momento. Al final, lo que quieres es una biblioteca de paso de mensajes que tenga un gestor de colas de trabajo, que genere procesos en los diferentes nodos y que tenga algún tipo de mecanismo de sincronización ( Semapahore's , Barreras etc.) y alguna forma de manejar los errores y reintentar. Todos los proyectos que menciono a continuación tienen estas cosas.
Para la geo, he utilizado (en orden cronológico):
(vieja escuela)
(más reciente)
Hay varios otros que la gente utiliza.
Al final, cualquiera de ellos podría servir (aunque de forma ligeramente diferente), así que se reduce a elegir uno que tenga una comunidad que sea útil.
Además, en cada nodo, tendrías que utilizar una biblioteca para hacer las operaciones de geometría GIS. La recomendación de cuál utilizar vendría dada por el lenguaje en el que prefieras codificar esto. Pero estoy seguro de que las opciones que la mayoría de la gente te daría serían:
O alguna otra biblioteca que sirva de envoltorio a una de estas.