He realizado varios proyectos a este respecto, pero al final siempre terminaron siendo soluciones personalizadas que básicamente
- separó el problema en cuadrículas
- realizó el procesamiento en cada nodo individual y copió el resultado en una tabla temporal / almacén de datos
- fusionó todas las soluciones en una sola tabla de resultados y, opcionalmente, manejó las condiciones de contorno. El manejo de las condiciones de límite solo era necesario para los casos en que las características debían coserse o masajearse (por ejemplo, al construir una topología de manera distribuida, desea que las características de límite se ajusten).
Curiosamente, cada vez que resolví un problema de esta naturaleza, usé una tecnología diferente, principalmente porque esa era la moda del momento. Al final, lo que desea es una biblioteca de paso de mensajes que tenga un administrador de colas de trabajos, genere procesos en los diferentes nodos y que tenga algún tipo de mecanismo de sincronización ( Semapahore , Barrier's , etc.) y alguna forma de manejar errores y reintentos. Todos los proyectos que menciono a continuación tienen estas cosas.
Para geo, he usado (en orden cronológico):
(vieja escuela)
(más nuevo)
Hay varios otros que la gente usa.
Al final, cualquiera de estos lo reduciría (aunque de una manera ligeramente diferente), por lo que se reduce a elegir uno que tenga una comunidad que sea útil.
Además, en cada nodo, tendría que usar una biblioteca para realizar las operaciones de geometría SIG. La recomendación sobre cuál usar se basaría en el lenguaje en el que prefiera codificar esto. Pero estoy seguro de que las opciones que la mayoría de las personas le darían serían:
O alguna otra biblioteca que sirve como envoltorio para uno de estos.