J'ai fait plusieurs projets à cet égard, mais à la fin, ils finissaient toujours par être des solutions personnalisées qui, fondamentalement,
- séparé le problème dans les grilles
- a effectué le traitement dans chaque nœud individuel et copié le résultat dans une table temporaire / un magasin de données
- fusionné toutes les solutions dans un seul tableau de résultats et éventuellement géré les conditions aux limites. La gestion des conditions aux limites n'était requise que dans les cas où les entités devaient être assemblées ou massées (par exemple, lorsque vous créez une topologie de manière distribuée, vous souhaitez que les entités aux limites s'alignent).
Assez drôle, chaque fois que je résolvais un problème de cette nature, j'utilisais une technologie différente, principalement parce que c'était la mode du temps. À la fin, ce que vous voulez, c'est une bibliothèque de transmission de messages qui a un gestionnaire de files d'attente de travaux, génère des processus sur les différents nœuds, et qui a une sorte de mécanisme de synchronisation ( Semapahore , Barrier , etc.) et un moyen de gérer les erreurs et de réessayer. Tous les projets que je mentionne ci-dessous ont ces choses.
Pour la géo, j'ai utilisé (par ordre chronologique):
(vieille école)
(plus récent)
Il y en a plusieurs autres que les gens utilisent.
À la fin, n'importe lequel d'entre eux le couperait (quoique d'une manière légèrement différente), donc cela se résume à en choisir un qui a une communauté qui est utile.
De plus, sur chaque nœud, vous devrez utiliser une bibliothèque pour effectuer les opérations de géométrie SIG. La recommandation pour laquelle utiliser serait basée sur la langue dans laquelle vous préférez coder cela. Mais je suis sûr que les options que la plupart des gens vous donneraient seraient:
Ou une autre bibliothèque qui sert d'enveloppe à l'une d'entre elles.